<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-06-28 19:05:15
    原文標題:Software Visualization and Deep Transfer Learning for Effective Software Defect Prediction
    原文作者:Chen J, Hu K, Yu Y, et al.
    原文鏈接:https://dl.acm.org/doi/abs/10.1145/3377811.3380389
    原文來源:ICSE 2020
    筆記作者:zhanS@SecQuan
    筆記小編:cherry@SecQuan

    論文的數據集和代碼已開源:https://zenodo.org/record/3373409#.YrpiEBVBxHW。

    文章的動機是避開源代碼的中間表示,將源代碼表示為圖像,直接提取代碼的語義信息以改進缺陷預測的性能。

    首先,看到如下圖所示的motivation示例。File1.java和File2.java兩個示例中,雖然都包含了1個if語句、2個for語句和4個函數調用,但代碼的語義和結構特征是不相同的。為驗證將源代碼轉換成圖像是否有助于區分不同的代碼,作者進行了實驗:將源代碼根據字符的ASCII十進制數對應到像素,排列成像素矩陣,獲取源代碼的圖像。作者指出,不同的源代碼圖像存在差異。

    Fig. 1 Motivation Example

    文章主要的貢獻如下:

    1. 將代碼轉換成圖像,從中提取語義和結構信息;
    2. 提出一種端到端的框架,結合自注意力機制和遷移學習實現缺陷預測。

    文章提出的模型框架如圖2所示,分為兩個階段:源代碼可視化和深度遷移學習建模。

    Fig. 2 Framework

    1. 源代碼可視化
    2. 文章將源代碼轉換成6個圖像,過程如圖3所示。將源代碼字符的10進制ASCII碼轉換成8bit無符號整數向量,按行和列對這些向量進行排列,生成圖像矩陣。8bit整數直接對應到灰度等級。為解決原始數據集較小的問題,作者在文章中提出了一種基于顏色增強的數據集擴充方法:對R、G、B三個顏色通道的值進行排列組合,產生6個彩色圖。這里看著挺迷的,變換了通道值后,語義和結構信息應該有所改變吧?但是作者在腳注上進行了解釋,如圖4所示。
    3. Fig. 3 源代碼可視化流程

    Fig. 4 文章腳注2

    1. 深度遷移學習建模
    2. 文章使用DAN網絡來捕獲源代碼的語義和結構信息。為增強模型對重要信息的表達能力,作者在原始DAN結構中加入了Attention層。訓練與測試流程如圖5所示,其中conv1-conv5來自于AlexNet,4個全連接層fc6-fc9作為分類器。
    3. 作者提到,對于一個新的項目,訓練深度學習模型需要有大量的標簽數據,這是困難的。所以,作者首先在ImageNet 2012上訓練了一個預訓練模型,使用預訓練模型的參數作為初始參數來微調所有卷積層,進而減少代碼圖像和ImageNet 2012中圖像的差異。

    Fig. 5 訓練與測試流程

    1. 模型訓練和預測
    2. 對Source項目中有標簽的代碼和Target項目中無標簽的代碼生成代碼圖像,同時送入模型;二者共享卷積層和Attention層來提取各自的特征。在全連接層計算Source和Target之間的MK-MDD(Multi Kernel Variant Maximum Mean Discrepancy)。由于Target沒有標簽,所以只對Source計算交叉熵。模型使用mini-batch隨機梯度下降沿著損失函數訓練模型。對每一個對的500個epoch,根據最好的F-measure從中選出一個epoch。
    3. 在實驗部分,作者選擇了PROMISE數據倉庫中所有開源的Java項目,收集了它們的版本號、class name、是否存在bug的標簽。根據版本號和class name在github中下載源碼。最終,共采集了10個Java項目的數據。數據集結構如圖6所示。

    Fig. 6 數據集結構

    對于項目內缺陷預測,文章選擇如下baseline模型進行對比:

    對于跨項目缺陷預測,文章選擇如下baseline模型進行對比:

    總結一下,雖然是兩年前的論文了,但感覺思路還是比較新奇的,避開AST等一系列代碼中間表示,直接將代碼轉換成圖像提取特征。但是還是比較疑惑,代碼轉換成的圖像真的包含源代碼語義和結構信息嗎?感覺可解釋性不太強,哈哈。后面需要做實驗分析下吧。

    軟件缺陷學習遷移
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    文章的動機是避開源代碼的中間表示,將源代碼表示為圖像,直接提取代碼的語義信息以改進缺陷預測的性能。
    隨著網絡信息技術的更新換代,網絡空間已經深刻地改變了國際沖突的特點,博弈的核心在于對國家利益的爭奪和維護,關鍵環節在于如何通過各種策略方式對別國施加影響,進而達成本國利益訴求。2023 年,美國通過戰略路徑調整、完善網絡空間作戰力量、加速新興技術發展、打造新型態勢感知系統、研發網絡空間新型武器作戰平臺等舉措進一步推進網絡空間安全的發展,勢必帶動各國在網絡空間領域的持續投入與發展,可以預計,未來的網
    2021 年 10 月 27 日,歐盟網絡和信息安全局(ENISA)發布《ENISA 2021年威脅態勢展望》報告,分析了全球面臨的九大網絡安全威脅,闡述了威脅趨勢、威脅參與者和攻擊技術等,提出了相關緩解和應對措施。2021 年該項工作得到了新組建的 ENISA 網絡安全威脅態勢 (CTL) 特設工作組的支持。該報告可幫助戰略決策者和政策制定者、政府及公司詳盡了解最新的網絡安全威脅,而且可針對性地
    表示,通過提升漏洞利用的可預測性,公司能夠減少需修復的嚴重漏洞數量,但該指標還有其他的用處。馬里蘭大學學院園分校和亞利桑那州立大學的這項研究旨在嘗試為公司提供更多信息,幫助他們摸清哪些漏洞可能遭到攻擊者利用。
    測試數據表明,大約四分之三的Java和.NET應用都存在OWASP十大漏洞榜單上的漏洞,但僅55%的JavaScript代碼庫存在此類漏洞。
    重要事件回顧,智覽網安行業發展。工業和信息化部、國家互聯網信息辦公室、公安部聯合印發《網絡產品安全漏洞管理規定》,自2021年9月1日起施行。針對這些問題,報告建議要進一步健全數據產權制度體系、建立數據價值評估體系、完善制度機制、加強數據安全防護。美陸軍將首選符合標準化質量管理程序的廠商。
    該平臺有助于識別已知和未知濫用行為之間的差距。Trust關鍵詞:第三方風險、AI網絡風險評估VISO Trust聲稱自己是首個基于AI的第三方網絡風險盡職調查平臺,為安全團隊提供風險情報,并由第三方風險專家進行增強。VISO Trust成立于2020年,將在RSA展位ESE-7亮相。它會自動將生產中發現的云安全風險跟蹤到源代碼和擁有它的開發人員。
    該平臺有助于識別已知和未知濫用行為之間的差距。Trust關鍵詞:第三方風險、AI網絡風險評估VISO Trust聲稱自己是首個基于AI的第三方網絡風險盡職調查平臺,為安全團隊提供風險情報,并由第三方風險專家進行增強。VISO Trust成立于2020年,將在RSA展位ESE-7亮相。它會自動將生產中發現的云安全風險跟蹤到源代碼和擁有它的開發人員。
    “世界的眼睛現在注視著太空,注視著月球和更遠的行星,我們發誓,我們將看到它不是被敵對的征服旗幟所統治,而是被自由與和平的旗幟所統治。”1962年約翰·肯尼迪總統的這一段話,在時隔近60年后,被美國的太空作戰域論調徹底推翻。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类