虛擬世界的真實威脅-漏洞檢測工具初探

Allion Labs/ Jackson Chen

漏洞檢測,您到位了嗎?

APP開發過程中,資訊資產與風險管理,是相當重要的一環,但其實很多公司都沒有專業的測試人員,出於利潤,大部分公司把時間和金錢都用在對APP的開發上,缺少了完整的測試檢測環節,從而導致APP上線後問題不斷,目前常見的使用平台為Kali Linux,其中包含多種類型工具供用戶使用,但我們也不局限於此平台,仍可使用其他工具使測試更加完整。

工具功能
Kali Linux針對網頁與APP進行信息收集、模擬漏洞攻擊和漏洞分析
ApacheBench網頁與APP壓力測試
Nessus針對系統進行漏洞分析

表一:測試工具及功能

測試平台


圖一:Kali Linux

系統自帶工具集Kali Linux系統最頂層是十四種安全工具分類,每一個分類有不同的測試工具,以下介紹其中三種類型,分別為信息收集、壓力測試、漏洞分析。


圖二:Kali Linux十四種安全工具分類

1. 信息收集

在滲透測試中,我們需要盡可能收集多一些目標的信息,因為資產探測和信息收集決定了你發現安全漏洞的機率有多大。如何最大化的去收集目標範圍,盡可能的收集到子域名及相關域名的信息,這對我們下一步的漏洞測試顯得尤為重要,以下介紹信息收集的實際範例。

範例一:登錄帳戶密碼的暴力破解

I. 需要知道的信息有:

-需要破解的主機名或是IP和URL 區分是https & http

-登入成功和失敗時返回信息的區別

II. 使用工具

-Kali Linux 中信息收集的dnsenum,和密碼攻擊中的Hydra

III. 操作步驟

-先使用dnsenum得到目標的IP地址


圖三:獲取目標IP地址

Hydra的指令
Hydra –l 用戶名 –p密碼字典 –t線程-vV –ip ssh


圖四:獲取賬密

IV. 解決方法

A. 動態登入

需限制登入時間以及登入帳號的次數,例如: 簡訊內標註有效時長為5min,實際有效時長卻約為30min,對獲取動態密碼次數做了限制,但未對密碼暴力破解做任何防護,防止暴力破解密碼的方式。

B. 靜態登入

需要使用Session去認證登入者的身分,通常在用戶完成身分認證後,存下用戶資料,接著產生一組對應的id,這個id必須為獨特的,所以會使用uuid的機制處理。

C. 雙重驗證

現在也有使用雙重認證的方式去保護使用者的帳戶安全,像是登入Google帳戶,就可以設定登入之後,Google會發送一條簡訊,其中有另外的登入密碼,也可選擇語音的方式得知登入密碼,更加保護了帳戶安全

D. 禁止密碼輸入頻率過高的請求

當同一來源的密碼輸入出錯次數超過一定的值,立即通過郵件或者簡訊等方式通知系統管理員

2.壓力測試

壓力測試在大型系統的設計和開發中非常重要,壓力測試可以幫助我們發現系統的效能且評估系統能力,且進行針對性的效能優化,也可以幫助我們驗證系統的穩定性和可靠性。除了Kali Linux以外,還有以下常見工具:


圖五:ApacheBench

ApacheBench的測試,可以輕易的模擬 1,000以上 使用者的同時連線(concurrent users) 測試,輸出的測試結果也相當清楚。並且不侷限於linux作業系統,可以在Windows上安裝,以下為壓力測試實際範例:

範例二:壓力測試

I.使用工具

-ApacheBench

II.操作步驟

-先到Apache的資料夾位置,執行ab.exe,語法為ab –n 100 –c 10 {url}


圖六:壓力測試執行ab.exe

得到測試結果


圖七:壓力測試測試結果

欄位講解如下:

Server Software: WEB主機的作業系統與版本(若web主機設定關閉此資訊則無)

Server Hostname: WEB主機的IP位址(Hostname)

Server Port: WEB主機的連接阜(Port)

Document Path:測試網址的路徑部分

Document Length:測試網頁回應的網頁大小

Concurrency Level:同時進行壓力測試的人數

Time taken for tests:本次壓力測試所花費的秒數

Complete requests:完成的要求數(Requests)

Failed requests:失敗的要求數(Requests)

Write errors:寫入失敗的數量

Total transferred:本次壓力測試的總數據傳輸量(包括HTTP Header的資料也計算在內)

HTML transferred:本次壓力測試的總數據傳輸量(僅計算回傳HTML的資料)

Requests per second:平均每秒可回應多少要求

Time per request:平均每個要求所花費的時間(單位:毫秒)

Time per request:平均每個要求所花費的時間,跨所有同時連線數的平均值(單位:毫秒)

Transfer rate:從ab到Web Server之間的網路傳輸速度

3.漏洞分析

漏洞分析是指在代碼中迅速定位漏洞,弄清攻擊原理,準確地估計潛在的漏洞利用方式和風險等級的過程。我們將使用Nessus這項工具,這套工具能夠幫助系統管理者搜尋系統主機的漏洞所在,使用者可自行撰寫攻擊測試程式,且讓系統管理者對系統主機進行錯誤的更正和防護,以避免被入侵者攻擊,以下為弱點掃描流程


圖八:弱點掃描流程

範例三:掃描本機漏洞

I. 使用工具

-Nessus

II.操作步驟


圖九:Nessus開始界面

Nessus基本流程為(1)登錄,(2)創建或配置策略,(3)運行掃描,(4)分析結果,根據掃描要求,選擇配置策略,也就是可以在目標上執行的漏洞測試,Nessus提供的掃描模板。


圖十:Nessus掃描模板

建立策略

名稱為Local Vulnerability Assessment

目標為本機位址: 192.168.18.149


圖十一:Nessus建立策略

啟動畫面


圖十二:Nessus啟動畫面
圖十三:掃描結果

點選本機的漏洞情況,可以查看詳細漏洞信息,並且會提供解決方法


圖十四:漏洞情況

漏洞描述為:遠程主機受遠程桌面協議(RDP)中的遠程執行代碼漏洞影響。未經身分驗證的遠程攻擊者可以通過一系列特製請求來利用此漏洞來執行任意的代碼,也可匯出一份PDF檔,提供解決方法

資安風險一站式測試方案

針對資訊安全、網頁和APP,可提供以下測試方案:

  • 資安健檢

檢視內部作業提供改善建議,提升資安防護能力

  • 漏洞偵測分析

WEB主機或系統做安全掃描,提供結果並協助修正

  • 壓力測試

WEB壓力測試,在同一時間能有多少人在線上,檢視WEB的負載能力

測試常見問題,一對一解析

  • 滲透測試有標準流程嗎?

有的,請參考下列三個由幾個開源組織制定的滲透測試標準流程

OWASP ( Open Web Application Security Project )

OSSTMM (Open Source Security Testing Methodology Manual)

PTES ( Penetration Testing Execution Standard )

  • 滲透測試執行完畢後就完全沒有問題了嗎?

由於駭客攻擊手法層出不窮,即使系統不進行任何更動,也難以保證未來不會被新的方式入侵,因此仍建議客戶定期執行測試。

  • 滲透測試與弱點掃描的差異?

滲透測試是以人工方式模擬駭客的思維,針對系統做攻擊測試,比較考驗測試人員本身的經驗以及知識,弱點掃描則是使用自動化工具對系統進行檢測,找出所有已知的風險。

百佳泰資安風險檢測服務阻擋虛擬世界的威脅

在虛擬世界中,安全漏洞風險無處不在,百佳泰能夠模擬駭客攻擊的手段對各類系統進行安全檢測,並評估其風險,提供解決方案。在產品、APP及網頁上市前,針對其使用特性及用戶情景,提出客製化的資安風險檢測,透過全面性、多樣性的測試方式及測試手法,替您的產品、APP及網頁做資安把關。除此之外,百佳泰亦有針對物聯網裝置的檢測服務,(可點閱:物聯網無線應用之資安風險:您的智慧裝置真的安全嗎?)避免裝置被破解,導致資料被竊取等隱患問題。