持續應用安全(CAS)研討之:Fuzzing
持續應用安全(CAS)是數世咨詢在軟件供應鏈安全研討會上首次提出的解決我國軟件供應鏈安全問題的新思路。CAS專注于保障數字化應用的,源代碼階段-構建部署階段-上線運行階段,全流程的安全狀態。CAS可以通過安全能力高度融合和安全數據關聯分析的方式,經由統一調度管理形成體系化的解決方案,以達到幫助用戶減少資源投入、整合安全能力和提升安全效率的目的。
持續應用安全(CAS)研討系列文章的主要目的是,通過CAS核心能力提供者對CAS的研究,從不同的角度解讀CAS,共同推進CAS的落地進程。CAS已經得到比瓴科技、酷德啄木鳥、思客云、孝道科技、四維創智、邊界無限、云智信安、云起無垠等核心能力提供者的認同,目前已推出五篇文章,后續還會推出RASP和移動應用安全檢測方向的內容。
開源軟件的盛行使用,極大地加快了業務應用的開發速度,但伴之而來的安全問題屢見不鮮。諸如"NotPetya "供應鏈攻擊、“SolarWinds”供應鏈攻擊等都是典型的軟件供應鏈攻擊事件,此類事件皆造成了超過100億美元的經濟損失。為盡量規避此類事件的再次發生,我們應構建有效的網絡安全防護體系。CAS持續應用安全旨在整合網絡安全應用工具資源,現平臺內部調配、迭代與集成,提高效率的同時降低開發團隊的采購成本。CAS涉及的業務包含了從代碼構建階段的安全開發,到軟件上線運行后的安全應用,保障企業數字化業務的構建、上線和運營,為業務的安全迭代全流程賦能。如下,我們重點為大家介紹CAS持續應用安全下的Fuzzing技術。
Fuzzing技術概述
模糊測試(Fuzzing)最早由威斯康星大學的Barton Miller于1988年提出。最開始,Barton Miller的實驗內容是開發一個基本的命令列模糊器以測試Unix程式。這個模糊器可以用隨機數據來「轟炸」這些測試程式直至其崩潰,從而對應用程序進行安全檢測。在當時,這一簡單的測試方法便已發現UNIX 系統中25%以上的程序崩潰問題,展現出了無與倫比的測試優越性。從那時起,“它”慢慢進入大家的視野。
Fuzzing是一種軟件安全的自動化測試方法,它主要的理念是追尋測試樣例的變異,并通過海量的測試數據來覆蓋更多的程序執行流,同時監控輸入可能導致的應用程序崩潰或異常情況,從而對應用系統的安全性和健壯性進行測試。

模糊測試流程
作為軟件供應鏈安全與研發安全中最前沿的技術之一,模糊測試擁有諸多的先進性與特點:
- Fuzzing是一種自動化技術,一旦fuzzer啟動并運行,它就可以開始自己尋找bug,不需要手動/人工干預,且可以進行自動化持續測試。
- 模糊測試基于底層的二進制程序執行流來判定漏洞。這種基于底層邏輯的漏洞檢測,也使得任何微小的錯誤都能被發現,并反饋到代碼層,意味著任何位置特征的漏洞都可以被及時發現。
- Fuzzing技術不僅能發現已知的安全漏洞,還能發現未知的0day漏洞。
- 模糊測試的技術特點使其漏洞檢測的準確率接近100%,并且可為每個漏洞提供詳細的回溯調試信息,進而降低運維成本,消除誤報帶來的噪音。
Fuzzing賦能CAS
近年來,開發模式已經從傳統的瀑布開發、敏捷開發逐步演進為DevOps開發,大大縮短了業務上線的時間。這種情況下,DevSecOps的安全模式應運而生,本意是使開發、安全和運維不再相對獨立,從一開始就考慮應用和基礎架構的安全性,防止對DevOps工作流程帶來負面影響。然而在踐行DevSecOps模式時,不同的安全產品間的并不互通、難以統一調度,使得人工處置的負擔加重。因此,CAS持續應用安全的概念應運而生。通過對各種安全產品的統一調度,持續地獲得、關聯和分析結果、最后加以自動化處置,使得CAS更貼合現在敏捷、云原生、業務優先的開發模式。Fuzzing作為CAS理念下的重要一環,在軟件供應鏈安全與研發安全中發揮著重要的作用。
CAS安全
前文提到,CAS專注于保障數字化應用的源代碼階段——構建部署階段——上線運行階段全流程的安全狀態。根據上圖所示,在預發布環節需要Fuzzing安全測試技術以檢測SDLC所有階段的安全性和穩定性問題,并使開發人員能夠快速、安全地發布軟件。例如,通過對每個代碼更改運行自動模糊測試來防止回歸上線。
特別是在汽車行業和復雜的嵌入式項目中,需要處理大量不受信任的復雜數據,模糊測試為軟件供應鏈安全與研發安全帶來了極大的保障。事實上,開發人員可以應用類似于單元測試的模糊測試來自動測試他們的安全關鍵模塊是否存在潛在漏洞。但是通過集成級別的模糊測試,它們還可以涵蓋不同模塊之間交互中可能發生的所有復雜和危險的邊緣情況。
云起無垠基于Fuzzing技術自主研發了無垠協議模糊測試系統和無垠代碼模糊測試系統產品。
- 無垠協議模糊測試系統是基于新一代模糊測試技術研發設計的一款漏洞測試工具。該工具目前實現了黑盒協議模糊測試,其通過向金融私有協議、數據庫協議、車聯網協議、5G協議、工控協議、藍牙協議等協議軟件提供非預期的輸入并監視異常結果,以此發現各類已知和未知漏洞,提高協議軟件的魯棒性和安全性,進而高效地幫助企業挖掘和修復協議開發過程中的各類安全問題。截止目前,云起無垠已經為智能車企、安全評測中心提供產品服務。除此之外,該產品也適用于軍隊、信創、工控等眾多場景并為其提供亟需的解決方案。
- 無垠代碼模糊測試系統是云起無垠在AFL基礎之上,融合遺傳變異等算法而研發設計。該測試系統基于反饋學習機制生成海量測試用例,對程序代碼接口進行自動化動態檢測,使缺陷誤報率趨近于零,確保缺陷可定位、可復現,大幅提升安全左移的可落地性。而且,該產品可以在代碼安全檢測場景中對系統源代碼及二進制文件進行動態檢測,檢測目標工程代碼的安全性及健壯性,幫助開發、測試、安全人員快速發現、定位、驗證目標工程的代碼缺陷,并以報告的形式呈現出來,從而可以針對性地制定解決方案。
除此之外,Fuzzing和SCA、SAST三者可以互相兼容、彼此互補,為CAS持續應用安全場景提供一體化的代碼安全解決方案。眾所周知,使用SAST可以發現專有代碼中的安全威脅,使用SCA可以發現開源代碼中的漏洞,使用Fuzzing可以發現已知和未知的安全威脅。此三類技術融合,可以覆蓋開發安全中編碼-測試階段的安全檢測工作,通過早期識別和選擇安全組件提高了產品質量,而且增加了已知和未知安全威脅潛在風險的可見性,降低在開發過程早期發現和修復的漏洞的補救成本,更好地保障業務應用安全上線。
寫在最后
“攻防對抗”是網絡安全的真實寫照,隨著云計算、AI等新技術的不斷演進,未來面臨的安全威脅也會越來越多。而“閉環式”的解決方案可以更好地解決安全問題。CAS持續應用安全融合優秀國產代表廠商的前沿技術,構筑了應用安全的閉環體系,更有針對性地提供了相應的解決方案,幫助業務應用安全運行,助力網安產業穩步向前。
