觀點

知己知彼 百戰百勝-弱點掃描及滲透測試的重要

2014 / 01 / 10
翁浩正
知己知彼 百戰百勝-弱點掃描及滲透測試的重要

還記得六、七幾年前,在新聞上出現的駭客,多半是學生一時興起,為了線上遊戲的寶物、或是對駭客技術有興趣而越過那條不能越過的線。而現在跟駭客有關的新聞比電影還精采,例如大規模盜取金流、破解安全加密演算法、檔案惡意加密勒索,甚至是攻擊國家基礎建設、國與國之間的資訊戰等。資安的新聞的數量也從一個月一則,變成一天好幾則。知名駭客、駭客組織的一舉一動,也都成為國際資安趨勢的風向球。身為防禦者的我們一定想知道:攻擊者是誰?為什麼他要攻擊?他要攻擊什麼?什麼時間點發動攻擊?從哪裡攻擊?他會如何攻擊?如果懂得駭客的思維,或許還能一窺駭客的神祕面貌。

弱點掃描與滲透測試的差異
面對駭客的威脅,我們的應對措施可以分成很多層面。我們今天來談談一般常見的「滲透測試 Penetration Test」以及「弱點掃描 Vulnerability Assessment」。「滲透測試」是由具備極高技術水準的資安顧問以人工方式模擬駭客的思維,針對系統做攻擊測試。國際常用的測試規範有 OWASP Checklist、OWASP ASVS、CWE/SANS Top 25 這幾種。滲透測試比較依賴資安顧問本身的經驗以及知識,站在跟駭客同一個出發點對系統進行測試,因此更能準確的找出所有問題並進行修復。但因滲透測試是非常細微的測試,無法一次做大規模站台的檢測。「弱點掃描」則是使用自動化工具對系統進行檢測,找出所有已知的風險。這種測試比較依賴程式本身的品質,不同廠牌、不同種類的規則,都會有不同的結果。因為是程式自動化掃描,可以一次做大規模數量的掃描,但也因為程式自動化,恐有誤報的問題,同時可能也無法提供修補建議。若要做完整的資安檢測,還是建議聘請專業資安團隊進行滲透測試。

看到這裡,許多人應該會產生疑問:滲透測試真的有效嗎?如同前面所述,滲透測試非常依賴測試人員本身的資安素養以及專業知識。如果本身對資訊安全有深入的研究、發掘漏洞,並時時瞭解最新攻擊手法,那測試出來的結果也會較為準確。但是,近年來在台灣業界的削價競爭之下,滲透測試的品質也跟著犧牲了。可以參考資安人 2011 年九月的專文:「評選滲透測試廠商-從一分錢一分貨到充斥著謊言的廉價市場」。摘錄一段很沈重卻又很真實的描述,「在企業還搞不清楚各項資安服務有何差別時,資源已經在各種原因的驅動下投入,當然,在混戰中,也有些廠商以滲透測試之名行弱點掃描之實。近兩、三年來,在政府、金融等產業的一窩蜂投入下,整個 PT 產業的品質開始低落,有些企業甚至搞不清楚,弱點掃描與滲透測試的真正差別在哪裡?」

為什麼使用資安工具掃描會無法找出真正的問題呢?因為駭客不是軟體!軟體是死的、駭客卻是活的。每天都有非常多新的駭客手法、安全漏洞等,如果沒有與時俱進,該如何與駭客對抗呢?雖然資安工具會定時更新掃描規則,然而在你等待更新的同時,你的網站、主機也許已經被攻破了。再者,工具無法精確的對系統邏輯思維進行測試,因而無法進一步找出邏輯漏洞。唯有依賴人工的精準測試,才能真正找出問題。

以下圖網站為例,網站的會員可以查詢自己的個人資料,如圖1。但是有心人士發現,網址的 id=101 似乎可以修改,若改成圖2的 id=102?網站即顯示別人的個人資料。這類型的邏輯漏洞,只能靠人工的方式找出,而無法用自動化工具掃描。這也是為什麼需要滲透測試的原因。


圖1 查詢帳號個人資料


圖2 竄改查詢別人個人資料

許多人接下來可能會有第二個疑問:測試完畢之後,該如何去做修補呢?一般的自動化工具產出的報告,通常僅提供弱點位置(網址)、嚴重程度、弱點種類。而在最重要的修補建議中,僅能看到較為簡短的建議。同樣的狀況若轉換為滲透測試,專家於測試結束後,較能提供完整的報告。包括目標的說明、測試的流程、漏洞的描述、漏洞利用的方式及修補的建議等。透過完整的報告輔以資安顧問的輔導,針對這些漏洞進行修補。修補並不是單純把漏洞補起來,而是要用正確的方式把問題根除。例如 SQL Injection 漏洞,如果只單純利用 WAF (Web Application Firewall) 來阻擋,而不是修改程式碼將呼叫資料庫的寫法改成 Prepared Statement,再多防禦跟阻擋都可能被駭客繞過。類似此類只治標不治本的方式,無法完全根除疾病。在修補完畢之後,通常資安團隊會再針對有漏洞的頁面進行複測,檢視修補的方式是否完整,駭客是否還可以透過此漏洞進行攻擊。若經過複測無問題,則本次滲透測試即告完成。

目前攻擊手法日新月異,與駭客的攻防越來越漫長,如果沒有正確的觀念跟態度,是無法在長期抗戰中生存下來的。資安防護就像健康檢查,若能定期讓專業的健檢團隊為您把關,針對各種大小病痛徵兆給您專業的建議,才能將罹患重病的風險降至最低。若每次都在生重病的時候才去看醫生,而不定期做健康檢查,將無法確保身體健康狀況是否正常。企業若要做好資安,建議一定要做好以下幾點:學習駭客思維、提昇企業整體資安意識、定期進行滲透測試、導入安全的開發觀念。如此一來,才能讓企業在這波駭客潮流下安然生存。