常用安全需求分析方法包括誤用和濫用案例、濫用框架、反模型、橫切威脅和安全質(zhì)量需求工程(Security Quality Requirements Engineering, SQUARE)。其中誤用和濫用案例、濫用框架、反模型和橫切威脅分別是傳統(tǒng)的需求分析方法在用例、問題框架、面向目標(biāo)、面向方向上的安全擴(kuò)展,強(qiáng)調(diào)了需求分析中的安全性。SQUARE是卡耐基梅隆大學(xué)開發(fā)的一套過程模型,它為信息技術(shù)系統(tǒng)和應(yīng)用的安全需求提供了一種啟發(fā)、分類和排序的方法。
1.用例上的擴(kuò)展:濫用案例
UML、用例等建模和設(shè)計(jì)工具可以幫助軟件開發(fā)人員規(guī)范地描述和設(shè)計(jì)軟件的行為。但使用這些建模和設(shè)計(jì)工具的前提是:軟件用戶的所有行為都是正確的。這意味著開發(fā)人員是基于系統(tǒng)不會(huì)被有意濫用的假設(shè)來理解系統(tǒng)的完全功能的。那么,當(dāng)系統(tǒng)被有意濫用時(shí),它會(huì)如何表現(xiàn)呢?結(jié)果是未知的。
開發(fā)安全、可靠的軟件,除了標(biāo)準(zhǔn)化的特性和功能之外,軟件安全專業(yè)人員還需要顧及其他因素,并仔細(xì)考慮意外或反常的行為,這樣才能更好地理解如何創(chuàng)建安全、可靠的軟件。濫用案例可以幫助開發(fā)者把軟件置于攻擊者的狀態(tài),考慮到超越正常思維和意料之外的事件,從而減少攻擊者可攻擊的漏洞。
濫用案例的典型方法有誤用用例和濫用用例。誤用用例方法主要從功能性用例的文本描述中分析可能存在的安全漏洞并識(shí)別出對應(yīng)的威脅,建立威脅用例,針對威脅用例建立安全需求用例。濫用用例方法主要用于捕獲攻擊者與系統(tǒng)之間的交互所產(chǎn)生的威脅。該方法重視對攻擊者的描述,主要對攻擊者的企圖、攻擊能力進(jìn)行評估。濫用用例方法針對識(shí)別出的威脅,單獨(dú)建立威脅用例,與誤用用例方法不同的是:建立好的威脅用例并不與功能性用例產(chǎn)生交互,威脅用例僅說明系統(tǒng)面臨的安全威脅。威脅用例的描述形式既可以采用已有的用例模板,也可采用漏洞攻擊樹。
濫用用例是通過下面的五個(gè)步驟創(chuàng)建的:
1)用UML的方法描述參與者和用例。
2)引入主要的濫用者和濫用用例。
3)研究濫用用例和用例之間潛在的include關(guān)系。
4)引入新的用例來發(fā)現(xiàn)或阻止濫用用例。
5)形成更加詳細(xì)的需求記錄。
通過創(chuàng)建濫用用例可以捕獲和描述相關(guān)的攻擊,并允許分析人員仔細(xì)地考慮當(dāng)這些安全機(jī)制無效或者被破壞時(shí)會(huì)導(dǎo)致的后果,同時(shí)可以使分析者深入了解系統(tǒng)假設(shè)以及攻擊者如何利用和破壞它們。