<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    神經元模糊測試(Fuzzing):更快測試軟件安全性的方法

    VSole2023-03-20 14:09:16

    2021年8月25日

    寫在前面:

    這幾天最熱的話題無疑是GPT4了,百度也推出了文心一言。chatGPT3.5讓我們倒吸一口冷氣,GPT4則讓我們感到有些麻木了,似乎AI就應該這么厲害,而且還會越來越厲害,直到有一天讓大多數人感到自己似乎沒有必要努力學習了,需要的時候問問GPT就行了。這看似一種進步,你能直接獲取想要的結果,但缺失了知識獲取的過程,當然也失去了很多思考的過程。長遠看,提高了效率,削弱了人的學習和創新能力,這也是很多學校禁止使用GPT的原因。最有意思和可怕的一點是,未來互聯網上充斥著事實知識,也就是所謂真的知識,還有海量的假的知識,也就是人利用AI生成的不實知識,將使不了解過程和原理的一些人,真假難辨。

    不過從另一方面看,很多知識也確實大大貶值。知識獲取變得如此的簡單直接,那我們的一些知識工作者,技術工作者的意義還在哪里呢?坦率地說,我還真想不清楚。客戶問你一個問題的時候,你不能說,您去問問GPT吧,雖然你可能自己去偷偷地查詢一下。但你給用戶做的解答,不能僅限于知識了,而是要橫向結合自己的行業經驗,縱向結合自身的知識體系,提供更有價值的見解,實際上,對人的要求更高了,你要真正地思考,問自己為什么要這樣,還能怎么樣,徹底理解這個問題了嗎?GPT會如何回答,我和它是否能有所不同!對很多行業都是如此,單純地重復,記憶,而不是開放地關聯知識,特別是結合自身體驗的關聯,都將變得沒有任何意義。雖然事實上,GPT關聯的已經很好了,但作為人類的我,這可憐的智商,也只能勉強想到這個答案來安慰自己了。

    看看咱們的孩子,都在超前學習,小學生學初中課程,初一的孩子開始學高中課程,大一就準備考研,天天瘋狂地自轉。沒有時間思考,也沒有時間選擇,只是貪婪地攫取,攫取一些其實價值不大的知識。在未來的競爭中,就會變成無源之水。

    當然了,未來會怎樣,現在該怎樣,沒人能回答,就人類的本性而言,即使下一秒會死亡,現在也還是要競爭,爭取成為晚點消失的那個人,晚一秒也好。所以,擁抱變化,尋找新的機會,該學還得學,該干還得干!不然嘞???????????????????????????????????

    模糊測試我不是很懂,也屬于開發安全中的一部分,在國內的應用日益增加,正好看到這份資料,就順便學習和給大家介紹一下。

    神經元模糊測試(Fuzzing):更快測試軟件安全性的方法

        軟件漏洞是對計算機系統安全的嚴重威脅。它們往往多年不被發現,直到發現時為時已晚,后果不可逆轉。為了找到這些弱點,軟件安全測試人員和開發人員通常必須手動測試整個代碼庫,并確定是否存在任何漏洞。然而,由于現代軟件項目的規模,這可能需要幾個月甚至幾年的工作。

        處理這一切的一種方法是模糊測試(fuzzing)。模糊測試測試過程向代碼或軟件隨機輸入,尋找傳統測試技術可能無法發現的錯誤。近年來,像神經元模糊測試這樣的方法已經出現,以使應用程序安全測試更快、更準確。

    什么是模糊測試(Fuzzing)?

        模糊測試是一種用于發現軟件或計算機系統中存在的缺陷的技術。使用模糊測試技術的目的不僅是創建一種有效的測試方法,而且還可以識別代碼中的任何漏洞,并在它們成為公司網絡安全的嚴重問題之前解決它們。

        Barton Miller在20世紀80年代末為研究生水平的大學操作系統課程開發了模糊測試概念,此后在安全研究人員和應用程序安全評測人員中迅速流行起來。

        通常,模糊測試通過提供無效輸入,如隨機數據、畸形數據或其任意組合來工作,并試圖迫使程序生成錯誤。這是為了看看它如何響應,然后識別潛在的錯誤。模糊測試可以手動或自動完成,后者是最常用的方法。

    模糊測試的方法

        模糊測試大致分為三類:黑盒模糊測試、白盒模糊測試和灰盒模糊測試。

    • 黑盒模糊測試
    • (Blackbox Fuzzing): 黑盒模糊測試是一種涉及蠻力輸入和隨機數據輸入的測試類型。在這種情況下,測試人員對目標軟件的內部結構一無所知。
    • 白盒模糊測試
    • (Whitebox Fuzzing):依賴于應用程序方法相關知識的測試類型。這可以通過二進制修改和代碼插樁來實現。在這里,測試人員有了解內部情況,并可以使用這些知識來生成更有效的輸入。
    • 灰盒模糊測試
    • (Greybox Fuzzing):灰盒模糊測試與黑盒模糊測試非常相似。測試人員不知道目標程序的結構,但是他們根據從過去運行中觀察到的行為,使用一個反饋循環來來指導他們的搜索。它還涉及有限的源代碼評估,例如使用輕量級代碼插樁計算代碼覆蓋率。基于隨機突變的灰盒模糊測試策略已經產生了模糊測試軟件,如AFL (American Fuzzy Lop),它已經成功地檢測了復雜程序中的大量現實問題。

    模糊測試軟件工作原理

        模糊測試軟件是一種自動將數據(隨機數據或突變數據)注入程序以發現問題的程序。它通常從一組種子輸入文件開始,通過隨機突變或約束求解不斷修改這些文件以生成惡意輸入。

        由于惡意輸入的格式可能相當復雜,生成惡意輸入通常需要數百萬次突變。因此,模糊測試過程可以被視為一個大規模的搜索問題,以找到一組導致更高的代碼覆蓋率和更多崩潰的好的突變。

    傳統模糊測試的局限性

        傳統的模糊測試測試有許多障礙,包括如何成功地更改輸入種子文件、提高代碼覆蓋率和避免格式驗證,同時還要測試數千行代碼。

        這促使人們需要開發一種準確有效的模糊測試技術來取代傳統的模糊測試軟件。為了解決這些問題,機器學習技術被提出作為模糊測試的一種新方法。

    什么是神經元模糊測試?

        神經元模糊測試是一種新的測試軟件安全性的方法,它不依賴于黑盒技術。相反,它依賴機器學習和神經網絡。

        例如,隨著人工智能迅速普及,微軟研究人員已經能夠使用深度神經網絡和機器學習來改進模糊測試技術,通過學習以前的經驗來更好地檢測錯誤。神經元模型開發了一個函數來預測輸入文件中的有利(和不利)位置,以便它們可以根據先前的突變和相關數據執行模糊測試突變。

        神經元模糊測試非常類似于傳統的模糊測試過程,即開發人員編寫測試數據來查找錯誤。不同之處在于神經模糊測試使用機器學習技術來生成數據,因此不需要人工輸入。

        神經模糊測試是一種調用神經網絡生成隨機輸入數據以發現軟件漏洞的過程。它是一種軟件自動安全測試的方法。它利用人工生成的神經元網絡來改變程序指令,然后檢查崩潰報告,以發現潛在的漏洞的特征。

        神經元模糊測試是一個相對較新的概念,隨著深度神經網絡的引入,它越來越受到關注,為開發方法來識別軟件和網絡中的漏洞提供了可能性,使用機器學習技術來生成輸入,觸發錯誤。

        神經模糊測試將識別出一些用更傳統的方法不可能發現的錯誤,因為只有當發送給程序的輸入數據不是預期的時候,錯誤才會發生。

    神經元模糊測試的優缺點

        神經模糊測試是一種在程序代碼中發現錯誤的創新方法。當涉及到尋找傳統模糊測試測試方法無法發現的可利用漏洞時,它尤其有用。

        神經模糊測試的一個主要優勢是它可以探索系統的不同部分,包括測試人員可能沒有探索過的路徑。通過這種方式,神經模糊測試可以發現人類可能忽略的錯誤,并提高測試過程的效率和準確性。

        這種技術可以快速發現一段軟件代碼中的許多問題,但由于應用程序不斷崩潰和重新打開,它也可能導致不穩定,導致數據丟失和安全漏洞。

    開發人員可以從神經模糊測試中獲益良多,因為它不僅可以識別問題,還可以揭示最終原因,以及攻擊者在現實世界的攻擊中如何與之交互。它確定了漏洞的存在,允許檢測問題,而不必經歷誤報。

        測試版本會讓他們知道他們是否忽略了任何其他漏洞,從而更容易為他們試圖使用模糊測試的軟件創建準確的模型,并避免正在運行的應用程序上工作的潛在不穩定性。

    開源神經元模糊測試工具

        網絡安全供應商還沒有做太多的神經元模糊測試,但有一些自動化和開源的模糊測試工具。這些包括:

    • OneFuzz:
    •  OneFuzz是一個開源的自托管開發者平臺,目前由微軟開發,取代了之前的MSRD(The Microsoft Security Risk Detection,微軟安全風險檢測)模糊測試服務。

    URL:https://github.com/microsoft/onefuzz

    • ClusterFuzz:
    • 這個來自谷歌的開源模糊測試基礎設施自動化了從錯誤發現到分類(正確的重復數據刪除、一分為二)、錯誤報告和自動錯誤報告關閉的整個過程。

    URL:https://opensource.googleblog.com/2019/02/open-sourcing-clusterfuzz.html?m=1

    • Fuzzbuzz:
    • 這是一個自動化的智能平臺,使模糊測試實現開發人員友好,因為它不需要代碼測試。

    URL:https://fuzzbuzz.io/

    • Defensics:
    • 這是一個全面的、可適應的、自動化的黑盒模糊測試軟件,幫助企業快速有效地發現和修復軟件中的安全缺陷。

    URL:https://www.synopsys.com/software-integrity/security-testing/fuzz-testing.html

    • Gitlab Protocol Fuzzer:
    • 以前稱為Peach Fuzzer,這個模糊測試軟件最近被Gitlab收購,提供了一個使用協議模糊測試來發現許多其他工具無法發現的漏洞和錯誤的平臺。

    URL:https://about.gitlab.com/blog/2021/03/23/gitlab-open-sources-protocol-fuzz-test-engine/

    • 其他工具
    • 包括libFuzzer,  URL: https://llvm.org/docs/LibFuzzer.html

    和honggfuzz,  URL: https://github.com/google/honggfuzz

    機器學習模糊神經網絡
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    隨著網絡的發展,傳輸控制協議/網際協議(Transmission Control Protocol/Internet Protocol,TCP/IP)架構已經不能適應現實的通信需求,存在諸多弊端。命名數據網絡(Named Data Network,NDN)在內容分發、移動性支持以及內生安全等方面具有獨特優勢,成為未來網絡架構方案中極具代表性的一種。
    對決策者和從業者來說,務實的做法是細致了解哪些任務可以從機器學習中受益,哪些任務不能。
    軟件漏洞是對計算機系統安全的嚴重威脅。它們往往多年不被發現,直到發現時為時已晚,后果不可逆轉。模糊測試是一種用于發現軟件或計算機系統中存在的缺陷的技術。通常,模糊測試通過提供無效輸入,如隨機數據、畸形數據或其任意組合來工作,并試圖迫使程序生成錯誤。神經元模糊測試是一種新的測試軟件安全性的方法,它不依賴于黑盒技術。
    2008年在安全社區中所知道的windows惡意可執行軟件大約有1000多萬個,2013年這個數字達到了1億,2020年安全社區已知的windows惡意可執行軟件數量已經超過5億[1],這個數字還在持續增長。
    當前網絡入侵檢測大多使用人工特征,但是人工特征往往不能適應新型攻擊,重新設計人工特征又需要專家知識。對此,提出了一種算法,該算法從網絡流量數據中提取會話作為樣本,并將樣本送入兩個神經網絡,會話的一系列有時間順序的數據包視為一維序列送入門控循環單元,融合會話的一系列數據包視為二維圖像送入卷積神經網絡
    隨著入侵者的攻擊手段日趨智能化、復雜化,傳統的機器學習技術對異常攻擊行為的檢測有效性在下降。近年來,深度學習以其獨特的學習機制,利用大數據和高算力達到學習的高準確率。通過廣泛的文獻調查,目前已經有很多基于深度學習設計的入侵檢測系統。本綜述在對傳統機器學習技術和深度學習技術進行對比后,詳述了基于深度學習和數據集的入侵檢測系統。
    將深度學習的各種行為檢測融合到決策模型中。該模型有助于檢測許多復雜的攻擊和惡意軟件運動。例如,該模型發現了Bondat蠕蟲的一種新變種,它試圖將受影響的計算機變成感染網絡的僵尸。Bondat利用感染網絡入侵網站,...
    AI安全論文第19篇介紹惡意代碼分析經典論文DeepReflect,希望您喜歡
    針對當前的入侵檢測方法普遍存在準確率與泛化性較低的問題,提出了一種基于卷積神經網絡(Convolutional Neural Network,CNN)和權重縮減門控循環單元(Weight Reduction Gated Recurrent Unit,WRGRU)的網絡入侵檢測模型(CNN-WRGRU)。該模型首先利用 CNN 進行入侵檢測數據集的特征提取,其次利用 WRGRU 來學習數據特征之間的
    Bleeping Computer 網站披露,南澳大學(University of South Australia)和查爾斯特大學(Charles Sturt University)的教授開發出一種新算法,可用于檢測和攔截對無人駕駛軍用機器人的中間人(MitM)攻擊。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类