圖片來源: 

周峻佑攝

企業試圖找出整體資訊系統弱點的方法裡,紅隊演練(Red Team)可說是打破滲透測試只鎖定單一系統等範圍限制,然而,在紅隊演練的過程裡,負責找出系統弱點的紅隊隊員,很可能因為判斷的思維上,過於依賴自身經驗或是熟悉的工具,而可能錯過找到弱點的情況。戴夫寇爾資安研究員丁諭祺(Ding)針對這樣的現象,於今年的DEVCORE Conference上,指出演練時需要留意的5項技巧,希望執行人員能夠在專案有限的時間裡,透過駭客的思維找出系統漏洞。

基本上,執行紅隊演練的從業人員,不只需要擁有專精的技術,還必須在指定的時間和範圍內,進行通盤的檢查,因此,迫於這些限制,雖然他們已經精通有關技術,還是很可能因為自身的經驗,而影響找尋系統弱點的方向。

盲點源自於範圍的局限

究竟那些事情會影響紅隊隊員的調查方向呢?丁諭祺說,以企業委由資安公司執行紅隊演練的專案文件內容為例,通常會載明雙方的聯絡窗口資訊、執行紅隊演練的時間、目標範圍,有些公司還會提供測試帳號等等。然而,光是文件寫明的演練範圍來說,就可能出現文件寫明是單一網站,企業卻覺得範圍應該是整個網域,而這種認知上的差異,也同樣會出現在紅隊的隊員之間。

例如,演練網域和IP位址對應上,並非一對一的情況,紅隊隊員甚至可能要探究內容傳遞網路(CDN)背後的真實IP位址,或是開發者與主機資訊等,導致從不同管道進行調查,結果可能會大不相同。再者,若是遇到有些公司主動提供測試帳號,紅隊隊員也可能因為有現在帳號可用,而遺漏檢查系統的帳號申請流程。

針對這些可能會左右調查方向的細節,丁諭祺總共歸納出5大類型的迷思,包含過於信任情資而產生的誤判、自我局限調查的範圍,或是太過依賴熟悉的工具與方法,而導致找出漏洞的過程裡,全程幾乎只使用一種招式。

再者,資安人員也可能在已經進行偵察過後,忽略時空變化所產生的環境差異,認為調查範圍沒有會被攻擊之處。有時候因為企業部署了各式的資安防護措施,資安人員可能過於著重在尋找繞過的方法,使得思考方向大幅受到限制。

在這些類型的盲點中,總體來說,其實幾乎都圍繞著一件事,那就是資安人員可能會過度相信自己能夠掌握的資訊,模糊焦點而影響判斷。以局限演練範圍來說,我們可能過於相信專案上所描述的內容,再加上自己理解的情蒐範圍,而導致可能錯失有用的偵察之處;時空差異則是另一種演練範圍的限制,使得紅隊隊員檢查過後,忽略企業系統運作中,存在負載平衡與高可用性的機制,使得他們難以找到僅發生在部分環境的弱點。

至於過於在意系統的防禦機制,也是源自於紅隊隊員調查的情報,因為過於想要以技術來突破防禦措施,並未思考其他可能有機會拿來利用的管道。

而對於紅隊人員只使用一招打天下的慣性,也會錯失攻擊的可能性。由於資安研究員專精特定領域,對於其他不甚了解的部分,可能選擇使用熟悉的單一方法調查系統漏洞,導致必須經過長途跋涉,耗費大量的時間和資源才能達到目的。

紅隊隊員在發現漏洞後,馬上使用自己專精的方法著手,雖然能夠達到目的,但需要耗費大量的時間和資源(紫色箭頭程序),因此丁諭祺認為,要先全盤調查並記錄,找到最佳路徑,才能事半功倍(綠色箭頭程序)。(攝影/周峻佑)

癥結點在於過度相信已掌握資訊

一般而言,在紅隊演練的過程裡,紅隊隊員尋找系統漏洞時,相當倚賴情資所提供的訊息。然而,紅隊隊員很可能掌握到過時情資,或是依據自己的經驗,再加上過度聯想,認為不會有漏洞而略過調查。因此他認為,紅隊隊員對於手上握有的情資,必須隨時保持懷疑的態度,非但不能一味相信,甚至還要想辦法親自驗證才行。

丁諭祺說,即使是測試工具,也可能會出現執行結果不正確的情形。像是資安人員經常會將惡意軟體的特徵加入字典檔裡,卻可能因為工具的臭蟲,而導致沒有發揮作用,偵測不到前述已納入的惡意軟體。

實務上可能會遇到的情形會是如何?像是紅隊隊員得知受測單位裡,握有資訊系統管理權限的工程師,打算針對他進行網路釣魚或是撞庫攻擊,但實際上,這名工程師卻已經在2個多月前離職。這樣的情資,便可能影響該名隊員執行演練工作的進度,還有可能繞了一大圈之後,才知道取得的情資有誤。

而針對漏洞的部分,也不能把某些事情視為理所當然。丁諭祺指出,紅隊隊員很可能因為某個程式庫已有很多研究員做過分析,執行紅隊演練的單位也通過多次滲透測試,就認為應該不會有漏洞。

對此,丁諭祺舉出兩個戴夫寇爾團隊執行演練時,親身經歷的案例,在第一個案例裡,他們已經透過GitLab伺服器,取得攻擊目標伺服器的原始碼,並且找到許多漏洞,但在此同時,卻不能找到實際能夠用來攻擊伺服器的弱點,而無法取得伺服器的Shell。

後來發現能存取的關鍵在於,他們在Git的忽略檔案清單(.gitignore)的規則裡,找到一個名為phpinfo的檔案,疑似是開發過程的測試檔案,已經被開發者找到會洩漏資訊的情形,並寫到報告的草稿之中。解析其中的內容後,他們發現含有危險函式EVAL,因此便能搭配前述的漏洞,發動攻擊。

第二個案例,則是針對採用TCPDF函式庫的網站,戴夫寇爾資安團隊鎖定這個函式庫已知的CVE漏洞,進行檢測後發現沒有問題,他們便覺得,上述可將訂單匯出為PDF檔案的函式庫,廣受許多電子商城採用,應該不會存在重大問題。

沒有CVE漏洞就真的毫無弱點嗎?針對案例中所提到的TCPDF函式庫,丁諭祺說,在資安人員常用的CVE Detals網站上,只找得到一個在2017年發現的列管漏洞。紅隊隊員很可能測試過這個CVE後,就誤以為系統的這個函式庫沒有問題。(攝影/周峻佑)

然而在進一步檢測之後,他們卻發現,使用者能在訂單裡輸入惡意程式碼,並且在匯出訂單的PDF文件時,藉由輸出副檔名為.PHP的檔案,執行任意指令,進而取得伺服器的Shell。

從這兩個案例中,丁諭祺指出了幾個執行過程的盲點,首先,他們以為,從GitLab取得的原始碼,就是伺服器上所有的檔案,而忽略部分測試檔案並不會上傳到程式碼代管平臺。其次,他們則是認為,開發者已經編寫了分析報告,就代表漏洞已經修補完成。

而在TCPDF函式庫的部分,則是偏重已經通報CVE的漏洞,而沒有留意可能在坊間流傳漏洞,丁諭祺說,尤其是需要結合多個環節才能濫用的攻擊手法,紅隊演練的隊員更容易輕忽。

攻防不光是針對系統,也考驗人性

比較特別的部分是,紅隊隊員也可以反過來運用系統裡的防禦機制,進一步得到所需的資訊,而成功在專案結束前達成目標。其中的一個例子,便是他們發現網站伺服器的任意讀檔漏洞,但取得所需的絕對路徑,竟然是透過防毒軟體的事件記錄資料──他們刻意上傳了惡意軟體,觸發伺服器裡的防毒軟體警示通知,然後透過事件記錄內容,得到存放網站檔案的Web資料夾本機路徑。

紅隊隊員想要突圍找出系統漏洞,就只能「繞過」或「打穿」防毒軟體嗎?丁諭祺舉出一個案例,就是利用網站伺服器裡安裝的防毒軟體,盡忠職守將惡意軟體攔截,他們得到伺服器本機裡,存放所有網站檔案的Web資料夾完整路徑。(攝影/周峻佑)

除了前述提到能變相利用防毒軟體之餘,丁諭祺也指出其他相關的情資收集應用,像是能從防毒軟體的組態設定檔案中,得知企業環境中的代理伺服器參數,或是得到反安裝密碼,進而停用防毒軟體等。值得注意的是,雖然這裡的案例中,企業部署的是趨勢科技OfficeScan,但丁諭祺表示,由於各廠牌的企業版防毒軟體都會留下執行記錄,因此這裡提到的手法,可以運用到不同廠牌的防毒軟體上。(攝影/周峻佑)

另一個例子,則是在他們攻下企業的重要服務主機後,卻無法取得AD網域管理員的權限,這時他們利用觸發防毒軟體警示的方法,使得AD網域管理員登入系統察看,再從中側錄到他的帳號和密碼,進而得到客戶的機密資料,丁諭祺說,整個過程僅花費不到20分鐘,在專案結束的最後一刻達標,宛如科幻電影裡演的情節,因此他認為,由於防禦機制是人想出來的,紅隊演練不完全只有針對系統本身,也有存在人性探察的成分。

觸發防毒軟體還能釣出AD網域管理員的帳號密碼!丁諭祺舉出他們在距離演練的時限20分鐘之內,利用這種方式,讓管理者上線而達成目標。(攝影/周峻佑)


Advertisement

更多 iThome相關內容