20189224 2018-2019-2 《密碼與安全新技術專題》課程總結報告
課程:《密碼與安全新技術專題》前端
班級: 1892
姓名: 史馨怡
學號:20189224
上課教師:王志強
必修/選修: 選修web
1 課程學習內容總結
1.1 教師講座
(1)Web應用安全——張健毅老師
- 常見的web漏洞的介紹:SQL注入,跨站腳本攻擊漏洞,CSFR(跨站請求僞造),Web信息泄露,權限問題,邏輯漏洞,第三方程序漏洞,Web服務器解析漏洞,弱口令,SSRF
- 機器學習在Web安全相關應用的介紹:魚叉(Spear Phishing,Catfishing)、水坑式攻擊(Watering Holes)、內網漫遊(Lateral Movement)、隱蔽信道檢測(Covert Channel Detection)、注入攻擊(Injection Attacks)、網頁木馬(Webshell)、憑證盜竊(Credential Theft)
(2)量子保密通訊——孫瑩老師
- 量子密碼的研究背景:
對稱密碼體制(優勢:加密速度快,適合批量加密數據;缺點:密鑰分配、密鑰管理、沒有簽名功能);
公鑰密碼體制(基於大數分解等數學難題,優勢:可解決密鑰分配、管理問題,可用於簽名;缺點:加密速度慢);
混合密碼體制(用公鑰密碼體制分發會話密鑰,用對稱密碼體制加密數據);
安全性挑戰(Shor算法:大數分解算法多項式時間內解決大數分解難題受影響密碼體制;Grover算法:快速搜索算法能夠加速搜索密鑰受影響密碼體制:DES,AES等對稱密碼)
- 量子通訊相關基本物理概念:
量子的概念(微觀世界物理量相鄰分立值的差稱爲該物理量的一個量子/具備特殊性質的微觀粒子或光子);
量子態(經典信息:比特0或1,可用高低電壓等表示);
量子信息(量子比特|0>,|1>量子比特還能夠處在不一樣狀態的疊加態上);
不可克隆定理(未知量子態不可克隆);
測不許原理(未知量子態不可準確測量)
- 量子通訊基本模型介紹:
信息傳輸(一般同時用到量子信道和經典信道,量子信道傳輸量子載體,經典信道傳輸經典消息);
糾錯(隨機選擇部份量子載體,比較初末狀態,對比較的協議來講,竊聽必然干擾量子態,進而引入錯誤,一旦發現存在竊聽則終止通訊,丟棄相關數據);
竊聽檢測(糾正密鑰中的錯誤);
保密加強(經過壓縮密鑰長度,將竊聽者可能得到的部分密鑰信息壓縮至任意小,獲得安全的密鑰)
- 量子通訊研究現狀
量子密鑰分發、量子祕密共享、量子安全直接通訊、量子身份認證、量子拋幣、量子不經意傳輸;
提升性能、提升效率:可重用基、糾纏加強、雙光子、雙探測器
提升抗干擾能力:無消相干子空間、量子糾錯碼
提升實際系統抗攻擊能力:誘騙態、設備無關
速率更高、距離更遠、安全性更強
(3)基於深度學習的密碼分析與設計初探——金鑫老師
- 密碼分析與機器學習
機器學習模型:樣本x--------------模型(函數fx)---------------標註y
密碼分析模型:明文x--------------密鑰(函數fx)---------------密文y
研究趨勢發展:愈來愈多的密碼分析方法開始使用機器學習技術
- 深度學習簡介
深度學習:經過組合低層特徵造成更加抽象的高層表示屬性類別或特徵,以發現數據的分佈式特徵表示
深度神經網絡:卷積神經網絡( CNN: Convolutional NeuralNetworks),循環神經網絡( RNN: Recurrent Neural Networks),生成對抗網絡( GAN: Generative Adversarial Networks)
深度學習應用實例:人體分割、姿式識別、人臉分割與自動上妝、視覺問答、阿法狗、攻陷Dota二、驗證碼破解、考試監控做弊行爲發現、圖像美感自動發現
- 深度學習與密碼分析:基於卷積神經網絡的側信道攻擊,基於循環神經網絡的明文破譯,基於生成對抗網絡的口令破解,基於深度神經網絡的密碼基元識別
- 深度學習與密碼設計
通訊安全
計算安全 創建安全的開放融合網絡環境 物聯網環境下協做通訊處理安全需求
存儲安全-------------------------------------->雲計算環境下協做通訊處理安全需求
密鑰創建和認證 量子計算技術發展對密碼的安全
密碼資源保護
(4)信息隱藏技術——夏超老師
(5)區塊鏈技術——張健毅老師
- 區塊鏈基本概念
區塊:比特幣網絡中,數據以文件的形式被永久記錄,稱之爲區塊(Block)。記錄交易單的數據單元叫作Block,一個Block上會記錄不少交易單。
區塊鏈:全部的Block以雙向鏈表的方式連接起來,且每一個Block都會保存其上一個Block的Hash值。只有一個Block無上一節點,即創世Block(第一個Block)。
- 區塊鏈技術
點對點對等網絡:區塊鏈能夠理解爲是一個去中心化的分佈式數據庫。這個數據庫不依賴任何機構和管理員,區塊鏈的做用就是存儲信息,數據庫的數據由全網的節點共同維護,任何人均可以接入區塊鏈網絡,成爲一個數據節點。若是向數據節點寫入數據,這個節點會將寫入的數據信息廣播到相鄰的節點,而後相鄰的節點再廣播到它們相鄰的節點,最終會將信息廣播給全網的全部節點,最後全部的節點會同步數據,保證一致性。
共識機制:POW、POS、DPOS
數據可驗證性:PKI公鑰體系、不可變數據
獎勵合做的制度設計:非合做博弈、合做達到納什均衡
- 區塊鏈將來:貨幣、合約、治理交叉均衡
(6)漏洞挖掘技術——王志強老師
- 常見漏洞挖掘技術的介紹:
手工測試(由測試人員手工分析和測試被測目標發現漏洞的過程,是最原始漏洞挖掘方法);
補丁對比(一種經過對比補丁之間的差別來挖掘漏洞的技術);
程序分析(靜態和動態);
二進制審覈(源代碼不可得,經過逆向獲取二進制代碼,在二進制代碼層次進行安全評估);
模糊測試(經過向被測目標輸入大量的畸形數據並監測其異常來發現漏洞)
- 漏洞挖掘技術研究進展
發展方向:AI——機器學習——深度學習
1)二進制程序函數識別:現有的反彙編分析工具具備識別正確率低的缺陷;使用循環神經網絡算法RNN進行二進制程序函數識別的模型訓練。
2)測試用例生成:在軟件漏洞挖掘中,構造代碼覆蓋率高或脆弱性導向型的測試輸入能提升漏洞挖掘的效率和針對性。可使用機器學習來指導生成更高質量的測試輸入樣本
3)測試用例篩選
4)路徑約束求解:模糊測試側重於篩選能夠覆蓋新路徑的樣本爲種子文件,但對種子文件變異時並無充分利用程序數據流等。具有路徑約束求解能力是符號執行比模糊測試等漏洞挖掘技術更先進的體現。Angora採用污點追蹤測試輸入中影響條件分支的字節,而後使用梯度降低的方式對變異後生成的路徑約束進行求解
漏洞挖掘示例
- 漏洞挖掘示例:路由器協議漏洞挖掘、NFC漏洞挖掘
1.2 同窗報告
(1)第一小組(張宇翔、鮑政李):Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale
文章貢獻:
- 開發了一種名爲MassVet的新技術,可在無需瞭解惡意軟件的外觀和行爲方式狀況下對應用程序進行大規模審查,。
- 構建了「DiffCom」分析,該算法將應用程序的UI結構或方法的控制流圖的顯著特徵映射到一個快速比較的值。
- 在流處理引擎上實施了MassVet,並評估了來自全球33個應用市場的近120萬個應用程序,即Google Play的規模。
- 實驗代表該技術能夠在10秒內以低錯誤檢測率審覈應用程序且在檢測覆蓋率方面優於VirusTotal(NOD32,賽門鐵克,邁克菲等)的全部54臺掃描儀,捕獲了超過10萬個惡意應用程序,包括20多個可能的零日惡意軟件和數百萬次安裝的惡意軟件。
工做思路
核心方法
MassVet首先處理全部的應用程序,包括用於查看結構的數據庫和用於數據庫的數據庫。兩個數據庫都通過排序以支持二進制搜索,並用於審覈提交到市場的新應用程序。從新包裝的AngryBird一旦上載到市場,首先在預處理階段自動拆解成一個小型表示,從中能夠識別其接口結構和方法。它們的功能經過計算映射到v核(視圖中心)和m核(控制流的幾何中心)。應用程序的v-cores首先用於經過二進制搜索查詢數據庫。一旦匹配知足,當存在具備相似的AngryBird用戶界面結構的另外一個應用程序時,將從新打包的應用程序與方法級別的市場上的應用程序進行比較以識別它們的差別。而後自動分析這些差別以確保它們不是廣告庫而且確實是可疑的,若是是,則向市場報。當沒有任何東西時,MassVet繼續尋找方法數據庫中的AngryBird的m核心。算法
(2)第二小組(馮乾、李煬):Spectre Attacks: Exploiting Speculative Execution
論文內容總結:
(3)第三小組(餘超、楊晨曦):All Your GPS Are Belong To Us: Towards Stealthy Manipulation of Road Navigation Systems
論文貢獻:
- 爲了證實該方法的可行性,咱們首先經過實現便攜式GPS欺騙器並在實際汽車上進行測試來進行受控測量。
- 設計了一種計算Th值的搜索算法,實時移動GPS偏移和受害者路線。
- 使用跟蹤驅動的模擬(曼哈頓和波士頓的600個出租車線路)進行普遍的評估,而後經過RE驗證完整的攻擊AL-世界駕駛考試(攻擊咱們本身的汽車)。
- 對美國和中國的駕駛模擬器進行了欺騙性的用戶研究。
- 探討了對道路導航系統進行隱身操縱攻擊的可行性。
研究思路:
- 四個組件:HackRF One-based前端,Raspberry Pi,便攜式電源和天線,使用10000 mAh移動電源做爲整個系統的電源
- 將組件鏈接到頻率範圍在700MHz至2700MHz之間的天線,覆蓋民用GPS頻段L1(1575.42兆赫)。
- Raspberry Pi 3B(四核1.2GHz Broad com BCM2837 64位CPU,1GB RAM)用做中央服務器。
- GPS衛星信號由一個Raspberry Pi上運行的無線攻擊發射盒(WALB)生成。
- 經過控制Raspberry Pi,手動或使用腳原本獲取實時GPS位置信息。
實驗結果:
攻擊取得了很高的成功率(95%)。在40人中,只有一名美國參與者和一名中國參與者認出了此次襲擊。其他的38名參與者都完成了這四項NDS的驅動任務,並跟隨導航到達錯誤的目的地。緩存
研究侷限性:
- 學習限制:攻擊效果會在郊區下降、攻擊並不適用於全部的人
- 用戶研究侷限性:實驗只選擇了一個歐洲城市、研究未達到一個大規模的規模、研究只測試了一條路線
(4)第四小組(張鴻羽、李熹橋):With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning
論文貢獻:
提出了一個新的針對遷移學習的對抗性攻擊,即對教師模型白盒攻擊,對學生模型黑盒攻擊。攻擊者知道教師模型的內部結構以及全部權重,但不知道學生模型的全部權值和訓練數據集。安全
攻擊思路:
- 將target圖狗輸入到教師模型中,捕獲target圖在教師模型第K層的輸出向量。
- 對source圖加入擾動,使得加過擾動的source圖(即對抗樣本)在輸入教師模型後,在第K層產生很是類似的輸出向量。
- 因爲前饋網絡每一層只觀察它的前一層,因此若是咱們的對抗樣本在第K層的輸出向量能夠完美匹配到target圖的相應的輸出向量,那麼不管第K層以後的層的權值如何變化,它都會被誤分類到和target圖相同的標籤。
防護方法:
修改學生模型,更新層權值,肯定一個新的局部最優值,在提供至關的或者更好的分類效果的前提下擴大它和教師模型之間的差別。服務器
(5)第五小組(王子榛、史馨怡):safeinit:Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities
文章成果:
- 提出了SafeInit,一種基於編譯器的解決方案
- 經過確保棧和堆上的初始化來自動減輕未初始化的值讀取。
- 提出的優化能夠將解決方案的開銷下降到最低水平(<5%),而且能夠直接在現代編譯器中實現基於clang和LLVM的SafeInit原型實現,並代表它能夠應用於大多數真實的C / C++應用程序而無需任何額外的手動工做。
- 評估咱們在CPU-intensiv佔用CPU資源的操做、IO-intensive佔用I/O設備的操做以及Linux內核方面的工做,並驗證是否成功地減輕了現存的漏洞
LLVM架構
LLVM包括了一個狹義的LLVM和一個廣義的LLVM。廣義的LLVM其實就是指整個LLVM編譯器架構,包括了前端、後端、優化器、衆多的庫函數以及不少的模塊;而狹義的LLVM其實就是聚焦於編譯器後端功能(代碼生成、代碼優化等)的一系列模塊和庫。Clang是一個C++編寫、基於LLVM的C/C++/Objective-C/Objective-C++編譯器。Clang是一個高度模塊化開發的輕量級編譯器,它的編譯速度快、佔用內存小、很是方便進行二次開發。上圖是LLVM和Clang的關係:Clang其實大體上能夠對應到編譯器的前端,主要處理一些和具體機器無關的針對語言的分析操做;編譯器的優化器部分和後端部分其實就是咱們以前談到的LLVM後端(狹義的LLVM);而總體的Compiler架構就是LLVM架構。網絡
safeinit架構
如圖編譯器在得到C/C++文件後,編譯器前端將源文件轉換爲中間語言(IR),經過初始化、代碼優化結合現存編譯器的優化器,以後經過無效數據消除、強化分配器最後得到二進制文件。Safeinit在整個過程當中所添加的就是 初始化所有變量、優化以及強化分配器,來避免或緩解未初始化值。最後,SafeInit優化器提供了非侵入式轉換和優化,它們與現有的編譯器優化(必要時自行修改)以及最終組件(現有「死存儲消除」優化的擴展)一塊兒運行。這些構建在咱們的初始化傳遞和分配器之上,執行更普遍的刪除沒必要要的初始化代碼,證實咱們的解決方案的運行時開銷能夠最小化。
(6)第六小組(郭開世):Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning
論文成果:
- 對線性迴歸模型的中毒攻擊及其對策進行了第一次系統研究。
- 提出了一個針對中毒攻擊和快速統計攻擊的新優化框架,該框架須要對培訓過程的瞭解不多。
- 採用原則性方法設計一種新的魯棒防護算法,該算法在很大程度上優於現有的穩健迴歸方法。
- 在醫療保健,貸款評估和房地產領域的幾個數據集上普遍評估做者提出的攻擊和防護算法。
- 在案例研究健康應用中證實了中毒攻擊的真實含義。
系統架構:
(7)第七小組(楊靜怡):Convolutional Neural Networks for Sentence Classification(卷積神經網絡用於句子分類)
文章成果:
提出一種將文本轉換爲相似圖像的矩陣,採用CNN來完成文本分類任務的方法,更多的利用到單詞的順序和語義特徵。
模型介紹
- 輸入矩陣
CNN輸入矩陣的大小取決於兩個因素:A.句子長度(包含的單詞的個數)B.每一個字符的長度。假設輸入X包含m個單詞,而每一個單詞的字嵌入(Word Embedding)長度爲d,那麼此時的輸入就是md的二維向量。對於I like this movie very much!來講,當字嵌入長度設爲5時,輸入即爲75的二維向量。
- 卷積過程
假設輸入X包含m個單詞,而每一個單詞的字嵌入(Word Embedding)長度爲d,那麼此時的輸入就是md的二維向量。對於I like this movie very much!來講,當字嵌入長度設爲5時,輸入即爲75的二維向量。
A.filter_size表明卷積核縱向上包含單詞個數,即認爲相鄰幾個詞之間有詞序關係,代碼裏使用的是[3,4,5]。
B.embedding_size就是詞向量的維數。每一個卷積覈計算完成以後咱們就獲得了1個列向量,表明着該卷積核從句子中提取出來的特徵。有多少卷積核就能提取出多少種特徵。
- 池化過程
文章使用MaxPooling的方法對Filter提取的特徵進行降維操做,造成最終的特徵。每一個卷積的結果將變爲一個特徵值,最終生成一個特徵向量。
實驗結論
- CNN-rand:全部的word vector都是隨機初始化的,同時當作訓練過程當中優化的參數;
- CNN-static:全部的wordvector直接使用無監督學習即Google的word2vector工具獲得的結果,而且是固定不變的;
- CNN-non-static:全部的wordvector直接使用無監督學習即Google的word2vector工具獲得的結果,可是會在訓練過程當中被微調;
- CNN-multichannel:CNN-static和CNN-non-static的混合版本,即兩種類型的輸入。
2 感想和體會
《密碼與安全新技術專題》這門課程開拓了個人視野,讓我瞭解到不少安全相關的技術和研究方向,經過這門課程我發現人工智能技術與安全技術的交叉融合的熱度遠遠超出個人想象。老師們的講解讓咱們對不一樣的領域有了更多的瞭解,王老師爲咱們做業中提出的建議也讓咱們對學習方法如何更好的學習有了新的認識,感謝各位老師的辛苦付出!老師安排的最後這個頂會論文閱讀復現的任務也讓我收穫了不少,從選題到閱讀文章到調試代碼都有很大的收穫,此次選的題目和編譯器架構有關,在閱讀過程當中很是困難,經過查閱資料以及其餘同窗的幫助下咱們理解了這篇文章,雖然最後沒能成功復現,可是這個研究過程讓我受益不淺。
3 對本課程的建議和意見
- 課前能夠收集一下同窗們想了解的內容
- 課上能夠多一些實踐演示與互動