本申請實施例提供了一種源代碼審計方法和裝置、電子設備及存儲介質,屬于人工智能技術領域。該方法包括:獲取源代碼文檔和漏洞信息;識別源代碼文檔的源代碼信息;根據所述漏洞信息生成漏洞審計規則;根據所述漏洞審計規則對源代碼信息進行漏洞匹配,以識別出源代碼漏洞;根據源代碼漏洞生成漏洞審計結果。基于此,本申請通過自動識別源代碼文檔的源代碼信息,并根據漏洞信息生成漏洞審計規則,利用生成的漏洞審計規則以漏洞匹配的方式對源代碼信息進行審計,再將識別出的源代碼漏洞生成漏洞審計結果,以實現對源代碼文檔的審計,從而能夠極大降低業務系統的風險。而且,本申請可部署在服務器上,具有操作簡單、方便靈活、可移植性強的優勢。植性強的優勢。植性強的優勢。
【技術實現步驟摘要】
源代碼審計方法和裝置、電子設備及存儲介質
[0001]本申請涉及人工智能
,尤其涉及一種源代碼審計方法和裝置、電子設備及存儲介質。
技術介紹
[0002]源碼審計作為軟件安全開發流程的重要一環,著力于在程序員開發完源碼后進行源碼掃描,這些掃描后的源碼缺陷極有可能被攻擊者利用,同時在此階段的缺陷修復也極大程度地保障了業務系統的安全性。因此,商用的解決方案成本及維護成本普遍比較昂貴,如Fortify SCA,Checkmarx等,它們提供了一套全面的源碼審計解決方案,幫助企業在軟件開發過程中查找、識別、追蹤各大主流漏洞,提升企業抵御網絡入侵、數據泄漏等安全問題的能力。
[0003]商業工具的漏洞檢測能力精確率高,但同時帶來了軟件費用昂貴,學習成本高,使用環境及部署不夠靈活,在創新型小企業如雨后春筍般出現的時代,往往這類企業因為種種原因對源碼審計的投入的資金有限,未使用合適的工具,系統發布后才發現存在許多外部安全風險。另外商業工具漏洞規則迭代周期慢,在信息安全領域中每天都有新的漏洞出現,這種與時間競賽的漏洞修復作業,商業工具可能還未及時推出新版本進行覆蓋,出現沒有及時識別出新型漏洞告警的情況,導致缺陷容易被不法分子利用,造成業務系統存在較大的風險。
技術實現思路
[0004]本申請實施例的主要目的在于提出一種源代碼審計方法和裝置、電子設備及存儲介質,能夠降低購買商業軟件所帶來的昂貴費用以及維護費用,可部署在內部服務器上,操作方便靈活,可移植性強,而且可以極大降低業務系統的風險。
[0005]為實現上述目的,本申請實施例的第一方面提出了一種源代碼審計方法,應用于服務器,所述方法包括:
[0006]獲取源代碼文檔和漏洞信息;
[0007]識別所述源代碼文檔的源代碼信息;
[0008]根據所述漏洞信息生成漏洞審計規則;
[0009]根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出源代碼漏洞;
[0010]根據所述源代碼漏洞生成漏洞審計結果。
[0011]在一些實施例,所述獲取源代碼文檔,包括:
[0012]通過命令行界面CLI或應用程序接口API進行源代碼掃描來獲取所述源代碼文檔。
[0013]在一些實施例,所述源代碼信息包括源代碼的文檔類型、語言類型和框架類型,所述識別所述源代碼文檔的文檔類型和源代碼信息,包括:
[0014]通過所述源代碼文檔的后綴識別所述源代碼的文檔類型;
[0015]通過所述源代碼的文檔類型識別所述源代碼的語言類型;
[0016]通過所述源代碼文檔的依賴關系識別所述源代碼的框架類型。
[0017]在一些實施例,所述根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出源代碼漏洞,包括:
[0018]根據所述漏洞審計規則對所述框架類型進行漏洞匹配,以識別出第一源代碼漏洞,其中,所述第一源代碼漏洞用于表征CVE安全漏洞;
[0019]根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出第二源代碼漏洞,其中,所述第二源代碼漏洞用于表征用戶自身編寫源代碼的安全漏洞。
[0020]在一些實施例,所述根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出第二源代碼漏洞,包括:
[0021]對所述源代碼進行詞法分析和語法分析,生成所述源代碼的抽象語法樹;
[0022]遍歷所述抽象語法樹,將所述抽象語法樹的參數與所述漏洞審計規則中的語言參數漏洞規則進行匹配;
[0023]在所述抽象語法樹的參數與所述漏洞審計規則中的語言參數漏洞規則相匹配的情況下,確定所述源代碼文檔存在所述第二源代碼漏洞。
[0024]在一些實施例,所述根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出第二源代碼漏洞,包括:
[0025]識別所述源代碼文檔的后綴;
[0026]將所述源代碼文檔的后綴與所述漏洞審計規則中的后綴漏洞規則進行匹配;
[0027]在所述源代碼文檔的后綴與所述后綴漏洞規則相匹配的情況下,確定所述源代碼文檔存在所述第二源代碼漏洞。
[0028]在一些實施例,所述根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出第二源代碼漏洞,包括:
[0029]識別所述源代碼文檔中包含的關鍵字;
[0030]將所述源代碼文檔的關鍵字與所述漏洞審計規則中的關鍵字漏洞規則進行匹配;
[0031]在所述源代碼文檔的關鍵字與所述后綴漏洞規則相匹配的情況下,確定所述源代碼文檔存在所述第二源代碼漏洞。
[0032]為實現上述目的,本申請實施例的第二方面提出了一種源代碼審計裝置,所述裝置包括:
[0033]獲取模塊,用于獲取源代碼文檔和漏洞信息;
[0034]識別模塊,用于識別所述源代碼文檔的源代碼信息;
[0035]生成模塊,用于根據所述漏洞信息生成漏洞審計規則;
[0036]匹配模塊,用于根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出源代碼漏洞;
[0037]輸出模塊,用于根據所述源代碼漏洞生成漏洞審計結果。
[0038]為實現上述目的,本申請實施例的第三方面提出了一種電子設備,所述電子設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現上述第一方面所述的方法。
[0039]為實現上述目的,本申請實施例的第四方面提出了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序被處理器執行時實現上述第一
方面所述的方法。
[0040]本申請提出的源代碼審計方法和裝置、電子設備及存儲介質,通過獲取源代碼文檔和漏洞信息;識別源代碼文檔的源代碼信息;根據所述漏洞信息生成漏洞審計規則;根據所述漏洞審計規則對源代碼信息進行漏洞匹配,以識別出源代碼漏洞;根據源代碼漏洞生成漏洞審計結果。基于此,本申請通過自動識別源代碼文檔的源代碼信息,并根據漏洞信息生成漏洞審計規則,利用生成的漏洞審計規則以漏洞匹配的方式對源代碼信息進行審計,以識別出源代碼漏洞,再將識別出的源代碼漏洞生成漏洞審計結果,以實現對源代碼文檔的審計,從而能夠極大降低業務系統的風險。而且,本申請可部署在內部服務器上,具有操作簡單、方便靈活、可移植性強的優勢。
附圖說明
[0041]圖1是本申請實施例提供的源代碼審計方法的流程圖;
[0042]圖2是圖1中的步驟S102的流程圖;
[0043]圖3是圖2中的步驟S104的流程圖;
[0044]圖4是圖3中的步驟S302的流程圖;
[0045]圖5是圖3中的步驟S302的流程圖;
[0046]圖6是圖3中的步驟S302的流程圖;
[0047]圖7是本申請另一實施例提供的源代碼審計方法的流程圖;
[0048]圖8是本申請實施例提供的源代碼審計裝置的結構示意圖;
[0049]圖9是本申請實施例提供的電子設本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種源代碼審計方法,其特征在于,應用于服務器,所述方法包括:獲取源代碼文檔和漏洞信息;識別所述源代碼文檔的源代碼信息;根據所述漏洞信息生成漏洞審計規則;根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出源代碼漏洞;根據所述源代碼漏洞生成漏洞審計結果。2.根據權利要求1所述的方法,其特征在于,所述獲取源代碼文檔,包括:通過命令行界面CLI或應用程序接口API進行源代碼掃描來獲取所述源代碼文檔。3.根據權利要求1所述的方法,其特征在于,所述源代碼信息包括源代碼的文檔類型、語言類型和框架類型,所述識別所述源代碼文檔的文檔類型和源代碼信息,包括:通過所述源代碼文檔的后綴識別所述源代碼的文檔類型;通過所述源代碼的文檔類型識別所述源代碼的語言類型;通過所述源代碼文檔的依賴關系識別所述源代碼的框架類型。4.根據權利要求3所述的方法,其特征在于,所述根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出源代碼漏洞,包括:根據所述漏洞審計規則對所述框架類型進行漏洞匹配,以識別出第一源代碼漏洞,其中,所述第一源代碼漏洞用于表征CVE安全漏洞;根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出第二源代碼漏洞,其中,所述第二源代碼漏洞用于表征用戶自身編寫源代碼的安全漏洞。5.根據權利要求4所述的方法,其特征在于,所述根據所述漏洞審計規則對所述源代碼信息進行漏洞匹配,以識別出第二源代碼漏洞,包括:對所述源代碼進行詞法分析和語法分析,生成所述源代碼的抽象語法樹;遍歷所述抽象語法樹,將所述抽象語法樹的參數與所述漏洞審計規則中的語言參數漏洞規則進行匹配;在所述抽象語法樹的參數與所述漏洞...
【專利技術屬性】
技術研發人員:王海奇,
申請(專利權)人:中國平安人壽保險股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。