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