




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、應用安全評估方法應用評估概述針對企業關鍵應用的安全性進行的評估,分析XXX應用程序體系結構、設計思想和功能模塊,從中發現可能的安全隱患。全面的了解應用系統在網絡上的“表現”,將有助于對應用系統的維護與支持工作。了解XXX應用系統的現狀,發現存在的弱點和風險,作為后期改造的需求。本期項目針對XXX具有代表性的不超過10個關鍵應用進行安全評估。在進行應用評估的時候,引入了威脅建模的方法,這一方法是一種基于安全的分析,有助于我們確定應用系統造成的安全風險,以及攻擊是如何體現出來的。輸入:對于威脅建模,下面的輸入非常有用:用例和使用方案數據流數據架構部署關系圖雖然這些都非常有用,但它們都不是必需的。但
2、是,一定要了解應用程序的主要功能和體系結構。輸出:威脅建模活動的輸出結果是一個威脅模型。威脅模型捕獲的主要項目包括:威脅列表漏洞列表應用評估步驟五個主要的威脅建模步驟如圖1所示。確定安仝目標我們把應用系統的安全評估劃分為以下五個步驟:1. 識別應用系統的安全目標:其中包括系統業務目標和安全目標。目標清晰有助于將注意力集中在威脅建模活動,以及確定后續步驟要做多少工作。2. 了解應用系統概況:逐條列出應用程序的重要特征和參與者有助于在步驟4中確定相關威脅。3. 應用系統分解:全面了解應用程序的結構可以更輕松地發現更相關、更具體的威脅。4. 應用系統的威脅識別:使用步驟2和3中的詳細信息來確定與您的
3、應用程序方案和上下文相關的威脅。5. 應用系統的弱點分析:查應用程序的各層以確定與威脅有關的弱點。步驟1:識別安全目標業務目標是應用系統使用的相關目標和約束。安全目標是與數據及應用程序的保密性、完整性和可用性相關的目標和約束。以約束的觀點來考慮安全目標利用安全目標來指導威脅建模活動。請考慮這個問題,“您不希望發生什么?”例如,確保攻擊者無法竊取用戶憑據。通過確定主要的安全目標,可以決定將主要精力放在什么地方。確定目標也有助于理解潛在攻擊者的目標,并將注意力集中于那些需要密切留意的應用程序區域。例如,如果將客戶帳戶的詳細信息確定為需要保護的敏感數據,那么您可以檢查數據存儲的安全性,以及如何控制和
4、審核對數據的訪問。業務目標:一個應用系統的業務目標應該從如下幾個方面入手進行分析:信譽:應用系統發生異常情況以及遭到攻擊造成的商業信譽的損失;經濟:對于應用系統,如果發生攻擊或者其它安全時間造成的直接和潛在的經濟損失。隱私:應用系統需要保護的用戶數據。國家的法律或者政策:例如:等級化保護要求、SOX法案等。公司的規章制度。國際標準:例如:ISO17799ISO13335等。法律協議。公司的信息安全策略。安全目標:一個應用系統的安全目標應該從如下幾個方面入手進行分析:系統的機密性:明確需要保護哪些客戶端數據。應用系統是否能夠保護用戶的識別信息不被濫用?例如:用戶的信息被盜取用于其它非法用途;系統
5、的完整性:明確應用系統是否要求確保數據信息的有效性。系統的可用性:明確有特殊的服務質量要求。應用系統得可用性應該達到什么級別(例如:中斷的時間不能超過10分鐘/年)?根據系統可靠性的要求,可以重點保護重點的應用系統,從而節約投資。通過訪談的方式確定應用系統業務目標和安全目標,對業務目標和安全目標進行細化,得到應用系統安全要求。輸入:訪談備忘錄輸出:應用系統業務目標、安全目標和安全要求資料來源:分類在舁廳P目標安全要求備注業務目標123安全目標1234步驟2:應用系統概述在本步驟中,概述應用系統的行為。確定應用程序的主要功能、特性和客戶端。創建應用系統概述步驟:畫出端對端的部署方案。確定角色。確
6、定主要使用方案。確定技術。確定應用程序的安全機制。下面幾部分將對此逐一進行說明:畫出端對端的部署方案:畫出一個描述應用程序的組成和結構、它的子系統以及部署特征的粗略圖。隨著對身份驗證、授權和通信機制的發現來添加相關細節。部署關系圖通常應當包含以下元素:端對端的部署拓撲:顯示服務器的布局,并指示Intranet、Extranet或Internet訪問。從邏輯網絡拓撲入手,然后在掌握詳細信息時對其進行細化,以顯示物理拓撲。根據所選的特定物理拓撲來添加或刪除威脅。邏輯層:顯示表示層、業務層和數據訪問層的位置。知道物理服務器的邊界后,對此進行細化以將它們包括在內主要組件:顯示每個邏輯層中的重要組件。明
7、確實際流程和組件邊界后,對此進行細化以將它們包括在內。主要服務:確定重要的服務。通信端口和協議。顯示哪些服務器、組件和服務相互進行通信,以及它們如何進行通信。了解入站和出站信息包的細節后,顯示它們。標識:如果您有這些信息,則顯示用于應用程序和所有相關服務帳戶的主要標識。外部依賴項:顯示應用程序在外部系統上的依賴項。在稍后的建模過程中,這會幫助您確定由于您所作的有關外部系統的假設是錯誤的、或者由于外部系統發生任何更改而產生的漏洞。隨著設計的進行,您應當定期復查威脅模型以添加更多細節。例如,最初您可能不了解所有的組件。應根據需要細分應用程序,以獲得足夠的細節來確定威脅。確定角色:確定應用程序的角色
8、:即,確定應用程序中由誰來完成哪些工作。用戶能做什么?您有什么樣的高特權用戶組?例如,誰可以讀取數據、誰可以更新數據、誰可以刪除數據?利用角色標識來確定應當發生什么以及不應當發生什么。確定主要的使用方案:確定的應用程序的主要功能是什么?它可以做什么?利用應用程序的用例來獲得這些信息。確定應用程序的主要功能和用法,并捕獲Create、ReadUpdate和Delete等方面。經常在用例的上下文中解釋主要功能。可以幫助理解應用程序應當如何使用,以及怎樣是誤用。用例有助于確定數據流,并可以在稍后的建模過程中確定威脅時提供焦點。在這些用例中,您可以考察誤用業務規則的可能性。例如,考慮某個用戶試圖更改另
9、一個用戶的個人詳細資料。您通常需要考慮為進行完整的分析而同時發生的幾個用例。確定技術:只要您能確定,就列出軟件的技術和主要功能,以及您使用的技術。確定下列各項:操作系統。服務器軟件。數據庫服務器軟件。在表示層、業務層和數據訪問層中使用的技術。開發語言。確定技術有助于在稍后的威脅建模活動中將主要精力放在特定于技術的威脅上,有助于確定正確的和最適當的緩解技術。步驟3:系統分解通過分解應用程序來確定信任邊界、數據流、入口點和出口點。對應用程序結構了解得越多,就越容易發現威脅和漏洞。分解應用程序按如下步驟:確定信任邊界。確定數據流。確定入口點。確定出口點。下面幾部分將對此逐一進行說明。確定信任邊界:確
10、定應用程序的信任邊界有助于將分析集中在所關注的區域。信任邊界指示在什么地方更改信任級別。可以從機密性和完整性的角度來考慮信任。例如,在需要特定的角色或特權級別才能訪問資源或操作的應用程序中,更改訪問控制級別就是更改信任級別。另一個例子是應用程序的入口點,您可能不會完全信任傳遞到入口點的數據。如何確定信任邊界:1. 從確定外部系統邊界入手。例如,應用程序可以寫服務器X上的文件,可以調用服務器Y上的數據庫,并且可以調用Web服務Z。這就定義了系統邊界。2. 確定訪問控制點或需要附加的特權或角色成員資格才能訪問的關鍵地方。例如,某個特殊頁可能只限于管理人員使用。該頁要求經過身份驗證的訪問,還要求調用
11、方是某個特定角色的成員。3. 從數據流的角度確定信任邊界。對于每個子系統,考慮是否信任上游數據流或用戶輸入,如果不信任,則考慮如何對數據流和輸入進行身份驗證和授權。了解信任邊界之間存在哪些入口點可以使您將威脅識別集中在這些關鍵入口點上。例如,可能需要在信任邊界處對通過入口點的數據執行更多的驗證。確定數據流:從入口到出口,跟蹤應用程序的數據輸入通過應用程序。這樣做可以了解應用程序如何與外部系統和客戶端進行交互,以及內部組件之間如何交互。要特別注意跨信任邊界的數據流,以及如何在信任邊界的入口點驗證這些數據。還要密切注意敏感數據項,以及這些數據如何流過系統、它們通過網絡傳遞到何處以及在什么地方保留。
12、一種較好的方法是從最高級別入手,然后通過分析各個子系統之間的數據流來解構應用程序。例如,從分析應用程序、中間層服務器和數據庫服務器之間的數據流開始。然后,考慮組件到組件的數據流。確定入口點:應用程序的入口點也是攻擊的入口點。入口點可以包括偵聽前端應用程序。這種入口點原本就是向客戶端公開的。存在的其他入口點(例如,由跨應用程序層的子組件公開的內部入口點)。考慮訪問入口點所需的信任級別,以及由入口點公開的功能類型。確定出口點:確定應用程序向客戶端或者外部系統發送數據的點。設置出口點的優先級,應用程序可以在這些出口點上寫數據,包括客戶端輸入或來自不受信任的源(例如,共享數據庫)的數據。步驟4:威脅識
13、別在本步驟中,確定可能影響應用程序和危及安全目標的威脅和攻擊。這些威脅可能會對應用程序有不良影響。可以使用兩種基本方法:1. 從常見的威脅和攻擊入手。利用這種方法,您可以從一系列按應用程序漏洞類別分組的常見威脅入手。接下來,將威脅列表應用到您自己的應用程序體系結構中。2. 使用問題驅動的方法。問題驅動的方法確定相關的威脅和攻擊。STRIDE類別包括各種類型的威脅,例如,欺騙、篡改、否認、信息泄漏和拒絕訪問。使用STRIDE模型來提出與應用程序的體系結構和設計的各個方面有關的問題。這是一種基于目標的方法,您要考慮的是攻擊者的目標。例如,攻擊者能夠以一個虛假身份來訪問您的服務器或Web應用程序嗎?
14、他人能夠在網絡或數據存儲中篡改數據嗎?當您報告錯誤消息或者記錄事件時會泄漏敏感信息嗎?他人能拒絕服務嗎?確定威脅時,要逐級、逐層、逐功能地進行檢查。通過關注漏洞類別,將注意力集中在那些最常發生安全錯誤的區域。在本步驟中,您要完成下列任務:確定常見的威脅和攻擊。根據用例來確定威脅。根據數據流來確定威脅。利用威脅/攻擊樹研究其他威脅.下面幾部分將對此逐一進行說明。確定常見的威脅和攻擊:許多常見的威脅和攻擊依賴于常見的漏洞,根據應用程序安全框架確定威脅、根據用例確定威脅、根據數據流確定威脅和利用威脅/攻擊樹研究其他威脅。應用程序安全框架下面的漏洞類別是由安全專家對應用程序中數量最多的安全問題進行調查
15、和分析后提取出來的。本部分為每個類別都確定了一組主要問題。1. 身份驗證通過提出下列問題,對身份驗證進行檢查:攻擊者如何欺騙身份?攻擊者如何訪問憑據存儲?攻擊者如何發動字典攻擊?您的用戶憑據是如何存儲的以及執行的密碼策略是什么?攻擊者如何更改、截取或回避用戶的憑據重置機制?2. 授權通過提出下列問題,對授權進行檢查:攻擊者如何影響授權檢查來進行特權操作?攻擊者如何提升特權?3. 輸入和數據驗證通過提出下列問題,對輸入和數據驗證進行檢查:攻擊者如何注入SQL命令?攻擊者如何進行跨站點腳本攻擊?攻擊者如何回避輸入驗證?攻擊者如何發送無效的輸入來影響服務器上的安全邏輯?攻擊者如何發送異常輸入來使應用
16、程序崩潰?4. 配置管理通過提出下列問題,對配置管理進行檢查:攻擊者如何使用管理功能?攻擊者如何訪問應用程序的配置數據?5. 敏感數據通過提出下列問題,對敏感數據進行檢查:您的應用程序將敏感數據存儲在何處以及如何存儲?敏感數據何時何地通過網絡進行傳遞?攻擊者如何查看敏感數據?攻擊者如何使用敏感數據?6. 會話管理通過提出下列問題,對會話管理進行檢查:您使用的是一種自定義加密算法并且信任這種算法嗎?攻擊者如何攻擊會話?攻擊者如何查看或操縱另一個用戶的會話狀態?7. 加密通過提出下列問題,對加密進行檢查:攻擊者需要獲得什么才能破解您的密碼?攻擊者如何獲得密鑰?您使用的是哪一種加密標準?如果有,針對
17、這些標準有哪些攻擊?您創建了自己的加密方法嗎?您的部署拓撲如何潛在地影響您對加密方法的選擇?8. 參數管理通過提出下列問題,對參數管理進行檢查:攻擊者如何通過管理參數來更改服務器上的安全邏輯?攻擊者如何管理敏感參數數據?9. 異常管理通過提出下列問題,對異常管理進行檢查:攻擊者如何使應用程序崩潰?攻擊者如何獲得有用的異常細節?10. 審核與記錄通過提出下列問題,對審核與記錄進行檢查:攻擊者如何掩蓋他或她的蹤跡?您如何證明攻擊者(或合法用戶)執行了特定的動作?根據用例確定威脅:檢查以前確定的每個應用程序的主要用例,并檢查用戶能夠惡意或無意地強制應用程序執行某種未經授權的操作或者泄漏敏感數據或私人
18、數據的方法。提出問題并嘗試從攻擊者的角度進行思考。您提出的問題類型應該包括:客戶端在這里如何注入惡意輸入?寫出的數據是基于用戶輸入還是未驗證的用戶輸入?攻擊者如何操縱會話數據?當敏感數據在網絡上傳遞時,攻擊者如何獲得它?攻擊者如何回避您的授權檢查?根據數據流確定威脅:檢查主要用例和方案,并分析數據流。分析體系結構中各個組件之間的數據流。跨信任邊界的數據流尤其重要。一段代碼應該假定該代碼的信任邊界之外的數據都是惡意的。該代碼應當對數據進行徹底驗證。當確定與數據流相關的威脅時,提出如下問題:數據是如何從應用程序的前端流到后端的?哪個組件調用哪個組件?有效數據的外部特征是什么?驗證在何處進行?如何約
19、束數據?如何根據預期的長度、范圍、格式和類型來驗證數據?在組件之間和網絡上傳遞什么敏感數據,以及在傳輸過程中如何保護這些數據?利用威脅/攻擊樹研究其他威脅:前面的活動已經確定了更加明顯和普遍的安全問題。現在研究其他威脅和攻擊。攻擊樹和攻擊模式是許多安全專家使用的主要工具。它們允許您更深入地分析威脅,而不會停留在對確定其他威脅可能性的理解上。已知威脅的類別列表只顯示了常見的已知威脅,其他方法(如使用攻擊樹和攻擊模式)可以確定其他潛在威脅。攻擊樹是一種以結構化和層次化的方式確定和記錄系統上潛在攻擊的方法。這種樹結構為您提供了一張攻擊者用來危及系統安全的各種攻擊的詳細圖畫。通過創建攻擊樹,創建了一種
20、可重復使用的安全問題表示法,這有助于將注意力集中在威脅上并減輕工作量。攻擊模式是一種捕獲企業中攻擊信息的正規化方法。這些模式可以幫助確定常見的攻擊方法。創建攻擊樹:在創建攻擊樹時,可以假定攻擊者的角色。考慮要發起一次成功的攻擊您必須要做什么,并確定攻擊的目標和子目標。利用一個譜系圖來表示攻擊樹表示。要構建攻擊樹,首先要創建表示攻擊者的目標的根節點。然后添加葉節點,它們是代表唯一攻擊的攻擊方法。步驟5:漏洞分析在本步驟中,檢查應用程序的安全框架,并顯式地查找漏洞。一種有效的方法是逐層檢查應用程序,考慮每層中的各種漏洞類別。身份驗證通過提出下列問題,確定身份驗證漏洞:用戶名和密碼是以明文的形式在未
21、受保護的信道上發送的嗎?敏感信息有專門的加密方法嗎?存儲證書了嗎?如果存儲了,是如何存儲和保護它們的?您執行強密碼嗎?執行什么樣的其他密碼策略?如何驗證憑據?首次登錄后,如何識別經過身份驗證的用戶?通過查找這些常見的漏洞檢查身份驗證:在未加密的網絡鏈接上傳遞身份驗證憑據或身份驗證cookie,這會引起憑據捕獲或會話攻擊利用弱密碼和帳戶策略,這會引起未經授權的訪問將個性化與身份驗證混合起來授權通過提出下列問題,確定授權漏洞:在應用程序的入口點使用了什么樣的訪問控制?應用程序使用角色嗎?如果它使用角色,那么對于訪問控制和審核目的來說它們的粒度足夠細嗎?您的授權代碼是否安全地失效,并且是否只準許成功
22、進行憑據確認后才能進行訪問?您是否限制訪問系統資源?您是否限制數據庫訪問?對于數據庫,如何進行授權?通過查找這些常見漏洞檢查授權:使用越權角色和帳戶沒有提供足夠的角色粒度沒有將系統資源限制于特定的應用程序身份輸入和數據驗證通過提出下列問題,確定輸入和數據驗證漏洞:驗證所有輸入數據了嗎?您驗證長度、范圍、格式和類型了嗎?您依賴于客戶端驗證嗎?攻擊者可以將命令或惡意數據注入應用程序嗎?您信任您寫出到Web頁上的數據嗎?或者您需要將它進行HTML編碼以幫助防止跨站點腳本攻擊嗎?在SQL語句中使用輸入之前,您驗證過它以幫助防止SQL注入嗎?在不同的信任邊界之間傳遞數據時,在接收入口點驗證數據嗎?您信任
23、數據庫中的數據嗎?您接受輸入文件名、URL或用戶名嗎?您是否已解決了規范化問題?通過查找這些常見漏洞檢查輸入驗證:完全依賴于客戶端驗證使用deny方法而非allow來篩選輸入將未經驗證的數據寫出到Web頁利用未經驗證的輸入來生成SQL查詢使用不安全的數據訪問編碼技術,這可能增加SQL注入引起的威脅使用輸入文件名、URL或用戶名進行安全決策配置管理通過提出下列問題,確定配置管理漏洞:您如何保護遠程管理界面?您保護配置存儲嗎?您對敏感配置數據加密嗎?您分離管理員特權嗎?您使用具有最低特權的進程和服務帳戶嗎?通過查找這些常見漏洞檢查配置管理:以明文存儲配置機密信息,例如,連接字符串和服務帳戶證書沒有
24、保護應用程序配置管理的外觀,包括管理界面使用越權進程帳戶和服務帳戶敏感數據通過提出下列問題,確定敏感數據漏洞:您是否在永久性存儲中存儲機密信息?您如何存儲敏感數據?您在內存中存儲機密信息嗎?您在網絡上傳遞敏感數據嗎?您記錄敏感數據嗎?通過查找這些常見漏洞檢查敏感數據:在不需要存儲機密信息時保存它們在代碼中存儲機密信息以明文形式存儲機密信息在網絡上以明文形式傳遞敏感數據會話管理通過提出如下問題,確定會話管理漏洞:如何生成會話cookie?如何交換會話標識符?在跨越網絡時如何保護會話狀態?如何保護會話狀態以防止會話攻擊?如何保護會話狀態存儲?您限制會話的生存期嗎?應用程序如何用會話存儲進行身份驗證
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高風險科室醫院感染培訓計劃
- 影視版權購買與發行合同
- 2024-2025學年第二學期教學評估計劃
- 地鐵施工中的環境保護措施分析
- 中小學道德與法治課后復習策略
- 離婚協議書男方出軌
- 數據交易及保護協議
- 服務合同通信服務協議
- 2024年度安徽省二級建造師之二建市政工程實務自我檢測試卷A卷附答案
- 鄉村土地承包經營權流轉資金監管協議
- 葫蘆島鵬翔生物科技(集團)有限公司年產農藥系列產品3700噸、年產胡椒環2000噸建設項目環評報告
- 雅思海外閱讀8套真題(含答案解析)
- 湖北省黃岡市2023年八年級下學期期中數學試卷【含答案】
- 嵌入式軟件概要設計模板
- 2021年高考真題-化學(福建卷)含答案
- 房屋拆除工程監理規劃
- 公務員辭去公職申請表
- GB/T 1357-1987漸開線圓柱齒輪模數
- 中糧集團核心競爭力模板
- 中國書法簡史課件
- 上海交通大學回校宣傳課件
評論
0/150
提交評論