計算機網(wǎng)絡(luò)系統(tǒng)端口掃描及危險端口關(guān)閉方法研究
引言
隨著全球信息化步伐的加快,網(wǎng)絡(luò)規(guī)模的迅速擴張和計算機系統(tǒng)的日益復(fù)雜,新的系統(tǒng)漏洞層出不窮,網(wǎng)絡(luò)安全形勢日益嚴(yán)峻。目前對計算機網(wǎng)絡(luò)系統(tǒng)的入侵主要是通過病毒和木馬進行的,而病毒和木馬的傳播途徑需要通過特定端口,所以關(guān)閉信息設(shè)備的特定端口能夠有效減少病毒和木馬的傳播?,F(xiàn)代電網(wǎng)運行高度依賴信息系統(tǒng)和電力監(jiān)控系統(tǒng),做好電力系統(tǒng)網(wǎng)絡(luò)安全維護對于電網(wǎng)的安全穩(wěn)定運行和電力可靠供應(yīng)具有重大意義。根據(jù)南方電網(wǎng)公司《關(guān)于加強電力監(jiān)控系統(tǒng)網(wǎng)絡(luò)安全及病毒感染風(fēng)險防控工作要求》以及《關(guān)于CiscosmartInstall遠(yuǎn)程命令執(zhí)行漏洞的情況通報》,要求對電力系統(tǒng)PC平臺的445、135、137、138、139、3389和CIsCo路由器4786等端口服務(wù)進行關(guān)閉。但這些網(wǎng)絡(luò)端口關(guān)閉操作過程比較復(fù)雜,且維護人員多為非計算機專業(yè)人員,往往通過網(wǎng)絡(luò)查詢方式獲取關(guān)閉方法,操作容易出現(xiàn)關(guān)閉失敗或未完全關(guān)閉等問題。
本文針對計算機端口掃描技術(shù)的優(yōu)缺點,采用多線程技術(shù),結(jié)合TCP全連接掃描,實現(xiàn)了基于C語言編程的網(wǎng)絡(luò)端口掃描和關(guān)閉程序,將端口關(guān)閉工作簡單化、徹底化。
1端口掃描技術(shù)及多線程技術(shù)
1.1端口的概念
本文所提到的端口,是指網(wǎng)絡(luò)連接中使用的邏輯端口,按端口號分布可以分為知名端口、動態(tài)端口或私有端口,例如21端口分配給FTP服務(wù)、25端口分配給sMTP(簡單郵件傳輸協(xié)議)服務(wù)、80端口分配給HTTP服務(wù),這些眾所周知的端口即稱為"知名端口":動態(tài)端口未特定分配給某個服務(wù),只要運行的程序向系統(tǒng)提出訪問網(wǎng)絡(luò)的申請,那么系統(tǒng)就可以從動態(tài)端口范圍內(nèi)分配一個端口號供該程序使用。按協(xié)議類型可以劃分為TCP、UDP、IP和ICMP(Internet控制消息協(xié)議)等端口,常見的TCP端口如FTP服務(wù)的21端口、Telnet服務(wù)的23端口、sMTP服務(wù)的25端口以及HTTP服務(wù)的80端口等等,常見的UDP端口如常DNs服務(wù)的53端口、sNMP(簡單網(wǎng)絡(luò)管理協(xié)議)服務(wù)的161端口、oo使用的8000和4000端口等等。
1.2端口掃描技術(shù)簡介
所謂"端口掃描",即向目標(biāo)主機發(fā)送探測數(shù)據(jù)包,并通過探測數(shù)據(jù)包反饋回來的數(shù)據(jù)判斷其提供的計算機網(wǎng)絡(luò)服務(wù)類型(這些網(wǎng)絡(luò)服務(wù)均與端口號相關(guān))。通過端口掃描可以幫助發(fā)現(xiàn)目標(biāo)機的某些內(nèi)在的弱點,幫助查找目標(biāo)主機的漏洞。根據(jù)采用探測方法的不同,端口掃描技術(shù)分為開放掃描、半開放掃描、隱蔽掃描以及其他掃描等。
1.3多線程技術(shù)簡介
一個進程是應(yīng)用程序的一個執(zhí)行實例,是由私有的虛擬地址空間、代碼、數(shù)據(jù)和其他系統(tǒng)資源組成的。線程是比進程更小的單位,可以認(rèn)為進程是由一個或多個線程組成的。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務(wù)。多線程是多任務(wù)的一種特別的形式,但多線程使用了更小的資源開銷,多線程能滿足程序員編寫高效率的程序來達到充分利用CPU的目的。
2多線程TCP全連接掃描的實現(xiàn)
本文采用多線程TCP全連接掃描技術(shù)實現(xiàn)端口掃描,通過調(diào)用windowssocket提供的connect()函數(shù)與每一個目標(biāo)計算機端口進行連接,向目標(biāo)主機的TCP/IP服務(wù)端口發(fā)送數(shù)據(jù)包,并記錄目標(biāo)主機的響應(yīng)。通過分析響應(yīng)來判斷服務(wù)端口是打開還是關(guān)閉,從而得知端口提供的服務(wù)或信息。
利用此技術(shù)的有兩個優(yōu)點:(1)系統(tǒng)中的任何用戶均可調(diào)用此函數(shù):(2)響應(yīng)速度快。
本文采用多線程技術(shù)進行編程,可同時打開多個socket,加快掃描速度,縮短端口掃描時間。
3計算機網(wǎng)絡(luò)系統(tǒng)端口掃描及危險端口關(guān)閉軟件設(shè)計及應(yīng)用
本文利用TCP全連接掃描及多線程技術(shù)設(shè)計了一款具有網(wǎng)絡(luò)系統(tǒng)端口掃描及危險端口關(guān)閉功能的軟件系統(tǒng)。軟件主要實現(xiàn)以下功能:(1)能夠掃描和記錄本地及網(wǎng)絡(luò)設(shè)備終端上端口的開放和關(guān)閉情況:(2)對本地終端上掃描和記錄的端口可以實現(xiàn)選擇性關(guān)閉或開放:(3)軟件可安裝在不同的操作系統(tǒng)平臺上使用,且不影響其功能發(fā)揮:(4)對掃描出未關(guān)閉的危險端口,不得自行完成關(guān)閉,需要人工對所需關(guān)閉的端口進行決策性選擇:(5)除人工選擇端口封閉操作以外,其他操作盡量簡單,基本達到一鍵操作完成關(guān)閉工作的效果。工具各窗口界面采用按鈕、文本框等常見操作方法,可以達到良好的人機交互效果。
3.1端口掃描
首先自動檢索并顯示本機IP地址,在端口范圍欄輸入需要掃描端口號,端口號輸入方式可以以區(qū)間或者單個端口號的形式輸入,例如"0-100"表示輸入端口號為0~100之間所有端口號,若輸入"135,137,138"則表示輸入端口號為135、137、138,然后點擊"開始掃描"即可,如圖1所示。
3.2端口關(guān)閉
端口掃描后,可以查看全部端口狀態(tài),也可根據(jù)需要查看被禁用的端口或者開啟的端口,在進行端口關(guān)閉時,選中開啟的指定端口號,點擊"禁用"按鈕,即可實現(xiàn)端口一鍵關(guān)閉,如圖2所示。
3.3端口啟用
掃描出已禁用的端口號結(jié)果,選中指定要啟用的端口號,點擊"開啟"按鈕即可打開相應(yīng)端口,如圖3所示。
3.4輔助指令
在文本輸入框中,輸入想要查詢的正確指令,點擊"執(zhí)行"按鈕,將結(jié)果信息返回到輸出框中進行信息顯示,如圖4所示。
4結(jié)語
目前,在運行的電力監(jiān)控系統(tǒng)設(shè)備中,仍然存在較多高危端口開啟的情況。
在未來的電力網(wǎng)絡(luò)安全維護工作中,一定還會存在其他類型的木馬和病毒利用其他類型的端口侵入電力監(jiān)控網(wǎng)絡(luò)系統(tǒng)影響電力系統(tǒng)設(shè)備正常運行。通過使用本端口管理平臺軟件對高危端口進行管理,可以有效提高電力系統(tǒng)網(wǎng)絡(luò)安全維護人員工作效率和工作質(zhì)量,將各種端口關(guān)閉工作簡單化、徹底化,為電力系統(tǒng)安全運行提供有力保障。