互聯網上的每一個人和每一件事都依賴于域名系統(DNS)的正常運作。近年來,DNS一直是網絡攻擊的常見對象,2019年當然也不例外。大多數這類攻擊的目的遠比簡單地讓一家公司網絡崩潰或破壞一個網站更加險惡;已知的攻擊包括重定向一家組織的部分或全部域名以獲得訪問受保護資源的權限、攔截流量甚至獲得該域名的TLS證書。組織應定期進行DNS審查和審計。下面的指導說明將讓您的審查邁出第一步。
為什么DNS常被攻擊?
DNS對于任何有線上平臺的組織都是至關重要的。因此,攻擊域名是一個攻擊任何線上組織的有效方法,具體途徑包括拒絕服務、污損、濫用等其他方式。域名不僅代表您的品牌,也是您的客戶與您進行業務互動的方式。在當今世界,域名對于網頁、語音、視頻、聊天、API及公司可能提供或使用的所有其他服務都至關重要。簡而言之,擁有自己域名的控制權對您的生意至關重要。
對這個問題缺乏重視是對您的DNS存在的最大威脅。許多組織認為DNS的安裝設置是理所當然的,只需配置一次就可以永遠保留它。然而,對手便會利用這種忽視和由此產生的弱點。定期進行DNS審查和審計是一項基本的預防措施。
攻擊從哪里開始?
攻擊者可以通過DNS根區域、DNS注冊中心/頂級域(TLD)(例如.com、.net、.uk、.jp等)、域名注冊器、DNS名稱注冊器(該區域被委派的實體)、DNS區域文件、權威的DNS名稱服務器和遞歸DNS解析器等對其進行攻擊。攻擊者還可以劫持路由,或以欺騙方式得到DNS服務器的IP地址。綜上所述,攻擊面十分的廣泛。好消息是DNS本身有較強的抵抗能力,而且也有許多組織關注著DNS的安全、穩定和彈性。
第一個重點領域是DNS區域的管理(例如example.com)。DNS區域管理是許多組織在其安全和網絡審查中容易忽視的一個問題。不要低估攻擊的范圍和潛在危害:只要進入并訪問DNS區域和/或注冊器,攻擊者就可以重定向入站電子郵件、通過攻擊者控制的主機引導流量,甚至可以獲得TLS證書。
域名注冊商和DNS區域文件
除此之外,域名注冊商控制域名的權威名稱服務器(或稱“授權”,delegations)的列表。這些授權包括對有關域具有權威性的DNS服務器的主機名和IP地址。權威的DNS服務器有一個主區域文件的副本,并用“權威答案”回應DNS查詢。近年來大規模攻擊的興起已經改變了域所有者操作其權威命名服務器的方式。過去,大多數組織在自己的系統上操作權威的命名服務器。而如今,組織有了更多選擇。有些域名注冊商提供全面服務包,由注冊商負責管理和維護域名的完整DNS配置。例如,基于云的提供者如Akamai的Fast DNS可以提供應對DDoS攻擊的增強彈性功能,以及簡化的基礎設施管理。
DNS審查和審計工作
新聞報道、計算機應急響應小組(CERT)和政府通知可能會敦促您“做DNS審計”,但建議往往到此為止。這篇文章的其余部分是一家組織應該審查的主題領域的集合,以評估他們目前的DNS“態度”。這些建議是基于Akamai自身經驗、ICANN的安全和穩定性咨詢委員會(SSAC)、DNS操作分析和研究中心(DNS-OARC)以及其他DNS專家的工作所得出。
審查對域名注冊商的訪問
按照注冊商的要求檢查組織中當前的域管理員,并確保他們符合您的期望。檢查與注冊商配置的所有域并確保您知道組織中有哪些人可以訪問注冊商的在線門戶,同時與這些用戶進行確認。如果您有與多個注冊商注冊的域名,確保您向每一個注冊商重復這個操作。盡管如此,還是建議您考慮將注冊合并到一個單一的注冊商下。同時,找機會核實您所有的域名都在您的域名注冊審計中——有些人可能已經使用個人賬戶注冊了一個域名,如果他們離開了您所在的組織,這可能會導致失去控制。
攻擊者會充分利用一家組織忽略的DNS漏洞。他們會找到沒有妥善維護的賬戶,并對其進行破壞。因此您的第一步就是在每個注冊商處檢查、更新和記錄哪些人可以訪問哪些區域。
審查域名系統的角色和責任
最少化訪問(least access)原則是一個最安全的準則:人們只需要擁有完成其工作所需的最低訪問權限。檢查能夠訪問注冊商的用戶是否是其工作職能所必需。除了一次性審查之外,安排對每個人訪問級別的反復審查。此外,確保至少有兩個人可以訪問每個注冊門戶;否則一旦管理員離職,訪問權限的喪失將對組織造成災難性后果。
請記住,攻擊者經常利用社交媒體作為網絡釣魚嘗試的一部分。他們可以很容易地在社交媒體平臺上鎖定知名度高的員工,因為他們知道組織在重組、裁員或員工退休后可能會忘記刪除注冊信息。
員工權限轉讓
組織的預終止過程應該包括對用戶角色的審核。作為審核的一部分,組織應該審核員工對資源的訪問權限,比如注冊賬戶或DNS云提供者,并終止所有權限。在合理的情況下,應盡快將權限賦予替代人員或繼任人員。
終止程序還應更換或撤銷離職員工可以獲得的所有機密。除了密碼,這還應該包括雙重身份驗證(2FA)令牌、口頭身份驗證密碼以及組織文件中任何授權員工的登記名單。無論員工離職的情況如何,這些都應當是一種常規操作。這并不是對離職員工的玷污,而是組織規避威脅的必要手段。
更新所有注冊資料
接下來,查看與您注冊的域名相關聯的聯系信息。確保每個域名的有效期足夠長(建議至少一年),并正確設置其中的各選項如自動續約等。一個意外過期的域名可能會導致巨大的財務成本,在最壞的情況下,可能會無可挽回地丟失,或是被競爭對手注冊。
域名也通常有四個聯系點:注冊人、技術、管理和賬單聯系人。您的注冊商可能只會發送特定類型的訊息給這些角色中的一個,在某些爭端中,注冊人會處于優先的位置。確保所有的聯系信息是最新的——因為在組織發展壯大、縮小、轉移或被并購時,注冊聯系人的更新問題往往會被忽視。
使用角色賬戶獲取域注冊信息
為了幫助管理域注冊聯系信息,組織經常使用一個角色賬戶(role account)來管理所有的四個必需的域聯系點。角色賬戶的構建因組織而異,但基本思想是建立一個嚴格限制的郵件列表,所有域名注冊信函都可以發送到該列表。這些角色職位通常被命名為“域管理員”(Domain Administrator)或“主機管理員”(Hostmaster),并列出組織的總部聯系信息,包括地址、電話和傳真號碼。確保直接發送到這些號碼的合法電話和傳真仍將到達DNS管理員手中。使用角色職位,而不是指定的人員可以使得更改工作職責或者增加和刪除人員更加靈活,而不需要在注冊商處進行重要更新。如果使用郵件列表,您的定期審計應審查訂閱郵件列表的員工,以限制潛在的濫用行為。
不要使用個人電子郵件地址
個人電子郵件地址不應該用作企業、政府或組織域管理員的聯系點。作為審查過程的一部分,確保個人電子郵件地址從未用于域名聯系信息或注冊商訪問賬戶。
防范釣魚式攻擊
網絡釣魚是破壞注冊賬戶的主要攻擊之一。您有可能遭遇到針對DNS管理員的釣魚攻擊,所以一個全面的釣魚防御是必不可少的。以下一系列反釣魚技術可提供有效保護,防止釣魚式攻擊。
沒有可以阻止網絡釣魚攻擊的萬全之策,但是采用正確的防御組合將有助于組織降低風險。
憑證更新——更改密碼
定期更改密碼是所有在線賬戶的良好做法,域名注冊商賬戶也不例外。在對您的DNS基礎設施進行審查時,要求每個具有注冊服務器訪問權限的人輪換他們的憑據。雖然您的組織可能有一個全面的密碼策略,但是通常會忽略外部服務,如注冊服務器。外部賬戶應遵守您的內部密碼安全指導方針和輪換時間表。注冊服務器賬戶的密碼應該是長而復雜的;使用密碼管理器可以很容易地以加密、冗長和易找到的方式生成和存儲復雜的密碼。密碼永遠不應該寫下來或以未加密的形式存儲。
注冊商賬戶雙重認證(2FA)
當您的注冊商支持時,所有賬戶都應該使用雙重身份驗證(2FA)。使用2FA時,任何試圖登錄到注冊器的人不僅需要賬戶密碼,還需要第二個因素,如智能手機應用程序或硬件令牌等。2FA可以阻止本來可能成功的網絡釣魚嘗試。
如果可能的話,應該避免使用基于SMS的2FA。基于SMS的2FA仍然優于只使用密碼保護的賬戶,但其他方法如基于時間的一次性密碼(TOTP)、硬件令牌或基于推送的2FA應該是首選的。新的NIST數字身份指南建議,短信作為2FA的一部分應該被廢棄(參見NIST特刊800-63B)。
如果您的注冊商不支持2FA,申請這個功能。如果他們不接受,考慮尋找替代的注冊商。在許多情況下,同一頂級域名、通用頂級域名和通用頂級域名都會存在處于競爭關系的多個注冊商。
了解注冊商的安全策略、工具和流程
世界上有數百個域名注冊商,支持超過1500個頂級域名。一些注冊商比其他機構有更好的安全措施。您的組織可以幫助引導行業朝著更好的方向發展。通過查看注冊商的在線文檔了解他們的安全實踐和策略。如果無法找到此信息,請與注冊商進行對話,并鼓勵他們發布此信息。
例如,您的注冊商是否提供運營域所需的支持服務?注冊商是否提供24×7技術支持,允許在非營業時間進行故障排除?ICANN的政策要求您的當前注冊商通知您,他們從注冊商那里收到的任何域名轉移請求,表明有人已經要求將域名轉移到一個新的注冊商。您的注冊商是否只通過電子郵件發送此信息,或者您可以選擇通過電話或傳真請求此信息?您的注冊商是否發送通知所有其他更新到您的域名?ICANN的安全和穩定性咨詢委員會(SSAC)與ICANN社區合作,提供DNS操作和安全指導。ICANN的SAC 40保護域名注冊服務免受剝削或濫用的措施和SAC 44注冊人保護域名注冊賬戶指南是理解和評估注冊商安全實踐的出色指南。
審核隱私注冊選項
許多域名注冊商提供隱私或代理注冊服務。這些服務會對公眾隱藏您的個人聯系信息,并用ICANN-聯系信息取而代之。歐盟的一般數據保護條例(GDPR)已經改變了在像WHOIS這樣的域注冊數據庫中發布信息的方式。作為一般原則,一個基于角色注冊域名信息的方法可以兼容GDPR,同時在您的域名下向社區提供最新的聯系信息。
注:在某些情況下,代理服務器或隱私注冊表會妨礙獲取組織驗證(OV)和擴展驗證(EV)SSL/TLS證書所需的驗證過程。啟用或禁用代理或隱私注冊的過程可能因注冊商而異,在訂閱這些服務之前,應充分了解時間表。在關閉隱私注冊方面的延遲可能會導致證書輪換失敗或域轉移的延遲,如果需要這些服務的話。應該仔細考慮這些風險。
在您的區域內檢查和維護記錄
DNS區域包含許多主機名和子域,但許多DNS管理員可能不知道哪個部門或業務單位負責給定的條目。主機名(hostname)指的是類型為A、AAAA、CNAME、TXT等的記錄。子域由NS記錄的存在來指示,并將對區域的該部分的控制委托給另一個名稱服務器上的區域。
DNS管理員應該知道哪些組或團隊負責他們組織區域文件中的每個條目。如果您的組織使用內部票據跟蹤系統,信息可能存儲在系統中,但在短時間內可能不容易訪問。確保隨著時間的推移精確地跟蹤區域的更改可能需要對內部流程進行更新。一旦您可以在您的區域文件中確定每個條目的責任方,您應該執行定期審查并確保記錄。驗證每個主機名和子域的所有權,并刪除過時的條目應該是常規DNS審查的一部分。
對于新的應用程序、服務或現場演示,可以快速添加記錄,但是這些記錄可能在相關服務關閉或遷移之后仍然存在很長時間。作為內部產品生命周期的一部分,確保對服務的關閉給予了足夠的重視,關閉過程包括通知DNS管理員不再需要主機名或子域。
特別要注意委托的子域,因為它們的設計目的是將區域的一部分控制權讓給另一個名稱服務器。確保NS記錄是準確的,并且它們仍然為子域提供權威的答案。如果您的組織將一個子域名委托給第三方DNS服務提供商,那么經常檢查委托子域名的答案就更重要了,因為外部服務提供商可能會在沒有通知您他們的客戶的情況下重新使用這些IP地址。如果一個區域被委托給由您的組織在第三方云提供商中運行的名稱服務器,那么一定要跟蹤IP地址的變化并相應地更新區域委托。公共云計算傾向于快速重新啟用IP地址,因此無法審計您的NS記錄和相關的IP地址可能會導致域管理權的變更。
名稱服務器和區域文件最佳實踐
DNS審查應包括對您控制的所有名稱服務器上的所有用戶賬戶的審查,包括“初級”和“次級”名稱服務器。可以訪問名稱服務器的用戶可以直接編輯域文件或更改系統上運行的軟件。不要僅僅依靠操作系統中的訪問許可權或訪問級別保護,因為利用或錯誤配置可能允許任何擁有賬戶的人訪問區域文件或服務器配置實用程序。確保保存訪問日志以跟蹤什么人登錄到服務器;訪問控制和問責制對您的DNS基礎設施的所有部分都至關重要。這在主輔模型中尤其重要,其中“初級”名稱服務器包含區域文件的規范副本,而“次級”名稱服務器定期或根據請求將其從主服務器轉移過來。
DNS區域文件修改控制
審查還應該包括對區域文件本身的管理,以確保存在并執行適當的變更管理流程。區域文件的主副本應該存儲在修訂控制系統或其他訪問控制存儲器中。當出現更改請求時,DNS管理員生成一個更新的區域文件,將其放入一個審查程序中,檢查其是否有錯誤,然后將新的副本推送到生產環境。在更新導致意外行為的情況下,應該有一個定期測試和易于執行的過程,將區域恢復到最后一個已知的良好狀態;一個修訂控制系統可以幫助促進這種恢復。審查您的DNS基礎設施還應包括定期審查賬戶,編輯訪問用于維護區域文件的修訂控制系統。
與所有重要數據一樣,區域文件及其更改日志應定期備份到安全的異地備份。可信備份與修訂控制相結合,將有助于建立用于恢復文件的“最后已知良好”版本。
如果區域文件的主副本存在于云DNS提供商中,您應該確保所有可以編輯區域記錄的賬戶都遵守為注冊賬戶服務的強大安全條例。即使在使用云提供商時,也要確保定期存儲區域文件的備份副本,以便在災難恢復中使用。Akamai的Fast DNS產品提供了粒度訪問控制(granular access control)、雙因素身份驗證(two-factor authentication)以及輕松下載專區副本以便備份或審計的能力。
您的域名是否在注冊商處被鎖定?
域鎖定(domain locking)是防止未經授權更改域注冊的一種方法。大多數域名注冊商允許注冊域名的注冊商鎖定(registrar locks),也稱為客戶端鎖定(client locks)。與注冊商聯系,看看他們是否支持這項服務。如果可用,確保您的域是鎖定的。更具體地說,建議至少您的域名應該有客戶端刪除、客戶端更新和客戶端傳輸鎖定功能,不要有客戶端重置鎖定。一些注冊商在他們的門戶只提供一個鎖定選項,這往往會包含上述三個推薦的鎖定功能。鎖定功能集可以防止任何未經授權的更新或傳輸,同時也防止攻擊者在沒有首先解鎖域之前刪除域注冊。而只要不設置重置鎖定,您仍然可以更新域名或利用注冊商的自動更新功能。許多注冊商不會為鎖定功能收取費用,有些甚至會默認鎖定域名,無需您做任何事情。
除了客戶端/注冊商鎖定,一些gTLD或ccTLD運營商還提供服務器鎖定(server lock),也稱為注冊表鎖定(registry lock)。服務器鎖定為域更新增加了額外的保護層,只有在注冊人的請求下,才能通過與注冊操作員的協調的“帶外”(out-of-band)進程(通常是通過電話)添加或刪除服務器鎖定。與客戶端鎖定一樣,建議的服務器鎖定是Server Delete、Server Update和Server Transfer,出于與前面相同的原因,不建議使用Server Renew。請注意,有些注冊商/TLD運營商并不提供這項服務。使用服務器或注冊表鎖定服務通常需要額外的成本,并涉及增加的注冊人/注冊商交互。
請注意,添加或刪除服務器/注冊表鎖定可能會導致更改域的延遲(長達一周),例如更新注冊聯系信息、更新委托記錄、域轉移或域刪除。例如,當轉移域之間的注冊,您需要在傳輸過程開始之前解除鎖定域。
在對您的域進行更改時,請確保使用WHOIS來驗證鎖是否按預期應用。要查詢WHOIS信息,您可以使用ICANN的WHOIS頁面,通過計算機終端的WHOIS命令,或者注冊網站的WHOIS頁面。下面您可以看到一個應用客戶機/注冊機鎖的例子:
同樣,在檢查客戶端/注冊商和服務器/注冊表鎖定的WHOIS時,應該從您的WHOIS查詢返回以下內容:
抱最好的希望,做最壞的打算
域名注冊商已被黑客入侵。DNS管理員賬戶已被攻破。等到這種情況發生就為時已晚了。將這些情況作為DNS審查工作的一部分進行準備。在您的域被劫持的情況下,向您的注冊商詢問他們的恢復過程。他們應該引導您完成準備適當文檔的過程。ICANN的SAC044服務建議收集以下文檔,以防備注冊商域名在被劫持的最壞情況:
這份名單來自ICANN SSAC,一個由ICANN委員會任命的安全專家小組。您的組織應該充分利用他們來之不易的恢復被劫持域的經驗。
后續措施?
本指南僅僅是您的DNS審查和審計練習的開始。未來的文章將深入探討DNSSEC、權威的DNS基礎設施、BGP劫持DNS資源、安全的DNS解析器以及DNS威脅的范圍。請繼續關注Akamai博客和Akamai社區的未來文章。
上一篇:六年紅隊實踐經驗分享