軟件安全-安全測試共96頁PPT課件_第1頁
軟件安全-安全測試共96頁PPT課件_第2頁
軟件安全-安全測試共96頁PPT課件_第3頁
軟件安全-安全測試共96頁PPT課件_第4頁
軟件安全-安全測試共96頁PPT課件_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第六章 安全測試6.1 軟件測試基礎(chǔ)6.2 滲透測試6.3 基于風險的安全測試6. 1 軟件測試基礎(chǔ)6.1.1 驗證與確認6.1.2 軟件測試6.1.1 驗證與確認(1)缺陷與錯誤、驗證與確認 (2)處理錯誤的方法 (3)人工驗證的方法 (1)缺陷與錯誤、驗證與確認(1/2)錯誤(Error) 系統(tǒng)處于可能導致故障的狀態(tài),往往由開發(fā)人員引起,如輸入錯 誤、需求錯誤、設(shè)計錯誤等。 缺陷(Fault ,Bug ) 可能引起系統(tǒng)不正常行為的設(shè)計或編碼錯誤(也稱Bug)。 故障(Failure) 系統(tǒng)的規(guī)格說明與其行為之間的偏差,由一個或多個錯誤引起。(1)缺陷與錯誤、驗證與確認(2/2)驗證( V

2、erification ) 要查明工作產(chǎn)品是否恰當?shù)胤从沉艘?guī)定的要求。 確認( Validation ) 要證明所提供的(或?qū)⒁峁┑模┊a(chǎn)品適合其預(yù)計的用途 。 驗證要保證“做得正確”,而確認則要保證“做的東西正確”,即驗證注重“過程”,確認注重“結(jié)果” 。 缺陷與錯誤、驗證與確認錯誤和缺陷的例子 軟件錯誤(或軟件缺陷)的表現(xiàn) 軟件未達到產(chǎn)品說明書標明的功能; 軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯誤; 軟件功能超出了產(chǎn)品說明書指明的范圍; 軟件未達到產(chǎn)品說明書雖未指出但應(yīng)達到的目標; 軟件測試人員認為軟件難以理解、不易使用、運行速度緩 慢、或者最終用戶不滿意。 有錯是軟件的屬性,而且是無法改變

3、的。因此,關(guān)鍵在于如何避免錯誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯誤,使程序中的錯誤密度達到盡可能低的程度。 ?錯誤(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關(guān)于軟件測試目的提出以下觀點 測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程; 測試是為了證明程序有錯,而不是證明程序無錯誤; 一個好的測試用例在于能夠發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤; 一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。 測試應(yīng)達到的具體目標 確保產(chǎn)品完成了它所承諾或公布的功能,并且所有用戶可以訪問到的功能都有明確的書面說明; 確保產(chǎn)品滿足性能和效率的要求; 確保產(chǎn)品是健壯的和適應(yīng)用戶環(huán)境的。 (1)測試目的、原則和意義對待軟件測試的態(tài)度 從用戶的角度出發(fā) :普遍希望通過軟件測試暴露軟

5、件中隱藏的錯誤和缺陷,以考慮是 否可接受該產(chǎn)品。 從軟件開發(fā)者的角度出發(fā) :希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗證該軟件已正確地實現(xiàn)了用戶的要求,確立人們對軟件質(zhì)量的信心。 一種正確的態(tài)度 發(fā)現(xiàn)錯誤時,關(guān)注于改正錯誤,而不是埋怨具體的開發(fā)人員。 (1)測試目的、原則和意義軟件測試的原則 應(yīng)當把“盡早地和不斷地測試”作為軟件開發(fā)者的座右銘 程序員應(yīng)避免檢查自己的程序; 設(shè)計測試用例時,應(yīng)包括合理的輸入和不合理的輸入,以及各種邊界條件,特殊情況下要制造極端狀態(tài)和意外狀態(tài); 充分注意測試中的群集現(xiàn)象; 對測試錯誤結(jié)果一定要有一個確認過程; 制定嚴格的測試計劃,排除測試的隨意性; 注意回歸測

6、試的關(guān)聯(lián)性,往往修改一個錯誤而引起更多錯誤; 妥善保存一切測試過程文檔,測試的重現(xiàn)往往要靠測試文檔。(1)測試目的、原則和意義軟件測試的意義 軟件測試(Software testing)是軟件生存期(Software life cycle)中的一個重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。通俗地講,軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼進行最終復(fù)審的活動。1983年IEEE提出的軟件工程術(shù)語中給軟件測試下的定義是:“使用人工或自動的手段來運行或測定某個軟件系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實際結(jié)果之間的差別”。這個定義明確指出:軟件測試的目的是為

7、了檢驗軟件系統(tǒng)是否滿足需求。(2)測試類型測試可分4個主要階段:單元測試、集成測試、系統(tǒng)測試和驗收測試。這是一種“從小到大”、“由內(nèi)至外”、“循序漸進”的測試過程,體現(xiàn)了“分而治之”的思想。(2)測試類型單元測試指的是對每一個工作單元進行測試,了解其運行結(jié)果是否符合我們的預(yù)期。它對測試人員的要求比較高,要求測試人員對程序代碼比較熟悉;一般是由程序員自己編寫完成某個單元后,先自我檢查通過后,再將測試代碼交給測試人員進行審查,如果發(fā)現(xiàn)缺陷,原開發(fā)者應(yīng)當及時修正程序,這樣可以盡快地發(fā)現(xiàn)程序中存在的錯誤,及時修正以提高程序開發(fā)的效率。(2)測試類型集成測試是在單元測試的基礎(chǔ)上,測試在將所有的軟件單元按

8、照概要設(shè)計規(guī)格說明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標及要求的活動。也就是說,在集成測試之前,單元測試應(yīng)該已經(jīng)完成,集成測試中所使用的對象應(yīng)該是已經(jīng)經(jīng)過單元測試的軟件單元。這一點很重要,因為如果不經(jīng)過單元測試,那么集成測試的效果將會受到很大影響,并且會大幅增加軟件單元代碼糾錯的代價。(2)測試類型系統(tǒng)測試是對已經(jīng)集成好的軟件系統(tǒng)進行徹底的測試,以驗證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項簡單的任務(wù),它被稱為測試的 “ 先知者問題 ” 。因此,系統(tǒng)測試應(yīng)該按照測試計劃進行,其輸入、輸出和其他動態(tài)運行行為應(yīng)該與軟件

9、規(guī)約進行對比。軟件系統(tǒng)測試方法很多,主要有壓力測試、性能測試、隨機測試等等。系統(tǒng)測試在系統(tǒng)測試之前,軟件開發(fā)小組應(yīng)完成下列工作:A、設(shè)計測試用例,記錄測試結(jié)果,為系統(tǒng)測試提供經(jīng)驗和幫助B、參與系統(tǒng)測試的規(guī)劃和設(shè)計,保證軟件測試的合理性。系統(tǒng)測試系統(tǒng)測試應(yīng)該由若干個不同測試組成,目的是充分運行系統(tǒng),驗證系統(tǒng)各部件是否都能正常工作并完成所賦予的任務(wù)。(2)測試類型驗收測試旨在向軟件的購買者展示該軟件系統(tǒng)滿足其用戶的需求。它的測試數(shù)據(jù)通常是系統(tǒng)測試的測試數(shù)據(jù)的子集。所不同的是,驗收測試常常有軟件系統(tǒng)的購買者代表在現(xiàn)場,甚至是在軟件安裝使用的現(xiàn)場。這是軟件在投入使用之前的最后測試。(2)測試類型軟件測

10、試方法主要有黑盒測試方法與白盒測試兩類:黑盒測試:又稱功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試,是在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,檢查輸入與輸出之間關(guān)系是否符合要求。測試的主要依據(jù)是“需求”,在獨立測試階段多采用黑盒測試方法。白盒測試:又稱結(jié)構(gòu)測試、邏輯驅(qū)動測試或基于程序的測試,是在已知程序內(nèi)部結(jié)構(gòu)的情況下設(shè)計測試用例的測試方法。測試的主要依據(jù)是“設(shè)計”。顯然,白盒測試適合在單元測試中運用。黑盒測試用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出,但這是不可能的。 舉例:程序P有輸入整數(shù)X和Y及輸出量Z,在字長為32位

11、的計算機上運行。 白盒測試它把測試對象看做一個透明的盒子,它允許測試人員利用程 序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程 序所有邏輯路徑進行測試。 對一個具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。 舉例:某個小程序的流程圖,包括了一個執(zhí)行20次的循環(huán)。 (3)測試文檔測試用例測試規(guī)范測試計劃缺陷報告測試計劃測試計劃是測試工作的指導性文檔,規(guī)定測試活動的范圍、 方法、資源和進度;明確正在測試的項目、要測試的特性、要執(zhí)行的測試任務(wù)、每個任務(wù)的負責人,以及與計劃相關(guān)的風險。主要內(nèi)容:測試目標、測試方法、測試范圍、測試資源、測試環(huán)境和工具、測試體系結(jié)構(gòu)、測試進度表 測試規(guī)

12、范測試規(guī)范是從整體上規(guī)定測試案例的運行環(huán)境、測試方法、 生成步驟、執(zhí)行步驟以及調(diào)試和驗證的步驟。 主要內(nèi)容:系統(tǒng)運行環(huán)境、總體測試方法、測試用例的生成步驟、測試用例的執(zhí)行步驟、調(diào)試和驗證 測試用例測試用例是數(shù)據(jù)輸入和期望結(jié)果組成的對,其中“輸入”是對 被測軟件接收外界數(shù)據(jù)的描述,“期望結(jié)果”是對于相應(yīng)輸入 軟件應(yīng)該出現(xiàn)的輸出結(jié)果的描述,測試用例還應(yīng)明確指出使 用具體測試案例產(chǎn)生的測試程序的任何限制。 測試用例可以被組織成一個測試系列,即為實現(xiàn)某個特定的 測試目的而設(shè)計的一組測試用例。例如,一部分測試用例用 來測試系統(tǒng)的兼容性,另一部分是用來測試系統(tǒng)在特定的環(huán) 境中,系統(tǒng)的典型應(yīng)用是否能夠很好地

13、運作。 缺陷報告(Bug Report)缺陷報告是編寫在需要調(diào)查研究的測試過程期間發(fā)生的任何 事件。簡而言之,就是記錄軟件缺陷。 主要內(nèi)容:缺陷編號、題目、狀態(tài)、提出、解決、所屬項目、測試環(huán)境、缺限報告步驟、期待結(jié)果、附件在報告缺陷時,一般要講明缺限的嚴重性和優(yōu)先級。 嚴重性表示軟件的惡劣程度,反映其對產(chǎn)品和用戶的影響優(yōu)先級表示修復(fù)缺陷的重要程度和應(yīng)該何時修復(fù)。 (4)測試人員 好的軟件測試人員應(yīng)具有的綜合素質(zhì) 溝通能力:理想的測試人員必須能夠與測試涉及到的所有人進行溝通, 具有與技術(shù)人員(開發(fā)者)和非技術(shù)人員(客戶、管理人員)的交流能力。 移情能力:和系統(tǒng)開發(fā)有關(guān)的所有人員(用戶、開發(fā)者、管

14、理者)都處 于一種既關(guān)心又擔心的狀態(tài)中。測試人員必須和每一類人打交道,因此需要對每一類人都具有足夠的理解和同情,從而將測試人員與相關(guān)人員之間的沖突和對抗減少到最低程度。 技術(shù)能力:一個測試人員必須既明白被測軟件系統(tǒng)的概念又要會使用工程中的那些工具,這需要有幾年以上的編程經(jīng)驗,從而有助于對軟件開發(fā)過程的較深入理解。 好的軟件測試人員應(yīng)具有的綜合素質(zhì) 自信心:開發(fā)人員指責測試人員出了錯是常有的事,測試人員必須對自己的觀點有足夠的自信心。 外交能力:當你告訴某人他出了錯時,就必須使用一些外交方法,機智 老練和外交手法有助于維護與開發(fā)人員之間的協(xié)作關(guān)系。 幽默感: 在遇到狡辯的情況下,一個幽默的批評將

15、是很有幫助的。 很強的記憶力:理想的測試人員應(yīng)該有能力將以前曾經(jīng)遇到過的類似的錯誤從記憶深處挖掘出來,這一能力在測試過程中的價值是無法衡量的。 好的軟件測試人員應(yīng)具有的綜合素質(zhì) 耐心 :一些質(zhì)量保證工作需要難以置信的耐心,有時你需要花費驚人的時間去分離、識別和分派一個錯誤。 懷疑精神:可以預(yù)料,開發(fā)人員會盡他們最大的努力將所有的錯誤解釋過去。測式人員必須聽每個人的說明,但他必須保持懷疑直到他自己看過以后。 自我督促:干測試工作很容易使你變得懶散,只有那些具有自我督促能力的人才能夠使自己每天正常地工作。 洞察力:一個好的測試人員具有“測試是為了破壞”的觀點,捕獲用戶觀點的能力,強烈的質(zhì)量追求,對

16、細節(jié)的關(guān)注能力。 (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)案例學習設(shè)計測試用例的原則 :測試每一狀態(tài)的每一種內(nèi)部轉(zhuǎn)換,驗證程序在正常狀態(tài)轉(zhuǎn)換下與設(shè)計需求的一致性。 測試每一狀態(tài)中每一種內(nèi)部轉(zhuǎn)換的監(jiān)護條件,考慮條件為真、為假以及條件參數(shù)處于

17、極限值附近的情況。 測試每一狀態(tài)中是否可能發(fā)生奇異的內(nèi)部轉(zhuǎn)換,如在滿20位后連續(xù)按多次數(shù)字鍵的特殊情況。測試狀態(tài)與狀態(tài)之間每一條轉(zhuǎn)換路徑,驗證程序在合法條件 下行為的正確性。測試狀態(tài)與狀態(tài)之間每一條轉(zhuǎn)換路徑的監(jiān)護條件,考慮條件 為真、為假以及條件參數(shù)處于極限值附近的情況。分析狀態(tài)與狀態(tài)之間可能發(fā)生的異常轉(zhuǎn)換,并設(shè)計測試用例,如考察連續(xù)按加號或等號鍵的特殊情況。 將系統(tǒng)作為一個整體來看待,使用典型的加法算式驗證系統(tǒng)的計算功能。 (6)案例學習 在二進制加法器的例子中,設(shè)計三種測試用列 基于內(nèi)部轉(zhuǎn)換的測試用例 基于狀態(tài)之間轉(zhuǎn)換的測試用例 基于加法算式的測試用例 基于內(nèi)部轉(zhuǎn)換的測試用例基于內(nèi)部轉(zhuǎn)換的

18、測試用例基于內(nèi)部轉(zhuǎn)換的測試用例基于狀態(tài)之間轉(zhuǎn)換的測試用例基于加法算式的測試用例基于加法算式的測試用例Common Errors易用性問題:用戶無法使用或不方便使用 不符合用戶操作習慣。 界面中英文混雜,界面元素參差不齊,文字顯示不全。 無自動安裝程序或安裝程序不完善。 界面中的信息不能及時刷新,不能正確反映當前數(shù)據(jù)狀態(tài) 提示信息意文不明或為原始的英文提示。 要求用戶輸入多余的、本來系統(tǒng)可以自動獲取的數(shù)據(jù)。 某一項功能的冗余操作太多。 不能記憶用戶的設(shè)置或操作習慣,用戶每次進入系統(tǒng)都需 要重新操作初始環(huán)境。 復(fù)雜操作無聯(lián)機幫助。 Common Errors穩(wěn)定性問題:影響用戶正常工作 程序運行過

19、程中不斷申請,但沒有完全釋放資源,造成系 統(tǒng)性能越來越低,并出現(xiàn)無規(guī)律的死機現(xiàn)象。 不能重現(xiàn)的錯誤,有些與代碼中的未初始化變量有關(guān),有 些與系統(tǒng)不檢查異常情況有關(guān)。 對一般性錯誤的屏蔽能力較差。 對輸入數(shù)據(jù)沒有進行充分并且有效的有效性檢查,造成不 合要求的數(shù)據(jù)進入數(shù)據(jù)庫。 用戶文檔問題 無標準,無新功能使用方法,無版本改動說明。 Common Errors兼容性問題 對硬件平臺或軟件平臺的兼容性不好。 比如:在一臺計算機上可以穩(wěn)定運行,而在另一臺計算 機上運行就極不穩(wěn)定。 數(shù)據(jù)接口問題 未提供一些常用文件格式的接口,如TXT文件、Word 文件。 6.2 滲透測試6.2.1 軟件安全測試6.2

20、.2 滲透測試6.2.1 軟件安全測試 安全測試,在充分考慮軟件安全性問題的前提下進行的測試,普通的軟件測試的主要目的是:確保軟件不會去完成沒有預(yù)先設(shè)計的功能,確保軟件能夠完成預(yù)先設(shè)計的功能。但是,安全測試更有針對性同時可能采用一些和普通測試不一樣的測試手段,如攻擊和反攻擊技術(shù)。因此,實際上,安全測試實際上就是一輪多角度、全方位的攻擊和反攻擊,其目的就是要搶在攻擊者之前盡可能多地找到軟件中的漏洞以減少軟件遭到攻擊的可能性。 測試軟件的安全需求是否得到滿足的兩種常見方法是:功能安全測試和基于風險的安全測試。 系統(tǒng)安全測試的常用方法包括:壓力測試、黑盒測試、滲透測試等。一次轉(zhuǎn)身最遠能產(chǎn)生多遠的距離

21、 從傳統(tǒng)軟件測試轉(zhuǎn)向安全性測試如果不付出相當大的努力去消除,每個復(fù)雜的軟件程序都會有代價高昂的安全漏洞。這些漏洞會造成病毒和蠕蟲的橫行,也會使得罪犯能夠攫取用戶的個人財務(wù)數(shù)據(jù),而這些用戶已如驚弓之鳥,并且本來就很不愿意把他們的個人數(shù)據(jù)放在Internet上。2019年,CardSystems成為數(shù)字化攻擊的犧牲品,由于對信用卡數(shù)據(jù)在未加密情況下存儲,有4000多萬張借記卡和信用卡泄密,4個月后,這家公司倒閉出售。安全性測試:不是驗證軟件的正確性,而是挖掘軟件的漏洞(軟件中的“不應(yīng)該”和“不允許”部分,例如:代碼中的緩沖區(qū)溢出漏洞,電子秤中的作弊后門等)。 - 越崩潰越快樂!一次轉(zhuǎn)身最遠能產(chǎn)生多

22、遠的距離 從傳統(tǒng)軟件測試轉(zhuǎn)向安全性測試RFC2828將漏洞定義為“系統(tǒng)設(shè)計、實現(xiàn)或操作和管理中存在的缺陷或弱點,能被利用而違背系統(tǒng)的安全策略”例如:對于一個web輸入界面的測試,其上有個字段【銀行賬號】(正確輸入是12個數(shù)字),對該字段的測試包括:正確輸入驗證:正好12個數(shù)字(分該賬號存在和不存在兩種情況驗證)異常輸入驗證:(模仿用戶的一些無意錯誤操作)輸入不滿12個數(shù)字,超過12個數(shù)字,有非數(shù)字字符,空,等等。安全測試:SQL注入攻擊(用web代理來輸入,繞過客戶端的檢驗檢查)、跨站點腳本輸出、整數(shù)溢出等。安全測試的出發(fā)點:像攻擊者一樣思考一些典型的攻擊模式驗證用戶輸入不會提供機會讓攻擊者通

23、過已知的SQL注入攻擊來操縱后臺數(shù)據(jù)庫;驗證不存在跨站點執(zhí)行腳本的可能性;驗證在向服務(wù)器發(fā)送一個它不能正確處理的非法數(shù)據(jù)包的情況下,服務(wù)器不會崩潰;驗證用戶輸入不會導致數(shù)據(jù)處理溢出;驗證程序?qū)﹀e誤的處理是恰當?shù)模或炞C數(shù)據(jù)在網(wǎng)絡(luò)傳輸中或存儲時是經(jīng)過了保護的驗證不會出現(xiàn)信息泄露驗證訪問控制。6.2.2 軟件滲透測試 Penetration testing是完全模擬黑客可能使用的攻擊技術(shù)和漏洞發(fā)現(xiàn)技術(shù),對目標系統(tǒng)(軟件)的安全做深入的探測,發(fā)現(xiàn)系統(tǒng)最脆弱的環(huán)節(jié)。能直觀的展現(xiàn)系統(tǒng)(軟件)所面臨的安全問題滲透測試分類 根據(jù)滲透方法分類黑箱測試(zero-knowledge testing):滲透者完全處

24、于對系統(tǒng)一無所知的狀態(tài)。通常,這種類型的測試,最初的信息獲取來自DNS、Web、Email及各種公開對外的服務(wù)器。白盒測試:測試者可以通過正常渠道向被測單位取得各種資料,包括網(wǎng)絡(luò)拓撲、員工資料甚至網(wǎng)站或程序的代碼片段,也能與單位其他員工進行面對面的溝通。這類的測試目的是模擬企業(yè)內(nèi)部雇員的越權(quán)操作。隱秘測試:隱秘是針對被測單位而言的。通常,接受滲透測試的單位網(wǎng)絡(luò)管理部門會收到通知:在某些時間段進行測試。因此能夠檢測網(wǎng)絡(luò)中出現(xiàn)的變化。但在隱秘測試中,被測單位也僅有極少數(shù)人知曉測試的存在,因此能夠有效地檢驗單位中的信息安全事件監(jiān)控、響應(yīng)、恢復(fù)做得是否到位滲透測試分類 根據(jù)滲透目標分類主機操作系統(tǒng)滲透

25、:對Windows、Solaris、AIX、Linux、SCO、SGI等操作系統(tǒng)本身進行滲透測試數(shù)據(jù)庫系統(tǒng)滲透:對MS-SQL,ORACLE,mysql,infomix,sybase,DB2等數(shù)據(jù)庫應(yīng)用系統(tǒng)進行滲透測試應(yīng)用系統(tǒng)滲透:對滲透目標提供的各種應(yīng)用,如ASP、CGI、JSP、PHP等組成的WWW應(yīng)用進行滲透測試網(wǎng)絡(luò)設(shè)備滲透:對各種防火墻、入侵檢測系統(tǒng)、網(wǎng)絡(luò)設(shè)備進行滲透測試從攻方視角看滲透內(nèi)網(wǎng)測試滲透測試人員由內(nèi)部網(wǎng)絡(luò)發(fā)起測試。這類測試能夠模擬企業(yè)內(nèi)部違規(guī)操作者的行為。優(yōu)勢:繞過了防火墻的保護。常用滲透方式:遠程緩沖區(qū)溢出,口令猜測,以及b/s或c/s應(yīng)用程序測試外網(wǎng)測試滲透測試人員完全

26、處于外部網(wǎng)絡(luò),模擬對內(nèi)部狀態(tài)一無所知的外部攻擊者的行為。包括對網(wǎng)絡(luò)設(shè)備的遠程攻擊,口令管理安全性測試,防火墻規(guī)則試探、規(guī)避,web及其它開放應(yīng)用服務(wù)的安全性測試從攻方視角看滲透不同網(wǎng)段/vlan之間的滲透從某內(nèi)/外部網(wǎng)段,嘗試對另一網(wǎng)段/vlan進行滲透。通??赡苡玫降募夹g(shù)包括:對網(wǎng)絡(luò)設(shè)備的遠程攻擊;對防火墻的遠程攻擊或規(guī)則探測、規(guī)避嘗試。信息的收集和分析伴隨著每一個滲透測試步驟,每一個步驟又有三個組成部分:操作、響應(yīng)和結(jié)果分析。 端口掃描通過對目標地址的tcp/udp端口掃描,確定其所開放的服務(wù)的數(shù)量和類型,這是所有滲透測試的基礎(chǔ)。通過端口掃描,可以基本確定一個系統(tǒng)的基本信息,結(jié)合安全工程師

27、的經(jīng)驗可以確定其可能存在,以及被利用的安全弱點,為進行深層次的滲透提供依據(jù)。 從攻方視角看滲透遠程溢出這是當前出現(xiàn)的頻率最高、威脅最嚴重,同時又是最容易實現(xiàn)的一種滲透方法,一個具有一般網(wǎng)絡(luò)知識的入侵者就可以在很短的時間內(nèi)利用現(xiàn)成的工具實現(xiàn)遠程溢出攻擊。對于防火墻內(nèi)的系統(tǒng)同樣存在這樣的風險,只要對跨接防火墻內(nèi)外的一臺主機攻擊成功,那么通過這臺主機對防火墻內(nèi)的主機進行攻擊就易如反掌。 口令猜測口令猜測也是一種出現(xiàn)概率很高的風險,幾乎不需要任何攻擊工具,利用一個簡單的暴力攻擊程序和一個比較完善的字典,就可以猜測口令。對一個系統(tǒng)賬號的猜測通常包括兩個方面:首先是對用戶名的猜測,其次是對密碼的猜測。 從

28、攻方視角看滲透本地溢出指在擁有了一個普通用戶的賬號之后,通過一段特殊的指令代碼獲得管理員權(quán)限的方法。前提:首先要獲得一個普通用戶密碼。也就是說由于導致本地溢出的一個關(guān)鍵條件是設(shè)置不當?shù)拿艽a策略。多年的實踐證明,在經(jīng)過前期的口令猜測階段獲取的普通賬號登錄系統(tǒng)之后,對系統(tǒng)實施本地溢出攻擊,就能獲取不進行主動安全防御的系統(tǒng)的控制管理權(quán)限。 從攻方視角看滲透腳本及應(yīng)用測試專門針對web及數(shù)據(jù)庫服務(wù)器進行。據(jù)最新技術(shù)統(tǒng)計,腳本安全弱點為當前web系統(tǒng),尤其是存在動態(tài)內(nèi)容的web系統(tǒng)比較嚴重的 安全弱點之一。利用腳本相關(guān)弱點輕則可以獲取系統(tǒng)其他目錄的訪問權(quán)限,重則將有可能取得系統(tǒng)的控制權(quán)限。因此對于含有動

29、態(tài)頁面的web、數(shù)據(jù)庫等系統(tǒng),web腳本及應(yīng)用測試將是必不可少的一個環(huán)節(jié)。在web腳本及應(yīng)用測試中,可能需要檢查的部份包括:檢查應(yīng)用系統(tǒng)架構(gòu),防止用戶繞過系統(tǒng)直接修改數(shù)據(jù)庫;檢查身份認證模塊,用以防止非法用戶繞過身份認證;檢查數(shù)據(jù)庫接口模塊,用以防止用戶獲取系統(tǒng)權(quán)限;檢查文件接口模塊,防止用戶獲取系統(tǒng)文件;檢查其他安全威脅。 從攻方視角看滲透無線測試中國的無線網(wǎng)絡(luò)還處于建設(shè)時期,但是由于無線網(wǎng)絡(luò)的部署簡易,在一些大城市的普及率已經(jīng)很高了。北京和上海的商務(wù)區(qū)至少80%的地方都可以找到接入點。通過對無線網(wǎng)絡(luò)的測試,可以判斷企業(yè)局域網(wǎng)安全性,已經(jīng)成為越來越重要的滲透測試環(huán)節(jié)。除了上述的測試手段外,還

30、有一些可能會在滲透測試過程中使用的技術(shù),包括:社交工程學、拒絕服務(wù)攻擊,以及中間人攻擊。 從守方視角看滲透 當具備滲透測試攻擊經(jīng)驗的人們站到系統(tǒng)管理員的角度,要保障一個大網(wǎng)的安全時,我們會發(fā)現(xiàn),需要關(guān)注的問題是完全不同的:從攻方的視角看,是“攻其一點, 不及其余”,只要找到一點漏洞,就有可能撕開整條戰(zhàn)線;但從守方的視角看,卻發(fā)現(xiàn)往往“千里之堤,毀于蟻穴”。因此,需要有好的理論指引,從技術(shù)到管理都 注重安全,才能使網(wǎng)絡(luò)固若金湯。 滲透測試的必要性滲透測試利用網(wǎng)絡(luò)安全掃描器、專用安全測試工具和富有經(jīng)驗的安全工程師的人工經(jīng)驗對網(wǎng)絡(luò)中的核心服務(wù)器及重要的網(wǎng)絡(luò)設(shè)備,包括服務(wù)器、網(wǎng)絡(luò)設(shè)備、防火墻等進行非破

31、壞性質(zhì)的模擬黑客攻擊,目的是侵入系統(tǒng)并獲取機密信息并將入侵的過程和細節(jié)產(chǎn)生報告給用戶。 滲透測試和工具掃描可以很好的互相補充。工具掃描具有很好的效率和速度,但是存在一定的誤報率和漏報率,并且不能發(fā)現(xiàn)高層次、復(fù)雜、并且相互關(guān)聯(lián)的安全 問題;滲透測試需要投入的人力資源較大、對測試者的專業(yè)技能要求很高(滲透測試報告的價值直接依賴于測試者的專業(yè)技能),但是非常準確,可以發(fā)現(xiàn)邏輯性更 強、更深層次的弱點。 微軟的滲透測試團隊的日常工作流程時間選擇為減輕滲透測試對網(wǎng)絡(luò)和主機的影響,滲透測試時間盡量安排在業(yè)務(wù)量不大的時段和晚上策略選擇為防止?jié)B透測試造成網(wǎng)絡(luò)和主機的業(yè)務(wù)中斷,在滲透測試中不使用含有拒絕服務(wù)的測

32、試策略授權(quán)滲透測試的監(jiān)測手段在評估過程中,由于滲透測試的特殊性,用戶可以要求對整體測試流程進行監(jiān)控測試方自控:由滲透測試方對本次滲透測試過程中的三方面數(shù)據(jù)進行完整記錄:操作、響應(yīng)、分析,最終形成完整有效的滲透測試報告提交給用戶用戶監(jiān)控:用于監(jiān)控有4種形式全程監(jiān)控:采用類似ethereal的嗅探軟件進行全程抓包嗅探擇要監(jiān)控:對掃描過程不進行錄制,僅僅在安全工程師分析數(shù)據(jù)后,準備發(fā)起滲透前才開啟軟件進行嗅探主機監(jiān)控:僅監(jiān)控受測主機的存活狀態(tài),避免意外情況發(fā)生指定攻擊源:用戶指定由特定攻擊源地址進行攻擊,該源地址的主機由用戶進行進程、網(wǎng)絡(luò)連接、數(shù)據(jù)傳輸?shù)榷喾奖O(jiān)控關(guān)于網(wǎng)絡(luò)信息收集使用ping swee

33、p、dns sweep、snmp sweep、tracert等手段對主機存活情況、dns名、網(wǎng)絡(luò)鏈路等進行信息收集??梢詫δ繕说木W(wǎng)絡(luò)情況、拓撲情況、應(yīng)用情況有一個大致的了解,為更深層次的滲透測試提供資料保守策略選擇對于不能接受任何可能風險的主機系統(tǒng),如銀行票據(jù)核查系統(tǒng)、電力調(diào)度系統(tǒng)等,可選擇如下保守策略復(fù)制一份目標環(huán)境,包括硬件平臺、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用軟件等對目標的副本進行滲透測試基于網(wǎng)絡(luò)的滲透測試的一般過程目標搜索列表:要測試的可以訪問的網(wǎng)絡(luò)服務(wù)器列表探測滲透主機評估繼續(xù)6.3 基于風險的安全測試步驟如下:1、基于前面設(shè)計階段制定的威脅模型,設(shè)計測試計劃。如:用戶口令安全的威脅樹

34、如下圖所示測試計劃就可以基于口令安全所可能遭受的各個攻擊進行制定。 6.3 基于風險的安全測試 2、將安全測試的最小組件單位進行劃分,并確定組件的輸入格式。 實際上,和傳統(tǒng)的測試不同,威脅模型中,并不是所有的模塊都會有安全問題,因此,我們只需將需要安全測試的某一部分程序取出來進行測試,將安全測試的最小組件單位進行劃分。 此外,每個組件都提供了接口,也就是輸入,在測試階段,測試用例需要進行輸入,這就必須將每個接口的輸入類型、輸入格式等都列出來,便于測試用例的制定。這些輸入如: Socket數(shù)據(jù); 無線數(shù)據(jù);命令行;語音設(shè)備;串口;HTTP提交;等等。6.3 基于風險的安全測試 3、根據(jù)各個接口可

35、能遇到的威脅,或者系統(tǒng)的潛在漏洞,對接口進行分級。 在該步驟中,主要是確定系統(tǒng)將要受到的威脅的嚴重性,將比較嚴重的威脅進行優(yōu)先的測試,這個嚴重性的判斷,應(yīng)該來源于威脅模型。 可以通過很多方法對接口受到的威脅性進行分級,如評分方法,對各個接口可能受到的各種威脅進行評分,最后累加,優(yōu)先測試那些分數(shù)排在前面的接口。6.3 基于風險的安全測試 4、確定輸入數(shù)據(jù),設(shè)計測試用例。 每一個接口可以輸入的數(shù)據(jù)都不相同,由于安全測試不同于普通的測試,因此還要更加精心地設(shè)計測試用例。有時候還要精心設(shè)計輸入的數(shù)據(jù)結(jié)構(gòu),如隨機數(shù)、集合等的設(shè)計,都要必須是為安全測試服務(wù)的。 在測試用例的設(shè)計過程中,必須要了解,安全測試

36、實際上是對程序進行的安全攻擊,因此,不但數(shù)據(jù)本身需要精心設(shè)計,測試手段也要精心設(shè)計。如在對緩沖區(qū)溢出的測試中,必須精心設(shè)計各種輸入,從不同的方面來對程序進行攻擊。 6.3 基于風險的安全測試 5、攻擊應(yīng)用程序(軟件),查看其效果。 用設(shè)計的測試用例來攻擊應(yīng)用程序,使得系統(tǒng)處于一種受到威脅的狀態(tài),來得到輸出。 6、總結(jié)測試結(jié)果,提出解決方案。 本過程中,將預(yù)期輸出和實際輸出進行比較,得出結(jié)論,寫出測試報告,最后提交相應(yīng)的人員,進行錯誤解決。登錄頁面的威脅分析猜測口令:設(shè)計時應(yīng)設(shè)計登錄試探次數(shù),例如:只許試探三次,然后鎖定ip地址。利用password文件系統(tǒng)地猜測口令:加密文件(密碼強弱,文件存

37、放是否安全)分析協(xié)議和濾出口令:不能明文傳輸,密碼的強弱重放攻擊:加時間戳木馬監(jiān)視登錄/口令:系統(tǒng)安全,一次性口令盜鏈:SQL注入漏洞異常輸入破壞:安全測試技術(shù)之七種武器一個完整的WEB安全性測試可以從以下幾個方面入手:1.安全體系測試網(wǎng)絡(luò)是否提供了安全的通信部署拓撲結(jié)構(gòu)是否包括內(nèi)部的防火墻部署拓撲結(jié)構(gòu)中是否包括遠程應(yīng)用程序服務(wù)器操作系統(tǒng)是否存在漏洞,例如Unix上的緩沖區(qū)溢出漏洞、Windows上的RPC漏洞、緩沖區(qū)溢出漏洞、安全機制漏洞等; 安全測試技術(shù)之七種武器2. 輸入驗證如何驗證輸入是否清楚入口點是否驗證Web頁輸入是否對傳遞到組件或Web服務(wù)的參數(shù)進行驗證是否驗證從數(shù)據(jù)庫中檢索的數(shù)

38、據(jù)是否依賴客戶端的驗證應(yīng)用程序是否易受SQL注入攻擊應(yīng)用程序是否易受XSS攻擊如何處理輸入安全測試技術(shù)之七種武器3.身份驗證和授權(quán)是否區(qū)分公共訪問和受限訪問如何驗證調(diào)用者身份如何驗證數(shù)據(jù)庫的身份如何向最終用戶授權(quán)4. 敏感數(shù)據(jù)是否存儲機密信息如何存儲敏感數(shù)據(jù)是否在網(wǎng)絡(luò)中傳遞敏感數(shù)據(jù)5. 加密為何使用特定的算法如何確保加密密鑰的安全性6.參數(shù)操作是否驗證所有的輸入?yún)?shù)是否在參數(shù)過程中傳遞敏感數(shù)據(jù)是否為了安全問題而使用HTTP頭數(shù)據(jù)7.審核和日志記錄是否明確了要審核的活動是否考慮如何流動原始調(diào)用這身份安全測試技術(shù)之七種武器應(yīng)用服務(wù)器的安全性測試技術(shù)一、應(yīng)用服務(wù)器的安全性測試內(nèi)容 基于應(yīng)用服務(wù)器的安

39、全性測試內(nèi)容主要包括:驗證隱私系統(tǒng)是否受到保護、數(shù)據(jù)是否加密,檢測系統(tǒng)是否有安全保密的漏洞,檢驗系統(tǒng)及其所在的網(wǎng)絡(luò)是否能夠承受各種類型的惡意攻擊。對于Web 服務(wù)器而言,具體測試內(nèi)容還有測試用戶登錄與注冊、是否有超時限制、服務(wù)器腳本語言、日志文件、目錄安全、SSL 安全傳輸測試等。二、應(yīng)用服務(wù)器的安全性測試方法與技術(shù) (一)全面搜集與應(yīng)用服務(wù)器安全相關(guān)的各種信息,分析其可能出現(xiàn)的安全隱患應(yīng)用服務(wù)器被使用的企業(yè)單位基本信息、管理中薄弱環(huán)節(jié)、應(yīng)用服務(wù)器配置信息、系統(tǒng)可訪問的主機IP 地址及對應(yīng)的主機名、服務(wù)器所在網(wǎng)絡(luò)的拓樸結(jié)構(gòu)等,這些信息可能成為被利用的安全隱患,有的可能在互聯(lián)網(wǎng)上搜索得到,要對其

40、進行分析和安全隱患檢查。應(yīng)用服務(wù)器的安全性測試技術(shù)(二)應(yīng)用服務(wù)器的漏洞探測和掃描 1、利用搜索引擎搜索已公布的漏洞??衫肎oogle 等工具搜索資源,研究系統(tǒng)漏洞??稍L問CVE(公共漏洞和暴露)數(shù)據(jù)庫,查找漏洞。Packet Storm 組織是由一些致力于提供必要信息以安全化全球網(wǎng)絡(luò)的安全專業(yè)人士組成的非盈利組織,在其網(wǎng)站上可以找到許多安全信息,如Windows 中緩沖區(qū)溢出漏洞、Unix主機中遠程過程調(diào)用(RPC)的安全隱患、FTP漏洞,Sendmail郵件服務(wù)軟件的漏洞等。 2、利用掃描工具進行漏洞探測。服務(wù)器漏洞掃描的工具很多,基于Linux的掃描工具有Namp、Netcat、Nessus?;赪indows的端口掃描器有NeWT 等。還有很多掃描工具,如:著名的COPS、Tiger、 Fluxay5(流光)、X-scan、N-Stealth、Metasploit Framework(metasploit:55555/)等。其中,很多工具可以在網(wǎng)上免費下載。可以利用上述工具探測系統(tǒng)漏洞,查看系統(tǒng)是否打了補丁

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論