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