<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    基于機器學習建模的 XSS 攻擊防范檢測

    VSole2022-04-12 15:38:31

    隨著網絡應用和互聯網技術的高速發展,生活更加便利的同時,也產生了大量的安全漏洞。跨站腳本(Cross-Site Scripting,XSS)攻擊是一種高危害、高影響力的網絡攻擊手段,廣受黑客、高級持續威脅(Advanced Persistent Threat,APT)組織的青睞。在 web 發展初期,惡意攻擊者針對應用層的web 弱點,通過向 web 頁面插入惡意的超文本標記語言(Hyper Text Markup Language,HTML)代碼,以達到竊漏 cookie 和獲取用戶個人隱私等目的。在web 2.0 時期,當用戶瀏覽 web 頁面時,攻擊者僅通過掛馬等方式就可執行其中的惡意 HTML 代碼,就可以完成劫持會話記錄、偷取用戶訪問歷史信息等惡意操作。XSS 的出現是 web 安全史上的一個里程碑,近年來 XSS 攻擊事件層出不窮。在 2005年,一位名叫 Samy 的網友在全球最大的在線交友平臺——MySpace 中發布了一個 XSS 蠕蟲攻擊事件,借助 MySpace 網站自身存在的漏洞,在短短幾小時內,產生了大量的惡意數據和垃圾信息在 MySpace上傳播,對網站和用戶造成了巨大的經濟損失。在2009 年,推特(Twitter)遭遇了來自 stalkDaily 網站的蠕蟲病毒傳襲擊,用戶一旦訪問該網站,電腦就會被感染,并會發送大量的 Twitter 垃圾信息,以誘騙其他用戶訪問 StalkDaily 網站來感染別的主機。在 2011 年,在新浪微博又出現了一次比較大的 XSS 漏洞攻擊,“中毒”的微博用戶會自動向自己的粉絲發送含毒的微博與私信,并自動關注一位名為 hellosamy 的用戶,粉絲點擊此惡意鏈接后會再次中毒,以此形成惡意循環,此蠕蟲事件僅持續了 16 分鐘,受影響的用戶就達數萬個。此次 XSS攻擊事件利用了用戶間的人際關系,發布帶有誘惑性字樣的博文,引起別人關注并點擊,從而得到大范圍的傳播。每年的 XSS 攻擊都會造成非常巨大的經濟損失,目前已被列為危害最為嚴重的 web 漏洞之一。

    XSS 攻擊總體上可分為非持久型 XSS 攻擊和持久型 XSS 攻擊這兩種類型。非持久型的攻擊是一次性的,往往僅對當前的頁面產生影響,而持久型的 XSS 攻擊會把攻擊者的數據存儲在服務器端,因此整個攻擊行為將持續存在。XSS 攻擊從攻擊手段上大體可分為反射型、存儲型和文檔對象模型(Document Object Model,DOM)3 類:反射型是只經過后端但不經過數據庫的一種 XSS 攻擊;存儲型XSS 攻擊是既經過后端又經過數據庫的一種攻擊;DOM 型是基于文檔對象的一種漏洞,可以通過統一資源定位符(Uniform Resource Location,URL)傳入參數去控制觸發條件。在以上 3 類攻擊手段中,反射型 XSS 攻擊尤為常見,存儲型 XSS 攻擊具有較大的危害,DOM 型攻擊手段最為豐富。

    為了防范 XSS 攻擊,劉海等人提出了一種新的防范 XSS 攻擊的架構,該架構采用服務器端、服務器代理和客戶端瀏覽器、網頁備份服務器合作的方式來共同防范 XSS 攻擊,該方法不僅能夠防范XSS 攻擊類型,而且對于防止網頁的篡改有著一定的作用,但是由于 XSS 攻擊的多樣性,需要人為的維護和改善策略,需要大量的人力。黃文鋒等人提出了一種基于 DOM 型的 XSS 攻擊防范模型,通過在服務器端和客戶端合作防范 XSS 攻擊,具體是在服務器端采用隨機數對 DOM 動態寫入的每一個標識元素進行標識,在客戶端修改腳本解析引擎以獲得更新后的 HTML 文本,通過隨機數來標識可信標記與不可信標記。此方法檢測速度快,檢測精度高,但由于設計初衷只檢測 DOM 型的 XSS 攻擊,因此缺乏對其余 XSS 攻擊類型的檢測能力。楊美月等人 [3] 提出了使用機器學習技術識別 web 中的 XSS攻擊,首先對數據進行預處理,其次利用 doc2vec進行特征提取,最后將特征提取的特征向量作為分類模型的輸入,并訓練分類模型。當攻擊數據分布較為均勻時,此方法的準確率較高,但對數據集的依賴程度較大,對分布不均勻的數據集具有較低的識別性能。為了解決數據漂移和數據分布不均勻的問題,趙澄提出了基于支持向量機(Support Vector Machines,SVM)分類器的 XSS 攻擊檢測技術,在大量分析 XSS 攻擊樣本和正常樣本的基礎上,提出了代表性的五維特征并將這些特征向量化,然后進行算法的訓練與測試,通過深度特征到算法模型演練的技術來進行 XSS 攻擊識別,能夠有效識別常規 XSS 攻擊及其部分未知和變形攻擊,但由于缺乏較為細致的數據預處理過程,以至于后續特征工程無法準確提取出 XSS 攻擊特征,導致后期維護需要不停的數據打標、特征更新和算法迭代,極大地增加了人力成本。蔣華等人提出了基于行為的 XSS攻擊防范方法,該方法結合動態污點分析和超文本傳 輸 協 議(HyperText Transfer Protocal,HTTP) 請求分析處理,對應用程序中的敏感數據進行標記并跟蹤,以防止 XSS 蠕蟲的繁衍,能有效防止 XSS 攻擊和 0-day 蠕蟲的傳播,但該方法有一部分是手動的,還沒法達到自動化防范檢查的需求。為了解決自動化檢測等需求,張思聰等人提出了基于最大熵模型的 XSS 攻擊檢測模型。該模型首先通過輸入預處理模塊對原始輸入進行規范化處理,其次由特征提取模塊將特征序列轉化成特征向量,并將特征向量交由最大熵分類器進行分類,最后由結果處理模塊根據分類的結果進行后續的處理,此方法在已知條件有限的情況下給出的分類結果較為準確,但對存儲型 XSS 攻擊的檢測效果有待提高。馮倩等人提出了基于 Fuzzing 的存儲型 XSS 漏洞檢測技術,使用遺傳算法來優化攻擊樣本,將生成的 XSS 攻擊樣本作為 Fuzzing 的測試用例,以此來提高測試用例的覆蓋率,此方法有效降低了存儲型 XSS 攻擊的漏報率,但檢測面較小,無法有效地檢測反射型XSS 攻擊和 DOM 型 XSS 攻擊。錢麗在研究 XSS防御機制上,提出了過濾非法字符和字符轉義兩種手段,對用戶輸入的數據進行嚴格規范檢測和字符轉義處理,只有符合數據規范和經過字符轉義處理的輸入信息才被允許執行。該防御方法在 web 安全漏洞檢測過程中可有效識別一定的 XSS 漏洞,但無法檢測新的 XSS 變種攻擊。Salas 等人提出的使用滲透測試的方式檢測 XSS 漏洞,通過模擬 XML格式的攻擊進行滲透檢驗,對指定格式的 XSS 攻擊具有較好的檢驗效果,但 XSS 攻擊變幻豐富,此方法無法全量檢測與識別其余的 XSS 惡意攻擊。Jim等人提出了一種基于白名單和 DOM 沙盒的安全策略,在客戶端通過修改瀏覽器的方式來支持并執行安全策略,使得服務器端和客戶端合作防范 XSS攻擊,此方法能有效抵御部分 XSS 攻擊并提高防御精確率,卻缺乏后期及時性,無法及時響應與攔截惡意攻擊。Nadji提出了一種基于文檔結構完整性的方法,通過修改客戶端腳本解釋引擎的方式來檢測 XSS 攻擊,此方法具有較高的檢測率,但不便于配置與部署。

    Web 安全和人們的生活息息相關,在確保給網民帶來快捷服務的同時,理應為網民的財產與隱私保駕護航。自從 20 世紀第一個 XSS 攻擊誕生至今,每年都會衍生出新的,且更具威脅的 XSS 攻擊,給公司與個人造成了大量的財產損失。而現有的 XSS攻擊防范模型無法及時響應與部署,對不同類型的XSS 攻擊無法做到全量檢測與攔截。針對以上問題,本文提出一種基于機器學習建模的 XSS 攻擊防范檢測方法。該方法將海量數據經過數據加工模塊轉換為規整數據,并將安全攻防經驗用于特征向量的構造,然后用機器學習技術訓練算法模型,以此對流量進行全量、高效、精準的識別與攔截,發掘網絡流量中的 XSS 惡意攻擊。

    1、數據加工

    數據加工是整個建模的第一步,這是因為現實網絡流量中充斥著大量的無用干擾信息,且數據參差不齊。攻擊者會發現系統中存在的漏洞,并通過各種復雜的編碼、轉義技術來混淆和躲避 web 安全檢查。整體數據加工流程如圖 1 所示。

    圖 1 數據加工流程

    通過數據加工模塊對原始數據進行數據解析與加工,將混淆視聽的數據轉換成真正有價值的數據。數據滲透模塊中包含 base64 處理、HTML 轉義字符處理、URL 解碼處理、干擾字符處理、HTML 注釋處理、特殊操作符處理等操作。

    Base64內容是數據的一種編碼表示,有一定的加密作用,是網絡上最常見的用于傳輸 8 Bit字節代碼的編碼方式之一。Base64 編碼可用于在HTTP 環境下傳遞較長的標識信息,在 web 攻防中,攻擊者使用 Base64 來將 URL 中一個較長的標識符編碼為一個字符串,用作 HTTP 表單中的參數,采用 Base64 編碼具有不可讀性,即所編碼的 XSS 攻擊數據不會直接被安全人員用肉眼所識別。字符轉義也稱字符實體,在 HTML 中像“<”和“>”這類符號已經用來表示 HTML 標簽,因此不能直接當作文本中的符號來使用。為了在 HTML 文本中使用這些符號,就需要定義它的轉義字符串,且有些字符在 ASCII 字符集中沒有定義,也需要使用轉義字符串來表示。攻擊者利用了轉義字符的原理,當需要隱蔽自己的攻擊意圖時會在 URL 中隱藏 HTML標簽,用“"”等字符進行 HTML 的“<”關鍵符號替代,來迷惑 web 安全人員。在互聯網上傳送 URL 只能采用 ASCII 字符集,即只能使用英文字母、阿拉伯數字和某些標點符號,如果包含中文等其余字符時,就需要再使用編碼。攻擊者利用了URL 編解碼原理,將惡意代碼通過 URL 編碼 后進行隱蔽混淆,以逃過 web 安全檢索。除了編碼轉義等混淆手段,攻擊者也會在 URL 中加入干擾字符和注釋信息等,起到蒙蔽視聽的作用。

    2、特征工程

    特征工程是把數據加工模塊清洗好的規整數據進行加工處理,轉換為機器模型可識別的向量化指標數據。特征工程作為銜接數據加工和算法模型的中間橋梁,是整個算法建模流程的重中之重,好的特征工程能夠有效提煉出正常樣本和惡意樣本的差異所在,幫助機器學習模型做出正確的抉擇,有效提高模型的檢測性能。

    本文將特征分為常規特征、字符統計特征、特定模式特征和特殊字符特征四大類,共 19 個特征。特征分類如圖 2 所示。

    圖 2 特征工程分類

    其中信息熵常被用來作為一個系統的信息含量的量化指標,用于表示一段信息的混雜程度。常見的 XSS 攻擊信息中包含的字符種類較多且字符混雜程度較高,信息熵偏高,用信息熵特征能較好地識別出 XSS 攻擊,信息熵計算公式:

    式中:x 為隨機變量;p(x) 為輸出概率函數;H(X)為信息熵值。統計特征用于表示 XSS 攻擊信息中某類特殊關鍵詞 的出現頻數。XSS 攻擊中往往帶有某類特定的惡意關鍵詞用于惡意函數或惡意代碼的鏈接傳遞作用,而正常的 URL 信息中很少帶有此類關鍵詞,所以關鍵詞信息作為一個特征,能很好地區分正常URL 信息和 XSS 攻擊信息,但若單一憑借關鍵詞的出現頻率來認證 XSS 攻擊,模型會有較高的誤報率。為了解決高誤報問題,通過反復地對大量正反樣例進行觀察與取證,使特征在涵蓋關鍵詞信息的同時,會為關鍵詞設計其前后特定模式的字符順序,當僅出現某單一關鍵詞時并不會觸發此類特征,關鍵詞正則匹配公式:

    在 URL 信息中會包含一些攻擊者精心構造和編排的特定字符,其中局部單一的字符串不具有 XSS 攻擊的威脅。當其前后字符遵循特定的出現順序時即具備觸發惡意攻擊,比如 JAVASCRIPT 模式的 XSS 攻擊,此模式以 形式的字符作開頭、 形式的字符作結尾,中間以其余字符填充并整體混淆在 URL信息中,這種特定模式的字符串用肉眼難以區分出其危害,本文使用正則匹配發掘此類字符:

    并通過特定模式特征統計其出現頻數,檢測流程如圖 3 所示。

    圖 3 特定模式檢測流程

    3、算法模型

    算法模型是把特征工程加工好的特征進行巧妙組合,通過高階決策指標對高緯特征進行融合、分類并給出最終結果指示的過程。安全算法模型有別于傳統的入侵檢測系統(Intrusion Detection Systems,IDS)規則,傳統的 IDS 規則通過專業知識區分惡意網絡攻擊,并基于手工和經驗的方式來維護檢測規則和維持檢測性能。IDS 規則局限于人為經驗和繁瑣的工程步驟,而算法模型則通過構建復雜的決策邏輯,發掘數據中真正有用的關聯信息,在減輕人工靜態工作強度的同時可有效提高檢測效率。通常而言,算法模型具有較低的維護成本和較高的檢測準確率,在安全評估和安全決策方面具有較好的應用前景。

    本文采用機器學習決策樹分類算法進行算法建模。決策樹是一種從根節點開始對數據集進行測試劃分,并將不同數據測試結果最終劃分成不同葉子節點的樹狀結構的方法,本質上是通過一系列復雜規則對數據進行分類的過程。對于給定的數據樣本集合,決策樹 C4.5 使用信息增益率來選擇分裂屬性,屬性 A 的信息增益表達式:

    式中:訓練集 S 通過屬性 A 劃分為 n 個子數據集,表示第 i 個子數據集中樣本的數量,|S| 表示在屬性劃分之前的數據樣本總量,通過屬性 A 劃分樣本集之后的信息增益和信息增益率為:

    類型為連續型的屬性進行離散化處理,對屬性B 的具體取值進行升序排列后得到序列:

    式中:為屬性 B 的具體取值。

    在序列 D 中的 N-1 種二分方法求得二分閾值:

    閾值將數據集劃分為兩個子集,并通過計算其信息增益選取 N-1 種信息增益最大的分割方式作為屬性 B 的劃分結果:

    式中:E(S) 代表數據集進行屬性劃分之前的信息熵、代表數據集按照屬性 B 進行數據劃分之后的信息熵。

    決策樹的決策運營邏輯如圖 4 所示。

    圖 4 決策樹運營邏輯

    為了防止過擬合的問題,決策樹 C4.5 采用一種自頂向下的剪枝方法,通過評價一個葉子節點在剪枝前與剪枝后對樣本誤判率的高與低,來決定此葉子節點是否具備剪枝的必要。對于一個覆蓋了 m個樣本、e 個錯誤樣本的葉子節點,該葉子節點的樣本劃分誤判率是,其中 p 表示懲罰因子。對于一棵有 n 個葉子節點的決策樹,其誤判率為:

    式中:為樹結構中第 i 個葉子節點的錯誤樣本數;為樹結構中第 i 個葉子節點的樣本總數;為樹結構中全部葉子節點的懲罰因子。對于二分類子樹的誤判次數就是伯努利分布,即可估算出子樹對于誤判次數的均值和標準差為:

    去掉原先的葉子節點,將子樹替換為新的二分類葉子結點后,其誤判次數也滿足伯努利分布,新葉子節點的誤判率和誤判次數均值為:

    當子樹的誤判次數均值和標準差之和大于對應葉子節點的誤判均值時,則進行剪枝操作,剪枝后在整體樹結構中原子樹替換為新的葉子節點。剪枝條件為:

    決策樹是一種白盒模型,對數據量的依賴程度較小,且模型的決策邏輯具有可觀測性,相較于其他黑盒模型算法而言,決策樹算法具有更強的可解釋性。決策樹的算法流程如圖 5 所示。

    圖 5 決策樹算法流程

    4、性能測試與分析

    模型訓練數據集通過網絡開源共享、公司安全團隊積累、互聯網流量渠道采集,由共計 420 萬條數據組成,并在安全數據分析專家的指導下進行修正和核實整個數據集的標注評判。數據集由 330 萬白樣本和 90 萬黑樣本組成。將整體樣本集按照 7 ∶ 3分別劃分成用于模型訓練和用于模型驗證的數據集,模型采用 2 分類的方式進行結果評判,并采集線上流量數據進行模型分析測試,通過準確率和召回率等評判指標來進行模型的修正與回溯。通過比較不同方法的性能,得到了如表 1 所示的結果。

    表 1 不同評估方法的性能比較

    如表 1 所示,基于機器學習建模的 XSS 攻擊防范檢測具有較高的準確率,在提煉 IDS 規則特征的同時,能較好地融合安全專家的業務經驗知識。本文模型能夠從海量信息中高效準確發掘攻擊信息,具有很強的衍生性能,且可維護性強,能有效地降低人力維護成本,在高效運營的同時能及時發掘攻擊者的真實意圖,并為安全分析人員提供更好的指示,使他們能夠更好地維護網絡安全環境。

    5、結 語

    本文研究了基于機器學習建模的 XSS 攻擊防范檢測模型,在網絡流量安全智能檢測領域引入機器學習技術,實現了對網絡流量中跨站腳本攻擊的智能化檢測。通過分析現有檢測方式對 XSS 攻擊檢測的不足,并結合 XSS 攻擊靈活多變、混淆復雜等特點,提出了一種基于安全專家經驗學習、業務信息特征加工和機器學習算法建模的檢測方式,能很好地識別并檢測網絡中的真實 XSS 攻擊,解決了傳統檢測方式中誤報高、效率低的難題。此檢測方式能更好地檢測、響應和攔截危險網絡攻擊,具有準確率高、泛化性強、維護性高的特點,利于即時檢測已知 XSS 攻擊和即時發現未知 XSS 威脅,有助于更好地保障網絡安全生態環境。

    引用本文:溫嵩杰 , 羅鵬宇 , 胥小波 , 等 . 基于機器學習建模的 XSS 攻擊防范檢測 [J]. 通信技術 ,2022,55(3):351-358.

    xss機器學習
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在安全領域引入機器學習算法,能夠準確識別復雜多變、高危惡意的 XSS 攻擊,提高了安全設備對威脅攻擊的檢測能力。
    當人工智能遇上安全第7篇文章介紹基于機器學習的安全數據集,希望對您有幫助
    安全態勢感知系統本質就是一個大數據分析系統
    繞過 XSS 檢測機制
    2022-05-05 07:30:30
    跨站點腳本 (XSS) 是最常見的 Web 應用程序漏洞之一。它可以通過清理用戶輸入、基于上下文轉義輸出、正確使用文檔對象模型 (DOM) 接收器和源、執行正確的跨源資源共享 (CORS) 策略和其他安全實踐來完全防止。盡管這些預防性技術是公共知識,但 Web 應用程序防火墻 (WAF) 或自定義過濾器被廣泛用于添加另一層安全性,以保護 Web 應用程序免受人為錯誤或新發現的攻擊向量引入的缺陷
    半個月前發布了xscan掃描器,這期間又針對很多場景進行了優化,本文來做一個總結。基于dom相似度的爬蟲獲取數據集的一個重要方式就是爬蟲,開源爬蟲中比較好的有projectdiscovery的katana和 crawlergo。此時在之前payload基礎上加一個引號,就能破壞原有結構,此時asdsda經過語義分析后,屬性為 Attribute的name,語義發生了改變,則說明可以XSS了。對url每層路徑也進行一下檢測,也能發現很多XSS。真實世界有趣的XSS國外也有個xss掃描器叫knoxss,它的測試用例不錯,覆蓋了很多場景。
    Trend Micro統計了十個地下論壇的數據,男性黑客與女性黑客的數量差距并不懸殊,Trend Micro建議執法人員在開展工作時要避免潛意識假設犯罪分子為男性。
    Amazon SageMaker 是一項完全托管的機器學習服務。借助 SageMaker,數據科學家和開發人員可以快速輕松地構建和訓練機器學習模型,然后直接將它們部署到生產就緒的托管環境中。
    如何有效地防護來自網絡中的攻擊行為已成為當前亟需解決的問題。這套網絡通信的傳輸控制和協議套件被稱為“TCP/IP”,是當今互聯網通信的基礎。Check Point基于高級威脅防護與分析解決方案,開發標準的統一架構,可實時共享威脅情報,預防對虛擬實例、云部署、終端、遠程辦公室和移動設備的攻擊。相關報告顯示,2018年由機器人和僵尸網絡產生的惡意流量分別占據所有網絡流量的37.9%和53.8%。
    以下為信息安全各個方向涉及的面試題,星數越多代表問題出現的幾率越大,沒有填答案是希望大家如果不懂能自己動手找到答案,祝各位都能找到滿意的工作:) 注:做這個List的目標不是全,因為無論如何都不可能覆蓋所有的面試問題,更多的還是希望由點達面,查漏補缺。
    API流量指使用API在不同應用程序或系統之間傳輸的數據和請求,可以幫助不同的軟件應用進行聯系并交換數據,從而實現應用系統之間的有效集成和交互。相比傳統的Web應用程序,API會產生更多的數據流量和調用需求,而其中也難免會出現一些惡意或錯誤的請求,由于這些請求往往與海量的合規請求摻雜在一起,因此難以被使用靜態安全規則的傳統安全方案所檢測。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类