許多Linux發行版都因為最近被披露的systemd的漏洞而面臨危險:DNS解析服務的一個漏洞可能讓系統遭受分散式阻斷服務攻擊 (DDoS)。攻擊這漏洞的方式是讓系統向攻擊者所控制的DNS伺服器進行查詢。DNS伺服器接著送回一個特製回應,讓systemd進入無限迴圈,也讓系統的CPU使用率持續在100%的狀態。這漏洞已經被分配編號CVE-2017-15908。
有許多方法可以讓使用者查詢惡意份子所控制的DNS伺服器,不過最簡單的作法是讓使用者系統連往攻擊者所控制的網域。這可以透過惡意軟體或社交工程完成。
解決這漏洞最有效的辦法是修補systemd的漏洞。趨勢科技在今年7月首先發現了這個漏洞,並在同月份通過零時差計畫(ZDI)回報給適當的廠商。獨立研究人員在今年10月也同樣發現了這個漏洞,並將其回報給Canonical。許多Linux發行版都已經推出修復程式,像Ubuntu也在10月底發布。幸運的是,到目前為止還沒有出現針對此漏洞的攻擊。
漏洞分析
隨著時間過去,DNS會持續加入新的功能,既是為了增加新功能也是為了讓其更加安全。一個定義在RFC 4034內,新加入域名安全擴展(DNSSEC)的資源記錄類型稱為NSEC(Next Secure)記錄。
這漏洞發生在處理表示NSEC位元圖(bitmap)中虛擬型態(pseudo-type)的位元時。下圖顯示了程式碼區塊和堆疊框架。反白的地方“continue”顯示“while迴圈”進入無限迴圈。dns_packet_read_type_window()出現在resolved-dns-packet.c內。 繼續閱讀