2017-2018-2 20179215 《密码与安全新技术》第5周作业
2017-2018-2 20179215 《密碼與安全新技術》第5周作業
課程:《密碼與安全新技術》
班級: 1792
姓名: 袁琳
學號:20179215
上課教師:謝四江
上課日期:2018年5月10日
必修/選修: 必修
學習內容總結
1.概念
安全漏洞:是指信息系統在設計、實現或者運行管理過程中存在的缺陷或不足,從而使攻擊者能夠在未授權的情況下利用這些缺陷破壞系統的安全策略。安全漏洞是網絡攻擊和防御的關鍵點。
- 攻擊:根據目標存在的漏洞,編寫攻擊程序(exploit)。
- 防御:提前挖掘出漏洞,并修復。
2.常見漏洞挖掘技術
(1)手工測試
手工測試是由測試人員手工分析和測試被測目標,發現漏洞的過程,是最原始的漏洞挖掘方法。
- 優點:能發揮人的主觀能動性
- 缺點:人無規律可循、不可大規模
(2)補丁比對
補丁對比是一種通過對比補丁之間差異來挖掘漏洞的技術。
- 優點:發現速度快
- 缺點:只能發現已知的漏洞
常見工具:PatchDiff2、bindiff
(3)程序分析
包括靜態和動態。
定義:是指在不運行計算機程序的條件下,通過詞法分析、語法分析、語義分析、控制流分析、污點分析等技術對程序代碼進行掃描,驗證代碼是否滿足規范性、安全性等指標的一種代碼分析技術。
- 優點:覆蓋率100%,自動化程度高
- 缺點:漏報和誤報(RICE,程序分析問題不可判定)
工具:
- 數據流分析:Fortify SCA、Coverity Prevent、FindBugs等
- 污點分析:Pixy、TAJ(基于WALA)
- 符號執行:Clang、KLEE
- 模型檢測:BLAST、MAGIC、MOPS
(4)二進制審核
定義:源代碼不可得,通過逆向獲取二進制代碼,在二進制代碼層次上進行安全評估
- 優點:同靜態審核
- 缺點:逆向導致信息丟失,理解困難,甚至引入邏輯錯誤。
二進制及編輯工具:IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
(5)模糊測試
定義:通過向被測目標輸入大量的畸形數據并監測其異常來發現漏洞
關鍵:測試用例構造,自動化。
- 優點:無須源碼、誤報低、自動化程度高
- 缺點:覆蓋率低
工具:Peach、Sulley、Autodafe、SPIKE等
3.漏洞挖掘示例
- 路由器協議漏洞挖掘
- NFC漏洞挖掘
(1)路由器協議漏洞挖掘
目標選擇:Cisco為例
系統架構
- 實驗
- 結果
當遠程向路由器的161端口發送大量畸形SNMP Get/Set請求報文時,Cisco路由器和華為路由器的進程Agent出現CPU使用率異常,分別為98%和100%。
當遠程發送SNMP空數據包時,Cisco路由器和華為路由器的CPU使用率出現異常,但遠小于100%,發生“輕度拒絕服務”。
當遠程發送一個畸形ASN.1/BER編碼(超長字符串)的SNMP數據包時,wireshark捕獲并解析數據包,導致wireshark 1.4等多個版本棧溢出,導致空指針引用并崩潰。
當向SNMP協議端口(161)遠程發送一個使用“\x”等字符構造的畸形UDP數據包,科來網絡分析系統7.2.1及以前版本均會因邊界條件檢查不嚴導致崩潰。
(2)NFC漏洞挖掘
- 目標選擇:手機
NFC(Near Field Communication)技術是一種近距離的雙向高頻無線通信技術,能夠在移動終端、智能標簽(Tag)等設備間進行非接觸式數據交換。
NFC技術具有通信距離短、一次只和一臺設備連接(1V1)、硬件安全模塊加密等特點,具有較好的保密性和安全性
- 系統架構
- 實驗
- 結果
4.常見工具-Android
(1)靜態分析工具
Androguard是一個靜態工具集。
包含Androaxml、Androapkinfo、Androcsign、Androdd、Androdump、Androgexf、Androlyze、Andromercury、Androrisk、Androsign、Androsim、Androxgmml、Apkviewer;
功能:反匯編/反編譯/靜態分析apk/相似度對比/測試混淆程度/惡意代碼檢測/………………………
http://code.google.com/p/androguard
(2)動態分析工具
DroidBox—Android應用程序動態分析工具
Mercury—是一個開源的Android APP應用安全評估框架,它最贊的功能是可以動態的與android設備中的應用進行IPC(組件通信)包括Activity。
TaintDroid —是一動態實時的隱私監控工具。它是利用動態污點分析技術檢測隱私數據的。http://appanalysis.org/index.html
(3)逆向分析工具
- Smali/Baksmali:DEX文件匯編和反匯編工具。
.dex .smali
assembler/disassembler!
http://code.google.com/p/smali/
- Apktool:是GOOGLE提供的APK編譯工具:
APK Smali/…. 可用于修改APK文件后,重新打包
http://code.google.com/p/android-apktool/
- Dex2Jar:把apk文件轉換成.jar包,配合JD-GUI工具查看和分析java源代碼。
http://code.google.com/p/dex2jar
- JD、Dedexer、Redexer…
5.攻防示例
- 路由器例子
- NFC
從被動防御方面來看:
路由器:
- 過濾特殊字符,eg. 科來網絡分析系統對\x的處理;
- 限制特定端口的傳輸速率;
- 阻塞SNMP請求的端口;
- 折中:編寫ACL
NFC:
- 協議解析:檢查長度字段、數值范圍、格式化字符串、特殊字符等;
- 設計缺陷:修改設計邏輯,例如,藍牙、wifi、屏幕亮度等;
- 被動防御:滯后性
主動防御:
- 針對路由器和軟件
- 成熟產品
- 入侵檢測(Snort/OSSEC HIDS/BASE/Sguil……)
- 防火墻
- 殺毒軟件
學習中的問題和解決過程
模糊測試的框架有哪些?
1、antiparser
antiparser框架以python語言編寫,是一個專門幫助模糊測試器創建隨機數據的API。該工具可以跨平臺,僅僅要求有python解釋器就行。
你可以在這個網站得到該框架的源碼和一些文檔:http://antiparser.sourceforge.net/
說明:
該框架很簡單,且缺少一些自動化功能,文檔較少。總的來說,他不適合做一些復雜的工作。
2、Dfuz
該框架是Diego Bauche用C開發的,經常更新。該框架已經發現了很多漏洞。Dfuz是開源的,可以下載。但是該框架的源代碼采用了一種嚴格的開原許可,未得到作者的允許不可以使用復制該框架的源代碼。
網站:http://www.genexx.org/dfuz/
說明:
該框架學習曲線比較平坦,開發效率比較高,Dfuz要求開發者完全使用框架的腳本語言來進行編程,沒法利用成熟的語言發揮更大的威力。不過總的來說還是可以的。
3、SPIKE
最廣泛使用最知名的一個框架。使用C語言編寫,提供了一系列允許快速和高效的開發網絡協議模糊測試器的API。在SPIKE中,數據結構被分解表示成塊,也叫SPIKE,這個塊同時包含二進制數據和塊大小。
說明:
SPIKE只有零星的文檔,一些還是廢棄的,但是我們可以找到很多工作樣例。SPIKE缺乏對windows的支持。最大的貢獻就是基于塊的模糊測試方法。很多其他的模糊測試框架也采用了這樣的方法。
4、Peach
python編寫的,是一個開源的框架。
Peach體系結構允許研究者聚焦于一個個的特定的協議的子組件,然后組合起來創建完整的模糊測試器。這種方法可能不如基于塊的開發速度,但是對代碼的復用的支持比其他模糊測試工具好。
說明:
Peach處于活躍開發中,但是文檔少,學習起來比較困難。
5、通用目的模糊測試器(GPF)
GPF可以產生無數個測試,無數個變異。(其他的根據規則不會是無數個),該框架主要的有點是可以用很低的成本建立并運行一個模糊測試器,通過GPF的多種模式對外提供功能。
6、Autodafe
這個框架可以簡單的描述成下一帶的SPIKE,該框架能夠對網絡協議和文件格式進行模糊測試。他最吸引人的就是調試組件。
其他
通過這一次基于模糊測試的漏洞挖掘與攻防技術的學習,對漏洞挖掘相關的一些基本概念有了一定了解。在未來的若干年中模糊測試技術仍將會是軟件測試領域的一個研究熱點,甚至可能延伸到硬件測試領域,該領域將會有大量的技術問題值得研究工作者開展進行一步的研究和探討。
轉載于:https://www.cnblogs.com/yl-930/p/9077649.html
總結
以上是生活随笔為你收集整理的2017-2018-2 20179215 《密码与安全新技术》第5周作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现随机生成0~100的数
- 下一篇: 从未后悔认识你,只是不知如何面对分开的结