代碼審計服務技術白皮書v1_第1頁
代碼審計服務技術白皮書v1_第2頁
代碼審計服務技術白皮書v1_第3頁
代碼審計服務技術白皮書v1_第4頁
代碼審計服務技術白皮書v1_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

8、所有源代碼進行整體的安全審計,代碼覆蓋率為100%,整體代碼審計采用源代碼掃描和人工分析確認相結合的方式進行分析,發(fā)現源代碼存在的安全漏洞。但整體代碼審計屬于白盒靜態(tài)分析,僅能發(fā)現代碼編寫存在的安全漏洞,無法發(fā)現業(yè)務功能存在的缺陷。功能點人工代碼審計是對某個或某幾個重要的功能點的源代碼進行人工代碼審計,發(fā)現功能點存在的代碼安全問題。功能點人工代碼審計需要收集系統(tǒng)的設計文檔、系統(tǒng)開發(fā)說明書等技術資料,以便代碼審計服務人員能夠更好的了解系統(tǒng)業(yè)務功能。由于人工代碼審計工作量極大,所以需要分析并選擇重要的功能點,有針對性的進行人工代碼審計。3.2.2 單次服務和年度服務單次服務是指xxxx一次性為客戶

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論