iT邦幫忙

0

企業資料通訊Week6 (1) | DNS(網域名稱系統)[二]

DNS Message

DNS 的訊息傳遞也是兩種:Query 與 Reply(就是要求與回覆),它的設計比較像HTTP,而不是郵件傳輸交互性那麼細碎。
這邊要注意,DNS 的Query 與 Reply 的格式是一樣的!
架構如圖:參見Explain DNS message format with neat diagram.
https://ithelp.ithome.com.tw/upload/images/20211031/20135414ftyfOOS6rC.png

The query message consists of a header and question records; the response message consists of a header, question records, answer records, authoritative records, and additional records.
由於有些欄位只有reply需要回答,所以query的那些地方會是0

用課本的圖來說明:
https://ithelp.ithome.com.tw/upload/images/20211031/20135414crChvJnoOz.png
因為欄位長度是固定的,所以欄位之間實際上沒有任何符號或空格區隔。

Header 包含:Identification 與 Flag

-Identification:
ID是這個message的編號,每次client問問題的ID都是16bit的隨機數。server會把client的id給copy過來,用以識別是哪一個reply。

-Flag: 也是16bit,由複合式的欄位組成,如圖:
https://ithelp.ithome.com.tw/upload/images/20211031/20135414n31tkXJTqq.png
下面是簡單說明flag 的複合欄位們:

  • QR:1-bit(0為query/1為response)。
  • OpCode:4-bit,定義哪種message。
  • AA (authoritative answer):1-bit,是否此server 是authoritative server。
  • TC (truncated):1-bit。response 是否大於512 Byte?
  • RD: 1-bit(recursion desired)就是client是否要recursive 的答案。
  • RA: 1-bit(recursion available)就是是否能提供recursive的答案。
  • Reserved: This is a 3-bit subfield set to 000.
  • rCode:4-bit,顯示response的錯誤狀態。

一次讀進16bit,依序先讀Identification、Flag、questions(問題的數目)、answers(答案的數目,如果沒有就是0)、authority RRs(有幾個答案是authoritative 的答案)、additional RRs。[這裡都是指數目]

再看一下課本的圖
https://ithelp.ithome.com.tw/upload/images/20211101/20135414S99QrBHckJ.png

之後四行每一行分別是 questions section、answers section 、authority RRs、additional RRs,它們分別對應到上面questions(問題的數目)、answers(答案的數目)

實際上就會像是這樣子:
https://ithelp.ithome.com.tw/upload/images/20211101/20135414PzmYVRIC08.png

DNS 註冊紀錄

剛剛是查詢,現在這裡講註冊紀錄
https://ithelp.ithome.com.tw/upload/images/20211101/20135414wFjpHIshU9.png

我們要跟authoritative name server註冊,如果是一般小公司或是家裏要註冊DNS,為了節省成本,可以請代管EX:GoDaddy
它是一個域名註冊與網站代管的上市公司,是ICANN(負責全世界domainname管理的機構)認證的全球最大註冊商。

DNS Attack

參見:
https://ithelp.ithome.com.tw/upload/images/20211102/20135414UqNd1nQxJr.png

透過攻擊希望能達到:

  • 竊取用戶憑據
  • 將惡意軟體注入用戶的設備
  • 獲取敏感網站數據
  • 玷污組織的網站
  • 安裝勒索軟體

DNS攻擊不只造成網路癱瘓,還會造成企業嚴重損失與機密(EX:密碼洩漏)等嚴重後果。

我歸納常見攻擊性質主要是
1)忙死 2)欺騙

「忙死」,是想辦法耗盡DNS資源,忙死DNS server或是塞爆網路,不只local DNS server,Root DNS server也會被攻擊。它會透過亂問問題(甚至問不存在的東西),使DNS 解析器不知道指定 IP 位址的網站,之後詢問其他 DNS 伺服器,如此會一直問下去,然後癱瘓服務,一般來說這類攻擊稱為拒絕服務 (DoS) 攻擊;「欺騙」是給你一個假的回覆,但是假得很像真的。

DDoS attacks

DoS攻擊中最常見的是 DDoS ( Distributed Denial-of-Service )攻擊,攻擊者不只一個,像是一個軍團。
DDoS 中又分三個子類型攻擊,分別是:洪水攻擊、應用層攻擊、協議攻擊,放大攻擊也是屬於DDos的一種。
見詳情請看:Four major DNS attack types and how to mitigate them

redirect attacks

攔截式的中間人攻擊,攻擊者攔截client的封包,並給它一個假的回覆,如此client可能會被帶到另外一個長很像的網站(說不定會騙你的金融帳密!?);DNS 中毒也是中間人攻擊的一種,給你一個錯誤的回覆讓DNS中毒。
還有一種欺騙方法是傳假的source IP,讓Server 以為是那個假的IP的要求,所以就傳回覆給那個假的IP位址,這是spoofed source。

Q:DNS 為甚麼使用UDP?

因為UDP比較快,但是DNS 如果在返回的數據量大於512Bytes會使用TCP,但因為大部分的回報大小不會超過512Bytes所以通常用UDP。
參見:51CTO|為什麼 DNS 協定使用 UDP? 只使用了UDP嗎?

上一篇文章:阿沁的DNS(1)

參考文章:
Explain DNS message format with neat diagram.
DNS Message — How to Read Query and Response Message
What is a DNS attack? Types of DNS attacks and how to prevent them
51CTO|為什麼 DNS 協定使用 UDP? 只使用了UDP嗎?


尚未有邦友留言

立即登入留言