




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 第六章 安全測試6.1 軟件測試基礎6.2 滲透測試6.3 基于風險的安全測試6. 1 軟件測試基礎6.1.1 驗證與確認6.1.2 軟件測試6.1.1 驗證與確認(1)缺陷與錯誤、驗證與確認 (2)處理錯誤的方法 (3)人工驗證的方法 (1)缺陷與錯誤、驗證與確認(1/2)錯誤(Error) 系統處于可能導致故障的狀態,往往由開發人員引起,如輸入錯 誤、需求錯誤、設計錯誤等。 缺陷(Fault ,Bug ) 可能引起系統不正常行為的設計或編碼錯誤(也稱Bug)。 故障(Failure) 系統的規格說明與其行為之間的偏差,由一個或多個錯誤引起。(1)缺陷與錯誤、驗證與確認(2/2)驗證( V
2、erification ) 要查明工作產品是否恰當地反映了規定的要求。 確認( Validation ) 要證明所提供的(或將要提供的)產品適合其預計的用途 。 驗證要保證“做得正確”,而確認則要保證“做的東西正確”,即驗證注重“過程”,確認注重“結果” 。 缺陷與錯誤、驗證與確認錯誤和缺陷的例子 軟件錯誤(或軟件缺陷)的表現 軟件未達到產品說明書標明的功能; 軟件出現了產品說明書指明不會出現的錯誤; 軟件功能超出了產品說明書指明的范圍; 軟件未達到產品說明書雖未指出但應達到的目標; 軟件測試人員認為軟件難以理解、不易使用、運行速度緩 慢、或者最終用戶不滿意。 有錯是軟件的屬性,而且是無法改變
3、的。因此,關鍵在于如何避免錯誤的產生和消除已經產生的錯誤,使程序中的錯誤密度達到盡可能低的程度。 ?錯誤(Error)算法缺陷(Algorithmic Fault)手工操作缺陷(Mechanical Fault)如何處理這些錯誤和缺陷?(1/5)確認?如何處理這些錯誤和缺陷?(2/5)冗余?如何處理這些錯誤和缺陷?(3/5)?如何處理這些錯誤和缺陷?(4/5)打補丁?如何處理這些錯誤和缺陷?(5/5)測試?(2)處理錯誤的方法驗證模塊冗余打補丁測試聲明錯誤的存在(3)人工驗證的方法ReviewWalkthroughInspectionAudits6.1.2 軟件測試(1)測試的目的、原則和意義
4、 (2)測試的類型 (3)測試文檔 (4)測試人員 (5)測試活動 (6)案例學習(1)測試目的、原則和意義 Myers關于軟件測試目的提出以下觀點 測試是為了發現錯誤而執行程序的過程; 測試是為了證明程序有錯,而不是證明程序無錯誤; 一個好的測試用例在于能夠發現至今未發現的錯誤; 一個成功的測試是發現了至今未發現的錯誤的測試。 測試應達到的具體目標 確保產品完成了它所承諾或公布的功能,并且所有用戶可以訪問到的功能都有明確的書面說明; 確保產品滿足性能和效率的要求; 確保產品是健壯的和適應用戶環境的。 (1)測試目的、原則和意義對待軟件測試的態度 從用戶的角度出發 :普遍希望通過軟件測試暴露軟
5、件中隱藏的錯誤和缺陷,以考慮是 否可接受該產品。 從軟件開發者的角度出發 :希望測試成為表明軟件產品中不存在錯誤的過程,驗證該軟件已正確地實現了用戶的要求,確立人們對軟件質量的信心。 一種正確的態度 發現錯誤時,關注于改正錯誤,而不是埋怨具體的開發人員。 (1)測試目的、原則和意義軟件測試的原則 應當把“盡早地和不斷地測試”作為軟件開發者的座右銘 程序員應避免檢查自己的程序; 設計測試用例時,應包括合理的輸入和不合理的輸入,以及各種邊界條件,特殊情況下要制造極端狀態和意外狀態; 充分注意測試中的群集現象; 對測試錯誤結果一定要有一個確認過程; 制定嚴格的測試計劃,排除測試的隨意性; 注意回歸測
6、試的關聯性,往往修改一個錯誤而引起更多錯誤; 妥善保存一切測試過程文檔,測試的重現往往要靠測試文檔。(1)測試目的、原則和意義軟件測試的意義 軟件測試(Software testing)是軟件生存期(Software life cycle)中的一個重要階段,是軟件質量保證的關鍵步驟。通俗地講,軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說明和編碼進行最終復審的活動。1983年IEEE提出的軟件工程術語中給軟件測試下的定義是:“使用人工或自動的手段來運行或測定某個軟件系統的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別”。這個定義明確指出:軟件測試的目的是為
7、了檢驗軟件系統是否滿足需求。(2)測試類型測試可分4個主要階段:單元測試、集成測試、系統測試和驗收測試。這是一種“從小到大”、“由內至外”、“循序漸進”的測試過程,體現了“分而治之”的思想。(2)測試類型單元測試指的是對每一個工作單元進行測試,了解其運行結果是否符合我們的預期。它對測試人員的要求比較高,要求測試人員對程序代碼比較熟悉;一般是由程序員自己編寫完成某個單元后,先自我檢查通過后,再將測試代碼交給測試人員進行審查,如果發現缺陷,原開發者應當及時修正程序,這樣可以盡快地發現程序中存在的錯誤,及時修正以提高程序開發的效率。(2)測試類型集成測試是在單元測試的基礎上,測試在將所有的軟件單元按
8、照概要設計規格說明的要求組裝成模塊、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求的活動。也就是說,在集成測試之前,單元測試應該已經完成,集成測試中所使用的對象應該是已經經過單元測試的軟件單元。這一點很重要,因為如果不經過單元測試,那么集成測試的效果將會受到很大影響,并且會大幅增加軟件單元代碼糾錯的代價。(2)測試類型系統測試是對已經集成好的軟件系統進行徹底的測試,以驗證軟件系統的正確性和性能等滿足其規約所指定的要求,檢查軟件的行為和輸出是否正確并非一項簡單的任務,它被稱為測試的 “ 先知者問題 ” 。因此,系統測試應該按照測試計劃進行,其輸入、輸出和其他動態運行行為應該與軟件
9、規約進行對比。軟件系統測試方法很多,主要有壓力測試、性能測試、隨機測試等等。系統測試在系統測試之前,軟件開發小組應完成下列工作:A、設計測試用例,記錄測試結果,為系統測試提供經驗和幫助B、參與系統測試的規劃和設計,保證軟件測試的合理性。系統測試系統測試應該由若干個不同測試組成,目的是充分運行系統,驗證系統各部件是否都能正常工作并完成所賦予的任務。(2)測試類型驗收測試旨在向軟件的購買者展示該軟件系統滿足其用戶的需求。它的測試數據通常是系統測試的測試數據的子集。所不同的是,驗收測試常常有軟件系統的購買者代表在現場,甚至是在軟件安裝使用的現場。這是軟件在投入使用之前的最后測試。(2)測試類型軟件測
10、試方法主要有黑盒測試方法與白盒測試兩類:黑盒測試:又稱功能測試、數據驅動測試或基于規格說明的測試,是在完全不考慮程序內部結構和內部特性的情況下,檢查輸入與輸出之間關系是否符合要求。測試的主要依據是“需求”,在獨立測試階段多采用黑盒測試方法。白盒測試:又稱結構測試、邏輯驅動測試或基于程序的測試,是在已知程序內部結構的情況下設計測試用例的測試方法。測試的主要依據是“設計”。顯然,白盒測試適合在單元測試中運用。黑盒測試用黑盒測試發現程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數據,來檢查程序是否都能產生正確的輸出,但這是不可能的。 舉例:程序P有輸入整數X和Y及輸出量Z,在字長為32位
11、的計算機上運行。 白盒測試它把測試對象看做一個透明的盒子,它允許測試人員利用程 序內部的邏輯結構及有關信息,設計或選擇測試用例,對程 序所有邏輯路徑進行測試。 對一個具有多重選擇和循環嵌套的程序,不同的路徑數目可能是天文數字。 舉例:某個小程序的流程圖,包括了一個執行20次的循環。 (3)測試文檔測試用例測試規范測試計劃缺陷報告測試計劃測試計劃是測試工作的指導性文檔,規定測試活動的范圍、 方法、資源和進度;明確正在測試的項目、要測試的特性、要執行的測試任務、每個任務的負責人,以及與計劃相關的風險。主要內容:測試目標、測試方法、測試范圍、測試資源、測試環境和工具、測試體系結構、測試進度表 測試規
12、范測試規范是從整體上規定測試案例的運行環境、測試方法、 生成步驟、執行步驟以及調試和驗證的步驟。 主要內容:系統運行環境、總體測試方法、測試用例的生成步驟、測試用例的執行步驟、調試和驗證 測試用例測試用例是數據輸入和期望結果組成的對,其中“輸入”是對 被測軟件接收外界數據的描述,“期望結果”是對于相應輸入 軟件應該出現的輸出結果的描述,測試用例還應明確指出使 用具體測試案例產生的測試程序的任何限制。 測試用例可以被組織成一個測試系列,即為實現某個特定的 測試目的而設計的一組測試用例。例如,一部分測試用例用 來測試系統的兼容性,另一部分是用來測試系統在特定的環 境中,系統的典型應用是否能夠很好地
13、運作。 缺陷報告(Bug Report)缺陷報告是編寫在需要調查研究的測試過程期間發生的任何 事件。簡而言之,就是記錄軟件缺陷。 主要內容:缺陷編號、題目、狀態、提出、解決、所屬項目、測試環境、缺限報告步驟、期待結果、附件在報告缺陷時,一般要講明缺限的嚴重性和優先級。 嚴重性表示軟件的惡劣程度,反映其對產品和用戶的影響優先級表示修復缺陷的重要程度和應該何時修復。 (4)測試人員 好的軟件測試人員應具有的綜合素質 溝通能力:理想的測試人員必須能夠與測試涉及到的所有人進行溝通, 具有與技術人員(開發者)和非技術人員(客戶、管理人員)的交流能力。 移情能力:和系統開發有關的所有人員(用戶、開發者、管
14、理者)都處 于一種既關心又擔心的狀態中。測試人員必須和每一類人打交道,因此需要對每一類人都具有足夠的理解和同情,從而將測試人員與相關人員之間的沖突和對抗減少到最低程度。 技術能力:一個測試人員必須既明白被測軟件系統的概念又要會使用工程中的那些工具,這需要有幾年以上的編程經驗,從而有助于對軟件開發過程的較深入理解。 好的軟件測試人員應具有的綜合素質 自信心:開發人員指責測試人員出了錯是常有的事,測試人員必須對自己的觀點有足夠的自信心。 外交能力:當你告訴某人他出了錯時,就必須使用一些外交方法,機智 老練和外交手法有助于維護與開發人員之間的協作關系。 幽默感: 在遇到狡辯的情況下,一個幽默的批評將
15、是很有幫助的。 很強的記憶力:理想的測試人員應該有能力將以前曾經遇到過的類似的錯誤從記憶深處挖掘出來,這一能力在測試過程中的價值是無法衡量的。 好的軟件測試人員應具有的綜合素質 耐心 :一些質量保證工作需要難以置信的耐心,有時你需要花費驚人的時間去分離、識別和分派一個錯誤。 懷疑精神:可以預料,開發人員會盡他們最大的努力將所有的錯誤解釋過去。測式人員必須聽每個人的說明,但他必須保持懷疑直到他自己看過以后。 自我督促:干測試工作很容易使你變得懶散,只有那些具有自我督促能力的人才能夠使自己每天正常地工作。 洞察力:一個好的測試人員具有“測試是為了破壞”的觀點,捕獲用戶觀點的能力,強烈的質量追求,對
16、細節的關注能力。 (5)測試活動(5)測試活動(5)測試活動(6)案例學習二進制加法器 1. Press button “C”:clear the result 2. Press button “0”:input 0 3. Press button “1”:input 1 4. Press button “+”:add 5. Press button “=”:display the result (6)案例學習(6)案例學習設計測試用例的原則 :測試每一狀態的每一種內部轉換,驗證程序在正常狀態轉換下與設計需求的一致性。 測試每一狀態中每一種內部轉換的監護條件,考慮條件為真、為假以及條件參數處于
17、極限值附近的情況。 測試每一狀態中是否可能發生奇異的內部轉換,如在滿20位后連續按多次數字鍵的特殊情況。測試狀態與狀態之間每一條轉換路徑,驗證程序在合法條件 下行為的正確性。測試狀態與狀態之間每一條轉換路徑的監護條件,考慮條件 為真、為假以及條件參數處于極限值附近的情況。分析狀態與狀態之間可能發生的異常轉換,并設計測試用例,如考察連續按加號或等號鍵的特殊情況。 將系統作為一個整體來看待,使用典型的加法算式驗證系統的計算功能。 (6)案例學習 在二進制加法器的例子中,設計三種測試用列 基于內部轉換的測試用例 基于狀態之間轉換的測試用例 基于加法算式的測試用例 基于內部轉換的測試用例基于內部轉換的
18、測試用例基于內部轉換的測試用例基于狀態之間轉換的測試用例基于加法算式的測試用例基于加法算式的測試用例Common Errors易用性問題:用戶無法使用或不方便使用 不符合用戶操作習慣。 界面中英文混雜,界面元素參差不齊,文字顯示不全。 無自動安裝程序或安裝程序不完善。 界面中的信息不能及時刷新,不能正確反映當前數據狀態 提示信息意文不明或為原始的英文提示。 要求用戶輸入多余的、本來系統可以自動獲取的數據。 某一項功能的冗余操作太多。 不能記憶用戶的設置或操作習慣,用戶每次進入系統都需 要重新操作初始環境。 復雜操作無聯機幫助。 Common Errors穩定性問題:影響用戶正常工作 程序運行過
19、程中不斷申請,但沒有完全釋放資源,造成系 統性能越來越低,并出現無規律的死機現象。 不能重現的錯誤,有些與代碼中的未初始化變量有關,有 些與系統不檢查異常情況有關。 對一般性錯誤的屏蔽能力較差。 對輸入數據沒有進行充分并且有效的有效性檢查,造成不 合要求的數據進入數據庫。 用戶文檔問題 無標準,無新功能使用方法,無版本改動說明。 Common Errors兼容性問題 對硬件平臺或軟件平臺的兼容性不好。 比如:在一臺計算機上可以穩定運行,而在另一臺計算 機上運行就極不穩定。 數據接口問題 未提供一些常用文件格式的接口,如TXT文件、Word 文件。 6.2 滲透測試6.2.1 軟件安全測試6.2
20、.2 滲透測試6.2.1 軟件安全測試 安全測試,在充分考慮軟件安全性問題的前提下進行的測試,普通的軟件測試的主要目的是:確保軟件不會去完成沒有預先設計的功能,確保軟件能夠完成預先設計的功能。但是,安全測試更有針對性同時可能采用一些和普通測試不一樣的測試手段,如攻擊和反攻擊技術。因此,實際上,安全測試實際上就是一輪多角度、全方位的攻擊和反攻擊,其目的就是要搶在攻擊者之前盡可能多地找到軟件中的漏洞以減少軟件遭到攻擊的可能性。 測試軟件的安全需求是否得到滿足的兩種常見方法是:功能安全測試和基于風險的安全測試。 系統安全測試的常用方法包括:壓力測試、黑盒測試、滲透測試等。一次轉身最遠能產生多遠的距離
21、 從傳統軟件測試轉向安全性測試如果不付出相當大的努力去消除,每個復雜的軟件程序都會有代價高昂的安全漏洞。這些漏洞會造成病毒和蠕蟲的橫行,也會使得罪犯能夠攫取用戶的個人財務數據,而這些用戶已如驚弓之鳥,并且本來就很不愿意把他們的個人數據放在Internet上。2019年,CardSystems成為數字化攻擊的犧牲品,由于對信用卡數據在未加密情況下存儲,有4000多萬張借記卡和信用卡泄密,4個月后,這家公司倒閉出售。安全性測試:不是驗證軟件的正確性,而是挖掘軟件的漏洞(軟件中的“不應該”和“不允許”部分,例如:代碼中的緩沖區溢出漏洞,電子秤中的作弊后門等)。 - 越崩潰越快樂!一次轉身最遠能產生多
22、遠的距離 從傳統軟件測試轉向安全性測試RFC2828將漏洞定義為“系統設計、實現或操作和管理中存在的缺陷或弱點,能被利用而違背系統的安全策略”例如:對于一個web輸入界面的測試,其上有個字段【銀行賬號】(正確輸入是12個數字),對該字段的測試包括:正確輸入驗證:正好12個數字(分該賬號存在和不存在兩種情況驗證)異常輸入驗證:(模仿用戶的一些無意錯誤操作)輸入不滿12個數字,超過12個數字,有非數字字符,空,等等。安全測試:SQL注入攻擊(用web代理來輸入,繞過客戶端的檢驗檢查)、跨站點腳本輸出、整數溢出等。安全測試的出發點:像攻擊者一樣思考一些典型的攻擊模式驗證用戶輸入不會提供機會讓攻擊者通
23、過已知的SQL注入攻擊來操縱后臺數據庫;驗證不存在跨站點執行腳本的可能性;驗證在向服務器發送一個它不能正確處理的非法數據包的情況下,服務器不會崩潰;驗證用戶輸入不會導致數據處理溢出;驗證程序對錯誤的處理是恰當的;驗證數據在網絡傳輸中或存儲時是經過了保護的驗證不會出現信息泄露驗證訪問控制。6.2.2 軟件滲透測試 Penetration testing是完全模擬黑客可能使用的攻擊技術和漏洞發現技術,對目標系統(軟件)的安全做深入的探測,發現系統最脆弱的環節。能直觀的展現系統(軟件)所面臨的安全問題滲透測試分類 根據滲透方法分類黑箱測試(zero-knowledge testing):滲透者完全處
24、于對系統一無所知的狀態。通常,這種類型的測試,最初的信息獲取來自DNS、Web、Email及各種公開對外的服務器。白盒測試:測試者可以通過正常渠道向被測單位取得各種資料,包括網絡拓撲、員工資料甚至網站或程序的代碼片段,也能與單位其他員工進行面對面的溝通。這類的測試目的是模擬企業內部雇員的越權操作。隱秘測試:隱秘是針對被測單位而言的。通常,接受滲透測試的單位網絡管理部門會收到通知:在某些時間段進行測試。因此能夠檢測網絡中出現的變化。但在隱秘測試中,被測單位也僅有極少數人知曉測試的存在,因此能夠有效地檢驗單位中的信息安全事件監控、響應、恢復做得是否到位滲透測試分類 根據滲透目標分類主機操作系統滲透
25、:對Windows、Solaris、AIX、Linux、SCO、SGI等操作系統本身進行滲透測試數據庫系統滲透:對MS-SQL,ORACLE,mysql,infomix,sybase,DB2等數據庫應用系統進行滲透測試應用系統滲透:對滲透目標提供的各種應用,如ASP、CGI、JSP、PHP等組成的WWW應用進行滲透測試網絡設備滲透:對各種防火墻、入侵檢測系統、網絡設備進行滲透測試從攻方視角看滲透內網測試滲透測試人員由內部網絡發起測試。這類測試能夠模擬企業內部違規操作者的行為。優勢:繞過了防火墻的保護。常用滲透方式:遠程緩沖區溢出,口令猜測,以及b/s或c/s應用程序測試外網測試滲透測試人員完全
26、處于外部網絡,模擬對內部狀態一無所知的外部攻擊者的行為。包括對網絡設備的遠程攻擊,口令管理安全性測試,防火墻規則試探、規避,web及其它開放應用服務的安全性測試從攻方視角看滲透不同網段/vlan之間的滲透從某內/外部網段,嘗試對另一網段/vlan進行滲透。通常可能用到的技術包括:對網絡設備的遠程攻擊;對防火墻的遠程攻擊或規則探測、規避嘗試。信息的收集和分析伴隨著每一個滲透測試步驟,每一個步驟又有三個組成部分:操作、響應和結果分析。 端口掃描通過對目標地址的tcp/udp端口掃描,確定其所開放的服務的數量和類型,這是所有滲透測試的基礎。通過端口掃描,可以基本確定一個系統的基本信息,結合安全工程師
27、的經驗可以確定其可能存在,以及被利用的安全弱點,為進行深層次的滲透提供依據。 從攻方視角看滲透遠程溢出這是當前出現的頻率最高、威脅最嚴重,同時又是最容易實現的一種滲透方法,一個具有一般網絡知識的入侵者就可以在很短的時間內利用現成的工具實現遠程溢出攻擊。對于防火墻內的系統同樣存在這樣的風險,只要對跨接防火墻內外的一臺主機攻擊成功,那么通過這臺主機對防火墻內的主機進行攻擊就易如反掌。 口令猜測口令猜測也是一種出現概率很高的風險,幾乎不需要任何攻擊工具,利用一個簡單的暴力攻擊程序和一個比較完善的字典,就可以猜測口令。對一個系統賬號的猜測通常包括兩個方面:首先是對用戶名的猜測,其次是對密碼的猜測。 從
28、攻方視角看滲透本地溢出指在擁有了一個普通用戶的賬號之后,通過一段特殊的指令代碼獲得管理員權限的方法。前提:首先要獲得一個普通用戶密碼。也就是說由于導致本地溢出的一個關鍵條件是設置不當的密碼策略。多年的實踐證明,在經過前期的口令猜測階段獲取的普通賬號登錄系統之后,對系統實施本地溢出攻擊,就能獲取不進行主動安全防御的系統的控制管理權限。 從攻方視角看滲透腳本及應用測試專門針對web及數據庫服務器進行。據最新技術統計,腳本安全弱點為當前web系統,尤其是存在動態內容的web系統比較嚴重的 安全弱點之一。利用腳本相關弱點輕則可以獲取系統其他目錄的訪問權限,重則將有可能取得系統的控制權限。因此對于含有動
29、態頁面的web、數據庫等系統,web腳本及應用測試將是必不可少的一個環節。在web腳本及應用測試中,可能需要檢查的部份包括:檢查應用系統架構,防止用戶繞過系統直接修改數據庫;檢查身份認證模塊,用以防止非法用戶繞過身份認證;檢查數據庫接口模塊,用以防止用戶獲取系統權限;檢查文件接口模塊,防止用戶獲取系統文件;檢查其他安全威脅。 從攻方視角看滲透無線測試中國的無線網絡還處于建設時期,但是由于無線網絡的部署簡易,在一些大城市的普及率已經很高了。北京和上海的商務區至少80%的地方都可以找到接入點。通過對無線網絡的測試,可以判斷企業局域網安全性,已經成為越來越重要的滲透測試環節。除了上述的測試手段外,還
30、有一些可能會在滲透測試過程中使用的技術,包括:社交工程學、拒絕服務攻擊,以及中間人攻擊。 從守方視角看滲透 當具備滲透測試攻擊經驗的人們站到系統管理員的角度,要保障一個大網的安全時,我們會發現,需要關注的問題是完全不同的:從攻方的視角看,是“攻其一點, 不及其余”,只要找到一點漏洞,就有可能撕開整條戰線;但從守方的視角看,卻發現往往“千里之堤,毀于蟻穴”。因此,需要有好的理論指引,從技術到管理都 注重安全,才能使網絡固若金湯。 滲透測試的必要性滲透測試利用網絡安全掃描器、專用安全測試工具和富有經驗的安全工程師的人工經驗對網絡中的核心服務器及重要的網絡設備,包括服務器、網絡設備、防火墻等進行非破
31、壞性質的模擬黑客攻擊,目的是侵入系統并獲取機密信息并將入侵的過程和細節產生報告給用戶。 滲透測試和工具掃描可以很好的互相補充。工具掃描具有很好的效率和速度,但是存在一定的誤報率和漏報率,并且不能發現高層次、復雜、并且相互關聯的安全 問題;滲透測試需要投入的人力資源較大、對測試者的專業技能要求很高(滲透測試報告的價值直接依賴于測試者的專業技能),但是非常準確,可以發現邏輯性更 強、更深層次的弱點。 微軟的滲透測試團隊的日常工作流程時間選擇為減輕滲透測試對網絡和主機的影響,滲透測試時間盡量安排在業務量不大的時段和晚上策略選擇為防止滲透測試造成網絡和主機的業務中斷,在滲透測試中不使用含有拒絕服務的測
32、試策略授權滲透測試的監測手段在評估過程中,由于滲透測試的特殊性,用戶可以要求對整體測試流程進行監控測試方自控:由滲透測試方對本次滲透測試過程中的三方面數據進行完整記錄:操作、響應、分析,最終形成完整有效的滲透測試報告提交給用戶用戶監控:用于監控有4種形式全程監控:采用類似ethereal的嗅探軟件進行全程抓包嗅探擇要監控:對掃描過程不進行錄制,僅僅在安全工程師分析數據后,準備發起滲透前才開啟軟件進行嗅探主機監控:僅監控受測主機的存活狀態,避免意外情況發生指定攻擊源:用戶指定由特定攻擊源地址進行攻擊,該源地址的主機由用戶進行進程、網絡連接、數據傳輸等多方監控關于網絡信息收集使用ping swee
33、p、dns sweep、snmp sweep、tracert等手段對主機存活情況、dns名、網絡鏈路等進行信息收集。可以對目標的網絡情況、拓撲情況、應用情況有一個大致的了解,為更深層次的滲透測試提供資料保守策略選擇對于不能接受任何可能風險的主機系統,如銀行票據核查系統、電力調度系統等,可選擇如下保守策略復制一份目標環境,包括硬件平臺、操作系統、數據庫管理系統、應用軟件等對目標的副本進行滲透測試基于網絡的滲透測試的一般過程目標搜索列表:要測試的可以訪問的網絡服務器列表探測滲透主機評估繼續6.3 基于風險的安全測試步驟如下:1、基于前面設計階段制定的威脅模型,設計測試計劃。如:用戶口令安全的威脅樹
34、如下圖所示測試計劃就可以基于口令安全所可能遭受的各個攻擊進行制定。 6.3 基于風險的安全測試 2、將安全測試的最小組件單位進行劃分,并確定組件的輸入格式。 實際上,和傳統的測試不同,威脅模型中,并不是所有的模塊都會有安全問題,因此,我們只需將需要安全測試的某一部分程序取出來進行測試,將安全測試的最小組件單位進行劃分。 此外,每個組件都提供了接口,也就是輸入,在測試階段,測試用例需要進行輸入,這就必須將每個接口的輸入類型、輸入格式等都列出來,便于測試用例的制定。這些輸入如: Socket數據; 無線數據;命令行;語音設備;串口;HTTP提交;等等。6.3 基于風險的安全測試 3、根據各個接口可
35、能遇到的威脅,或者系統的潛在漏洞,對接口進行分級。 在該步驟中,主要是確定系統將要受到的威脅的嚴重性,將比較嚴重的威脅進行優先的測試,這個嚴重性的判斷,應該來源于威脅模型。 可以通過很多方法對接口受到的威脅性進行分級,如評分方法,對各個接口可能受到的各種威脅進行評分,最后累加,優先測試那些分數排在前面的接口。6.3 基于風險的安全測試 4、確定輸入數據,設計測試用例。 每一個接口可以輸入的數據都不相同,由于安全測試不同于普通的測試,因此還要更加精心地設計測試用例。有時候還要精心設計輸入的數據結構,如隨機數、集合等的設計,都要必須是為安全測試服務的。 在測試用例的設計過程中,必須要了解,安全測試
36、實際上是對程序進行的安全攻擊,因此,不但數據本身需要精心設計,測試手段也要精心設計。如在對緩沖區溢出的測試中,必須精心設計各種輸入,從不同的方面來對程序進行攻擊。 6.3 基于風險的安全測試 5、攻擊應用程序(軟件),查看其效果。 用設計的測試用例來攻擊應用程序,使得系統處于一種受到威脅的狀態,來得到輸出。 6、總結測試結果,提出解決方案。 本過程中,將預期輸出和實際輸出進行比較,得出結論,寫出測試報告,最后提交相應的人員,進行錯誤解決。登錄頁面的威脅分析猜測口令:設計時應設計登錄試探次數,例如:只許試探三次,然后鎖定ip地址。利用password文件系統地猜測口令:加密文件(密碼強弱,文件存
37、放是否安全)分析協議和濾出口令:不能明文傳輸,密碼的強弱重放攻擊:加時間戳木馬監視登錄/口令:系統安全,一次性口令盜鏈:SQL注入漏洞異常輸入破壞:安全測試技術之七種武器一個完整的WEB安全性測試可以從以下幾個方面入手:1.安全體系測試網絡是否提供了安全的通信部署拓撲結構是否包括內部的防火墻部署拓撲結構中是否包括遠程應用程序服務器操作系統是否存在漏洞,例如Unix上的緩沖區溢出漏洞、Windows上的RPC漏洞、緩沖區溢出漏洞、安全機制漏洞等; 安全測試技術之七種武器2. 輸入驗證如何驗證輸入是否清楚入口點是否驗證Web頁輸入是否對傳遞到組件或Web服務的參數進行驗證是否驗證從數據庫中檢索的數
38、據是否依賴客戶端的驗證應用程序是否易受SQL注入攻擊應用程序是否易受XSS攻擊如何處理輸入安全測試技術之七種武器3.身份驗證和授權是否區分公共訪問和受限訪問如何驗證調用者身份如何驗證數據庫的身份如何向最終用戶授權4. 敏感數據是否存儲機密信息如何存儲敏感數據是否在網絡中傳遞敏感數據5. 加密為何使用特定的算法如何確保加密密鑰的安全性6.參數操作是否驗證所有的輸入參數是否在參數過程中傳遞敏感數據是否為了安全問題而使用HTTP頭數據7.審核和日志記錄是否明確了要審核的活動是否考慮如何流動原始調用這身份安全測試技術之七種武器應用服務器的安全性測試技術一、應用服務器的安全性測試內容 基于應用服務器的安
39、全性測試內容主要包括:驗證隱私系統是否受到保護、數據是否加密,檢測系統是否有安全保密的漏洞,檢驗系統及其所在的網絡是否能夠承受各種類型的惡意攻擊。對于Web 服務器而言,具體測試內容還有測試用戶登錄與注冊、是否有超時限制、服務器腳本語言、日志文件、目錄安全、SSL 安全傳輸測試等。二、應用服務器的安全性測試方法與技術 (一)全面搜集與應用服務器安全相關的各種信息,分析其可能出現的安全隱患應用服務器被使用的企業單位基本信息、管理中薄弱環節、應用服務器配置信息、系統可訪問的主機IP 地址及對應的主機名、服務器所在網絡的拓樸結構等,這些信息可能成為被利用的安全隱患,有的可能在互聯網上搜索得到,要對其
40、進行分析和安全隱患檢查。應用服務器的安全性測試技術(二)應用服務器的漏洞探測和掃描 1、利用搜索引擎搜索已公布的漏洞。可利用Google 等工具搜索資源,研究系統漏洞。可訪問CVE(公共漏洞和暴露)數據庫,查找漏洞。Packet Storm 組織是由一些致力于提供必要信息以安全化全球網絡的安全專業人士組成的非盈利組織,在其網站上可以找到許多安全信息,如Windows 中緩沖區溢出漏洞、Unix主機中遠程過程調用(RPC)的安全隱患、FTP漏洞,Sendmail郵件服務軟件的漏洞等。 2、利用掃描工具進行漏洞探測。服務器漏洞掃描的工具很多,基于Linux的掃描工具有Namp、Netcat、Nessus。基于Windows的端口掃描器有NeWT 等。還有很多掃描工具,如:著名的COPS、Tiger、 Fluxay5(流光)、X-scan、N-Stealth、Metasploit Framework(metasploit:55555/)等。其中,很多工具可以在網上免費下載。可以利用上述工具探測系統漏洞,查看系統是否打了補丁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 繼發性血小板增多癥的健康宣教
- 冠狀動脈供血不足的健康宣教
- 腱索斷裂的健康宣教
- 綠色生活學校環保社團活動計劃
- 創傷性血胸的健康宣教
- 實踐性課程的開設計劃
- 有機化學藥學試題及答案
- 農藝師考試創新思維2024年試題及答案
- 2024年農藝師考試成才途徑思考試題及答案
- 社區安全建設的共治共享計劃
- 2025年AR眼鏡行業市場規模及主要企業市占率分析報告
- 日常小學生防性侵安全教育課件
- 浙江首考2025年1月普通高等學校招生全國統一考試 歷史 含解析
- 市政城市環境管理
- 2025辦公樓租賃合同書范本
- 2025年高考英語二輪復習測試04 從句綜合+語法填空(測試)(原卷版)
- 春季肝膽排毒課件
- 第12課 遼宋夏金元時期經濟的繁榮 教案2024-2025學年七年級歷史下冊新課標
- 《安全生產治本攻堅三年行動方案》培訓
- 16J914-1 公用建筑衛生間
- 教學課件:《新時代新征程》
評論
0/150
提交評論