前面幾天,我陸續談到了 SIEM、EDR、NDR,以及 Threat Intelligence。
這些工具其實都在幫 SOC 解決同一件事情:
怎麼從大量的系統與網路活動中,找出真正值得調查的異常行為?
但實際做 SOC 一段時間後,我慢慢發現另一個問題。
我們平常看到的大部分設備,本來就會有人使用。
Server 本來就會被連線、Firewall 本來就會看到大量流量、Client 也會連到各種服務。
所以看到一個行為時,我通常不能直接說:
「這就是攻擊。」
還是得回頭確認 IP、Port、帳號、時間、設備用途,甚至詢問客戶是不是正常操作。
但如果今天我刻意在環境裡放了一台:
正常使用者根本不應該使用的設備呢?
這就是我這篇想談的 Deception。
Deception 通常翻譯成「欺敵防禦」。
如果用比較簡單的方式理解,就是在企業環境裡刻意建立一些誘餌(Decoy)。
這些誘餌看起來像真正存在於企業裡的 Client、Server 或服務,但它們並不是拿來承載正常業務。
目的反而是:
觀察到底有誰會去碰這些正常情況下不應該被使用的資產。
我實際接觸 Acalvio Deception 時,就曾經部署過假的 Server 與 Client。
而在建立這些 Decoy 時,也不是隨便建立一台完全跟環境無關的設備。
我們會參考客戶原本的環境,例如 OS、版本、提供的服務、Port,甚至設備的命名方式,讓 Decoy 不會在整個環境中特別突兀。
版本可能與正式環境相同,也可能稍微舊一些。
對我來說,Deception 很重要的一個地方就是:
誘餌不是單純「放一台假的機器」,而是要讓它合理地存在於整個環境裡。

簡單來說,它們主要差在攻擊者可以與 Decoy 互動到多深。
低互動通常模擬較有限的系統或服務,高互動則能提供更接近真實系統的互動環境。
實際部署時,我曾經採用較多低互動 Decoy,再搭配少數一、兩台高互動 Decoy。
但我認為真正重要的問題不是要選哪一種,而是:
這些 Decoy 到底應該放在哪裡?
如果資源有限,不可能每個網段、每個地方都大量部署 Decoy,我會先考慮兩件事情:
這個資產有多重要?以及這個地方是不是攻擊者可能經過的位置?
如果讓我選,我會優先考慮:
AD/DC、Server 區、對外服務區。
AD/DC 是我會特別注意的位置。
因為 AD/DC 涉及企業內部大量的帳號、權限與 GPO 等資訊。如果攻擊者已經開始往這個區域移動,本身就是值得高度關注的事情。
再來是 Server 區。
企業的重要服務通常都存在這裡,這些設備可能不能任意停止服務,更不能接受被加密或破壞所造成的影響。
最後則是對外服務區。
因為這些設備本身就需要面對 Internet,暴露面自然比較高,也可能成為攻擊者嘗試建立初始立足點的位置。
所以我不會單純用:
「哪裡有空間就放一台 Decoy。」
而是會從資產的重要性與可能的攻擊路徑去思考部署的位置。

另外一件我認為很重要的事情,是不要一開始就急著把 Decoy 丟進環境。
最好先知道:
客戶現在到底有哪些弱點?
例如可以先利用 Nessus 對環境進行弱點掃描,了解目前 Server、服務與版本存在的基本弱點。
真正的正式資產如果存在需要處理的弱點,應該先讓客戶進行確認與修補。
Decoy 則可以依照環境的實際狀況,模擬相近的系統、服務或較舊版本,保留適合作為誘餌的特徵。
這時候就會形成一個很有意思的差異:
真正需要保護的設備盡可能修補;刻意留下來觀察攻擊行為的攻擊面,則放在受控的 Decoy 上。
當然,這並不代表要隨意建立一台可以危害其他正式設備的主機。
Decoy 本身仍然需要適當的網路隔離與控制。

這也是我實際接觸 Deception 後,覺得它有價值的地方。
一般真正的 Server 本來就有人使用。
例如今天看到:
Client → TCP 445 → File Server
我不能因為看到 445 就直接判斷是 SMB 攻擊。
因為 File Server 本來就可能提供 SMB。
我還要繼續確認來源設備、帳號、時間、連線次數以及設備用途。
但 Decoy 不一樣。
它原本就不是提供正常業務使用的設備。
如果某台內部設備突然開始掃描 Decoy,我第一個問題就會變成:
為什麼它會去找一台正常情況下根本不需要接觸的設備?
這時候 Deception 就提供了一個很好的調查切入點。
我認為 Deception 的價值並不小。
其中一個原因,是攻擊者進入環境後,通常會繼續尋找其他可能突破的目標。
如果 Decoy 的系統、服務或版本看起來具有探索價值,就增加了攻擊者與誘餌互動的可能性。
而當攻擊者開始與 Decoy 互動後,我們真正想知道的就不只是:
「有人碰到誘餌了。」
而是:
「他碰了什麼?用了什麼方法?接下來又做了什麼?」
這些行為可能成為後續調查的線索。
再把 Deception 的資訊與 SIEM、EDR、NDR 或其他 Log 結合,就有機會往前、往後還原事件:

這些資訊除了用來調查事件,也能反過來讓我們思考:
目前的防禦還有哪些地方可以改善?

讓攻擊者與誘餌互動,同時留下可供 SOC 分析的攻擊行為與路徑。
這裡還是要特別注意。
假設一台設備只是做網段掃描,剛好把 Decoy 掃進去,我不會直接告訴客戶:
「這台設備已經被植入後門。」
因為證據還不夠。
因為 Port Scan 跟 主動連線 再來到 嘗試登入 甚至 登入後持續操作
代表的互動程度都不一樣。
所以 Deception 可以提供很值得 SOC 注意的訊號,但最終還是要搭配其他證據與 Context 進行判斷。
以前如果有人跟我說 Deception,我可能會直接想到:
「放 Honeypot 等駭客進來。」
但實際接觸之後,我覺得它不只是這樣。
我現在會把它理解成:
在真實環境裡刻意建立正常使用者不應該接觸、但對攻擊者具有探索價值的目標,讓 SOC 有機會更早發現異常行為,並觀察後續的攻擊活動。
它不是拿來取代 Firewall、EDR、NDR 或 SIEM。
反而是增加另外一個觀察角度。
與其只是在大量正常流量中尋找異常,不如在環境裡刻意建立一個正常人不應該碰的目標。
看看誰會去碰它,以及碰了之後做了什麼。
以上是我今天整理的心得感想