代碼審計(jì)服務(wù)技術(shù)白皮書v1_第1頁
代碼審計(jì)服務(wù)技術(shù)白皮書v1_第2頁
代碼審計(jì)服務(wù)技術(shù)白皮書v1_第3頁
代碼審計(jì)服務(wù)技術(shù)白皮書v1_第4頁
代碼審計(jì)服務(wù)技術(shù)白皮書v1_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余11頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、專業(yè)服務(wù)技術(shù)白皮書代碼審計(jì)服務(wù)版本說明2012/5/21V1.0文檔創(chuàng)建、豐富內(nèi)容目錄1 .概述11.1 基本概念11.2 代碼審計(jì)與模糊測試11.3 服務(wù)的必要性11.4 客戶收益22 .服務(wù)的實(shí)施標(biāo)準(zhǔn)和原則22.1 政策文件或標(biāo)準(zhǔn)22.2 服務(wù)原則23 .XXXX代碼審計(jì)服務(wù)33.1 服務(wù)范圍33.2 服務(wù)分類33.2.1 整體代碼審計(jì)和功能點(diǎn)人工代碼審計(jì)33.2.2 單次服務(wù)和年度服務(wù)43.3 服務(wù)流程43.4 服務(wù)特點(diǎn)53.5 服務(wù)才艮告63.6 服務(wù)注意事項(xiàng)64 .代碼審計(jì)方法論74.1 代碼檢查技術(shù)74.1.1 源代碼設(shè)計(jì)74.1.2 錯誤處理不當(dāng)74.1.3 直接對象引用84.1

2、.4 資源濫用84.1.5 API濫用84.2 應(yīng)用代碼關(guān)注要素94.2.1 跨站腳本漏洞94.2.2 跨站請求偽裝漏洞94.2.3 SQL注入漏洞94.2.4 命令執(zhí)行漏洞94.2.5 日志偽造漏洞94.2.6 參數(shù)篡改104.2.7 密碼明文存儲104.2.8 配置文件缺陷104.2.9 路徑操作錯誤104.2.10 資源管理104.2.11 不安全的Ajax調(diào)用104.2.12 系統(tǒng)信息泄露11-7-4.2.13調(diào)試程序殘留115 .相關(guān)工具115.1 信息收集工具115.2 靜態(tài)分析工具115.3 源碼提取工具126 .為什么選擇XXXX12-II-概述1.1 基本概念代碼審計(jì)(Cod

3、eReview)是由具備豐富編碼經(jīng)驗(yàn)并對安全編碼原則及應(yīng)用安全具有深刻理解的安全服務(wù)人員對系統(tǒng)的源代碼和軟件架構(gòu)的安全性、可靠性進(jìn)行全面的安全檢查。代碼審計(jì)服務(wù)的目的在于充分挖掘當(dāng)前代碼中存在的安全缺陷以及規(guī)范性缺陷,從而讓開發(fā)人員了解其開發(fā)的應(yīng)用系統(tǒng)可能會面臨的威脅,并指導(dǎo)開發(fā)人員正確修復(fù)程序缺陷。1.2 代碼審計(jì)與模糊測試在漏洞挖掘過程中有兩種重要的漏洞挖掘技術(shù),分別是代碼審計(jì)和模糊測試(Fuzzing)。代碼審計(jì)是通過靜態(tài)分析程序源代碼,找出代碼中存在的安全性問題;而模糊測試則需要將測試代碼執(zhí)行起來,然后通過構(gòu)造各種類型的數(shù)據(jù)來判斷代碼對數(shù)據(jù)的處理是否正常,以發(fā)現(xiàn)代碼中存在的安全性問題。

4、由于采用的分析方法不同,這兩項(xiàng)技術(shù)的應(yīng)用場所也有所不同。代碼審計(jì)常用于由安全廠商或企業(yè)的安全部門發(fā)起的代碼安全性檢查工作;模糊測試則普遍用于軟件開發(fā)和測試部門的程序測試。1.3 服務(wù)的必要性實(shí)踐證明,程序的安全性是否有保障很大程度上取決于程序代碼的質(zhì)量,而保證代碼質(zhì)量最快捷有效的手段就是代碼審計(jì)。在風(fēng)險評估過程中,代碼審計(jì)是一般脆弱性評估的一種很好的補(bǔ)充,xxxx代碼審計(jì)服務(wù)的代碼覆蓋率為100%,能夠找到一些安全測試所無法發(fā)現(xiàn)的安全漏洞。同時,由于主持代碼審計(jì)的安全服務(wù)人員一般都具備豐富的安全編碼經(jīng)驗(yàn)和技能,所以其針對性比常見的脆弱性評估手段會更強(qiáng)、粒度也會更為細(xì)致。1.4 客戶收益對于客戶

5、而言,代碼審計(jì)可以帶來以下收益:明確安全隱患點(diǎn)代碼審計(jì)能夠?qū)φ麄€信息系統(tǒng)的所有源代碼進(jìn)行檢查,從整套源代碼切入最終明至某個威脅點(diǎn)并加以驗(yàn)證,以此明確整體系統(tǒng)中的安全隱患點(diǎn)。提高安全意識如上所述,任何的隱患在代碼審計(jì)服務(wù)中都可能造成“千里之堤潰于蟻穴”的效果,因此代碼審計(jì)服務(wù)可有效督促管理人員杜絕任何一處小的缺陷,從而降低整體風(fēng)險。提高開發(fā)人員安全技能在代碼審計(jì)服務(wù)人員與用戶開發(fā)人員的交互過程中,可提升開發(fā)人員的技能。另外,通過專業(yè)的代碼審計(jì)報告,能為用戶開發(fā)人員提供安全問題的解決方案,完善代碼安全開發(fā)規(guī)范。服務(wù)的實(shí)施標(biāo)準(zhǔn)和原則2.1 政策文件或標(biāo)準(zhǔn)xxxx代碼審計(jì)服務(wù)將參考下列規(guī)范進(jìn)行工作。O

6、WASPTOP10CWE/SANSTOP25ASP/ASP.NET/PHP/JSP安全編碼規(guī)范xxxx代碼審計(jì)最佳實(shí)踐xxxx安全服務(wù)工作規(guī)范、代碼審計(jì)實(shí)施規(guī)范2.2 服務(wù)原則xxxx在提供代碼審計(jì)服務(wù)中,將遵循下列原則。保密性原則保密性原則是代碼審計(jì)服務(wù)中最重要的原則,它是鼓勵客戶實(shí)施代碼審計(jì)服務(wù)的心理基礎(chǔ),同時也是對客戶的人格及隱私權(quán)的最大尊重。代碼審計(jì)的保密范圍,包括客戶提供源代碼和相關(guān)技術(shù)文檔的保密性以及輸出成果的保密性。對服務(wù)過程中獲知的任何客戶系統(tǒng)及源代碼的信息均屬秘密信息,不得泄露給第三方單位或個人,不得利用這些信息進(jìn)行任何侵害客戶的行為;對服務(wù)的報告提交不得擴(kuò)散給未經(jīng)授權(quán)的第三

7、方單位或個人。規(guī)范性原則xxxx代碼審計(jì)服務(wù)將按照安全服務(wù)工作規(guī)范、代碼審計(jì)實(shí)施規(guī)范進(jìn)行嚴(yán)格落實(shí)。實(shí)施必須由專業(yè)的安全服務(wù)人員依照規(guī)范的操作流程進(jìn)行,對操作過程和結(jié)果要有相應(yīng)的記錄,提供完整的服務(wù)報告。三.xxxx代碼審計(jì)服務(wù)3.1 服務(wù)范圍xxxx代碼審計(jì)服務(wù)的范圍包括使用ASP、ASP.NET(VB/C#)、JSP(JAVA)、PHP等主流語言開發(fā)的B/S應(yīng)用系統(tǒng)、使用C+、JAVA、C#、VB等主流語言開發(fā)的C/S應(yīng)用系統(tǒng),以及使用XML語言編寫的文件、SQL語言和數(shù)據(jù)庫存儲過程等。3.2 服務(wù)分類3.2.1 整體代碼審計(jì)和功能點(diǎn)人工代碼審計(jì)整體代碼審計(jì)是指代碼審計(jì)服務(wù)人員對被審計(jì)系統(tǒng)的

8、所有源代碼進(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ì)是對某個或某幾個重要的功能點(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ì)。3.2.2 單次服務(wù)和年度服務(wù)單次服務(wù)是指xxxx一次性為客戶

9、的被審計(jì)系統(tǒng)提供代碼審計(jì)服務(wù),服務(wù)完成后提交代碼審計(jì)報告并指導(dǎo)客戶進(jìn)行問題修復(fù)。單次服務(wù)僅能夠發(fā)現(xiàn)目前源代碼中可能存在的各種安全問題,對于系統(tǒng)后續(xù)開發(fā)產(chǎn)生的安全問題無能為力。年度服務(wù)是指xxxx以一定的時長(可以是半年、年等)為單位向客戶提供有限次數(shù)(每月/雙月/季度/半年)的代碼審計(jì)服務(wù),每次代碼審計(jì)均會提供詳細(xì)的代碼審計(jì)報告。年度服務(wù)能夠持續(xù)跟進(jìn)系統(tǒng)的安全情況,在服務(wù)期限內(nèi)最大限度保證系統(tǒng)的安全。3.3 服務(wù)流程xxxx代碼審計(jì)服務(wù)主要分為四個階段,包括代碼審計(jì)前期準(zhǔn)備階段、代碼審計(jì)階段實(shí)施、復(fù)查階段實(shí)施以及成果匯報階段:前期準(zhǔn)備階段在實(shí)施代碼審計(jì)工作前,技術(shù)人員會和客戶對代碼審計(jì)服務(wù)相關(guān)

10、的技術(shù)細(xì)節(jié)進(jìn)行詳細(xì)溝通。由此確認(rèn)代碼審計(jì)的方案,方案內(nèi)容主要包括確認(rèn)的代碼審計(jì)范圍、最終對象、審計(jì)方式、審計(jì)要求和時間等內(nèi)容。代碼審計(jì)階段實(shí)施在代碼審計(jì)實(shí)施過程中,xxxx代碼審計(jì)服務(wù)人員首先使用代碼審計(jì)的掃描工具對源代碼進(jìn)行掃描,完成初步的信息收集,然后由人工的方式對源代碼掃描結(jié)果進(jìn)行人工的分析和確認(rèn)。根據(jù)收集的各類信息對客戶要求的重要功能點(diǎn)進(jìn)行人工代碼審計(jì)。結(jié)合自動化源代碼掃描和人工代碼審計(jì)兩方的結(jié)果,代碼審計(jì)服務(wù)人員需整理代碼審計(jì)服務(wù)的輸出結(jié)果并編制代碼審計(jì)報告,最終提交客戶和對報告內(nèi)容進(jìn)行溝通。復(fù)測階段實(shí)施經(jīng)過第一次代碼審計(jì)報告提交和溝通后,等待客戶針對代碼審計(jì)發(fā)現(xiàn)的問題整改或加固。經(jīng)

11、整改或加固后,代碼審計(jì)服務(wù)人員進(jìn)行回歸檢查,即二次檢查。檢查結(jié)束后提交給客戶復(fù)查報告和對復(fù)查結(jié)果進(jìn)行溝通。成果匯報階段根據(jù)一次代碼審計(jì)和二次復(fù)查結(jié)果,整理代碼審計(jì)服務(wù)輸出成果,最后匯報項(xiàng)目領(lǐng)導(dǎo)。圖3.1代碼審計(jì)服務(wù)流程3.4 服務(wù)特點(diǎn)全程化服務(wù),有效保證服務(wù)質(zhì)量xxxx可以為客戶提供約定期限內(nèi)的全程化代碼審計(jì)服務(wù)。服務(wù)的過程不僅僅是幫助客戶發(fā)現(xiàn)問題,也會為客戶的問題修補(bǔ)提供專業(yè)的建議和指導(dǎo),做到問題發(fā)現(xiàn)、修補(bǔ)、驗(yàn)證的全程跟蹤,每一次服務(wù)都會在前一次的基礎(chǔ)上尋找新的突破口,力求最大程度地保證審計(jì)目標(biāo)的安全。專家級解決方案,一切以解決問題為目標(biāo)xxxx有著專業(yè)的安全服務(wù)團(tuán)隊(duì),團(tuán)隊(duì)成員無論是在風(fēng)險評

12、估、安全加固、滲透測試,還是在代碼審計(jì)等領(lǐng)域均有著豐富的經(jīng)驗(yàn),所有問題的解決方案均由團(tuán)隊(duì)成員根據(jù)多年經(jīng)驗(yàn)總結(jié)而來,方案確實(shí)可行。降低成本,節(jié)省投資在xxxx為客戶打造的年度服務(wù)方案中,服務(wù)人員第一次代碼審計(jì)的結(jié)果將會成為后續(xù)審計(jì)服務(wù)的參考依據(jù),避免了單次服務(wù)中每次都會為某一特定問題所累,節(jié)省了審計(jì)時間,同時也降低了客戶在每個階段的投入。3.5 服務(wù)報告在審計(jì)工作完成后兩個工作日內(nèi),xxxx審計(jì)人員將出示一份代碼審計(jì)報告。在報告中,審計(jì)人員將會根據(jù)審計(jì)結(jié)果針對源代碼中的每個安全弱點(diǎn)進(jìn)行詳細(xì)描述,描述內(nèi)容至少包括安全弱點(diǎn)所在的代碼頁名、代碼行數(shù)、問題代碼片段以及弱點(diǎn)可能導(dǎo)致的安全問題等。除此之外,

13、審計(jì)人員還將針對各種具體的安全弱點(diǎn)提供解決方案和相關(guān)的安全建議,為管理/開發(fā)人員的維護(hù)和問題修補(bǔ)工作提供參考。3.6 服務(wù)注意事項(xiàng)為避免風(fēng)險的產(chǎn)生,代碼審計(jì)工作通常不會在生產(chǎn)或測試服務(wù)器上進(jìn)行??蛻粜枰峁┰创a或存儲源代碼的計(jì)算機(jī)載體。代碼審計(jì)服務(wù)人員會將一些代碼審計(jì)工具安裝在存儲源代碼的計(jì)算機(jī)載體中,在完成代碼審計(jì)后卸載這些工具,以保護(hù)客戶資產(chǎn)。在代碼審計(jì)過程中,確定代碼審計(jì)服務(wù)人員和客戶方配合人員的聯(lián)系方式,便于及時溝通并解決服務(wù)過程中的各類問題。四.代碼審計(jì)方法論4.1 代碼檢查技術(shù)代碼檢查是代碼審計(jì)工作中最常使用的一種技術(shù)手段。代碼檢查可以由人工進(jìn)行,也可以借助代碼檢查工具自動進(jìn)行。

14、在實(shí)際應(yīng)用中,通常采用“自動分析+人工驗(yàn)證”的方式進(jìn)行。代碼檢查的目的在于發(fā)現(xiàn)代碼本身存在的問題,如代碼對標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代碼結(jié)構(gòu)的合理性等方面。通過分析,可以發(fā)現(xiàn)各種違背程序編寫標(biāo)準(zhǔn)的問題,主要包括以下幾類。4.1.1 源代碼設(shè)計(jì)源代碼設(shè)計(jì)問題通常來源于程序設(shè)計(jì)之初,例如代碼編寫工具的使用等。在這方面的審計(jì)主要是分析代碼的系統(tǒng)性和約束范圍,主要從下面的幾個方面進(jìn)行:不安全的域不安全的方法不安全的類修飾符未使用的外部引用未使用的代碼4.1.2 錯誤處理不當(dāng)這類問題的檢查主要是通過分析源代碼了解程序在管理錯誤、異常、日志記錄以及敏感信息等方面是否存在缺陷。如果程序處理

15、這類問題不當(dāng),最可能的問題是將敏感信息泄露給攻擊者,從而可能導(dǎo)致危害性后果。這類問題主要體現(xiàn)在以下幾個方面:程序異常處理返回值用法空指針日志記錄4.1.3 直接對象引用直接對象引用意指在引用對象時沒有進(jìn)行必要的校驗(yàn),從而可能導(dǎo)致被攻擊者利用。通過代碼檢查,審計(jì)人員可以分析出程序是否存在直接對象引用以及相應(yīng)的對象引用是否安全。直接獨(dú)享引用問題主要有以下幾類:直接引用數(shù)據(jù)庫中的數(shù)據(jù)直接引用文件系統(tǒng)直接引用內(nèi)存空間4.1.4 資源濫用資源濫用是指程序?qū)ξ募到y(tǒng)對象、CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等資源的不恰當(dāng)使用。資源使用不當(dāng)可能導(dǎo)致程序效率降低,遭受拒絕服務(wù)攻擊的影響。代碼檢查中,審計(jì)人員將會根據(jù)編碼規(guī)范

16、分析代碼中對各種資源的引用方法進(jìn)行分析,發(fā)現(xiàn)其中可能導(dǎo)致資源過度占用方面的問題。資源占用方面的問題主要有以下幾類:不安全的文件創(chuàng)建、修改和刪除競爭沖突內(nèi)存泄露不安全的過程創(chuàng)建4.1.5 API濫用API濫用是指由系統(tǒng)或程序開發(fā)框架提供的API被惡意使用,導(dǎo)致出現(xiàn)無法預(yù)知的安全問題。檢查過程中,審計(jì)人員將會針對此類問題來對源代碼進(jìn)行分析以發(fā)現(xiàn)此類問題。API濫用主要有下面幾種類型:不安全的數(shù)據(jù)庫調(diào)用不安全的隨機(jī)數(shù)創(chuàng)建不恰當(dāng)?shù)膬?nèi)存管理調(diào)用不全的字符串操作危險的系統(tǒng)方法調(diào)用對于Web應(yīng)用來說不安全的HTTP會話句柄也是API濫用的一種。4.2 應(yīng)用代碼關(guān)注要素4.2.1 跨站腳本漏洞漏洞:對用戶的輸

17、入沒有采用有效的安全控制手段就將用戶輸入插入到返回頁面中。影響:攻擊者可以利用存在XSS漏洞的Web網(wǎng)站攻擊瀏覽相關(guān)網(wǎng)頁的用戶,竊取用戶會話中諸如用戶名和口令(可能包含在Cookie里)等敏感信息、通過插入惡意代碼對用戶執(zhí)行掛馬攻擊、XSS漏洞還可能被攻擊者用于網(wǎng)頁篡改。4.2.2 跨站請求偽裝漏洞漏洞:提交表單中沒有用戶特有的標(biāo)識。影響:攻擊者可利用跨站請求偽裝(CSRF)漏洞假冒另一用戶發(fā)出未經(jīng)授權(quán)的請求,即惡意用戶盜用其他用戶的身份使用特定資源。4.2.3 SQL注入漏洞漏洞:對訪問數(shù)據(jù)庫的SQL語句沒有進(jìn)行任何過濾,可能導(dǎo)致SQL注入。影響:如果SQL注入成功,攻擊者可以獲取網(wǎng)站數(shù)據(jù)庫

18、的信息,可以修改刪除數(shù)據(jù)庫,還可能獲取執(zhí)行命令的權(quán)限,進(jìn)而完全控制服務(wù)器。4.2.4 命令執(zhí)行漏洞漏洞:系統(tǒng)中使用了一些調(diào)用操作系統(tǒng)函數(shù)的命令,在調(diào)用過程中,如果命令的來源不可信,系統(tǒng)可能執(zhí)行惡意命令。影響:攻擊者有可能把要執(zhí)行的命令替換成惡意命令,如刪除系統(tǒng)文件。4.2.5 日志偽造漏洞漏洞:將未經(jīng)驗(yàn)證的用戶輸入寫入日志。影響:攻擊者可以利用該漏洞偽造日志條目或?qū)阂鈨?nèi)容注入日志。4.2.6 參數(shù)篡改漏洞:一些重要參數(shù)可能會被篡改。影響:攻擊者能夠通過篡改重要參數(shù)或方法對系統(tǒng)進(jìn)行攻擊。4.2.7 密碼明文存儲漏洞:配置文件中存儲明文密碼。影響:在配置文件中存儲明文密碼可能會危及系統(tǒng)安全,攻擊者可以輕易獲取到系統(tǒng)密碼。4.2.8 配置文件缺陷漏洞:配置文件內(nèi)容存在缺陷,例如未設(shè)置統(tǒng)一的錯誤響應(yīng)頁面。影響:攻擊者能夠利用配置文件的缺陷對系統(tǒng)進(jìn)行攻擊。4.2.9 路徑操作錯誤漏洞:用戶輸入沒有有效的安全控制手段就直接對文件進(jìn)行操作。影響:攻擊者

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論