目錄
前言
設(shè)計(jì)思路
一、課題背景與意義
二、算法理論原理
2.1 DAST 技術(shù)
2.2 邏輯漏洞
2.3 哈希算法
三、檢測(cè)的實(shí)現(xiàn)
最后
前言
? ? ? ???大四是整個(gè)大學(xué)期間最忙碌的時(shí)光,一邊要忙著備考或?qū)嵙?xí)為畢業(yè)后面臨的就業(yè)升學(xué)做準(zhǔn)備,一邊要為畢業(yè)設(shè)計(jì)耗費(fèi)大量精力。近幾年各個(gè)學(xué)校要求的畢設(shè)項(xiàng)目越來(lái)越難,有不少課題是研究生級(jí)別難度的,對(duì)本科同學(xué)來(lái)說(shuō)是充滿挑戰(zhàn)。為幫助大家順利通過(guò)和節(jié)省時(shí)間與精力投入到更重要的就業(yè)和考試中去,學(xué)長(zhǎng)分享優(yōu)質(zhì)的選題經(jīng)驗(yàn)和畢設(shè)項(xiàng)目與技術(shù)思路。
? ? ? ????對(duì)畢設(shè)有任何疑問(wèn)都可以問(wèn)學(xué)長(zhǎng)哦!
? ? ? ? ?選題指導(dǎo):
? ? ? ? 最新最全計(jì)算機(jī)專業(yè)畢設(shè)選題精選推薦匯總
? ? ? ??大家好,這里是海浪學(xué)長(zhǎng)畢設(shè)專題,本次分享的課題是
? ? ? ? ??基于python的漏洞掃描系統(tǒng)的實(shí)現(xiàn)
設(shè)計(jì)思路
一、課題背景與意義
? ? ? ? 隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)安全問(wèn)題日益突出,漏洞成為網(wǎng)絡(luò)攻擊的主要入口之一。為了保護(hù)網(wǎng)絡(luò)系統(tǒng)的安全,漏洞掃描系統(tǒng)應(yīng)運(yùn)而生。漏洞掃描系統(tǒng)是一種利用計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)掃描技術(shù),對(duì)目標(biāo)系統(tǒng)進(jìn)行主動(dòng)掃描和漏洞檢測(cè)的系統(tǒng)。它可以幫助組織及時(shí)發(fā)現(xiàn)和修復(fù)系統(tǒng)中的漏洞,減少被攻擊的風(fēng)險(xiǎn)。對(duì)于企業(yè)、組織和網(wǎng)絡(luò)管理員而言,漏洞掃描系統(tǒng)是確保網(wǎng)絡(luò)安全的重要工具。
二、算法理論原理
2.1 DAST 技術(shù)
? ? ? ? 基于Web的安全掃描器是為了滿足企業(yè)對(duì)于漏洞檢測(cè)的需求而開發(fā)出來(lái)的工具。它們分為幾種類型,包括靜態(tài)應(yīng)用測(cè)試(SAST)掃描器、動(dòng)態(tài)應(yīng)用測(cè)試(DAST)掃描器和交互式應(yīng)用測(cè)試(IAST)掃描器等。DAST主要用于已部署并運(yùn)行的應(yīng)用程序。它通過(guò)自動(dòng)化或手動(dòng)添加數(shù)據(jù),將帶有安全性測(cè)試的數(shù)據(jù)包發(fā)送到應(yīng)用程序,并根據(jù)應(yīng)用程序的響應(yīng)來(lái)判斷測(cè)試結(jié)果。這種方式類似于滲透測(cè)試(也稱為黑盒測(cè)試)。
?
?? ? ? ? DAST主要工作于已部署并運(yùn)行的應(yīng)用上,通過(guò)發(fā)送帶有安全性測(cè)試數(shù)據(jù)包的方式,并根據(jù)應(yīng)用的響應(yīng)來(lái)判斷測(cè)試結(jié)果。它能夠在應(yīng)用程序的整個(gè)生命周期中進(jìn)行安全性測(cè)試,并及時(shí)獲取測(cè)試結(jié)果。相對(duì)于SAST,DAST更適用于實(shí)時(shí)的應(yīng)用程序安全性測(cè)試,類似于滲透測(cè)試的方式。DAST的工作流程如下所示:首先,DAST需要確定安全性測(cè)試所需的測(cè)試用例(也稱為POC)。準(zhǔn)備完成后,它會(huì)使用算法在已部署的應(yīng)用程序中尋找用戶的輸入點(diǎn)。DAST會(huì)循環(huán)查找程序的輸入點(diǎn),并在找到后將準(zhǔn)備好的測(cè)試用例提交到程序的輸入點(diǎn)中,等待應(yīng)用程序的返回值。DAST會(huì)將應(yīng)用程序的返回值與其內(nèi)部的安全規(guī)則庫(kù)進(jìn)行對(duì)比,以匹配是否發(fā)現(xiàn)了安全問(wèn)題。?
??
2.2 邏輯漏洞
? ? ? ? 基于Web的應(yīng)用可能存在安全缺陷,導(dǎo)致潛在的風(fēng)險(xiǎn)和攻擊,如架構(gòu)設(shè)計(jì)問(wèn)題、失效的安全配置和不完善的用戶輸入驗(yàn)證策略等。邏輯漏洞是由于應(yīng)用架構(gòu)設(shè)計(jì)或業(yè)務(wù)邏輯設(shè)計(jì)缺陷而導(dǎo)致的安全漏洞。邏輯漏洞有以下幾種。
- ??認(rèn)證類安全問(wèn)題:這類問(wèn)題主要發(fā)生在應(yīng)用未對(duì)訪問(wèn)后端資源的用戶身份進(jìn)行校驗(yàn)時(shí)。某些應(yīng)用缺乏授權(quán)驗(yàn)證,使用戶能夠繞過(guò)授權(quán)邏輯并直接訪問(wèn)需要認(rèn)證的資源。
- 權(quán)限類安全問(wèn)題:這類問(wèn)題包括垂直權(quán)限問(wèn)題和平行權(quán)限問(wèn)題。平行權(quán)限問(wèn)題主要存在于用戶資源生命周期管理的業(yè)務(wù)邏輯中。例如,當(dāng)用戶調(diào)用相關(guān)接口進(jìn)行查詢、刪除、修改等操作時(shí),當(dāng)前接口可能未驗(yàn)證用戶是否具有相應(yīng)數(shù)據(jù)的權(quán)限,從而導(dǎo)致用戶能夠訪問(wèn)未經(jīng)授權(quán)的數(shù)據(jù)。垂直類越權(quán)問(wèn)題主要存在于特權(quán)用戶獨(dú)有的接口中。由于未對(duì)特權(quán)用戶(如網(wǎng)站管理員)的身份進(jìn)行校驗(yàn),普通用戶可以利用精心構(gòu)造的參數(shù)和自身的身份信息,修改特權(quán)用戶才能訪問(wèn)的資源數(shù)據(jù)的生命周期,包括查看、添加、刪除和篡改等操作。
2.3 哈希算法
? ? ? ? 哈希算法在漏洞掃描系統(tǒng)中扮演著多重角色。它用于文件完整性校驗(yàn),確保文件未被篡改;在數(shù)據(jù)庫(kù)校驗(yàn)中,保證數(shù)據(jù)的完整性和一致性;通過(guò)簽名和驗(yàn)簽,驗(yàn)證掃描器和掃描結(jié)果的來(lái)源和完整性;同時(shí),哈希算法還可用于密碼存儲(chǔ)和比對(duì),提高密碼的安全性。綜合來(lái)說(shuō),哈希算法在漏洞掃描系統(tǒng)中發(fā)揮著重要作用,增強(qiáng)系統(tǒng)的安全性和可信度。
??
? ? ? ? 希算法的流程圖描述了哈希算法的執(zhí)行過(guò)程。它包括以下主要步驟:輸入數(shù)據(jù)、初始狀態(tài)設(shè)置、數(shù)據(jù)處理、迭代計(jì)算、最終計(jì)算和輸出哈希值。首先,將待哈希的數(shù)據(jù)輸入算法。然后,根據(jù)具體算法,設(shè)置初始狀態(tài)或初始哈希值。接下來(lái),將輸入數(shù)據(jù)按照規(guī)則進(jìn)行分塊處理,并對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行迭代計(jì)算,通常與之前的計(jì)算結(jié)果進(jìn)行組合操作。在處理完所有數(shù)據(jù)塊后,進(jìn)行最終計(jì)算,將最后一個(gè)數(shù)據(jù)塊與之前的計(jì)算結(jié)果組合,并應(yīng)用最后的轉(zhuǎn)換函數(shù)。最終,輸出生成的哈希值作為算法的結(jié)果。
相關(guān)代碼示例:
import hashlib
def calculate_file_hash(file_path):
# 創(chuàng)建一個(gè)哈希對(duì)象
hash_object = hashlib.sha256()
try:
# 打開文件
with open(file_path, 'rb') as file:
# 逐塊讀取文件內(nèi)容
for chunk in iter(lambda: file.read(4096), b''):
# 更新哈希對(duì)象
hash_object.update(chunk)
# 計(jì)算文件的哈希值
file_hash = hash_object.hexdigest()
return file_hash
except IOError as e:
print(f"無(wú)法打開文件: {e}")
return None
file_path = 'path/to/file.txt'
file_hash = calculate_file_hash(file_path)
if file_hash:
print(f"文件哈希值: {file_hash}")
# 將文件哈希值與預(yù)期的哈希值進(jìn)行比對(duì),以驗(yàn)證文件的完整性
if file_hash == expected_hash:
print("文件完整性驗(yàn)證通過(guò)")
else:
print("文件完整性驗(yàn)證失敗")
三、檢測(cè)的實(shí)現(xiàn)
? ? ? ? 邏輯漏洞掃描器的開發(fā)主要使用Python語(yǔ)言。它包括信息爬取與清洗模塊和漏洞檢測(cè)模塊。信息爬取與清洗模塊包括信息爬取子模塊和數(shù)據(jù)清洗子模塊。信息爬取子模塊用于采集掃描器數(shù)據(jù)源頭的信息,并實(shí)現(xiàn)了頁(yè)面識(shí)別與提取、登錄和異常處理等功能。數(shù)據(jù)清洗子模塊對(duì)采集的流量數(shù)據(jù)進(jìn)行去重和清洗,以供漏洞檢測(cè)模塊使用。
? ? ? ? 任務(wù)調(diào)度模塊負(fù)責(zé)分配和調(diào)度基于DAST技術(shù)的邏輯漏洞掃描器的工作,按照FIFO原則將任務(wù)分發(fā)給執(zhí)行者,并根據(jù)任務(wù)數(shù)目和優(yōu)先級(jí)進(jìn)行調(diào)度。漏洞檢測(cè)模塊對(duì)清洗后的流量進(jìn)行漏洞掃描,采用修改和重放的方式,并使用模糊哈希算法進(jìn)行響應(yīng)值的相似度計(jì)算。此外,邏輯漏洞掃描器與安全開發(fā)生命周期平臺(tái)和安全平臺(tái)進(jìn)行聯(lián)動(dòng),將漏洞掃描的細(xì)節(jié)以可視化形式展示,并在安全平臺(tái)上完成漏洞工單的確認(rèn)、簽收、修復(fù)和關(guān)閉流程。
相關(guān)代碼示例:
def calculate_hash(response):
# 創(chuàng)建哈希對(duì)象
hash_object = hashlib.sha256()
# 更新哈希對(duì)象
hash_object.update(response.encode('utf-8'))
# 計(jì)算哈希值
response_hash = hash_object.hexdigest()
return response_hash
def fuzzy_match(response1, response2):
# 計(jì)算兩個(gè)響應(yīng)的哈希值
hash1 = calculate_hash(response1)
hash2 = calculate_hash(response2)
# 比較哈希值的相似度
similarity = hash_similarity(hash1, hash2)
# 返回相似度結(jié)果
return similarity
def hash_similarity(hash1, hash2):
# 計(jì)算相似度
similarity = 0
if hash1 == hash2:
similarity = 1
else:
# 根據(jù)具體算法計(jì)算相似度
# ...
return similarity
實(shí)現(xiàn)效果圖樣例:
?
?
?
?
創(chuàng)作不易,歡迎點(diǎn)贊、關(guān)注、收藏。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-854647.html
畢設(shè)幫助,疑難解答,歡迎打擾!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-854647.html
最后
到了這里,關(guān)于畢業(yè)設(shè)計(jì):基于python的漏洞掃描系統(tǒng)的實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!