課程:《密碼與安全新技術專題》html
班級: 1892算法
姓名: 王子榛api
學號:20189206安全
上課教師:王志強bash
上課日期:2019年5月7日網絡
安全漏洞是指受限制的計算機、組件、應用程序或其餘聯機資源的無心中留下的不受保護的入口點。漏洞是硬件軟件或使用策略上的缺陷,他們會使計算機遭受病毒和黑客攻擊。架構
是指信息系統在設計、實現或者運行管理過程當中存在的缺陷或不足,從而使攻擊者可以在未受權的狀況下利用這些缺陷破壞系統的安全策略。機器學習
安全漏洞時網絡攻擊和防護的關鍵點,針對安全漏洞,一方面能夠進行攻擊(根據目標存在的漏洞,編寫攻擊程序);另外一方面能夠進行防護(提早挖掘出漏洞,並進行修復)。網絡安全事件層出不窮的根本緣由在於安全漏洞的存在。ide
國家信息安全漏洞函數
基於靜態分析的漏洞挖掘技術:
所用工具主要包括:
基於動態程序分析的漏洞挖掘技術:
定義:在運行計算機程序的條件下,驗證代碼是否知足規範性、安全性等指標的一種代碼分析技術。通常經過插樁技術分析程序的異常行爲。
插樁技術:插樁技術是指在保證被測程序邏輯完整性的基礎上在程序的關鍵位置插入一些「樁」,即加入一些測試代碼,而後執行插樁後的程序,經過「樁」的執行獲取程序的控制流和數據流信息進而分析程序的異常行爲
工具:Android: Xposed
漏洞挖掘技術的研究進展向深度學習方向發展
其研究進展爲
從圖中能夠看到,主要應用場景在:二進制程序函數識別、函數類似性檢測、測試輸入生成、測試輸入篩選、路徑約束求解、漏洞程序篩選、源代碼漏洞點預測。
二進制程序函數識別是二進制分析的基礎,對於軟件漏洞分析與修復,甚至惡意軟件檢測、協議逆向等都相當重要。因爲二進制代碼缺乏高級語言程序中的信息,函數的識別每每比較困難,現有的反彙編分析工具具備識別正確率低的缺陷。
以後Shin等用循環神經網絡算法改進了ByteWeight方案的性能,在模型訓練時間上有了數量級上的提高,並取得了更高的準確率。
測試用例(Test Case)是將軟件測試的行爲活動作一個科學化的組織概括,目的是可以將軟件測試的行爲轉化成可管理的模式;同時測試用例也是將測試具體量化的方法之一,不一樣類別的軟件,測試用例是不一樣的。不一樣於諸如系統、工具、控制、遊戲軟件,管理軟件的用戶需求更加不一樣的趨勢。
在軟件漏洞挖掘中,構造代碼覆蓋率高或脆弱性導向型的測試輸入能提升漏洞挖掘的效率和針對性,利用機器學習知道生成更高質量的測試輸入樣本。Godefroid等首次把模糊測試中的高結構化樣本生成問題轉換成了NLP領域的文本生成問題。接下來不斷提出了深度神經網絡指導磨合測試輸入樣本。
模糊測試,特別是代碼覆蓋率指導的模糊測試,側重於篩選能夠覆蓋新路徑的樣本爲種子文件,但對種子文件變異時並無充分利用程序數據流等信息指導變異,這使得變異盲目低效,生成樣本冗餘。
具有路徑約束求解能力是符號執行比模糊測試等漏洞挖掘技術更先進的體現,也使得符號執行在理論上具有了系統性探索程序執行路徑的能力。
但約束求解也存在着路徑爆炸,效率較低等問題。Chen等提出了Angora,採用污點追蹤測試輸入中影響條件分支的字節,而後使用梯度降低的方式對變異後生成的路徑約束進行求解。
選擇路由器協議漏洞挖掘的緣由是,路由器協議存在着大量漏洞,下圖所示爲路由器的漏洞挖掘系統架構
針對於SNMP協議,測試目標以下
結果發現,路由器協議漏洞以下:
隨着NFC手機的流行和推廣,這種近距離雙向高頻無線通訊技術,可以在移動終端、智能標籤等設備間進行非接觸式數據交換,同時NFC技術具備通訊距離短、一次只和一臺設備鏈接、硬件安全模塊加密等特色,具備較好的保密性和安全性。
漏洞挖掘系統架構以下:
測試過程以下
測試結果發現了諸多漏洞,有的漏洞是設計缺陷,可能會影響用戶的使用體驗,可是不會形成嚴重問題,有的漏洞則會形成拒絕服務,致使系統崩潰等問題。
從圖中能夠直接看出來,黑盒測試就當整個程序是個黑盒子,咱們看不到它裏面作了些什麼事情,只能經過輸入輸出看是否能獲得咱們所需的來測試。而白盒測試能夠當盒子是透明的,裏面的一切咱們都看的清楚,從而咱們能夠經過去測內部結構來測試。
黑盒測試又稱爲功能測試、數據驅動測試或基於規格說明書的測試,是一種從用戶觀點出發的測試。測試人員通常把被測程序看成一個黑盒子。
在漏洞挖掘中,要熟悉自動化黑盒測試和手動黑盒測試
這是一種在不考慮代碼自己的狀況下尋找程序漏洞的方法,它最主要是側重於跟應用程序的交互方面。在這種方法中,咱們須要從程序的用戶接口/界面發動攻擊,並觀察該程序的響應狀況,而無需分析應用程序的內部結構或代碼。而手動黑盒測試通常是我在拿到一個待測Web應用時最早採用的測試方法,由於這種方法能夠幫助我迅速對測試目標的總體狀況有一個大概的認識。
自動化黑盒測試的測試規模和範圍通常來講都比較合適。通常來講,咱們在進行其餘測試方法(例如手動測試)的過程當中,咱們能夠設置一個模糊測試器/掃描器並讓它們在後臺自動進行漏洞掃描。不過在漏洞報告生成以後,別忘了對掃描結果進行檢查和分析以免假陽性或漏洞重複率太高,不過具體狀況還得取決於你所使用的技術和工具。
問題2解決方案:
Fuzz這個名詞來自於Professor Barton Miller。在1989年一個風雨交加的夜晚,他登錄一臺本身的主機,不知道怎麼回事,信號經過貓傳到主機上,雷電一閃,把裏面的高位變低位,低位至高位了,結果到了主機之後改變了。他突發奇想,把這種方式做爲一種測試的方式來作。
那麼什麼是Fuzz Test就是用大量的測試用例一個一個試,儘量多得找出有可能出問題的地方
經常使用的Fuzz工具,通常會包含4個部分:
Generate lots of malformed data as test cases,要生成大量的測試用例。這個測試用力是malformed的,一個軟件首先要找到輸入點,而後把數據丟進去,這個數據有多是一個文件,有多是一個數據包,有多是測試表裏面的一個項,有多是臨時文件裏面的一個東西,總之是一種數據,要定義malformed這種非正常的數據。
Drop the test cases into product,把它丟進去,看這個產品怎麼反應。
Monitor and log any crash/exception triggered by malicious input.
Review the test log, investigated deeply.
經過王志強老師的講解咱們對漏洞挖掘有了一個初步的瞭解,同時,課上老師展現的漏洞攻擊的小視頻也能夠看出,漏洞挖掘的重要性,漏洞就像是「兵家必爭之地」,不只僅安全工做人員須要測試找出系統的漏洞,同時漏洞也是黑客們的主要攻擊目標,一個系統漏洞可能致使的威脅是很大的,因此,不斷改進漏洞挖掘技術,大規模大範圍的漏洞挖掘僅僅靠手工工做是遠遠不夠的,能夠看到結合機器學習的漏洞挖掘技術正是這幾年的研究方向,提升漏洞識別的準確性和提升速度,是網絡攻防的任務所在。
互聯網審查實踐的規模和多樣性使得難以精確監控審查的地點,時間和方式,以及審查的內容。執行測量的潛在風險使這個問題更具挑戰性。所以,許多關於審查制度的報道開始和結束只有少數幾個有利位置的軼事或短時間研究。
文章尋求持續監控有關互聯網可達性的信息,以捕捉跨區域和ISP的審查的開始或終止。爲了實現這一目標,引入了Augur —— 一種利用TCP / IP側通道測量兩個互聯網位置之間可達性的方法和附帶系統,而無需直接控制任一位置的測量有利位置。使用這些輔助通道,結合經過不涉及我的用戶來確保安全性的技術,咱們開發可擴展的,統計上可靠的方法來推斷網絡層過濾,並實現可以執行全局審查的連續監視的相應系統。咱們對17個天內近180個國家的互聯網範圍內的中斷測量結果進行了測試,以反映已被頻繁封鎖的網站;咱們還肯定了鏈接中斷最爲廣泛的國家。
爲了擾亂路徑兩端的IP ID值,測量機器將TCP SYN數據包發送到一個主機,該站點; TCP SYN數據包攜帶第二臺機器(反射器)的(欺騙性)源IP地址。 咱們稱之爲注射。 若是沒有進行過濾,從測量機器到站點的SYN數據包將從站點到反射器引出SYN-ACK,這反過來會引發從反射器到站點的RST。 當反射器向站點發送RST數據包時,它使用新的IP ID。若是反射器基於單個計數器生成數據包的IP ID值,則測量機器能夠觀察反射器是否生成帶有後續探測的RST數據包,由於 IP ID計數器將增長2。 圖1顯示了「無方向阻塞」方案中的此過程。
假設過濾發生在站點和反射器之間的路徑上(即圖1中所示的另外兩種狀況之一)。將阻塞表示爲從站點到反射器的路徑,做爲入站阻塞。在入站阻止的狀況下,站點的SYN-ACK數據包將不會到達原點,從而阻止反射器處的預期IP ID增量。在沒有其餘流量的狀況下,IP ID計數器將遞增1。在圖1的第二部分中展現了這一點。
實驗中每一個反射器的IP ID加速機率的CDF。
全球熱圖,顯示在世界各國爲任何反射器過濾的站點百分比。 中國的平均過濾量最高,5%的可衡量站點由國內的解析器過濾。
Tor(The Onion Router)是第二代洋蔥路由(onion routing)的一種實現,用戶經過Tor能夠在因特網上進行匿名交流。Tor專門防範流量過濾、嗅探分析,讓用戶免受其害。最初該項目由美國海軍研究實驗室贊助。2004年後期,Tor成爲電子前哨基金會的一個項目。
Tor易受網絡級攻擊者的攻擊,他們能夠觀察通訊的兩端以對用戶進行去匿名化。最近的工做代表Tor很容易受到先前未知的主動BGP路由攻擊(稱爲RAPTOR攻擊)的攻擊,這些攻擊將Tor用戶暴露給更多網絡級別的攻擊者。本文旨在減輕和檢測對Tor的這種主動路由攻擊。首先,提出了一個關於Tor網絡對主動BGP前綴攻擊的彈性的新測量研究。具備高Tor帶寬的AS對攻擊的彈性可能低於其餘AS。其次,提出了一種新的Tor保護繼電器選擇算法,該算法結合了繼電器的彈性以主動減輕這種攻擊。證實該算法成功地將Tor客戶端的安全性平均提升了36%(某些客戶端高達166%)。最後,構建了一個實時BGP監控系統,能夠經過執行AS原點檢查和新穎的檢測分析來實時檢測Tor網絡上的路由異常。咱們的監控系統成功檢測到模擬攻擊,模擬攻擊是在多種已知攻擊類型以及真實世界的劫持攻擊以後建模的,同時具備較低的誤報率。
下圖表示了與Tor相關的AS的劫持恢復力:
每一個AS的劫持恢復能力和相應的帶寬:
劫持不一樣客戶端的頂級帶寬AS的恢復能力:
在這項工做中,提出了主動和被動的對策,以保護Tor免受主動BGP路由攻擊。首先,評估了Tor網絡目前對劫持和攔截攻擊的彈性狀態。觀察到一些具備高Tor帶寬的AS具備相對低的彈性。接下來,提出了一種新的Tor保護中繼選擇算法,能夠主動減輕路由攻擊。該算法成功地增長了Tor客戶端對前綴劫持攻擊具備彈性的可能性。最後,提出了一個實時監控系統,該系統使用多種新的檢測機制來提醒用戶實時發生潛在的劫持攻擊。對監控系統進行了評估,發現它可以檢測出真實世界攻擊後模擬的模擬攻擊,以及真正的劫持攻擊(由咱們執行),誤報率能夠忽略不計。總的來講,文章工做是第一個主動減輕Tor上的主動路由攻擊的工做,也是第一個爲Tor量身定製的實時監控系統。
Addition
惡意軟件分析是計算機安全的重要任務;它提供了必要的理解,以設計有效的對策和緩解策略。當前惡意軟件的複雜程度和複雜程度繼續顯着發展,正如最近發現的「Regin」惡意軟件系列引人注目地說明的那樣。這種複雜性使得手動惡意軟件逆向工程的繁瑣且耗時的任務變得更加困難和具備挑戰性。經過使分析人員可以推斷二進制代碼的高級,更抽象,反編譯能夠加速這一過程。雖然已經取得了重大進展,可是現有的反編譯器仍然會產生很是複雜和難以理解的代碼,惡意軟件分析師仍然常常回到分析彙編代碼。
在本文中,咱們提出了幾個保留語義的代碼轉換,使反編譯代碼更具可讀性,從而幫助惡意軟件分析師理解和對抗惡意軟件。咱們已將優化實現爲學術反編譯器DREAM的擴展。爲了評估咱們的方法,咱們進行了第一次用戶研究,以測量反編譯器的惡意軟件分析質量。咱們的研究包括基於咱們從獨立惡意軟件專家得到的真實惡意軟件樣本的6個分析任務。咱們評估了三個反編譯器:領先的行業反編譯器Hex-Rays,最早進的學術反編譯器DREAM,以及咱們的可用性優化反編譯器DREAM ++。結果代表,咱們的可讀性改進對咱們的參與者分析惡意軟件樣本的程度有顯着影響。 DREAM ++顯着優於Hex-Rays和DREAM。與使用DREAM相比,使用DREAM ++參與者解決了比使用Hex-Rays和2倍多任務時多3倍的任務。
平衡反編譯器和難度級別的順序。 每一個水平序列中的節點表示由一個參與者執行的任務。 字母表示用於任務的反編譯器,顏色表示任務難度級別:中(黑色)或硬(紅色)。
首先,本文建立了許多新穎的可讀性代碼轉換,以提升惡意軟件分析的反編譯代碼的質量。轉換簡化了程序表達式和控制流程。 它們還根據變量和常量的上下文爲變量和常量指定有意義的名稱。 其次,經過該領域的第一個用戶研究驗證了改進,包括學生和專業惡意軟件分析師。 結果清楚地代表,本文的反編譯方法提供了重大改進,DREAM ++優於DREAM和HexRays。
長期以來,缺少用於評估工具和技術的地面實體語料庫阻礙了自動化漏洞發現的工做。缺少基本事實使得工具的做者和用戶沒法測量諸如未命中和誤報率等基本量。在本文中提出了一種新的動態污點分析技術LAVA,它經過快速自動地將大量實際錯誤注入程序源代碼來生成地面真實語料庫。每一個LAVA錯誤都伴隨着一個觸發它的輸入,而普通輸入則極不可能這樣作。這些漏洞是合成的,但咱們認爲,這些漏洞仍然是現實的,由於它們深深嵌入到程序中並由實際輸入觸發。使用LAVA,咱們在八個真實世界的程序中注入了數千個錯誤,包括bash,tshark和GNU coreutils。在初步評估中,咱們發現一個突出的模糊器和基於符號執行的錯誤查找器可以找到一些但不是全部注入LAVA的錯誤,而且有趣的模式和病理在其性能中已經很明顯。咱們的工做構成了按需生成大型groundtruth漏洞語料庫的方法的基礎,能夠進行嚴格的工具評估併爲工具開發人員提供高質量的目標。
LAVA實施架構。 PANDA和Clang用於執行動態污點分析,將潛在的錯誤注入識別爲DUA攻擊點對。其中每一個都經過Clang執行的相應源代碼更改進行驗證。 最後,針對目標輸入更改測試每一個潛在的錯誤二進制文件,以肯定是否實際致使緩衝區溢出。
在LAVA-M語料庫中發現的錯誤
在本文中介紹了LAVA,這是一個能夠快速將大量實際錯誤注入C程序的全自動系統。 LAVA已被用於向開源Linux C程序中引入超過4000個實際緩衝區溢出,這些程序包含多達200萬行代碼。咱們使用LAVA語料庫來評估最早發現的bug查找工具的檢測能力。基於污點的措施用於識別用於建立新漏洞的攻擊者控制數據的LAVA功能強大,可用於注入許多不一樣的漏洞,但可能存在基本限制; LAVA不會很快將邏輯錯誤注入程序。儘管如此,LAVA已準備好當即用做針對任務關鍵代碼中仍然豐富的嚴重漏洞類別的現實地面實況漏洞的按需來源。
在發現漏洞和修補程序問題之間常常會有至關長的延遲。緩解此漏洞窗口的一種方法是使用配置解決方法,以防止以某些功能丟失爲代價執行易受攻擊的代碼 - 但只有在可用時纔會執行。因爲應用程序配置並不是專門用於緩解軟件漏洞,發現它們僅覆蓋了25.2%的漏洞。爲了最大限度地減小補丁延遲漏洞並解決配置解決方法的侷限性,本文提出了快速響應安全解決方案(SWRR),旨在以及時、安全和不引人注目的方式消除安全漏洞。與配置變通方法相似,SWRR經過防止以某些功能丟失爲代價執行易受攻擊的代碼來中和漏洞。可是,關鍵的區別在於SWRR在應用程序中使用現有的錯誤處理代碼,這使得它們可以以最少的應用程序知識和最少的開發人員工做進行機械插入。這使SWRR可以實現高覆蓋率,同時仍然快速且易於部署。與配置變通方法相似,SWRR經過防止以某些功能丟失爲代價執行易受攻擊的代碼來中和漏洞。可是,關鍵的區別在於SWRR在應用程序中使用現有的錯誤處理代碼,這使得它們可以以最少的應用程序知識和最少的開發人員工做進行機械插入。這使SWRR可以實現高覆蓋率,同時仍然快速且易於部署。
比較解決新發現的漏洞的不一樣方法。
Talos的工做流程
本文描述了Talos的設計和實現,這個系統可使安全和精確的SWRR保護軟件漏洞不被攻擊者利用。主要結論是,SWRR是一種快速,安全且低成本的解決方案,能夠在補丁可用以前繼續使用應用程序。爲了得出這個結論,在五個真實世界的應用程序中測試了320個SWRR,發現它們中的大部分都是不引人注目的,而且SWRR能夠禁用75.1%的潛在漏洞。這代表,與傳統的配置解決方案相比,SWRR能夠在2.1倍以上的漏洞中發揮做用。還重現了11個漏洞及其漏洞,並嘗試使用Talos配備的SWRR和不帶SWRR的應用程序。咱們發如今全部11個案例中,應用程序的安全性獲得維護,而且在8個案例中,應用程序保留了其所有或大部分功能(除了易受攻擊的代碼)。本文將Talos視爲解決prepatch漏洞窗口的第一步。提升SWRR有效性的最佳途徑是改進識別錯誤處理代碼或SWRR能夠將執行重定向到的其餘安全代碼路徑,這將爲SWRR提供更好的基本覆蓋,從而提升其有效覆蓋率。