周耀鵬 王暉 陳嘉倫
摘要:本文設(shè)計了一種針對企業(yè)網(wǎng)絡(luò)空間安全需求的掃描平臺。首先介紹了常見的網(wǎng)絡(luò)系統(tǒng)安全問題,然后介紹了系統(tǒng)的主要功能,通過7x24小時主動掃描實時分析資產(chǎn)信息,查看端口開放情況、banner等,使得企業(yè)網(wǎng)管安全人員能夠通過平臺快速了解安全情況。實現(xiàn)通過網(wǎng)絡(luò)掃描的方式來提高對計算機系統(tǒng)的安全防護,是一款適用于局域網(wǎng)的漏洞快速應(yīng)急、漏洞攔截,SQL注入漏洞掃描,同時對搜索結(jié)果進(jìn)行快速漏洞檢測并輸出信息報表。平臺主體分為端口掃描、SQL注入漏洞掃描、漏洞攔截三部分,端口掃描器采用Python語言開發(fā)。最后通過SQLMAP介紹和相關(guān)借口列表展示了部分核心代碼,并給出了系統(tǒng)成效與后續(xù)完善方向。
關(guān)鍵詞:網(wǎng)絡(luò)安全;漏洞掃描;SQL注入測試;SQLMAP
中圖分類號: TP311 ? ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)31-0059-03
Abstract:This paper has designed a scanning platform that addresses the security needs of corporate cyberspace. First introduced the common network system security issues, then introduced the main functions of the system, through 7x24 hours active scanning real-time analysis of asset information, view port opening, banner, etc., so that enterprise network security personnel can quickly understand the security situation through the platform. It realizes the security protection of the computer system through network scanning. It is a rapid emergency response, vulnerability interception, and SQL injection vulnerability scanning for local area network. It also performs rapid vulnerability detection on the search results and outputs information reports. The main body of the platform is divided into three parts: port scanning, SQL injection vulnerability scanning, and vulnerability interception. The port scanner is developed in Python. Finally, part of the core code was displayed through the introduction of SQLMAP and the list of related excuses, and the system effectiveness and subsequent improvement directions were given.
Key words: Network security;Vulnerability scanning; SQL injection testing; SQLMAP
在信息化時代計算機網(wǎng)絡(luò)已全面深層融入社會生活的方方面面,網(wǎng)絡(luò)安全威脅滲透至各個層面,人們對網(wǎng)絡(luò)安全的重視程度也在不斷提高,然而市面上針對企業(yè)內(nèi)部掃描平臺少之又少。[6]
1常見網(wǎng)絡(luò)系統(tǒng)安全問題
我們根據(jù)日志分析對每次黑客攻擊事件進(jìn)行追溯后,往往發(fā)現(xiàn)基本是系統(tǒng)、Web、弱口令、配置這四個方面中的其中一個出現(xiàn)的安全問題導(dǎo)致黑客可輕松入侵。原因大致如下:
1)操作系統(tǒng)的版本落后、沒及時更新系統(tǒng)補丁,導(dǎo)致安全問題暴露;
2)Web 問題因使用公有代碼,代碼編寫不合規(guī)導(dǎo)致的安全問題;
3)系統(tǒng)配置不遵循流程規(guī)范導(dǎo)致嚴(yán)重泄露了各類隱私數(shù)據(jù)。
1.1 系統(tǒng)漏洞
系統(tǒng)漏洞問題導(dǎo)致的安全問題有兩種起因:第一種屬于未知的,被黑客最新發(fā)現(xiàn)的安全漏洞。第二種屬于安全漏洞已經(jīng)被軟件廠商進(jìn)行公布并進(jìn)行了修復(fù),但漏洞一直存在,并被黑客發(fā)現(xiàn)后利用后,竊取重要數(shù)據(jù)并發(fā)生安全事件。
1.2 Web 漏洞
Web 漏洞的范圍比較廣,主要涉及代碼、中間件軟件、數(shù)據(jù)庫等軟件搭建的網(wǎng)站環(huán)境。代碼問題主要涉及公有代碼和代碼編寫不規(guī)范。中間軟件主要是 Apache、Tomcat這類軟件。數(shù)據(jù)庫的問題主要是黑客使用 SQL 語句讓數(shù)據(jù)庫報錯,從而發(fā)現(xiàn)安全漏洞。
1.3 弱口令
原因在于幾乎所有設(shè)備在出廠時,往往默認(rèn)密碼都十分簡單或是賬戶和密碼相同。簡單的密碼使得黑客破解的時間縮短,破解簡單。
2系統(tǒng)原理及特點
鑒于上述網(wǎng)絡(luò)安全問題,我們設(shè)想可設(shè)計實現(xiàn)一種網(wǎng)絡(luò)安全掃描系統(tǒng)。從設(shè)計原理來講系統(tǒng)可劃分為漏洞掃描器和端口掃描器。掃描后實施攔截,端口與進(jìn)程一一對應(yīng),通過端口掃描器同時監(jiān)聽等待連接的進(jìn)程,由此可以判斷目標(biāo)服務(wù)器有哪些通行進(jìn)程正在等待連接。系統(tǒng)實現(xiàn)特點如下:
1)用戶可基于云端,實時查看網(wǎng)絡(luò)空間信息,并可以生成可視化圖表;
核心交互函數(shù)
@get("/option/
@post("/option/
@post("/option/
@post("/scan/
@get("/scan/
@get("/scan/
@get("/scan/
@get("/scan/
@get("/scan/
@get("/download/
sqlmapapi具體的接口用法從源碼中的注釋中摘錄了出來,這些接口方法都在sqlmap/lib/utils/api.py文件中可以查閱,如有興趣可詳細(xì)翻閱。
開啟 sqlmapapi,我們使用-s(server)參數(shù)讓sqlmapapi以服務(wù)端模式運行。這里我們只使用-s參數(shù),可以發(fā)現(xiàn)sqlmapapi默認(rèn)運行在8775端口,后端使用的bottle框架,bottle是一個python web快速開發(fā)框架。Admin ID是用來管理task所用的token值,每次重啟sqlmapapi應(yīng)用都會改變,也可以通過修改其源碼的方式將其唯一,或是寫入本地文件供第三方程序讀取。
4.3 基本用法
這些api的使用方法相對比較簡單,注意其中有幾個api是post的方法。調(diào)用過程大致如下:
1)創(chuàng)建新任務(wù)
使用@get("/task/news")接口方法創(chuàng)建一個新的漏掃任務(wù)。返回信息中的taskid就是之前創(chuàng)建的漏掃任務(wù)的id,是我們后面需要用的id。
2)指定參數(shù)
使用@post("/options/
3)開始掃描
使用@post("/scan/
4)輪詢掃描是否結(jié)束
使用@get("/scan/
5)如果結(jié)束則獲取結(jié)果
使用@get("/scan/
{u'data': [], u'success': True, u'error': []}
5系統(tǒng)成效與后續(xù)完善
系統(tǒng)實現(xiàn)了漏洞發(fā)現(xiàn)、端口掃描、web安全、SQL注入等實驗。實現(xiàn)了nginx負(fù)載均衡、多線程并發(fā)。針對測試數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)分析,實現(xiàn)后端代碼,并測試平臺穩(wěn)定性、安全性。可運用到實際環(huán)境中,編寫相關(guān)使用說明書等,已達(dá)到預(yù)期效果。
在這次系統(tǒng)設(shè)計實現(xiàn)過程后,針對掃描規(guī)則將完善常規(guī)漏洞檢測規(guī)則與業(yè)務(wù)邏輯漏洞模式;針對掃描誤報率將發(fā)現(xiàn)漏洞進(jìn)行二次驗證,如:awvs+sqlmap驗證SQL注入漏洞;針對造成臟數(shù)據(jù)將使用掃描器時過濾POST提交參數(shù)請求;針對造成服務(wù)不可用將合理選擇掃描策略,避開業(yè)務(wù)高峰期掃描。
參考文獻(xiàn):
[1] 邢立國,劉玉坤.網(wǎng)絡(luò)安全機制研究與Python實現(xiàn)[J].科學(xué)與信息化,2018(27):57-58.
[2] 張鑫,張婷,段新東,林玉香.Web應(yīng)用SQL注入漏洞檢測工具的設(shè)計與實現(xiàn)[J].信息安全與技術(shù),2014,5(8):45-47,57.
[3] 易永紅.計算機網(wǎng)絡(luò)安全中的漏洞掃描技術(shù)運用[J].電子技術(shù)與軟件工程,2017(7):217.
[4] 葉磊,文濤,劉立亮,等.基于python的網(wǎng)絡(luò)及信息系統(tǒng)安全過程管理工具[J].數(shù)字技術(shù)與應(yīng)用,2017(10):187-188.
[5] 劉健,曹耀欽.網(wǎng)絡(luò)隱蔽掃描技術(shù)研究[J].計算機工程與設(shè)計,2004,25(2):239-242,270.
[6] 徐貴江,黃媛媛,陳子豪,等.基于Python的Web漏洞掃描器[J].軟件工程,2020,23(4):19-21,11.
【通聯(lián)編輯:唐一東】