學號20189220 2018-2019-2 《密碼與安全新技術專題》第六週做業

學號20189220 2018-2019-2 《密碼與安全新技術專題》第六週做業

課程:《密碼與安全新技術專題》git

班級: 1892
姓名: 餘超
學號:20189220
上課教師:張健毅
上課日期:2019年2月26日
必修/選修: 選修程序員

1.本次講座的學習總結

本次講座主要學習了什麼是漏洞挖掘、常見漏洞挖掘技術、漏洞挖掘示例、攻防示例。web

安全漏洞

1.安全漏洞是指受限制的計算機、組件、應用程序或其餘聯機資源的無心中留下的不受保護的入口點。漏洞是硬件軟件或使用策略上的缺陷,他們會使計算機遭受病毒和黑客攻擊。
2.漏洞是在硬件、軟件、協議的具體實現或系統安全策略上存在的缺陷,從而可使攻擊者可以在未受權的狀況下訪問或破壞系統。具體舉例來講,好比在Intel Pentium芯片中存在的邏輯錯誤,在Sendmail早期版本中的編程錯誤,在NFS協議中認證方式上的弱點,在Unix系統管理員設置匿名Ftp服務時配置不當的問題均可能被攻擊者使用,威脅到系統的安全。於是這些均可以認爲是系統中存在的安全漏洞算法

常見安全漏洞包括

SQL注入:幾乎每個網站後臺開發人員都聽到的一個詞,而且都很敏感,可是不知道是什麼緣由形成的不少程序員卻在實際開發過程當中常常忽視這個問題。前段時間部門一位新同事,聽說是5年工做經驗,在對他的代碼作評審時,咱們發現全部的DAO層實現都是直接拼接SQL和參數,總監屢次提醒他這個問題,但他也沒有發現,直到總監說出SQL注入這個詞。sql

會話固定:這是一種會話攻擊,經過該漏洞攻擊者能夠劫持一個有效的用戶會話。會話固定攻擊能夠在受害者的瀏覽器上修改一個已經創建好的會話,所以,在用戶登陸前能夠進行惡意攻擊。shell

路徑訪問,或者「目錄訪問」。該漏洞旨在訪問儲存在Web根文件外的文件或者目錄。數據庫

弱密碼,字符少、數字長度短以及缺乏特殊符號。這種密碼相對容易破解。編程

硬編碼加密密鑰,提供一種虛假的安全感。一些人認爲在存儲以前將硬編碼密碼分散能夠有助於保護信息免受惡意用戶攻擊。可是許多這種分散是可逆的過程。設計模式

常見的漏洞挖掘技術

手工測試:定義:由測試人員手工分析和測試被測目標,發現漏洞的過程,是最原始的漏洞挖掘方法。【憑經驗依次檢驗每一個可能產生漏洞的脆弱點】優勢:人-主觀能動性-顯而易見和複雜不易見明顯沒有、沒有明顯; 缺點:人-無規律可循、不可大規模等。
補丁對比:定義:一種經過對比補丁之間的差別來挖掘漏洞的技術。文本(難定位,輸出難理解)彙編指令(易理解,輸出範圍大,難定位)結構化(迅速直觀,流行)。優勢:發現速度快;缺點:已知漏洞;常見工具:PatchDiff二、bindif
程序分析:包括靜態和動態
靜態定義:是指在不運行計算機程序的條件下,經過詞法分析、語法分析、語義分析、控制流分析、污點分析等技術對程序代碼進行掃描,驗證代碼是否知足規範性、安全性等指標的一種代碼分析技術。 優勢:覆蓋率100%,自動化程度高;缺點:漏報和誤報(RICE,程序分析問題不可斷定)工具: 數據流分析:Fortify SCA、Coverity Prevent、FindBugs等;污點分析:Pixy、TAJ(基於WALA);符號執行:Clang、KLEE; 模型檢測:BLAST、MAGIC、MOPS。
動態定義:在運行計算機程序的條件下,驗證代碼是否知足規範性、安全性等指標的一種代碼分析技術。通常經過插樁技術分析程序的異常行爲。插樁技術是指在保證被測程序邏輯完整性的基礎上在程序的關鍵位置插入一些「樁」,即加入一些測試代碼,而後執行插樁後的程序,經過「樁」的執行獲取程序的控制流和數據流信息,進而分析程序的異常行爲。優勢:自動化程度高、覆蓋率較高缺點:漏報和誤報(RICE,程序分析問題不可斷定)冗餘代碼時間開銷 工具:Android:Xposed。
二進制審覈:定義:源代碼不可得,經過逆向獲取二進制代碼,在二進制代碼層次上進行安全評估。缺點:同靜態審覈逆向致使信息丟失,理解困難,甚至引入邏輯錯誤。二進制及編輯工具:IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
模糊測試:定義:經過向被測目標輸入大量的畸形數據並監測其異常來發現漏洞。關鍵:測試用例構造,自動化。優勢:無須源碼、誤報低、自動化程度高缺點:覆蓋率低;工具:Peach、Sulley、Autodafe、SPIKE等瀏覽器

漏洞挖掘的方法

(1)白盒測試
白盒測試是一個極端,它須要對全部的資源進行充分的訪問,這包括訪問源代碼、設計規約,甚至有可能還要訪問程序員本人。

(2)黑盒測試
黑盒測試是另外一個極端。黑盒,顧名思義,就是看不到盒子內部的狀況,只能瞭解外部觀察到的東西。因此做爲終端用戶,能夠控制輸入,從黑盒子的一端提供輸入,從盒子的另外一端觀察輸出結果,而無需瞭解被控目標的內部工做細節。模糊測試(Fuzzing測試)從某個角度來說,也能夠看作是黑盒測試。

(3)灰盒測試
介於兩個極端之間。大體能夠定義爲:包括了黑盒測試審覈,也隱含的提示了具體的功能所預期須要的輸入,以及該具體功能的預期輸出。因此即使是不知道源代碼,也不意味着這種測試方法毫無用處。

漏洞挖掘通常流程

(1)提供源代碼的狀況

對於提供了軟件源代碼的狀況來講,咱們主要是針對軟件的源代碼進行閱讀,找出其中存在安全漏洞的地方,判斷該漏洞屬於什麼類型的漏洞,應當如何測試。而後,運行該軟件的可執行文件,測試剛纔發現的漏洞是否是可以成功地被觸發。若是能被成功觸發,那麼就證實咱們的分析是正確的。

(2)不提供源代碼的狀況

不少時候,程序的源代碼並不容易得到,而在這種狀況下,咱們主要是向軟件提供被刻意修改過的外部數據,同時藉助一些工具型軟件監視被測試軟件在處理這些數據時會不會發生錯誤。而後,分析這些錯誤,檢查其中哪些屬於安全漏洞的範疇,並判斷漏洞的類型。

(3)fuzzing測試的工做流程

漏洞挖掘示例

  1. 何謂文字處理型軟件
    以保存處理用戶的數據信息爲主要功能,同時,會將用戶的數據信息保存爲必定格式的特殊類型文件。這一類的軟件統稱爲文字處理型軟件,而那些可以被它們處理的特殊文件則稱之爲「文檔」文件。

如Microsoft Office系列軟件、WPS系列軟件、永中集成等等都是文字處理型軟件。

2.文字處理型軟件漏洞的發掘思想

2.1主動的功能測試

針對軟件功能進行安全測試的思想就是「主動的功能測試」。

在進行鍼對某個文字處理軟件的功能測試時,首先要作的就是正確使用軟件的各類功能。通常來講,爲了可以全面瞭解所要研究的軟件功能,須要對軟件的幫助文檔進行通讀,也就是對幫助文檔中的全部內容都進行通讀。當你在軟件的幫助文檔中學會正確使用軟件的某一個功能的時候,你如今作的就是開始實際操做一遍軟件的這個功能。在這個過程當中,你可能會發現軟件對一些功能是有必定限制的。

「發現軟件正確使用過程當中的限制問題」,這是咱們試圖發現軟件漏洞最重要的目的。這些被限制的問題頗有可能就是咱們正在尋找的軟件漏洞存在的地方,而發現這一切的一個前提,就是須要對軟件的全部功能有一個充分的瞭解。

雖然這種方法能在最大程度上發現軟件存在的安全漏洞,可是過程是十分辛苦和繁瑣的,爲了可以緩解這種痛苦的漏洞發掘過程,一些安全技術人員提出了另一種發掘文字處理型軟件漏洞的思想,即「被動的輸入性測試」。

2.2被動的輸入性測試

「被動的輸入性測試」的思想來源於對文字處理型軟件所能處理的文檔文件進行必定的修改,而後利用被測試的文字處理型軟件來打開這些被修改過的文檔文件,當軟件在處理這些被修改的文檔文件時,因爲該文檔文件的格式不正常,每每會致使軟件出現問題,有一些甚至就成爲安全漏洞。原理以下圖:


有了能夠用來被修改的原始文檔文件,下一步就要對特殊文檔文件進行必定的修改。因爲特殊文檔文件之間存在必定的差異,因此修改的方法分爲如下兩種狀況:

(1)明文式特殊文檔文件修改

思路:抓住明文格式的特殊文件中的關鍵字來進行超長數據修改或者過大、太小數據修改,而後讓文字處理型軟件來打開這個修改後的特殊文件,從而發現該軟件中可能存在的安全問題。

(2)非明文式特殊文件修改

採用非明文保存數據信息的益處:
出於商業利益考慮
出於安全考慮

對於非明文的特殊文件,在進行軟件漏洞測試的過程當中,每每採用「直接暴力式修改」的方法來進行測試。
在得到一個非明文保存數據的特殊文件時,能夠將其看做一個由十六進制編碼的文件,由於不管是明文的數據仍是非明文的數據信息,對於計算機來講其最終都是由0和1表明的數據,爲此,十六進制的編碼方式可使得咱們從計算機的角度來閱讀非明文的特殊文件。而「直接暴力式修改」的意思就是採用直接修改這些十六進制編碼的方法來進行對文字處理型軟件的安全測試。

2.學習中遇到的問題及解決

  • 問題1:漏洞挖掘的類型有哪些?
    問題1解決方案:
    暴力破解漏洞

sql注入漏洞

命令執行漏洞

xss漏洞(跨站腳本)

csrf漏洞(跨站僞造請求)

xxe漏洞

文件上傳漏洞

文件包含漏洞

各cms的公開漏洞

大佬的漏洞清單。那麼有可能除了上面那些,還多了下面這幾項

邏輯漏洞

ssrf漏洞

信息泄露

js文件可能存在的未受權訪問

組合漏洞

  • 問題2:漏洞挖掘須要具有的知識?
    問題2解決方案:
    從事漏洞挖掘工做須要具有的知識是極其普遍的,而且隨着時間在不斷改變,也取決於你所研究的對象(web程序、桌面程序、嵌入式等等)。不過,萬變不離其宗,所須要掌握的知識領域卻總能夠認爲是肯定的,我認爲大體能夠分爲如下四個方面:

(1) 程序正向開發技術。這是一個開發者須要掌握的能力,包括編程語言、系統內部設計、設計模式、協議、框架等。擁有豐富編程經驗與開發能力的人在漏洞挖掘過程當中每每比那些只對安全相關領域有所瞭解的人員對目標應用能有更深刻的理解,從而有更高的產出。

(2)攻防一體的理念。這些知識涵蓋了從基本的安全原則到不斷變換的漏洞形態及漏洞緩解措施。攻擊和防護結合的理念,可以有效幫助研究者既可以發現漏洞,同時也可以快速給出有效的漏洞緩解措施和規避方法。

(3)有效使用工具。可以高效的使用工具可以快速將思路轉化爲實踐,這須要經過花時間去學習如何配置和使用工具,將其應用於本身的任務並構建本身的工做流程來不斷積累經驗。更進一步,須要深刻掌握所使用工具的原理,以及如何對其進行二次開發,以使得其可以更加高效的應用於當前的工做實際。事實上,我認爲面向過程的學習方法每每比面向工具的學習方法更加高效以及有價值,當本身發現一個在使用一個工具遇到瓶頸時,先不要退縮,嘗試去改造它,或者經過本身動手實踐去完成可以適應當前工做的工具,這每每可以幫助快速積累大量實踐經驗。幫助咱們之後更加高效的去實踐漏洞挖掘工做。

(4)對目標應用的理解。最後,也是最重要的,做爲一個漏洞挖掘人員,對本身研究的應用程序在安全性方面必需要比這個程序的開發者或維護者有更深的理解。這樣你才能儘量的發現這個程序中的漏洞並修復它。

程序正向開發技術

有效使用工具

3.本次講座的學習感悟、思考等

經過對漏洞挖掘的學習,我發現漏洞的複雜性分佈很是廣。一方面,有不少漏洞很是簡單與直觀,而且利用代碼一目瞭然,好比說經典的sql注入。另外一方面,在系統中有的看似並不相關,而且就其自身而言並不是不安全,可是當這些東西以一種特定的方式結合起來的時候,就有可能引起大的漏洞,好比說條件競爭,或者一些其餘的複雜的邏輯漏洞。各類眼花繚亂的安全漏洞其實體現的是人類在作事的各類環節上犯過的錯誤,經過改進工具流程制度能夠獲得某些種程度的解決,但有些涉及人性很是不容易解決,並且隨着信息系統的日趨複雜,咱們能夠看到更多的新類型漏洞,這個領域永遠都有的玩。

4.漏洞挖掘的最新研究現狀

  • 第一篇
    1首先我找了一篇發佈在2014 IEEE Symposium on Security and Privacy的論文「Modeling and Discovering Vulnerabilities with Code Property Graphs」。
    2做者信息:Fabian Yamaguchi ; Nico Golde ; Daniel Arp ; Konrad Rieck
    3.今天遇到的絕大多數安全漏洞都是代碼不安全的直接結果。所以,計算機系統的保護關鍵取決於嚴格識別軟件中的漏洞,這是一個須要大量專業知識的繁瑣且容易出錯的過程。不幸的是,單個漏洞足以破壞系統的安全性,所以審計的大量代碼會攻擊攻擊者的卡片。在本文中,咱們提出了一種有效挖掘大量漏洞源代碼的方法。爲此,咱們引入了一種新的源代碼表示,稱爲代碼屬性圖,它將經典程序分析的概念,即抽象語法樹,控制流圖和程序依賴圖合併爲一個聯合數據結構。這種全面的表示使咱們可以經過圖遍歷優雅地爲常見漏洞建模模板,例如,能夠識別緩衝區溢出,整數溢出,格式字符串漏洞或內存泄露。咱們使用流行的圖形數據庫實現咱們的方法,並經過識別Linux內核源代碼中18個之前未知的漏洞來證實其功效。
    本文使用流行的圖形數據庫實現咱們的方法,並經過爲幾種衆所周知的漏洞類型設計圖形遍從來證實其實用價值,例如緩衝區溢出,整數溢出,格式字符串漏洞或內存泄露。做爲展現案例,本文分析了Linux內核的源代碼 - 一個龐大且通過良好審計的代碼庫。本文發現,2012年Linux內核報告的幾乎全部漏洞均可以使用其代碼屬性圖中的遍從來描述。儘管開源社區爲提升內核的安全性作出了至關大的努力,但這些遍歷使咱們可以發現Linux內核中18個先前未知的漏洞,從而在實踐中展現了代碼屬性圖的功能。

總之,本文對漏洞發現問題作出如下貢獻:

代碼屬性圖。本文引入了一種新穎的源代碼表示,它將抽象語法樹,控制流圖和程序依賴圖的屬性組合在一個聯合數據結構中。

遍歷漏洞類型。本文展現了常見類型的漏洞能夠優雅地建模爲代碼屬性圖的遍歷,併產生有效的檢測模板。

高效實施。本文經過將代碼屬性圖導入圖形數據庫來證實,能夠在大型代碼庫(如Linux內核)上有效地執行遍歷。

使用本文的方法找到的Linux內核驅動程序中的緩衝區溢出漏洞

  • 第二篇
  1. 第二篇論文我找的是發佈在2017 IEEE Symposium on Security and Privacy (SP)上的論文,論文的題目爲Your Exploit is Mine: Automatic Shellcode Transplant for Remote Exploits
    2做者信息:Tiffany Bao ; Ruoyu Wang ; Yan Shoshitaishvili ; David Brumley
    3 開發遠程攻擊並不容易。它須要全面瞭解漏洞和精密技術,以繞過防護機制。所以,攻擊者可能更願意重用現有漏洞利用並對從頭開發新漏洞利用進行必要的更改。一個這樣的改編是在原始漏洞利用替換shellcode中替換原始shellcode(即,做爲漏洞利用的最後一步執行的攻擊者注入的代碼),從而致使執行所需動做的修改漏洞。攻擊者與原始漏洞利用做者相對。咱們稱之爲shellcode移植。當前的自動shellcode放置方法是不夠的,由於它們過分約束替換的shellcode,所以不能用於實現shellcode移植。例如,這些系統將shellcode視爲集成內存塊,並要求修改後的漏洞利用的執行路徑必須與原始漏洞相同。爲解決這些問題,咱們提出ShellSwap,一個使用符號跟蹤的系統,結合shellcode佈局修復和路徑揉合來實現shellcode移植。咱們對20個漏洞和5個shellcode的組合評估了ShellSwap系統,這些漏洞是獨立開發的,與原始漏洞不一樣。在100個測試用例中,咱們的系統成功生成了88%的漏洞。結合shellcode佈局修復和路徑揉捏來實現shellcode移植。咱們對20個漏洞和5個shellcode的組合評估了ShellSwap系統,這些漏洞是獨立開發的,與原始漏洞不一樣。在100個測試用例中,咱們的系統成功生成了88%的漏洞。結合shellcode佈局修復和路徑揉捏來實現shellcode移植。咱們對20個漏洞和5個shellcode的組合評估了ShellSwap系統,這些漏洞是獨立開發的,與原始漏洞不一樣。在100個測試用例中,咱們的系統成功生成了88%的漏洞。
    具體來講,咱們的論文作出瞭如下貢獻:

本文設計了ShellSwap系統,這是第一個端到端系統,能夠修改觀察到的漏洞並用任意替換shellcode替換其中的原始shellcode。咱們的系統顯示自動漏洞利用是可能的:即便對安全漏洞瞭解甚少的人也能夠爲他們的自定義用例改進漏洞利用。

本文提出了新的系統方法來利用原始漏洞利用的信息來防止ShellSwap退化爲低效的符號探索,並修改替換shellcode而不改變其語義以適應原始漏洞隱含的約束。這些方法對ShellSwap的性能相當重要。

本文在100個案例--20個原始漏洞中評估咱們的系統,每一個漏洞包含5個不一樣的shellcode。本文的系統在88%的測試集中成功生成了修改後的漏洞,而且全部新漏洞都按預期工做。本文還將本文的系統與先前的技術水平進行了比較,本文發現之前的方法僅適用於本文測試集的31%。事實上,ShellSwap的成功率幾乎是以前解決方案的三倍,這意味着shellcode移植中固有挑戰的影響被低估了,將來針對這一問題的工做將是有益的。

shellswap系統的體系結構

激勵示例

示例函數的堆棧佈局。

使用Shellcode替換方法修改Shellcodel漏洞利用程序

替換Shellcode的反彙編。Shellcode2

實驗結果代表:
此表顯示了易受攻擊的二進制文件,其漏洞的類型,每一個二進制文件的原始漏洞利用數量,嘗試的漏洞修改總數(每一個二進制文件的每一個原始漏洞利用一個替換shellcode)以及已成功修改的漏洞利用數量由systemm和shellswap生成

每一個shellcode和每種方法生成的漏洞數量

每一個替換shellcode實例的成功率,按長度排序

表V顯示了每一個替換shellcode實例和每種方法的時間成本。佈局修復的平均時間成本爲19.73秒,而路徑捏合的平均時間成本爲9426.99秒。二者之間的巨大差別是由於後者須要一次或屢次符號跟蹤迭代,正如咱們以前所討論的那樣,這是一個很是耗時的過程。咱們將進一步的性能改進做爲將來的工做,並注意能夠應用於此問題的相關工做中的示例優化。

  • 第三篇
  1. 第三篇論文我找的是發佈在2015 IEEE Symposium on Security and Privacy上的論文,論文題目爲Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems
    2做者信息:Daniel Votipka ; Rock Stevens ; Elissa Redmiles ; Jeremy Hu ; Michelle Mazurek
  2. 流行的功能豐富的商品操做系統中存在大量安全漏洞,這激發了從應用程序的可信計算基礎中排除這些操做系統的長期工做,同時保留了許多優勢。傳統應用程序繼續在不受信任的操做系統上運行,而小型超級遮陽板或可信硬件則阻止操做系統訪問應用程序的內存。在本文中,咱們介紹了受控通道攻擊,這是一種新型的旁道攻擊,它容許不受信任的操做系統從Overshadow,Ink Tag或Haven等系統上的受保護應用程序中提取大量敏感信息。咱們實施對Haven和Ink Tag的攻擊,並經過從普遍部署的應用程序庫中提取完整的文本文檔和JPEG圖像的輪廓來展現它們的強大功能。鑑於這些攻擊,目前尚不清楚Over shadow的保護未經修改的遺留應用程序與現有硬件上運行的傳統操做系統的願景是否仍然可行
    文作出如下貢獻:

本文引入受控通道攻擊是對屏蔽系統的嚴重威脅,系統設計人員應該將其考慮在內。

本文針對普遍使用的庫設計了幾種具體的受控通道攻擊。

本文在Haven和InkTag上有效地實施了這些攻擊。

攻擊模型:
咱們假設攻擊者控制操做系統。可是,咱們將監視器組件和應用程序受保護環境中運行的任何代碼保持不變。咱們的攻擊所針對的屏蔽系統類具備如下屬性:

a)操做系統的內存資源管理
系統使用虛擬內存。操做系統可使用請求分頁將物理內存分配給各類應用程序。所以,操做系統根據其資源管理任務控制虛擬到物理存儲器映射。屏蔽系統能夠約束操做系統,以防止它讀寫應用程序存儲器並確保應用程序地址空間的完整性。例如,不容許操做系統將特定頁面映射到應用程序不指望的地址。可是,操做系統可以回收物理頁面,從而刪除虛擬到物理頁面映射。它還必須可以恢復頁面映射以處理頁面錯誤。爲此,操做系統必須可以獲取發生頁面錯誤的頁面的虛擬基地址。咱們不會假設頁面內的偏移知識。

b)申請
該系統支持大部分未修改的遺留應用程序。此類應用程序一般不會採起特殊措施來模糊其內存訪問模式(除了針對緩存側通道攻擊而加密的加密代碼以外)。咱們假設遺留應用程序是公開的,而且攻擊者知道目標應用程序二進制文件的確切版本。在咱們的攻擊中,咱們對應用程序的源代碼進行了手動分析。這對開源軟件來講不是問題。二進制代碼的手動分析也是可能的,雖然更加繁瑣。

引言中引用的大多數屏蔽系統知足這兩個條件。這包括咱們實施攻擊的Haven和InkTag。相比之下,像Flicker [38]或TrustVisor [37]這樣的系統不包含在此類中,由於它們須要對遺留應用程序進行重大修改,而且在Flicker的狀況下,僅支持具備靜態資源的單個受保護區域。

基本攻擊:

對應用程序的攻擊的實施

顯示了咱們針對攻擊的三種開源應用程序的版本。咱們使用相同的版原本攻擊Haven和InkTag。對於Haven,咱們使用Microsoft Visual Studio的C / C ++編譯器(版本18.00.30501)[4]編譯了開源代碼,並使用Windows附帶的系統二進制文件(例如,ntdll.dll和kernel32.dll)。對於InkTag,咱們在uClibc工具鏈[6]中使用了GCC編譯器(版本4.4.5)。
咱們的攻擊對代碼優化很是敏感,由於它可能會消除一些咱們可能用於推理的控制轉移。例如,若是被調用者被內聯到調用者中,則函數調用將消失。若是調用者和被調用者位於同一內存頁面上,咱們可能沒法跟蹤函數調用,編譯器常常對其進行性能優化。爲了使咱們的攻擊儘量真實,咱們在Windows和Linux上使用了與其餘二進制文件相同的編譯器選項。對於在Haven上運行的Windows二進制文件,咱們使用了Microsoft Visual Studio C / C ++編譯器的完整優化(即/ Ox)ox和內聯(即/ Ob2)選項。對於在InkTag上運行的Linux二進制文件,咱們在GCC編譯器中使用了二級優化(即-O2),其中內聯的可能目標包括指定的內聯函數,

咱們構建了簡單的控制檯應用程序來驅動庫。FreeType源包沒有命令行應用程序。咱們編寫了一個簡單的命令行應用程序,它爲輸入文件中的每一個字母調用FreeType庫,以使用Times New Roman字體(一種TrueType字體格式的流行字體)將其呈現到位圖緩衝區。Hunspell源包中包含一個命令行應用程序,可對輸入文件進行拼寫檢查。咱們將它與源包中的en_ US字典一塊兒使用。對於libjpeg,咱們編寫了一個簡單的命令行應用程序,它調用libjpeg庫來解碼JPEG圖像並將結果保存到BMP文件中。

在Windows上實施ASLR攻擊

出於評估目的,咱們在Windows上實施了ASLR攻擊,由於Haven和InkTag不支持ASLR。咱們使用Windows內核APls(例如,PsSetCreateProcessNotifyRoutineEx)來跟蹤流程建立,並在建立時識別目標流程。而後咱們使用Windows內核API(例如,PsSetLoadImageNotifyRoutine)來跟蹤爲目標進程中的可執行文件分配的內存區域。咱們使用第VA節中描述的相同方法來直接操做頁表。咱們經過設置Non-Executable位(第63位)來限制對存儲器頁面的訪問。這使咱們能夠避免數據頁上沒必要要的頁面錯誤。咱們ASLR攻擊的原型是做爲內核驅動程序實現的。它有1644行C代碼和156行彙編代碼。部分代碼與咱們在Haven上的實現共享。

總結:本文介紹了受控通道攻擊做爲一種新型的屏蔽系統攻擊,並證實受控通道攻擊是一種真正的威脅,必須在這些系統的設計中加以解決。咱們針對三個普遍使用的應用程序庫設計特定的受控通道攻擊,並在兩個最現代和最複雜的屏蔽系統上實現和執行它們。咱們的攻擊可以從這些系統上的受保護進程中提取整個文檔和JPEG圖像的近似版本。咱們還討論了一些潛在的緩解措施。

  • 第四篇
  1. 這是一篇發佈在2016 Third International Conference on Digital Information Processing, Data Mining, and Wireless Communications (DIPDMWC)的論文,論文題目爲Practical studying of Wi-Fi network vulnerabilities
  2. 做者信息以下:Aigerim Ismukhamedova ; Yelena Satimova ; Andrei Nikiforov ; Natalia Miloslavskaya
    3.目前,人們很是關注針對惡意軟件,病毒等的操做系統(OS)保護.Wi-Fi是最受歡迎和須要的鏈接到互聯網的方式,其在許多公司和我的中使用。Wi-Fi是一種普遍使用的技術,在不一樣的狀況下,它須要額外的軟件來進行受保護的安裝。Wi-Fi網絡可能被破解,我的數據可能被盜或受到損害。本文考慮了Wi-Fi網絡用於教育目的的黑客攻擊過程。一些黑客技術顯示爲在實驗室工做中實施。

工做實施方案:
A. Wi-Fi適配器的操做模式
因爲Wi-Fi使用範圍很廣,所以應該應用一些Wi-Fi適配器來檢測在實驗室工做期間轉發到範圍內設備的信號。因爲天線(Wi-Fi適配器)可能沒法提取某些數據包,所以驅動程序能夠在三種模式下運行:客戶端,監視器和混雜模式(圖1顯示了不一樣模式下的程序包攔截)。

截獲的數據包

當學生執行演習時,他須要在監視器(黑客)模式下傳輸網絡(無線)卡。每一個Wi-Fi適配器都會檢測到在客戶端模式下工做時轉發給它的任何信號。不適合該適配器的適配器包將被丟棄,其他的包將按原樣到達操做系統。在此模式下,損壞的包裹被丟棄而且操做被認爲是正常的。

在監控模式(rfmode)中,驅動程序不對包進行過濾,而且天線捕獲的全部信息都傳遞給OS。具備錯誤校驗和的包不會被丟棄而且能夠看到,即便用Wireshark。

中間件是混雜模式:驅動程序傳輸包,這些包經過與OS相關的網絡鏈接接收,但與正常操做相反。發往其餘網絡客戶端的包不會被丟棄,其餘網絡的包將被忽略。很明顯,這種方案在用戶成功鏈接並登陸到網絡時起做用。與監控模式相比,此選項由少許適配器支持。當在此模式下以及在客戶端模式下操做時,驅動程序從發送的數據包中刪除低級別信道標題[5]。

在客戶端模式中,用戶對不適合他的分組不感興趣,由於在混雜模式中,用戶必須鏈接到網絡。除了受損的軟件包和標題802.11以外,監控模式與客戶端相似,甚至超過了大部分適配器支持的混亂機制。這裏出現的惟一問題是並不是全部適配器都能在監控模式下同時傳輸數據[6]。

B.軟件安裝和設置

鏈接適配器

下一步是研究加密算法(ENC):

OPN - 沒有加密的網絡是沒有意義的。

WEP - 使用WEP加密的網絡。事實上,這樣的網絡對於這項任務是有價值的。

WPA / WPA2 - 具備WPA / WPA2加密的網絡,以及用於保護數據的加密技術:

WEP - 統計上用於保護無線網絡的最經常使用方法。它提供全部網絡流量的加密。它沒有身份驗證 - 若是您不知道密鑰,您將沒法解密數據。缺點是算法很是弱 - 密鑰在不到5分鐘內被攻擊者破解。

WPA和WPA2預共享密鑰 - 強大的系統身份驗證和數據加密。經過共享密鑰進行訪問。只要系統容易受到暴力攻擊,保護級別就是公鑰的複雜性。

WPA和WPA2企業版 - 之前系統的變體,但外部驗證器802.1x EAP用於確認身份,容許使用證書,智能卡等[8]。

WPA握手

Aircrack-ng命令

找到密碼

上述實驗室工做向學生展現了他們的Wi-Fi網絡是如何容易被破壞的,他們的我的數據可能被盜或受到損害。在實驗室工做以後,他們開始明白Wi-Fi做爲一項普遍使用的技術須要額外的軟件來進行受保護的安裝。他們接受過訓練,可使用一些技術來抵消特定的攻擊。在將來,計劃經過測驗添加實驗室工做來估計學生的知識並擴展一系列教育任務。實驗室工做極可能成爲關於Wi-Fi網絡安全的單獨教育課程的基礎

  • 第五篇
  1. 這是一篇發佈在2017 IEEE International Conference on Intelligence and Security Informatics (ISI)上的論文,論文的題目爲Hacking social network data mining
    2.做者信息:Yasmeen Alufaisan ; Yan Zhou ; Murat Kantarcioglu ; Bhavani Thuraisingham
    3.多年來,社交網絡數據一直被開採以預測我的的特徵,如智力和性取向。雖然挖掘社交網絡數據能夠向用戶提供許多有益的服務,例如個性化體驗,可是當用於作出關鍵決策(例如就業)時,它也會損害用戶。在這項工做中,咱們研究了將數據挖掘技術應用於社交網絡數據以預測各類個體特徵的可靠性。儘管此類數據挖掘應用程序取得了初步成功,但在本文中,咱們展現了現有最早進的社交網絡數據挖掘技術在面臨惡意攻擊時的漏洞。咱們的結果代表,作出關鍵決策,如就業或信貸審批,僅基於社交網絡數據挖掘結果在此階段仍爲時過早。具體來講,咱們探索Facebook喜歡的數據來預測Facebook用戶的特徵,包括他們的政治觀點和性取向。咱們對預測模型執行多種類型的惡意攻擊,以衡量和了解其潛在漏洞。咱們發現基於社交網絡數據的現有預測模型能夠很容易地被操縱,並提出一些對策來防止一些提議的攻擊。

在本文中,咱們全面研究了應用於社交網絡數據的數據挖掘模型對不一樣類型的惡意攻擊的魯棒性。咱們研究了使用其功能預測不一樣類別用戶的可行性。咱們仔細研究可使用這些功能成功預測的這些用戶類,並研究操縱這些功能以欺騙數據挖掘模型是多麼容易。咱們執行幾種不一樣類型的攻擊來衡量現有技術數據挖掘模型的穩健性。咱們的工做代表,使用統計數據挖掘模型挖掘社交網絡數據容易受到這些攻擊,由於經過對訓練或測試數據的簡單操做,預測準確性會下降。

咱們研究了兩種不一樣攻擊類別的影響。第一類是逃避攻擊,由單個用戶編輯,他們編輯他們的我的資料信息以防止任何可能暴露他們隱私的預測。這種攻擊的影響是我的用戶本地的,它能夠致使較少的目標廣告,以換取更多的隱私。第二類是中毒攻擊其中對手操縱屬於真實或虛假用戶組的數據以下降預測模型的全局分類準確度。攻擊者可使用中毒攻擊來影響數據挖掘性能。例如,一個恐怖組織能夠發動這種協調攻擊,以愚弄「這是一個恐怖主義相關的概況」預測模型。這是一種更嚴重的攻擊,對使用預測模型測試的全部用戶產生全局影響。

咱們會檢查不一樣的指標,以評估功能的重要性,並針對每次攻擊匹配最佳評估指標。咱們使用Facebook喜歡在兩個分類任務上展現咱們的結果:政治觀點(民主黨與共和黨人)和性取向(直接與同性戀)。對於每一個任務,咱們認爲一個類是目標類,另外一個類是相反的類。例如,對於政治觀點,咱們認爲「民主主義者」是咱們的目標階級,而「共和主義者」則是相反的階級。咱們隨機選擇目標和相反的類,沒有特別的理由支持一個而不是另外一個。最後,咱們提出了各類對策來防止一些提議的攻擊。咱們報告了這些對策在下降各類環境下攻擊嚴重性方面的成功。

對政治觀點(PV)和性取向(SO)的良好\不良特徵攻擊

對政治觀點(PV)和性取向(SO)的模仿攻擊

中毒攻擊政治觀點(PV)和性取向(SO)

在本文中,咱們分析了Facebook的喜愛以及它們在預測不一樣類別中不一樣用戶時的用處。咱們代表,單獨使用喜歡,咱們能夠高精度地預測政治觀點和性取向。咱們對這些可預測的用戶進行了屢次攻擊,以衡量預測模型的脆弱性。咱們的結果代表,這些模型容易受到不一樣類型的攻擊。所以,構建在社交網絡數據上的數據挖掘模型很容易被惡意攻擊者操縱。咱們還提出了防範逃避和中毒攻擊的對策。這些對策成功地下降了所討論攻擊的嚴重性。將來可能的方向是研究用戶社交網絡的影響。即便用戶沒有喜歡,他們能夠經過他們鏈接的人來描述[22],[23]。使用這些社交連接和鄰居可使預測模型更加健壯,由於攻擊者難以控制他們的鄰居。

總結

漏洞挖掘技術脫胎於軟件測試理論和軟件開發調試技術,能夠大大提升軟件的安全性。網絡安全界的第三方機構、技術愛好者也利用該技術尋找各類軟件漏洞,並及時發佈給大衆,爲提升信息安全總體水平作出了貢獻。但漏洞挖掘也是一把雙刃劍,已經成爲黑客破解軟件的主流技術。漏洞挖掘技術的發展前景是廣闊的,隨着信息安全愈來愈被重視,軟件開發技術愈來愈先進,新的分析手段會隨之出現。

參考資料

相關文章
相關標籤/搜索