隨著軟件規(guī)模的日益增大慷暂,系統(tǒng)的邏輯結(jié)構(gòu)越來越復(fù)雜,從起初幾萬行的代碼數(shù)量晨雳,發(fā)展至今幾十萬行的代碼數(shù)量已屢見不鮮行瑞,甚至還有幾百萬行的代碼規(guī)模。網(wǎng)絡(luò)攻擊中的SQL注入攻擊餐禁,就是利用了代碼中存在的漏洞血久,在查詢語句的參數(shù)傳遞時(shí)跟上額外的刪除或者修改的SQL語句。
源代碼審計(jì)是由具備豐富編碼經(jīng)驗(yàn)并對安全編碼原則及應(yīng)用安全具有深刻理解的安全服務(wù)人員對系統(tǒng)的源代碼和軟件架構(gòu)的安全性坠宴、可靠性進(jìn)行全面的安全檢查洋魂。
源代碼審計(jì)是通過靜態(tài)分析程序源代碼,找出代碼中存在的安全性問題喜鼓,常用于由安全廠商或企業(yè)的安全部門發(fā)起的代碼安全性檢查工作副砍,其目的在于充分挖掘當(dāng)前代碼中存在的安全缺陷以及規(guī)范性缺陷,從而讓開發(fā)人員了解其開發(fā)的應(yīng)用系統(tǒng)可能會面臨的威脅庄岖,并指導(dǎo)開發(fā)人員正確修復(fù)程序缺陷豁翎。
源代碼審計(jì)的類別
源代碼審計(jì)分為兩類,一是整體源代碼審計(jì)隅忿,二是功能點(diǎn)人工源代碼審計(jì)心剥,二者區(qū)別在于針對源代碼整體或部分進(jìn)行安全審計(jì)工作。
整體源代碼審計(jì)是指源代碼審計(jì)服務(wù)人員對被審計(jì)系統(tǒng)的所有源代碼進(jìn)行整體的安全審計(jì)背桐,代碼覆蓋率為100%优烧,整體源代碼審計(jì)采用源代碼掃描和人工分析確認(rèn)相結(jié)合的方式進(jìn)行分析,發(fā)現(xiàn)源代碼存在的安全漏洞链峭。但整體源代碼審計(jì)屬于白盒靜態(tài)分析畦娄,僅能發(fā)現(xiàn)代碼編寫存在的安全漏洞,無法發(fā)現(xiàn)業(yè)務(wù)功能存在的缺陷。
功能點(diǎn)人工源代碼審計(jì)是對某個(gè)或某幾個(gè)重要的功能點(diǎn)的源代碼進(jìn)行人工源代碼審計(jì)熙卡,發(fā)現(xiàn)功能點(diǎn)存在的代碼安全問題杖刷。功能點(diǎn)人工源代碼審計(jì)需要收集系統(tǒng)的設(shè)計(jì)文檔、系統(tǒng)開發(fā)說明書等技術(shù)資料驳癌,以便源代碼審計(jì)服務(wù)人員能夠更好的了解系統(tǒng)業(yè)務(wù)功能滑燃。由于人工源代碼審計(jì)工作量極大,所以需要分析并選擇重要的功能點(diǎn)颓鲜,有針對性的進(jìn)行人工源代碼審計(jì)表窘。
程序的安全性是否有保障很大程度上取決于程序代碼的質(zhì)量,而保證代碼質(zhì)量最快捷有效的手段就是源代碼審計(jì)甜滨。在風(fēng)險(xiǎn)評估過程中蚊丐,源代碼審計(jì)是一般脆弱性評估的一種很好的補(bǔ)充,天磊衛(wèi)士源代碼審計(jì)服務(wù)的代碼覆蓋率為100%艳吠,能夠找到一些普通安全測試所無法發(fā)現(xiàn)的安全漏洞麦备。
同時(shí),由于主持源代碼審計(jì)的安全服務(wù)人員一般都具備豐富的安全編碼經(jīng)驗(yàn)和技能昭娩,所以其針對性比常見的脆弱性評估手段會更強(qiáng)凛篙、粒度也會更為細(xì)致。
有代碼安全審計(jì)工具的存在栏渺,能否買該工具而不做人工驗(yàn)證的審計(jì)呛梆?
答案當(dāng)然是不能。寫到這磕诊,想起之前網(wǎng)上的一個(gè)段子填物,每當(dāng)我們身體難受時(shí)尋求度娘找答案,給出的結(jié)果至少癌癥起步霎终,最后還是乖乖上醫(yī)院掛號找醫(yī)生看滞磺。做源代碼審計(jì)亦是如此,不能光依賴工具莱褒,代碼安全審計(jì)工具通常存在許多漏報(bào)和誤報(bào)的情況击困,該工具也只是用自動化代替了人工審查而已,雖然方便广凸,為避免事后出現(xiàn)網(wǎng)絡(luò)安全事件阅茶,還是不要節(jié)省人工驗(yàn)證為好。
代碼安全審計(jì)工具只能作為源代碼審計(jì)工作的輔助谅海,為了企業(yè)業(yè)務(wù)工作能夠正常無誤進(jìn)行脸哀,避免不必要的麻煩,做源代碼審計(jì)需要將工具和人工驗(yàn)證相輔相成扭吁,缺一不可撞蜂。
企業(yè)做源代碼審計(jì)的必要性
1白筹、明確安全隱患點(diǎn)
源代碼審計(jì)能夠?qū)φ麄€(gè)信息系統(tǒng)的所有源代碼進(jìn)行檢查,從整套源代碼切入最終明至某個(gè)威脅點(diǎn)并加以驗(yàn)證谅摄,以此明確整體系統(tǒng)中的安全隱患點(diǎn)。
2系馆、提高安全意識
如上所述送漠,任何的隱患在源代碼審計(jì)服務(wù)中都可能造成“千里之堤潰于蟻穴”的效果,因此源代碼審計(jì)服務(wù)可有效督促管理人員杜絕任何一處小的缺陷由蘑,從而降低整體風(fēng)險(xiǎn)闽寡。
3、提高開發(fā)人員安全技能
在源代碼審計(jì)服務(wù)人員與用戶開發(fā)人員的交互過程中尼酿,可提升開發(fā)人員的技能爷狈。另外,通過專業(yè)的源代碼審計(jì)報(bào)告裳擎,能為用戶開發(fā)人員提供安全問題的解決方案涎永,完善代碼安全開發(fā)規(guī)范。
言歸正傳鹿响,做源代碼審計(jì)如何保障代碼安全羡微?
進(jìn)行源代碼審計(jì)前,所有專業(yè)測試人員都會進(jìn)行安全保密培訓(xùn)惶我,公司也會在管理制度上對客戶信息妈倔、資產(chǎn)進(jìn)行保密,同時(shí)會與客戶簽署保密協(xié)議绸贡,測試完成后與客戶確認(rèn)進(jìn)行現(xiàn)場清理盯蝴,保障客戶代碼等信息資產(chǎn)安全。為避免和減小風(fēng)險(xiǎn)听怕,做源代碼審計(jì)應(yīng)找專業(yè)的網(wǎng)絡(luò)安全服務(wù)團(tuán)隊(duì)捧挺,由專業(yè)的安全服務(wù)人員投入該項(xiàng)工作。
源代碼審計(jì)是企業(yè)以自身特點(diǎn)為基礎(chǔ)尿瞭,定制出一套安全人員和開發(fā)人員都能夠接受的“源代碼代碼審計(jì)標(biāo)準(zhǔn)”松忍,在企業(yè)中有序開展相關(guān)工作,并在后期不斷地補(bǔ)充和完善這個(gè)標(biāo)準(zhǔn)筷厘,使之成為一個(gè)既能迎合安全趨勢的不斷發(fā)展鸣峭,又能適合開發(fā)人員的安全審計(jì)標(biāo)準(zhǔn),這樣源代碼審計(jì)工作才能在企業(yè)中順利地開展酥艳。