課程:《密碼與安全新技術專題》html
班級: 201892
姓名: 郭開世
學號:20189221
上課教師:謝四江
上課日期:2019年2月26日——2019年6月4日
必修/選修: 選修git
典型攻擊方式:高等持續性攻擊(APT):2010年6月震網(stuxnet)攻擊⇒物理隔離是不安全的,第三方惡意代碼注入:2015年9月Xcode Ghost⇒底層開發軟件在編譯過程攻擊,上帝攻擊模式(GPT):基於全球全網大數據能力對用戶進行用戶畫像。github
威脅方-防禦方的非對稱性:攻防技術非對稱,攻防成本非對稱和攻防主體非對稱。web
常見的Web漏洞:SQL注入:輸入驗證不足或Web應用程序中SQL語句構造不當,跨站腳本攻擊漏洞,cookie欺騙,CSPF(跨站請求僞造),web信息泄露,權限問題,邏輯漏洞,第三方程序漏洞,web服務器解析漏洞,弱口令,SSRF。算法
在此次課程做業中,我對SQL Injection這一方面進行了一些論文閱讀。對SQL注入有了一些瞭解。數據庫
常見的SQL注入攻擊有:重言式(tautology),非法/邏輯錯誤查詢(illegal/logically incorrect queries),聯合查詢(union query),堆疊查詢(Stacked Queries),條件陳述和存儲過程(stored procedures)等。編程
常見的SQL檢測與預防有:靜態分析(Static Analysis),動態分析(Dynamic Analysis)和組合方法(Combined Approach)。設計模式
量子密碼體制使用:
主要用於黨政機關,實際使用中僅負責密鑰分發。api
量子密碼算法:
- shor算法:提出大數分解,能在多項式時間內分解大數。受影響最大的密碼體制爲RSA等大數公鑰密碼
- Grover算法:提出搜索無序數據庫量子算法,快速搜索算法。使密鑰搜索的時間複雜度在二次加速的基礎上獲得了進一步的提速。緩存
量子密碼特色:
在此次課程做業中,我對量子密碼技術的最新研究現狀有了一些瞭解。
單光子量子點的傳輸:
深度學習與密碼分析
深度學習與密碼設計
生成對抗網絡設計密碼
研究人員MartínAbadi和David Andersen證實神經網絡或「神經網絡」 - 鬆散地基於人工神經元的計算系統 - 能夠解決如何使用簡單的加密技術。
在他們的實驗中,計算機可以使用機器學習進行本身的加密形式,而不須要教授特定的加密算法。加密是很是基礎的,特別是與咱們當前的人工設計系統相比。即使如此,它仍然是神經網絡的一個有趣的步驟,做者聲稱「一般並不意味着在密碼學方面很出色」。機器學習提供了一種解決方案,但並非一種簡單的方法來理解它是如何實現的。在實踐中,很難爲以這種方式建立的加密方法提供任何安全保證。
在此次課程做業中,我對生成對抗網絡比較感興趣。對GAN方向的論文進行了一些閱讀。
GAN的原理:
GAN的主要靈感來源於博弈論中零和博弈的思想,應用到深度學習神經網絡上來講,就是經過生成網絡G(Generator)和判別網絡D(Discriminator)不斷博弈,進而使G學習到數據的分佈,若是用到圖片生成上,則訓練完成後,G能夠從一段隨機數中生成逼真的圖像。G, D的主要功能是:
● G是一個生成式的網絡,它接收一個隨機的噪聲z(隨機數),經過這個噪聲生成圖像
● D是一個判別網絡,判別一張圖片是否是「真實的」。它的輸入參數是x,x表明一張圖片,輸出D(x)表明x爲真實圖片的機率,若是爲1,就表明100%是真實的圖片,而輸出爲0,就表明不多是真實的圖片
訓練過程當中,生成網絡G的目標就是儘可能生成真實的圖片去欺騙判別網絡D。而D的目標就是儘可能辨別出G生成的假圖像和真實的圖像。這樣,G和D構成了一個動態的「博弈過程」,最終的平衡點即納什均衡點.
GAN的特色:
● 相比較傳統的模型,他存在兩個不一樣的網絡,而不是單一的網絡,而且訓練方式採用的是對抗訓練方式
● GAN中G的梯度更新信息來自判別器D,而不是來自數據樣本
GAN 的優勢:
● GAN是一種生成式模型,相比較其餘生成模型(玻爾茲曼機和GSNs)只用到了反向傳播,而不須要複雜的馬爾科夫鏈
● 相比其餘全部模型, GAN能夠產生更加清晰,真實的樣本
● GAN採用的是一種無監督的學習方式訓練,能夠被普遍用在無監督學習和半監督學習領域
● 相比於變分自編碼器, GANs沒有引入任何決定性偏置( deterministic bias),變分方法引入決定性偏置,由於他們優化對數似然的下界,而不是似然度自己,這看起來致使了VAEs生成的實例比GANs更模糊
● 相比VAE, GANs沒有變分下界,若是鑑別器訓練良好,那麼生成器能夠完美的學習到訓練樣本的分佈.換句話說,GANs是漸進一致的,可是VAE是有誤差的
● GAN應用到一些場景上,好比圖片風格遷移,超分辨率,圖像補全,去噪,避免了損失函數設計的困難,無論三七二十一,只要有一個的基準,直接上判別器,剩下的就交給對抗訓練了。
GAN的缺點:
● 訓練GAN須要達到納什均衡,有時候能夠用梯度降低法作到,有時候作不到.咱們尚未找到很好的達到納什均衡的方法,因此訓練GAN相比VAE或者PixelRNN是不穩定的,但我認爲在實踐中它仍是比訓練玻爾茲曼機穩定的多
● GAN不適合處理離散形式的數據,好比文本
● GAN存在訓練不穩定、梯度消失、模式崩潰的問題(目前已解決)
生成對抗網絡(Generative Adversarial Network,簡稱GAN):
信息隱藏:
信息隱藏是將消息隱蔽的藏於載體中,實現隱蔽通訊,內容認證或內容保護等。
信息隱藏技術:魯棒水印 (Robust Water making),可視密碼(Visual Cryptography)以及隱寫( Steganography)
隱寫:LSB嵌入,矩陣嵌入,自適應隱寫,隱寫分析,高維特徵以及隱寫選擇信道。
隱寫術的優缺點:
隱寫分析:
數字隱寫分析就是經過隱寫技術或軟件對隱藏的數據進行檢測和取證的過程,可能的話,還會提取出被隱藏的載荷。若是被隱藏的載荷是加過密的,那麼隱寫分析就要對其進行破解。
主要採用如下兩個手段:
在課下我還深刻學習了JPEG圖像格式的Jphide隱寫、LSB隱寫以及Powload及壓縮包類隱寫。
Jphide是基於最低有效位LSB的JPEG格式圖像隱寫算法,使用JPEG圖像做爲載體是由於相比其餘圖像格式更不容易發現隱藏信息,由於JPEG圖像在DCT變換域上進行隱藏比空間域隱藏更難檢測,而且魯棒性更強,同時Blowfish算法有較強的抗統計檢測能力。
Jphide隱寫過程大體爲:先解壓壓縮JPEG圖像,獲得DCT係數;而後對隱藏信息用戶給定的密碼進行Blowfish加密;再利用Blowfish算法生成僞隨機序列,並據此找到須要改變的DCT係數,將其末位變爲須要隱藏的信息的值。最後把DCT係數從新壓回成JPEG圖片,下面是我的對隱寫過程理解畫出的大體流程圖。
LSB隱寫是最基礎、最簡單的隱寫方法,具備容量大、嵌入速度快、對載體圖像質量影響小的特色。
LSB的大意就是最低比特位隱寫。咱們將深度爲8的BMP圖像,分爲8個二值平面(位平面),咱們將待嵌入的信息(info)直接寫到最低的位平面上。換句話說,若是祕密信息與最低比特位相同,則不改動;若是祕密信息與最低比特位不一樣,則使用祕密信息值代替最低比特位。
在Powload的案例中,使用隱寫術來檢索包含惡意代碼的圖像。基於趨勢科技分析的Powload變體的代碼提取案例程序,Powload濫用公開可用的腳本(Invoke-PSImage)來建立包含其惡意代碼的圖像。
在此次課程做業中,我閱讀了一些行業大牛Jessica Fridrich的論文。
Jessica Fridrich確實在隱寫方面造詣極深。
比特幣的特色:數字貨幣,不依託於任何國家或組織而利用計算機技術獨立發行,經過P2P分佈式技術實現,無中心點,全部人都可自由的參與,總量有限,不可再生,自己機制開源,能夠被山寨。
區塊鏈的一些要素總結:
區塊鏈技術的4個基本性質:
區塊鏈技術發展的三個階段:
我的對區塊鏈技術的見解:
在本次的課程做業中,我對區塊鏈技術的研究現狀有了一些瞭解。
區塊鏈經過分佈式數據存儲和共識機制確保數據能夠被跟蹤而且不容易被篡改。它提供了一種思想和方案,以分散的方式創建信任關係,並在數字證書和身份認證領域受到普遍關注。 提出了第一個使用比特幣塊鏈系統做爲框架的分佈式PKI系統Certcoin,它至關於CA,提供有效的密鑰查詢服務。 使用區塊鏈存儲已發佈或已撤銷證書的哈希值。Axon 改進了Certcoin方案 並提出了PKI認證系統PB-PKI(基於區塊鏈的PKI中的隱私感知),用於隱私保護。凱倫等人。 基於以太網塊鏈平臺提出的PKI認證系統,無需CRL或OCSP便可執行撤銷檢查。松本介紹了經濟激勵方法,並提出了基於以太網及時響應的PKI IKP(Instant Karma PKI)。
BC(區塊鏈)是一種源自比特幣基礎技術的新技術系統。最先的定義來自Satoshi Takemoto在2009年發表的論文。BC具備許多技術特徵,例如分散化,不可能被篡改和僞造,這使其在確保信息可靠性,安全性,可追溯性和傳統技術的其餘方面具備無可比擬的優點。基於ABC的PKI系統確保寫入BC上的證書是可信的。它可用於跨多個組織發佈和管理自簽名數字證書,還可用於替換使用不一樣CA頒發證書的橋接CA鏈接的多個實例。
安全漏洞定義:指信息系統在設計、實現或者運行管理過程當中存在的缺陷或不足,從而使攻擊者可以在未受權的狀況下利用這些缺陷破壞系統的安全策略。
安全漏洞事件:openssl (心臟出血);bash:緣由是未檢查輸入邊界;脫褲門:主要包括天涯、CSDN、人人、多玩、cnbeta、QQ關係數據庫、攜程;棱鏡門;
漏洞挖掘示例
我在課下對模糊測試和NFC進行了一些瞭解:
模糊測試是一種介於徹底的手工滲透測試與徹底的自動化測試之間的安全性測試類型。它充分利用了機器的能力:隨機生成和發送數據;同時,也嘗試將安全專家在安全性方面的經驗引入進來。
從執行過程來講,模糊測試的執行過程很是簡單:
NFC主要應用於:啓動服務,將NFC用於「開啓」另外一種服務(例如爲數據傳輸開啓另外一條通訊連接);點到點,NFC能夠用於實現兩個裝置之間的通訊;付款和票務,將NFC搭建在新興的智能票務和電子付款基礎設施之上。
經過本次的課程做業,我對漏洞挖掘現狀有了一些瞭解。
真正進行漏洞挖掘須要具有的知識
從事漏洞挖掘工做須要具有的知識是極其普遍的,而且隨着時間在不斷改變,也取決於你所研究的對象(web程序、桌面程序、嵌入式等等)。不過,萬變不離其宗,所須要掌握的知識領域卻總能夠認爲是肯定的,我認爲大體能夠分爲如下四個方面:
通常漏洞挖掘框架:
做者:[Matthew Jagielski; Alina Oprea; Battista Biggio; Chang Liu; Cristina Nita-Rotaru; Bo Li
投稿:2018 IEEE Symposium on Security and Privacy (SP)
年份:2018
主題:在本文中,咱們對線性迴歸模型進行了第一次中毒攻擊的系統研究及其對策。
代碼:https://github.com/jagielski/manip-ml
相關知識:機器學習 數據安全 線性迴歸 預測模型
細讀這篇論文,我發現他不愧是頂會論文,其行文結構、研究思路,都是極爲科學、嚴謹,其縝密的研究思路
,完備的研究過程
,優秀的論文結構
,細緻的驗證對比
,給我很大幫助,很大啓發。
論文選題爲在10秒內找到未知的惡意:在Google-Play規模上大規模審查新的威脅。本文開發了一種名爲MassVet的新技術,用於大規模審查應用程序,而無需瞭解惡意軟件的外觀和行爲方式。與一般使用重量級程序分析技術的現有檢測機制不一樣,文中所用的方法只是將提交的應用程序與已經在市場上的全部應用程序進行比較,重點關注那些共享相似UI結構(表示可能的從新打包關係)和共性的區別。
論文做者將應用程序的視圖圖形(即,其用戶界面之間的互連)(例如窗口小部件和事件的類型)的一組特徵投影到單個維度,使用惟一索引來表示應用程序在維度內的位置以及類似度。它的界面結構與其餘人的界面結構。研究中將該指數計算爲視圖的幾何中心,稱爲v-core。市場上全部應用程序的v核都通過排序,以便在審覈新應用程序時啓用二進制搜索,從而使此步驟具備高度可擴展性。
檢測思路以下:
爲了提升處理器性能,計算機架構師採用了諸如推測執行和緩存之類的加速技術。然而,研究人員最近發現,這種方法意味着固有的安全漏洞,正如Meltdown和Spectre所利用的那樣。針對這些漏洞的攻擊能夠經過利用錯誤推測的執行來經過諸如數據緩存時序之類的輔助渠道泄漏受保護的數據。這些缺陷多是災難性的,由於它們是基礎和普遍的,它們會影響許多現代處理器。減輕Meltdown的影響是相對簡單的,由於它須要基於軟件的修復,這已經由主要OS供應商部署。然而,直到今天,Spectre尚未有效的緩解措施。解決問題可能須要在將來的處理器中從新設計用於條件執行的體系結構。此外,使用傳統的基於軟件的防病毒技術很難檢測到Spectre攻擊,由於它不會在傳統日誌文件中留下痕跡。在本文中,做者建議監視微體系結構事件,例如緩存未命中,現有CPU性能計數器的分支錯誤預測,以在攻擊運行時檢測Specter。做者的檢測器可以使用各類機器學習分類器以及合理的性能開銷實現0%的假陰性,誤報率低於1%。做者建議監視微體系結構事件,例如緩存未命中,現有CPU性能計數器的分支誤預測,以便在攻擊運行時檢測Spectre。做者的檢測器可以使用各類機器學習分類器以及合理的性能開銷實現0%的假陰性,誤報率低於1%。做者建議監視微體系結構事件,例如緩存未命中,現有CPU性能計數器的分支誤預測,以便在攻擊運行時檢測Spectre。做者的檢測器可以使用各類機器學習分類器以及合理的性能開銷實現0%的假陰性,誤報率低於1%。
做者按期同時從四個性能計數器收集數據。在本節中,咱們首先分析收集的原始數據,以肯定經過可視化數據分佈來區分清潔環境中的測量和受攻擊的測量是否可行。而後咱們使用不一樣的機器學習算法來訓練分類器並使用前面討論的滑動窗口方法構建實時攻擊檢測器。
LLC參考的分佈,LLC未命中和分支未命中率特徵:
本文提出經過監視微體系結構特徵誤差來檢測Spectre攻擊,由於攻擊利用了現代處理器硬件設計中的漏洞,例如推測執行和緩存側通道。這些功能是從處理器中普遍使用的硬件性能計數器收集的。採用在線檢測方法檢測攻擊早期的惡意行爲,而不是在損壞完成後進行離線檢測。實驗結果代表,使用訓練的多層感知器分類器,只有0.77%的假陽性和0%的假陰性,具備很好的檢測準確度。因爲對幽靈的徹底緩解具備挑戰性,如今主動檢測此類攻擊更爲實際。
根據不一樣類型的硬件設計缺陷和側通道被開發,Spectre有許多變種。不斷髮現新變種,最近研究人員發現了一種新的推測性商店繞過漏洞[15]。可是,全部不一樣的變體都使用側通道來推斷攻擊最後階段的機密信息。此外,隱身模式幽靈攻擊一般無效。所以,咱們認爲能夠經過監視這些硬件側通道的變化來檢測惡意行爲。該研究代表使用這種方法檢測Spectre的可行性。將來的研究能夠針對不一樣配置下的其餘攻擊變體進行,例如在服務器和虛擬機環境中。
論文選題:All Your GPS Are Belong To Us: Towards Stealthy Manipulation of Road Navigation Systems
算法思路:
論文選題:With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning
根據訓練過程當中被凍結的層數K,能夠把遷移學習分爲如下3種方法:深層特徵提取器(Deep-layer Feature Extractor)、中層特徵提取器(Mid-layer Feature Extractor)、全模型微調(Full Model Fine-tuning)。
對抗性攻擊就是攻擊者經過設計一種有針對性的數值型向量從而讓機器學習模型作出誤判。白盒攻擊中攻擊者可以獲知分類器的內部體系結構及全部權重。它容許攻擊者對模型進行無限制的查詢,直至找到一個成功地對抗性樣本。黑盒攻擊中攻擊者不知道受害者的內部結構,攻擊者要麼嘗試反向工程DNN的決策邊界,建一個複製品用於生成對抗樣本,要麼反覆查詢生成中間對抗樣本並不斷迭代改進。這種攻擊經常在最小的擾動下得到接近100%的成功,由於攻擊者能夠訪問深度神經網絡的內部結構,因此他們能夠找到誤分類所需的最小擾動量。然而白盒攻擊通常被認爲是不切實際的,由於不多會有系統公開其模型的內部結構。黑盒攻擊容易被防護。
論文經過求解一個有約束的最優化問題來計算擾動。目標是是模擬隱藏層第K層的輸出向量,約束是擾動不易被人眼察覺。即在擾動程度perturb_magnitude小於必定約束值(擾動預算P)的前提下,最小化對抗樣本(擾動後的source image)第K層的輸出向量與target image 第K層的輸出向量的歐式距離。前人計算擾動程度都是使用Lp範數,可是它沒法衡量人眼對於圖像失真程度的感知。因此本文使用DSSIM計算擾動程度。論文還提出了3種針對本文攻擊的防護方法,其中最可行的是修改學生模型,更新層權值,肯定一個新的局部最優值,在提供至關的或者更好的分類效果的前提下擴大它和教師模型之間的差別。這又是一個求解有約束的最優化問題,約束是對於每一個訓練集中的x,讓教師模型第K層的輸出向量和學生模型第K層的輸出向量之間的歐氏距離大於一個閾值,在這個前提下,讓預測結果和真實結果的交叉熵損失最小。
論文選題:SafeInit: Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities
做者經過在clang/LLVM編譯器架構上,經過修改代碼,實現了safeinit原型,在編譯C/C++源代碼時,傳遞一個標記便可使用safeinit實現優化編譯,緩解未定義變量。使用了強化分配器的safeinit能夠進一步優化代碼的同時,保證全部須要初始化的變量進行初始化,刪除多餘初始化代碼進行優化,這樣既保證緩解了未定義變量漏洞的威脅,同時與其餘現有方法相比,提高了性能。
在沒有使用優化器的狀況下應用時,運行時開銷的(幾何)平均值爲8%。應用該優化器能夠顯着下降剩餘基準測試的開銷,與做者的基線編譯器相比,致使CINT2006的平均開銷爲3.5%。 CFP2006的結果相似,以下圖所示,平均開銷爲2.2%。
論文選題:[是Convolutional Neural Networks for Sentence Classification,做者是Harvard NLP組的Yoon Kim,而且開源了代碼 sent-conv-torch。
單通道圖像能夠表示爲一個矩陣,輸入到CNN中,通過多組filter層和pooling層,獲得圖像的局部特徵,而後進行相關任務。本文用拼接詞向量的方法,將一個句子表示成爲一個矩陣,這裏矩陣的每一行表示一個word,後面的步驟僅採用一組filter、pooling層來獲得句子的特徵向量,而後進行分類。
這裏,模型根據詞向量的不一樣分爲四種:
論文在七組數據集上進行了對比實驗,證實了單層的CNN在文本分類任務中的有效性,同時也說明了用無監督學習來的詞向量對於不少nlp任務都很是有意義。
這裏須要注意的一點是,static模型中word2vec預訓練出的詞向量會把good和bad當作類似的詞,在sentiment classification任務中將會致使錯誤的結果,而non-static模型由於用了當前task dataset做爲訓練數據,不會存在這樣的問題。具體可參看下圖:
從web安全到漏洞挖掘技術,從量子密碼技術到深度學習的密碼分析技術,從信息隱藏到區塊鏈技術,一個學期一晃而過,再加上最後兩次課的論文匯報,密碼與安全新技術專題課程的六次教師講座就這麼結束了。
在本學習的課程學習中,我對密碼和安全方面有了新的認識,對web安全、漏洞挖掘技術、量子密碼技術、深度學習在密碼分析的應用、信息隱藏和區塊鏈技術等有了比較清晰的認知,也對本身在研究生階段的研究方向和研究方法有了一些大體的想法。
我本科是學網絡工程的,畢業設計作的是神經網絡方面的內容,研究生階段實驗室的研究方向大體是密碼安全方面及訪問控制相關。在研一階段看的論文很少,除了課程要求的相關論文外,只是大體看了導師要求的國密標準相關文檔,這門專題課帶着我看了幾個細方向的論文,如SQL注入攻擊、生成對抗網絡、隱寫技術及隱寫分析、漏洞挖掘,也看了一些比較火的研究方向,如量子密碼和區塊鏈技術。這些頂會論文帶個個人最大收穫就是眼界上的開闊,以及研究方法和論文結構上的指導,這對於我研二的研究工做有極大的幫助。
收穫主要概括爲如下幾點:
要多和老師交流,提出問題以後必定要找老師把關,分析可行性,看能不能出成果,有沒有研究價值。研究生階段是離不開老師指導的。
深挖本身的研究方向的同時不能對其餘的知識領域,尤爲是主專業的其餘研究方向放鬆,多學習多交流,有不少東西是共同的,並且不少技術的應用是能夠結合起來的。
我本人的可能更想作理論研究,功利一點來講也想多發一些論文。這門專題課對我有很大的幫助。
意見建議概括爲如下幾點:
十分感謝王志強老師組織、講解的專題講座課程,也十分感謝張健毅老師、孫瑩老師、金鑫老師、夏超老師幾位老師的授課和對咱們的建議!
相關博客連接:
論文報告連接:
第七組:卷積神經網絡用於句子分類