




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年一級(jí)造價(jià)師之建設(shè)工程技術(shù)與計(jì)量(土建)真題練習(xí)試卷B卷附答案
- 智慧操場(chǎng)學(xué)期班級(jí)智力發(fā)展計(jì)劃
- 2025年標(biāo)準(zhǔn)辦公室租賃合同范本
- 債務(wù)重組合同樣本
- 樓層走廊欄桿施工方案
- 農(nóng)村水渠建設(shè)合同樣本
- 冷凍品采購(gòu)合同樣本
- 農(nóng)場(chǎng)肉類出售合同樣本
- 買賣違建房屋合同樣本
- 提高生產(chǎn)透明度的實(shí)施方案計(jì)劃
- 幼兒園中班創(chuàng)意美術(shù)《我運(yùn)動(dòng)了》課件
- 自動(dòng)焊錫機(jī)烙鐵頭更換記錄表
- 廣東省省級(jí)政務(wù)信息化服務(wù)預(yù)算編制標(biāo)準(zhǔn)(運(yùn)維服務(wù)分冊(cè))
- 汽車維修公務(wù)車輛定點(diǎn)維修車輛保養(yǎng)投標(biāo)方案
- 歌曲Wonderful U:美妙的你.中英互譯
- 部編教材教讀課教學(xué)課例例說(shuō)課件
- 冀教2011版四年級(jí)英語(yǔ)下冊(cè)《Lesson23MyFavouriteSchoolWork》評(píng)課稿
- 設(shè)備安裝調(diào)試驗(yàn)收單
- 綜合能力測(cè)試真題和答案
- 雙眼視與斜視弱視學(xué)智慧樹(shù)知到答案章節(jié)測(cè)試2023年溫州醫(yī)科大學(xué)
- Q-CR 783.1-2021 鐵路通信網(wǎng)絡(luò)安全技術(shù)要求 第1部分:總體技術(shù)要求
評(píng)論
0/150
提交評(píng)論