威脅分析
你的公司在公網上暴露了什麼:攻擊面盤點
多數公司的資產清冊是從內部視角寫出來的:財產編號、機器名稱、負責單位、擺在哪一間機房。攻擊面盤點問的是另一個問題——從公司以外的網路看進來,你有哪些位址、哪些名稱、哪些服務是會回應的。這兩份清單通常對不起來,而且差距幾乎永遠是同一個方向:外面看得到的,比裡面記得的多。
差距的來源不是誰失職。申請一張憑證會留下公開紀錄,一個部門自己開的雲端測試環境不會經過資訊部門,一台廠商代管的設備上線時順手開了管理介面。每一件事單獨看都合理,加起來就是一份沒有人擁有的對外清單。
這篇文章講怎麼把那份清單找回來:攻擊者用哪些公開來源推導你的資產、哪幾類最常被漏掉、不用買工具也能做完的五個步驟,以及盤到之後每一項該怎麼處置。
- 公開紀錄,不接觸你的系統
- 實際探測你的位址
- 可利用的候選清單
圖說文字版
從一個公開的網域名稱推導到一份可利用的候選清單,共四段;前三段只用公開紀錄,不接觸目標系統。
第一段:起點
- 一個網域名稱,任何人都查得到。
第二段:四類公開來源
- 網域註冊與 ASN 紀錄(ATT&CK T1590):查出組織名下的網段。
- DNS 紀錄與反查(T1590.002):查出主機名與對應位址。
- 憑證透明度紀錄(T1596.003):查出所有申請過憑證的子網域,包含內部用途的名稱。
- 公開程式碼與文件(T1593):從程式碼平台、簡報與求職資訊取得系統名稱與網址。
第三段:候選清單
- 四類來源合併成候選的 IP 段、子網域與主機名清單。
- 到這一步為止都沒有送出任何一個封包給目標。
第四段:實際探測
- 連接埠掃描:測出候選清單裡哪些位址會回應。
- 從回應內容判斷服務與版本,再與已知被利用漏洞目錄(KEV)比對,得到可利用的候選清單。
要看出來的事
- 前三段完全在你的日誌之外,你不會知道有人做過。
- 只有最後一段會碰到你的系統,而那只是一次普通的掃描。
- 整條鏈是自動化、持續執行的,而且不是為你一家而跑。
攻擊者從一個網域名稱能推出多少東西
在攻擊鏈裡這個階段叫偵察(TA0043),它發生在任何一次連線之前。攻擊者手上通常只有一個公司名稱和一個網域,而這兩樣東西足以推出一份相當完整的資產清單,過程中完全不需要碰到你的系統,因此你也不會知道它發生過。
| 公開來源 | 能得到什麼 | 技術編號 |
|---|---|---|
| 網域註冊與 ASN 紀錄 | 這家公司名下的 IP 段 | T1590 |
| DNS 紀錄與反查 | 主機名與對應位址 | T1590.002 |
| 憑證透明度紀錄 | 所有申請過憑證的子網域 | T1596.003 |
| 公開程式碼與文件 | 系統名稱、內部網址、技術棧 | T1593 |
網域註冊資料現在透過 RDAP 查詢,它會告訴對方你的網段掛在哪一個自治系統(ASN)底下——換句話說,只要查得到你的 ASN,你的整段公網位址就是公開資訊,這正是蒐集受害者網路資訊(T1590)這個技術編號在做的事。
其中最常被低估的是憑證透明度紀錄。每一張公開信任的 TLS 憑證都會被登錄進公開可查的紀錄,任何人都能用網域名稱把歷來簽發過的憑證全部列出來。多數人不知道的是:vpn-test.example.com、hr-uat.example.com 這種名字,在申請憑證的那一刻就對全世界公開了,這也是搜尋公開技術資料庫(T1596)最有效率的一條分支。
到這裡為止,對方手上是一份候選清單,而且沒有送出任何一個封包給你。接下來才是主動掃描(T1595):對候選清單做連接埠掃描,記錄哪些位址會回應;會回應的再做服務橫幅擷取判斷產品與版本;最後把版本拿去對 CISA 已知被利用漏洞目錄。這一整段和勒索軟體入侵途徑的第一步是同一件事,差別只在它現在是自動化、持續執行、而且不是為你一家而跑的。
六類最常被漏掉的對外資產
漏掉的東西是有規律的。下面六類幾乎每次盤點都會冒出來,它們的共同點是:上線的時候都不是資訊部門經手的。
| 類別 | 典型情況 | 為什麼會漏掉 |
|---|---|---|
| 測試與預備環境 | uat、staging、demo 子網域 | 專案結束沒有人負責關 |
| 部門自建的雲端 | 行銷或研發自己開的主機 | 沒有經過採購與資訊部門 |
| 外包代管的網站 | 活動網站、形象官網 | 續約換手後沒有人追 |
| 廠商代管的設備 | 監控主機、門禁、NAS | 為了遠端維護開了對外埠 |
| 管理介面 | 防火牆、虛擬化平台、遠端桌面 | 以為「只有我們知道網址」 |
| 過期的 DNS 記錄 | 指向已經釋出的雲端資源 | 服務停用了,記錄沒刪 |
前兩類是典型的影子 IT:它們解決了真實的業務需求,只是沒有走既有流程,所以既不在清冊上,也不在修補排程裡。
最後一類值得單獨講。當一筆 DNS 記錄指向一個已經被釋出的雲端資源,別人有機會把那個資源重新申請下來,於是你的子網域開始由別人提供內容,而瀏覽器和使用者都看不出差別——這叫子網域接管。它的成本極低,因為那筆記錄早就沒有人在看。
不用買工具,五個步驟做完第一次攻擊面盤點
第一次攻擊面盤點不需要採購任何東西,也不需要專案預算。需要的是一個下午,和一份願意被推翻的既有清單。
- 列出起點。 公司持有的所有網域(含已停用但還沒退租的)、對外 IP 段、雲端帳號,以及委外廠商代管的網站。
- 從公開來源展開。 查憑證透明度紀錄補子網域、查 DNS 與反查補主機名,併成一份候選清單。這一步不碰任何系統。
- 確認哪些會回應。 對自己的位址做連接埠掃描,記錄開放的埠與服務。只掃自己的資產——對未經授權的目標做這件事在國內可能構成妨害電腦使用罪,委外執行時範圍要寫進書面授權。
- 每一項標三件事。 誰負責、誰在用、出事會影響什麼。第一項答不出來的,本身就是這次盤點最重要的發現。
- 存一份快照。 把清單存下來當基準線,之後每一次只需要看差異,不必從頭再做一遍。
這五步的深度有明確的上限:你能確認什麼在回應,不能確認它是否真的能被利用。要回答後者,得在授權範圍內實際嘗試,那是紅隊演練與滲透測試的工作,不是盤點的工作。
盤到的每一項,只需要回答三個問題
清單本身沒有價值,處置才有。每一項只需要問三個問題:還有人在用嗎、誰負責、它一定要對全世界開嗎。前兩個決定它有沒有人管,第三個決定它該不該被看見。
- 維持對外,加固並持續修補
- 需要納管或改變可達性
- 直接關掉
圖說文字版
把每一項對外資產放進二乘二的四格:橫軸是資訊部門知不知道它存在,縱軸是它是否真的需要對全世界開放。落在哪一格就決定處置方式。
左上:知道,而且真的需要對外
- 例子:官網、郵件、客戶入口。
- 狀態:有負責人,也有維護窗口。
- 處置:加固並持續修補,維持對外。
右上:沒人記得,但確實有人在用
- 例子:外包代管的網站、部門自建的雲端服務。
- 狀態:確實有人在用,但不在資產清冊上。
- 處置:先找出負責人並納管,再談其他。
左下:知道,但不需要對全世界開
- 例子:VPN 閘道、管理介面、遠端桌面。
- 狀態:只有內部與少數對象該用。
- 處置:改成通過授權才可達。
右下:沒人記得,也沒人需要
- 例子:忘了關的測試站、舊子網域。
- 狀態:沒有人維護,也沒有人在看。
- 處置:直接關掉。
- 這一格是風險最高的一格。
多數公司做完會發現分佈嚴重偏向下半部:真正需要全世界都連得到的服務,通常只有官網、郵件與少數客戶入口;其餘的對外開放幾乎都是歷史因素——當年為了讓某個人在家能連,後來沒有人關。
為什麼多數項目根本不需要「被看見」才能被使用
左下角那一格——知道它存在、但不需要對全世界開——通常是清單裡最大的一群,也是最難處理的一群:關掉會有人抗議,開著就是攻擊面。
傳統的折衷是限縮來源 IP。這個做法在所有人都坐在固定據點時有效,但遠端辦公、行動網路與跨國分點讓來源位址不再固定,白名單於是愈開愈大,最後回到原點。
另一種做法是換掉可達性的前提:服務不對外開埠,改由服務端主動向外建立連線,只有通過身分驗證與授權的請求才會被接上。這樣掃描者拿到的不是「連線被拒絕」,而是完全沒有回應——因為那個位址上根本沒有東西在監聽,它也就不會進入任何一份候選清單。機制細節寫在 Merak 零信任網路是怎麼運作的,各種架構在這件事上的差別整理在傳統 VPN、閘道式 ZTNA 與 SDP 架構比較。
要講清楚的是:這不會讓攻擊面歸零。官網與郵件仍然必須對外,人仍然會點釣魚信。它做的是把需要防守的清單縮到「真的必須對外的那幾項」,讓有限的修補與監控人力集中在那幾項上。
攻擊面會漂移,所以盤點不是一次性專案
盤點結果的正確性從交出去那天開始遞減。新專案上線、廠商換設備、部門開雲端服務、憑證多簽了兩個子網域——每一件都會在沒有人通知資訊部門的情況下改變攻擊面。
- 上次盤點時就在清單上
- 之後新增,尚未納管
圖說文字版
同一條時間軸上的兩排項目:上排是上次盤點列出的清單,下排是之後陸續新增、沒有經過資訊部門的對外項目。
上排:上次盤點的清單
- 官網、郵件、VPN 閘道、客戶入口、監控介面,共五項。
- 這份清單從盤點那天之後就不再變動。
下排:之後新增的四項
- 活動網站,來自外包代管。
- 測試環境,來自專案上線。
- 廠商設備,來自遠端維護。
- 雲端服務,來自部門自建。
要看出來的事
- 四項新增都沒有經過資訊部門,因此不在任何清單上。
- 在下次盤點之前,下排每一項都是對外開著、而且沒有人在看。
- 兩排的差額會隨時間拉大,這是盤點需要固定週期的原因。
實務上可行的節奏是:季度做一次完整盤點,另外在四個時機臨時觸發——新系統上線、併購或新增據點、更換委外廠商,以及任何一次對外服務異動。因為有基準線快照,每次要看的是差異而不是總量,成本會比第一次低得多。
這件事在國際框架裡不是加分項,而是第一號控制項:CIS Controls 第 1 項就是企業資產的盤點與控管,NIST CSF 2.0 也把資產管理放在識別(Identify)功能的最前面。順序是有道理的——你沒辦法保護一個你不知道存在的東西。
名詞對照與延伸閱讀
| 名詞 | 一句話解釋 | 出處 |
|---|---|---|
| 攻擊面 | 所有可被外部觸及的入口總和 | Attack surface |
| 偵察 | 攻擊前蒐集目標資訊的階段 | MITRE ATT&CK TA0043 |
| RDAP | 查詢網域與位址註冊資料的協定 | RFC 9082 |
| 自治系統(ASN) | 同一組織路由政策下的網段集合 | Autonomous system |
| 蒐集受害者網路資訊 | 查網段、網域與 DNS 的偵察技術 | MITRE ATT&CK T1590 |
| 憑證透明度紀錄 | 公開可查的憑證簽發登錄紀錄 | RFC 6962 |
| 搜尋公開技術資料庫 | 從公開紀錄取得目標資產資訊 | MITRE ATT&CK T1596 |
| 主動掃描 | 直接對目標位址發送探測封包 | MITRE ATT&CK T1595 |
| 連接埠掃描 | 逐一測試哪些連接埠會回應 | Port scanner |
| 服務橫幅擷取 | 從回應內容判斷產品與版本 | Banner grabbing |
| 已知被利用漏洞目錄 | 已確認遭實際利用的漏洞清單 | CISA KEV |
| 影子 IT | 未經資訊部門納管的系統與服務 | Shadow IT |
| 子網域接管 | 指向已釋出資源的 DNS 記錄被佔用 | OWASP WSTG |
| 妨害電腦使用罪 | 無故入侵他人電腦設備的刑責 | 中華民國刑法第 358 條 |
| 資產盤點控制項 | 要求列管所有企業資產的控制項 | CIS Controls 1 |
| 網路安全框架 CSF 2.0 | 以識別、保護、偵測分類的框架 | NIST CSF 2.0 |
| 零信任架構 | 不以網路位置作為信任依據的架構 | 何謂零信任架構 |
上面的四類公開來源與五個步驟,可以直接當成第一次攻擊面盤點的工作清單。圖示為簡化模型,實際環境還會有雲端與分點的差異。若盤完之後卡在那些「應該關掉、但業務上關不掉」的項目,歡迎透過聯絡我們一起看有沒有別的解法。