# 資安期末專題報告 ### [Github](https://github.com/ISDangered/qrcode) ### [投影片連結](https://hackmd.io/@ISDangered/rkKY6nguq#/) ## 組員 * 林士傑 40847014S alanasdw@gmail.com * 陳柏聿 40947069S patpatpat1015@gmail.com * 陳威宇 40847006S willychenwii@gmail.com # 簡介 ## AIR-GAP 系統 AIR-GAP 又稱氣隙、實體隔離網路,是一個封閉式的網路結構,這種系統特殊的點在於他沒有與外部網路連結,也就是此系統與其他外部系統是被實體隔離的。因此,不會遭受從外部網路來的攻擊。通常 AIR-GAP 會被用在 具有機密的電腦系統上像是軍事、政府、金融、工業控制、安全關鍵系統等等。 ## AIR-GAP 系統條件 ### 基礎條件 AIR-GAP 系統有以下的基礎條件,像是整個系統的實體僅能由管理人員從實體進行操作,並且有硬體接觸限制,同時系統中需沒有無線網路設備,使其沒辦法與外部網路進行溝通。 ### 嚴格條件 除此之外,較為嚴格的條件,像是整個 AIR-GAP 系統必須放在法拉第體中,也就是必須隔絕電磁波,隔離外部不必要、不安全的電波訊號,也防止內部訊號散出,並且限制控管人員在系統附近時,不能使用網路設備等等。 ## AIR-GAP 系統的優缺點 ### 優點 AIR-GAP 系統有著很大的安全性,因為只有靠實體的人員進行接觸才有辦法控制系統,因此只要做好人員管理以及對於系統的操作的權限,基本上就能保障一定程度上的安全性。 ### 缺點 AIR-GAP 系統在進行內部資料的流通時,會需要由管理人員轉移,較為複雜與繁瑣,並且系統軟體的更新無法自動化,需要實體人員攜帶硬體設備進行手動安裝。除次之外,系統管理上的困難度、以及系統的維護,都是 AIR-GAP 系統的一大問題。 ## AIR-GAP 系統的攻擊方式 ### 入侵方式 攻擊者要入侵到這樣的系統中是相較困難的,僅能透過接觸實體的主機,從硬體裝置安裝惡意程式。目前有幾個可行的方法,像是買通有操作主機權限的人員,使其協助安裝惡意軟體、或是間接感染相關人員的電腦,讓被感染者感染 AIR-GAP 的系統、以及感染第三方軟體或軟體的供應鏈,購過第三方軟體的更新與安裝來間接感染其系統。 #### solarwinds 入侵事件 (供應鏈攻擊舉例) SolarWinds 是美國一家提供 IT 管理平台的大型供應商,其旗下 IT 性能監控系統 Solarwinds Orion 在 2020 年成為供應鏈攻擊的目標,造成其包含眾多美國公家機關與微軟、英特爾等企業的客戶群遭受入侵。此種如特洛伊木馬一般以受信任的第三方軟體作掩護,間接感染攻擊者真正意圖入侵的系統的攻擊手段能夠有效套用在 AIR-GAP 系統上,為後續 AIR-GAP 系統資料竊取達成先備條件。 https://www.techtarget.com/whatis/feature/SolarWinds-hack-explained-Everything-you-need-to-know ### 取得入侵資料 攻擊者成功入侵到 AIR-GAP 系統後,衍生出另一個重要的問題,該如何從系統中,將入侵後取得的重要資訊回傳給攻擊者。 在沒有外網的情況下,攻擊者能使用的管道是實體的介面,像是空氣、光線、聲音、溫度、頻率、震動等等,這將會是構成 AIR-GAP attack 的方法。 我們可以購過上述的實體介面,讓系統中的惡意程式在不被管理人員或使用者發現的情況下,傳出 AIR-GAP 系統中竊取的資訊。 # 論文 (參考文獻) ## air-gap channel 簡介 基本上會分成通道的類型,在蒐集到的論文中有分成光學、無線電波、電力系統、磁場、熱能、震動、聲波等類型,各個通道都有其各自的優點與缺點以下會一一介紹。 在使用air-gap通道時,都會需要會需要把資料用類比的方式來傳輸,會使用的技術是ASK和FSK來把數位的資料轉化成類比的資料來進行傳輸。 ### ASK( Amplitude-shift keying) 把類比的資訊中找到一個臨界值,大於這個臨界值的振幅就定義為1,反之則是0。  ### FSK( Frequency-shift keying) 在訊號中找出不同的頻率以代表不同的位元組和,在這裡通常是以較為簡單的BFSK( Binary FSK)來進行傳輸,也就是僅需要兩個不同的頻率來代表0和1位元。  ## 光學通道 ### Optical air-gap via invisible image Optical air-gap exfiltration attack via invisible images (Optical) 作者: Mordechai Guri 年分: 2019 主要的使用技術是先把需要抽取的資料放在 QRCode 裡面,然後把圖案放在螢幕上 用相機翻拍或是錄影之後可以再用影像處理的技術加強 QRCode 的可讀程度 最後再去讀取 QRCode 的內容以取得裡面的資訊 從論文中他有介紹2種不同的隱藏方式,其中一種是把圖片嵌入在螢幕上恆亮,另一種是用閃爍的方式。 他們在第一種嵌入到螢幕上會先找出目前螢幕上的亮區或是暗區,然後依照他的明亮程度來調整 QRCode 的對比讓 QRCode 對於人眼來說是不明顯的,這樣就可以把資料放在螢幕上。 第二種使用閃爍的方式會需要把第一種嵌入的方式轉化成快速閃爍的方式,因為人眼對於低對比的閃爍比較不敏感。 在取回資料的時候,只要在不是很遠的地方用相機翻拍到或是錄影下來,然後把照片灰階化之後用 histogram equalization 和銳化圖片最後再進行二值化之後,就可以解讀出裡面的內容。 在使用閃爍型的會需要先把影片中的畫格會先抽取出來,然後做以上的處理。 >論文中做出來的實作成果  我們認為這樣的影像處理結果還能夠讀取到,真的是蠻厲害的。 ### aIR-Jumper (Optical, Infrared) 使用紅外線攝影機的紅外線燈光來傳輸資料 因為多數紅外線攝影機都會配備有紅外線 LED ,所以只要能夠先安裝可以解讀和發送燈號的軟體,就可以進行雙向的溝通。這是少數可以執行操作的方式,而且又因為監視器通常都是監視著公共區域,所以在視線範圍也不會有很大的入侵困難。 >人眼可見範圍與一般的攝影機的感測範圍差距  >人眼與照相機的觀測結果  >傳輸示意圖  ## 電力系統 ### PowerHammer 透過電力系統的耗電量來傳遞訊息 基本上是透過控制 CPU 核心是否忙碌的開跟關來產生出不同的電流抖動,先是要產生兩個現成分別在不同的核心上先是透過 sched_setaffinity 的系統呼叫來固定在核心上面,然後透過 thread mutex 來將其同步之後就可以準備傳輸。 目前傳輸的資料式0會直接休息,如果是1就會呼叫函式然後產生一個固定的頻率波型,透過兩個不同的頻率會產生當作乘載的波型去做 FSK 來傳遞。同時因為要壓抑0的時候不要傳輸或是干擾,會使用 busy waiting 的方式讓他強制休息。 只要在電源總開關與目標電腦之間加裝上可以監測電流的設備並且紀錄下他的行為就可以解碼並且取得內容。 使用這樣的方式會有的缺點是會受到其他 process 的影響傳輸的品質,也就是會有解碼失誤。 >產生頻率的演算法  >傳輸示意圖  >受到其他的process的影響  ## 無線傳播 ### Air Fi: Generating Covert Wi-Fi Signals from Air-Gapped Computers 透過記憶體的傳輸發出WiFi訊號 首先是因為近代的電腦幾乎都是使用DDR4的記憶體,然後這類的記憶體基礎頻率幾乎都是2400MHz,那在這樣的狀態牠會發出跟2400MHz的諧波會正好落在 WiFi 可以接收的波段,大約是在2.42GHz左右。那如果記憶體的運作速度不一樣,可以透過去修改 BIOS 的設定來改成想要的頻率。 傳輸的主軸會是使用大量的同步 thread 來同時進行記憶體的讀取和寫入,來加強他的訊號強度。可以控制發出的訊號與否來當作是0和1的傳輸。 論文中說是可以在數公尺的範圍達到100bits/s的傳輸速度。 不過會受到電腦中其他的 task 影響,如果有很多的程式在執行那就會有干擾產生。 >記憶體讀寫所產生的訊號  >受到其他程式的干擾  ### LANTENNA: Exfiltrating Data from Air-Gapped Networks via Ethernet Cables 使用有線網路的網路線發出的電波訊號,達成透過電波進行訊號傳播,通常網路線在傳輸資料時,會散發出大約在 125MHz 的電波頻率(可能因傳輸速度不同而有更高的頻率)。他們發現改變有線網路的速度或是開啟、關閉有線網路,可以對其發出的電波訊號進行操作,達成傳輸的目的。接著,他們使用簡單的 OOK 模式(類似ASK),進行編碼與裝成封包。從他們的實驗實驗結果可以看到在 1-5 bits/sec 的情況下,距離三公尺的兩台機器可以維持 0% 的錯誤率,在 10 bits/sec 下則是 12.5% 的錯誤率。 ## 熱能 ### BitWhisper (Thermal) 透過電腦所產生的熱能來傳遞資料,有效距離為 0~40cm ,傳輸速率為 1~8 bits/hour ,由於傳輸速率的限制所以只適合進行密碼等簡短機密資訊或指令的傳輸。 BitWhisper 的優點是它是建立 AIR-GAP 電腦間的溝通管道,且同時兼具發送與接收訊息的功能。透過加大電流附載產生焦耳加熱效應提升溫度,至於接收溫度則可以透過 CPU/GPU 、主機板等電腦內自帶的熱傳感器來接收。兩大主要功能都能透過自帶的機構達成。然而提升溫度後若未適當冷卻可能會造成基材損害,所以可能會需要透過水冷、風扇、散熱器等額外方式進行冷卻。 >傳輸的資料與時間圖示  ## 聲波 ### MOSQUITO: Covert Ultrasonic Transmissions between Two Air-Gapped Computers using Speaker-to-Speaker Communication 這篇論文主要在探討如何透過聲波進行訊號傳輸,一般情況下,通常使用麥克風與音響作為接收器與發信器,但因為大部份的電腦為了防止偷聽,都會進行麥克風的硬體或軟體上的保護,使得這種傳輸資料的方式不可行,因此,他們提出使用兩個音響或是兩個耳罩式耳機進行 speaker-to-speaker 透過超音波來傳遞資料的方式,這樣可以在不需要麥克風的情況下進行資料傳輸,如傳播示意圖。他們使用 Jack retasking 來使音響的輸出轉換成輸入裝置,以進行單向或是雙向的傳輸,其中包含完整的封包傳送規範,並建立溝通協議,來達成兩個裝置間的溝通。 經過他們的實測,在有環境噪音的情況下,因為他們使用的是超音波,因此受到的干擾較小,同時,在大約 1 公尺的距離下,在 166 bits/sec 可以達到 1% 的錯誤率,在 4-9 公尺的情況下則是得在 10 bits/sec 的傳輸速率下才有 1% 的錯誤率。 > 演算法 >  > 傳播示意圖 >  # 實驗 ### 背景條件 我們假設攻擊者已成功取得 AIR-GAP 系統上的操作權限,我們僅需考慮如何透過系統上的硬體裝置,來傳輸我們所取得的機密資料。 在我們接下來的實驗中,我們假設現在被攻擊的系統上,有著一台能夠從系統外部被觀察到的螢幕。我們可以透過螢幕來顯示一些資訊,但不可以被他人觀察到。 ## 實驗一:簡單 QRCode 我們可以操控被攻擊的系統,將要竊取的檔案匯出成 QRCode,並顯示在螢幕上。接下來只要用手機對螢幕掃描就能成功竊取資料。 但這個做法非常容易被觀測到,如果被使用者或是管理者發現,那很有可能就暴露出我們攻擊者的存在,並不是理想的攻擊手段。 > 實際拍攝展示  ### 改進想法: Optical air-gap via invisible image 參考在光學通道相關 AIR-GAP 論文部分提及的 Optical air-gap exfiltration attack via invisible images (Optical) 論文中的作法,我們發展出了接下來的兩個進階實驗來改善簡單 QRCode 實驗中 QRCode 過於顯眼的問題。 ## 實驗二:黯淡 QRCode 為了讓攻擊行為不那麼容易被察覺,我們第一個方法是透過影像處理,讓 QRcode 變的較不可見。我們將 QRCode 分成10%~90%等不同等級的透明度來進行實驗拍攝,並分析哪個程度的透明度能夠在達到最好的隱藏效果下,還能準確的透過一般的相機得到 QRCode 掃描結果。 我們在拍攝後,會再經過影像處理來讓 QRCode 變得更加明顯,使用的手段為 先進行圖片的灰階處理,接著進行直方圖均勻化( histogram equalization )和二值化( Binarization )。 >透明度處理後 QRCode ( 第一列左至右為 10%~50% 第一列左至右為 60%~90% )          ### 直方圖均衡化( histogram equalization ) 直方圖均衡化是圖像處理中利用圖像的直方圖對於對比度進行調整的方法,利用直方圖均衡化,我們將存在 QRcode 的圖片進行對比度的調整,並且增強 QRcode 部分的對比,均衡化後的圖片可以使曝光過度或者曝光不足照片中,進行修正,來顯示更好的細節,並使亮度增強,以更好的還原出原本的 QRcode。 >範例  ### 二值化( Binarization ) 二值化是圖像分割的一種最簡單的方法,我們可以利用二值化,把灰階的圖像轉換成二值圖像。把大於某個臨界灰度值的像素灰度設為灰度極大值,把小於這個值的像素灰度設為灰度極小值,從而實現二值化。這個做法能將 QRcode 的部分更好的從整個圖像中凸顯出來。 ### 黯淡結果 在有螢幕雜訊干擾的情況下,我們最佳可成功掃描到 60% 透明度的 QRCode,並成功讀取其中的內容。 > 以下為進行透明化 90% 後的 QRcode 圖片,顯示於 Ubuntu 系統的終端機上的圖片。  > 在將整張圖進行灰階、均衡化與二值化之後的結果  可見在進行影像處裡之前,QRcode 的可見度是非常差的,除非仔細的觀察,才可勉強看到輪廓。在進行影像處裡之後,QRcode 則能非常明顯的被展示出來,也能準確的進行讀取。 > 實際翻拍螢幕掃描(90%)   除了電腦螢幕的週期性波紋雜訊,翻拍照片亮度均勻與否也是影像處理能否成功的關鍵要素之一。 ## 實驗三:閃爍 QRCode 除了前面提到的改變透明度,為了讓攻擊行為以及 QRcode 不那麼容易被察覺,我們另外透過以高出人眼限度頻率閃爍來騙過人眼的方式,來隱藏我們的 QRcode。 我們將經處理的 QRCode 與一系列完全透明圖片合併,產生 frame delay 為 0.01 秒(超出人眼約 60 cps 極限)的 GIF 檔作為顯示,最後對螢幕用手機錄影翻拍再針對拍到 QRCode 的 frame 進行掃描。 >從閃爍中的 GIF 抽取出的 QRcode 圖片 >使用指令: ffmpeg -i "videoname" frames/out-%03d.png >   >  >實際掃描抽取結果 >  然而此種方式會受限於螢幕畫面的更新率,例如一般的電腦螢幕更新率大多是 60 Hz ,如此一來就無法滿足我們 GIF 檔 0.01 秒的 frame delay 。 ## 跟參考論文的比較 論文有對螢幕畫面進行亮區暗區的辨識並依其替換亮暗 QRcode ,這點是我們沒有做的。 除此之外,由於設備要求,我們也未能像論文內一樣測試各種不同攝影機材的結果。 # 結論 ## 想法與未來展望 ### AIR-GAP AIR-GAP 為資料的安全性提供很大的保障。除了在政府機構或企業等的資料儲存方面能派上用場外,隨著近幾年加密貨幣的興起, AIR-GAP 相關技術也逐漸被用於保障這些網路上的資產。既然 AIR-GAP 將在不久的將來被使用時更多重要場合,那麼針對 AIR-GAP 設備的攻擊與應對自然具備著相當高的重要性與研究價值。 ### 實驗部分 我們在實驗部分是前述的論文進行模仿實作,由於論文內大部分做法都未詳述技術性細節,所以我們也只能透過自己的方式試著呈現出類似的結果。最終結果與論文成果有些差距,這些是我們能發展改進的部分: * 論文中亮暗區 QRcode 替換的功能 * 透過多張翻拍照片疊圖處理改善亮度不均問題以提高辨識成功率 * 透過相關影像處理技術達成螢幕翻拍結果的雜訊濾除以提高辨識成功率  ### 心得 我們從這次的報告中,學到了許多有趣的 AIR-GAP 實作方式,也讓我們對實際的硬體層面有了更進一步的認知。除此之外,我們還根據論文進行了 AIR-GAP 的小實驗,讓我們透過實際的操作對研究內容有更深刻的理解,並了解到它並不是看起來那麼簡單的。 另外,我們閱讀了相關文獻,也感受到這是有人在關心的技術層面。也有許多相關的研究發展,對 AIR-GAP 的發展出一份心力。期待之後還能看到更多奇思妙想發展成的研究。 # 參考資料 * [Mosquito](https://securityaffairs.co/wordpress/70192/hacking/mosquito-attack-airgapped-networks.html) - [paper](https://arxiv.org/pdf/1803.03422.pdf) * [Screen Brightness](https://cyber.bgu.ac.il/exfiltrating-data-from-air-gapped-computers-using-screen-brightness/) * [PowerHammer](https://thehackernews.com/2018/04/hacking-airgap-computers.html) - [paper](https://arxiv.org/abs/1804.04014#) * [Security Cameras](https://arxiv.org/ftp/arxiv/papers/1709/1709.05742.pdf) * [Air-Fi](https://arxiv.org/abs/2012.06884) * [Air-Gap Research Page](https://cyber.bgu.ac.il/advanced-cyber/airgap)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up