# [Unleashing offensive artificial intelligence: Automated attack technique code generation](https://doi.org/10.1016/j.cose.2024.104077) ## Highlight - 探索了offensive AI(尤其LLMs)自動生成惡意程式碼 - ChatGPT生成惡意攻擊的成功率目前從16%提升至50%(且使用資安的技術和技巧) - AI可以自動進行攻擊(可以用於安全測試或強化防禦) ## Keywords Offensive AI(攻擊性AI);Cybersecurity;Artificial intelligence;Large Language Model;Risk assessment ## Graphical abstract ![1-s2.0-S0167404824003821-ga1_lrg](https://hackmd.io/_uploads/S16fPhqmJe.jpg) ## Abstract 1. AI越來越發達,在未來必然不可或缺 2. 駭客的商業模式和技術也隨科技進步 3. 出現利用AI的武器化自動化的攻擊機制 4. 前者可以用在BAS(Breach and Attack Simulation)平臺進行可控自動化安全測試(包含攻擊以及防禦方) # 1 Introduction - AI的應從醫療到交通等領域都能應用,日益重要 - AI也被應用在資安的多方面並且幫助專家做出決定 - AI加上專家的力量讓辨識、保護、偵測和復原等的任務都和應對上都變得更加強大 - AI強化資安的防禦機制也被拿來用於生成先進且複雜的攻擊,包含但不限於偽裝、生成釣魚郵件和社交工程 - 2022 European Union Agency指出包含了勒索軟體等八大威脅,且因為科技進步和轉型數量也日益增多 - 網路犯罪的技能樹強化了,而資安犯罪的的商業模型(把駭客當生意) - 執行和供給網路殺傷鍊的方法也在進步 - DDoS的方法也越來越複雜 - 政府也開始著手於識別與破壞以及拆除攻擊者的基礎設施;而研究表明攻擊與破壞治標不治本,因為攻擊者可以不斷重新塑造並且改版所需要的基礎設施 - 前面種種使得確切指出風險何在這件事變得必要 - **本篇研究描述AI自動生成惡意攻擊的機制,從初使化攻擊向量到後續的衝擊相關的行動** - 其貢獻如下: - 闡述以下假設以AI進行強化效率與自動化後可以處理的問題 - H1:最小化駭客需要的力氣 - H2:不需要額外知識就能進行程式化的攻擊 - AI基底的機制(尤其是LLM)用於生成可執行且對應到Mitre Att&ck戰術或技術的程式瑪 - 基於前者LLM基底,用新的AI基底的方法進行自動化資安評估 - 強化惡意程式動態生成攻擊技術的程式碼片段並提供攻擊技術的程式**藍圖**給專家進行更快更好的評估 - 研究其他部分如下 - Section 2介紹資安AI的概念和用途 - Section 3 包含研究方法概觀和涵蓋研究領域 - Section 4描述研究的主要目標和實現這些目標的方法大概描述 - Section 5 提供評估AI於網路自動化方面潛力的研究實驗與實驗給出的見解以及結果分析 - Section 6討論相關發現 - Section 7總結 # 2 Background - AI定義Russell defined AI as “the development of computer systems that possess the ability to perform tasks that typically require human intelligence, such as visual perception, natural language understanding, decision-making, problem-solving, and learning” - LLM問世,不同領域的問題進行文字生成的能力被見證。LLM使用深度學習的技術以理解、合成,甚至進一步預測文字的新內容或寫出不同程式語言的程式碼。 - LLM的用途廣泛也是LLM爭議性很高的地方 - 本篇研究重點不是比較生成的惡意程式而是闡述其可行性 - 攻擊性AI定義: “The use or abuse of AI to accomplish a malicious task” (Mirsky et al., 2023). - 有些惡意的AI在Section 3有提及 - AI寫出了某些先前不可能成功或技術上有困難的技術 - 攻擊性AI是本篇研究的基礎如Section 4所描述 - TTPs為NIST所用於描述網路攻擊的五個種類之一 - 近年來各個平臺都開始用TTP來描述惡意攻擊 - 近乎全球都公認Mitre Att&ck為定義真實世界中的惡意攻擊(像是APT)給出了可公開訪問的不同類型的資料庫 - 提供了網路威脅資訊的分類且可用於參考 - 現有MITRE基於類似方法定義的多種不同平臺的Att&ck 模型 - MITRE ATT&CK Matrix for Enterprise是目前最完整且橫跨電腦作業系統的一個 - 也是作者用於生成惡意攻擊時參考的那個 # 3 Related work - Kaur et al.探索了目前文獻中的AI於資安的綜合分析( in five key cybersecurity functions, namely Identify, Protect, Detect, Respond, and Recover, as outlined by the NIST cybersecurity framework (Barrett, 2018).) - 針對了236篇AI驅動的網路安全實例進行分類並確定他們再NITST框架裡的類別 - 其針對資安功能、解法分類和用途分類 - 識別資安功能方面(包含intelligent asset management, enhanced risk management with predictive intelligence, automated threat hunting and risk assessment, and decision support for risk management),可以注意到目前已經有人使用AI進行弱點或錯誤設置偵測進行新種類的攻擊 - 也有人研究自主滲透的測試,像是大型網路的強化學習或是微電網控制 - 現在缺的是標準化的資料及以及需要AI的可重製或可再造性的保重 - AI可用於防禦方和攻擊方 - AI強化的攻擊和防禦機制已經在開發中 - 目前識別出的有三種AI強化的攻擊方式 - 操縱資料破壞分類以毀損正常功能 - 產生或合成假資料進行誤導 - 攻擊可存取系統並分析後再進一步攻擊(Yamin et al., 2021). - 上述提及與Generative Adversarial Network (GAN)技術有關 - GAN可以做出更有彈性的AI也可以生成假資料 - “AI-Based Cyber Threat Framework” (Kaloudi and Li, 2021). - 討論資安攻擊的不同階段 - 提出一個三層模型來分類前者 - 第一層識別每個階段的意圖 - 第二層識別造成的衝擊 - 第三層分類防禦方法 - 上述會被映射到七階段的網路殺傷鍊(Naik et al., 2022). - 56%AI驅動的攻擊是存取或滲透階段 - 12%是建立C2 - 11%是偵查 - 9%是傳輸 - 傳統防禦難處理的三點 - 速度 - 多樣性 - 複雜度 - Mirsky et al. - 用MITRE的分類 - 分類且描述32種AI進攻的威脅 - 分類如(automation, campaign resilience, credential theft, exploit development, information gathering, social engineering, and stealth) - 另外做出不同威脅的排名 - 最糟的是社交工程以及軟體分析(弱點偵測或逆向工程) - 除了自動化以外還有半自動的惡意AI(像GAN合成假資料、模擬網路流量以傳送惡意內容或入侵AI驅動的流量檢測系統)((AlEroud and Karabatis, 2020).,) (Lin et al., 2022, Rigaki and Garcia, 2018) - 也有專門注入假資料進智慧電網的案例(Rouzbahani et al., 2023) - 另外是LLM類的攻擊( Chen et al. (2021) and Huang et al. (2023). ) - 像生成釣魚攻擊(Ben-Moshe et al., 2022). - 很多人投入研究 - 有人用偽造授權弱點測試分析得prompt - 本篇 - 不只生成還驗證多個TTP的自動生成 - ChatGPT’s trustworthiness (bias, robustness, reliability, toxicity)被研究(使用prompt injection以進行越獄) - 本篇使用Mitre Att&ck本身的屬性進行生成不需要越獄(GPT認為這不算惡意) - 本篇生成了所有子技術並再Linux和Windows上執行 # 4 Research method - 主要目標是探索AI驅動的程式碼生成和評估不同階段Mitre Att&ck的多樣化攻擊技術 - 主要假設有二 - H1:降低生成所需的努力 - H2:不需要額外的專業知識即可生成攻擊技術的程式碼 - 為了實驗這些假設,實驗階段分成三階緞 - AI基底的程式生成 - 使用ChatGPT 3.5 - 生成Enterprise version的Mitre Att&ck攻擊技術 - 以shell生成 - 共362個給windows,203個針對linux的程式碼片段 - 使用python openai version 0.27.4 - 執行前面生成的程式碼 - 放在八臺沙盒中執行 - Windows server 2016, - Windows server 2019, - Windows 7, - Windows 10, - Windows 11, - Ubuntu 18.04, - Ubuntu 20.04 - Ubuntu 22.04. - 過程中也記錄了執行時的timestamp、回傳的code、output以及error還有excepection紀錄(如果有的話) - 也有程式的二進位可執行檔 - 評估生成結果 - 前面生成的各項資料會經由專家去評估是否成功執行 - 以下是被定義五種執行的結果 - Successful: 確認執行且有達成原始目標 - Effective : 程式碼內容可以達成原始目標,但參數等內容須要進一步更新(像資料夾名稱錯誤等參數有問題) - Effective within limits: 程式內容可以達成原始目標但需要進一步更新或仰賴第三方軟體(像是現存的惡意軟體) - Not working: 生成的程式碼符合原始目標但不能正常運作 - Incorrect code: 程式碼不符合遠使目標(像是程式碼包含防禦手段設定(就拿石頭砸自己的腳)或是建議給出攻擊技術已經在目標系統中設定好的部分(像是提供潛在的後門資料夾名單)(?不是很懂)) ![1-s2.0-S0167404824003821-gr1](https://hackmd.io/_uploads/BkRYtZcmyl.jpg) # 5 AI-based generation of attack techniques ## 5.1 I-based code generation of attack technqiues - 生成MITRE ATT&CK裡每個攻擊技術 - The specific data model used was The Enterprise version 12.1 - 該版本的使用時間: from October 25, 2022, until April 24, 2023 - 內容即為生成程式碼所需要的資訊 - ChatGPT作為工具進行回應的指示或討論主題被稱為Prompt - 跟一些參數作為輸入請求來生成攻擊技術 - ChatGPT生成的限制 - 服務條款裡禁止濫用或收集個人資訊或生成惡意的code - 因此"Jailbreak"(越獄)技術被發展出來 - 研究者要求ChatGPT提供MITRE ATT&CK每個攻擊技術相對應的shell code - 研究者使用MITRE ATT&CK本身提供的資訊因而不需要進一步越獄也沒有遇到困難 - 影響生成程式碼的主要特徵 - 子技術Sub technique - 舉例: phishing (T1566) is a technique, its sub techniques include spearphishing attachment (T1566.001),spearphishing link (T1566.002) and spearphishing via service (T1566.003). - 本篇研究剩下的部分會稱呼子技術為generic term technique - 目標平臺Platform - 為攻擊技術被發現的平臺(基本上就是作業系統) - 裡面提到PRE(指的是攻擊技術平臺並不會破壞基礎架構) - 戰術Tactic - 代表攻擊的「階段」,通常還會解釋理由或寫出戰略性目標等 - 研究者用 OpenAI playground 找出生攻擊技術成程式碼得最優prompt - 內容包含 - attack technique name - tactic name - technique description - platform - associated Common Attack Pattern Enumeration - Classification (CAPEC) (The MITRE Corporation, 2023b) identifier if existed. ![1-s2.0-S0167404824003821-fx1001](https://hackmd.io/_uploads/H1CPaz5Xye.jpg) - 下圖是範例 - ![1-s2.0-S0167404824003821-gr2](https://hackmd.io/_uploads/Byhg0fc7Jg.jpg) - 不同Tactic的生成程式片段數量 ![1-s2.0-S0167404824003821-gr3](https://hackmd.io/_uploads/Sk-EAz571e.jpg) - “Reconnaissance” (TA0043) and “Resource development” (TA0042)這兩個Tactic的攻擊技術沒有被生成 - 生成內容與MITRE ATT&CK內容直接相關,因此只針對Windows與Linux不包含其他平臺(且對目標基礎設施也沒有影響) ## 5.2 Evaluation - 建立在私人雲端的沙盒被用於執行生成的攻擊程式碼並且收集過程的資訊用於進一步分析 - 共八臺 - Windows server 2016, - Windows server 2019, - Windows 7, - Windows 10, - Windows 11 - Ubuntu 18.04, - Ubuntu 20.04 - Ubuntu 22.04 - 每臺機器都被以LAN相互連線且可以連上網路 - Windows設定包含 - Server Message Block (SMB) protocol activated - Linux設定 - Secure Shell (SSH) enabled - 設定使得機器可以存取外部資源作為payloads(這部分執行code上是必要的) - 才有辦法測試 lateral movement相關的TTP - 但後面實驗沒有成功的,詳見Section 5.3 - 實驗前預設當前Windows系統已經 - (i) the target system was already compromised - (ii) the execution of PowerShell scripts is allowed in the target system. - 以上設定並非無理,全球資安分析都認為粗心是主要資安事件的成因之一 - 執行時的資訊會被收集 - timestamp - return code (it reflects the status of the system process executed; usually, a return code of 0 means that the execution was successful) - standard output of the system process executed - standard error of the system process executed - an exception message if occurred during the execution(ex. timeout. ) - 程式生成的二進位檔也會一併被收集 ## 5.3 Analysis of the results - 針對不同平臺的結果應該是一樣的,而不是生成同一平臺的不同版本 - 且被確認過都是執行同樣的行為 - 比起針對某些特定平臺的特定版本,這邊針對的是Windows和Linux - 圖四為實驗結果 - (48.32%) that encompass the following attack code execution categories: “successful”, “effective - minor updates required”, and “effective within limits – major updates required”. - Meanwhile, the negative findings (51.68%) are represented by the following categories: “not working” and “incorrect code”. ![1-s2.0-S0167404824003821-gr4](https://hackmd.io/_uploads/By5lK7qmkg.jpg) - 只有30%是錯誤程式碼 - 可能是ChatGPT理解錯誤,把MITRE ATT&CK作為防禦資訊來源所以加入了防禦機制(畢竟很知名) - 比較Windows與Linux的部分在圖5 ![1-s2.0-S0167404824003821-gr5](https://hackmd.io/_uploads/BylO9Qqm1x.jpg) - 比較各個階段的實驗結果在圖6與圖7 ![1-s2.0-S0167404824003821-gr6](https://hackmd.io/_uploads/HyTYcQ9mke.jpg) ![1-s2.0-S0167404824003821-gr7](https://hackmd.io/_uploads/rJ0ncm9Q1l.jpg) - 圖九是比較Windows與Linux在實驗上與各個階段的正面結果 ![1-s2.0-S0167404824003821-gr9](https://hackmd.io/_uploads/Hyx0cmcQ1l.jpg) - 有些technique同時屬於不同tactic,生成code時只有Tactic不同時會給出不同的code - “temperature”被設定在0.5 - 另一個影響生成結果的因素是Model背後的訓練資料 - 至今依然有用 - 分析結果包含程式、輸出和聯貸的二進位檔案 - 證實可以進行惡意活動的工具會在執行時被下載 - 舉例secretsdump.p( well-known to be used to dump secrets from a remote victim machine) - 再來是成功執行範例(給ChatGPT的prompt以及output) ![1-s2.0-S0167404824003821-fx1002](https://hackmd.io/_uploads/SyLByNq71l.jpg) ![1-s2.0-S0167404824003821-fx1003](https://hackmd.io/_uploads/SyX8yV9X1g.jpg) - 與需要輸入參數的範例(這個會被歸類為effective - Minor updates required) ![1-s2.0-S0167404824003821-fx1004](https://hackmd.io/_uploads/BkJikVcX1e.jpg) # 6 Discusssion - Linux平臺上的重複Tactic的結果 ![1-s2.0-S0167404824003821-fx1005](https://hackmd.io/_uploads/Sk6Ge4571l.jpg) ( S = “Successful”; E = “Effective - Minor updated required”; EL = “Effective within Limits - Major updates required”; NW = “Not Working”; IC = “Incorrect Code”). - Windows平臺上的重複Tactic的結果 ![1-s2.0-S0167404824003821-fx1006](https://hackmd.io/_uploads/BkSulV971l.jpg) ![1-s2.0-S0167404824003821-fx1007](https://hackmd.io/_uploads/B1zclVc7ye.jpg) - 對於前面的H2假設,只有“successful” and “effective算驗證成功; “effective within limits”代表需要額外專業知識使程式成功執行 - 如果要增強有效性,需要配合LLM再加上長期記憶的功能 - 機器能否建立完整的模擬系統還不知道 - 但是可以從本篇時驗確定可以建立某些部分 - 生成的惡意攻擊可以是更大的攻擊的一部分 - 當C2伺服器離線而本地端無法接收進一步攻擊指令的話 - 惡意代理程式會繼續自動按照預定部分生成惡意程式 - 過程可能會需要更多對LLM的Request而Obduscation可以混淆進行以躲過檢測 - 檢測文字意圖(像是抓到惡意prompt)可以使用語意分析和NLP技巧 - 這也可以做為價值的資訊 - 以防禦方角度而言 - AI生成可以做為滲透測試時動態進行調整以增強防禦設定的方法 # 7 Conclusion and future direction - 前面的H1和H2假設都被驗證為真 - 前者成功率16% - 後者只需要使用者會如何執行程式碼即可 - 生成惡意攻擊時的困難點包括被偵測到prompt為惡意活動 - 但本篇不需要使用prompt injectuion - ChatGPT並沒有擋住本篇的prompt - 本篇的prompt並不被認為是在生成惡意攻擊 - 因此不需要使用越獄的技巧 - 雖然惡意攻擊本身可以人工,但AI可以: - 自動化生成 - 大量生成提高成功率 - 減少人力 - 像是NIST等組織正在推廣主動且適應性加上資料驅動(?看不懂)的即時評估方法以保護或對更先進的攻擊進行應對 - 現行資安評估方法可以即時動態調整並應對 - 其行為可以跟著攻擊實例動態調整 - 而防禦機制與設定也會隨著評估而不同 - 可能的解決方案是最好有個攻擊模擬平臺(舉例Caldera (The MITRE Corporation, 2023a)) - 配合本篇研究的方法也有幫助 - 或至少提供一個藍圖 - 作者目前正在從最新版LLM中探索最新的TTP生成效率及其benchmark - futrue work包括: - 整合長期記憶和更多資料提升成功率和效率 # Appendix A - Table 1是針對Linux系統的攻擊執行結果 - Table 2跟3則是針對Windows的攻擊執行結果 - 執行結果註記字母與涵義如下 - S = “Successful” - E = “Effective - Minor updated required” - EL = “Effective within Limits - Major updates required” - NW = “Not Working” - IC = “Incorrect Code” # Appendix B The following is the Supplementary material related to this article.