STRIDE模型應(yīng)用于信息安全威脅分析
一、引言
功能安全風(fēng)險(xiǎn)分析是對系統(tǒng)的系統(tǒng)性失效和隨機(jī)性失效進(jìn)行風(fēng)險(xiǎn)評估,對于網(wǎng)絡(luò)安全風(fēng)險(xiǎn),需要通過威脅分析識別系統(tǒng)的威脅場景,用于形成有對應(yīng)威脅的控制措施和有效的分層防御,威脅分析是信息安全風(fēng)險(xiǎn)分析的重要組成部分。
二、.威脅分析的步驟
威脅分析一般分為四個(gè)步驟:
1. 確定分析范圍,收集系統(tǒng)信息和劃定系統(tǒng)邊界;
2. 架構(gòu)分解,識別系統(tǒng)組件,確定數(shù)據(jù)流動(dòng),劃分出信任邊界;
3. 威脅識別,識別威脅向量和威脅事件;
4. 建立攻擊模型,繪制攻擊序列圖,描述戰(zhàn)術(shù)、技術(shù)和程序,并生成威脅場景。
2.1 步驟1:范圍確定
首先收集系統(tǒng)架構(gòu)相關(guān)的各種信息,技術(shù)規(guī)格,架構(gòu)組成,網(wǎng)絡(luò)拓?fù)洌c系統(tǒng)設(shè)計(jì)者、管理維護(hù)者進(jìn)行交流以獲取信息;
根據(jù)已有的網(wǎng)絡(luò)架構(gòu)圖,確定威脅分析的邊界,分界線可以是設(shè)定的非軍事區(qū)DMZ,系統(tǒng)安全組件如防火墻、入侵檢測系統(tǒng)IDS、入侵防護(hù)系統(tǒng)IPS,系統(tǒng)功能相關(guān)的組件如數(shù)據(jù)庫、服務(wù)器、主機(jī)等。
2.2 步驟2:架構(gòu)分解
將一個(gè)系統(tǒng)分解為不同組件,通過了解組件之間的數(shù)據(jù)流,用戶可以構(gòu)建一個(gè)數(shù)據(jù)流圖。用戶應(yīng)確定容易受到攻擊的系統(tǒng)組件,即潛在攻擊者可能感興趣的組件,對系統(tǒng)的業(yè)務(wù)任務(wù)至關(guān)重要的數(shù)據(jù)或功能;以及攻擊者特別感興趣的數(shù)據(jù)或功能。一旦確定了系統(tǒng)的組成,就需要確定組件之間的數(shù)據(jù)交互過程。
2.3 步驟3:威脅識別
威脅識別有不同的辦法,如STRIDE模型、攻擊樹、Kill Chain等。STRIDE在軟件安全分析領(lǐng)域應(yīng)用較多,是微軟開發(fā)的用于威脅識別的工具,它把威脅分成如下6個(gè)維度來考察:
1. Snoofing(欺騙)
2. Tampering(篡改)
3. Repudiation(否認(rèn))
4. Information disclosure(信息披露)
5. Denial of Service(拒絕服務(wù))
6. Elevation of Privilege(權(quán)限提升)
微軟將STRIDE應(yīng)用于軟件的威脅識別,這6個(gè)維度也可以擴(kuò)展到系統(tǒng)層面。第3節(jié)將介紹STRIDE模型。

2.4 步驟4:攻擊模型
在確定與系統(tǒng)相關(guān)的威脅事件后,將這些情況連接到可能的攻擊序列中。攻擊模型描述了攻擊者的入侵方式,以便用戶能夠確定保護(hù)系統(tǒng)所需的緩解控制措施,并確定其實(shí)施的優(yōu)先次序。這些方法繪制攻擊者利用組織資源實(shí)現(xiàn)其惡意意圖的可能的攻擊序列,同時(shí),該模型允許用戶了解一個(gè)威脅成功所需的一系列條件。
三.STRIDE模型
微軟的STRIDE模型把安全威脅可以分為6類,分別用Snoofing、Tampering、Repudiation、Information disclosure、Denial of Service、Elevation of Privilege的首字母表示,合起來簡稱"STRIDE"。
3.1 Snoofing(欺騙)指違背用戶的認(rèn)證信息。攻擊者獲得了用戶的個(gè)人信息或使他能夠重放認(rèn)證過程的東西。Snoofing威脅能夠冒充有效的系統(tǒng)用戶或資源以訪問系統(tǒng)從而危及系統(tǒng)安全。
示例:
? 惡意冒充者(中間人)偽造IP(互聯(lián)網(wǎng)供應(yīng)商)數(shù)據(jù)包,劫持與服務(wù)器的連接。這里的漏洞是,通信協(xié)議沒有考慮保密性和完整性設(shè)計(jì);
? 使用密碼而不對其進(jìn)行加密的認(rèn)證協(xié)議會(huì)向竊聽者透露憑證信息,然后竊聽者可以利用這些信息來冒充用戶。這里的漏洞是,憑證信息沒有被正確加密;
? “特洛伊木馬”攻擊是典型的欺騙。例如,在瀏覽器上,一個(gè)網(wǎng)頁可能設(shè)法構(gòu)建一個(gè)完全視覺化的系統(tǒng)登錄副本,并欺騙用戶輸入他們的姓名和密碼,而不懷疑他們實(shí)際上是在向一個(gè)網(wǎng)站提供信息;
? 偽造電子郵件。這種情況下的漏洞是缺乏電子郵件信息的保密性和完整性。
3.2 Tampering(篡改)指在發(fā)現(xiàn)或未發(fā)現(xiàn)的情況下修改系統(tǒng)或用戶數(shù)據(jù)。對存儲或傳輸中的信息進(jìn)行未經(jīng)授權(quán)的更改,對硬盤進(jìn)行格式化,惡意入侵者在通信中引入一個(gè)無法檢測的網(wǎng)絡(luò)數(shù)據(jù)包,以及對敏感文件進(jìn)行無法檢測的更改,都是篡改威脅。
示例:
? 數(shù)據(jù)包注入攻擊,即線路上的數(shù)據(jù)被修改。這種威脅的漏洞是在鏈路上發(fā)送的數(shù)據(jù)缺乏完整性;
? 在沒有授權(quán)檢查的情況下修改文件數(shù)據(jù)。這種威脅的漏洞是缺少訪問檢查、緩沖區(qū)溢出、沒有完整性檢查等;
? 由于執(zhí)行錯(cuò)誤的代碼導(dǎo)致的數(shù)據(jù)損壞。漏洞包括未處理的內(nèi)存分配失敗,未初始化的內(nèi)存,使用釋放的內(nèi)存資源,以及除以零等錯(cuò)誤計(jì)算;
? 數(shù)據(jù)被木馬和病毒破壞或修改。漏洞是指軟件對木馬病毒的易感性。
3.3 Repudiation(否認(rèn))指一個(gè)不受信任的用戶在進(jìn)行非法操作時(shí)沒有被追蹤的能力。可抵賴性威脅與用戶(惡意的或其他的)有關(guān),他們可以否認(rèn)錯(cuò)誤的行為,而沒有任何方法可以證明。
示例:
? 未被發(fā)現(xiàn)的攻擊者闖入用戶賬戶的嘗試。缺少失敗的登錄審計(jì)的漏洞。
? 用戶無意中或惡意地刪除了敏感文件。缺少對對象訪問的成功審計(jì)的漏洞。
? 惡意用戶有能力拒絕發(fā)送消息。在接受信息之前缺乏信息簽名和簽名驗(yàn)證的漏洞。
3.4 Information disclosure(信息披露)指破壞用戶的私人或關(guān)鍵業(yè)務(wù)信息。信息泄露威脅使信息暴露在不應(yīng)該看到它的人面前。用戶能夠閱讀他沒有被授予訪問權(quán)的文件,以及入侵者能夠在兩臺計(jì)算機(jī)之間的傳輸過程中閱讀數(shù)據(jù),都是信息泄露威脅。注意,與欺騙威脅不同,在這里,攻擊者直接獲得信息,而不是通過欺騙合法用戶來獲得。
示例:
? 緩沖區(qū)溢出攻擊導(dǎo)致的數(shù)據(jù)泄漏。復(fù)雜的攻擊,在有漏洞的系統(tǒng)調(diào)用(對操作系統(tǒng)或特權(quán)服務(wù)器的調(diào)用)上放置手工制作的調(diào)用堆棧,可導(dǎo)致特權(quán)代碼返回信息,如內(nèi)核內(nèi)存轉(zhuǎn)儲,返回給未授權(quán)用戶。這里的漏洞是系統(tǒng)服務(wù)中的緩沖區(qū)溢出。
? 由于中間人攻擊導(dǎo)致的數(shù)據(jù)窺探,以及簡單的攻擊,即未加密的數(shù)據(jù)包被嗅探。還有復(fù)雜的攻擊,即有缺陷的認(rèn)證協(xié)議使竊聽者能夠計(jì)算或破解會(huì)話密鑰,從而使竊聽者能夠解密所有加密和簽名的數(shù)據(jù)。這些漏洞都是網(wǎng)絡(luò)協(xié)議的安全缺陷。
? 未經(jīng)授權(quán)獲取數(shù)據(jù)。漏掉冒充客戶端的服務(wù)器或不進(jìn)行訪問檢查就返回?cái)?shù)據(jù)的服務(wù)器(即使他們進(jìn)行了冒充)就是例子。漏洞包括漏掉的冒充(即客戶端獲得對服務(wù)器所能訪問的任何東西的訪問權(quán))或漏掉的訪問檢查。
3.5 Denial of Service(拒絕服務(wù))指使系統(tǒng)暫時(shí)不可用或無法使用,例如那些可以強(qiáng)制重啟或重新啟動(dòng)用戶機(jī)器的攻擊。當(dāng)攻擊者能夠暫時(shí)使系統(tǒng)資源(處理時(shí)間、存儲等)不可用或無法使用時(shí),就存在拒絕服務(wù)的威脅。
示例:
? SYN攻擊和數(shù)據(jù)包炸彈,利用各種網(wǎng)絡(luò)協(xié)議漏洞,導(dǎo)致服務(wù)器崩潰;
? 復(fù)雜的緩沖區(qū)溢出問題,如沒有長度的參數(shù),可以導(dǎo)致服務(wù)器追逐一個(gè)不存在的內(nèi)存位置而崩潰。同樣地,GetAdmin式的手工堆??梢詫?dǎo)致特權(quán)指令關(guān)閉系統(tǒng);
? 常見的編碼錯(cuò)誤,如未處理的內(nèi)存分配失?。ㄒ脽o效的指針)、未初始化的內(nèi)存(使用的數(shù)據(jù)不好)、使用釋放的內(nèi)存和資源(引用無效的內(nèi)存),以及計(jì)算錯(cuò)誤(除以0),都會(huì)引起異常,使軟件崩潰;
? 薄弱的軟件設(shè)計(jì)(設(shè)計(jì)中固有的或由于錯(cuò)誤的配置),如一個(gè)進(jìn)程占用了所有的CPU時(shí)間。
3.6 Elevation of Privilege(權(quán)限提升)指一個(gè)沒有特權(quán)的用戶獲得了特權(quán)訪問權(quán),從而有足夠的權(quán)限來損害和破壞整個(gè)系統(tǒng)。這類威脅更危險(xiǎn)的方面是以不被發(fā)現(xiàn)的方式破壞系統(tǒng),從而使用戶能夠在系統(tǒng)管理員不知情的情況下利用特權(quán)。特權(quán)提升的威脅包括那些允許攻擊者擁有超過應(yīng)有權(quán)限的情況,完全破壞了整個(gè)系統(tǒng)的安全,并造成極端的系統(tǒng)破壞。
示例:
? 緩沖區(qū)超限,如GetAdmin攻擊中的手工堆棧,導(dǎo)致用戶代碼以高權(quán)限執(zhí)行,從而危及整個(gè)操作系統(tǒng)的可信計(jì)算基礎(chǔ);
? 在未經(jīng)授權(quán)用戶同意的情況下運(yùn)行可執(zhí)行文件的能力,可以使犯罪者進(jìn)行特權(quán)操作,例如使自己成為特權(quán)用戶;
? 安全子系統(tǒng)本身的訪問檢查缺失或不當(dāng),會(huì)導(dǎo)致權(quán)限提升。例如,如果管理員的組成員資格在沒有訪問檢查的情況下被更新,就會(huì)使一個(gè)未經(jīng)授權(quán)的用戶成為系統(tǒng)管理員。
四.軌道交通領(lǐng)域威脅示例
在軌道交通通信和信號系統(tǒng)的信息安全威脅分析時(shí),STRIDE模型可以應(yīng)用于系統(tǒng)級分析,確定系統(tǒng)的威脅場景,列舉一些常見的威脅示例如下:
Snoofing欺騙
中間人攻擊,攔截ATS與列車之間發(fā)送的信息,使用第三方工具,兩個(gè)系統(tǒng)之間監(jiān)聽、攔截、改變、注入或替換信息,向控制中心報(bào)告虛假的列車位置,列車報(bào)警信息導(dǎo)致調(diào)度員做出錯(cuò)誤的判斷;
釣魚郵件,工作人員打開來自網(wǎng)絡(luò)釣魚電子郵件的文檔,并在暗中安裝了后門程序,允許攻擊者訪問辦公系統(tǒng)。
Tampering(篡改)
修改ATS系統(tǒng)的數(shù)據(jù)、配置文件,導(dǎo)致服務(wù)降級或中止,安裝應(yīng)用程序用于破壞或占用系統(tǒng)的存儲空間,導(dǎo)致影響安全功能;
利用緩沖區(qū)溢出攻擊導(dǎo)致ATS服務(wù)器程序持續(xù)崩潰、重啟。
Repudiation(否認(rèn))
內(nèi)部人員刪除了系統(tǒng)日志導(dǎo)致事故場景無法重現(xiàn),破壞了有不利行為影響的證據(jù)。
Information disclosure(信息披露)
通過維護(hù)工具(端口掃描、網(wǎng)絡(luò)抓包等工具)或使用附加硬件(竊聽、監(jiān)視傳輸信號)偵聽通信信道或收集系統(tǒng)的信息。
Denial of Service(拒絕服務(wù))
使用第三方工具,向列車控制網(wǎng)發(fā)送大量的無用流量淹沒系統(tǒng)而使其正常服務(wù)癱瘓,通過假數(shù)據(jù)使網(wǎng)絡(luò)超載和堵塞,通信渠道可能會(huì)影響列車控制的正常的通信傳輸導(dǎo)致停車;
錯(cuò)誤配置導(dǎo)致日志文件不能正確覆蓋導(dǎo)致迅速填滿磁盤空間,占用CPU資源導(dǎo)致服務(wù)中斷;
同頻無線干擾導(dǎo)致車地?zé)o線傳輸受到干擾,列車控制功能中斷,功能降級。
Elevation of Privilege(權(quán)限提升)
由于存在漏洞,普通用戶逃脫受限shell并獲得主機(jī)的root權(quán)限,允許他執(zhí)行特權(quán)命令。
五.結(jié)語
近年來,勒索攻擊和信息泄露是關(guān)鍵基礎(chǔ)設(shè)備信息安全的最大威脅,但由于軌道交通互聯(lián)互通、數(shù)據(jù)共享的需求以及IT網(wǎng)絡(luò)和OT網(wǎng)絡(luò)互通的發(fā)展,以上六個(gè)方面的系統(tǒng)安全威脅都客觀存在。從系統(tǒng)軟件開發(fā)角度,很多威脅是利用了軟件設(shè)計(jì)時(shí)未考慮或欠考慮的缺陷,這些缺陷隱藏在系統(tǒng)中,也會(huì)成為攻擊者利用的潛在漏洞。因此,在新系統(tǒng)研發(fā)時(shí),從頂層設(shè)計(jì)就進(jìn)行安全威脅分析和安全需求設(shè)計(jì),降低系統(tǒng)安全風(fēng)險(xiǎn)和后期補(bǔ)充對抗措施的成本.
軌道交通網(wǎng)絡(luò)安全可查的資料比較少,在軌道交通領(lǐng)域,信息安全領(lǐng)域一般由信息安全部門負(fù)責(zé),是屬于IT,而生產(chǎn)設(shè)施屬于OT,兩者從專業(yè)領(lǐng)域來看存在一定的鴻溝。如何從系統(tǒng)層面入手,進(jìn)行信息安全的頂層設(shè)計(jì),應(yīng)該投入多大的成本來做這件事,也是筆者一直思考的。在這篇文章剛完成時(shí),看到一篇來自新華網(wǎng)的新聞報(bào)道“伊朗交通部門連續(xù)遭到網(wǎng)絡(luò)攻擊”,下面是鏈接:
http://www.xinhuanet.com/world/2021-07/12/c_1211236201.htm
其中網(wǎng)絡(luò)攻擊有勒索病毒和網(wǎng)絡(luò)欺騙破壞列車追蹤顯示系統(tǒng),國際局勢并不太平,提高軌道交通基礎(chǔ)設(shè)施的網(wǎng)絡(luò)安全防護(hù)能力勢在必行。
參考資料:https://docs.microsoft.com/en-us/previous-versions/commerce-server/ee823878(v=cs.20)
"The STRIDE Threat model". Microsoft
Kohnfelder, Loren; Garg, Parerit. The threat to our products. Microsoft Interface.