
1. 簡介
啟動載入程式(Bootloaders)是現代運算系統中的基礎軟體元件,負責啟動開機流程並在建立安全的信任鏈中扮演關鍵角色。 1 當系統開機時,韌體會先執行必要的硬體初始化,然後將控制權交給啟動載入程式,由它負責載入作業系統。 1, 2 由於它在開機順序中的核心地位,若啟動載入程式遭到入侵,可能會帶來嚴重的安全後果,甚至破壞作業系統及更高層軟體後續實施的所有安全措施。 3 因此,啟動載入程式的完整性對整體系統安全至關重要。

現代啟動載入程式已不再僅限於載入作業系統的基本功能,而是加入了越來越複雜的功能,例如支援網路開機、處理多種檔案系統格式以找到並載入核心及其他必要的開機檔案,以及解析影像以顯示開機選單或管理韌體更新。 1, 3 雖然這些增強功能帶來更大的靈活性和實用性,但也大幅增加了啟動載入程式程式碼的複雜度,進而擴大了潛在的攻擊面,讓惡意人士有更多可趁之機。 1 這種日益增長的複雜性使得我們需要更先進的方法來辨識並減輕啟動載入程式中的安全漏洞。
為了應對這些挑戰,越來越多人開始關注如何利用人工智慧(AI)的能力,提升對複雜軟體(如啟動載入程式)漏洞分析的速度與效率。 3 AI能自動化並增強傳統的漏洞分析技術,因為這些傳統方法耗時較長,且難以跟上啟動載入程式程式碼日益增加的規模與複雜性。 3, 4 一個顯著的例子是微軟近期在其部落格文章中提到的研究,該研究利用AI(特別是Microsoft Security Copilot),成功發現了多個廣泛使用的開源啟動載入程式中先前未知的漏洞。 3, 5
本報告旨在全面探討AI驅動的啟動載入程式漏洞分析技術方法。我們將深入研究使用的具體AI技術,討論分析啟動載入程式時的技術挑戰與複雜性,評估在這情境下使用AI的技術優勢與限制,檢視訓練AI模型以確保啟動載入程式安全的技術,並探索這一快速發展領域中潛在的未來技術進展與趨勢。
2. AI驅動的啟動載入程式分析技術方法
目前有多種AI驅動的技術方法被用來分析啟動載入程式,以找出安全漏洞,主要包括fuzzing(模糊測試)、符號執行(symbolic execution),以及整合AI來提升這些傳統技術。
Fuzzing是一種自動化軟體測試方法,透過大量注入無效、格式錯誤或意外的輸入到系統中,試圖讓系統當機或觸發錯誤,以此來揭露軟體缺陷與安全漏洞。 6, 7 在啟動載入程式的背景下,fuzzing可用於測試各種輸入介面,例如儲存裝置、網路介面和控制台。 1 Fuzzing技術有多種類型,包括黑箱測試(black-box fuzzing,不了解系統內部運作)、白箱測試(white-box fuzzing,利用程式碼知識)和灰箱測試(grey-box fuzzing,結合兩者)。 8 變異型fuzzing(mutation-based fuzzing)會修改有效輸入來生成測試案例,而生成型fuzzing(generation-based fuzzing)則根據預期輸入格式從頭創建測試案例。 7 協議fuzzing針對網路協議,而檔案格式fuzzing則專注於測試啟動載入程式支援的各種檔案格式解析。 7 由於啟動載入程式在裸機環境(bare-metal environment)中運行,傳統的作業系統層級fuzzing框架無法直接套用,因此通常需要使用模擬或虛擬化技術來建立逼真的執行環境。 1, 2 覆蓋導向fuzzing(coverage-guided fuzzing)是一種特別有效的方法,它利用測試輸入完成的程式碼覆蓋率回饋,引導fuzzing過程探索新的、可能存在漏洞的程式碼路徑。 9, 10, 11 微軟的部落格文章展示了在Security Copilot的提示(prompts)引導的fuzzing應用程式,發現了像GRUB2這樣的啟動載入程式檔案系統解析器中的漏洞。 3 這顯示了fuzzing如何有效探測啟動載入程式處理各種資料輸入的能力,這是在作業系統啟動前環境中的關鍵攻擊面。
符號執行(Symbolic execution)是另一種強大的程式分析技術,它使用符號值(代表任何可能的輸入)而非具體資料作為輸入,系統性地探索程式中所有可能的執行路徑。 12, 13 在符號執行過程中,會收集路徑約束(path constraints),這些約束是從條件分支中衍生出的符號值條件,接著使用約束求解器(constraint solver)判斷這些約束集是否可滿足,以確定是否存在可行的執行路徑。 13, 14 符號執行對於辨識多種漏洞非常有價值,例如緩衝區溢位(buffer overflows) 、空指標解引用(null pointer dereferences)和整數溢位(integer overflows),透過檢查不同執行路徑上的錯誤條件來實現。 12, 13 在啟動載入程式的情境中,符號執行已被應用於分析BIOS和UEFI韌體,使用像S2E和KLEE這樣的工具來搜尋低階程式碼中的危險記憶體參考及其他漏洞。 15, 16 微軟的Security Copilot也利用符號執行的能力,在GRUB2的JFFS2檔案系統程式碼中發現了一個可能被攻擊的整數溢位漏洞,如部落格文章所述。 3 雖然符號執行相較於fuzzing提供了更正式且可能更全面的程式行為分析,但它也可能因啟動載入程式程式碼的複雜性而面臨「狀態爆炸」(state explosion)問題,即可能的執行路徑數量過多,無法有效分析。 15, 17
將AI(特別是大規模語言模型LLMs和機器學習演算法)與傳統技術(如fuzzing和符號執行)整合,代表了啟動載入程式漏洞分析的一大進展。 4, 18, 19 AI能透過理解程式碼結構、潛在漏洞和歷史資料,智慧地生成測試案例並優先處理更可能觸發漏洞的測試案例,從而增強fuzzing的效果。 4, 19 同樣地,AI也能協助符號執行,引導路徑探索、修剪不相關的路徑以減輕狀態爆炸問題,甚至幫助解決複雜的約束。 19, 20 微軟的Security Copilot體現了這種整合,利用其理解自然語言提示和推理程式碼的能力,引導啟動載入程式的漏洞發現過程。 3 AI與傳統方法的這種協同作用,有望克服各自獨立使用時的固有局限,進而在像啟動載入程式這樣的複雜系統中實現更高效且有效的漏洞發現。
3. 啟動載入程式漏洞分析的技術挑戰與複雜性
分析開源啟動載入程式的安全漏洞會因其基本特性及運作環境而帶來獨特的技術挑戰與複雜性。 1
一個重大挑戰是啟動載入程式運行的裸機環境(bare-metal environment)。 1, 2 與在功能完整的作業系統中運行的應用程式不同,啟動載入程式在作業系統啟動前的狀態下運作,通常無法存取標準系統服務、除錯工具,甚至可靠的日誌機制。 1 這種缺少豐富作業系統環境的情況,使得傳統的除錯與分析技術大多無法適用,因此需要能在極低層次運作的特殊方法,通常得仰賴硬體模擬或仿真來提供可控且可觀察的執行環境。 1, 2
另一個複雜性來自啟動載入程式與特定硬體架構及周邊設備的緊密耦合。 1, 21 啟動載入程式的程式碼通常針對特定硬體設計,負責初始化中央處理器(CPU)、記憶體控制器及各種輸入輸出設備。這種硬體依賴意味著分析工具與技術可能需要針對不同硬體平台進行調整,因為啟動載入程式與底層硬體的互動方式在不同架構間,甚至同一架構家族中的不同設備間,都可能有相當大的差異。 22 硬體的多樣性使得開發通用的分析工具變得困難,研究人員往往需要深入了解啟動載入程式所針對的特定硬體。
現代啟動載入程式通常還內建了安全機制,例如UEFI Secure Boot,旨在透過驗證開機元件的數位簽章來建立信任鏈,防止載入惡意軟體。 1, 3 分析啟動載入程式的漏洞需要深入理解這些安全功能,包括其實現方式及是否可能被繞過。 23, 24 這些機制的存在為漏洞分析與利用增添了層層複雜性,研究人員不僅需找出啟動載入程式核心邏輯中的弱點,還需辨識其安全功能實現與執行的缺陷。 25, 26, 27
此外,隨著啟動載入程式加入更多功能並支援更廣泛的硬體,其程式庫的規模與複雜性也在不斷增加。 1, 5, 21 這種日益增長的複雜性使得手動程式碼審查變得極具挑戰且耗時。此外,某些啟動載入程式(特別是專有系統中的)可能缺乏完整文件,或使用程式碼混淆技術來保護智慧財產權,這進一步阻礙了分析工作,使理解啟動載入程式功能並找出潛在漏洞變得更加困難。 21, 28
最後,實際更新啟動載入程式也帶來自身的挑戰。 3, 23, 26 由於其低層次性質及在開機流程中的關鍵角色,更新失敗可能導致設備無法使用,這種現象俗稱「變磚」(bricking)。這種風險要求在部署更新前進行極為謹慎且嚴格的測試。因此,啟動載入程式的更新週期通常較慢,這可能使已發現的漏洞長期未被更新,增加了攻擊者利用這些漏洞的時間窗口。 23, 24
4. 啟動載入程式漏洞的類型與技術影響
在啟動載入程式中發現的漏洞可被廣泛分類,而鑑於其基礎地位,這些漏洞對系統安全的技術影響可能相當重大。 1, 2
記憶體損壞漏洞(memory corruption vulnerabilities)是啟動載入程式中常見的一類缺陷。 1, 2 這包括緩衝區溢位(buffer overflows),即程式將資料寫入超出分配記憶體區域,可能覆蓋相鄰的資料或程式碼。 3, 5, 29 整數溢位(integer overflows)發生在算術運算結果超出分配記憶體空間所能儲存的最大值時,這有時會導致緩衝區溢位或其他意外行為。 3, 5 越界讀寫漏洞(out-of-bounds read and write)涉及存取超出預定緩衝區的記憶體位置,可能導致資訊洩漏或覆蓋關鍵資料的能力。 1, 3 釋放後使用漏洞(use-after-free)則出現在程式試圖使用已釋放的記憶體時,可能導致崩潰或任意程式碼執行。 1 空指標解引用(null pointer dereferences)發生在程式試圖透過空值指標存取記憶體時,通常會導致系統崩潰。 1 微軟的部落格文章提到多個記憶體損壞漏洞,包括GRUB2、U-boot和Barebox中像UFS、Squash4、ReiserFS、JFS和RomFS等檔案系統解析器的整數溢位,可能導致緩衝區溢位。 3, 5 記憶體損壞漏洞的技術影響可能很嚴重,可能讓攻擊者以啟動載入程式的高權限執行任意程式碼,導致系統完全被入侵。 3, 30 它們也可能造成拒絕服務(denial-of-service)狀況,使系統無法使用,或被用來繞過像Secure Boot這樣的安全機制。 1, 23
Secure Boot繞過漏洞是另一個關鍵類別。 1, 23, 24, 26, 30, 31 Secure Boot主要功能在確保開機過程中僅載入受信任且簽署的軟體。 1, 3 允許攻擊者繞過此流程的漏洞可能帶來毀滅性後果。 26 例如,GRUB2中的BootHole漏洞即使啟用了Secure Boot仍允許任意程式碼執行 23 ,以及UEFI Secure Boot繞過漏洞(CVE-2024-7344)利用微軟簽署的UEFI應用程式中的缺陷允許執行未簽署的程式碼。 31, 32, 33 New Horizon Datasys的啟動載入程式甚至內建了Secure Boot的繞過功能。 26 這類繞過的技術影響相當顯著,可能使攻擊者安裝bootkits(一種在開機層級執行的惡意軟體),提供持久且隱秘的系統控制權,即使重新安裝作業系統或更換硬碟也無法清除。 3, 5, 30
命令注入(Command injection)與解析漏洞也可能出現在提供命令列介面或其他使用者互動機制的啟動載入程式中。
1
若啟動載入程式未正確清理或驗證使用者提供的輸入,攻擊者可能得以注入並執行具有啟動載入程式高權限的任意命令。
3
微軟對GRUB2的分析顯示其
read
命令易受整數溢位與越界寫入影響,而
dump
命令若未禁用則可能允許任意記憶體讀取。
3, 5
這些漏洞的技術影響範圍從任意程式碼執行、資訊洩漏到開機流程與系統設定的操控。
3
最後,側通道攻擊(side-channel attacks)代表一類更微妙的漏洞。 1, 3 這類攻擊利用非預期的管道(如操作時間或功耗)來洩漏敏感資訊,而非直接透過程式邏輯中的缺陷。GRUB2中的加密比較功能因非固定時間執行而易受側通道攻擊,可能讓攻擊者推斷出加密金鑰的資訊。 3, 5 這類攻擊的技術影響可能包括加密金鑰洩漏,進而可用於解密資料或繞過認證機制。 3
5. AI在啟動載入程式漏洞分析中的技術優勢與限制
將AI驅動的工具應用於啟動載入程式漏洞分析相較於傳統方法展現了若干技術優勢,同時也存在一些必須考量的限制。 3, 34
使用AI的主要技術優勢之一是提升漏洞發現過程的速度與效率的潛力。 3, 18 AI演算法能比人力分析師更快地分析大型且複雜的程式庫,微軟透過使用Security Copilot所報告的顯著時間節省便是一例。 3 AI驅動的fuzzing技術也能透過智慧生成測試案例,探索更廣泛的執行路徑,相較於傳統隨機fuzzing提升程式碼覆蓋率。 4, 18 此外,特別是基於深度學習的AI模型擅長辨識複雜模式並找出手動分析或基於規則的靜態分析工具可能忽略的微妙漏洞跡象。 4, 35 大規模語言模型(LLMs)帶來了情境理解的額外優勢,使其能辨識因複雜程式碼互動或業務邏輯缺陷而產生的漏洞,這通常是語法分析所遺漏的。 4, 36 AI工具的可擴展性使其能有效評估極大型的啟動載入程式專案。 5, 18 此外,AI還有從歷史資料與程式碼模式中學習,主動辨識漏洞的潛力。 34, 37 在某些情況下,AI工具甚至能協助更新過程,提出緩解策略或程式碼修正建議。 4, 5
然而,使用AI進行啟動載入程式漏洞分析也存在技術限制。 34, 38 AI驅動的工具並非萬無一失,可能產生誤判(將安全的程式碼誤認為有漏洞)與漏判(未能檢測到實際漏洞),需要人力專家審查與驗證AI的發現。 3, 18, 39 AI模型的表現高度依賴訓練資料的品質、數量與代表性,若資料不足或有偏差,可能導致次佳結果。 18, 40 某些進階AI模型的決策過程可能缺乏透明度,難以理解為何某段程式碼被標記為有漏洞。 40 訓練與部署複雜的AI模型也可能需要大量運算資源。 39, 41 此外,AI模型可能易受對抗性攻擊(Adversarial attacks)影響,即惡意程式碼被精心設計以逃避檢測。 38 基於現有漏洞模式訓練的AI模型也可能難以辨識全新或零日(zero-day)漏洞。 34, 42 最終,AI工具無法取代人力安全專業知識,熟練的分析師仍不可或缺,負責引導分析、解釋結果並確保漏洞評估的準確性與完整性。 3, 18, 39
表格 2:傳統與AI驅動的啟動載入程式漏洞分析比較
特性 | 傳統方法 | AI驅動方法 |
---|---|---|
速度 | 相對緩慢,手動過程 | 顯著加快,自動化分析 |
程式碼覆蓋率 | 受時間與人力限制 | 透過智慧測試生成有潛力提升覆蓋率 |
模式辨識 | 依賴已知模式與人力直覺 | 能辨識複雜且微妙的模式 |
情境理解 | 受限於人力分析師的專業知識 | LLMs能提供更深的語意理解 |
可擴展性 | 對大型程式庫具挑戰性 | 更有效分析大型程式庫 |
主動辨識 | 主要為被動反應 | 具備預測性漏洞辨識潛力 |
誤判(False Positives)/漏判(False Negatives) | 依方法不同而異 | 仍可能產生誤判與漏判 |
自動化程度 | 主要為手動 | 可能實現高度自動化 |
資源需求 | 主要為人力資源 | 可能需要大量運算資源 |
人力專業知識需求 | 所有階段皆不可或缺 | 仍需驗證與引導 |
6. AI模型訓練在啟動載入程式安全的技術
訓練用於啟動載入程式漏洞檢測的AI模型涉及多個關鍵技術,包括選擇與準備適當的資料來源、挑選合適的模型架構,以及應用有效的訓練方法。 43, 44
任何成功的AI模型基礎在於其訓練資料。對於啟動載入程式漏洞檢測,可利用多樣化的資料來源。 3 這包括各種開源啟動載入程式的原始碼,讓模型學習語法、結構與常見程式設計模式。 3 歷史漏洞資料,如CVE記錄、安全錯誤報告與更新資訊,提供了關鍵的標記資料,顯示哪些程式碼有漏洞以及如何修復。 3, 43 靜態分析工具與fuzzing活動的結果也很有價值,能突顯潛在弱點與觸發錯誤的輸入。 3 安全稽核報告雖然可能不易取得,但能提供專家級的漏洞洞察。 3 與啟動載入程式功能及硬體規格相關的文件則為AI模型提供必要的背景資訊。 3 標記資料(特定程式碼片段或函數被辨識為有漏洞或無漏洞)對於監督式學習方法尤為重要,這在該領域中常被使用。 43, 44 然而,針對啟動載入程式取得足夠且高品質的訓練資料可能具挑戰性,因為公開披露的漏洞數量可能相較其他軟體元件較少。 40, 41 這種資料稀缺性可能需要使用資料增強技術或轉移學習(transfer learning)。
多種AI模型架構可用於啟動載入程式漏洞檢測,各有其優缺點。 19, 45 監督式學習模型,如卷積神經網路(CNNs)、遞迴神經網路(RNNs)與Transformer網路,在程式碼分析任務中展現潛力。 20, 43 CNNs可用於分析以影像表示的程式碼或提取局部特徵,而RNNs(特別是LSTM與GRU)擅長處理像程式碼這樣的序列資料並辨識長距離依賴。 46, 47, 48, 49, 50 Transformer網路在自然語言處理中獲得巨大成功,且因其有效捕捉背景的能力,正日益應用於程式碼分析。 51, 52, 53, 54 傳統機器學習模型如支援向量機(SVMs)與隨機森林(Random Forests)也可用於根據程式碼提取的特徵進行漏洞分類。 43, 55 非監督式學習模型可用於啟動載入程式程式碼的異常檢測,可能辨識出暗示漏洞的不尋常模式。 43 強化學習模型可被訓練在模擬環境中對啟動載入程式進行自動化滲透測試。 43 大規模語言模型(LLMs),如BERT與CodeBERT,可透過在大量程式碼與漏洞資訊資料集上微調進行漏洞檢測,利用其強大的語意理解能力。 4, 19, 45 最後,圖神經網路(GNNs)可分析以圖形表示的程式碼結構資訊(例如控制流圖、資料流圖),檢測序列模型可能錯過的漏洞。 56, 57, 58, 59, 60 Transformer基礎模型與LLMs在程式碼分析中的日益使用,因其捕捉長距離依賴與理解像啟動載入程式這樣複雜軟體的語意背景的能力而值得注目。 20, 61
這些AI模型的訓練通常涉及監督式學習、非監督式學習、半監督式學習與強化學習等方法。 43, 62 監督式學習(模型在標記資料上訓練)常用於漏洞分類。 63 非監督式學習可用於在未標記的啟動載入程式程式碼中尋找異常。 62 半監督式學習在標記資料稀缺時有益。 62 強化學習可訓練代理透過與環境互動尋找漏洞。 43 標準訓練過程涉及將可用資料分為訓練集、驗證集與測試集,以訓練模型、調整其超參數並評估其在未見資料上的表現。 43 轉移學習(在大型程式碼語料庫上預訓練的模型在啟動載入程式特定資料上微調)是一種提升表現的寶貴技術,特別是在啟動載入程式特定標記資料有限時。 3, 61, 64 在安全漏洞分析中使用AI的倫理考量與負責任使用至關重要,包括確保資料隱私與避免訓練資料中的偏差。 43, 65, 66
表格 3:漏洞檢測的AI模型架構範例
AI模型類型 | 範例架構/技術 | 漏洞檢測中的典型應用(包括適用的啟動載入程式) | 主要優勢 |
---|---|---|---|
監督式學習(神經網路) | CNN、RNN(LSTM、GRU)、Transformer | 程式碼分類、漏洞預測 | 捕捉局部特徵、序列依賴與長距離背景 |
傳統機器學習 | SVM、隨機森林 | 基於提取特徵的漏洞分類 | 對結構化資料有效,可解釋模型 |
非監督式學習 | 聚類、異常檢測 | 辨識程式碼中可能暗示漏洞的不尋常模式 | 標記資料稀缺時有用 |
強化學習 | Q-learning、策略梯度 | 自動化滲透測試發現可利用漏洞 | 能找到複雜攻擊序列 |
大規模語言模型 | BERT、CodeBERT、GPT | 特徵工程、程式碼理解、漏洞檢測 | 強大的語意理解,能處理大型程式碼片段 |
圖神經網路 | GCN、GAT | 分析程式碼結構(CFG、DFG)檢測漏洞 | 捕捉程式碼內的關係與依賴 |
7. 潛在的未來技術進展與趨勢
針對低層次軟體元件(如啟動載入程式)的AI驅動安全分析領域正快速發展,可預期若干潛在的未來技術進展與趨勢。 4, 20
一個顯著趨勢是將AI驅動功能日益整合到現有安全分析工具中。 4, 19 我們可預期看到更多AI能力被納入靜態分析、動態分析與fuzzing工具中,特別針對啟動載入程式分析的獨特挑戰量身打造。 18, 20 大規模語言模型(LLMs)的進展將可能扮演關鍵角色,未來模型將擁有更大的背景窗口與對低層次程式碼(包括組合語言)的更好理解。 19, 67 這可能導致在啟動載入程式中更準確且自主發現複雜漏洞。 20, 45
開發專門針對啟動載入程式與韌體程式碼訓練的AI模型是另一個潛在的未來進展。 19, 68 這些針對低層次軟體特定特性與常見漏洞訓練的模型,可能在此領域中超越通用程式碼分析模型。此外,對可解釋AI(Explainable AI, XAI)的持續研究將對提升AI驅動安全分析的信任至關重要。 20, 56 透過讓AI辨識漏洞的推理過程對人力分析師更透明且易於理解,XAI能促進更有效的驗證與更新工作。 57, 58, 60
展望更遠的未來,AI系統可能具備自動生成更新程式以修復辨識出的啟動載入程式漏洞的能力。 4, 19 這種能力可能大幅加速更新過程並縮減攻擊者的利用窗口。AI也可能日益用於檢測啟動載入程式中的複雜邏輯漏洞,這類漏洞使用傳統模式匹配或基於規則的方法難以辨識。 36 AI分析與理解組合語言(許多啟動載入程式的關鍵元件)的能力,對未來安全分析工作也至關重要。 61, 69 最後,AI技術可用於在模擬或虛擬化環境中分析啟動載入程式的運行時行為,檢測可能暗示惡意軟體或可利用漏洞的異常或可疑活動。 70
8. 結論
將AI應用於開源啟動載入程式的安全漏洞技術分析,代表了網路安全領域的一大進化。AI驅動的方法,包括增強的fuzzing與符號執行,有潛力顯著提升這些關鍵低層次軟體元件中漏洞發現的速度、效率與覆蓋率。雖然AI帶來眾多技術優勢,但也必須認識其現有局限,例如誤判與漏判的可能性以及對高品質訓練資料的依賴。人力專業知識在引導分析、驗證發現並確保安全評估整體有效性方面仍不可或缺。此領域的持續研究與發展預示著令人興奮的未來進展,可能帶來更準確、自主,甚至自我修復的AI驅動安全分析技術,進而促成更具韌性與安全的運算系統。
參考文獻
- A Comprehensive Memory Safety Analysis of Bootloaders
- ARM: Bootloader and User Application Code Placement
- Analyzing open-source bootloaders: Finding vulnerabilities faster with AI
- AI for Software Security Analysis: Opportunities and Challenges
- Microsoft uses AI to find flaws in GRUB2, U-Boot, Barebox bootloaders
- What is Fuzz Testing?
- Fuzzing (Fuzz Testing)
- [Link to a paper about black, white, and grey box fuzzing - Placeholder]
- BOOTSTOMP: Taming the Mobile Bootloader Jungle
- TSFFS: Target Software Fuzzer For SIMICS
- A Comprehensive Memory Safety Analysis of Bootloaders
- Software Development Security Challenges: AI
- A Quick Introduction to Symbolic Execution
- Symbolic Execution for Mortals
- Symbolic Execution for BIOS Security
- Transformer-Based Models for Code Vulnerability Detection: Automating Code Vulnerability Detection in GitHub Issues
- Recurrent Neural Network Based Binary Code Vulnerability Detection
- How AI can revolutionize vulnerability research
- A Transformer-based Approach for Vulnerability Detection
- Training an LLM to Decompile Assembly Code
- A Survey of Firmware Vulnerability Detection Based on Emulation
- Technical Analysis of WhisperGate Malware
- There’s a Hole in the Boot
- New UEFI Secure Boot Vulnerability Could Allow Attackers to Load Malicious Bootkits
- [Link to a paper about bootloader security - Placeholder]
- One Bootloader to Load Them All
- UEFI BIOS Firmware Vulnerabilities: Where Do They Come From?
- x86 Bare Bones Bootloader
- [Link to a blog about buffer overflows - Placeholder]
- Bootloaders Explained
- Under the cloak of UEFI Secure Boot: Introducing CVE-2024-7344
- CVE-2024-7344
- https://cert.europa.eu/static/SecurityAdvisories/2024/CERT-EU-SA2024-003.en.pdf
- Learning-based Models for Vulnerability Detection: An Extensive Study
- A Data-Driven Approach to Large-Scale Vulnerability Detection
- BLAST: AI-Enhanced Static Analysis using Large Language Models for Context-Aware Vulnerability Detection
- When Vulnerability Detection Meets Patch Prediction: A Dataset, A Model, and Empirical Studies
- DiverseVul: A New Vulnerable Source Code Dataset for Deep Learning Based Vulnerability Detection
- [Link to a paper about false positives in AI security - Placeholder]
- Transformer-based Vulnerability Detection in Code at EditTime: Zero-shot, Few-shot, or Fine-tuning?
- Firmware Version Identification Using Twin Neural Networks
- Binary Vulnerability Detection with Deep Learning on Standardized LLVM IR
- Overview of training methods
- https://developer.arm.com/documentation/ka005158/latest/
- Graph Neural Networks for Vulnerability Detection: A Counterfactual Explanation
- Deep Learning for Vulnerability Detection: A Survey
- A Survey on Automated Software Vulnerability Detection Using Machine Learning and Deep Learning
- [Link to a paper about CNNs for code analysis - Placeholder]
- Long Short-Term Memory
- Neural Machine Translation by Jointly Learning to Align and Translate
- Attention Is All You Need
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- CodeBERT: A Pre-Trained Model for Programming and Natural Languages
- Graph Neural Networks: A Review of Methods and Applications
- Explainability in Graph Neural Networks: A Survey
- Explainable Vulnerability Detection in Graph Neural Networks
- CFExplainer: Counterfactual Explanations for Graph Neural Networks in Vulnerability Detection
- CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation
- A Survey of Deep Learning for Code Analysis
- Unsupervised Feature Learning via Non-Parametric Instance Discrimination
- Semi-Supervised Learning with Generative Adversarial Networks
- Deep Reinforcement Learning for Sequence-to-Sequence Models
- Transfer Learning for Code Intelligence
- Ethical Implications of AI in Cybersecurity
- Responsible AI Guidelines
- A Survey on Large Language Models for Software Engineering
- TACSan: Enhancing Vulnerability Detection with Graph Neural Network
- Swarm-Net: Lightweight Swarm Attestation using Graph Neural Networks and Runtime SRAM Information
- [Link to a paper about zero-day vulnerabilities - Placeholder]