網路漏洞掃瞄器的設計與實現

2021-06-05 10:15:55 字數 3699 閱讀 8023

李志強 (

[email protected])

xml error: please enter a value for the author element's jobtitle attribute, or the company-name element, or both.

簡介:漏洞掃瞄器是一種自動檢測遠端或本地主機安全性弱點的程式。通過使用漏洞掃瞄器,系統管理員能夠發現所維護的web伺服器的各種tcp埠的分配、提供的服務、web服務軟體版本和這些服務及軟體呈現在internet上的安全漏洞。從而在計算機網路系統安全保衛戰中做到「有的放矢」,及時修補漏洞,構築堅固的安全長城。

標記本文!

為本文評分

引言隨著科學技術的飛速發展,21世紀的地球人已經生活在資訊時代。20世紀人類兩大科學技術成果--計算機技術和網路技術,均已深入到人類社會的各個領域,internet把"地球村"的居民緊密聯絡在一起,"天涯若比鄰"已然成為現實。網際網路之所以能這樣迅速蔓延,被世人接受,是因為它具備特有的資訊資源。無論對商人、學者,還是對社會生活中的普通老百姓,只要你進入網路的世界,就能找到其隱藏的奧妙,就能得到你所需要的價值,而這其中種種的人類社會活動,它們的影響又是相互的。近年來internet的迅速發展,給人們的日常生活帶來了全新的感受,"網路生存"已經成為時尚,同時人類社會諸如政治、科研、經濟、軍事等各種活動對資訊網路的依賴程度已經越來越強,"網路經濟"時代已初露端倪。

然而,網路技術的發展在給我們帶來便利的同時也帶來了巨大的安全隱患,尤其是internet和intranet的飛速發展對網路安全提出了前所未有的挑戰。技術是一把雙刃劍,不法分子試圖不斷利用新的技術伺機攻入他人的網路系統,而肩負保護網路安全重任的系統管理員則要利用最新的網路技術來防範各種各樣的非法網路入侵行為。事實已經表明,隨著互連網的日趨普及,在互連網上的犯罪活動也越來越多,特別是internet大範圍的開放以及金融領域網路的接入,使得越來越多的系統遭到入侵攻擊的威脅。但是,不管入侵者是從外部還是從內部攻擊某一網路系統,攻擊機會都是通過挖掘作業系統和應用服務程式的弱點或者缺陷來實現的,2023年的"蠕蟲事件" 就是乙個很好的例項。目前,對付破壞系統企圖的理想方法是建立乙個完全安全的沒有漏洞的系統。但從實際上看,這根本是不可能的。美國wisconsin大學的miller給出乙份有關現今流行作業系統和應用程式的研究報告,指出軟體中不可能沒有漏洞和缺陷。因此,乙個實用的方法是,建立比較容易實現的安全系統,同時按照一定的安全策略建立相應的安全輔助系統,漏洞掃瞄器就是這樣一類系統。就目前系統的安全狀況而言,系統中存在著一定的漏洞,因此也就存在著潛在的安全威脅,但是,如果我們能夠根據具體的應用環境,盡可能地早地通過網路掃瞄來發現這些漏洞,並及時採取適當的處理措施進行修補,就可以有效地阻止入侵事件的發生。因此,網路掃瞄非常重要和必要。

回頁首

漏洞掃瞄器概述

漏洞掃瞄器是一種自動檢測遠端或本地主機安全性弱點的程式。通過使用漏洞掃瞄器,系統管理員能夠發現所維護的web伺服器的各種tcp埠的分配、提供的服務、web服務軟體版本和這些服務及軟體呈現在internet上的安全漏洞。從而在計算機網路系統安全保衛戰中做到"有的放矢",及時修補漏洞,構築堅固的安全長城。

按常規標準,可以將漏洞掃瞄器分為兩種型別:主機漏洞掃瞄器(host scanner)和網路漏洞掃瞄器(network scanner)。主機漏洞掃瞄器是指在系統本地執行檢測系統漏洞的程式,如著名的cops、tripewire、tiger等自由軟體。網路漏洞掃瞄器是指基於internet遠端檢測目標網路和主機系統漏洞的程式,如satan、iss internet scanner等。

本文針對目前tcp/ip網路和各種網路主機的安全現狀,設計並實現了乙個網路漏洞掃瞄器,在實際使用中取得了很好的效果。

回頁首

網路漏洞掃瞄器的設計

網路漏洞掃瞄器的總體結構

我們設計的漏洞掃瞄器基於瀏覽器/伺服器(b/s)結構,整個掃瞄器實現於乙個linux、unix和windows作業系統相混合的tcp/ip網路環境中,其總體結構如圖1所示,其中執行linux的工作站作為發起掃瞄的主機(稱為掃瞄主機),在其上執行掃瞄模組和控制平台,並建有漏洞庫。掃瞄模組直接從掃瞄主機上通過網路以其他機器為物件(稱為目標主機,其上執行的作業系統可以是unix、linux、windows 2000/nt等)進行掃瞄。而控制平台則提供乙個人機互動的介面。

網路漏洞掃瞄器的掃瞄原理和工作原理

網路漏洞掃瞄器通過遠端檢測目標主機tcp/ip不同埠的服務,記錄目標給予的回答。通過這種方法,可以蒐集到很多目標主機的各種資訊(例如:是否能用匿名登陸,是否有可寫的ftp目錄,是否能用telnet,httpd是否是用root在執行)。在獲得目標主機tcp/ip埠和其對應的網路訪問服務的相關資訊後,與網路漏洞掃瞄系統提供的漏洞庫進行匹配,如果滿足匹配條件,則視為漏洞存在。此外,通過模擬黑客的進攻手法,對目標主機系統進行攻擊性的安全漏洞掃瞄,如測試弱勢口令等,也是掃瞄模組的實現方法之一。如果模擬攻擊成功,則視為漏洞存在。

在匹配原理上,該網路漏洞掃瞄器採用的是基於規則的匹配技術,即根據安全專家對網路系統安全漏洞、黑客攻擊案例的分析和系統管理員關於網路系統安全配置的實際經驗,形成一套標準的系統漏洞庫,然後再在此基礎之上構成相應的匹配規則,由程式自動進行系統漏洞掃瞄的分析工作。

所謂基於規則是基於一套由專家經驗事先定義的規則的匹配系統。例如,在對tcp 80埠的掃瞄中,如果發現/cgi-bin/phf或/cgi-bin/count.cgi,根據專家經驗以及cgi程式的共享性和標準化,可以推知該www服務存在兩個cgi漏洞。同時應當說明的是,基於規則的匹配系統也有其侷限性,因為作為這類系統的基礎的推理規則一般都是根據已知的安全漏洞進行安排和策劃的,而對網路系統的很多危險的威脅是來自未知的安全漏洞,這一點和pc防毒很相似。

實現乙個基於規則的匹配系統本質上是乙個知識工程問題,而且其功能應當能夠隨著經驗的積累而利用,其自學習能力能夠進行規則的擴充和修正,即是系統漏洞庫的擴充和修正。當然這樣的能力目前還需要在專家的指導和參與下才能實現。但是,也應該看到,受漏洞庫覆蓋範圍的限制,部分系統漏洞也可能不會觸發任何乙個規則,從而不被檢測到。

整個網路掃瞄器的工作原理是:當使用者通過控制平台發出了掃瞄命令之後,控制平台即向掃瞄模組發出相應的掃瞄請求,掃瞄模組在接到請求之後立即啟動相應的子功能模組,對被掃瞄主機進行掃瞄。通過對從被掃瞄主機返回的資訊進行分析判斷,掃瞄模組將掃瞄結果返回給控制平台,再由控制平台最終呈現給使用者。

cgi的應用

整個漏洞掃瞄系統利用了瀏覽器/伺服器(b/s)架構,目的是為了消除由於作業系統平台的不同而給程式的執行帶來的差異,還為了能利用html提供的一系列功能,如超文字功能、靈活的版面編輯功能來構建乙個美觀靈活的人機介面。在該網路漏洞掃瞄器的實現中,我們通過cgi技術來連線前台的瀏覽器和後台的掃瞄程式。

cgi是通用閘道器介面,作為一種規範,它允許web伺服器執行其他程式並將它們的輸出以相應的方式儲存在發給瀏覽器的文字、圖形和音訊中。cgi程式能夠提供從簡單的表單處理到複雜的資料庫查詢等各種功能,這大大增強了web的動態處理能力和互動能力。伺服器和cgi程式相結合能夠擴充和自定義world wide web的能力。

cgi過程的主要步驟如下:

stdin和stdout是標準輸入和標準輸出的助記符。對web伺服器,stdout送至cgi程式的stdin,程式的stdout反饋回伺服器的stdin。在啟用具有post方法的cgi程式時,伺服器使用它的stdout;對於get方法,伺服器不使用stdout。兩種情況下,伺服器都要求cgi程式通過stdout返回資訊。在我們的程式中選擇了post方法。

關於作者

李志強,計算機應用碩士學位,目前主要從事網路安全技術(漏洞掃瞄技術和入侵檢測技術)的研究與開發工作,可以通過e_mail: [email protected]與他聯絡。

編寫漏洞掃瞄器

編寫漏洞掃瞄器 一 漏洞掃瞄器基本原理 編寫漏洞掃瞄器探查遠端伺服器上可能存在的具有安全隱患的檔案是否存在,它的socket建立過程和上面的埠掃瞄器是相同的,所不同的是漏洞掃瞄器通常使用80埠,然後對這個埠傳送乙個get檔案的請求,伺服器接收到請求會返回檔案內容,如果檔案不存在則返回乙個錯誤提示,通...

詞法掃瞄器設計

詞法掃瞄器設計 2007 10 24 21 22除錯通過 include iostream.h include stdlib.h include fstream.h include stdio.h include string.h the length of token if 9 define ma...

Python打造漏洞掃瞄器 10

這是掃瞄器的最後一章,主要說說掃瞄器的使用方式以及對未來的展望。這個掃瞄器是python 2.7寫的,開發在windows平台上,測試在linux上 實驗樓的實驗平台 經過測試,在這兩個系統上都能夠執行。另外,只需要python安裝兩個庫就可以。在pip上的安裝指令 pip install requ...