在本次講座中,張健毅老師就Web安全與內容安全主題分了三大部分進行了講解。分別爲網絡應用安全、信息安全問題、隱私安全問題。網絡應用安全主要指SQL注入、XSS跨站腳本攻擊、CSRF跨站請求僞造等;信息安全問題主要講因爲當前信息化發展進入了新的階段而產生的攻防非對稱問題;隱私安全問題指許多企業和公司對用戶軌跡分析。課下正好參加了CTF比賽,比賽中涉及了一些機器學習在web安全方面的應用。主要在漏洞分析與挖掘、惡意代碼分析、垃圾郵件檢測等安全問題中,經過機器學習算法創建攻防模型。javascript
因爲程序中對用戶輸入檢查不嚴格,用戶能夠提交一段數據庫查詢代碼,根據程序返回的結果,得到某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。html
XSS, 即爲(Cross Site Scripting), 中文名爲跨站腳本, 是發生在目標用戶的瀏覽器層面上的,當渲染DOM樹的過程成發生了不在預期內執行的JS代碼時,就發生了XSS攻擊。跨站腳本的重點不在‘跨站’上,而在於‘腳本’上。大多數XSS攻擊的主要方式是嵌入一段遠程或者第三方域上的JS代碼。其實是在目標網站的做用域下執行了這段js代碼。惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。主要分爲反射型XSS、存儲型XSS。前端
SRF(Cross-site request forgery)跨站請求僞造 。
攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF可以 作的事情包括:以你名義發送郵件,發消息,盜取你的帳號, 甚至於購買商品,虛擬貨幣轉帳......形成的問題包括:我的隱私 泄露以及財產安全。java
在本次講座中,孫瑩老師就量子密碼基礎知識和最新相關的研究進展作了詳盡的講解。老師先從公鑰密碼體制、混合密碼體制兩種密碼體制引出量子密碼的研究背景。接着就量子基本概念,量子、量子態、量子比特的測量、量子密鑰分配作了講解。最後講解了典型協議和基本模型介紹。web
量子(quantum)是現代物理的重要概念。最先是由德國物理學家M·普朗克在1900年提出的。他假設黑體輻射中的輻射能量是不連續的,只能取能量基本單位的整數倍,從而很好地解釋了黑體輻射的實驗現象。
後來的研究代表,不但能量表現出這種不連續的分離化性質,其餘物理量諸如角動量、自旋、電荷等也都表現出這種不連續的量子化現象。這同以牛頓力學爲表明的經典物理有根本的區別。量子化現象主要表如今微觀物理世界。描寫微觀物理世界的物理理論是量子力學。
一個物理量若是存在最小的不可分割的基本單位,則這個物理量是量子化的。量子是能表現出某物質或物理量特性的最小單元。算法
量子密鑰分發能夠創建安全的通訊密碼, 經過一次一密的加密方式能夠實現點對點方式的安全經典通訊. 這裏的安全性是在數學上已經得到嚴格證實的安全性, 這是經典通訊迄今爲止作不到的。現有的量子密鑰分發技術能夠實現百千米量級的量子密鑰分發, 輔以光開關等技術, 還能夠實現量子密鑰分發網絡。 量子態隱形傳輸是基於量子糾纏態的分發與量子聯合測量, 實現量子態(量子信息) 的空間轉移而又不移動量子態的物理載體, 這如同將密封信件內容從一個信封內轉移到另外一個信封內而又不移動任何信息載體自身. 這在經典通訊中是沒法想象的事. 基於量子態隱形傳輸技術和量子存儲技術的量子中繼器能夠實現任意遠距離的量子密鑰分發及網絡。sql
BB84量子祕鑰分配協議數據庫
1:量子通訊編程
2:經典通訊後端
在本次講座中,金鑫老師經過密碼分析與機器學習、深度學習簡介與現狀、深度學習與密碼分析、深度學習與密碼設計四個方面講解基於深度學習的密碼分析與設計初探。在深度學習與密碼設計重點講解了GAN原理與密碼算法的結合。
密碼設計主要借用GAN的思路。
生成式對抗網絡(GAN, Generative Adversarial Networks)是一種深度學習模型,是近年來複雜分佈上無監督學習最具前景的方法之一。模型經過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學習產生至關好的輸出。
密碼組件通過生成對抗網絡中的算法生成器,獲得設計出來的密碼算法,同時密碼破解器將對此密碼算法進行破解,算法生成器和密碼破解器就這樣在相互博弈中學習產生出好的算法和好的破解方法。
在本次講座中,夏超老師講解了信息隱藏的四個方面,分別爲魯棒水印、可視密碼、隱寫、隱寫分析四個方面。
信息隱藏是指將特定用途的信息隱蔽地藏於其餘載體(Cover)中,使得它們難以被發現或者消除,經過可靠提取隱藏的信息,實現隱蔽通訊、內容認證或內容保護功能。
魯棒水印是重要的數字產權管理與安全標識技術之一,指將與數字媒體版權或者購買者有關的信息嵌入數字媒體中,使攻擊者難以在載體不遭到顯著破壞狀況下消除水印,而受權者能夠經過檢測水印實現對安全全部者或者內容購買者等信息的認定。
可視密碼技術使Naor和Shamir於1994年首次提出的,其主要特色是恢復祕密圖像時不須要任何複雜的密碼學計算,而是以人的視覺便可將祕密圖像辨別出來。其作法是產生n張不具備任何意義的膠片,任取其中t張膠片疊合在一塊兒便可還原出隱藏在其中的祕密信息。
在本次講座中,張健毅老師講解了區塊鏈的概念、技術和將來。
狹義來說,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可僞造的分佈式帳本。廣義來說,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分佈式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操做數據的一種全新的分佈式基礎架構與計算方式。
區塊鏈系統由數據層、網絡層、共識層、激勵層、合約層和應用層組成。 其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎數據和基本算法;網絡層則包括分佈式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點的各種共識算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各種腳本、算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各類應用場景和案例。該模型中,基於時間戳的鏈式區塊結構、分佈式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具表明性的創新點。
比特幣由區塊鏈完成,用數字加密算法、全網抵禦51%算力攻擊保證資產與交易的安全。交易記錄以被全體網絡計算機收錄維護,每筆交易的有效性都必須通過區塊鏈檢驗確認。區塊回報每產出21萬個區塊減半一次,大約4年,最近一次減半在2016年7月9日,而此種收斂等比數列的和必然是有限的,到2140年時,將再也不有新的比特幣產生,最終流通中的比特幣將老是略低於2100萬個。截至2018年3月,比特幣供應量約1700萬個,實際的流通量還會由於私鑰丟失等因素更加減小。
機制:每一位全部者(A)利用他的私鑰對前一次交易T1和下一位全部者(B)的公鑰(俗稱:地址)簽署一個隨機散列的數字簽名,A將此數據簽名製做爲交易單T2並將其(交易單T2)廣播全網,電子貨幣就發送給了下一位全部者。
Block
生產Block的過程,被形象的稱爲「挖礦」,生產工也被稱爲「礦工」。
挖礦過程實際上就是反覆去嘗試尋找一個隨機數(又稱「幸運數」),使得將最後一個Block的hash值、當前世界中還沒有被加入到任何Block的交易單、隨機數三部分組織起來送入SHA256算法計算出散列值X(256位),若是X知足必定條件(好比前20位均爲0),那麼該節點初步得到建立Block的權利。
對於每一個Block存在一個難度係數,此係數能夠轉換爲一個256位的整數,挖礦計算出的Hash值X必須小於該整數,此條件做爲尋找隨機數的附加條件。
當某時刻網絡檢測到新Block的產生速度不符合約10分鐘一個時,將調解該係數(加大或者縮小),從而使下一個Block的產生速度符合預期。
每當節點(礦工)計算出了一個符合條件的隨機數時,它僅僅得到了建立臨時Block的權利,它當即將相關數據打包好做爲一個臨時Block並廣播全網。
每10分鐘內全網不止一個節點能計算出幸運數字,即十分鐘內會有多個節點在網絡中廣播它們各自打包好的臨時Block(都是合法的)。經過誰先計算出誰後計算出來決定接受誰的臨時Block轉正顯然很難作到,由於全部節點的時間不可能嚴格一致(並且能夠任意被調節),並且網絡傳輸有快有慢。
某一節點若收到多個針對同一前續Block的後續臨時Block,則該節點會在本地Block鏈上創建分支,多個臨時Block對應多個分支。
從block hash算法咱們知道,合理的block並非惟一的,同一高度存在多個block的可能性。那麼,當同一個高度出現多個時,主鏈即出現分叉(Fork)。遇到分叉時,網絡會根據下列原則選舉出Best Chain:
咱們假設全部的節點都是理性的,追求收益最大化;都是不誠實的,且不惜任何手段獲取利益;全部節點均獨自挖礦不理會其餘節點,並將所得收益放入本身口袋,現象就是一個節點挖一個分支。因爲機器的配置老是有差異的,那麼算力最強的節點挖得的分支必然是最長的,若是一個節點的分支不是最長的,意味其收益存在不被承認的風險(即零收益)。爲了下降、逃避此風險,一些節點確定會聯合起來一塊兒挖某個分支,試圖成爲最長的分支或保持最長分支優點。
一旦出現有少許的節點聯合,那麼其餘節點必然會效仿,不然他們收益爲零的風險會更大。因而,分支迅速合併聚集,全部節點都會選擇算力更強的分支,只有這樣才能保持收益風險最小。最終,只會存在一個這樣的分支,就是主幹分支(Best/Main Chain)。
對於不誠實節點來講,結局是無奈的:能且只能加入主幹挖礦。不加入即意味被拋棄,零收益;加入就是老實幹活,按佔比分紅。
區塊鏈將來主要起着貨幣、合約、治理做用。
在貨幣方面會涉及貨幣的發行機制、貨幣的分配機制、貨幣的幣值調節機制。
在合約方面會涉及股權、債權、證券與金融合約、互助保險、權利的登記、轉讓、博彩、防僞、物聯網、智能合約。
在治理方面會涉及身份認證、公證、見證、司法仲裁、投票、健康管理、人工智能、去中心化自治組織。
在本次講座中,王志強老師從安全漏洞利用與挖掘角度來說解。首先講了安全漏洞的定義以及最近一些安全漏洞引起的重大事件。接着講了不一樣類型的漏洞挖掘技術。最後結合實例路由器協議漏洞挖掘,並在課堂展現了NFC打開手電筒的漏洞。
常見漏洞挖掘技術以下:手工測試、補丁比對、程序分析、二進制審覈、模糊測試
絕大多數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的規避。
一般,處理器不知道程序的將來指令流。例如,當無序執行執行條件分支指令時,會發生這種狀況,該條件分支指令的方向取決於其執行還沒有完成的先前指令。在這種狀況下,處理器能夠保存包含其當前寄存器狀態的檢查點,對程序將遵循的路徑進行預測,並沿路徑推測性地執行指令。若是預測結果是正確的,則不須要檢查點,而且在程序執行順序中退出指令。不然,當處理器肯定它遵循錯誤的路徑時,它經過從檢查點從新加載其狀態並沿着正確的路徑繼續執行來放棄沿路徑的全部待處理指令。執行放棄指令,以便程序執行路徑外的指令所作的更改不會對程序可見。所以,推測執行維護程序的邏輯狀態,就好像執行遵循正確的路徑同樣。
幽靈攻擊涉及誘使受害者推測性地執行在正確的程序執行期間不會發生的操做,而且經過旁路分支將受害者的機密信息泄露給攻擊者。論文中的幽靈攻擊結合了側信道攻擊,故障攻擊和麪向返回編程的方法,能夠從受害者的進程中讀取任意內存。更普遍地說,論文說明了推測性執行實施違反了許多軟件安全機制所依據的安全假設,包括操做系統進程分離,靜態分析,容器化,即時(JIT)編譯以及緩存時序/側通道的對策攻擊。因爲在數十億設備中使用的Intel,AMD和ARM微處理器中存在易受攻擊的推測執行能力,這些攻擊對實際系統構成嚴重威脅。
下面這段代碼中,攻擊者首先使用有效的x調用相關代碼,訓練分支預測器判斷該if爲真。 而後,攻擊者設置x值在array1_size以外。 CPU推測邊界檢查將爲真,推測性地使用這個惡意x讀取array2 [array1 [x] * 256]。 讀取array2使用惡意x將數據加載到依賴於array1 [x]的地址的高速緩存中。當處理器發現這個if判斷應該爲假時,從新選擇執行路徑,但緩存狀態的變化不會被恢復,而且能夠被攻擊者檢測到,從而找到受害者的存儲器的一個字節。
運行結果:
道路導航系統進行隱身操縱攻擊的可行性。目標是觸發假轉向導航,引導受害者到達錯誤的目的地而不被察覺。
略微改變GPS位置,以便假冒的導航路線與實際道路的形狀相匹配並觸發實際可能的指示。
本篇論文共作出三點貢獻:
左圖爲source image,中圖爲加過擾動的對抗樣本,右圖爲其要誤分類成的target image。
下表提供了每一個基準測試的allocas數量(表示局部變量的數量,偶爾的參數副本或動態分配)的詳細信息。 該表還提供了(剝離的)二進制大小; 在許多狀況下,初始化的影響對最終的二進制大小沒有任何影響,而且在最壞的狀況下它是最小的。#INITS是現有編譯器優化以後剩餘的大量初始化數量,而且咱們的優化器已經分別運行。
理想世界:學習過程包括執行數據清理和標準化的數據預處理階段,以後能夠表示訓練數據;
測試階段:模型在預處理後應用於新數據,並使用在訓練中學習的迴歸模型生成數值預測值;
對抗性世界:在中毒攻擊中,攻擊者在訓練迴歸模型以前將中毒點注入訓練集。
這篇論文主要研究用於句子分類的卷積神經網絡(CNN)的實驗,這些實驗是在預先訓練過的單詞向量的基礎上訓練的。一個簡單的CNN具備不多的超參數調整和靜態向量,在多個基準點上都能達到很好的效果。經過微調學習特定於任務的向量能夠進一步提升性能。