2019年密碼與安全新技術講座-課程總結報告

1、教師講座內容總結

講座1、Web安全與內容安全

在本次講座中,張健毅老師就Web安全與內容安全主題分了三大部分進行了講解。分別爲網絡應用安全、信息安全問題、隱私安全問題。網絡應用安全主要指SQL注入、XSS跨站腳本攻擊、CSRF跨站請求僞造等;信息安全問題主要講因爲當前信息化發展進入了新的階段而產生的攻防非對稱問題;隱私安全問題指許多企業和公司對用戶軌跡分析。課下正好參加了CTF比賽,比賽中涉及了一些機器學習在web安全方面的應用。主要在漏洞分析與挖掘、惡意代碼分析、垃圾郵件檢測等安全問題中,經過機器學習算法創建攻防模型。javascript

常見的web漏洞

SQL注入攻擊

因爲程序中對用戶輸入檢查不嚴格,用戶能夠提交一段數據庫查詢代碼,根據程序返回的結果,得到某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。html

  • 按提交字符類型可分爲: 數字型 字符型 搜索型
  • 按HTTP提交方式可分爲: GET、POST、Cookie javascript:alert(document.cookie="id="+escape("x"))
  • 按注入方式可分爲: 盲注 、 union注入、 報錯注入
  • 編碼問題:寬字節注入(構造[`])
XSS跨站腳本攻擊

XSS, 即爲(Cross Site Scripting), 中文名爲跨站腳本, 是發生在目標用戶的瀏覽器層面上的,當渲染DOM樹的過程成發生了不在預期內執行的JS代碼時,就發生了XSS攻擊。跨站腳本的重點不在‘跨站’上,而在於‘腳本’上。大多數XSS攻擊的主要方式是嵌入一段遠程或者第三方域上的JS代碼。其實是在目標網站的做用域下執行了這段js代碼。惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。主要分爲反射型XSS、存儲型XSS。前端

CSRF跨站請求僞造

SRF(Cross-site request forgery)跨站請求僞造 。
攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF可以 作的事情包括:以你名義發送郵件,發消息,盜取你的帳號, 甚至於購買商品,虛擬貨幣轉帳......形成的問題包括:我的隱私 泄露以及財產安全。java

驗證不充分之上傳漏洞
  • 客戶端檢測(javascript擴展名檢測)
    • 瀏覽器禁用JavaScript
  • 服務端檢測(MIME類型檢測)
    • 僞造Content-type: image/gif
  • 服務端檢測(文件頭檢測)
    • 僞造文件頭(GIF89a)
  • 服務端檢測(目錄路徑檢測)
    • %00截斷
  • 服務端檢測(文件擴展名檢測)
    • ①白名單 ②黑名單

講座2、量子密碼

在本次講座中,孫瑩老師就量子密碼基礎知識和最新相關的研究進展作了詳盡的講解。老師先從公鑰密碼體制、混合密碼體制兩種密碼體制引出量子密碼的研究背景。接着就量子基本概念,量子、量子態、量子比特的測量、量子密鑰分配作了講解。最後講解了典型協議和基本模型介紹。web

量子的概念

量子(quantum)是現代物理的重要概念。最先是由德國物理學家M·普朗克在1900年提出的。他假設黑體輻射中的輻射能量是不連續的,只能取能量基本單位的整數倍,從而很好地解釋了黑體輻射的實驗現象。
後來的研究代表,不但能量表現出這種不連續的分離化性質,其餘物理量諸如角動量、自旋、電荷等也都表現出這種不連續的量子化現象。這同以牛頓力學爲表明的經典物理有根本的區別。量子化現象主要表如今微觀物理世界。描寫微觀物理世界的物理理論是量子力學。
一個物理量若是存在最小的不可分割的基本單位,則這個物理量是量子化的。量子是能表現出某物質或物理量特性的最小單元。算法

量子通訊

量子密鑰分發能夠創建安全的通訊密碼, 經過一次一密的加密方式能夠實現點對點方式的安全經典通訊. 這裏的安全性是在數學上已經得到嚴格證實的安全性, 這是經典通訊迄今爲止作不到的。現有的量子密鑰分發技術能夠實現百千米量級的量子密鑰分發, 輔以光開關等技術, 還能夠實現量子密鑰分發網絡。 量子態隱形傳輸是基於量子糾纏態的分發與量子聯合測量, 實現量子態(量子信息) 的空間轉移而又不移動量子態的物理載體, 這如同將密封信件內容從一個信封內轉移到另外一個信封內而又不移動任何信息載體自身. 這在經典通訊中是沒法想象的事. 基於量子態隱形傳輸技術和量子存儲技術的量子中繼器能夠實現任意遠距離的量子密鑰分發及網絡。sql

量子態

  • 量子態即一組量子表徵,用來表示量子力學某一粒子的運動狀態。
  • 量子糾纏:在量子力學裏,當幾個粒子在彼此相互做用後,因爲各個粒子所擁有的特性已綜合成爲總體性質,沒法單獨描述各個粒子的性質,只能描述總體系統的性質,則稱這現象爲量子纏結或量子糾纏(quantum entanglement)。量子糾纏是一種純粹發生於量子系統的現象;在經典力學裏,找不到相似的現象。
  • 量子計算的特色:
    • 量子計算具備並行性
    • 未知量子態不可克隆
    • 未知量子態不可準確測量
    • 對未知量子態的測量可能會改變量子態

量子密碼簡介

密碼體制
  • 用公鑰密碼體制分發會話祕鑰
  • 用對稱密碼體制加密數據
量子密碼
  • Shor算法:大數分解算法
  • qGrover算法:快速搜索算法
計算能力對比
  • 經典方法:運算時間隨輸入長度指數增加
  • 量子方法:運算時間按多項式增加

典型協議和基本模型

BB84量子祕鑰分配協議數據庫

  • 量子通訊:採用BB84協議,傳送量子態光子(量子密鑰),運用一次一密的加密手段。爲了實現量子通訊,採用經典信道和量子信道同時使用的模式。
  • 經典信道:傳送同步信號、對照數據等。
傳送過程爲
  • 1:量子通訊編程

    • Alice從四種偏振態中隨機選擇發送給Bob。
    • 接收者Bob接受信息發送方Alice傳輸的信息,並從兩組測量基中隨機選擇一個對接收到的光子的偏振態進行測量。
  • 2:經典通訊後端

    • 接收者Bob發送信息給信息發送方Alice並告知他本身在哪些量子比特位上使用了哪個測量基。信息發送方Alice 在接收到Bob發送的消息以後,與本人發送時採用的基逐一比對並通知接收者Bob在哪些位置上選擇的基是正確的。
    • 信息發送方Alice和接收者Bob丟掉測量基選擇有分歧的部分並保存下來使用了同一測量基的粒子比特位,並從保存的信息中選取相同部分在經典信道中做對比。信道安全的狀況下信息發送方Alice和接收者Bob的數據應當是沒有分歧的。若存在竊聽,則Alice和Bob的數據會出現不一樣的部分。
    • 若是沒有竊聽,雙方將保留下來的剩餘的位做爲最終密鑰。
    • 假如Eve進行竊聽,根據物理學中的測不許原理等基本物理規律竊聽者的竊聽行爲確定會使Bob的QBER值發生變化,這時,通訊雙方經過誤碼率的分析就能發現竊聽者是否存在。
監聽檢測
  • 通常手段:隨機選擇部份量子載體,比較初末狀態
  • 對好的協議:竊聽必然干擾量子態,進而引入錯誤
    • 一旦發現錯誤率較高即存在竊聽,則終止通訊,丟棄相關數據
    • 由於傳輸的是祕鑰,丟棄祕鑰不會泄密
  • 針對於噪聲問題
    • 設定一個閾值,當錯誤率高於這個閾值時丟棄通訊數據,反之保留。
    • 保密加強:經過壓縮祕鑰長度,將Eve可能得到的部分祕鑰信息壓縮至任意小,得到安全祕鑰。
  • 提升實際系統的抗攻擊能力:誘騙態和設備無關態。

講座3、人工智能與密碼分析設計

在本次講座中,金鑫老師經過密碼分析與機器學習、深度學習簡介與現狀、深度學習與密碼分析、深度學習與密碼設計四個方面講解基於深度學習的密碼分析與設計初探。在深度學習與密碼設計重點講解了GAN原理與密碼算法的結合。

技術背景

  • 用AI和ML解決安全問題(讓安全更智能):
    計算機取證、垃圾郵件檢測、身份驗證、網絡釣魚檢測與預防、僵屍網絡監測、入侵檢測和響應、異常行爲檢測、惡意軟件標識、數據匿名/反匿名、社會網絡安全、大數據安全分析等。
  • 用安全性解決A問題(讓AI更安全):
    分佈式安全推理與決策、安全的多方計算和加密方法、隱私保護數據挖掘、差別隱私、驗證碼的設計與分析、人工智能信任和聲譽方法、經過智能探測進行漏洞測試、生成訓練和測試集的技術和方法等。

深度學習與密碼分析

  1. 神經網絡的側信道攻擊
  2. 基於循環神經網絡的明文破譯
  3. 基於生成對抗網絡的口令破譯
  4. 基於深度神經網絡的密碼基元識別

深度學習與密碼設計

密碼設計主要借用GAN的思路。
生成式對抗網絡(GAN, Generative Adversarial Networks)是一種深度學習模型,是近年來複雜分佈上無監督學習最具前景的方法之一。模型經過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學習產生至關好的輸出。
密碼組件通過生成對抗網絡中的算法生成器,獲得設計出來的密碼算法,同時密碼破解器將對此密碼算法進行破解,算法生成器和密碼破解器就這樣在相互博弈中學習產生出好的算法和好的破解方法。

講座4、信息隱藏

在本次講座中,夏超老師講解了信息隱藏的四個方面,分別爲魯棒水印、可視密碼、隱寫、隱寫分析四個方面。

信息隱藏

信息隱藏是指將特定用途的信息隱蔽地藏於其餘載體(Cover)中,使得它們難以被發現或者消除,經過可靠提取隱藏的信息,實現隱蔽通訊、內容認證或內容保護功能。

魯棒水印

魯棒水印是重要的數字產權管理與安全標識技術之一,指將與數字媒體版權或者購買者有關的信息嵌入數字媒體中,使攻擊者難以在載體不遭到顯著破壞狀況下消除水印,而受權者能夠經過檢測水印實現對安全全部者或者內容購買者等信息的認定。

可視密碼

可視密碼技術使Naor和Shamir於1994年首次提出的,其主要特色是恢復祕密圖像時不須要任何複雜的密碼學計算,而是以人的視覺便可將祕密圖像辨別出來。其作法是產生n張不具備任何意義的膠片,任取其中t張膠片疊合在一塊兒便可還原出隱藏在其中的祕密信息。

隱寫
  • 隱寫是基於信息隱藏的隱蔽通訊或者隱蔽存儲方法,將祕密信息難以感知地隱藏在內容可公開的載體中,保護保密通訊或者保密存儲這些行爲事實。
  • 稱隱寫後的載體爲隱寫媒體Stego。

隱寫

  • LSB嵌入
  • 矩陣嵌入
  • 自適應隱寫
    • 空域自適應隱寫
    • JPEG域自適應隱寫

隱寫分析

  • 高維隱寫分析特徵
    高維隱寫分析特徵能夠儘量多地捕獲隱寫對圖像統計特性的影響。
  • 空域高維隱寫分析特徵:
    • JPEG圖像解壓到空域,以前的JPEG圖像隱寫分析特徵都是在DCT係數上提取的。由於空域提取的特徵對JPEG圖像自適應隱寫更爲敏感。
    • 利用了相位信息(JPEG phase),因此被稱爲JPEG-phase-aware特徵。
  • 選擇信道高維隱寫分析特徵

講座5、區塊鏈

在本次講座中,張健毅老師講解了區塊鏈的概念、技術和將來。

區塊鏈

狹義來說,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可僞造的分佈式帳本。廣義來說,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分佈式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操做數據的一種全新的分佈式基礎架構與計算方式。

區塊鏈的架構模型

區塊鏈系統由數據層、網絡層、共識層、激勵層、合約層和應用層組成。 其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎數據和基本算法;網絡層則包括分佈式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點的各種共識算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各種腳本、算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各類應用場景和案例。該模型中,基於時間戳的鏈式區塊結構、分佈式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具表明性的創新點。

比特幣

比特幣由區塊鏈完成,用數字加密算法、全網抵禦51%算力攻擊保證資產與交易的安全。交易記錄以被全體網絡計算機收錄維護,每筆交易的有效性都必須通過區塊鏈檢驗確認。區塊回報每產出21萬個區塊減半一次,大約4年,最近一次減半在2016年7月9日,而此種收斂等比數列的和必然是有限的,到2140年時,將再也不有新的比特幣產生,最終流通中的比特幣將老是略低於2100萬個。截至2018年3月,比特幣供應量約1700萬個,實際的流通量還會由於私鑰丟失等因素更加減小。

比特幣交易


機制:每一位全部者(A)利用他的私鑰對前一次交易T1和下一位全部者(B)的公鑰(俗稱:地址)簽署一個隨機散列的數字簽名,A將此數據簽名製做爲交易單T2並將其(交易單T2)廣播全網,電子貨幣就發送給了下一位全部者。
Block

  • 比特幣網絡中,數據以文件的形式被永久記錄,稱之爲區塊(Block)。
  • 記錄交易單的數據單元叫作Block,一個Block上會記錄不少交易單。
  • Block有不少份,每一個Block只記錄比特幣全網10分鐘內的交易信息,每約10分鐘產生一個新的Block。
  • 每一個新的Block含有的必定數額的比特幣歸建立者全部,此規則稱爲「激勵」。
挖礦工做

生產Block的過程,被形象的稱爲「挖礦」,生產工也被稱爲「礦工」。
挖礦過程實際上就是反覆去嘗試尋找一個隨機數(又稱「幸運數」),使得將最後一個Block的hash值、當前世界中還沒有被加入到任何Block的交易單、隨機數三部分組織起來送入SHA256算法計算出散列值X(256位),若是X知足必定條件(好比前20位均爲0),那麼該節點初步得到建立Block的權利。

POW

對於每一個Block存在一個難度係數,此係數能夠轉換爲一個256位的整數,挖礦計算出的Hash值X必須小於該整數,此條件做爲尋找隨機數的附加條件。
當某時刻網絡檢測到新Block的產生速度不符合約10分鐘一個時,將調解該係數(加大或者縮小),從而使下一個Block的產生速度符合預期。

每當節點(礦工)計算出了一個符合條件的隨機數時,它僅僅得到了建立臨時Block的權利,它當即將相關數據打包好做爲一個臨時Block並廣播全網。
每10分鐘內全網不止一個節點能計算出幸運數字,即十分鐘內會有多個節點在網絡中廣播它們各自打包好的臨時Block(都是合法的)。經過誰先計算出誰後計算出來決定接受誰的臨時Block轉正顯然很難作到,由於全部節點的時間不可能嚴格一致(並且能夠任意被調節),並且網絡傳輸有快有慢。

Block鏈分支

某一節點若收到多個針對同一前續Block的後續臨時Block,則該節點會在本地Block鏈上創建分支,多個臨時Block對應多個分支。
從block hash算法咱們知道,合理的block並非惟一的,同一高度存在多個block的可能性。那麼,當同一個高度出現多個時,主鏈即出現分叉(Fork)。遇到分叉時,網絡會根據下列原則選舉出Best Chain:

  • 不一樣高度的分支,老是接受最高(即最長)的那條分支
  • 相同高度的,接受難度最大的
  • 高度相同且難度一致的,接受時間最先的
  • 若全部均相同,則按照從網絡接受的順序
  • 等待Block Chain高度增一,則從新選擇Best Chain
分支博弈

咱們假設全部的節點都是理性的,追求收益最大化;都是不誠實的,且不惜任何手段獲取利益;全部節點均獨自挖礦不理會其餘節點,並將所得收益放入本身口袋,現象就是一個節點挖一個分支。因爲機器的配置老是有差異的,那麼算力最強的節點挖得的分支必然是最長的,若是一個節點的分支不是最長的,意味其收益存在不被承認的風險(即零收益)。爲了下降、逃避此風險,一些節點確定會聯合起來一塊兒挖某個分支,試圖成爲最長的分支或保持最長分支優點。
一旦出現有少許的節點聯合,那麼其餘節點必然會效仿,不然他們收益爲零的風險會更大。因而,分支迅速合併聚集,全部節點都會選擇算力更強的分支,只有這樣才能保持收益風險最小。最終,只會存在一個這樣的分支,就是主幹分支(Best/Main Chain)。
對於不誠實節點來講,結局是無奈的:能且只能加入主幹挖礦。不加入即意味被拋棄,零收益;加入就是老實幹活,按佔比分紅。

區塊鏈與將來

區塊鏈將來主要起着貨幣、合約、治理做用。
在貨幣方面會涉及貨幣的發行機制、貨幣的分配機制、貨幣的幣值調節機制。
在合約方面會涉及股權、債權、證券與金融合約、互助保險、權利的登記、轉讓、博彩、防僞、物聯網、智能合約。
在治理方面會涉及身份認證、公證、見證、司法仲裁、投票、健康管理、人工智能、去中心化自治組織。

講座6、安全漏洞利用與挖掘

在本次講座中,王志強老師從安全漏洞利用與挖掘角度來說解。首先講了安全漏洞的定義以及最近一些安全漏洞引起的重大事件。接着講了不一樣類型的漏洞挖掘技術。最後結合實例路由器協議漏洞挖掘,並在課堂展現了NFC打開手電筒的漏洞。

安全漏洞介紹

  • 安全漏洞定義:
    指信息系統在設計、實現或者運行管理過程當中存在的缺陷或不足,從而使攻擊者可以在未受權的狀況下利用這些缺陷破壞系統的安全策略。
  • 安全漏洞事件
    • HeartBlood漏洞
    • Bash漏洞
    • 脫褲門:天涯、CSDN、人人、多玩、cnbeta、QQ關係數據庫、攜程;
    • 棱鏡門

漏洞挖掘技術

常見漏洞挖掘技術以下:手工測試、補丁比對、程序分析、二進制審覈、模糊測試

  1. 手工測試:由測試人員手工分析和測試被測目標,發現漏洞的過程,是最原始的漏洞挖掘方法。
    • 優勢:人的主觀能動性,能夠根據經驗找到不少不明顯、複雜不易見的漏洞。
    • 缺點:無規律可循、不可大規模進行等。
  2. 補丁對比:一種經過對比補丁之間的差別來挖掘漏洞的技術。補丁技術是實際漏洞挖掘中運用得十分廣泛,對於定位漏洞的具體位置、尋找漏洞解決方式具備十分積極的現實意義。
    • 優勢:發現速度快
    • 缺點:已知漏洞
    • 經常使用工具:PatchDiff二、bindiff
  3. 程序分析:是指在不運行計算機程序的條件下,經過詞法分析、語法分析、語義分析、控制流分析、污點分析等技術對程序代碼進行掃描,驗證代碼是否知足規範性、安全性等指標的一種代碼分析技術。
    • 優勢:漏洞檢測範圍大,覆蓋率達100%,自動化程度高
    • 缺點:存在漏報和誤報的可能性
    • 數據流分析:Fortify SCA、Coverity Prevent、FindBugs等
    • 污點分析:Pixy、TAJ(基於WALA)
    • 符號執行:Clang、KLEE
    • 模型檢測:BLAST、MAGIC、MOPS
  4. 動態程序分析:在運行計算機程序的條件下,驗證代碼是否知足規範性、安全性等指標的一種代碼分析技術。
    • 通常經過插樁技術分析程序的異常行爲。插樁技術是指在保證被測程序邏輯完整性的基礎上在程序的關鍵位置插入一些「樁」,即加入一些測試代碼,而後執行插樁後的程序,經過「樁」的執行獲取程序的控制流和數據流信息,進而分析程序的異常行爲。
    • 優勢:自動化程度高、覆蓋率較高
    • 缺點:漏報和誤報、冗餘代碼致使時間開銷增大
    • 工具: Android——Xposed
  5. 二進制審覈:源代碼不可得,經過逆向獲取二進制代碼,在二進制代碼層次上進行安全評估
    • 存在問題:逆向會致使信息丟失,理解困難,甚至引入邏輯錯誤
    • 二進制及編輯工具: IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
  6. 模糊測試:經過向被測目標輸入大量的畸形數據並監測其異常來發現漏洞
    • 關鍵:測試用例構造,自動化
    • 優勢:無需源碼、誤報低、自動化程度高
    • 缺點:覆蓋率低
    • 工具:Peach、Sulley、Autodafe、SPIKE等

2、各小組講座內容總結

第一組Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale

背景

絕大多數Android惡意軟件都是從新打包的應用程序,通過觀察結果也代表,惡意從新打包的應用程序是Android惡意軟件的支柱。

方法

本文提出了一個市場或跨市場上檢測從新包裝的Android惡意軟件MassVet,框架檢測的範圍包括

整個MassVet框架圖:

MassVet首先處理全部的應用程序,包括用於查看結構的數據庫和用於數據庫的數據庫。兩個數據庫都通過排序以支持二進制搜索,並用於審覈提交到市場的新應用程序。考慮一個從新包裝的AngryBird。一旦上載到市場,它首先在預處理階段自動拆解成一個小型表示,從中能夠識別其接口結構和方法。它們的功能(用於視圖,用戶界面,小部件和事件的類型,以及方法,控制流程和代碼)經過計算映射到v核和m核分別是視圖和控制流的幾何中心。應用程序的v-cores首先用於經過二進制搜索查詢數據庫。一旦匹配知足,當存在具備相似的AngryBird用戶界面結構的另外一個應用程序時,將從新打包的應用程序與方法級別的市場上的應用程序進行比較以識別它們的差別。而後自動分析這些不一樣的方法(簡稱差別)以確保它們不是廣告庫而且確實是可疑的,若是是,則向市場報告。當沒有任何東西2時,MassVet繼續尋找方法數據庫中的AngryBird的m核心。若是找到了相似的方法,咱們的方法會嘗試確認包含方法的app確實與提交的AngryBird無關,而且它不是合法的代碼重用。在這種狀況下,MassVet報告認爲是使人感到滿意的。全部這些步驟都是徹底徹底自動化,無需人工干預。

特徵提取,將UI結構建模爲視圖,這個視圖是一個有向加權圖,包括應用程序中的全部視圖以及它們之間的導航關係。在這樣的圖上,每一個節點都是一個視圖,其活動小部件的數量做爲其權重,而且鏈接節點的網絡描述了由它們之間的關係。根據其類型的事件,邊緣能夠彼此區分,這樣的視圖能夠有效的描述具備至關複雜的UI結構的APP。視圖的幾何中心,稱爲v-core.
DiffCom分析

對於經過批量審查流程的應用程序,視圖分析首先肯定它是否與市場上已有的應用程序相關。若是是這樣,將進一步比較這兩個應用程序,以肯定其惡意軟件分析的差別。不然,將在方法級別針對整個市場檢查應用程序,以嘗試找到與其餘應用程序共享的程序組件。進一步檢查差別和公共組件以刪除公共代碼重用(庫,示例代碼等)並收集其安全風險的證據。這種「差別 - 共性」分析由DiffCom模塊執行。 咱們還提供了有效的代碼類似性分析器的實體,並討論了DiffCom的規避。

第二組Spectre Attacks: Exploiting Speculative Execution

背景

一般,處理器不知道程序的將來指令流。例如,當無序執行執行條件分支指令時,會發生這種狀況,該條件分支指令的方向取決於其執行還沒有完成的先前指令。在這種狀況下,處理器能夠保存包含其當前寄存器狀態的檢查點,對程序將遵循的路徑進行預測,並沿路徑推測性地執行指令。若是預測結果是正確的,則不須要檢查點,而且在程序執行順序中退出指令。不然,當處理器肯定它遵循錯誤的路徑時,它經過從檢查點從新加載其狀態並沿着正確的路徑繼續執行來放棄沿路徑的全部待處理指令。執行放棄指令,以便程序執行路徑外的指令所作的更改不會對程序可見。所以,推測執行維護程序的邏輯狀態,就好像執行遵循正確的路徑同樣。

幽靈攻擊

幽靈攻擊涉及誘使受害者推測性地執行在正確的程序執行期間不會發生的操做,而且經過旁路分支將受害者的機密信息泄露給攻擊者。論文中的幽靈攻擊結合了側信道攻擊,故障攻擊和麪向返回編程的方法,能夠從受害者的進程中讀取任意內存。更普遍地說,論文說明了推測性執行實施違反了許多軟件安全機制所依據的安全假設,包括操做系統進程分離,靜態分析,容器化,即時(JIT)編譯以及緩存時序/側通道的對策攻擊。因爲在數十億設備中使用的Intel,AMD和ARM微處理器中存在易受攻擊的推測執行能力,這些攻擊對實際系統構成嚴重威脅。

案例展現

下面這段代碼中,攻擊者首先使用有效的x調用相關代碼,訓練分支預測器判斷該if爲真。 而後,攻擊者設置x值在array1_size以外。 CPU推測邊界檢查將爲真,推測性地使用這個惡意x讀取array2 [array1 [x] * 256]。 讀取array2使用惡意x將數據加載到依賴於array1 [x]的地址的高速緩存中。當處理器發現這個if判斷應該爲假時,從新選擇執行路徑,但緩存狀態的變化不會被恢復,而且能夠被攻擊者檢測到,從而找到受害者的存儲器的一個字節。

運行結果:

第三組All Your GPS Are Belong To Us:Towards Stealthy Manipulation of Road Navigation Systems

背景

道路導航系統進行隱身操縱攻擊的可行性。目標是觸發假轉向導航,引導受害者到達錯誤的目的地而不被察覺。

攻擊思路

略微改變GPS位置,以便假冒的導航路線與實際道路的形狀相匹配並觸發實際可能的指示。

貢獻

本篇論文共作出三點貢獻:

  1. 提出了一種祕密操縱道路導航系統的攻擊方法。該算法利用了現實中出租車行駛軌跡,並對算法進行了普遍的評估。
  2. 咱們實現了攻擊算法和一個低成本的便攜式GPS欺騙器.在道路上的實際測量和駕駛測試證明了攻擊的可行性。
  3. 咱們進行了一項用戶調查研究,以證實在道路行駛過程當中人爲的因素能夠影響攻擊是否成功。這些結果代表,有些司機常見的駕駛習慣大機率會讓他們遭受到GPS欺騙攻擊,並對結果進行了分析和提出了相應的對策。

第四組With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning

背景

  1. 遷移學習:高質量模型的訓練須要很是大的標記數據集,小型公司沒有條件訓練這麼大的數據集或者沒法獲得這麼大的數據集,每每採用遷移學習。第三小組介紹了遷移學習攻擊:一個小型公司借用大公司預訓練好的模型來完成本身的任務。咱們稱大公司的模型爲「教師模型「,小公司遷移教師模型並加入本身的小數據集進行訓練,獲得屬於本身的高質量模型」學生模型」。
  2. 黑/白盒攻擊:白盒攻擊是攻擊者可以獲知分類器的內部體系結構及全部權重。它容許攻擊者對模型進行無限制的查詢,直至找到一個成功地對抗性樣本。這種攻擊經常在最小的擾動下得到接近100%的成功,由於攻擊者能夠訪問深度神經網絡的內部結構,因此他們能夠找到誤分類所需的最小擾動量。然而白盒攻擊通常被認爲是不切實際的,由於不多會有系統公開其模型的內部結構。黑盒攻擊是攻擊者不知道受害者的內部結構,攻擊者要麼嘗試反向工程DNN的決策邊界,建一個複製品用於生成對抗樣本,要麼反覆查詢生成中間對抗樣本並不斷迭代改進。黑盒攻擊容易被防護。

攻擊思路

  1. 將target圖狗輸入到教師模型中,捕獲target圖在教師模型第K層的輸出向量
  2. 對source圖加入擾動,使得加過擾動的source圖(即對抗樣本)
  3. 在輸入教師模型後,在第K層產生很是類似的輸出向量。
  4. 因爲前饋網絡每一層只觀察它的前一層,因此若是咱們的對抗樣本在第K層的輸出向量能夠完美匹配到target圖的相應的輸出向量,那麼不管第K層以後的層的權值如何變化,它都會被誤分類到和target圖相同的標籤。
  5. 計算擾動借用DSSIM、GAN的思想,來使擾動不易被人眼察覺。

復現結果

左圖爲source image,中圖爲加過擾動的對抗樣本,右圖爲其要誤分類成的target image。

第五組safeinit:Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities

背景

  1. 未初始化漏洞:未初始化值的使用仍然是C / C ++代碼中的常見錯誤。這不只致使未定義的和一般不指望的行爲,並且還致使信息泄露和其餘安全漏洞。
  2. 未定義行爲:簡單地說,未定義行爲是指C語言標準未作規定的行爲。編譯器可能不會報錯,可是這些行爲編譯器會自行處理,因此不一樣的編譯器會出現不一樣的結果,什麼都有可能發生,這是一個極大的隱患,因此咱們應該儘可能避免這種狀況的發生。

攻擊思路

  1. llvm/clang架構:LVM包括了一個狹義的LLVM和一個廣義的LLVM。廣義的LLVM其實就是指整個LLVM編譯器架構,包括了前端、後端、優化器、衆多的庫函數以及不少的模塊;而狹義的LLVM其實就是聚焦於編譯器後端功能(代碼生成、代碼優化等)的一系列模塊和庫。Clang是一個C++編寫、基於LLVM的C/C++/Objective-C/Objective-C++編譯器。Clang是一個高度模塊化開發的輕量級編譯器,它的編譯速度快、佔用內存小、很是方便進行二次開發。
  2. safeinit架構:編譯器在得到C/C++文件後,編譯器前端將源文件轉換爲中間語言(IR),經過初始化、代碼優化結合現存編譯器的優化器,以後經過無效數據消除、強化分配器最後得到二進制文件。Safeinit在整個過程當中所添加的就是 初始化所有變量、優化以及強化分配器,來避免或緩解未初始化值。最後,SafeInit優化器提供了非侵入式轉換和優化,它們與現有的編譯器優化(必要時自行修改)以及最終組件(現有「死存儲消除」優化的擴展)一塊兒運行。

實驗結果

下表提供了每一個基準測試的allocas數量(表示局部變量的數量,偶爾的參數副本或動態分配)的詳細信息。 該表還提供了(剝離的)二進制大小; 在許多狀況下,初始化的影響對最終的二進制大小沒有任何影響,而且在最壞的狀況下它是最小的。#INITS是現有編譯器優化以後剩餘的大量初始化數量,而且咱們的優化器已經分別運行。

第六組Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning

攻擊思路

理想世界:學習過程包括執行數據清理和標準化的數據預處理階段,以後能夠表示訓練數據;
測試階段:模型在預處理後應用於新數據,並使用在訓練中學習的迴歸模型生成數值預測值;
對抗性世界:在中毒攻擊中,攻擊者在訓練迴歸模型以前將中毒點注入訓練集。

實現結果

  • 對三個數據集進行嶺迴歸攻擊的MSE,論文提出的新優化(OptP)和統計(StatP)攻擊比基線更有效。OptP是根據表I的最佳最佳優化攻擊。
  • 在三個數據集上攻擊LASSO的MSE,發現StatP和OptP可以很是有效地毒害數據集,因爲基線(bgd)。OptP是根據表I的最佳優化攻擊。

第七組Convolutional Neural Networks for Sentence Classification

背景

這篇論文主要研究用於句子分類的卷積神經網絡(CNN)的實驗,這些實驗是在預先訓練過的單詞向量的基礎上訓練的。一個簡單的CNN具備不多的超參數調整和靜態向量,在多個基準點上都能達到很好的效果。經過微調學習特定於任務的向量能夠進一步提升性能。

CNN作句子分類的優點

  • 特徵提取的高效性
  • 數據格式的簡易性
  • 參數數目的少許性

實驗結論

  • CNN-rand:全部的word vector都是隨機初始化的,同時當作訓練過程當中優化的參數;
  • CNN-static:全部的word vector直接使用無監督學習即Google的word2vector工具獲得的結果,而且是固定不變的;
  • CNN-non-static:全部的word vector直接使用無監督學習即Google的word2vector工具獲得的結果,可是會在訓練過程當中被微調;
  • CNN-multichannel:CNN-static和CNN-non-static的混合版本,即兩種類型的輸入。

3、感想與體會

  1. 之前對密碼和安全的見解只以爲安全對平常用戶的影響不大,通過一學期的學習發現,安全涉及到咱們的平常生活、學習等各個方面。安全是各個領域的基礎。好比比特幣正是由於其安全性才能夠有充當貨幣的性質。
  2. 這門課有不少講座都是學科之間相互交叉融合,拓展了咱們的視野。每節課要求讀論文的環節使得對該方向最新的趨勢也有必定的掌握。

4、對本課程的建議和意見

  1. 論文復現的工做能夠儘早佈置下來,學生能夠有不少時間選擇並實現。
相關文章
相關標籤/搜索