軟件供應鏈安全工具鏈研究系列——RASP自適應威脅免疫平臺(上篇)

1.1 基本能力

RASP是一種安全防護技術,運行在程序執行期間,使程序能夠自我監控和識別有害的輸入和行為。也就是說一個程序如果注入或者引入了RASP技術,那么RASP就和這個程序融為一體,使應用程序具備了自我防護的能力,就可以實時檢測到應用是否遭受攻擊并進行阻斷和自我防御。并且應用程序無需在編碼時進行任何的修改,只需進行簡單的配置即可。

RASP 可以應用在 Web 應用程序和非 Web 應用程序,對應用程序的代碼設計沒有任何影響,不需要修改任何代碼,只需要簡單的配置就可以將安全保護功能在服務器程序在運行時注入。

RASP 運行在應用程序的內部,監聽每一個與應用程序交換的節點,覆蓋所有應用程序的訪問節點,包括:用戶、數據庫、網絡和文件系統,從而實時監測并攔截漏洞攻擊,能夠在運行時結合上下文采取相應的保護方案。

基于RASP技術的特性與背景,應具備如下能力:

1.?實時的檢測與阻斷

RASP的疫苗式特性將自身安全保護代碼嵌入到運行中的服務器應用程序,通過對訪問應用系統的每一段代碼進行檢測,實時檢測所有的應用請求并有效阻斷安全攻擊,最終實現應用系統的自我保護,確保應用系統的安全運行。

可在管理后臺自定義檢測和阻斷兩種基礎的威脅免疫模式。檢測模式是指在檢測到安全攻擊時,將詳細的攻擊參數記錄下來;阻斷模式不僅能夠檢測到安全攻擊,同時實時攔截檢測到的安全攻擊,通過相應的風險監控配置,及時獲取告警動態及安全風險。

2.?有效的攻擊溯源

RASP通過對被攻擊應用程序與內網流量進行分析,一定程度上還原攻擊者的攻擊路徑與攻擊手法,對所有攻擊以及攻擊特征等信息記錄下來并加以分析,通過列表、數據圖標等可視化方式進行展示,將攻擊特征信息轉換成防御優勢,針對性地抑制網絡攻擊。

3.?精準的組件運行時分析

隨著DevSecOps和微服務部署架構的流行,當前絕大多數的應用程序開發都是組裝集成而非純自研,其中96%的商業應用中都融入了開源組件,平均每個應用中含有147個開源組件,且67%的應用采用了帶有己知漏洞的開源組件。由于業務系統交付上線的緊迫性,致使大部分開發者對引入的第三方開源組件及其中潛在的風險知之甚少,很少或幾乎沒有時間關注自寫代碼的質量及安全性。因此,專門針對應用程序運行時的第三方組件漏洞同樣不容忽視。

RASP工具應具備組件運行時分析的能力,通過精準的識別應用系統實際運行過程中動態加載的第三方組件及依賴,對運行時的應用程序本身進行深度且更加有效的威脅分析,深度挖掘組件中潛藏的各類安全漏洞及開源協議風險,更進一步地保障應用程序的安全運行。

1.2 基本原理

RASP技術(Runtime application self-protection,運行時應用程序自我保護)作為一種新型Web防護手段,將保護代碼像一劑疫苗注入到應用程序中,與應用程序融為一體,使應用程序具備自我保護能力,結合應用的邏輯及上下文,對訪問應用系統的每一段代碼進行檢測,當應用程序遭受到實際攻擊和傷害時,RASP可以實時檢測和阻斷安全攻擊,無需人工干預。

RASP技術彌補了傳統邊界安全防護產品的先天性防護不足,可應對無處不在的應用漏洞與網絡威脅,為應用程序提供全生命周期的動態安全保護。

圖1 RASP工作原理示意圖

● 兼容應用包含全部自研代碼、第三方組件和 Web容器。

●?探針以 Attach 方式動態注入,無需修改現有源代碼。

●?附隨應用一起啟動,實現應用出廠威脅自免疫。

●?多語言探針支持,對runtime函數行為進行采集,可自由擴展Hook。

2.工具的應用場景

2.1 如何應用于供應鏈全流程中的哪些流程環節

RASP作為一項較為新型的安全技術,讓企業得以阻止黑客入侵應用及竊取數據。RASP的探針通常都會內置在應用程序或者應用程序運行時環境中,進而監控應用程序的執行,并實時檢測防護入侵者利用漏洞實施攻擊。根據RASP技術的功能及其原理可以看出,RASP更適用于軟件供應鏈流程中的發布、運營階段。當應用程序開發完成后對外發布服務之前,將RASP的安全能力充分內置到應用程序中,跟隨應用程序一同啟動運行,使得應用程序獲得缺省安全能力。

RASP可應用于DevOps流程中的“發布”和“運營”階段,在當前常態化的攻防博弈的場景下,線上應用要面臨著0day/Nday,釣魚郵件、社工、Web攻擊等諸多威脅,縱然有蜜罐、WAF、IPS、IDS等安全防護節點,仍然有防護維度上的缺失,需要RASP從應用本身上進行防護。

應用于“發布”環節

在供應鏈發布流程中引入RASP技術,可形成應用發布漏洞修復閉環。當企業應用開發發布周期緊張,針對已經發現的應用漏洞,尤其是第三方組件漏洞,難以在規定周期內修復,可能導致待修復漏洞存量越來越多,形成安全隱患。而且漏洞修復成本也相對較高,需要定位問題代碼段重新編碼,編碼后仍需要進行上線前測試,同時也影響著應用的穩定性。

那么在“發布”環節引入RASP后,提供了應用漏洞快速修復方案,在以往的應用發布時,可能會存在應用“帶病上線”的問題,RASP可在應用上線時,將已知漏洞修復,且具備免疫未知威脅的能力。在應用上線后,如果發現漏洞,可利用RASP的虛擬補丁技術迅速將漏洞進行修復,杜絕漏洞利用的可能,為實際的漏洞修復贏得足夠多的時間。形成應用發布漏洞修復閉關管理。

圖2 基于RASP的應用風險閉環管理

● RASP的虛擬補丁技術幫助企業快速修復漏洞,阻斷漏洞利用,消除潛在風險,為企業修復漏洞爭取緩沖時間。

● RASP工具防止應用程序帶病上線,上線前注入威脅免疫能力,實現出廠獲得缺省安全能力。

應用于“運營”環節

隨著目前應用逐漸的微服務化,發布、更新版本迭代速度較快,并且存在很多存量的應用系統,其中又可能包含著大量的陳舊,沒人維護的系統,已知難以修復的安全問題較多,且對于日常運維、護網過程中出現的應用本身的安全漏洞,傳統的邊界安全產品,例如防火墻、WAF等,難以抵御應用層面的攻擊。

引入RASP技術,可實現對現有存量應用系統安全加固,可對大量的存量系統、已知的應用安全問題進行保護和修復,同時使得應用在發布出廠時自帶免疫,在安全運營中梳理應用資產、補充監控應用入侵攻擊,并提供有效阻斷策略。

2.2如何嵌入供應鏈安全治理流程

2.2.1?應用探針插裝

無需修改現有源代碼,將探針以 Attach 方式接入,且附隨應用一起啟動,實現應用出廠威脅自免疫,包含全部自研代碼、第三方組件和 Web 容器。

無論應用程序以何種形式、部署何處,例如目前主流的微服務架構,公有云、私有云、容器環境,物理機、虛擬機部署,RASP探針都可以進行接入。且兼容多種語言,可以完美融入供應鏈安全治理流程中。

同時可以與應用層入侵檢測、WAF進行聯動,并支持熱補丁修復。

圖3 RASP的工作位置

●可與應用層入侵檢測、WAF進行聯動防護。防護通過編碼手段、私有協議、偽裝/變種攻擊,可能繞過傳統防護設備的攻擊行為。

● 可支持熱補丁修復漏洞,為開發人員修復漏洞贏得足夠的時間。

2.3?如何向技術人員、管理人員提供可用信息

2.3.1?攻擊流量內容

RASP基于其技術原理,可從某個Web應用或微服務應用獲取到請求并分析其數據內容和函數執行過程。相對于網絡邊界設備對于加密流量無法審計的問題,RASP可從應用程序內部獲取到完整解密后的請求數據。

圖4 HTTP請求數據內容

并且,傳統安全設備主要以HTTP/HTTPS流量分析為主,隨著云原生技術的發展,微服務架構普及,以及各類API接口逐漸轉為各類RPC接口協議(如Dubbo、二開RPC框架協議等)。傳統安全設備幾乎不對這類流量進行監控和解析,通過RASP技術則可模擬企業RPC協議解析過程進行適配,解決該類型流量內容無法可視的問題。

圖5 Dubbo框架協議請求數據內容

2.3.2?程序內部上下文可視分析

審計東西向流量的目的是為了觀察應用間是否存在惡意操作。由于傳統安全技術的限制,當應用程序接收到請求后無法審計內部具體函數操作。而RASP可跟蹤程序執行上下文信息,延展了東西向流量到應用程序內部的行為可視能力。

圖6 東西向流量及代碼執行過程跟蹤

從外部入侵攻擊的結果看,最終執行并達到攻擊目的的位置,往往是程序對資源訪問過程中存在缺陷的位置,如數據庫訪問、命令執行、網絡請求、文件操作等。通過對程序內部函數堆棧及函數變量進行審查,可為安全人員補充應用層面的安全運營數據及可供審計的內容,包括具體訪問的webshell后門、惡意命令、SQL注入語句、敏感數據內容及存儲方式等。

2.3.3?微服務調用鏈路信息

隨著分布式、微服務架構、多語言、前后端分離模式的應用普及,溯源微服務間的攻擊入侵路徑存在難度。通過追蹤機制,則可便捷地關聯入侵請求所經過的微服務應用,提供精準的溯源數據。

圖7 微服務鏈路追蹤過程

用戶通過瀏覽器發出HTTP請求,HTTP應用內部處理請求時由Dubbo服務消費方調用服務提供方觸發一次Dubbo RPC調用,再逐層返回給用戶層。在這次操作過程中,若在Dubbo服務提供方檢測到漏洞信息,希望可以向上溯源,找到觸發本次Dubbo調用漏洞的源頭調用信息,如:HTTP GET/user/xmirror。從而溯源繪制調用鏈路路徑,如下效果:

圖8 溯源鏈路路徑

2.4?如何為供應鏈安全治理帶來便利

2.4.1?構建攻防演練最后一道防線

信息安全的關鍵因素是人,有人的地方就有江湖,江湖中避免不了攻防博弈,而博弈是攻防雙方采用越來越新的技術進行較量的過程。對于國家、企事業單位甚至個人而言,守護安全防線,確保數據不遺失是最終目的。然而,并沒有一勞永逸或者可以防止所有威脅、漏洞的安全防護工具,對于信息安全從業者而言,需要“動態”思維的根據安全威脅制定相應的解決方案。

攻防演練活動中“以攻促防”、“以攻驗防”的思維正是運用了這種思想,并希望通過這種形式找到安全防線缺失的地方,鞏固安全邊界,讓攻擊者無處遁形,所有的“陰謀論”無計可施。而且,攻防演練活動自興起以來,越來越常態化。但是,每年的這個時刻,都是攻防雙方激烈博弈、尤為緊張的時刻。面對0day/Nday、郵件釣魚、社工、Web攻擊等諸多手段,縱然有蜜罐、WAF、IDS/IPS等諸多防護工具,仍然有安全防護能力的缺失,缺少運行時應用程序保護的RASP技術。

防守方的困境

攻防對抗是“敵在明,我在暗”,攻守不對等對于防守方而言更像是一個猜謎游戲,因為完全猜想不到攻擊者會從哪個地方發起攻擊,采用什么樣的攻擊手段,比較薄弱的防守面是否已經暴露,自身的數據是否已經泄露等等諸多問題,可謂是神經緊繃、夜晚失眠、飯菜不香,真希望攻防演練的活動抓緊結束,避免自身丟分,被吊打的很慘。

眾所周知,在攻防中為了牢固防線安全運營團隊會部署安全防護工具、制定安全解決方案對防線進行實施保護,包括防火墻、IPS/ IDS、漏洞檢測解決方案、嗅探、安全信息和事件管理(SIEM)系統,期望通過持續不斷的檢測分析數據活動,改善安全事件的檢測。但是,防火墻、IPS/ IDS基于流量檢測的機制,容易造成攻擊繞過;而且攻擊者會通過滲透對服務器、操作系統和容器的加固應用程序平臺進行攻擊,勢必會造成嚴重后果。特別是,如果存在漏洞,則利用漏洞會更容易完成攻擊行為。

而且,整個攻擊的進程攻擊者會進行有預謀、有步驟的攻擊,防守者會參照ATT&CK或者洛克希德·馬丁網絡殺傷鏈(cyber kill chain)模型制定相應的防御措施,具體的戰略、戰術會在后面的文章中為大家描述,這都對防守方造成了很大的困惑。

RASP為企業構建最后防線

對于防守方而言,總希望找到一個解決方案,縮短 MTTD(平均檢測時間)和 MTTR(平均響應時間),實現更成熟的SecOps 和更好的整體安全性。不得不提到RASP,它是實現內部安全的絕佳技術。運行時應用程序安全保護 (RASP) 工具通過使用直接嵌入到應用程序中或與應用程序相鄰的安全引擎來保護應用程序。RASP解決了現有的用于保護網絡和Web應用程序的外部安全技術的局限性。RASP使安全運營團隊能夠以前所未有的方式監控應用程序,并使用應用程序威脅情報在攻擊發生時獲取有關攻擊的完整上下文,并立即阻止攻擊。運行時應用程序自我保護 (RASP) 技術通過使用Deep Security Instrumentation 盡可能深入地進入應用程序堆棧并保護其免受威脅,從而提供前所未有的可見性。對于每次攻擊,RASP 都會看到:

● 攻擊嚴重程度和攻擊頻次

●?攻擊向量、攻擊者 IP 地址

●?具有完整堆棧跟蹤詳細信息的攻擊目標

這也是與防火墻(WAF)不同的地方,借助RASP安全團隊可以自動收集、發現和量化威脅,并進行補救。而且,RASP技術相對于WAF具有超準確的可見性和低誤報率,同時還可以使用已經熟悉的現有常見SOC工具和控制臺(日志、SIEM)一起實現內部安全。

運行時情境安全

雖然RASP經常拿來與WAF做對比,然而它更像是WAF后面的一道防線,增強了安全性。RASP通過在現有應用程序代碼中植入傳感器來實時監控和控制關鍵執行點。利用這些技術,RASP 成為應用程序的一部分,使它們能夠獨立于其部署環境而受到保護。而且,RASP可以在本地、云和容器的任何部署架構中運行。在安全策略制定時,可以將RASP技術集成到SOC/SecOps威脅監控和響應工具中,包括 SIEM 可視化、以及可定制的應用程序和用戶活動日志。

日志增強功能將RASP威脅監控深入到應用程序和用戶行為的內部工作,無需開發人員干預,因此最終用戶可以記錄應用程序內的任何內容并將威脅情報直接發送到日志管理平臺。像登錄失敗、權限提升、特定數據庫調用、應用程序環境的任何方面都可以被記錄下來,并監控威脅與危害指標 (IoC) 和攻擊 (IoA) 的相關性。所以,當訪問應用程序的特定區域或出現特定條件(敏感數據/文件操作或敏感命令)時,立即發出警報。由于RASP在應用程序打開時立即自動運行,所有來自應用程序運行時內部的應用程序威脅監視和日志記錄都將持續運行,而無需修改任何一行源代碼,無需調優或掃描,也無需重新部署,當威脅產生時,RASP會立刻對威脅做出反應,進行阻止。

除此之外,RASP技術結合SCA分析技術、IAST技術可以在DevSecOps模型的整個生命周期中對代碼安全進行檢測、防御,實現安全左移,不局限于應用運行時的事后防御。而且,RASP技術集合PTE技術可以在攻防演練活動中實現自動化檢測,對安全威脅進行驗證,確保安全鏈路完整。正因此,RASP技術可以更好的在攻防演練中發揮作用,確保防線安全,避免防守方丟分。

攻防角度下積極防御體系的協同

以EDR技術為例,其作為傳統縱深防御體系下主機安全層面防御方案,特點是采用自適應安全體系的架構,覆蓋防御、監控、回溯和預測這四項關鍵能力,各項安全能力以智能、集成和聯動的方式應對各類攻擊。

一般而言,EDR主要在主機層面提供資產清點、風險發現、入侵檢測、安全基線、病毒查殺等安全運營能力,對于應用微服務相關以及內存馬都無力覆蓋,對于反序列化攻擊、代碼注入等攻擊類型也難以防御。但是在與RASP協同聯動后,可在應用層面建立積極防御能力,并切實反饋東西向流量防護效果。

從攻防角度看,應用層面積極防御的建立可促進縱深防御體系更加深入,推進業務應用實質性安全落地,主要包含以下方面:

1)應用資產管理:借助插樁節點推廣覆蓋,可梳理微服務應用IP、URL地址、API接口、第三方組件等,并繪制資產關聯圖譜;

2)運行時入侵檢測:基于應用污點分析和上下文分析技術,實時檢測應用漏洞利用、webshell訪問執行、內存馬執行等,并實時預警高危組件風險,定位具體應用;

3)攻擊威脅疫苗:免疫通用Web應用漏洞及第三方組件安全漏洞,并對EDR難以防御的反序列化、代碼執行等攻擊進行更加有效的阻斷;

4)應用安全基線:符合性應用層基線配置檢測,覆蓋中間件、單應用、微服務等;

5)敏感數據審查:基于可獲取應用內部數據輸入、操作、內容的先天技術優勢,可針對業務側關注的個人信息、業務數據等敏感信息進行合規審查,必要時進行輸出阻斷和過濾;

6)應用熱補丁:對已上線的重要應用系統,當出現重大漏洞短時間難以修復時,可以動態下發熱補丁進行修復,在不中斷業務的同時為應用系統提供臨時防護,為漏洞修復爭取寶貴的時間;

7)東西向流量分析:以微服務架構作為基礎,除了對應用間流量和東西向流量描繪,更能深入呈現應用程序內部具體執行操作,為安全運營提供從網絡層到應用內部真實執行過程數據,分析攻擊鏈路。

因而可以認為,主機層EDR技術和應用層RASP技術并不存在應用場景的沖突。RASP技術創造性實現了數字化應用發布的出廠免疫,不僅帶來了對于未知入侵風險的直接防御能力提升,也將東西向流量的智能檢測防御技術進行了延伸。EDR和RASP兩種技術的聯動,可天然作為積極防御體系下相互配合協作的伙伴,打通應用防護與治理的最后“一公里”。

2.4.2?優化提升攻擊入侵響應和防護

RASP技術原理核心在于可對最終應用進行輸入流量檢測,并在代碼函數級別對變量進行檢查跟蹤、過程污點分析、惡意執行阻斷,在應用漏洞和流量行為分析上具有明顯優勢。

經常暴露且危害較大的應用漏洞,大多存在于開源軟件和第三方組件。黑客可以通過源碼分析發現其中的漏洞,進而當發現攻擊目標使用該開源軟件或第三方組件時,便可以發起0day攻擊。常態化安全運營下,對應用漏洞的修復或者補償措施通常會采用如下三種方式:

1)更新升級有漏洞的組件。這是主流推薦的修復方式,但為了不影響業務,這種方式需要有較長評估測試周期。如果是0day漏洞,可能官方還未提供更新版本或者補丁;如果是老舊系統,存在版本已經停止維護的情況。

2)使用漏洞情報中的臨時修復方案。這屬于非官方修復方式,可能存在某些二次開發應用不適用情況,且如果涉及修改源碼,需要有同時具備安全和研發能力的人員儲備,不適合小型團隊。

3)添加防御攻擊流量的WAF策略。WAF屬于邊界防護,應用資產覆蓋面廣,易于操作。但如果規則策略嚴苛,容易造成無關應用流量的誤攔截,影響正常業務請求。

漏洞在被發現并被攻擊者利用產生危害時,被定義為一次完整的風險入侵事件。也就是說,如果應用存在漏洞,但攻擊者無法利用該漏洞進行下一步操作,則該漏洞風險就不產生危害。RASP的基本原理是利用HOOK技術,通過替換函數體或在函數前后插入檢測代碼,實現在風險操作執行時進行阻斷等。

對于一些經常爆發漏洞的開源軟件和第三方組件而言,漏洞存在位置和利用方法可能不同,但是在進行利用時,執行到應用代碼底層,往往都會聚集到一些“敏感”函數上,如反序列化、數據庫執行、命令執行、文件操作、響應返回等相關函數。如果通過RASP技術對這些底層“敏感”函數調用做一定識別阻斷,即可免疫大部分0day攻擊。甚至在攻擊利用時,如同WAF一般,對攻擊請求流量進行過濾,但RASP相對WAF的優勢在于更加具有顆粒度(可設置對某個應用進程生效)且流量內容透明。因此,從此類實踐應用出發,RASP天然可作為漏洞熱修復和免疫0day漏洞的應用安全疫苗。

結? 語

RASP作為應用程序的免疫屏障可以為其提供自我防護的能力,同時也可以完全融入DevOps流程中的“發布”、“運營”階段。從“發布”階段的應用風險漏洞管理,到“運營”階段的資產梳理和安全加固,再到供應鏈安全治理,RASP在各個階段都發揮著極大的作用。

國內RASP工具推薦

1.云鯊RASP

基于運行時情境感知技術的新一代應用威脅免疫平臺

懸鏡云鯊RASP自適應威脅免疫平臺作為懸鏡安全第三代DevSecOps數字供應鏈安全管理體系中運營環節的持續檢測響應平臺,通過專利級AI檢測引擎、應用漏洞攻擊免疫算法、運行時安全切面調度算法及縱深流量學習算法等關鍵技術,將主動防御能力“注入”到業務應用中,借助強大的應用上下文情景分析能力,可捕捉并防御各種繞過流量檢測的攻擊方式,提供兼具業務透視和功能解耦的內生主動安全免疫能力,為業務應用出廠默認安全免疫迎來革新發展。

核心能力

Al智 能 威 脅 發 現

傳統邊界防御產品對應用內部邏輯一無所知,云鯊RASP 可智能獲取來自應用程序體系結構和運行時的豐富 信息,結合上下文感知異常行為,全面發現各類已知及未知威脅,包括 OWASP ? Web/API應用代碼漏洞、第 三方開源組件漏洞、各類組件反序列化、WebShell ?及內存馬等,誤報率更低、檢測更精準,更能代碼級定位 漏洞源頭,極大提升修復效率。

組件級資產測繪

結合運行時SCA 技術,在應用運行過程中實時獲取所調用的第三方組件信息,包括組件名稱、版本、路徑 等,并能獲取到調用組件的具體方法、傳入參數和返回值等運行時上下文數據,幫助企業全面準確地掌握應用中的第三方組件資產,為后續的組件管理、風險評估和合規審計等工作提供重要基礎。

攻擊檢測及溯源

對訪問應用請求的每 一 段代碼進行檢測,實時監測非法操作和攻擊行為,毫秒級告警攻擊事件、阻斷惡意攻 擊;通過分析被攻擊應用程序與內網流量,還原攻擊者的攻擊路徑與攻擊手法、記錄攻擊特征,實現對未知 攻擊手段的狩獵。

API 防 護

可 自 動 識 別 應 用API 資產,可視化展示全量接口,基于攻擊數據統計生成API 接口風險等級,并可 一 鍵添加熱補 丁 , 及 時 修 復API風 險 。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70867.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025-02-27 學習記錄--C/C++-PTA 7-29 刪除字符串中的子串

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、題目描述 ?? 二、代碼&#xff08;C語言&#xff09;?? #include <stdio.h> // 引入標準輸入輸出庫&#xff0c…

Redis---字符串SDS(簡單動態字符串)底層結構

文章目錄 什么是SDS&#xff08;簡單動態字符串&#xff09;SDS結構SDS的優點O(1) 時間復雜度獲取字符串長度避免緩沖區溢出減少內存重分配次數二進制安全兼容C語言字符串函數 SDS的操作總結 什么是SDS&#xff08;簡單動態字符串&#xff09; redis是由C語言編寫的&#xff0…

Elasticsearch:使用阿里云 AI 服務進行嵌入和重新排名

作者&#xff1a;來自 Elastic Toms Mura 將阿里云 AI 服務功能與 Elastic 結合使用。 更多閱讀&#xff0c;請參閱 “Elasticsearch&#xff1a;使用阿里 infererence API 及 semantic text 進行向量搜索”。 在本文中&#xff0c;我們將介紹如何將阿里云 AI 功能與 Elastics…

Spring Cloud Alibaba與Spring Boot、Spring Cloud版本對應關系

一、前言 在搭建SpringCloud項目環境架構的時候&#xff0c;需要選擇SpringBoot和SpringCloud進行兼容的版本號&#xff0c;因此對于選擇SpringBoot版本與SpringCloud版本的對應關系很重要&#xff0c;如果版本關系不對應&#xff0c;常見的會遇見項目啟動不起來&#xff0c;怪…

【含文檔+PPT+源碼】基于過濾協同算法的旅游推薦管理系統設計與實現

項目介紹 本課程演示的是一款基于過濾協同算法的旅游推薦管理系統設計與實現&#xff0c;主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含&#xff1a;項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套…

MTK Android12 預裝apk可卸載

文章目錄 需求解決方法1、device/mediatek/mt6761/device.mk2、/vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_vendor_list.txt3、路徑&#xff1a;4、Android.mk 需求 近期&#xff0c;客戶需要預裝一個apk&#xff0c;同時該apk要可卸載。解…

從 0 到 1,用 Python 構建超實用 Web 實時聊天應用

從 0 到 1&#xff0c;用 Python 構建超實用 Web 實時聊天應用 本文深入剖析如何運用 Python 的 Flask 框架與 SocketIO 擴展&#xff0c;搭建一個功能完備的 Web 實時聊天應用。從環境搭建、前后端代碼實現&#xff0c;到最終運行展示&#xff0c;逐步拆解關鍵步驟&#xff0…

視頻字幕識別和翻譯

下載的視頻很多不是漢語的&#xff0c;我們需要用剪映將語音識別出來作為字幕壓制到視頻中去。 剪映6.0以后語音識別需要收費&#xff0c;但是低版本還是沒有問題。 如果想要非漢語字幕轉成中文&#xff0c;剪映低版本不提供這樣功能。但是&#xff0c;用剪映導出識別字幕&am…

每天一個Flutter開發小項目 (4) : 構建收藏地點應用 - 深入Flutter狀態管理

引言 歡迎回到 每天一個Flutter開發小項目 系列博客!在前三篇博客中,我們從零開始構建了計數器應用、待辦事項列表應用,以及簡易天氣應用。您不僅掌握了 Flutter 的基礎組件和布局,還學習了網絡請求、JSON 解析等實用技能,更重要的是,我們一起探討了高效的 Flutter 學習…

Visual Studio打開文件后,中文變亂碼的解決方案

文件加載 使用Unicode&#xff08;UTF-8&#xff09;編碼加載文件 C:\WorkSpace\Assets\Scripts\UI\View\ExecuteComplateView.cs時&#xff0c;有些字節已用Unicode替換字符替換。保存該文件將不會保留原始文件內容。

OpenGL ES -> GLSurfaceView繪制點、線、三角形、正方形、圓(頂點法繪制)

XML文件 <?xml version"1.0" encoding"utf-8"?> <com.example.myapplication.MyGLSurfaceViewxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"…

threejs 安裝教程

嗨&#xff0c;我是小路。今天主要和大家分享的主題是“threejs 安裝教程”。 在當今的數字化時代&#xff0c;用戶對視覺體驗的要求越來越高。傳統的2D網頁已經無法滿足所有需求&#xff0c;而三維&#xff08;3D&#xff09;圖形技術則為前端開發者提供了新的方向。…

win11編譯pytorch cuda128版本流程

Geforce 50xx系顯卡最低支持cuda128&#xff0c;torch cu128 release版本目前還沒有釋放&#xff0c;所以自己基于2.6.0源碼自己編譯wheel包。 1. 前置條件 1. 使用visual studio installer 安裝visual studio 2022&#xff0c;工作負荷選擇【使用c的桌面開發】,安裝完成后將…

如何安裝Vm和centos

一、VMware 安裝 &#xff08;一&#xff09;前期準備 下載 VMware 軟件&#xff1a;首先&#xff0c;你需要從 VMware 官方網站下載適合你計算機操作系統版本的 VMware Workstation 軟件安裝包。確保選擇的版本與你的主機操作系統兼容&#xff0c;例如&#xff0c;如果你的主…

OpenGL 04--GLSL、數據類型、Uniform、著色器類

一、著色器 在 OpenGL 中&#xff0c;著色器&#xff08;Shader&#xff09;是運行在 GPU 上的程序&#xff0c;用于處理圖形渲染管線中的不同階段。 這些小程序為圖形渲染管線的某個特定部分而運行。從基本意義上來說&#xff0c;著色器只是一種把輸入轉化為輸出的程序。著色器…

服務器離線部署DeepSeek

目標 本次部署的目標是在本地服務器上部署DeepSeek。但是該服務不能連接外網&#xff0c;因此只能使用離線部署的方式。為了一次完成部署。現在云服務器上進行嘗試。 云服務器部署嘗試 云服務器配置 CentOS72080Ti 11GB 安裝準備 1、上傳iso并配置為本地yum源 安裝前先將…

刪除idea recent projects 記錄

1、退出idea&#xff08;一定要全部退出idea&#xff0c;要不然刪除后&#xff0c;idea一退出&#xff0c;又保存上了&#xff09; 2、進入 C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2024.1\options 目錄 根據不同的版本號 IntelliJIdea2024.1 這個地方…

【MySql】EXPLAIN執行計劃全解析:15個字段深度解讀與調優指南

文章目錄 一、執行計劃核心字段總覽二、關鍵字段深度拆解1. type&#xff08;訪問類型&#xff09;——查詢性能的晴雨表典型場景分析&#xff1a; 2. key_len&#xff08;索引使用長度&#xff09;——索引利用率的檢測儀計算示例&#xff1a; 3. Extra&#xff08;附加信息&a…

如何實現一個 Spring Boot Starter

在 Spring Boot 中&#xff0c;Starter 是一種自動配置的模塊&#xff0c;它封裝了一些常用的功能&#xff0c;并通過 Spring Boot 的約定大于配置的原則&#xff0c;使開發者能夠快速使用和集成相關功能。通常&#xff0c;Spring Boot Starter 包含了所需的依賴、配置、自動化…

使用python做http代理請求

有這樣一個需求現在有兩臺A&#xff0c;B兩臺電腦組成了一個局域網&#xff0c;在A電腦上開發webjava應用&#xff0c;需要調用第三方接口做http請求&#xff0c;但是這個請求只能在B電腦上請求。 一種解決方案&#xff1a;自定義一個中間服務&#xff0c;在電腦B上運行一個簡…