摘 ?要
隨著互聯(lián)網(wǎng)不斷發(fā)展、貼近生活,電子化的生活安全依賴著網(wǎng)絡(luò)安全。在漏洞泛濫的今天,網(wǎng)絡(luò)安全狀態(tài)不容樂觀,許多機構(gòu)都因沒有及時處理漏洞導致被惡意入侵,若網(wǎng)絡(luò)安全保護不當,將會影響現(xiàn)實安全。中小型網(wǎng)絡(luò)運維人員常因為外部因素影響難以開展網(wǎng)絡(luò)安全行動。為了應(yīng)對這一問題,本文研究嘗試用Python語言嘗試做一個集成漏洞掃描系統(tǒng)的設(shè)計與實現(xiàn)。運用以Python為基礎(chǔ)的Django Web框架實現(xiàn)快速的業(yè)務(wù)開發(fā),運用Docker的輕量級虛擬化集成Nmap安全工具為方案驗證手段,構(gòu)建一個B/S架構(gòu)模式,面向初級運維人員、初級網(wǎng)絡(luò)安全研究者的低學習成本漏洞掃描系統(tǒng)平臺,方便他們的工作需要。
關(guān)鍵詞:Python;Django;Docker;漏洞掃描;系統(tǒng)集成;網(wǎng)絡(luò)安全;輕量級
Abstract?
With the continuous development of the Internet and its closeness to life, the safety of electronic life depends on network security. In today's flood of vulnerabilities, the state of network security is not optimistic. Many organizations have been maliciously invaded due to failure to deal with vulnerabilities in time. If the network security is not properly protected, it will affect actual security. middle and small network operators often find it difficult to carry out cybersecurity operations due to external factors. In order to deal with this problem, this paper attempts to use Python programming ?language to try to design and implement an integrated vulnerability scanning system. Django is a high-level Python Web framework to rapid development, and use Docker's lightweight virtualization integration Nmap security tool as a means of program verification to build a B / S architecture model for junior operations and maintenance personnel, junior network security research The low learning cost vulnerability scanning system platform of the authors is convenient for their work needs.
Key words: Python;Django;Docker;Vulnerability Scanning;System Integration;Cybersecurity;Lightweight?
目 ?錄
第一章 緒論
1.1 研究背景及意義
1.1.1研究背景
1.1.2研究意義
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 國外現(xiàn)狀
1.2.2 國內(nèi)現(xiàn)狀
1.3 研究目的
1.4 研究內(nèi)容
1.5 章節(jié)安排
第二章 系統(tǒng)實現(xiàn)使用的技術(shù)簡介
2.1 Python
2.2 Django
2.3 Docker
2.4 Nmap
2.5 本章小結(jié)
第三章 系統(tǒng)的分析與設(shè)計
3.1 需求分析
3.2 系統(tǒng)設(shè)計
3.2.1 系統(tǒng)總體概述
3.3.2 系統(tǒng)邏輯架構(gòu)
3.3 系統(tǒng)功能模塊設(shè)計
3.3.1 用戶認證模塊
3.3.2 用戶信息管理模塊
3.3.3 漏洞掃描模塊
3.3.4 日志文章模塊
3.3.5 權(quán)限管理模塊
3.4 數(shù)據(jù)庫設(shè)計
3.4.1 數(shù)據(jù)表字段
3.4.2 數(shù)據(jù)表與系統(tǒng)的關(guān)系
3.5 版本使用
3.6 本章小結(jié)
第四章 系統(tǒng)的具體實現(xiàn)
4.1系統(tǒng)開發(fā)環(huán)境
4.2 Django框架初始配置
4.3 通用視圖
4.4 用戶認證模塊
4.5 用戶信息管理模塊
4.6 漏洞掃描模塊
4.7 日志文章模塊
4.8 權(quán)限管理模塊
4.9 本章小結(jié)
第五章 系統(tǒng)測試
5.1 測試環(huán)境
5.2 測試環(huán)境搭建
5.3 測試內(nèi)容和結(jié)果
5.3.1 用戶認證模塊測試
5.3.2 用戶信息管理模塊測試
5.3.3 漏洞掃描模塊測試
5.3.4 日志文章模塊測試
5.3.5 權(quán)限管理模塊測試
5.4 本章小結(jié)
第六章 總結(jié)與展望
6.1 工作總結(jié)
6.2 展望
參 考 文 獻
致 謝
?
第一章 緒論
1.1 研究背景及意義
隨著互聯(lián)網(wǎng)高速發(fā)展,國內(nèi)涌現(xiàn)許多互聯(lián)網(wǎng)企業(yè),這些互聯(lián)網(wǎng)企業(yè)用互聯(lián)網(wǎng)的相關(guān)技術(shù)顛覆了許多傳統(tǒng)行業(yè),在創(chuàng)造了商業(yè)奇跡的同時也改變著人們傳統(tǒng)的生活方式,最終我們步入了“互聯(lián)網(wǎng)時代”。但是在步入“互聯(lián)網(wǎng)時代”的同時,我們?nèi)粘I钆c互聯(lián)網(wǎng)的關(guān)系就變得更加復雜,耦合程度更加高,因為網(wǎng)絡(luò)安全可以影響到現(xiàn)實生活的生命安全、主權(quán)安全、國家安全,因此國家出臺了《中華人民共和國網(wǎng)絡(luò)安全法》,和配套相關(guān)國家標準,目前最新的標準版本是《信息安全技術(shù)網(wǎng)絡(luò)安全等級保護基本要求》(GB/T 22239-2019),俗稱“等保2.0” [1]。為了符合相關(guān)法律法規(guī)的要求和保護網(wǎng)絡(luò)設(shè)施不受木馬病毒的非法入侵,催生了許多檢測系統(tǒng)漏洞、弱點的業(yè)務(wù)需求。輕量級、簡單、易上手、擴展性強的漏洞掃描系統(tǒng)能大大提高運維人員和相關(guān)行業(yè)工作者自測或者服務(wù)的工作效率[2]。
1.1.1 研究背景
隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)已經(jīng)成為人們生活和工作中不可或缺的一部分。然而,隨著網(wǎng)絡(luò)應(yīng)用的普及,網(wǎng)絡(luò)安全問題也日益突出。網(wǎng)絡(luò)漏洞掃描作為網(wǎng)絡(luò)安全防御的重要手段之一,越來越受到人們的關(guān)注。
在過去的幾年中,許多組織和企業(yè)都面臨著網(wǎng)絡(luò)攻擊和數(shù)據(jù)泄露的問題。這些攻擊通常是由于網(wǎng)絡(luò)漏洞導致的,而解決這些漏洞的關(guān)鍵在于及時發(fā)現(xiàn)和修復它們。因此,網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計和實現(xiàn)變得尤為重要。
Python作為一種高級編程語言,具有易學易用、跨平臺性、豐富的第三方庫等優(yōu)點,因此在網(wǎng)絡(luò)安全領(lǐng)域中得到了廣泛應(yīng)用。許多網(wǎng)絡(luò)漏洞掃描工具都是使用Python開發(fā)的,如Nmap、Scapy等。
1.1.2 研究意義
網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計與實現(xiàn)對網(wǎng)絡(luò)安全具有重要意義。首先,它可以提高網(wǎng)絡(luò)安全性,通過發(fā)現(xiàn)和修復漏洞,減少網(wǎng)絡(luò)攻擊的風險。其次,它可以提高組織或企業(yè)的數(shù)據(jù)安全性,防止數(shù)據(jù)泄露和損失。此外,網(wǎng)絡(luò)漏洞掃描系統(tǒng)還可以提高組織或企業(yè)的聲譽和信譽,證明其網(wǎng)絡(luò)安全管理和防御能力。
具體來說,網(wǎng)絡(luò)漏洞掃描系統(tǒng)可以完成以下任務(wù):
(1)發(fā)現(xiàn)網(wǎng)絡(luò)中的潛在漏洞,包括系統(tǒng)漏洞、應(yīng)用程序漏洞等。
(2)對漏洞進行分類和評估,確定漏洞的嚴重程度和影響范圍。
(3)提供修復建議和解決方案,幫助組織或企業(yè)及時修復漏洞。
(4)生成報告和分析數(shù)據(jù),為組織或企業(yè)的網(wǎng)絡(luò)安全決策提供依據(jù)。
總之,基于Python的網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計與實現(xiàn)具有重要的研究意義和應(yīng)用價值。它可以提高組織或企業(yè)的網(wǎng)絡(luò)安全防御能力,保護數(shù)據(jù)安全和隱私,為信息社會的安全和發(fā)展做出貢獻。
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 國外現(xiàn)狀
國外著名半導體CPU制造商英特爾(Intel)旗下的產(chǎn)品在2018年被Google Project Zero團隊挖掘出熔斷(meltdown)漏洞、幽靈(spectre)漏洞,英特爾自己的研究團隊也公布了一個基于推測執(zhí)行側(cè)信道攻擊的變種漏洞,并命名為預兆(LITE,L1 terminal fault),又稱 foreshadow,其中熔斷漏洞幾乎涉及了自1995年以來采用該相關(guān)技術(shù)的英特爾處理器,之后的幽靈漏洞的影響范圍甚至是所有現(xiàn)代CPU,包括英特爾、AMD、ARM[5]。其中部分漏洞更是無法得到完美修復,打上漏洞補丁后會使得CPU計算性能下降。
美國國家安全局(NSA)的黑客武器庫被某個黑客集團公布到網(wǎng)上,其中殺傷力巨大的“永恒之藍(EternalBlue)”漏洞被不法分子利用,制作成了一款名為“Wannacry”的比特幣勒索病毒,通過互聯(lián)網(wǎng)和局域網(wǎng)雙重途徑極速傳播,瞬間該病毒席卷全球,上到各大政府部門機構(gòu),下到校園網(wǎng)內(nèi)的個人電腦,世界各個角落只要有安裝了Windows 7及以下的操作系統(tǒng)的電腦都有機會被感染。許多機構(gòu)不得不支付巨額的贖金解鎖文件,直到某位安全研究人員溯源到了病毒服務(wù)器的“自爆開關(guān)”,最終事件才告一段落。
在國外,基于Python的網(wǎng)絡(luò)漏洞掃描系統(tǒng)的研究已經(jīng)得到了廣泛的關(guān)注和應(yīng)用。許多知名的網(wǎng)絡(luò)安全公司和組織都投入了大量的人力和物力進行相關(guān)研究。
目前,國外的研究主要集中在以下幾個方面:
(1)智能化漏洞掃描:利用人工智能和機器學習等技術(shù),實現(xiàn)自動化和智能化的漏洞掃描,提高掃描的準確性和效率。
(2)云端漏洞掃描:將漏洞掃描系統(tǒng)部署在云端,實現(xiàn)大規(guī)模網(wǎng)絡(luò)的快速掃描和實時監(jiān)控。
(3)漏洞共享平臺:建立漏洞共享平臺,鼓勵企業(yè)和個人提交漏洞,提高網(wǎng)絡(luò)安全整體水平。
1.2.2 國內(nèi)現(xiàn)狀
根據(jù)國家互聯(lián)網(wǎng)應(yīng)急中心的2019年上半年的網(wǎng)絡(luò)安全態(tài)勢報告顯示:就涉及民生重要基礎(chǔ)設(shè)施的方面而言,水電行業(yè)中暴露的139個監(jiān)控管理系統(tǒng),醫(yī)療健康709個數(shù)據(jù)管理系統(tǒng),存在高危漏洞隱患的占比是25%和75%,互聯(lián)網(wǎng)金融網(wǎng)站存在的高危漏洞僅上半年就有92個 [6]。我國互聯(lián)網(wǎng)行業(yè)十分發(fā)達,在“人人上云”的時代,一般企業(yè)服務(wù)提供商架設(shè)網(wǎng)站的漏洞隱患更是巨大,“上云時代”的數(shù)據(jù)安全面臨的挑戰(zhàn)依然嚴峻。
同時國內(nèi)基于Python的網(wǎng)絡(luò)漏洞掃描系統(tǒng)的研究主要集中在高校、科研機構(gòu)和一些網(wǎng)絡(luò)安全公司。近年來,隨著網(wǎng)絡(luò)安全問題的日益突出,越來越多的研究人員開始關(guān)注網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計和實現(xiàn)。
目前,國內(nèi)的研究主要集中在以下幾個方面:
(1)漏洞掃描算法的研究:研究人員針對不同類型的漏洞,設(shè)計相應(yīng)的掃描算法,以提高掃描的準確性和效率。
(2)掃描模塊的設(shè)計與實現(xiàn):研究人員根據(jù)不同的需求,設(shè)計并實現(xiàn)了一系列掃描模塊,如端口掃描模塊、服務(wù)識別模塊、漏洞檢測模塊等。
(3)掃描結(jié)果的分析與可視化:研究人員利用數(shù)據(jù)挖掘、機器學習等技術(shù),對掃描結(jié)果進行分析和可視化,以提供更直觀的漏洞展示和報告。
1.3 研究目的
基于Python的網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計與實現(xiàn)的研究目的主要包括以下幾點:
(1)提高掃描的準確性和效率:通過研究和改進掃描算法,提高系統(tǒng)對漏洞的識別準確率和掃描速度。
(2)滿足不同需求的應(yīng)用場景:根據(jù)實際應(yīng)用場景的不同需求,設(shè)計和實現(xiàn)相應(yīng)的掃描模塊,以滿足不同場景下的漏洞掃描需求。
(3)提供直觀的漏洞展示和報告:通過對掃描結(jié)果進行分析和可視化,為用戶提供更直觀的漏洞展示和報告,以便更好地理解和處理漏洞信息。
1.4 研究內(nèi)容
在漏洞泛濫的今天,互聯(lián)網(wǎng)安全倍受挑戰(zhàn)。只有合理配置設(shè)備,關(guān)掉不必要的端口和服務(wù),及時了解最新安全動態(tài),打好漏洞補丁加固系統(tǒng),才能最大限度的減少因漏洞隱患而造成被黑客非法入侵而造成的不必要損失。本人在論文中主要的研究工作:
(1)收集最近幾年的國內(nèi)外因漏洞引起的重大安全事件,分析漏洞對系統(tǒng)乃至現(xiàn)實生活的危害,對項目的側(cè)重方向做出一個初步方向指定。
(2)以中小型網(wǎng)絡(luò)運維人員和網(wǎng)絡(luò)安全研究愛好者為主,結(jié)合國內(nèi)該行業(yè)的變化特點,以“易部署、輕量化、低學習成本、可擴展”為特點嘗試設(shè)計與開發(fā)工作。設(shè)計包含基礎(chǔ)的用戶模塊、日志問題模塊和掃描模塊。
(3)采用B/S架構(gòu),選用Django作為Web框架載體,實現(xiàn)了快捷開發(fā)、數(shù)據(jù)庫持久化處理。
(4)結(jié)合網(wǎng)絡(luò)上一些優(yōu)秀的開源插件,增強項目的功能便利強度和觀感。
(5)對項目進行功能測試,確保實現(xiàn)的功能可實行,項目達到預期效果。
1.5 章節(jié)安排
本文圍繞漏洞的危害,說明及時檢測并修復的重要性,因而設(shè)計與實現(xiàn)出一種基于python的漏洞掃描系統(tǒng)。文章一共分為五個章節(jié),每個章節(jié)的主要內(nèi)容如下:
第一章首先介紹了漏洞檢測的研究背景和意義,程序漏洞的基本概念、程序漏洞的特點和分類,并分析了國內(nèi)外漏洞危害的情況,最后給出了文章的章節(jié)安排。
第二章介紹了實現(xiàn)中使用的一些關(guān)鍵技術(shù),包括Python語言、Django Web框架、Docker技術(shù)、Nmap網(wǎng)絡(luò)掃描器。
第三章介紹了系統(tǒng)的需求分析與設(shè)計,包括各個模塊的功能、業(yè)務(wù)流程的設(shè)計、關(guān)鍵數(shù)據(jù)庫的設(shè)計。
第四章介紹了系統(tǒng)的實現(xiàn)重點細節(jié),包括各個模塊(app)功能的具體實現(xiàn)、使用Docker集成Nmap的方法、Docker容器與前臺的通信等;
第五章對實現(xiàn)的系統(tǒng)進行測試與驗證。簡單介紹了測試環(huán)境的要求,包括靶機的搭建和配置,以及執(zhí)行相關(guān)模塊的功能驗證實現(xiàn)功能的程度。
第六章對本文的研究內(nèi)容進行總結(jié),在不足的地方嘗試提出一些優(yōu)化方案對今后的研究工作與方向進行了展望。
第二章 系統(tǒng)實現(xiàn)使用的技術(shù)簡介
2.1 Python
Python是現(xiàn)在十分流行的解釋型腳本語言之一。其實Python已經(jīng)在很早就創(chuàng)立了,但是隨著近年機器學習、人工智能等技術(shù)的創(chuàng)新突破和飛速發(fā)展,還有電子化辦公的普及,越來越多人使用Python進行編程作業(yè),Python甚至進入了中小學課堂。所以現(xiàn)在的Python生態(tài)異常豐富,加上Python有一個龐大開源庫,其中的Hack庫更是集合了許多網(wǎng)絡(luò)安全方面高頻率使用、性能優(yōu)異的代碼片段,開發(fā)者只需導入即可快速使用,不用重復編寫,大大的增加了開發(fā)效率,Python底層使用C語言編寫,在運行效率和可移植性也有良好保證[7]。
2.2 Django
Django是一款優(yōu)秀的Python Web框架。他采用標準的模型-視圖-控制器(MVC)設(shè)計模式,內(nèi)部集成了大量Web開發(fā)人員在開發(fā)Web系統(tǒng)時高頻次使用的功能模塊和對象關(guān)系映射(ORM),目標是讓使用Django的開發(fā)人員能用最少時間做出最好的系統(tǒng)。
2.3 Docker
Docker是一種較新型的輕量化虛擬引擎,它基于Linux的內(nèi)核虛擬化技術(shù)(LXC),Docker的運行原理可以簡單總結(jié)為“把應(yīng)用承載在容器上運行”。開發(fā)人員只需把應(yīng)用和依賴包一起打包成鏡像,之后可以分發(fā)到遠程倉庫上,其他安裝了Docker服務(wù)的機器很容易就能拉取下來并部署使用。這種虛擬化是一種輕量級的虛擬化技術(shù),用作隔離進程和資源。得益于LXC,它相比于常見的基于VMware、Xen、KVM的虛擬化能節(jié)省很多硬件資源。 ??
2.4 Nmap
Nmap是一款強大的開源計算機網(wǎng)絡(luò)安全掃描器。它的功能包括主機探測、端口掃描、服務(wù)版本、操作系統(tǒng)版本掃描,能通過構(gòu)造特定的探針和數(shù)據(jù)庫結(jié)合,快速的進行掃描識別,列舉指定網(wǎng)絡(luò)主機存活情況,檢測其中運行的服務(wù)端口,甚至擁有一定隱蔽特性來嘗試躲避防火墻的審計,借此還能用于檢測防火墻規(guī)則配置的有效性[8]。
2.5 本章小結(jié)
本章對系統(tǒng)中所涉及的幾項重要技術(shù)進行了簡要概述,包括Python、Django、Docker、Nmap,進而為下文的基于Python的漏洞掃描系統(tǒng)的設(shè)計與實現(xiàn)研究做了鋪墊。
第三章 系統(tǒng)的分析與設(shè)計
3.1 需求分析
本系統(tǒng)的目標用戶是初級運維人員以及網(wǎng)絡(luò)安全入門研究者。作為一個中小型網(wǎng)絡(luò)運維人員的工作環(huán)境,網(wǎng)絡(luò)規(guī)模較小,維護經(jīng)費主要花費在硬件的購置、易耗件的補充上,加上國內(nèi)網(wǎng)絡(luò)安全觀念的缺失,領(lǐng)導給他們配發(fā)的首要任務(wù)是保證網(wǎng)絡(luò)能正常訪問,網(wǎng)絡(luò)安全并不在首位。所以并沒有太多的經(jīng)費花費在購置新型安全防護的硬件設(shè)備、大型知名安全公司的網(wǎng)絡(luò)審查平臺,但是在利用漏洞弱點進行網(wǎng)絡(luò)攻擊門檻甚低的今天,完全忽略安全問題并不現(xiàn)實,現(xiàn)實強迫運維人員只能手動或者半自動地使用一些網(wǎng)絡(luò)上流行的、免費的、開源的安全檢測軟件。而這些軟件基本都依賴一定的環(huán)境(如Python2.7、某個Linux發(fā)行版)和一定的安全知識基礎(chǔ)。即他們需要一款集合一下特點的漏洞掃描系統(tǒng):
(1)學習成本低:不需要填入太多的復雜參數(shù)指令,簡單幾個參數(shù)即可運行;
(2)界面友好:支持圖形界面,簡單交互即可執(zhí)行;
(3)輕量級:系統(tǒng)占用資源少,沒有太多需要掌握高級開發(fā)、安全技術(shù)才能開發(fā)、使用的特性;
(4)易部署:不需要手動編譯、安裝,最好能一個批處理或者一個命令行指令,即可部署;
(5)可擴展:能跟著運維人員技術(shù)的提高,能逐步加入適應(yīng)個體網(wǎng)絡(luò)需求的功能。
3.2 系統(tǒng)設(shè)計
3.2.1 系統(tǒng)總體概述
系統(tǒng)總體設(shè)計按照軟件工程的典范設(shè)計——MVC模式。這樣的很大程度降低系統(tǒng)整體的耦合程度。把前后端進行分離開發(fā),后端采用了Django輕量級的Web框架,它完全遵從MVC設(shè)計模式(在Django中進行了優(yōu)化并命名為“MTV”)[9],集成了對象關(guān)系映射,把業(yè)務(wù)邏輯層中有關(guān)數(shù)據(jù)代碼解離出來,成為一個獨立的持久化層,實現(xiàn)了對象模型和關(guān)系數(shù)據(jù)模型之間的映射關(guān)系,開發(fā)人員在編碼過程可以直接進行面向?qū)ο缶幊?,而不需要嵌套SQL語句在代碼中[10]。在數(shù)據(jù)庫方面,本文選用了國內(nèi)環(huán)境比較流行的MySQL進行存儲。得益于Django框架的靈活便利,即便因為其他原因不能使用MySQL進行部署,需要更換為PostgreSQL等其他數(shù)據(jù)庫,只需要在Django相關(guān)配置下更改數(shù)據(jù)庫連接配置,并用自帶的數(shù)據(jù)模型控制語句,即可簡單變化,使本系統(tǒng)與數(shù)據(jù)庫類型的耦合程度很好的降低。
本系統(tǒng)的整體功能結(jié)構(gòu)如圖3-1所示,分為了五大模塊:用戶認證模塊、用戶信息管理模塊、漏洞掃描模塊、日志文章模塊、權(quán)限管理模塊。
文章來源:http://www.zghlxwxcb.cn/news/detail-770380.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-770380.html
到了這里,關(guān)于基于Python的網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計與實現(xiàn)(論文+源碼)_kaic的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!