天天看點

文章閱讀 - 機器學習檢測DNS隧道0. 引言1. DNS安全之DNS隧道1.1 DNS隧道傳輸方式1.2 DNS隧道搭建過程2. DNS隧道檢測3. 檢測效果4. 小節

20200915 -

0. 引言

之前關注過利用ICMP等方式進行資訊傳輸的方式,這次看到了一個DNS隧道來傳遞資訊的方式,這兩種方式更為隐蔽,一般來說,内網都會對這兩種形式的流量放行。當然,現在知道了存在這種傳輸信道,肯定是要對一些異常的請求加以關注。本次就閱讀文章《探秘-基于機器學習的DNS隐蔽隧道檢測方法與實作》進行記錄。

1. DNS安全之DNS隧道

關注過DNS安全,主要是從域名上來進行分析,印象最深的莫過于DGA的檢測。對于本篇文章重要分析的DNS隧道并不是非常了解。

1.1 DNS隧道傳輸方式

DNS通過一種類似遞歸或者是逐級查詢的方式來進行查詢,那麼如果是想通過DNS隧道來進行傳輸資料,必然要将DNS請求的資訊轉發至相應的域名伺服器;雖然文章中所展示的方式是利用DNS伺服器來進行傳輸,但是我在思考的過程中想到,其實完全可以自己僞造DNS封包,然後IP是自己的伺服器,這種方式在某些情況下應該是可行的。回到原文。

DNS隧道傳輸資料的方式,需要一台能夠解析某個域名的NS伺服器,對于逐級解析DNS的過程有些記不得了,但是要記住的就是,這種方式必然是需要一個能夠被轉發到自己控制的NS伺服器的。隻有這樣才能保證資料的傳輸過程。

1.2 DNS隧道搭建過程

在原文中提到,現在已經有很多DNS的隧道工具了,這些工具基本上都已經很成熟了。是以,我覺得如果要搭建這個環境,無非就是弄一個區域網路,然後部署相關的服務即可。(僅僅是實驗使用)對于如果是公網的話,可能是需要一個進行域名解析的配置工作部分。

(這部分,後續的時候有時間再進行研究)

2. DNS隧道檢測

原文中使用的方式就是利用領域知識來構造相應的特征工程,但是原文中并沒有透露出非常多的資訊,這裡僅僅記錄寫出來的。

1)RTT控制的緩存機制

2)域名的長度

3)子域名的分析

因為我沒有對這個環境進行過部署,我才是不是利用DNS請求後面的内容也能進行傳輸呢?但是這種好像就比較容易被檢測出來。

3. 檢測效果

最後文章的檢測效果非常好,其實這也在意料之中。但是不知道實際場景中是不是真的有效呢?這個還有待考證。

4. 小節

本篇文章就是記錄了一種DNS隧道的内容,這個東西的本身檢測沒有什麼意義,換個內建算法,可能效果也不會非常差,深度學習就更不用說了。對我來說就是認識到了一種新型的攻擊,但是不是很清楚,這種内容是不是suricata這種IDS已經能夠內建規則來進行檢測了呢?

繼續閱讀