<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>

    從源代碼的控制流圖中學習特性以定位缺陷

    VSole2022-04-27 18:39:39

    缺陷定位在軟件維護中起著重要的作用。目前有研究者基于CFG開展錯誤定位的研究,然而單純使用CFG作為源代碼的中間表示很難表達源代碼完整的語義。因為CFG中相鄰的節點在語義上可能完全不相關;而且位于CFG上方的節點會影響執行路徑上的后續節點的語義。在本文中,作者提出需要考慮流的特征,使用基于流的GRU從CFG中學習特征。基于流的GRU利用由CFG表示的程序結構來沿著執行路徑傳播語句的語義,很好地反映了流的本質。 

    文章給出了如圖1所示的Motivation示例。從圖中可以看出,兩個相鄰的節點(如節點1和節點2)在語義上是不相關的,而距離較遠的節點6和節點1、節點4之間確實有語義關系的。因此,不能用GNN來從鄰居節點聚集語義。

    Fig.1 Motivation


    文章有如下貢獻:

    1. 作者控制流圖的流性質(前面的語句可能影響執行路徑上后續語句的語義,而相鄰節點的語義可能不相關)應該被充分考慮。
    2. 提出了一個基于流的GRU從CFG中學習特征,充分考慮了流的性質和路徑之間的內在關聯。

    缺陷定位任務可以表示為:,R為一系列缺陷報告;,C為一系列源代碼文件。缺陷定位任務可表示為:,Y是標簽。文章所提模型框圖如圖2所示,由4個部分組成:源代碼特征提取、缺陷報告特征提取、融合和預測。

    Fig.2 模型框圖


    對于缺陷報告特征提取層,作者采用文章“Convolutional neural networks for sentence classifcation”中提到的方法提取缺陷報告的語義特征。源代碼特征提取層分為3個子層:xxx;融合層將缺陷報告特征和源代碼特征作為輸入,使用全連接網絡進行特征融合。

    文章將源代碼對應的CFG表示為,其中V表示CFG的節點(也就是一條語句),E表示CFG的邊,X表示節點V對應的語句層特征矩陣。在語句層特征學習中,文章使用駝峰命名拆分源代碼的每一個token,刪除不重要的標點符號,然后使用word2vec對token進行嵌入;接著使用1D-CNN提取token的語義特征。基于流的GRU設計如圖3所示,算法如圖4所示。

    Fig.3 基于流的GRU框圖

    Fig.4 基于流的GRU算法

    源代碼
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    0x01 工具介紹SCodeScanner 代表源代碼掃描器,用戶可以在其中掃描源代碼以查找關鍵漏洞。此掃描程序的主要目標是在代碼發布到 Prod 之前找到源代碼中的漏洞。目前支持的最新漏洞有:CVE-2022-1465,CVE-2022-1474,CVE-2022-1527,CVE-2022-1532,CVE-2022-1604。
    0x01 工具介紹SCodeScanner 代表源代碼掃描器,用戶可以在其中掃描源代碼以查找關鍵漏洞。此掃描程序的主要目標是在代碼發布到 Prod 之前找到源代碼中的漏洞。目前支持的最新漏洞有:CVE-2022-1465,CVE-2022-1474,CVE-2022-1527,CVE-2022-1532,CVE-2022-1604。
    源代碼靜態分析方法——代碼屬性圖Code Property Graphs
    SLocker源代碼由一名用戶發布,該用戶使用“fs0c1ety”作為在線綽號,并敦促所有GitHub用戶貢獻代碼并提交錯誤報告。2016年,安全研究人員在野外發現了400多個SLocker勒索軟件的新變種,并以感染數千臺安卓設備而聞名。一旦設備上有加密文件,安卓勒索軟件就會劫持手機,完全阻止用戶訪問,并試圖威脅受害者支付贖金解鎖手機。
    Cobra是一款源代碼安全審計工具,支持檢測多種開發語言源代碼中的大部分顯著的安全問題和漏洞。
    近日,RedHunt 實驗室的研究人員發現,梅賽德斯-奔馳無意中留下了可在線訪問的私鑰,暴露了內部數據,包括公司的源代碼。目前尚不清楚數據泄露是否暴露了客戶數據。
    AFL 源代碼速通筆記
    2023-04-24 09:22:40
    AFL 作為一個現在仍然適用且比較經典的 fuzzer,筆者打算從它開始。先說結論,這一步的目的其實是為了向代碼中插樁,完成插樁后其實還是調用原生的 gcc 進行編譯。其實這個描述有些偏頗,插樁其實是 afl-as 負責的,不過在這里,筆者將 afl-gcc 和 afl-as 放到同一節,因此用了這樣的表述,下文會具體分析 afl-as 的原理。
    Twitter 源代碼泄露
    2023-03-28 11:25:18
    Cyberkendra 網站披露,推特最近遭遇了一次罕見的源代碼泄露事件,一份法律文件顯示推特部分源代碼在網上曝光。
    Web 托管巨頭 GoDaddy 證實它遭到了持續多年的入侵,源代碼失竊服務器也被安裝惡意程序。
    Web 托管巨頭 GoDaddy 證實它遭到了持續多年的入侵,源代碼失竊服務器也被安裝惡意程序。GoDaddy 是在去年 12 月初收到客戶報告其網站被重定向到隨機域名后發現未知攻擊者入侵了它的 cPanel 共享托管環境。它的調查顯示攻擊者在它的服務器上活躍了多年,近幾年披露的多起安全事故都與此相關。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类