近日香港針對佔領中環行動發起投票,投票伺服器及支持佔中行動的港台壹傳媒旗下網站,都遭疑似中國網軍的網路攻擊。知名資訊安全專家、也是資安顧問公司戴夫寇爾執行長翁浩正(Allen Own)接受沃草採訪時指出,此次的攻擊並非傳統的阻斷式服務攻擊 (Distributed Denial of Service,DDoS),而是新型態的DNS反射攻擊(DNS Reflection or DNS Amplification Attacks),相較之下,非常難以防禦。
DNS(Domain Name System)是一種常用的網路服務。由於網路上電腦間的相互相連接、辨識是依靠IP位址(例如:210.61.221.113),但此數字組成的IP位址讓使用者難以記憶,因此出現較好記憶的網址(例如:www.google.com)。使用者在瀏覽器上輸入網址送出後,瀏覽器會向DNS伺服器送出查詢,解析出該網址的IP地址,之後就可到真正的網站去抓取網頁內容。DNS的作用就是「將有意義的,人類較容易記憶的網址」,轉譯成為電腦所熟悉的 IP 位址。
DNS查詢時,雖然一般伺服器會快取住網域名稱所對應的IP,但如果查詢的是一個偽造亂數的網域名稱(例如 abc.google.com),那麼每次都一定得問到主管該網域的伺服器,才能得知該網域名稱是否有對應的IP。利用許多電腦不斷對伺服器發起查詢,就可以癱瘓DNS伺服器,讓其無法運作,這是所謂的「反射攻擊」。
而DNS查詢中,還可對伺服器發起「ANY」查詢,伺服器會回應自己所知該網域名稱的所有相關訊息。例如利用查詢 gmail.com ,DNS主機將會回傳該網域名稱的郵件伺服器或其他相關伺服器等所有訊息。再加上DNSSEC加密協定,在封包中額外加入加密資料,故意使DNS伺服器回應最大量的資料。這種查詢只需送出大約30 bytes的資料量,查詢所得結果資料量卻可高達數千 bytes,因此所造成的網路流量將被放大到約數十到數百,甚至一千倍。
當DNS伺服器收到查詢封包,會將其查詢結果送回來源 IP 位址。不過,封包中的來源 IP 可以被偽造,因此惡意攻擊者只要偽造他人 IP ,然後向世界各地的DNS進行遞迴查詢,世界各地的DNS就會源源不絕的將冗長的查詢結果丟到被攻擊的伺服器。該伺服器若短時間難以負荷龐大的流量,就可能會出現問題而無法連線(如圖),此即所謂「放大攻擊」。
舉例來說,惡意攻擊者不斷的找一堆人去必勝客查詢分店是不是存在,如果電話過多,服務人員就會癱瘓,無法提供更多服務,這是所謂的反射攻擊。如果惡意攻擊者假裝是被攻擊的人,向多家必勝客訂了一堆披薩。攻擊者只要不斷打電話向必勝客下訂,被攻擊者就會源源不絕地收到披薩,這就是所謂的放大攻擊。

圖為DNS放大攻擊示意圖。
這樣的攻擊手法降低了發起網路攻擊的門檻,攻擊者只需要使用很少的流量,就可以在被攻擊的電腦上製造出數十到數百倍,甚至上千的流量。此次的攻擊對象則主要為網站本身以及解析網站網址的DNS伺服器。
此種攻擊並非第一次,去年就曾出現過。在今年3月26日,歐洲反垃圾郵件組織Spamhaus遭到代號為「Operation Stophaus」的攻擊,最高時可達300Gbps流量,是過去記錄的數倍,最後在專業反制DDoS的CloudFlare公司協助下化解。根據調查,在該攻擊中,發起攻擊的封包只有36bytes,送到被攻擊機器的每個封包卻有3000bytes,龐大流量將該組織伺服器灌暴。
此種攻擊非常難以防範。在被利用的DNS伺服器上,由於封包遭到變造,找不到來源IP,也不知道這樣的查詢究竟是真的有需要,還是正被利用拿來發起攻擊。這需要管理員加強資安教育,盡可能的限制可以發起查詢的對象,或甚至關閉此一功能。對於被攻擊的機器,由於難以辨識這樣的封包究竟是攻擊或是本機發起的查詢,因此也難以過濾,讓防範更難以做到。目前已有廠商製作出可防範此類DNS攻擊的設備,若機器遭到攻擊,這類設備應可提供有效的防禦方式,或找專業的資安公司做滲透測試,找出入侵者攻擊的手段並加以防範。

圖說:以ANY查詢網域名稱時,查詢和回應的資料量並不對等。