代碼審計系統(tǒng) Swallow 開發(fā)回顧

做甲方安全建設(shè),SDL是一個離不開的話題,其中就包含代碼審計工作,我從最開始使用編輯器自帶的查找,到使用fortify工具,再到后來又覺得fortify的掃描太慢影響審計效率,再后來就想著把fortify集成到自己的業(yè)務(wù)系統(tǒng)中去

最近幾年安全行業(yè)發(fā)展的很快,以前少見的組件安全產(chǎn)品也多了起來,可以自定義掃描規(guī)則的semgrep,還有GitHub的以及codeQL產(chǎn)品,工具越來越多,如果還是之前的單個工具打開模式效率也不會太高.所以想著干脆做一個代碼聚合的審計系統(tǒng)

項目地址: https://github.com/StarCrossPortal/swallow

整體開發(fā)思路

當我需要審計某一個項目的時候只需要將代碼地址存放進去,然后這個系統(tǒng)就會自動下載代碼,并調(diào)用各種代碼審計工具進行掃描,并將結(jié)果存儲到系統(tǒng)中去.
[圖片上傳失敗...(image-ea10c-1680501802607)]

這里包含了部分內(nèi)容,第一部分是底層代碼掃描的實現(xiàn),數(shù)據(jù)庫的設(shè)計,上層UI的展示

底層實現(xiàn)

swallow在開發(fā)之前我給他的定義是一個效率系統(tǒng),因此他只是調(diào)用其他工具的結(jié)果,然后進行聚合展示.那么我就需要考慮用那些工具了.

這里我有四點需求,分別是污點跟蹤,安全規(guī)則檢索,組件依賴漏洞,WebShell檢測

污點跟蹤

首先說下污點跟蹤,他需要了解我的程序參數(shù)接收位置,然后參數(shù)在什么地方執(zhí)行,滿足需求的這種產(chǎn)品并不多,知名的有fortify,checkmax,這里我選擇了調(diào)用fortify代碼審計系統(tǒng).

[圖片上傳失敗...(image-c369fa-1680501802616)]
[圖片上傳失敗...(image-f2f16c-1680501802617)]

規(guī)則檢索

一些結(jié)合業(yè)務(wù)方面的漏洞,可能需要編寫對應(yīng)檢查規(guī)則,因此需要選擇一個比較容易自定義規(guī)則的代碼掃描器,有兩種選擇 semgrep和CodeQL,個人認為semgrep更加簡單易用,因此選擇了它

[圖片上傳失敗...(image-4a75ee-1680501802617)]
[圖片上傳失敗...(image-36f309-1680501802617)]

組件漏洞

組件漏洞主要是解決了項目A依賴了項目B,項目B產(chǎn)生了漏洞的情況,現(xiàn)在市面上挺多這種工具,我選擇了墨菲.

[圖片上傳失敗...(image-7a2026-1680501802617)]

WebShell

webshell 掃描主要是解決大量代碼文件里可能存在木馬的情況,用的是河馬的webshell檢測工具

有了這四大工具,我基本就可以對代碼進行比較全面的檢測了,但是數(shù)據(jù)的整體交互邏輯,以及數(shù)據(jù)格式我還需要梳理,為了簡化這個過程,我直接使用了蜻蜓平臺的編排系統(tǒng),這樣我基本不用寫太多數(shù)據(jù)交互代碼了,直接可視化拖拽,然后關(guān)注每個節(jié)點的情況即可.

數(shù)據(jù)可以直接使用蜻蜓安全工作臺中的數(shù)據(jù)庫組件,滿足了數(shù)據(jù)的增刪改查

數(shù)據(jù)庫設(shè)計

數(shù)據(jù)庫設(shè)計我采用了最省事的辦法,首先我需要有一個表存放Git的倉庫地址,因此新建了一張git_add表,另外系統(tǒng)還需要一些配置,因此新建了一張project_conf表格,如下圖所示

[圖片上傳失敗...(image-7c03fc-1680501802617)]

現(xiàn)在需要考慮用到四個工具結(jié)果數(shù)據(jù)存放問題,因此我最開始新建了4張數(shù)據(jù)表,但后來發(fā)現(xiàn)5張表更加合適,如下圖所示

[圖片上傳失敗...(image-66e174-1680501802617)]

因為墨菲代碼掃描方面,他的結(jié)果稍微需要區(qū)別一下,他的結(jié)構(gòu)是一個二維數(shù)組,這樣不利于數(shù)據(jù)庫檢索,因此我將墨菲的表結(jié)構(gòu)一分為二,因此有兩個表結(jié)構(gòu)

前端UI

前端UI本想采用element的UI框架,但這個項目只有我一個人開發(fā),而且項目本身也比較簡單,直接套模板更加省事.

所以使用了bootstrap5 結(jié)合thinkPHP6 開發(fā)出來

效果圖如下所示

添加倉庫

安裝過程我就不講了,直接記錄如何使用,以及效果吧.

首先需要在倉庫列表,找到添加按鈕,將Git倉庫地址放進去,然后會自動添加到列表中

[圖片上傳失敗...(image-fb11c1-1680501802617)]

如上圖所示,可以一次性添加多個倉庫,每行一個倉庫地址就行了

查看依賴漏洞

[圖片上傳失敗...(image-2cb55b-1680501802617)]

查看WebShell

[圖片上傳失敗...(image-8c20e0-1680501802617)]

查看依賴組件

[圖片上傳失敗...(image-4eba29-1680501802617)]

作者: 湯青松

日期: 2023-04-03

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浊闪,一起剝皮案震驚了整個濱河市搏熄,隨后出現(xiàn)的幾起案子刑顺,更是在濱河造成了極大的恐慌翘悉,老刑警劉巖毕泌,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顿仇,死亡現(xiàn)場離奇詭異温数,居然都是意外死亡宙彪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門等限,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爸吮,“玉大人芬膝,你說我怎么就攤上這事⌒谓浚” “怎么了锰霜?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桐早。 經(jīng)常有香客問我癣缅,道長,這世上最難降的妖魔是什么哄酝? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任友存,我火速辦了婚禮,結(jié)果婚禮上炫七,老公的妹妹穿的比我還像新娘爬立。我一直安慰自己,他們只是感情好万哪,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布侠驯。 她就那樣靜靜地躺著,像睡著了一般奕巍。 火紅的嫁衣襯著肌膚如雪吟策。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天的止,我揣著相機與錄音檩坚,去河邊找鬼。 笑死诅福,一個胖子當著我的面吹牛匾委,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氓润,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赂乐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咖气?” 一聲冷哼從身側(cè)響起挨措,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崩溪,沒想到半個月后浅役,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡伶唯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年觉既,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞪讼,死狀恐怖岭参,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尝艘,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布姿染,位于F島的核電站背亥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏悬赏。R本人自食惡果不足惜狡汉,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闽颇。 院中可真熱鬧盾戴,春花似錦、人聲如沸兵多。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剩膘。三九已至衅斩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怠褐,已是汗流浹背畏梆。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奈懒,地道東北人奠涌。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像磷杏,于是被迫代替她去往敵國和親溜畅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容