###### tags: `NTUGICE 2022 Fall` # 作業系統期中報告講稿 ## 1 老師、助教、各位同學大家好,我開始這次作業系統的期中報告 ## 2 這是這次報告的outline。 首先,我會簡述選擇的三篇文獻,大致說明三篇的主題。然後為了讓大家對於背景有一些初步了解,接下來會介紹有關於side-channel attack,中文翻譯為<b>旁路攻擊</b>或者<b>旁通道攻擊</b>,並特別強調其中power analysis這一分支。 最後我會按照二、三、一的順序介紹文獻。如此安排順序是因為我認為這樣更能凸顯出main paper的貢獻以及問題。 ## 3 這些是我選擇的的文獻,首先第一篇 Maya: Using Formal Control to Obfuscate Power Side Channels,它描述一種針對基於功耗分析的旁路攻擊的防禦方式。 而第二篇POWERFUL: Mobile App Fingerprinting via Power Analysis則是提出一種用於追蹤移動平台(比方說智慧型手機)所安裝應用程式的攻擊架構,它也是該類攻擊中第一個被提出的。 最後,第三篇On Inferring Browsing Activity on Smartphones via USB Power Analysis Side-Channel關注在手機加載網頁的資訊。 總體來說,二三介紹了基於功耗分析的旁路攻擊應用於應用程式追蹤以及網頁追蹤的方法。而main paper則是針對這類攻擊給出了防禦的方式。我會以二三一的方式編排內容是因為,理解此類攻擊的概念後對於部屬相關的防禦會更加容易。 ## 4 那麼,旁路攻擊到底是甚麼? 它與其他攻擊又有甚麼差異? 首先,當然它是一種針對計算機設備的攻擊,這聽起來非常多餘,不過實際上很重要,重點在於設備一詞上。 這就要提到第二點,這種攻擊不依靠算法或者協定本身的漏洞而運作。比方說Cross-Site Scripting,這種攻擊是透過將javascript的腳本插入到網頁中,使其執行一些攻擊者希望的程式,這是當網頁讀取輸入時無法辨識其中的javascript語法是誰撰寫的。 同理在Buffer overflow也類似,不過情境變成插入了特殊的機器語言人為觸發過載並執行比方說遠端terminal等程式。 那旁路攻擊是依據甚麼呢? 答案是計算機或演算法的物理實現中所產生的額外資訊,比方說緩存、計時器、電磁輻射、功耗等。這些都是計算機設備設計上產生的資訊。接下來會重點強調關於功率分析的部分。 ## 5 功耗分析簡單理解就是研究計算機運作時的功率消耗,並使用統計方法分析這種訊號,當然也可以直接分析給定時間功率的變化,稱為power trace。 右圖是一種功耗分析的示意圖,途中包含敏感資訊的部分是信用卡的讀卡機,因此將其中的電路接通部分並以示波器讀取,就有可能知道該張信用卡的一些資訊。 ## 6 第二篇文獻中作者提出一種基於機器學習的移動應用程式辨識方法,稱為POWERFUL。如此是因為移動端的使用程度越來越高,一份2014年的報告表示美國智慧型手機使用者平均存取26個應用程式,每月花費37小時以上。此外,過去對移動端應用程式的追蹤多是基於流量分析,這存在很大的限制,比方說攻擊者需要在目標設備上安裝惡意軟體或者取得服務提供商的資料庫權限。最後,很重要的一點是,Android系統上對於功率的資訊沒有設定任何訪問的限制。 ## 7 下表呈現了這篇文獻中作者選取分析的應用程式,作者選取的標準主要有三項,第一個是使用人數多,比方說表中的FB、Gmail就屬於常見的應用程式。第二個標準是包含敏感資訊,比方說金融、位置資訊,可以看到選取的應用程式中有pokemon go。第三項則是多樣性,上表盡可能的涵蓋各種類型的應用程式。 ## 8 下圖呈現了POWERFUL的大體流程。首先進行功率資訊的收集,如前面所說Android沒有設定任何的訪問限制,可以直接取用。而後進行資料前處理和特徵萃取。最終用於訓練機器學習模型或者推論當前運行應用程式,作者採用了三種算法分別是C4.5、SVM和隨機森林(以下簡稱RF)。 下方紅字是linus系統中記錄實時電流和電壓的位置,由於Android是基於linux核心,因此也是這份work中獲取功耗資訊的地方,其他linux裝置上也有相同的屬性,因此也可以認為這份work也能夠修改到其他linux-based的裝置上。 ## 9 下圖呈現了最終推論的測試結果,可以看到三種算法都達到了80以上的準確率,其中使用隨機森林的方法更是有92.9的高準確率。 此外,作者也針對諸如使用位置、使用者活動、使用者等進行實驗,更多實驗的細節這裡就不敘述了。 ## 10 第三篇文獻中作者同樣提出一種基於機器學習但用於當前加載網頁辨識的方法。 作者認為很多廣泛的智慧型手機使用促使許多公共場所設立充電站,其中使用的USB充電線有造成隱私問題的疑慮,這與USB的傳輸資料的針腳是否存在無關,而是僅依靠其電壓資訊就有可能造成資訊被竊取,也因此這種攻擊很難被發現和防範。 ## 11 下面簡單解說作者所提出的攻擊流程,大致上與第二篇文獻相似,這裡重點提及功耗資訊的來源,是依靠在用於充電的直流電源中加入一個Shunt resistor獲取,而後再將該資訊透過網路發送給攻擊者進行下一步的解析,從而掌握受害者的網頁使用情況。 ## 12 這裡我想簡單提及作者在這篇中針對所提出的方法的穩健性而做的實驗,下表中分為實驗變量和簡化的變因,紅字表示其具有較好的預測準確率。比方說由於鋰電池充電的特性存在恆定電流以及恆定電壓兩階段,因此在充飽電的恆壓充電能得到較好的訓練結果。其他分別是網頁緩存的啟用與否、單一次預測使用的功率訊號的長度、訓練和測試裝置間的遷移訓練、傳輸所使用的協定等 此處我想特別強調兩個實驗的結果,一是在這個方法中訓練的資料存在老化的問題,即訓練好的模型其表現會隨時間下降。二是網頁之間所使用的傳輸協定是否加密不會影響其表現,故作者認為這個方法更具有泛用姓。 ## 13 最後實驗結果的部分,這邊以上述所有變量皆選取最佳的設置下得到的結果為準,可以看到最低也有將近98.8的準確率。 ## 14 我選擇的main paper是針對上面提到的攻擊提出了防禦的方法。 我會按照下面的順序介紹,分別是作者提出這種防禦的動機以及貢獻。然後會針對其中使用的Formal control技術進行簡介,重點放在為何作者會使用其用作防禦。再來會介紹這篇所提出的防禦方法Maya的整體架構以及其中的關鍵遮罩(mask)的意義以及如何選擇。最後會給出作者宣稱Maya為何能夠良好運作以及呈現部分實驗的結果給大家看。 ## 15 作者這篇研究的動機以及貢獻可以分為兩個部分,第一部分是隨著旁路攻擊的技術進步,其所造成的威脅漸增,因此有必要建立相應的防禦措施,從前面兩篇的介紹也可以知道基於功耗的旁路攻擊實作起來較傳統的攻擊更容易且不易被發現。 第二個部分則是過去針對旁路攻擊的防禦措施存在很大的弊端,一個是過往研究專注在加密電路encryption circuits上,核心想法是在輸出功率的地方增加噪聲使得攻擊者難以分析,但這類方法對於很多攻擊而言並不那麼有效。第二個是很多提出的方法只能套用在新的硬體上,因此無法保護既有的計算機,故絕大多數的設備依舊暴露在危險中。 ## 16 進入到Maya的架構前,我先簡單介紹為何作者使用formal control來實作防禦技術,它有什麼優勢以及它原先的目的是? Formal control原先是用於控制微處理器(比方說晶片)的功耗以及溫度,避免其過熱造成的損害的技術,作法透過調整dynamic voltage and frequency scaling (DVFS),這個大家可以簡單理解為描述運作電壓和時脈的東西。這種技術已經在很多實踐中被證明對於動態系統而言很有效。 因此在這篇文獻中為了將輸出功率調整為攻擊者無法解析和竊取資訊的形式,使用formal control對功率進行控制。大體的思路如下將被保護的計算機S所輸出的功耗y與我們期望的功耗目標r一同輸入控制器K,控制器K會依此控制計算機的功耗,盡可能使功率訊號貼近期望的目標函數。 ## 17 為何Formal control會有效呢? 我們先思考下面這個情境,左側是原始的功率訊號,而為了避免資訊洩漏,我們希望將輸出訊號變成一個定值,如右側的P,但運行本身的功率在變動加上我們刻意的調整會造成無法達到目標功率,比方說p1本就會上升,但p0呈現需要上調功率,最終導致p1誤差反而增加,重點是修改後的功率軌跡依舊可以看出原始的資訊。 Formal control透過將原始狀態作為輸入的一環,可以達成經驗的累積,更好的接近目標,如這個公式呈現的,每一時刻的決策除了當下的誤差也包含當前系統的狀態。 ## 18 下圖是Maya運行的整理架構,和先前formal control的流程很像,不過將目標函數改為一個遮罩產生器,遮罩產生器能夠給出更為嚴格的目標功率,控制器依據目標功率和真實功率控制計算機系統,控制的輸入包含前面提到的DVFS以及balloon level和Idle level。後兩者分別控制耗能的操作數量以及處理器進入空閒狀態的比例。原先這兩項設計是為了在維持運算效率的同時保護處理器。 因此整個架構的重點落在了如何產生遮罩,因為遮罩的形式決定了最終輸出的功率訊號容不容易被解析。 ## 19 下圖呈現了作者所選取的幾個備選遮罩形式,簡單理解就是希望輸出的功率訊號會以什麼樣的方式呈現,包含固定在常數、均勻隨機挑選的數值、高斯、正弦分布等。決定的關鍵在於其時域和頻域的訊號是否容易被解析。 以常數情況為例,為了將功率保持在固定水平,因此需要觀察真實功率與目標的差異,調整相應的輸入。這對於原始訊號變化點而言容易產生洩漏。最終作者選擇了高斯正弦作為遮罩產生器的目標功率。 ## 20 上面給出Maya運作的原理和流程,那麼Maya為何有效呢? 作者給出的理由主要有兩個,一是它直接重塑了整個功率訊號而不適增加噪聲。後者中噪聲容易被簡單的訊號分析手法過濾,但前者是讓計算機自己輸出對應的功率,這裡的失真本身帶有資訊,因此即便攻擊者完整掌握了Maya的防禦手法也很難破解。 ## 21 下圖以三個混淆矩陣呈現Maya的防禦能力,可以看到在隨機輸入時攻擊方法成功辨識的機率高達9成,其中某些類別甚至達到100%。而使用Maya,即便是前面已經證明不擅處理訊號變化點的常數遮罩也能顯著降低到60%左右。採用高斯正弦的Maya進一步達到了僅有14的準確率,此外後三個類別以外也看不出明顯的正確性了。 ## 22 以下是我準備過程中的除了文獻給身找的一些參考資料,如果對formal control的數學原理有興趣,推薦第三個參考資料,裡面對於formal control有更全面的介紹。 ## 23 那我報告到這邊結束,謝謝大家。