蜻蜓:GitLab結(jié)合fortify實現(xiàn)自動化掃描實踐

一烂翰、背景

在甲方做安全的同學(xué)可能會有一項代碼審計的工作,通常需要從gitlab把代碼拉取下來瘸羡,然后使用代碼審計工具進行掃描,然后對結(jié)果進行人工確認搓茬;

在這個流程中需要做的事情比較繁瑣犹赖,比如說gitlab如何配置token、如何自動化把代碼拉取到本地卷仑、如何調(diào)用fortify實現(xiàn)批量掃描等諸多繁瑣問題峻村。

本篇文章以甲方安全代碼安全建設(shè)為主線,分享如何讓代碼審計工具自動化掃描gitlab倉庫里的代碼锡凝。并且提供了一個便捷的實驗環(huán)境供大家測試粘昨。

本文實驗中調(diào)用了多款代碼審計工具(包含semgrep、fortify窜锯、墨菲张肾、河馬,其中fortify軟件屬于商業(yè)性質(zhì)锚扎,本文章無法提供該軟件吞瞪,如需自備此軟件并存放在主機/data/share/fortify目錄),完成試驗后可以看到各代碼審計工具的效果對比驾孔。

二芍秆、準備環(huán)境

為了方便大家,我把我的實驗gitlab地址直接共享出來助币,大家可以優(yōu)先使用此共享環(huán)境浪听。

URL:http://123.249.6.139:1880/
用戶名:root
密碼:qingtingtest
token:glpat-SMsSWy6xzB4x8B6rFryB

配置gitlab環(huán)境

為了真實模擬fortify掃描gitlab倉庫的代碼,我需要快速搭建一個gitlab倉庫眉菱,這里實驗docker的方式最為簡單迹栓,只需要執(zhí)行以下的命令

docker run --detach --hostname gitlab.thinkpad --publish 8443:443 --publish 880:80 --publish 222:22 --name gitlab --restart always --volume /data/gitlab/config:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

命令執(zhí)行之后,docker會自動拉取docker鏡像俭缓,并創(chuàng)建一個gitlab的容器克伊,服務(wù)啟動之后會隨機生成一個root用戶的密碼酥郭,可以通過以下命令查看root用戶的初始化密碼

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

命令執(zhí)行之后,可以在終端中看到如下所示密碼

Password: UnSoOs7l8YN6dYDQRP/1/dzpKswF7dq7fpyhKBey95A=

現(xiàn)在可以使用瀏覽器訪問gitlab的頁面愿吹,訪問地址是http://x.x.x.x:880/不从,然后瀏覽器會自動跳轉(zhuǎn)到登錄頁面,如下圖所示

image

在登錄頁面犁跪,我們在用戶名處輸入root椿息,密碼處輸入剛才得到的密碼;登錄成功之后會自動跳轉(zhuǎn)到工作臺的首頁坷衍,如下圖所示寝优。


image

創(chuàng)建API訪問的token

為了讓fortify能夠訪問到gitlab倉庫的代碼,我們需要創(chuàng)建一個token枫耳,用于API訪問乏矾;在頭像位置展開下拉菜單,選擇preferences->Access Tokens ,填下相關(guān)參數(shù)迁杨,界面如下所示


image

創(chuàng)建完成钻心,把生成的token復(fù)制出來,后續(xù)要用到


image
glpat-ggjo6Z6aQXWCZ2FNJcsz

gitlab搭建完后铅协,默認里面有一個空項目捷沸,fortify無法掃除有價值的漏洞,為了方便測試警医,需要在新建項目的位置導(dǎo)入項目進去亿胸,打開URL地址
http://10.1.1.140:880/projects/new#import_project,然后選擇Repository by URL坯钦,然后填入一個可以被拉取的倉庫地址预皇,這里我提供一個供大家實驗,如下圖所示

https://gitee.com/songboy/QingScan
image

導(dǎo)入項目之后婉刀,gitlab會自動拉取代碼到服務(wù)器吟温,如下圖所示


image

三、配置參數(shù)

現(xiàn)在已經(jīng)有了gitlab的實驗環(huán)境突颊,可以正式開始做實驗鲁豪,首先打開蜻蜓的市場頁面,URL地址如下

http://qingting.starcross.cn/scenario/store

可能會提示要求登錄律秃,如果是首次進入蜻蜓安全控制臺爬橡,掃描登錄之后會自動注冊

然后需要在服務(wù)器執(zhí)行添加節(jié)點的shell命令,按照提示進行操作即可棒动,如下圖所示


image

現(xiàn)在回到市場頁面糙申,找到快速挖掘0day漏洞,在下方有個按鈕船惨,添加到工作流柜裸,如下圖所示


image

添加到工作流之后缕陕,會看到工作流的信息,這里可以把gitlab的配置信息填寫進去疙挺,需要點擊進入編排流程扛邑,如下圖所示


image

在編排工作流頁面,上方有一個設(shè)置全局變量的小圖標,按照提示配置必要參數(shù)铐然,如下圖所示


image

四蔬崩、運行程序

運行全局變量完成之后,可以右鍵點擊第一個節(jié)點搀暑,再次點估運行選項舱殿,就可以運行這個工作流,運行過程中節(jié)點狀態(tài)會發(fā)生變化


image

節(jié)點會按照自上而下運行险掀,運行過程中狀態(tài)圖標會一直旋轉(zhuǎn)沪袭,當運行完成時,可以看到成功的小圖標


image

運行完成之后樟氢,可以去數(shù)據(jù)中心查看運行結(jié)果冈绊,可以根據(jù)節(jié)點和任務(wù)ID等方式篩選,如下圖所示


image

我選中fortify代碼掃描節(jié)點埠啃,篩選出來的列表頁面如下所示


image

在列表頁面只展示了一小部分數(shù)據(jù)死宣,可以點擊查看按鈕,在詳情頁查看詳細的漏洞信息碴开,用于審計標注毅该,如下圖所示。


image

上面節(jié)點的代碼已經(jīng)在GitHub中開源潦牛,有需要的小伙伴也可以在GitHub

https://github.com/StarCrossPortal/QingTing

GitHub地址:https://github.com/StarCrossPortal/QingTing

?著作權(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)容