iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 22
0
Elastic Stack on Cloud

前端三分鐘 X Elastic Stack系列 第 22

Elastic Anomaly Detection for Cybersecurity: DNS 常見攻擊與可能的偵測方法 (22)

這篇文章會簡介 DNS 常見攻擊方式與透過 Elastic Machine learning 工具可能的偵測方法。

當然,最好的方式就是花錢解決問題,像是直接使用 cloudflare、GCP、AWS 提供的服務,這幾間都是世界上前幾大的公司,相對一些普通規模的主機商要被打爆的機率也就小很多了。

DNS

近年來什麼東西都要加個雲端才夠潮,所以網路安全也就越來越重要,整個網路每天都一定會用到的服務就是 DNS (Domain Name System),中文名稱是網域名稱系統。

DNS 的用途是把比較難記的 IP 跟比較好記的網域進行對應連結,這樣就可以透過 web.ncku.edu.tw 而不是 140.116.241.51 去進行連線。

DNS 運作原理,簡單來說就是給網域回答 IP 地址,網路上目前也提供非常多 WHOIS 的相關服務,有興趣的話可以玩看看。

WHOIS
https://ithelp.ithome.com.tw/upload/images/20200924/20130026z1pDeiDNy9.jpg

問網域會有兩種詢問的方法

  • Recursive: Client 透過 DNS 代理去問
  • Iterative: Client 慢慢問,不會一次就問到結果

Recursive VS Iterative
https://ithelp.ithome.com.tw/upload/images/20200924/20130026OIwYVQ2D1A.png

DNS 主要會有以下紀錄

  • A/AAAA: 網域對應到 IPv4 / IPv6 的位置
  • CNAME: 網域對應到另一個網域
  • MX: 紀錄這個網域的郵件伺服器
  • NS: Name Server 找不到可以去問的地方

DNS 攻擊

越多人用的服務當然也就會成為攻擊的目標,常看到的

  • DDoS,Nginx 基本可防呆,cloudflare 也可幫擋
  • DNS Amplification: DDoS 的另外一種技巧
  • DNS Cache Poisoning: 加入偽造惡意記錄到,把使用者導到惡意 IP,可透過 DNSSEC 防範
  • MITMA: 中間人攻擊,透過介入傳輸從轉發資料到竄改欺騙的過程,可透過 PKI 認證防範
  • DNS Hijacking: 直接控制,都被綁架了主機沒有備份大概就是付贖金了
  • DNS Pharming: 網址嫁接,讓使用者進到偽造的網站
  • DNS Tunneling: DNS 必備企業防火牆大多不擋,所以將其他通訊協定封裝到 DNS 協定中傳輸,產生 DNS Tunneling 看起來蠻多野蠻方便的,開源的列出以下兩個

可憐的主機商,又被 DDoS 了
https://ithelp.ithome.com.tw/upload/images/20200924/20130026hWsSzPRGff.jpg

C&C 與威脅地圖

要達到監控和了解威脅,需要從各種來源去收集資料,目標是去偵測出 C&C 伺服器相關的活動,C&C (Command & Control Server) 是控制僵屍網路的主控伺服器,會和感染了惡意軟體 (malware) 的主機進行通訊並指揮攻擊行為。

從另外一個方面來看,malware 理論上也會內建一套尋找 C&C 的方法,如果可以在被攻擊前,透過分析數據提早抓到在溝通也許就能預防,我猜防毒軟體提供的全球威脅地圖也是透過分析和監控相關數據得來的。

威脅地圖
https://ithelp.ithome.com.tw/upload/images/20200924/20130026ocSQinhlck.jpg

DNS 資料分析

Elastic 最方便的方式是透過機器學習的工具來分析,下面會使用教學範例中提供的 security-analytics-packetbeat-\* 來做示範。

建立,Datafeed 請設定 {"term":{"type":{"value":"dns","boost":1}}}
https://ithelp.ithome.com.tw/upload/images/20200924/2013002679RoRDcAY0.jpg

設定 Detector 如圖
https://ithelp.ithome.com.tw/upload/images/20200924/201300267koJM3S3kB.jpg

設定 Bucket Span 及 Influencer,接著下一步其他都用預設值即可
https://ithelp.ithome.com.tw/upload/images/20200924/20130026yqXtGMXYee.jpg

AnomalyExplorer 看結果
https://ithelp.ithome.com.tw/upload/images/20200924/20130026g7iEgkNbUC.png

這次照著教學做完,覺得蠻神奇的,因為馬上就可以看出一些資訊,像是可以看出哪個網域或是哪個 Host Name 最有可能出現問題。

整個 Anomaly Explorer 的面板右半邊會是依照時間分析的結果圖表,左半天可以看到我們設定的 Influencer 相關聚合統計,有點像是知道筆電裡面分別會有幾筆蘋果華碩聯想的概念。

另外也有附上可以互動的表,下圖就是選擇 Critical 後的結果,然後有點選 Actual 按照大小排列。

CriticalAnomalies
https://ithelp.ithome.com.tw/upload/images/20200924/20130026rrRbbntLs7.jpg

看完也做過之後,發現其實相關步驟都不難,難的是要知道怎麼去設定相關配置,如果一個系統突然要自己設,可能也會不知道從何設起,認真讀一波文件後發現 Elastic 也有提供常見配置教學,覺得可以先從這些常見配置去推敲出為什麼需要這樣設定,文件連結在此:

https://www.elastic.co/guide/en/machine-learning/current/ootb-ml-jobs.html

另外也附上 Detector 會需要知道的相關機器學習 functions 文件連結:

https://www.elastic.co/guide/en/machine-learning/current/ml-functions.html


上一篇
Elastic Machine Learning 基礎: 機器學習的名詞、相關流程與案例介紹 (21)
下一篇
Elastic Cloud Enterprise Architecture: 雲端系統架構簡介 (23)
系列文
前端三分鐘 X Elastic Stack31

尚未有邦友留言

立即登入留言