在召集團隊并開發新的 SOA 以后,現在是測試其安全性的時候了。測試使您可以了解遠景是否與對成功的承諾保持一致。
測試應該分成兩個階段進行:生產前測試 和生產測試。生產前測試是允許對任何新的應用程序或硬件解決方案進行任何外部訪問之前的最后步驟。此測試旨在模擬生產環境,不僅應該測試安全性,而且還應該測試負載、流程和功能。
生產前環境和生產環境之間通常存在微妙的區別——例如,硬件、操作系統配置和防火墻設置。因此,在生產測試期間,要重新檢查在生產前做出的安全性改進。
預先為測試做規劃
通過確定必須測試哪些組件以及如何最好地測試那些組件來開始您的測試。非管理用戶是否可以獲得管理權限?是否要對沒有權限的用戶隱藏私有數據?常見的黑客腳本是否能夠找到被忽視的漏洞?結構化查詢語言(Structured Query Language,SQL)注入是否失?確保擺脫思維的束縛,并考慮惡意用戶可能采用來滲透安全層的任何工具。通過考慮內部和外部項目的安全性,您可以同時在兩個測試階段中實現最大的測試覆蓋面。
對所做的測試和測試時間做文檔記錄。對測試做計劃安排對于避免測試人員和開發人員彼此干擾是非常重要的。測試會破壞應用程序,因此務必了解是哪些測試導致了破壞。此外,您可能需要在下班后運行某些測試,因此找到恰當的人員也是非常重要的。
您在本系列的 第 1 部分 組建了自己團隊。從該團隊選擇最適合幫助進行安全性測試的成員。測試團隊通常在構建階段基本形成,此時人們自然地協作處理新 SOA 的功能、支持和使用方面。確保在形成這些團隊時,在各個團隊中引入安全專家。
還要考慮引入中立方以在測試期間提供幫助。這些測試人員可以是不參與最終 SOA 設計的精選用戶或開發人員。這樣的測試人員通?梢蕴峁┯嘘P功能工作狀況和安全性是否工作正常的中肯意見。在早期階段征求外部安全專業人員的意見還可以引入大量的信息。這些專業人員專門處理安全問題,能夠提供不同尋常的建議來保護數據避免未經授權的訪問。專業的安全公司通常也提供了不同的專門研究,例如網絡、應用程序和硬件,這些專門研究能夠擴充您的當前人員的知識。這些團體通常擁有直接的供應商支持,因而通常能夠提供不容易通過其他途徑找到的高級信息。
在組建測試團隊以后分配測試。向團隊成員傳達他們應該如何執行測試以及預期會得到什么結果。在顯示“事前和事后”結果的書面檢查清單中記錄具有已知答案的問題。測試人員不僅要以正確的順序執行任務,而且還要確定結果是否符合開發人員的預期。應用程序提供了某個結果并不意味著該結果是正確的。例如,如果新的 SOA 是客戶訂單系統的一部分,則要檢查數學運算。裝運費和稅款是否計算正確?
設定標準
安全性測試應該同時遵守編程和行業標準。諸如 Payment Card Industry (PCI) 和 Health Insurance Portability and Accountability Act (HIPAA) 等行業遵從性標準具有關于如何處理數據的特定規則。
設置生產前環境
在將更改投入生產應用之前,始終考慮使用專用的生產前環境來測試更改。生產前環境應該與生產系統盡可能密切地匹配。這在測試負載和安全性時會變得非常關鍵。有時,細微差別也是非常關鍵的,例如同時在兩個環境中使用相同版本的 Linux®。
例如,假設所構建的新 SOA 應用程序將使用 IBM® WebSphere®。測試和生產系統都已安裝和更新最新版本的 WebSphere。然而,生產環境使用 SUSE Linux,而測試環境加載的是 Red Hat Linux。雖然兩種 Linux 版本之間的區別非常小,但新應用程序的組件補丁安裝方式會有所不同,從而導致在投入生產環境后失敗而無法正常工作。
企業在生產前環境中使用較舊的服務器,在生產環境中使用更好、更快的服務器,這種情況并不鮮見。此決策出于經濟考慮是有意義的,但是在測試負載和速度變化如何影響安全性時,這種做法將會導致問題。
當生產環境使用具有大量內存的多處理器硬件,而測試環境硬件使用單處理器并且僅有 1 GB 內存時,此問題會進一步惡化。應該保持使用同一代的處理器和相同的內存容量并標準化硬件供應商,從而簡化這個問題。實現硬件標準化可以提供在兩個環境中使用相似驅動程序和組件的優點。
文章來源于領測軟件測試網 http://www.kjueaiud.com/