安全分析與測試

總覽

Oracle程式碼的安全測試,包括用於驗證產品特性與品質的功能和非功能活動。這類測試通常是針對重疊的產品功能,但各自的目的都不一樣,而且是由不同的團隊負責執行。功能性與非功能性的安全測試相輔相成,確保 Oracle 產品受到全方位安全防護。

功能性安全測試

功能性安全測試通常是一般產品 QA 團隊在執行正常產品測試循環時進行。在此測試期間,QA工程師會驗證已執行的安全功能是否一致,確認是否與先前在功能規範中所同意的架構與確認清單審查相符合。

安全保證分析與測試

安全保證分析與測試針對各種攻擊類型,檢驗 Oracle 產品的安全特性。測試Oracle產品有兩大類型:靜態和動態分析,將在下面的部分中進一步描述。這些測試適用於產品開發生命週期的不同階段,而且通常可找出不同類型的問題,因此 Oracle 產品團隊會加以搭配運用。

靜態分析

原始程式碼的靜態安全分析是產品開發循環中的第一道防禦措施。Oracle 使用 HP 公司旗下 Fortify Software 推出的靜態程式碼分析器,以及各式內部開發的工具,以便在編寫程式碼時擷取問題。運用最先進的程式語言 (如 C/C++、Java、C#) 和平台 (J2EE、.NET) 所開發出的產品均經過篩檢,可辨識潛在安全問題。這類檢查機制相當適合辨識 C/C++ 程式碼中的緩衝區溢位和記憶體流失、J2EE 和 .NET 的資源處理問題,以及找出不當認證處理方式、各種插入式攻擊、錯誤系統配置等等。此類分析有個缺點:呈現大量假陽性報告,亦即不少回報的項目無法真正反映實際問題。通常,這些掃描報告的分析需要產品團隊的資深工程師參與,他們熟悉產品代碼,能從實際問題中排除假陽性誤報,進而減少誤報的數量。

動態分析

動態分析活動總是在產品開發的後期階段進行:至少是在產品或組件應該可以運行的時候。雖然這可能因Oracle組織而異,但通常此活動由安全QA團隊(或類似的專門小組)處理,並有向多個產品團隊共享的可能。動態分析針對外部可見的產品介面和API,並經常仰賴專門的測試工具進行測試。在 Oracle 內進行測試時,手動和自動工具都會用到。自動工具採用模糊技術來測試可透過網路存取的產品介面和通訊協定,而手動工具則需要人工進行修改,但正確度和精準度都理想得多。