DEVCORE 在昨天舉辦了一場純攻擊導向的研討會,不管是上午場的「策略面分享」或下午場的「技術面分享」,內容都十分精彩。

在下午場的技術分享中,包含了在進行滲透時,如何跳出「思路的陷阱」,讓自己跳出框架,用更有創意的攻擊方式;或是藉由「邊界主機」來攻打到核心主機,偷取金鑰並且成功獲得主機權限。

也有內網滲透、軟體角度的思維,以及萬眾矚目 Orange 分享的電信商設備 RCE 漏洞。

而我們這篇,要來跟大家分享上午場的策略面,加上作者自己的經驗,分享如何從攻擊思維來建立「防禦策略」

從攻擊者的角度制定防禦策略

第一場是由 Aaron 分享,開頭便提到了資安的三大要素:「意識、策略與控制」。從每個人的資安意識(甚至是攻擊者的思維、意識),到擬定策略,並且控制資安狀態,最後又會再回到提升資安意識的部分。

而常見造成資安漏洞的問題點,則以瑞士起司理論來譬喻,防禦方的缺陷在於:防禦設備被繞過、管理不夠落實、重要資產防禦不足、等各樣的「起司漏洞」所造成,導致可以攻擊成功。

為了做好足夠的防禦,有三個新的思維讓我們重新思考:

  • 風險的「真實性」
  • 「路徑式」驗證資安策略,而非單點式
  • 與核心資產關聯的資產,以「同樣等級」來保護

風險的「真實性」

資安防禦第一步是「管理資產」以及「風險評鑑」。但什麼才是真正的「風險」?或是說我們所評估出來的風險,真的就是駭客的攻擊方式嗎?

常見的資安風險管理可以從幾個因素下手:威脅、弱點、機率、資產相依性等等。

但在攻擊時卻是帶有:意圖、威脅來源、甚至我們認為不會發生的事。攻擊者會先找「有戰略價值」的服務來進行攻擊。

為了了解風險的「真實性」,尤其對於資管人員,一般很難了解所有攻擊技巧,不過有幾個方向可以著手:

  • 尋找「真正懂攻擊」的資安人員或團隊進行協助。
  • 防禦方不需要了解所有攻擊(就算是攻擊者也很難完整了解所有攻擊),先盡可能針對你所知道的攻擊進行分析和防禦。
  • 藉由 MITRE ATT&CK 這樣的列表,來幫助我們了解攻擊者的行為、攻擊方式,甚至掌握可能的攻擊族群。

「路徑式」驗證資安策略,而非單點式

攻擊者不會只對單一主機進行攻擊,勢必會橫向滲透、或是從邊緣主機入侵,最終拿下機密,是一個「路徑式」的滲透。

就像小偷要偷東西,可能會先撬開大門(漏洞利用)、在客廳觀察值錢的物品(情資收集)、進入房間(橫向滲透)、找到衣櫥底下獲得保險箱密碼(AD 管理者密碼),最後打開保險箱偷走物品。

小偷的目標是偷走值錢的保險箱內物品,勢必會經過一系列的「路徑」來達成目標。

如果我們只防禦大門,那小偷可能會改從窗戶進攻;如果我們只防禦一個點,那攻擊者就會嘗試換另一條路徑進行攻擊

與核心資產關聯的資產,以「同樣等級」來保護

為了做到路徑式的防禦,我們必須了解攻擊思維,知道真實性的攻擊路徑,並且把周邊關聯的資產都做好保護。

但經費的問題,如果每個點都用同樣等級來防禦,「怎麼會有足夠的經費來執行?」

防禦方的確會有資源有限的問題,但跟攻擊者相比,防禦的優勢在於「更能看清局勢」、更能看清資產分佈和關聯。

我們需要懂攻擊的資安人員或團隊,分析或演練完可能攻擊路徑後,建立優先順序來防禦。

並且防禦需要「集中」,並非物理上或伺服器的集中管理,而是將防禦資源「集中」放在核心主機、周邊主機、路徑上的主機等優先順序高的開始著手。

最後則是「和駭客比時間」,只要能搶在駭客攻擊前先防禦就可以成功。不過研討會一開始提到駭客從漏洞利用開始,18 分鐘便能駭入組織,這又是另一個故事了。

DEVCORE 紅隊的進化,與下一步

第二場是由 Shaolin 介紹 DEVCORE 紅隊的角色與特質。

紅隊演練

以 DEVCORE 紅隊來說,角色可以分成五種:

  • Intelligence:專門負責情資收集、偵查(Recon)、收集外洩資料和密碼等。
  • Sepcial Force:火力特工進行突破。
  • Regular Army:正規軍,進行平行擴散等工作。
  • Support:記錄流程、維持後門連線等。
  • Research:研究企業通用服務(SSL VPN、Jenkins 等)、尋找零時差漏洞(0-day)等。

而從紅隊演練可以發現,防禦者可能不覺得會被打下的地方,攻擊者幾乎都可以打下。從「駭客已經在內網」這樣的零信任(Zero Trust) 環境是值得我們思考的議題。

紅隊演練幫助我們找到防禦方的盲點和弱點(Vulnerabilities),並且測試偵測(Detection)機制、告警是否正常,和能不能快速的反應(Response),都是資安很重要的一環。

可行的防禦方式

對攻擊者來說,攻擊時「能隱匿就隱匿」,無法的話就「盡可能快速攻擊」。但還是會遇到一些在滲透時的難點,舉例像是:

  • 二階段驗證(2FA)
  • AWS CloudWatch 通知系統完善,攻擊行為會立刻被發現
  • 防禦方特殊檢查方式,利用與攻擊者的「資訊不對等」,像是檢查連線的 IP、軟體是否在白名單內

如果我們的防禦,讓攻擊者覺得麻煩、耗費攻擊成本高、有被抓到的風險,那麼這樣的防禦也會有一些價值。

像是「任何登入 zone B,必須先在 zone A 登入至少一天才能到 zone B」這樣的機制,增加麻煩、和資訊不對等的告警(攻擊者可能不知道要登入至少一天),都會增加攻擊者的阻礙。

不過防禦要考量的也不只是增加麻煩度,如果連帶影響了系統複雜度,導致難以維護或追蹤,那這樣的防禦也得不償失。

論壇

論壇則是由 Allen、Birdman、TT 和 Alan 以討論和問答的形式來分享。

其中有幾個常見的問題,像是:

  • 什麼情況投入哪些預算(人、產品、服務)?
  • 怎麼建藍隊?
  • 紅隊演練,紅隊規劃怎麼做?

什麼情況投入哪些預算(人、產品、服務)?

在投入預算前,首要的是進行風險評鑑,如同前面提到的「真實性」風險評估。

而人、產品、服務三者中,「人」是最重要的,包含提升員工的資安意識、培養「了解攻擊者」的資安人才、甚至在評估後編制資安團隊等等。

接著才是使用「服務」來補齊資安不足的地方,和購買「產品」來對應到需要的防禦策略上。

怎麼建藍隊?

其實也是回應第一個預算的問題,找到適合的人才並且確定風險、再來擬定戰略。

而每個企業的目標都不同,但對於防禦方,再三強調的是真的需要「會懂攻擊」的防禦者

從我自己在實踐防禦策略也是如此,懂攻擊的防禦者更能對症下藥、指出真實性風險。而「懂攻擊」也是可以慢慢培訓出來的,就如前面提到的 MITRE ATT&CK,或甚至是之前提過的 OWASP Testing Guide,都可以幫助我們更了解攻擊。

至於建立的藍隊,我們需要有個認知是:「不發生任何資安事件」是不可能的。畢竟資源有限、且在零信任的環境下,我們要做的也是會從高優先權的開始著手。

紅隊演練、紅隊規劃怎麼做?

而紅隊演練是可以循序漸進的,通常會需要例行性的演練(每半年、一年一次)。

也許在第一年不用很全面掃描,可以先從重要資產、曾經的資安事件先來追尋

接著第二年可以制定更多標的,並且從內網出發,發現更多深層弱點。

第三年或之後,就可以採用「全擬真」、類真實性的攻擊模擬,來驗證是否有足夠的防禦可以抵擋攻擊。

重新反思

第一場提到的三個思維:

  • 風險的「真實性」
  • 「路徑式」驗證資安策略,而非單點式
  • 與核心資產關聯的資產,以「同樣等級」來保護

其實概念上是要防禦者也具備攻擊者的思維和想法。而這樣的想法是在 「意識」與「人」 的思維轉變。

我們需要防禦知識的人才,來對每一個資產、威脅做評估,並且對症下藥。我們也需要攻擊知識的人才,幫助我們釐清防禦面是否有盲點和弱點。

然而,如果在企業或團隊內,只有單一類型的人才是不足夠的,往往會造成一直以來資安的問題:對「真實性風險」的不了解、防禦措施的不完備、管理面向的不落實。

但所有的人才、攻擊思維的培訓、實踐花費的時間、金錢都是成本。遺憾的是面對有限的資源、模糊的風險量化,我們往往會趨向選擇接受風險。

也許能在商業價值和資安做一個平衡的方式,是從 DevSecOps 開始。搭配自動化在有限資源下,讓每個人都有資安的意識,讓大家都有權力和責任來實踐資安