2017-2018-2 20179215 《密碼與安全新技術》第5周做業

2017-2018-2 20179215 《密碼與安全新技術》第5周做業html

課程:《密碼與安全新技術》java

班級: 1792python

姓名: 袁琳android

學號:20179215編程

上課教師:謝四江windows

上課日期:2018年5月10日sass

必修/選修: 必修安全

學習內容總結

1.概念

安全漏洞:是指信息系統在設計、實現或者運行管理過程當中存在的缺陷或不足,從而使攻擊者可以在未受權的狀況下利用這些缺陷破壞系統的安全策略。安全漏洞是網絡攻擊和防護的關鍵點。網絡

  • 攻擊:根據目標存在的漏洞,編寫攻擊程序(exploit)。
  • 防護:提早挖掘出漏洞,並修復。

2.常見漏洞挖掘技術

(1)手工測試數據結構

手工測試是由測試人員手工分析和測試被測目標,發現漏洞的過程,是最原始的漏洞挖掘方法。

  • 優勢:能發揮人的主觀能動性
  • 缺點:人無規律可循、不可大規模

(2)補丁比對

補丁對比是一種經過對比補丁之間差別來挖掘漏洞的技術。

  • 優勢:發現速度快
  • 缺點:只能發現已知的漏洞

常見工具:PatchDiff二、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……)
  • 防火牆
  • 殺毒軟件

學習中的問題和解決過程

模糊測試的框架有哪些?

一、antiparser

antiparser框架以python語言編寫,是一個專門幫助模糊測試器建立隨機數據的API。該工具能夠跨平臺,僅僅要求有python解釋器就行。

你能夠在這個網站獲得該框架的源碼和一些文檔:http://antiparser.sourceforge.net/

說明:

該框架很簡單,且缺乏一些自動化功能,文檔較少。總的來講,他不適合作一些複雜的工做。

二、Dfuz

該框架是Diego Bauche用C開發的,常常更新。該框架已經發現了不少漏洞。Dfuz是開源的,能夠下載。可是該框架的源代碼採用了一種嚴格的開原許可,未獲得做者的容許不可使用複製該框架的源代碼。

網站:http://www.genexx.org/dfuz/

說明:

該框架學習曲線比較平坦,開發效率比較高,Dfuz要求開發者徹底使用框架的腳本語言來進行編程,無法利用成熟的語言發揮更大的威力。不過總的來講仍是能夠的。

三、SPIKE

最普遍使用最知名的一個框架。使用C語言編寫,提供了一系列容許快速和高效的開發網絡協議模糊測試器的API。在SPIKE中,數據結構被分解表示成塊,也叫SPIKE,這個塊同時包含二進制數據和塊大小。

說明:

SPIKE只有零星的文檔,一些仍是廢棄的,可是咱們能夠找到不少工做樣例。SPIKE缺少對windows的支持。最大的貢獻就是基於塊的模糊測試方法。不少其餘的模糊測試框架也採用了這樣的方法。

四、Peach

python編寫的,是一個開源的框架。

Peach體系結構容許研究者聚焦於一個個的特定的協議的子組件,而後組合起來建立完整的模糊測試器。這種方法可能不如基於塊的開發速度,可是對代碼的複用的支持比其餘模糊測試工具好。

說明:

Peach處於活躍開發中,可是文檔少,學習起來比較困難。

五、通用目的模糊測試器(GPF)

GPF能夠產生無數個測試,無數個變異。(其餘的根據規則不會是無數個),該框架主要的有點是能夠用很低的成本創建並運行一個模糊測試器,經過GPF的多種模式對外提供功能。

六、Autodafe

這個框架能夠簡單的描述成下一帶的SPIKE,該框架可以對網絡協議和文件格式進行模糊測試。他最吸引人的就是調試組件。

其餘

經過這一次基於模糊測試的漏洞挖掘與攻防技術的學習,對漏洞挖掘相關的一些基本概念有了必定了解。在將來的若干年中模糊測試技術仍將會是軟件測試領域的一個研究熱點,甚至可能延伸到硬件測試領域,該領域將會有大量的技術問題值得研究工做者開展進行一步的研究和探討。

相關文章
相關標籤/搜索