應(yīng)用安全系統(tǒng)評(píng)估方法_第1頁(yè)
應(yīng)用安全系統(tǒng)評(píng)估方法_第2頁(yè)
應(yīng)用安全系統(tǒng)評(píng)估方法_第3頁(yè)
應(yīng)用安全系統(tǒng)評(píng)估方法_第4頁(yè)
應(yīng)用安全系統(tǒng)評(píng)估方法_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1/1應(yīng)用安全系統(tǒng)評(píng)估方法1.1.1應(yīng)用安全評(píng)估

應(yīng)用評(píng)估概述

針對(duì)企業(yè)關(guān)鍵應(yīng)用的安全性進(jìn)行的評(píng)估,分析XXX應(yīng)用程序體系結(jié)構(gòu)、設(shè)計(jì)思想和功能模塊,從中發(fā)現(xiàn)可能的安全隱患。全面的了解應(yīng)用系統(tǒng)在網(wǎng)絡(luò)上的“表現(xiàn)”,將有助于對(duì)應(yīng)用系統(tǒng)的維護(hù)與支持工作。了解XXX應(yīng)用系統(tǒng)的現(xiàn)狀,發(fā)現(xiàn)存在的弱點(diǎn)和風(fēng)險(xiǎn),作為后期改造的需求。本期項(xiàng)目針對(duì)XXX具有代表性的不超過(guò)10個(gè)關(guān)鍵應(yīng)用進(jìn)行安全評(píng)估。

在進(jìn)行應(yīng)用評(píng)估的時(shí)候,引入了威脅建模的方法,這一方法是一種基于安全的分析,有助于我們確定應(yīng)用系統(tǒng)造成的安全風(fēng)險(xiǎn),以及攻擊是如何體現(xiàn)出來(lái)的。

輸入:

對(duì)于威脅建模,下面的輸入非常有用:

?用例和使用方案

?數(shù)據(jù)流

?數(shù)據(jù)架構(gòu)

?部署關(guān)系圖

雖然這些都非常有用,但它們都不是必需的。但是,一定要了解應(yīng)用程序的主要功能和體系結(jié)構(gòu)。

輸出:

威脅建?;顒?dòng)的輸出結(jié)果是一個(gè)威脅模型。威脅模型捕獲的主要項(xiàng)目包括:

威脅列表

漏洞列表

應(yīng)用評(píng)估步驟

五個(gè)主要的威脅建模步驟如圖1所示。

圖1

我們把應(yīng)用系統(tǒng)的安全評(píng)估劃分為以下五個(gè)步驟:

1.識(shí)別應(yīng)用系統(tǒng)的安全目標(biāo):其中包括系統(tǒng)業(yè)務(wù)目標(biāo)和安全目標(biāo)。目

標(biāo)清晰有助于將注意力集中在威脅建?;顒?dòng),以及確定后續(xù)步驟要做多少工作。11

2.了解應(yīng)用系統(tǒng)概況:逐條列出應(yīng)用程序的重要特征和參與者有助于

在步驟4中確定相關(guān)威脅。

3.應(yīng)用系統(tǒng)分解:全面了解應(yīng)用程序的結(jié)構(gòu)可以更輕松地發(fā)現(xiàn)更相

關(guān)、更具體的威脅。

4.應(yīng)用系統(tǒng)的威脅識(shí)別:使用步驟2和3中的詳細(xì)信息來(lái)確定與您的

應(yīng)用程序方案和上下文相關(guān)的威脅。

5.應(yīng)用系統(tǒng)的弱點(diǎn)分析:查應(yīng)用程序的各層以確定與威脅有關(guān)的弱

點(diǎn)。

步驟1:識(shí)別安全目標(biāo)

業(yè)務(wù)目標(biāo)是應(yīng)用系統(tǒng)使用的相關(guān)目標(biāo)和約束。安全目標(biāo)是與數(shù)據(jù)及應(yīng)用

程序的保密性、完整性和可用性相關(guān)的目標(biāo)和約束。

以約束的觀點(diǎn)來(lái)考慮安全目標(biāo)利用安全目標(biāo)來(lái)指導(dǎo)威脅建?;顒?dòng)。請(qǐng)考慮這個(gè)問(wèn)題,“您不希望發(fā)生什么?”例如,確保攻擊者無(wú)法竊取用戶憑據(jù)。

通過(guò)確定主要的安全目標(biāo),可以決定將主要精力放在什么地方。確定目標(biāo)也有助于理解潛在攻擊者的目標(biāo),并將注意力集中于那些需要密切留意的應(yīng)用程序區(qū)域。例如,如果將客戶帳戶的詳細(xì)信息確定為需要保護(hù)的敏感數(shù)據(jù),那么您可以檢查數(shù)據(jù)存儲(chǔ)的安全性,以及如何控制和審核對(duì)數(shù)據(jù)的訪問(wèn)。

業(yè)務(wù)目標(biāo):一個(gè)應(yīng)用系統(tǒng)的業(yè)務(wù)目標(biāo)應(yīng)該從如下幾個(gè)方面入手進(jìn)行分析:

?信譽(yù):應(yīng)用系統(tǒng)發(fā)生異常情況以及遭到攻擊造成的商業(yè)信

譽(yù)的損失;

?經(jīng)濟(jì):對(duì)于應(yīng)用系統(tǒng),如果發(fā)生攻擊或者其它安全時(shí)間造

成的直接和潛在的經(jīng)濟(jì)損失。

?隱私:應(yīng)用系統(tǒng)需要保護(hù)的用戶數(shù)據(jù)。

?國(guó)家的法律或者政策:例如:等級(jí)化保護(hù)要求、SOX法案

等。

?公司的規(guī)章制度。

?國(guó)際標(biāo)準(zhǔn):例如:ISO17799、ISO13335等。

?法律協(xié)議。

?公司的信息安全策略。

安全目標(biāo):一個(gè)應(yīng)用系統(tǒng)的安全目標(biāo)應(yīng)該從如下幾個(gè)方面入手進(jìn)行分析:

?系統(tǒng)的機(jī)密性:明確需要保護(hù)哪些客戶端數(shù)據(jù)。應(yīng)用系統(tǒng)

是否能夠保護(hù)用戶的識(shí)別信息不被濫用?例如:用戶的信息被盜取

用于其它非法用途;

?系統(tǒng)的完整性:明確應(yīng)用系統(tǒng)是否要求確保數(shù)據(jù)信息的有

效性。

?系統(tǒng)的可用性:明確有特殊的服務(wù)質(zhì)量要求。應(yīng)用系統(tǒng)得

可用性應(yīng)該達(dá)到什么級(jí)別(例如:中斷的時(shí)間不能超過(guò)10分鐘/

年)?根據(jù)系統(tǒng)可靠性的要求,可以重點(diǎn)保護(hù)重點(diǎn)的應(yīng)用系統(tǒng),從

而節(jié)約投資。

通過(guò)訪談的方式確定應(yīng)用系統(tǒng)業(yè)務(wù)目標(biāo)和安全目標(biāo),對(duì)業(yè)務(wù)目標(biāo)和安全目標(biāo)進(jìn)行細(xì)化,得到應(yīng)用系統(tǒng)安全要求。

輸入:訪談備忘錄

輸出:應(yīng)用系統(tǒng)業(yè)務(wù)目標(biāo)、安全目標(biāo)和安全要求。

在本步驟中,概述應(yīng)用系統(tǒng)的行為。確定應(yīng)用程序的主要功能、特性和客戶端。

創(chuàng)建應(yīng)用系統(tǒng)概述步驟:

?畫(huà)出端對(duì)端的部署方案。

?確定角色。

?確定主要使用方案。

?確定技術(shù)。

?確定應(yīng)用程序的安全機(jī)制。

下面幾部分將對(duì)此逐一進(jìn)行說(shuō)明:

畫(huà)出端對(duì)端的部署方案:

畫(huà)出一個(gè)描述應(yīng)用程序的組成和結(jié)構(gòu)、它的子系統(tǒng)以及部署特征的粗略圖。隨著對(duì)身份驗(yàn)證、授權(quán)和通信機(jī)制的發(fā)現(xiàn)來(lái)添加相關(guān)細(xì)節(jié)。

部署關(guān)系圖通常應(yīng)當(dāng)包含以下元素:

?端對(duì)端的部署拓?fù)洌猴@示服務(wù)器的布局,并指示Intranet、

Extranet或Internet訪問(wèn)。從邏輯網(wǎng)絡(luò)拓?fù)淙胧郑缓笤谡莆赵敿?xì)信

息時(shí)對(duì)其進(jìn)行細(xì)化,以顯示物理拓?fù)洹8鶕?jù)所選的特定物理拓?fù)鋪?lái)

添加或刪除威脅。

?邏輯層:顯示表示層、業(yè)務(wù)層和數(shù)據(jù)訪問(wèn)層的位置。知道物

理服務(wù)器的邊界后,對(duì)此進(jìn)行細(xì)化以將它們包括在內(nèi)。

?主要組件:顯示每個(gè)邏輯層中的重要組件。明確實(shí)際流程和

組件邊界后,對(duì)此進(jìn)行細(xì)化以將它們包括在內(nèi)。

?主要服務(wù):確定重要的服務(wù)。

?通信端口和協(xié)議。顯示哪些服務(wù)器、組件和服務(wù)相互進(jìn)行

通信,以及它們?nèi)绾芜M(jìn)行通信。了解入站和出站信息包的細(xì)節(jié)后,

顯示它們。

?標(biāo)識(shí):如果您有這些信息,則顯示用于應(yīng)用程序和所有相

關(guān)服務(wù)帳戶的主要標(biāo)識(shí)。

?外部依賴項(xiàng):顯示應(yīng)用程序在外部系統(tǒng)上的依賴項(xiàng)。在稍

后的建模過(guò)程中,這會(huì)幫助您確定由于您所作的有關(guān)外部系統(tǒng)的假

設(shè)是錯(cuò)誤的、或者由于外部系統(tǒng)發(fā)生任何更改而產(chǎn)生的漏洞。

隨著設(shè)計(jì)的進(jìn)行,您應(yīng)當(dāng)定期復(fù)查威脅模型以添加更多細(xì)節(jié)。例如,最初您可能不了解所有的組件。應(yīng)根據(jù)需要細(xì)分應(yīng)用程序,以獲得足夠的細(xì)節(jié)來(lái)確定威脅。

確定角色:

確定應(yīng)用程序的角色:即,確定應(yīng)用程序中由誰(shuí)來(lái)完成哪些工作。用戶能做什么?您有什么樣的高特權(quán)用戶組?例如,誰(shuí)可以讀取數(shù)據(jù)、誰(shuí)可以更新數(shù)據(jù)、誰(shuí)可以刪除數(shù)據(jù)?利用角色標(biāo)識(shí)來(lái)確定應(yīng)當(dāng)發(fā)生什么以及不應(yīng)當(dāng)發(fā)生什么。

確定主要的使用方案:

確定的應(yīng)用程序的主要功能是什么?它可以做什么?利用應(yīng)用程序的用例來(lái)獲得這些信息。確定應(yīng)用程序的主要功能和用法,并捕獲Create、Read、Update和Delete等方面。

經(jīng)常在用例的上下文中解釋主要功能??梢詭椭斫鈶?yīng)用程序應(yīng)當(dāng)如何使用,以及怎樣是誤用。用例有助于確定數(shù)據(jù)流,并可以在稍后的建模過(guò)程

中確定威脅時(shí)提供焦點(diǎn)。在這些用例中,您可以考察誤用業(yè)務(wù)規(guī)則的可能性。例如,考慮某個(gè)用戶試圖更改另一個(gè)用戶的個(gè)人詳細(xì)資料。您通常需要考慮為進(jìn)行完整的分析而同時(shí)發(fā)生的幾個(gè)用例。

確定技術(shù):

只要您能確定,就列出軟件的技術(shù)和主要功能,以及您使用的技術(shù)。確定下列各項(xiàng):

?操作系統(tǒng)。

?服務(wù)器軟件。

?數(shù)據(jù)庫(kù)服務(wù)器軟件。

?在表示層、業(yè)務(wù)層和數(shù)據(jù)訪問(wèn)層中使用的技術(shù)。

?開(kāi)發(fā)語(yǔ)言。

確定技術(shù)有助于在稍后的威脅建?;顒?dòng)中將主要精力放在特定于技術(shù)的威脅上,有助于確定正確的和最適當(dāng)?shù)木徑饧夹g(shù)。

步驟3:系統(tǒng)分解

通過(guò)分解應(yīng)用程序來(lái)確定信任邊界、數(shù)據(jù)流、入口點(diǎn)和出口點(diǎn)。對(duì)應(yīng)用程序結(jié)構(gòu)了解得越多,就越容易發(fā)現(xiàn)威脅和漏洞。

分解應(yīng)用程序按如下步驟:

?確定信任邊界。

?確定數(shù)據(jù)流。

?確定入口點(diǎn)。

?確定出口點(diǎn)。

下面幾部分將對(duì)此逐一進(jìn)行說(shuō)明。

確定信任邊界:

確定應(yīng)用程序的信任邊界有助于將分析集中在所關(guān)注的區(qū)域。信任邊界指示在什么地方更改信任級(jí)別??梢詮臋C(jī)密性和完整性的角度來(lái)考慮信任。例如,在需要特定的角色或特權(quán)級(jí)別才能訪問(wèn)資源或操作的應(yīng)用程序中,更改訪問(wèn)控制級(jí)別就是更改信任級(jí)別。另一個(gè)例子是應(yīng)用程序的入口點(diǎn),您可能不會(huì)完全信任傳遞到入口點(diǎn)的數(shù)據(jù)。

如何確定信任邊界:

1.從確定外部系統(tǒng)邊界入手。例如,應(yīng)用程序可以寫(xiě)服務(wù)器X上的文

件,可以調(diào)用服務(wù)器Y上的數(shù)據(jù)庫(kù),并且可以調(diào)用Web服務(wù)Z。這

就定義了系統(tǒng)邊界。

2.確定訪問(wèn)控制點(diǎn)或需要附加的特權(quán)或角色成員資格才能訪問(wèn)的關(guān)鍵

地方。例如,某個(gè)特殊頁(yè)可能只限于管理人員使用。該頁(yè)要求經(jīng)過(guò)

身份驗(yàn)證的訪問(wèn),還要求調(diào)用方是某個(gè)特定角色的成員。

3.從數(shù)據(jù)流的角度確定信任邊界。對(duì)于每個(gè)子系統(tǒng),考慮是否信任上

游數(shù)據(jù)流或用戶輸入,如果不信任,則考慮如何對(duì)數(shù)據(jù)流和輸入進(jìn)

行身份驗(yàn)證和授權(quán)。了解信任邊界之間存在哪些入口點(diǎn)可以使您將

威脅識(shí)別集中在這些關(guān)鍵入口點(diǎn)上。例如,可能需要在信任邊界處

對(duì)通過(guò)入口點(diǎn)的數(shù)據(jù)執(zhí)行更多的驗(yàn)證。

確定數(shù)據(jù)流:

從入口到出口,跟蹤應(yīng)用程序的數(shù)據(jù)輸入通過(guò)應(yīng)用程序。這樣做可以了解應(yīng)用程序如何與外部系統(tǒng)和客戶端進(jìn)行交互,以及內(nèi)部組件之間如何交互。要特別注意跨信任邊界的數(shù)據(jù)流,以及如何在信任邊界的入口點(diǎn)驗(yàn)證這些數(shù)據(jù)。還要密切注意敏感數(shù)據(jù)項(xiàng),以及這些數(shù)據(jù)如何流過(guò)系統(tǒng)、它們通過(guò)網(wǎng)絡(luò)傳遞到何處以及在什么地方保留。一種較好的方法是從最高級(jí)別入手,然后通過(guò)分析各個(gè)子系統(tǒng)之間的數(shù)據(jù)流來(lái)解構(gòu)應(yīng)用程序。例如,從分析應(yīng)用程序、中間層服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間的數(shù)據(jù)流開(kāi)始。然后,考慮組件到組件的數(shù)據(jù)流。

確定入口點(diǎn):

應(yīng)用程序的入口點(diǎn)也是攻擊的入口點(diǎn)。入口點(diǎn)可以包括偵聽(tīng)前端應(yīng)用程序。這種入口點(diǎn)原本就是向客戶端公開(kāi)的。存在的其他入口點(diǎn)(例如,由跨應(yīng)用程序?qū)拥淖咏M件公開(kāi)的內(nèi)部入口點(diǎn))??紤]訪問(wèn)入口點(diǎn)所需的信任級(jí)別,以及由入口點(diǎn)公開(kāi)的功能類型。

確定出口點(diǎn):

確定應(yīng)用程序向客戶端或者外部系統(tǒng)發(fā)送數(shù)據(jù)的點(diǎn)。設(shè)置出口點(diǎn)的優(yōu)先級(jí),應(yīng)用程序可以在這些出口點(diǎn)上寫(xiě)數(shù)據(jù),包括客戶端輸入或來(lái)自不受信任的源(例如,共享數(shù)據(jù)庫(kù))的數(shù)據(jù)。

步驟4:威脅識(shí)別

在本步驟中,確定可能影響應(yīng)用程序和危及安全目標(biāo)的威脅和攻擊。這

些威脅可能會(huì)對(duì)應(yīng)用程序有不良影響。

可以使用兩種基本方法:

1.從常見(jiàn)的威脅和攻擊入手。利用這種方法,您可以從一系列按應(yīng)用

程序漏洞類別分組的常見(jiàn)威脅入手。接下來(lái),將威脅列表應(yīng)用到您

自己的應(yīng)用程序體系結(jié)構(gòu)中。

2.使用問(wèn)題驅(qū)動(dòng)的方法。問(wèn)題驅(qū)動(dòng)的方法確定相關(guān)的威脅和攻擊。

STRIDE類別包括各種類型的威脅,例如,欺騙、篡改、否認(rèn)、信

息泄漏和拒絕訪問(wèn)。使用STRIDE模型來(lái)提出與應(yīng)用程序的體系結(jié)

構(gòu)和設(shè)計(jì)的各個(gè)方面有關(guān)的問(wèn)題。這是一種基于目標(biāo)的方法,您要

考慮的是攻擊者的目標(biāo)。例如,攻擊者能夠以一個(gè)虛假身份來(lái)訪問(wèn)

您的服務(wù)器或Web應(yīng)用程序嗎?他人能夠在網(wǎng)絡(luò)或數(shù)據(jù)存儲(chǔ)中篡改

數(shù)據(jù)嗎?當(dāng)您報(bào)告錯(cuò)誤消息或者記錄事件時(shí)會(huì)泄漏敏感信息嗎?他

人能拒絕服務(wù)嗎?

確定威脅時(shí),要逐級(jí)、逐層、逐功能地進(jìn)行檢查。通過(guò)關(guān)注漏洞類別,將注意力集中在那些最常發(fā)生安全錯(cuò)誤的區(qū)域。

在本步驟中,您要完成下列任務(wù):

?確定常見(jiàn)的威脅和攻擊。

?根據(jù)用例來(lái)確定威脅。

?根據(jù)數(shù)據(jù)流來(lái)確定威脅。

?利用威脅/攻擊樹(shù)研究其他威脅.

下面幾部分將對(duì)此逐一進(jìn)行說(shuō)明。

確定常見(jiàn)的威脅和攻擊:

許多常見(jiàn)的威脅和攻擊依賴于常見(jiàn)的漏洞,根據(jù)應(yīng)用程序安全框架確定威脅、根據(jù)用例確定威脅、根據(jù)數(shù)據(jù)流確定威脅和利用威脅/攻擊樹(shù)研究其他威脅。

應(yīng)用程序安全框架

下面的漏洞類別是由安全專家對(duì)應(yīng)用程序中數(shù)量最多的安全問(wèn)題進(jìn)行調(diào)查和分析后提取出來(lái)的。本部分為每個(gè)類別都確定了一組主要問(wèn)題。

1.身份驗(yàn)證

通過(guò)提出下列問(wèn)題,對(duì)身份驗(yàn)證進(jìn)行檢查:

?攻擊者如何欺騙身份?

?攻擊者如何訪問(wèn)憑據(jù)存儲(chǔ)?

?攻擊者如何發(fā)動(dòng)字典攻擊?您的用戶憑據(jù)是如何存儲(chǔ)的以及執(zhí)行的

密碼策略是什么?

?攻擊者如何更改、截取或回避用戶的憑據(jù)重置機(jī)制?

2.授權(quán)

通過(guò)提出下列問(wèn)題,對(duì)授權(quán)進(jìn)行檢查:

?攻擊者如何影響授權(quán)檢查來(lái)進(jìn)行特權(quán)操作?

?攻擊者如何提升特權(quán)?

3.輸入和數(shù)據(jù)驗(yàn)證

?通過(guò)提出下列問(wèn)題,對(duì)輸入和數(shù)據(jù)驗(yàn)證進(jìn)行檢查:

?攻擊者如何注入SQL命令?

?攻擊者如何進(jìn)行跨站點(diǎn)腳本攻擊?

?攻擊者如何回避輸入驗(yàn)證?

?攻擊者如何發(fā)送無(wú)效的輸入來(lái)影響服務(wù)器上的安全邏輯?

?攻擊者如何發(fā)送異常輸入來(lái)使應(yīng)用程序崩潰?

4.配置管理

通過(guò)提出下列問(wèn)題,對(duì)配置管理進(jìn)行檢查:

?攻擊者如何使用管理功能?

?攻擊者如何訪問(wèn)應(yīng)用程序的配置數(shù)據(jù)?

5.敏感數(shù)據(jù)

通過(guò)提出下列問(wèn)題,對(duì)敏感數(shù)據(jù)進(jìn)行檢查:

?您的應(yīng)用程序?qū)⒚舾袛?shù)據(jù)存儲(chǔ)在何處以及如何存儲(chǔ)?

?敏感數(shù)據(jù)何時(shí)何地通過(guò)網(wǎng)絡(luò)進(jìn)行傳遞?

?攻擊者如何查看敏感數(shù)據(jù)?

?攻擊者如何使用敏感數(shù)據(jù)?

6.會(huì)話管理

通過(guò)提出下列問(wèn)題,對(duì)會(huì)話管理進(jìn)行檢查:

?您使用的是一種自定義加密算法并且信任這種算法嗎?

?攻擊者如何攻擊會(huì)話?

?攻擊者如何查看或操縱另一個(gè)用戶的會(huì)話狀態(tài)?

7.加密

通過(guò)提出下列問(wèn)題,對(duì)加密進(jìn)行檢查:

?攻擊者需要獲得什么才能破解您的密碼?

?攻擊者如何獲得密鑰?

?您使用的是哪一種加密標(biāo)準(zhǔn)?如果有,針對(duì)這些標(biāo)準(zhǔn)有哪些攻擊?

?您創(chuàng)建了自己的加密方法嗎?

?您的部署拓?fù)淙绾螡撛诘赜绊懩鷮?duì)加密方法的選擇?

8.參數(shù)管理

通過(guò)提出下列問(wèn)題,對(duì)參數(shù)管理進(jìn)行檢查:

?攻擊者如何通過(guò)管理參數(shù)來(lái)更改服務(wù)器上的安全邏輯?

?攻擊者如何管理敏感參數(shù)數(shù)據(jù)?

9.異常管理

通過(guò)提出下列問(wèn)題,對(duì)異常管理進(jìn)行檢查:

?攻擊者如何使應(yīng)用程序崩潰?

?攻擊者如何獲得有用的異常細(xì)節(jié)?

10.審核與記錄

通過(guò)提出下列問(wèn)題,對(duì)審核與記錄進(jìn)行檢查:

?攻擊者如何掩蓋他或她的蹤跡?

?您如何證明攻擊者(或合法用戶)執(zhí)行了特定的動(dòng)作?

根據(jù)用例確定威脅:

檢查以前確定的每個(gè)應(yīng)用程序的主要用例,并檢查用戶能夠惡意或無(wú)意地強(qiáng)制應(yīng)用程序執(zhí)行某種未經(jīng)授權(quán)的操作或者泄漏敏感數(shù)據(jù)或私人數(shù)據(jù)的方法。

提出問(wèn)題并嘗試從攻擊者的角度進(jìn)行思考。您提出的問(wèn)題類型應(yīng)該包括:

?客戶端在這里如何注入惡意輸入?

?寫(xiě)出的數(shù)據(jù)是基于用戶輸入還是未驗(yàn)證的用戶輸入?

?攻擊者如何操縱會(huì)話數(shù)據(jù)?

?當(dāng)敏感數(shù)據(jù)在網(wǎng)絡(luò)上傳遞時(shí),攻擊者如何獲得它?

?攻擊者如何回避您的授權(quán)檢查?

根據(jù)數(shù)據(jù)流確定威脅:

檢查主要用例和方案,并分析數(shù)據(jù)流。分析體系結(jié)構(gòu)中各個(gè)組件之間的數(shù)據(jù)流??缧湃芜吔绲臄?shù)據(jù)流尤其重要。一段代碼應(yīng)該假定該代碼的信任邊界之外的數(shù)據(jù)都是惡意的。該代碼應(yīng)當(dāng)對(duì)數(shù)據(jù)進(jìn)行徹底驗(yàn)證。

當(dāng)確定與數(shù)據(jù)流相關(guān)的威脅時(shí),提出如下問(wèn)題:

數(shù)據(jù)是如何從應(yīng)用程序的前端流到后端的?

?哪個(gè)組件調(diào)用哪個(gè)組件?

?有效數(shù)據(jù)的外部特征是什么?

?驗(yàn)證在何處進(jìn)行?

?如何約束數(shù)據(jù)?

?如何根據(jù)預(yù)期的長(zhǎng)度、范圍、格式和類型來(lái)驗(yàn)證數(shù)據(jù)?

?在組件之間和網(wǎng)絡(luò)上傳遞什么敏感數(shù)據(jù),以及在傳輸過(guò)程中如何保

護(hù)這些數(shù)據(jù)?

利用威脅/攻擊樹(shù)研究其他威脅:

前面的活動(dòng)已經(jīng)確定了更加明顯和普遍的安全問(wèn)題。現(xiàn)在研究其他威脅和攻擊。攻擊樹(shù)和攻擊模式是許多安全專家使用的主要工具。它們?cè)试S您更深入地分析威脅,而不會(huì)停留在對(duì)確定其他威脅可能性的理解上。已知威脅的類別列表只顯示了常見(jiàn)的已知威脅,其他方法(如使用攻擊樹(shù)和攻擊模式)可以確定其他潛在威脅。

攻擊樹(shù)是一種以結(jié)構(gòu)化和層次化的方式確定和記錄系統(tǒng)上潛在攻擊的方法。這種樹(shù)結(jié)構(gòu)為您提供了一張攻擊者用來(lái)危及系統(tǒng)安全的各種攻擊的詳細(xì)圖畫(huà)。通過(guò)創(chuàng)建攻擊樹(shù),創(chuàng)建了一種可重復(fù)使用的安全問(wèn)題表示法,這有助于將注意力集中在威脅上并減輕工作量。攻擊模式是一種捕獲企業(yè)中攻擊信息的正規(guī)化方法。這些模式可以幫助確定常見(jiàn)的攻擊方法。

創(chuàng)建攻擊樹(shù):在創(chuàng)建攻擊樹(shù)時(shí),可以假定攻擊者的角色??紤]要發(fā)起一次成功的攻擊您必須要做什么,并確定攻擊的目標(biāo)和子目標(biāo)。利用一個(gè)譜系圖來(lái)表示攻擊樹(shù)表示。

要構(gòu)建攻擊樹(shù),首先要?jiǎng)?chuàng)建表示攻擊者的目標(biāo)的根節(jié)點(diǎn)。然后添加葉節(jié)點(diǎn),它們是代表唯一攻擊的攻擊方法。

步驟5:漏洞分析

在本步驟中,檢查應(yīng)用程序的安全框架,并顯式地查找漏洞。一種有效的方法是逐層檢查應(yīng)用程序,考慮每層中的各種漏洞類別。

身份驗(yàn)證

通過(guò)提出下列問(wèn)題,確定身份驗(yàn)證漏洞:

?用戶名和密碼是以明文的形式在未受保護(hù)的信道上發(fā)送的嗎?敏感

信息有專門(mén)的加密方法嗎?

?存儲(chǔ)證書(shū)了嗎?如果存儲(chǔ)了,是如何存儲(chǔ)和保護(hù)它們的?

?您執(zhí)行強(qiáng)密碼嗎?執(zhí)行什么樣的其他密碼策略?

?如何驗(yàn)證憑據(jù)?

?首次登錄后,如何識(shí)別經(jīng)過(guò)身份驗(yàn)證的用戶?

通過(guò)查找這些常見(jiàn)的漏洞檢查身份驗(yàn)證:

?在未加密的網(wǎng)絡(luò)鏈接上傳遞身份驗(yàn)證憑據(jù)或身份驗(yàn)證cookie,這會(huì)

引起憑據(jù)捕獲或會(huì)話攻擊

?利用弱密碼和帳戶策略,這會(huì)引起未經(jīng)授權(quán)的訪問(wèn)

?將個(gè)性化與身份驗(yàn)證混合起來(lái)

授權(quán)

通過(guò)提出下列問(wèn)題,確定授權(quán)漏洞:

?在應(yīng)用程序的入口點(diǎn)使用了什么樣的訪問(wèn)控制?

?應(yīng)用程序使用角色嗎?如果它使用角色,那么對(duì)于訪問(wèn)控制和審核

目的來(lái)說(shuō)它們的粒度足夠細(xì)嗎?

?您的授權(quán)代碼是否安全地失效,并且是否只準(zhǔn)許成功進(jìn)行憑據(jù)確認(rèn)

后才能進(jìn)行訪問(wèn)?

?您是否限制訪問(wèn)系統(tǒng)資源?

?您是否限制數(shù)據(jù)庫(kù)訪問(wèn)?

?對(duì)于數(shù)據(jù)庫(kù),如何進(jìn)行授權(quán)?

通過(guò)查找這些常見(jiàn)漏洞檢查授權(quán):

?使用越權(quán)角色和帳戶

?沒(méi)有提供足夠的角色粒度

?沒(méi)有將系統(tǒng)資源限制于特定的應(yīng)用程序身份

輸入和數(shù)據(jù)驗(yàn)證

通過(guò)提出下列問(wèn)題,確定輸入和數(shù)據(jù)驗(yàn)證漏洞:

?驗(yàn)證所有輸入數(shù)據(jù)了嗎?

?您驗(yàn)證長(zhǎng)度、范圍、格式和類型了嗎?

?您依賴于客戶端驗(yàn)證嗎?

?攻擊者可以將命令或惡意數(shù)據(jù)注入應(yīng)用程序嗎?

?您信任您寫(xiě)出到Web頁(yè)上的數(shù)據(jù)嗎?或者您需要將它進(jìn)行HTML

編碼以幫助防止跨站點(diǎn)腳本攻擊嗎?

?在SQL語(yǔ)句中使用輸入之前,您驗(yàn)證過(guò)它以幫助防止SQL注入

嗎?

?在不同的信任邊界之間傳遞數(shù)據(jù)時(shí),在接收入口點(diǎn)驗(yàn)證數(shù)據(jù)嗎?

?您信任數(shù)據(jù)庫(kù)中的數(shù)據(jù)嗎?

?您接受輸入文件名、URL或用戶名嗎?您是否已解決了規(guī)范化問(wèn)

題?

通過(guò)查找這些常見(jiàn)漏洞檢查輸入驗(yàn)證:

?完全依賴于客戶端驗(yàn)證

?使用deny方法而非allow來(lái)篩選輸入

?將未經(jīng)驗(yàn)證的數(shù)據(jù)寫(xiě)出到Web頁(yè)

?利用未經(jīng)驗(yàn)證的輸入來(lái)生成SQL查詢

?使用不安全的數(shù)據(jù)訪問(wèn)編碼技術(shù),這可能增加SQL注入引起的威脅?使用輸入文件名、URL或用戶名進(jìn)行安全決策

配置管理

通過(guò)提出下列問(wèn)題,確定配置管理漏洞:

?您如何保護(hù)遠(yuǎn)程管理界面?

?您保護(hù)配置存儲(chǔ)嗎?

?您對(duì)敏感配置數(shù)據(jù)加密嗎?

?您分離管理員特權(quán)嗎?

?您使用具有最低特權(quán)的進(jìn)程和服務(wù)帳戶嗎?

通過(guò)查找這些常見(jiàn)漏洞檢查配置管理:

?以明文存儲(chǔ)配置機(jī)密信息,例如,連接字符串和服務(wù)帳戶證書(shū)

?沒(méi)有保護(hù)應(yīng)用程序配置管理的外觀,包括管理界面

?使用越權(quán)進(jìn)程帳戶和服務(wù)帳戶

敏感數(shù)據(jù)

通過(guò)提出下列問(wèn)題,確定敏感數(shù)據(jù)漏洞:

?您是否在永久性存儲(chǔ)中存儲(chǔ)機(jī)密信息?

?您如何存儲(chǔ)敏感數(shù)據(jù)?

?您在內(nèi)存中存儲(chǔ)機(jī)密信息嗎?

?您在網(wǎng)絡(luò)上傳遞敏感數(shù)據(jù)嗎?

?您記錄敏感數(shù)據(jù)嗎?

通過(guò)查找這些常見(jiàn)漏洞檢查敏感數(shù)據(jù):

?在不需要存儲(chǔ)機(jī)密信息時(shí)保存它們

?在代碼中存儲(chǔ)機(jī)密信息

?以明文形式存儲(chǔ)機(jī)密信息

?在網(wǎng)絡(luò)上以明文形式傳遞敏感數(shù)據(jù)

會(huì)話管理

通過(guò)提出如下問(wèn)題,確定會(huì)話管理漏洞:

?如何生成會(huì)話cookie?

?如何交換會(huì)話標(biāo)識(shí)符?

?在跨越網(wǎng)絡(luò)時(shí)如何保護(hù)會(huì)話狀態(tài)?

?如何保護(hù)會(huì)話狀態(tài)以防止會(huì)話攻擊?

?如何保護(hù)會(huì)話狀態(tài)存儲(chǔ)?

?您限制會(huì)話的生存期嗎?

?應(yīng)用程序如何用會(huì)話存儲(chǔ)進(jìn)行身份驗(yàn)證?

?憑據(jù)是通過(guò)網(wǎng)絡(luò)傳遞并由應(yīng)用程序維護(hù)的嗎?如果是,如何保護(hù)它

們?

通過(guò)查找這些常見(jiàn)漏洞檢查會(huì)話管理:

?在未加密信道上傳遞會(huì)話標(biāo)識(shí)符

?延長(zhǎng)會(huì)話的生存期

?不安全的會(huì)話狀態(tài)存儲(chǔ)

?會(huì)話標(biāo)識(shí)符位于查

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論