AI安全初探:利用深度學習檢測DNS隱蔽通道

2021-02-23 FreeBuf

DNS 隱蔽通道簡介

DNS 通道是隱蔽通道的一種,通過將其他協議封裝在DNS協議中進行數據傳輸。

由於大部分防火牆和入侵檢測設備很少會過濾DNS流量,這就給DNS作為隱蔽通道提供了條件,從而可以利用它實現諸如遠程控制、文件傳輸等操作,DNS隱蔽通道也經常在殭屍網絡和APT攻擊中扮演著重要的角色。

DNS隱蔽通道可以分為直連和中繼兩種模式。直連也就是Client直接和指定的目標DNS Server(授權的NS 伺服器)連接,通過將數據編碼封裝在DNS協議中進行通信,這種方式速度快,但是限制比較多,很多場景不允許用戶指定DNS Server。而中繼模式的DNS通道則更為隱蔽,但同時也因為數據包到達目標DNS Server前需要經過多個DNS查詢伺服器,所以速度上較直連模式慢很多。中繼模式的DNS通道原理如圖1所示。

圖1 中繼模式下的DNS隱蔽通道原理

例如,前段時間著名的XShell DNS通道攻擊,黑客在Xshell中植入惡意代碼,通過DNS隱蔽通道外發用戶敏感數據的示例如圖2 所示,黑客將外發數據藏在nylalobghyhirgh.com子域名中。

圖2 Xshell DNS隱蔽通道,黑客將外發數據藏在nylalobghyhirgh.com子域名中

DNS 隱蔽通道從提出到現在已經有了很多實現工具,歷史比較早的有NSTX、Ozymandns,目前比較活躍的有iodine、dnscat2、dns2tcp,其他不太常見的還有DeNise、Heyoka等。不同工具的核心原理相似,但在編碼、實現細節和應用場景方面存在一定的差異。

本文使用卷積神經網絡(CNN)來檢測DNS隱蔽通道。第一步工作是樣本數據採集。

算法前的準備工作——數據採集

利用上述DNS隱蔽通道工具進行「黑」樣本採集工作見另一篇博文《DNS隱蔽通道檢測——數據收集,利用iodine進行DNS隱蔽通道樣本收集》,其流程是先抓取DNS隱蔽通道工具攻擊過程中的網絡流量pcap包,然後利用wireshark工具將pcap包轉換為機器學習算法能夠識別文本文件。這是一個體力活,我收集到的業界流行的DNS 隱蔽通道工具的數據樣本如圖3所示。

圖3 收集的DNS隱蔽通道工具示意樣本

以dnscat2工具為例,其生成的一個樣本見圖4,可以看到DNS報文裡包含了大量的較長子域名,而外發數據便藏在這些子域名中(我使用的主域名是friendsakka.xyz)。

圖4 dnscat2工具生成的示意樣本

至於「白」樣本收集,我們使用的是某高校的校園網絡流量。黑白樣本收集好以後,就可以進入檢測算法環節了。

利用深度學習進行DNS隱蔽通道檢測

本文使用CNN(卷積神經網絡)來檢測DNS隱蔽通道,在介紹算法前,先簡單介紹下CNN。

CNN(卷積神經網絡)常用於圖像識別並取得了極佳的效果。圖5展示的是一個典型的卷積神經網絡結構。該網絡包含兩個卷積層(convolution layer),兩個池化層(pooling layer)和一個全連接層(fully connected layer)。

圖5 典型的卷積神經網絡結構

卷積神經網絡的基本思想和我們人類大腦識別圖像的機制是一致的。例如,當看到一張「喵星人」圖像時,我們之所以認為它是「喵星人」,是因為我們看到它有萌萌的頭、長長的尾巴、柔軟光滑的皮毛等明顯特徵,通過組合(更高層次的抽象)這些特徵,我們的大腦最終便可做出準確的判斷。卷積神經網絡的基本思想也是類似,核心理念包括:

· 局部感受野:這是通過卷積層來完成的,形象地說,就是模仿你的眼睛,想想看,你在看東西的時候,目光是聚焦在一個相對較小的局部吧? 比如喵星人的圖像上有爪子或者萌頭等明顯的局部特徵。而在卷積神經網絡中,每個隱層節點只連接到圖像的某些局部像素點上。

· 池化:形象地說,當你看向遠方,然後閉上眼睛,你仍然記得看到了些什麼,但是你能完全 記住你剛剛看到的每一個細節嗎?答案是不能。同樣,在卷積神經網絡中,沒有必要對原圖像所有細節做處理,而是使用某種 「壓縮」方法,這就是池化,也就是每次將原圖像卷積後,都通過一個採樣的過程,來減小圖像的規模。

· 權值共享:在卷積神經網中,同一個卷積核內,所有的神經元的權值是相同的,從而大大減少需要訓練的參數。之所以如此設計 ,就如同人類大腦的某個神經中樞中的神經細胞,它們的結構、功能是相同的,甚至可以互相替代。

如果你還沒有理解的話,我們再看下面這個例子,專家們設計了包含10個卷積層,4個池化層和2個全連接層的卷積神經網絡,見圖6所示,該網絡主要用於圖像識別。專家們發現 ,在比較低的層,神經元傾向於學習一些簡單的模式,比如圖像邊緣、顏色 、條帶燈;而在比較高的層,神經元能夠檢測到一些更為高層次的抽象特徵,比如整輛轎車等。

圖6 專家構建的用於圖像識別的卷積神經網絡

CNN的誕生是為了解決圖像處理問題。在安全界,瀚思科技開發出了基於深度學習的二進位病毒樣本檢測技術,可以做到沙箱同等水平的 99% 的檢測準確率,而誤報率低於 1/1000。

CNN檢測的圖像通常是二維數據,而作為DNS隱蔽通道傳輸的子域名雖是一維的文本數據,但同樣可以用CNN進行處理。在本文的DNS隱蔽通道檢測中,我們使用一維的卷積函數處理DNS子域名片段,以提煉高級特徵進一步分析。
利用CNN進行DNS隱蔽通道檢測的代碼框架如下:

大致流程是先獲取黑白樣本數據,然後將80%的數據用於訓練,剩下20%的數據用於CNN模型驗證。

其中,get_cnn_model使用了python的TensorFlow庫tflearn,其代碼如下:

在上述模型中,為了進行數據降維先加入了embedding層,其本質和word2vec一樣,因為在DNS 隱蔽通道的子域名中包含了大量的字符而導致數據輸入維度過高,代碼中output_dim=64表示將數據輸入降低維度到64維。接下來我們使用一維的卷積函數 conv_1d處理DNS子域名片段,提煉高級特徵進一步分析。由於典型的一維卷積函數處理文字片段的大小通常為3、4、5,我們也使用這些典型參數。此外,模型中加入了dropout,用於防止過擬合。

獲取黑白樣本數據的代碼如下,其中包括對原始的子域名字符進行字典編碼(先得到黑白樣本所有子域名字符集合),並使用pad_sequences函數按照固定長度進行子域名長度對齊操作(因CNN要求各樣本數據輸入維度一致,而某些子域名很短,某些子域名很長, pad_sequences將短的子域名採用特殊數字進行填充補齊,使它們長度一致):

其中,get_local_data主要是從樣本文件中提取DNS子域名。

核心代碼講解完畢,開始進行模型訓練。在我的個人電腦上,算法運行時間大概17小時,最後的結果如下:

可以看到算法迭代了10次,每次訓練時間一個多小時,最終的檢測精度在99.53%,使用CNN進行DNS隱蔽通道的檢測效果初步看來還不錯。但是,因為訓練樣本和測試樣本的內在數據分布規律是相同的,該精度再高也可能存在一定的過擬合風險。下面我們利用前段時間著名的XShell DNS隱蔽通道攻擊來評估算法的檢測能力。

驗證XShell的檢測效果

我們嘗試用訓練出的算法檢測前段時間著名的XShell隱蔽通道攻擊,其進行攻擊的域名為nylalobghyhirgh.com,將包含該攻擊的DNS樣本加入到模型預測中:

運行後得到的檢測準確率為97.3%,也就意味著nylalobghyhirgh.com下97.3%的子域名都可能是在利用DNS隱蔽通道傳輸數據。

上述驗證表明,使用CNN可以有效地檢測DNS隱蔽通道。當然,最終的檢測準確率還需在真實而複雜的網絡環境中長期運行觀察而定。

結語

本文只是AI安全初探的一次嘗試,大致說明了使用深度學習算法CNN進行安全檢測的基本流程,文中有寫得不明白的地方,歡迎大家留言一起探討。
參考資料【點擊閱讀原文】

* 本文作者:bonelee,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載

相關焦點

  • Xilinx、Spline.AI、AWS 推出 X 射線分型深度學習模型和參考設計
    ,加速COVID-19 和肺炎檢測。 賽靈思公司宣布推出全功能醫療 X 射線分型深度學習模型和參考設計套件,這是賽靈思與 Spline.AI 及亞馬遜網絡服務(AWS)強強攜手共同取得的合作成果。
  • 谷歌 AI 開源 Deepfake 檢測數據集,3000+ 真人...
    谷歌希望能夠通過這些視頻數據,更好的維護整個社會的網絡安全環境,並使得開發者能夠利用這些數據,開發新的 Deepfake 檢測工具,更高效地識別 Deepfake 假視頻。谷歌在博客上發表了相應的文章來介紹這一數據集,雷鋒網 AI 開發者將其整理編譯如下。Deepfake 視頻檢測數據集背景近幾年來,深度學習的發展催生了曾經被認為不可能實現的技術。
  • AI是如何檢測色情片的?
    如果人們無法就色情是什麼達成一致,那麼AI是否有望學習裡面的差異呢?教 AI 如何檢測色情片,第一件事就是收集色情片作為訓練集網上有很多的色情片。在哪裡可以得到它們呢? 「人們經常從Pornhub、XVideos等網站下載,」Lemay.ai的聯合創始人兼首席技術官Dan Shapiro說到。
  • 物流通道每天檢測數百輛車 西海岸啤酒城築起食品安全防線
    物流通道每天檢測數百輛車8月8日中午,位於金沙灘啤酒城西入口的物流通道監測站一片繁忙,啤酒城市場監管二組組長於海龍正和組員們正在對要進入啤酒城的貨車進行食品安全合格檢查,他們所在的這條通道是所有食品進入啤酒城的第一道關卡
  • 多倫多大學在讀博士朱子寧:如何利用語言探針檢測深度神經模型性能...
    語言探針(linguistic probe)是最近比較流行的一種可以探測深度神經模型裡面編碼了哪些特徵的「診斷性分類器」算法,分類器效果的好壞直接體現深度模型包含信息的好壞,也就是模型性能的好壞。「探針」的選擇是對模型性能的解釋,因此如何選擇「探針」成為了一個難點。
  • 跨境網賭:涉賭鏈條日趨隱蔽利用「黑灰產」轉移資金
    跨境網賭:涉賭鏈條日趨隱蔽利用「黑灰產」轉移資金 2020年11月12日 11:33 來源:經濟參考報   跨境網賭:涉賭鏈條日趨隱蔽 利用「黑灰產」轉移資金
  • 夏日專刊AI產品上新升級集錦,50餘項軟硬能力加速場景落地
    安全生產監控方案 視頻分析邊緣計算盒 EM-BOX 全新升級,上新5項分析功能除安全帽佩戴合規檢測、煙火檢測、電子圍欄外,支持技能增加:陌生人檢測、攀高檢測、睡崗檢測、離崗檢測、人流過密預警。充分利舊現有攝像頭,即插即用,提供可視化管理平臺,支持二次開發。
  • 《AI安全之對抗樣本入門》低調上市
    本書所有示例代碼在GitHub上可以下載:https://github.com/duoergun0729/adversarial_examples主要內容包括:對抗樣本相關的深度學習背景知識,如梯度、優化器、反向傳遞等。如何搭建學習對抗樣本的軟硬體環境。對抗樣本領域的一些常見圖像處理技巧。常見的白盒攻擊算法與黑盒攻擊算法。
  • 用於端點AI加速的10大處理器
    每顆xcore.ai晶片上有16個這樣的內核,設計人員可以根據需要選擇為每種功能分配多少個內核。通過將不同功能映射到固件中的邏輯內核,可以創建一個「虛擬SoC」,這完全是通過軟體實現的。XMOS還在Xcore中增加了向量管道功能,用於機器學習。
  • 讓神經網絡給符號AI「打工」,MIT和IBM聯合解決深度學習痛點,未來...
    連接主義利用知識進行訓練,讓神經網絡具有學習能力,但容易受到對抗攻擊。於是將符號主義和連接主義結合起來的混合式神經-符號AI(neurosymbolic AI)應運而生。科學家用深度神經網絡來構建符號AI所需的知識庫和命題,省去了人工預設的難題,然後使用符號AI對任務進行推理。
  • 全球三十大最佳 AI 創業公司公布
    3、Darktrace Darktrace 成立於 2013 年,致力於應用 AI 技術應對網絡安全挑戰。Darktrace 開發了世界上第一個企業免疫系統,該系統能夠使企業的安全網絡在沒有預先知道特定威脅的情況下,檢測出繞過傳統網絡安全工具的威脅和異常行為,並能夠對網絡攻擊進行主動防禦。
  • 微軟北大提出AI換臉工具和假臉檢測工具
    使用新的屬性編碼器,提取多級目標的人臉屬性,利用自適應注意力非正規化(AAD)層的新生成器整合人臉合成圖片的特徵和屬性。架構的第二部分主要解決面部遮擋問題,這部分包括一個新的啟發式錯誤確認細化網絡(HEAR-Net)。訓練後,可以以自監督的方式恢復圖像的異常區域,無需任何手動注釋。
  • 初探國家安全機關人民警察
    國安警察是一支什麼樣的隊伍   面對風雲變幻的鬥爭形勢和嚴峻複雜的隱蔽敵情,面對極為艱巨繁重的工作任務,國家安全機關廣大人民警察為保衛社會主義國家政權、保持社會和諧穩定、保護人民生命財產安全發揮了重要作用,湧現出了一大批英雄模範和忠誠衛士。
  • 隔空取物 | 攻擊者在不利用Wi-Fi硬體的情況下就可以竊取Air...
    近日一位安全研究人員證明,可以通過一種利用Wi-Fi作為隱蔽通道的新技術從Air-Gapped的計算機中竊取敏感數據,而且令人驚訝地是,還不需要在目標系統上使用Wi-Fi硬體。另外,以色列內蓋夫網絡安全研究中心本-古裡安大學的研發主管Mordechai Guri博士也在近日發表了一篇名為《AIR-FI:從封閉的電腦產生隱蔽的Wi-Fi》的論文。
  • 2019 到目前為止的深度學習研究進展匯總
    DeepFashion2是一個通用的標籤庫,包括四個任務,包括服裝檢測,姿態估計,分割和檢索。代碼可以在GitHub上找到。  基於Adam和AMSGrad分別提出了名為AdaBound和AMSBound的變種,它們利用學習率的動態邊界實現了從自適應方法到SGD的漸進平穩過渡,並給出了收斂性的理論證明。對各種常見的任務和模型進行了進一步的實驗,實驗結果表明,新的方法能夠消除自適應方法與SGD之間的泛化差距,同時在訓練初期保持較高的學習速度。代碼可以在GitHub上找到。
  • 如何利用物理思想幫助機器「升維學習」?
    特徵檢測裝置在圖片上滑過,每個過濾器與圖片中每個塊之間的匹配度被記錄下來,產生一組特徵映射。2. 經過操作之後,特徵映射又可以利用卷積求解更高維的特徵。3. 最後,神經網絡學會辨別,正確分類圖片。但是這種方法僅適用於平面。韋林說:「當要分析的表面變彎時,你就遇上麻煩了。」
  • 斯坦福初創公司發力AI硬體,DeepMind刪除神經元了解深度學習
    Skyline AI新融資$3M來源:TECHCRUNCH.COM連結:https://techcrunch.com/2018/03/22/skyline-ai-raises-3m-from-sequoia-capital-to-help-real-estate-investors-make-better-decisions/?
  • 「好文推薦」人工智慧技術在礦山智能化建設中的應用初探
    為了推動煤礦智能化建設、提高礦山安全與生產水平,本文介紹了人工智慧技術的相關概念、發展概述及其在煤炭行業發展中的應用,指出目前人工智慧技術在礦山應用只是點狀結合和淺度結合,沒有實現人工智慧技術和礦山某個生產或管理系統層面的深度融合。
  • 騰訊安全雲鼎實驗室利用騰訊安全自主研發的系統到底是什麼
    騰訊安全雲鼎實驗室利用騰訊安全自主研發的「defylibrary」和騰訊安全開放雲平臺聯合打造了基於anyway.os的開源系統——anywaylab系統。騰訊安全雲鼎實驗室表示:「anywaylab計劃旨在面向未來企業級系統應用,開發高效、可擴展、安全的解決方案,創建跨運營商、雲計算、ai、5g、物聯網等多場景大生態,推動產業創新發展。」
  • 李飛飛團隊最新研究:「四步」AI方案助老人抵抗新冠肺炎
    她介紹了如何利用人工智慧技術幫助弱勢群體——老年人抗擊新冠肺炎和慢性病管理的落地解決方案,該方案運用了 RGB 相機、深度傳感器、溫度傳感器、可穿戴傳感器,以邊緣計算為核心,同時著重強調保護個人隱私問題。李飛飛在接受採訪時表示,「我們將使用聯合學習,以無監督的方式對每個邊緣設備上的模型進行更新,以適應新環境並提高魯棒性。