伯樂線上導讀:2013年8月27日(美國東部時間),包括Twitter、《紐約時報》、《赫芬頓郵報》在內的多家美國媒體的網站出現當機,疑遭黑客組織攻擊,後來一個名為“敘利亞電子軍”的組織表示對襲擊事件負責。在8月27日之前,美國一名高階官員稱,美國政府最早將於29日對敘利亞開展為期3天的軍事打擊。CloudFlare 官方部落格發文簡要分析了這次攻擊事件。(感謝 OpenCDN 團隊成員@囧思八千 的熱心翻譯。如果其他朋友也有不錯的原創或譯文,可以嘗試提交到伯樂線上。)
“早上我醒來的時候,我真心沒想到今天會和CloudFlare、OpenDNS、Google、GoDaddy、Twitter的技術朋友開了一整天的視訊會議。” ——紐約時報網站 CTO Rajiv Pant,8月27日 發推
在8月27日下午1:19(夏令時),一位研究者注意到紐約時報的網站無法開啟。我們知道紐約時報的技術團隊,於是我們發了一封電子郵件來確認。幾分鐘之後,紐約時報的技術長回覆了我們。在那之後,幾個CloudFlare團隊成員留在會議室參與了一些清理攻擊的工作。
域名註冊商(registrars)和域名註冊局(registry)
要了解這次攻擊,關鍵要理解網際網路上的三個重要的部分:域名註冊、域名註冊商和遞迴DNS伺服器。NYTimes.com是.com字尾的頂級域名(top level domain)。這個頂級域名的域名註冊局(registry)是Verisign。當你買了一個域名,本質上講就是購買域名註冊局的一個域名的DNS伺服器設定許可權。
你購買和託管域名的地方就是域名註冊商(registrars),NYTimes.com託管在一家叫做MelbourneIT的域名註冊商(registrars)。MelbourneIT是一家比較安全的域名註冊商(registrars)。除了紐約時報,他們也為很多大站提供服務,比如Twitter和Huffington Post。
當你訪問NYTimes.com的時候,瀏覽器會通過DNS來查出域名對應的IP。查詢的第一步是將請求發往一個遞迴DNS伺服器。絕大多數的ISP提供商(電信、聯通等)都會有遞迴DNS伺服器(就是網路卡設定地方寫著首選、備選的那兩個IP)。當然也會有OpenDNS和Google這樣的公司向全球提供免費的遞迴DNS伺服器。
根據DNS查詢鏈,遞迴DNS伺服器先查詢根伺服器,然後是域名註冊局(registry),最後是權威域名伺服器(authoritative name server)來給出應答。為了減輕上游的負載,遞迴DNS伺服器會根據域名的TTL值來進行一定時間的快取。影響這條DNS查詢鏈任何一個環節都能讓攻擊者劫持網站的部分或者全部流量,這個就是今天發生的攻擊了。
域名註冊商(registrars)的淪陷
紐約時報已經公開確認,他們的域名註冊商被敘利亞電子軍給黑了。雖然我們和MelbourneIT保持聯絡,但是我們不知道這次攻擊是如何完成的。我們只知道攻擊者確實繞過授權更掉了紐約時報的NS記錄,然後劫持了流量。
那條在MelbourneIT被寫入的不良的DNS記錄,從域名註冊商推送到了掌管頂級域名的域名註冊局Verisign。特別要注意的是,當時在域名註冊局的NS記錄中,NYTimes.com的NS記錄是ns5.boxsecured.com和ns6.boxsecured.com,而正確的NS記錄是DNS.EWR1.NYTIMES.COM 和DNS.SEA1.NYTIMES.COM。讓人鬱悶的是,一開始MelbourneIT那裡還沒法把錯的NS記錄改過來。
從截圖可以看到敘利亞電子軍隨後發了推,似乎已經拿下了MelbourneIT控制皮膚的管理員許可權。
在糾正MelbourneIT的紐約時報不良DNS記錄的時候,我們聯絡到了兩個最大的遞迴DNS服務提供商:OpenDNS和Google。CloudFlare、OpenDNS和Google的技術團隊聚到視訊會議上,發現NYTimes.com被重定向到一個全是惡意軟體的釣魚站,雖然這些惡意軟體沒有被證實。(此前,頁面變紅並且寫著“發現NYTimes.com被重定向到一個惡意軟體頁面”,有點亂的是OpenDNS安全掃描器在NYTimes.com這個域名下掃描出惡意軟體然後向使用者發出告警的,會讓我誤以為是紐約時報本身的頁面上被植入了惡意軟體)。OpenDNS和Google團隊馬上把惡意記錄給糾正過來。
OpenDNS團隊同時也檢視敘利亞電子軍是否有對其他域名做過手腳。我們發現幾個域名有被改動的痕跡,其中包括Twitter和Huffington Post。正如上面所提到的,這些網站也通過MelbourneIT註冊域名,因此不單單是紐約時報的帳號被入侵。
清理影響
在域名註冊局,Verisign回滾了NYTimes.com的NS記錄,並且加了一個所謂的域名鎖。這個進一步防止了在域名註冊商處出現的NS記錄更改。雖然OpenDNS和Google迅速作出響應使他們的使用者免受影響,但是其他的遞迴DNS伺服器仍然返回著被黑的DNS結果。不幸的是,因為遞迴DNS伺服器會把結果快取一段時間,即使DNS結果被糾正了,許多DNS伺服器仍然把那些被黑域名指向黑站。
下午,域名註冊商恢復了那些被敘利亞電子軍影響的域名。由於域名的TTL快取時間比較短,域名的DNS記錄回滾阻止了惡意軟體影響正常訪問。不過這不意味著所有的網站都恢復了。在有些地方,遞迴DNS伺服器還會有惡意的DNS記錄。不過這些記錄會在接下來的24小時內過期,然後網站就能在所有地方恢復正常。
如何保護你的網站
這是一個非常危險的攻擊。MelbourneIT的安全防護比其他的域名註冊商都要高。我們希望他們能夠公開攻擊的細節,那樣其他網站就能明白潛在的安全威脅並且知道如何防禦了。
一個電子郵件被 Matther Key 獲得,一個獨立的新聞工作者,表明黑客通過MelbourneIT的域名經銷商的帳號作為攻擊的一部分。雖然我們都只是猜測,它有可能MelbourneIT的經銷商系統能夠提權。這個攻擊方法讓攻擊者在提權後能夠影響MelbourneIT系統下的其他使用者。
這次攻擊說明了通過網站DNS重定向能夠造成巨大的破壞。DNS組成了網際網路的心臟,不僅僅只有網頁。郵件的路由,也是他通過DNS指引把資訊傳送到正確的伺服器。
把有風險的域名馬上進行處理,這是一個明智的措施。可能可以通過一個域名鎖來保護你的域名,這個甚至能夠防止域名註冊商向域名註冊局提交的一些自動的更改。如果你對你的域名進行一個WHOIS查詢,如果你進行了域名鎖,你可以看到三個狀態:
服務禁止刪除(serverDeleteProhibited)、服務禁止轉移(serverTransferProhibited)、服務禁止更新(serverUpdateProhibited)。
域名註冊商一般不會讓你申請域名鎖,因為那樣的話域名自動續費將會變得很困難。不過如果你的域名確實有風險,你應該堅稱讓域名註冊商放一個域名鎖在上面。值得注意的是,Twitter的一些域名被劫持重定向,但是Twitter.com沒有,因為Twitter.com加了域名鎖。
我們花了大量的時間建立技術網路,不過令人欣慰的是,人際網路也是想當有效的。
“真是有意思的一天……技術社群有這麼多的奇人,真是一種希望。”— Jon Oden (@jonjoden) 2013年8月28日