主頁 >  其他 > Windows作業系統安全配置缺陷自動檢測技術

Windows作業系統安全配置缺陷自動檢測技術

2021-10-29 09:20:48 其他

目錄

  • 一,緒論與背景
    • 1.1,緒論
      • 1.1.1,專案概述與背景
      • 1.1.2,定義與術語
  • 二,需求分析
    • 2.1,系統設計概述
      • 2.1.1,需求分析
      • 2.1.2,概要設計
    • 2.2,功能設計
    • 2.3,功能需求
  • 三,詳細設計
    • 3.1,系統結構設計
    • 3.2,模塊設計
      • 3.2.1,弱口令檢測
      • 3.2.2,埠掃描檢測
      • 3.2.3,本地安全檢測
      • 3.2.4,系統版本及補丁檢測
      • 3.2.5,網路配置檢測
      • 3.2.6,安全日志檢測
    • 3.3,程式函式清單
  • 設計成果
  • 設計心得

一,緒論與背景

1.1,緒論

近年來,隨著人類社會的進步和資訊技術的發展,人類在能源、環境、交通、居住、安全等領域都面臨著嚴峻的挑戰,迫使人們不得不利用大資料、物聯網等互聯網技術實作更加高效、智能的資源利用和調配模式,
在大資料成為國家戰略的今天,企業的組織、生產和經營活動都以資料為基礎開展和優化,不僅是資訊類產品和服務,在交通、能源電力、市政管理、金融、環境保護、教育、醫療、安防反恐等領域,對互聯網的依賴也越來越強,隨之而來的資料被泄漏、篡改,網路攻擊等問題也越來越嚴重,
網路安全問題,關乎百姓生活與社會穩定,從大處看,會影響能源、交通等基礎設施的正常運行,影響金融、教育、醫療等各行業的秩序,甚至影響地緣政治的穩定;往小處看,每個人的隱私、企業的商業機密泄漏都會帶來各種各樣的社會問題,
而作為網路空間安全學院學生的我們,也在不斷的了解和學習有關安全的知識,這一次的資訊安全課程設計,我們選擇了題目二——“Windows或Linux作業系統安全配置自動檢測技術”,而Windows作為全球應用范圍最廣,知名度最高的作業系統,在有著強大功能的同時,也隱藏著不少漏洞,安全軟體公司 BeyondTrust 近日發布了一份《2021 年度微軟漏洞報告》,在 2020 年在微軟產品中共發現了 1268 個漏洞,創歷史新高,其中 Windows 產品的漏洞達 907 個,且有 132 個為關鍵性漏洞,更加嚴重的是,很多Windows用戶并沒有很強的安全意識,他們對自己的電腦了解不深,對電腦的安全配置也沒有一個很好的布置,在互聯網技術高度發達、人們的財產和隱私與電腦和網路高度連結的今天,維護互聯網、電腦系統的任務迫在眉睫,

1.1.1,專案概述與背景

Windows 系統的“漏洞”就像它的GUI(圖形界面)一樣“舉世聞名”,幾乎每個星期都有新的漏洞被發現,這些漏洞常被計算機病毒和黑客們用來非法入侵計算機,進行大肆破壞,雖然微軟會及時發布修補程式,但是發布時間是隨機的,而且這些漏洞會因Windows軟體版本的不同而發生變化,這就使得完全修補所有漏洞成為頭號難題,

1.1.2,定義與術語

  • 弱口令:
    沒有嚴格和準確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令,弱口令指的是僅包含簡單數字和字母的口令,例如“123”、“abc”等,因為這樣的口令很容易被別人破解,從而使用戶的計算機面臨風險,因此不推薦用戶使用,

  • Windows power shell :
    Windows PowerShell 是一種命令列外殼程式和腳本環境,使命令列用戶和腳本撰寫者可以利用 .NET Framework的強大功能,它引入了許多非常有用的新概念,從而進一步擴展了您在 Windows 命令提示符和 Windows Script Host 環境中獲得的知識和創建的腳本,

  • Telnet :
    Telnet協議是TCP/IP協議族中的一員,是Internet遠程登錄服務的標準協議和主要方式,它為用戶提供了在本地計算機上完成遠程主機作業的能力,在終端使用者的電腦上使用telnet程式,用它連接到服務器,終端使用者可以在telnet程式中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制臺上輸入一樣,可以在本地就能控制服務器,要開始一個telnet會話,必須輸入用戶名和密碼來登錄服務器,Telnet是常用的遠程控制Web服務器的方法,

  • SSH :
    SSH 為 Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議,SSH 是較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議,利用 SSH 協議可以有效防止遠程管理程序中的資訊泄露問題,

  • KB:
    KB是微軟對補丁的命名方式,是Knowledge Base(知識庫)的簡稱,
    其指的是某個補丁對應微軟知識庫中哪一篇文章,例如KB888111,就是對應 知識庫中888111號文章,

  • POC
    POC,Proof of Concept,中文意思是“觀點證明”,這個短語會在漏洞 報告中使用,漏洞報告中的POC則是一段說明或者一個攻擊的樣例,使得 讀者能夠確認這個漏洞是真實存在的,

  • EXP
    EXP,Exploit,中文意思是“漏洞利用”,意思是一段對漏洞如何利用 的詳細說明或者一個演示的漏洞攻擊代碼,可以使得讀者完全了解漏洞的機 理以及利用的方法,

  • CVE漏洞編號
    CVE 的英文全稱是“Common Vulnerabilities & Exposures”公共漏洞和暴露,例如CVE-2015-0057、CVE-1999-0001等等,CVE就好像是一個字典表,為廣泛認同的資訊安全漏洞或者已經暴露出來的弱點給出一個公共的名稱,如果在一個漏洞報告中指明的一個漏洞,如果有CVE名稱,你就可以快速地在任何其它CVE兼容的資料庫中找到相應修補的資訊,解決安全問題,

二,需求分析

2.1,系統設計概述

本系統是對Windows作業系統安全配置等進行全面掃描,從六個方面排查本機作業系統可能出現的風險與問題,并基于一套詳盡的評分體系可以給出各項的評分結果以及總評,

2.1.1,需求分析

作業系統本身設計的安全性可能比較高,但可能由于使用和配置的不當,造成作業系統實際的安全性能降低,通過作業系統安全評估,發現主機和網路設備的漏洞和安全隱患,通過實驗,使學生認識作業系統安全評估與檢測的重要性,掌握作業系統安全評估與檢測的內容和方法,

2.1.2,概要設計

最開始我們通過查詢各種,得知了一個判斷漏洞的方法,根據版本號和補丁與最新版本的對比,但是這樣的對比只能證明這是一個潛在的漏洞,也就是說系統有潛在的不安全因素,但不能說系統一定不安全,如果還需要進一步的判斷系統是否存在該問題,最好還是設計一個腳本攻擊一下,但是我們最終版本,只是設計出來檢測潛在的不安全因素,并沒有具體的去攻擊證明漏洞的存在,我們從以下幾個方面進行分析,然后給出一個較為全面的判斷,
在這里插入圖片描述
該安全檢測程式主要從圖示幾個方面進行權衡打分,分別是安全日志、弱口令、網路配置、版本系統日志、本地安全檢測、埠掃描,

  • 弱口令:
    從本地安全策略和爆破嘗試出發,進一步檢查口令強度,這里的弱口令從兩個方面出發,一個是管理員口令,和windows登錄時的口令,
  • 埠掃描:
    通過系統cmd指令查詢開放的埠號和系統行程的檢測,把二者形成的表通過PID匹配,形成一個完整的資訊表,再通過已有資料判斷是否有高危埠被打開,和一些建議關閉非必須打開的埠被打開了來評判,掃描的資訊還獲取了本地地址和外部地址,以及埠所在狀態,可以利于人工進一步分析,
  • 本地安全檢測:
    通過呼叫power shell查詢計算機自身狀態,和查找windows本地安全策略,通過windows 10專業版自帶的系統檔案進行一個全面的評價打分,最后查詢防火墻狀態,
  • 版本系統自查:
    通過查詢windows版本號和對應的補丁,判斷系統是否已經達到現版本的最 佳狀態,
  • 網路配置:
    查找組態檔中是否有非必須開啟的服務,
  • 安全日志:
    調取系統安全日志,對安全日志進行分析,判斷有無危害系統安全的行為,

2.2,功能設計

在這里插入圖片描述
此軟體的功能為對計算機的系統安全進行全方面的掃描,共分為六個部分,生成六分小報告,并最終生成一份總體的報告,每一份報告中都會對該項進行打分,滿分為一百分,

2.3,功能需求

在這里插入圖片描述

三,詳細設計

3.1,系統結構設計

在這里插入圖片描述
通過六個部分打分評測,并且各自生成一份具體的報告,然后最后再合成一份整體的報告,對系統進行全面的評測,

3.2,模塊設計

3.2.1,弱口令檢測

本課題中,針對作業系統弱口令的檢測,我們從兩個方面開展,
一方面,我們通過讀取作業系統本地安全策略中對密碼的設定、要求來評判,在windows10的作業系統中,可以設定“密碼必須符合復雜性要求”,進一步可以規定具體的密碼長度,密碼由幾種字符組成,密碼的最短、最長使用期限等,設定復雜性強的密碼且養成更換密碼的習慣,可以防范密碼泄露、社會工程學等隱患,此外,安全策略中還有賬戶鎖定策略,防止惡意腳本攻擊或設備被盜取造成個人資訊泄露,
有的時候,設備需要面臨多用戶使用,設定科學的密碼策略,有助于提高全體用戶的密碼魯棒性,保障整個系統的安全運轉,
在這里插入圖片描述
另一方面,我們采用不同角度的實踐操作來檢驗弱口令,
針對弱口令檢測的工具有很多,我們選用了Ophcrack、Hydra兩個工具分別檢測,
Ophcrack有獨特的彩虹表結構,找到存盤對應哈希值的檔案,匯入軟體,可以進行查找和破解;在Hydra的操作中,在kali的Hydra支持下,我們選用了大小為2萬的密碼本再次進行了檢測,依然未能成功,
在這里插入圖片描述

隨后,我們使用Python撰寫腳本,直接向cmd發送指令嘗試,發現在用戶鎖定策略的限制下,無法進行有效的嘗試就會被賬戶鎖,且賬戶鎖定期間手動也無法獲取管理員權限,
因此,在多次嘗試弱口令爆破失敗之后,我們采用獲取本地安全策略的方式,通過允許最小密碼長度,密碼復雜度等多維度來衡量弱口令安全分數值,

3.2.2,埠掃描檢測

定義:
埠掃描是指發送一組掃描訊息,了解其提供的計算機網路服務型別(這些網路服務均與特定的埠號系結),埠掃描是網路安全作業者的必備的利器,
埠掃描定義是客戶端向一定范圍的服務器埠發送對應請求,以此確認可使用的埠,雖然其本身并不是惡意的網路活動,但也是網路攻擊者探測目標主機服務,以利用該服務的已知漏洞的重要手段,埠掃描的主要用途仍然只是確認遠程機器某個服務的可用性,
掃描多個主機以獲取特定的某個埠被稱為埠清(Portsweep),以此獲取特定的服務,例如,基于SQL服務的計算機蠕蟲就會清掃大量主機的同一埠以在 1433 埠上建立TCP連接,
通過資料查詢,我們了解到:Windows10默認開啟一些日常用不到的埠,這些埠讓黑客有機可乘(黑客會使用工具掃描計算機上的埠,并入侵這些埠),關閉這些高危埠,可使我們的電腦避免遭受攻擊,例如關閉445埠等,可有效防止勒索病毒防止互聯網上出現針對Windows作業系統的勒索軟體的攻擊案例,
當然,因為技術問題,我們的埠掃描和市面上的主要軟體還是有所差距,我們的埠掃描主要是查詢本地計算機開放的埠、狀態、外部地址、以及pid對應的行程,
在這里插入圖片描述
演算法實作:

1. import sys  
2. import os  
3. import re  
4. class Logger(object):  
5.     def __init__(self, filename="Default.log"):  
6.         self.terminal = sys.stdout  
7.         self.log = open(filename, "a")  
8.
9.     def write(self, message):  
10.         self.terminal.write(message)  
11.         self.log.write(message)  
12.  
13.     def flush(self):  
14.        pass  
15.  
16. sys.stdout = Logger('a.txt')  
17. netinfo = os.popen('netstat -ano')  
18. cmt = re.compile("[^\s]+")  
19.  
20. pids = []  
21. result = []  
22.  
23. i=0  
24. for x in netinfo.readlines():  
25.    temp=cmt.findall(x)  
26.     if(i!=4):  
27.        i+=1  #舍棄前四行  
28.     else:  
29.         result.append(temp) ##雙層串列保存netstat讀出的資訊  
30.         #res[len(res)-1]  
31.  
32. i=0  
33. for y in os.popen('tasklist').readlines():  
34.     temp = cmt.findall(y)  
35.     if (i != 4):  
36.         i += 1  # 舍棄前四行  
37.     else:  
38.         pids.append(temp)  ##雙層串列保存netstat讀出的資訊  
39.  
40. for res in result:  
41.     for pid in pids:  
42.         if(pid[1]==res[len(res)-1]):  
43.             res.append(pid[0])  
44.  
45.  
46.  
47. output = open('D:/data(final).xls','w',encoding='gbk')  
48. output.write('協議\t本地地址r\t外部地址\t狀態\tPID\t行程名\n')  
49. for i in range(len(result)):  
50.     for j in range(len(result[i])):  
51.         output.write(str(result[i][j]))    #write函式不能寫int型別的引數,所以使用str()轉化  
52.         output.write('\t')   #相當于Tab一下,換一個單元格  
53.     output.write('\n')       #寫完一行立馬換行  
54. print("thanks")  

以上是代碼的主要部分
通過python陳述句呼叫cmd命令列,在cmd中輸入對應指令,查詢本機開放埠資訊,再查詢運行的行程資訊,在行程和埠之間有個共通之處,那就是PID,我們通過PID實作了兩個表的連接,最終形成了一個完整的表,通過對作業系統的知識學習,PID是行程識別號,每次啟動,甚至每臺電腦,可能對應的PID對應的行程都不一樣,所以PID其實并沒有太大作用,需要的是行程的名字,在連接的程序中需要有資訊的篩選和匹配,我們使用了python中的正則運算式來幫助我們實作這個目標,
cmd命令列為windows提供了DOS命令netstat,可以顯示當前的 TCP/IP 網頁持續環境,讓用戶得知有哪些網路連接正在運作

netstat -ano :-a 可以查詢顯示所有socket,包括正在監聽的 -n 以網路IP地址代替名稱,顯示出網路連接情形,-o 顯示太網統計資訊(timers),

“Tasklist”命令是一個用來顯示運行在本地或遠程計算機上的所有行程的命令列工具,帶有多個執行引數,

我們通過資料查詢到的幾個危險埠,這些高危埠通過各種百科的定義都是屬于一般情況下不會打開,并且有風險,我們有理由認為,這些埠的打開的風險大于收益,因此建議關閉,這一類埠會進行扣分,扣兩分,然后建議用戶關閉,還有一類是屬于有特殊需求的用戶可能會開放的埠,但是鑒于常見的計算機都沒有這部分需求,所以我們會給出建議并扣分,這類埠扣一分,然后用戶可以通過對應的行程和自己的需求自行判斷是否需要開放該埠,

該演算法還會在每次分析后生成一個檔案,類似于日志記錄每次的評分,也可以查詢歷史評分,

3.2.3,本地安全檢測

模塊設計思路:
1)利用Powershell檢查計算機的狀態,在這部分內容中,我們利用了Microsoft官網給出的專門檢測計算機各項能夠代表計算機安全狀態的命令Get-MpComputerStatus來檢查我們的計算機目前的防護能力,按照我們選出的評分標準進行分數的評判,
2)利用cmd命令secedit /export /cfg gp.txt /log 1.log檢測本地安全策略中用戶權限分配中的各項并將它到gp.txt中,我們利用查找工具來找到這個txt檔案在整個計算機中的位置,我們讀取檔案后利用正則運算式去查找我們所需的評分項,提取出里面的要點來進行打分,
3)利用cmd命令netsh firewall show config檢測本地防火墻狀態,監督所有與外界有包經過防火墻的行程,我們利用正則運算式來選取幾項得分項判斷這些得分項是否符合我們的標準,并給出最后的得分,

3.2.4,系統版本及補丁檢測

一個基于主機系統版本號與已有的KB的漏洞掃描程式,
步驟:
1.利用powershell腳本采集主機的系統版本與KB資訊
2.在微軟官網上收集CVE與KB對應的關系,并存盤進資料庫(db檔案)中
3.用系統版本與KBt與資料庫中資料比較,尋找主機沒有對應KB的CVE
4.獲取上一步中得到的CVE的威脅分類
5.根據威脅分類評分
威脅分類與危險等級評估可見評分手冊,
演示效果:
在這里插入圖片描述
資料庫(CVE與KB對應的關系)展示:
在這里插入圖片描述

3.2.5,網路配置檢測

簡要介紹:
對于網路配置的安全性來說,我們去上網查找了許多資料,在cmd中輸入ipconfig就可以查看該電腦的網路配置,不過我們直在安全性上陷入了迷茫,最后才在與網路相關的服務中做文章,我們的計算機中有許多網路部分相關的服務,而這些服務卻并不是都對我們的日常使用會有幫助,有一些少用、甚至完全用不上的服務,就可以選擇關閉掉,于是我去上網路上找到了一些常見的不必要開啟的網路服務,并通過python呼叫windows的服務系統,檢測相關的服務是否關閉,并且會有一個相關的打分評價,評價是基于我去查看windows網路服務具體的內容,根據關閉后對普通用戶的影響大小,來進行或高或低的打分評價,同時,作為網路中重要的一環,internet的連接檢測也加入在內,原理則是通過呼叫ping指令,并以www.baidu.com為測驗的站點,對網路連接狀況進行檢測,值得一說的是,加上這一點的理由是我在查閱常見的與網路配置有關的問題的時候,有一個問題是微信和qq可以正常使用,但是上網卻做不到,就是因為本身就沒有連上internet網路,但是qq與微信有備用的dns服務器,所以能夠正常使用,不過比較可惜的是,并沒有能夠解決有關dns服務器出現問題的進一步處理,
程式撰寫的思路:
這次有關于網路配置服務的檢測程式結構相對比較簡單,主要就是引入了wmi類,使用了Win32_Service函式就是可以直接呼叫服務的資訊,再通過if條件來進行具體情況的一個判斷,并進行一個相應的打分,而且為了讓用戶更好的了解這些不太必要的服務的具體情況,我也在后面加上了一些對服務的解釋,具體的服務功能和扣分情況有在評分手冊里面詳細說明,這里可以簡單談談選擇這些服務的原因,
1.DHCP Client
如果是手動分配的ip就可以關閉,不過現在大多都是自動獲取ip地址了,
2.Background Intelligent Transfer Service
如果不用系統自動更新,并且已經關閉win10系統自動更新的用戶可以關閉此服務,對系統使用沒有任何的影響,但是想要使用win10系統自動更新的用戶千萬不要關閉此服務,
3.Computer Browser
家庭用戶一般不會涉及到局域網是可以禁用掉的,但是網吧或企業就要用到局域網檔案共享是需要開啟這個服務的,
4.IP Helper
用于IPV6的服務,在之前的話可能還要調成手動,現在的話完全可以打開,
5.Print Spooler
不使用列印機的就可以關閉該服務,
6.Remote Registry
如果遠程的計算機連接到了你的計算機那么他可以通過字符界面或者其他方式遠程修改注冊表.這是一個相當嚴重的漏洞,可以為黑客入侵提供早期的方便(修改某些專案便于入侵,比如作業系統版本). 因此關閉這個服務沒有什么害處,而益處很多.強烈建議關閉,并且禁用.另外系統中沒有其他服務是依賴或者跟此服務有關聯的,所以禁用之后不會對其他服務產生影響,
7.Server
該服務提供RPC支持以及檔案、列印和命名管道共享,Server服務是作為檔案系統驅動器來實作的,可以處理I/O請求,如果用戶沒有提供適當的保護,會暴露系統檔案和列印機資源,對于Windows系統而言,這是一個高風險服務,Windows中默認共享的存在就是該服務的問題,如果不禁用該服務,每次注銷系統或開機后,默認共享就會打開,你的所有重要資訊都將暴露出來,同時,由于很多 Windows使用者為了使用方便把管理員密碼設定為空密碼或非常簡單的密碼組合,這給了黑客可乘之機,
所以,如果不是作業環境下,不需要使用局域網和共享列印機的,建議關閉此項服務,
8. TCP/IP NetBIOS Helper
NetBIOS在Win 9X下就經常有人用它來進行攻擊,然后將此資料寫入日志或觸發警報為了防止被遠程計算機搜索資料,否則一定要禁止它,
9.Windows Remote Management (WS-Management)
如果不是用遠程界面就可以關閉的服務,
10. Windows Error Reporting Service
如果電腦性能不是很好的話建議關閉,如果電腦性能優秀的話建議開啟,畢竟這些錯誤的資訊有助于微軟幫我們改善系統,是跟我們的利益切身相關的,
下面展示一些 行內代碼片

1.c = wmi.WMI()  
2.count = 0  
3.score = 100  
4.running_service = c.Win32_Service(State="Running")  
5.for s in running_service:  
6.  
7.    if(s.Name == "Dhcp"):  
8.        print(s.Caption,"服務正在運行,如果不使用動態ip地址,就禁用該服務\n")  
9.        count+=1  
10.        score-=0.5  
11.    if(s.Name == "BrokerInfrastructure"):  
12.        print(s.Caption, "服務正在運行,如果不啟動自動更新,就禁用該服務\n")  
13.        count+=1  
14.        score-=1  
15.    if (s.Name == "Browser"):  
16.        print(s.Caption, "服務正在運行,建議禁用\n")  
17.        count += 1  
18.        score-=2  
19.    if (s.Name == "iphlpsvc"):  
20.        print(s.Caption, "服務正在運行,建議禁用,該服務用于轉換IPv6 to IPv4\n")  
21.        count += 1  
22.        score-=2  
23.    if (s.Name == "Spooler"):  
24.        print(s.Caption, "服務正在運行,如果不需要列印,建議禁用該服務\n")  
25.        count += 1  
26.        score -= 1.5  
27.    if (s.Name == "RemoteRegistry"):  
28.        print(s.Caption, "服務正在運行,該服務主要用于遠程管理注冊表,建議禁用該服務\n")  
29.        count += 1  
30.        score -= 2  
31.    if (s.Name == "LanmanServer"):  
32.        print(s.Caption, "服務正在運行,如果不使用檔案共享,就禁用該服務,禁用本服務將關閉默認共享\n")  
33.        count += 1  
34.        score -= 1  
35.    if (s.Name == "lmhosts"):  
36.        print(s.Caption, "服務正在運行,建議禁用\n")  
37.        count += 1  
38.        score -= 1  
39.    if (s.Name == "WinRM"):  
40.        print(s.Caption, "服務正在運行,建議禁用\n")  
41.        count += 1  
42.        score -= 1  
43.    if (s.Name == "FontCache"):  
44.        print(s.Caption, "通過快取常用字體資料優化應用程式的性能,如果尚未運行該服務,則應用程式將啟動該服務,也可以禁用該服務,但是這樣做會降低應用程式性能,\n")  
45.        count += 1  
46.        score -= 1  
47.    if (s.Name == "WinHttpAutoProxySvc"):  
48.        print(s.Caption, "服務正在運行,建議禁用\n")  
49.        count += 1  
50.        score -= 2  
51.    if (s.Name == "WerSvc"):  
52.        print(s.Caption, "允許在程式停止運行或停止回應時報告錯誤,并允許提供現有解決方案,還允許為診斷和修復服務生成日志,如果此服務被停止,則錯誤報告將無法正確運行,而且可能不顯示診斷服務和修復的結果,\n")  
53.        count += 1  
54.        score -= 1.5  
55.print ("共 %d 項建議關閉的應用\n" %(count))  
56.print ("評分為%d分" %(score))  

(部分檢測服務和打分功能的實作)
而網路連接檢測則是通過os.system函式,函式會回傳0或者其他值,只有回傳0,才表示能夠連接到后面的網路地址,

1.import  os  
2.exit_code = os.popen('ping www.baidu.com')  
3.exit_code1 = os.system('ping www.baidu.com')  
4.out = exit_code.read()  
5.print(out)  
6.if exit_code1==0:  
7.    print("網路連接正常\n")  
8.else:  
9.    print("無法連接到Internet\n")  

3.2.6,安全日志檢測

安全日志可以記錄我們在每個物件上設定的審核策略定義的每個事件,它可以看作是計算機自己記錄的“日記”一樣,它在記錄這些事件的同時為這些事件確定了等級,這可以讓我們在眾多事件中找到一些例外的可能對我們的計算機造成一定損害的事件,這對于我們來說可謂是一個很實用的工具,
模塊設計思路:
在這個部分中,由于Windows系統安全日志存放在C:\Windows\System32\winevt\Log\中,由于系統自帶的權限管理和防護,我們如果要在這里對日志進行操作的話會很麻煩,所以我們選擇將Windows安全日志調出到D盤以實作整個流程,由于以evtx為擴展名的檔案我們是沒有辦法處理的,因此我們利用一個Microsoft的插件LogParser來實作從evtx檔案到csv格式的轉化,由于讀入csv時會出現編碼的問題,因此我們采取了將檔案重命名的方法,將csv檔案來轉化為txt檔案,通過對于txt的讀取,我們可以看到Windows最近存盤的20M系統日志,我們利用正則運算式來實作對于總體的檔案所需的事件ID和事件等級的提取,最后利用我們的分數計算函式來計算出我們的計算機在Windows安全日志部分的得分,

3.3,程式函式清單

  • 實作編碼的轉換
    def change(path,coding):
  • 獲得所有txt檔案的路徑,傳入檔案所在檔案夾路徑
    def find_all_file(path):
  • 修改檔案編碼方式 path是絕對路徑
    def change_to_utf_file(path):
  • 判斷是不是utf-8編碼方式 回傳編碼格式
    def judge_coding(path):
  • 多執行緒加速官網漏洞庫掃描
    class CVEScanThread(threading.Thread)
  • 多執行緒加速shodan網站CVE-POC查詢
    class POCScanThread(threading.Thread):
  • 獲取本系統資訊
    Def python_call_powershell()
  • 更新CVEKB資料庫
    Def update_cvekb_database()
  • 對官網資料進行分頁
    def get_page_num(dstDateStrArg=None)
  • 每一頁的查詢
    def update_onepage_cvedb_database()
  • 根據系統資訊查找無KB的CVE
    def select_CVE(tmpList=[], windowsProductName="", windowsVersion="")
  • 通過一個cve查找poc,用字典存盤,便于扣分
    def check_POC_every_CVE(CVE)
  • 多執行緒查詢CVE對應的POC
    def update_cvepoc_dir(cveList=[])
  • 評分函式
    def assessment(cveList=[])
  • 自己定義的埠掃描
    def port_scanning
  • 構成生成日志
    Class Logger
    Def write
    Def flush

設計成果

在這里插入圖片描述
在這里插入圖片描述

設計心得

本次小學期的選題是windows作業系統安全配置缺陷自動檢測技術,我們也通過這次的學習與實踐,對windows系統又有了更加深刻的了解,不過比較遺憾的是以我們目前的技術水平只能做到呼叫windows的本地策略,為用戶提交一份有關的報告,并沒能做到深入檢測系統檢測不到的漏洞,雖然我們也知道這樣的難度會大大增加,不過我們也相信,這一次又一次的課程實踐,能夠讓我們成長更多,并向著更加高端的技術前進,
在寫這部分代碼的時候,我們也遇到過很多問題,例如:我們無法利用cmd命令列來實作對于系統日志的列印和修改,我們也沒有辦法更改csv檔案的編碼格式,現在仔細一想,我們也算是另辟蹊徑,從不同的方向到達了同樣的地點,在這其中,我們其實走了不少的彎路,我們在這上面也是花了很長的時間去實作,其實如果按照原本的設想去實作的話,我們其實可以節約很長的時間,可以去實作在更廣的領域開展更加深入的探索和研究,在今后的大學時光中,我們會不斷吸收和計算機安全相關的知識,讓自己的內涵更加充實,從而在更多的專案中發揮出更大的作用,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340662.html

標籤:其他

上一篇:web安全101之如何理解XXE?

下一篇:網路安全之滲透實戰學習

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more