滲透測試(滲透測試)由安全專業(yè)人員進(jìn)行的模擬網(wǎng)絡(luò)攻擊組成,以確定測試人員是否可以通過設(shè)備漏洞訪問目標(biāo)。回想一下“不安全世界中的邊緣安全”博客,聯(lián)網(wǎng)設(shè)備的網(wǎng)絡(luò)接口構(gòu)成了其攻擊面的很大一部分。邊緣設(shè)備網(wǎng)絡(luò)接口公開了許多網(wǎng)絡(luò)端口,這些端口向互聯(lián)網(wǎng)提供獨(dú)特的協(xié)議。這些端口中的每一個(gè)都是黑客的潛在入口點(diǎn)——例如,在端口 80 或 8080 上公開的 HTTP 協(xié)議。了解在給定端口上公開的協(xié)議(和版本)可為黑客提供大量信息。
滲透測試過程
作為對(duì)黑客事件的模擬,滲透測試遵循類似于準(zhǔn)黑客的過程。下面是一個(gè)嘗試滲透網(wǎng)絡(luò)系統(tǒng)的簡單過程。測試過程包括:
目標(biāo)選擇
漏洞檢測
利用匹配
利用嘗試
對(duì)于目標(biāo)選擇,這只是被測試的授權(quán)設(shè)備。然后,漏洞檢測器(例如端口掃描器)會(huì)探測目標(biāo),以評(píng)估設(shè)備的入口點(diǎn)以及有關(guān)這些入口點(diǎn)的其他信息(協(xié)議、版本等)。接下來是識(shí)別這些入口點(diǎn)的潛在攻擊,最后一步是嘗試攻擊(圖 1)。此過程忽略了自定義漏洞利用開發(fā),這是一個(gè)相當(dāng)復(fù)雜的過程。
圖 1:滲透測試過程圖。(來源:作者)
端口掃描
要識(shí)別設(shè)備上的潛在漏洞,最簡單的方法之一是端口掃描器。端口掃描器是一種應(yīng)用程序,它掃描設(shè)備的開放端口,然后通過與這些端口關(guān)聯(lián)的端口號(hào),識(shí)別可訪問的網(wǎng)絡(luò)服務(wù)。因?yàn)槎丝谔?hào)可以表示 1 到 65535 范圍內(nèi)的數(shù)字,所以端口掃描可能是一個(gè)耗時(shí)的過程。
端口掃描以多種方式執(zhí)行,但在最簡單的情況下,端口掃描器會(huì)嘗試連接到設(shè)備上的端口。如果設(shè)備確認(rèn)連接請(qǐng)求(通常稱為 TCP 的三向握手),則端口打開。否則,端口將被關(guān)閉或阻塞。
滲透測試通常可以通過端口號(hào)來識(shí)別網(wǎng)絡(luò)服務(wù)。例如,如果端口掃描器在端口 80 或 8080 處發(fā)現(xiàn)一個(gè)開放端口,則 HTTP 協(xié)議可用。
設(shè)備和端口掃描器之間交換的底層數(shù)據(jù)包的詳細(xì)信息也提供了豐富的信息。測試人員可以使用有關(guān)特定設(shè)備如何配置協(xié)議參數(shù)的信息,在稱為設(shè)備指紋識(shí)別的過程中識(shí)別操作系統(tǒng) (OS) 或協(xié)議棧。
圖 2提供了網(wǎng)絡(luò)映射器 (NMAP) 端口掃描器實(shí)用程序的示例輸出。此特定請(qǐng)求使用隱蔽 SYN 數(shù)據(jù)包方法,并針對(duì)網(wǎng)絡(luò)設(shè)備 192.168.1.4 請(qǐng)求開放端口的服務(wù)信息。如輸出所示,NMAP 識(shí)別出大量打開的端口,甚至通過端口交換的信息識(shí)別設(shè)備。
圖 2:圖像顯示了本地打印機(jī)的示例端口掃描。(來源:作者)
NMAP 是網(wǎng)絡(luò)探索和發(fā)現(xiàn)的關(guān)鍵工具。了解網(wǎng)絡(luò)設(shè)備的攻擊面后,您就可以準(zhǔn)備測試設(shè)備上的潛在漏洞。
測試設(shè)備上的潛在漏洞
了解設(shè)備的網(wǎng)絡(luò)攻擊向量是否包括潛在的漏洞利用是滲透測試的下一階段。漏洞利用測試是一項(xiàng)復(fù)雜的工作,但 Metasploit 項(xiàng)目簡化了這個(gè)過程。
Metasploit 項(xiàng)目
Metasploit 是一個(gè)通過支持漏洞匹配、執(zhí)行和開發(fā)來創(chuàng)建滲透測試框架的項(xiàng)目。Metasploit 包括一個(gè)廣泛的漏洞利用數(shù)據(jù)庫(圖 3中顯示了一小部分) ,可以將其與被測網(wǎng)絡(luò)設(shè)備進(jìn)行匹配,然后調(diào)用。
圖3:Metasploit 控制臺(tái)的圖像和 XP 漏洞列表。(來源:作者)
Metasploit 包括 shellcode 漏洞,用于通過目標(biāo)上的有效負(fù)載執(zhí)行代碼來控制目標(biāo)設(shè)備。Metasploit 允許滲透測試人員根據(jù)設(shè)備的指紋識(shí)別和對(duì)其可用攻擊向量的了解,將漏洞利用與任何有效載荷混合使用。
Metasploit 框架是使用最廣泛的滲透測試框架,為發(fā)現(xiàn)、漏洞匹配、執(zhí)行以及漏洞開發(fā)提供了完整的環(huán)境。
卡利Linux
最后,還有一個(gè)專注于滲透測試的 Linux 發(fā)行版,由 Offensive Security Ltd. 開發(fā)。Kali Linux 源自 Debian Linux,可以安裝在資源相對(duì)受限的計(jì)算機(jī)上,也可以從 CD/DVD 或 USB 記憶棒啟動(dòng)。它預(yù)裝了 600 多種安全測試工具,包括 NMAP、Metasploit 框架、應(yīng)用程序安全掃描器、Wireshark(用于數(shù)據(jù)包分析)、用于無線 LAN 筆測試的軟件套件等等。Kali Linux 甚至可以在基于 ARM 的設(shè)備(例如Raspberry Pi2)和 Android PDA 設(shè)備(例如 Gemini PDA)上運(yùn)行。
保護(hù)您的設(shè)備
雖然安全性通常是設(shè)備設(shè)計(jì)中的事后考慮,但您可以采取一些基本措施來保護(hù)邊緣設(shè)備。從解決這些問題開始。
是否審查并最小化了設(shè)備的攻擊面?
是否所有開放的端口都是必須的,還是可以在開發(fā)完成后關(guān)閉?
如果您的設(shè)備上運(yùn)行的是 Linux,內(nèi)核和軟件包是否是最新的并且是否了解漏洞(例如通過漏洞利用數(shù)據(jù)庫公布)?
您的代碼是否經(jīng)過審查(手動(dòng)或通過源代碼分析工具)?
這些是開發(fā)人員可以為保護(hù)他們的設(shè)備而做的基本事情,但這一切都始于對(duì)攻擊面和滲透測試的理解。
結(jié)論
滲透測試的理念是在現(xiàn)場保護(hù)您的網(wǎng)絡(luò)設(shè)備;您首先需要進(jìn)攻性地考慮其安全性。滲透測試讓您扮演想要利用您的設(shè)備的人的角色,這樣當(dāng)您的設(shè)備發(fā)布時(shí),您可以確信您已經(jīng)涵蓋了操作系統(tǒng)或網(wǎng)絡(luò)堆棧的已知漏洞。
M. Tim Jones 是一位資深的嵌入式固件架構(gòu)師,擁有超過 30 年的架構(gòu)和開發(fā)經(jīng)驗(yàn)。Tim 是多本書籍和多篇文章的作者,涉及軟件和固件開發(fā)領(lǐng)域。他的工程背景從地球同步航天器的內(nèi)核開發(fā)到嵌入式系統(tǒng)架構(gòu)和協(xié)議開發(fā)。
審核編輯黃宇
-
測試
+關(guān)注
關(guān)注
8文章
5105瀏覽量
126341 -
模擬
+關(guān)注
關(guān)注
7文章
1420瀏覽量
83876 -
邊緣
+關(guān)注
關(guān)注
0文章
25瀏覽量
1999
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論