成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

軟件安全策略分享

安全 應(yīng)用安全
我想作為一個(gè)信息安全從業(yè)者,無論是在滲透測試、代碼審計(jì)亦或是其他安全服務(wù)中都會(huì)接觸到各種各樣的漏洞。面對類型如此豐富漏洞,我們要如何進(jìn)行處理呢?

背景

我想作為一個(gè)信息安全從業(yè)者,無論是在滲透測試、代碼審計(jì)亦或是其他安全服務(wù)中都會(huì)接觸到各種各樣的漏洞。把這些漏洞進(jìn)行簡單分類可能能夠得到幾十類漏洞,當(dāng)然幾乎所有的漏洞類型在common Weakniss Enumeration都有相應(yīng)的描述。

面對類型如此豐富漏洞,我們要如何進(jìn)行處理呢?

要知道人類的本質(zhì)是懶惰,逐條進(jìn)行分析驗(yàn)證幾乎是不可能的。而且滲透測試、紅藍(lán)對抗等服務(wù)在本質(zhì)上都是為了達(dá)到以點(diǎn)帶面的目的,那么這個(gè)面在哪里是值得我們?nèi)ニ伎嫉膯栴}。

廢話扯完了,進(jìn)入正題。

安全策略清單

本文所說的安全策略,即系統(tǒng)采用的方式用于處理可能存在的安全風(fēng)險(xiǎn)。

我這邊簡單的梳理了一下,在考慮軟件安全時(shí)需要考慮的幾個(gè)方面的問題,圖如下:

身份認(rèn)證策略、訪問控制策略、會(huì)話管理策略這三個(gè)方面基本上屬于整個(gè)軟件安全的基石,如果這三個(gè)方面缺少了相應(yīng)控制或者實(shí)現(xiàn)的大方向上存在問題,那么對于整個(gè)軟件的影響極大,可能是顛覆性的需要推到重建。

  • 對抗中間人: 對于中間人攻擊大部分人的看法可能是屬于軟件后期的部署問題,采用https/HSTS就沒什么問題(問題可能并沒有這么簡單),不過我還是把它納入到框架。
  • 輸入輸出: 這可能有點(diǎn)老生常談,不過我覺得清楚的了解對于軟件而言什么是輸入,什么是輸出,可能會(huì)更好進(jìn)行分析。
  • 敏感數(shù)據(jù):在網(wǎng)絡(luò)逐漸形成虛擬社會(huì)的背景下,其開放性的特征必然會(huì)引起有關(guān)部門的注意,作為一項(xiàng)重要的合規(guī)項(xiàng)應(yīng)當(dāng)在初期就納入考慮到。同時(shí)如果出現(xiàn)相應(yīng)的問題,軟件修復(fù)起來極其頭疼,完全可能出現(xiàn)修不完的情況,在投產(chǎn)的過程觸犯了相應(yīng)的法規(guī)造成的損失可能也極其巨大。
  • 軟件技術(shù)棧: 白話一點(diǎn)的說法就是軟件都用了什么技術(shù)。
  • 配置管理: 一些意料之外漏洞可能都出自于錯(cuò)誤的配置管理,諸如交易日志泄露
  • 異常處理: 安全對抗的本質(zhì)是獲取信息,盡可能的獲取一些常規(guī)獲取不到的信息,異常是一項(xiàng)比較重要的來源。

一、身份認(rèn)證

1. 概念

在虛擬世界中的身份認(rèn)證同現(xiàn)實(shí)世界中一樣,首先需要識(shí)別人,建立在識(shí)別的基礎(chǔ)能夠去開展各項(xiàng)業(yè)務(wù),產(chǎn)生、處理、使用、存儲(chǔ)數(shù)據(jù)。 只是目前而言,由于你是真實(shí)存在的,不會(huì)出現(xiàn)類似于證明你是你問題,而虛擬身份的更像是一個(gè)物化的概念,那么身份認(rèn)證就是能夠證明虛擬身份是屬于現(xiàn)實(shí)的你。

所以在虛擬世界這是一個(gè)必須要解決的問題——如何讓真實(shí)的你與虛擬世界中虛擬的你進(jìn)行綁定。

那么最直接的方式就是提供秘密——只有賬號(hào)的擁有者持有的信息。例如在賬號(hào)注冊時(shí)輸入的密碼信息、密保信息

換句話說,在虛擬的世界中只要能夠提供賬號(hào)的相關(guān)的秘密信息,就能聲明賬號(hào)的所有權(quán)。因?yàn)閷τ谌艿某绦蚨裕际莾H僅收到了這個(gè)秘密,你和他并沒有區(qū)別。

舉個(gè)例子:

  • alkaid登錄賬號(hào)alkaid,輸入了密碼password,程序驗(yàn)證通過,允許以alkaid賬號(hào)執(zhí)行相關(guān)業(yè)務(wù)
  • person2 不知道通過什么途徑知道了,alkaid/password的認(rèn)證信息,程序驗(yàn)證通過,允許以alkaid賬號(hào)執(zhí)行相關(guān)業(yè)務(wù)。

2. 風(fēng)險(xiǎn)與處理

現(xiàn)在身份認(rèn)證應(yīng)該就是很清晰了,其實(shí)就是驗(yàn)證虛擬賬號(hào)的秘密信息,那么要知道只要是驗(yàn)證信息就會(huì)返回成功和失敗的結(jié)果,從一定程度這也是一類信息泄露,只是信息泄露的量較少,通過不斷累積信息,就能最終破獲秘密信息,也是身份認(rèn)證主要的風(fēng)險(xiǎn)點(diǎn)。

這類風(fēng)險(xiǎn)的直接體現(xiàn)就是暴力枚舉破解賬號(hào)。

當(dāng)然,這風(fēng)險(xiǎn)屬于無法解決的,我們只能采用降低風(fēng)險(xiǎn),使風(fēng)險(xiǎn)可控的方式:

解決累積信息的特點(diǎn):

  • 賬號(hào)鎖定機(jī)制

由于完美解決1是相對困難的(主要是引入的不可用風(fēng)險(xiǎn)不一定能被接受),也可以采用提高目標(biāo)的信息量的方式,在有限的時(shí)間維度內(nèi),無法破解賬號(hào):

  • 提供秘密信息的復(fù)雜度,例如密碼的復(fù)雜度
  • 采用驗(yàn)證碼技術(shù),防止通過機(jī)器突破現(xiàn)實(shí)人的極限

減少單次信息累積的量:

  • 模糊失敗的錯(cuò)誤提示

其實(shí)還有其他的無法解決的風(fēng)險(xiǎn),例如秘密信息被竊取。所以一般還會(huì)要求提供更換秘密信息的功能:

  • 采用生物信息的技術(shù)讓人難以接受的是無法進(jìn)行更新秘密信息,如果需要更換可能需要重新設(shè)計(jì)相關(guān)的算法和信息采樣的算法,可能會(huì)要求所有虛擬用戶同時(shí)更換設(shè)備和秘密信息。

二、會(huì)話管理

1. 概念

由于HTTP協(xié)議屬于無狀態(tài)(每個(gè)數(shù)據(jù)包都是獨(dú)立的,僅根據(jù)數(shù)據(jù)包無法判斷之前發(fā)過哪些數(shù)據(jù)包)的協(xié)議,同時(shí)在身份認(rèn)證一節(jié)中已經(jīng)說明大部分的業(yè)務(wù)操作是需要基于虛擬身份進(jìn)行的,那么在完成身份認(rèn)證后,后續(xù)數(shù)據(jù)包無法回溯之前的數(shù)據(jù)包,從而導(dǎo)致無法證明自己確實(shí)能夠持有聲明的虛擬身份。

當(dāng)然如果每次都帶著身份的秘密信息請求進(jìn)行確實(shí)是可以進(jìn)行身份認(rèn)證,但是頻繁的使用這類秘密信息可能會(huì)增加秘密信息泄露的風(fēng)險(xiǎn)。

現(xiàn)實(shí)的生活中由于時(shí)間和空間的限制,基本上不存在這類風(fēng)險(xiǎn),我們也很難進(jìn)行參考。

不過這類問題反過來——如何讓服務(wù)器知曉是你這個(gè)真實(shí)的人在操作你的擁有的虛擬身份(問題又回到了身份認(rèn)證)

  • 同身份認(rèn)證一章節(jié)所述,那就是掌握秘密信息。
  • 即服務(wù)器與我商量一個(gè)只有我們兩個(gè)人知道的臨時(shí)秘密,來替代原先虛擬身份的秘密。
  • 臨時(shí)秘密作為虛擬身份的秘密的替代品,在每次訪問時(shí)都進(jìn)行提供。—— 臨時(shí)秘密即我們一般而言的sesssionID(會(huì)話ID)。

會(huì)話管理,即圍繞sessionID是怎么進(jìn)行處理的。

再繞一點(diǎn),是不是覺得會(huì)話像是系統(tǒng)給我開設(shè)的臨時(shí)虛擬身份,但是同時(shí)具有原先虛擬身份的信息?

確實(shí)沒錯(cuò),會(huì)話從某種程度上來講與賬號(hào)其實(shí)沒有區(qū)別,也能夠提供相應(yīng)的信息存儲(chǔ),只不過會(huì)話是臨時(shí)的。

2. 風(fēng)險(xiǎn)與處理

會(huì)話與賬號(hào)相似,其面對的風(fēng)險(xiǎn)也與身份認(rèn)證相同。

但是由于是相似(如果完全相同,又會(huì)回到最開始的問題——無法證明自己確實(shí)能夠持有聲明的虛擬身份),會(huì)話最大的一個(gè)特征是臨時(shí)性。 由于預(yù)置的時(shí)間屬性,基本我們采用2中的復(fù)雜度方式。

如何來盡可能的保證的復(fù)雜度呢?

隨機(jī)生成的符號(hào)組合。(避免組合單詞,賬號(hào)信息等,從信息熵的角度來說,盡可能避免與已知信息相關(guān)聯(lián),關(guān)聯(lián)的越多,這段數(shù)據(jù)包含的信息越少,越容易被猜測)

一定長度的保證(每一位的長度增加,破解難度都是成倍提高)

三、訪問控制

1. 概念

鑒于可能會(huì)與我們學(xué)習(xí)過的MAC、DAC、RBAC混淆,這節(jié)討論的東西不是這些具體的策略,談?wù)撨@些具體的策略,可能搜索一下google、wiki來得更加方便和準(zhǔn)確,是討論訪問控制解決什么問題,面對什么樣的風(fēng)險(xiǎn)。

涉及到訪問控制,自然有兩個(gè)概念,主體和客體。

2. 主體

一般指提出訪問請求的對象。在實(shí)現(xiàn)身份認(rèn)證和會(huì)話管理的基礎(chǔ)上,主體相對明確,有兩類構(gòu)成

  • 虛擬身份代表的主體
  • 沒有虛擬身份,(代表了所有未授權(quán)的情況)

3. 客體

一般指被訪問的資源。 具體哪些資源其實(shí)在相關(guān)的系統(tǒng)里是很難明確的,這里我僅提及兩類,功能和數(shù)據(jù)。 它們應(yīng)該是在各類系統(tǒng)中最最常見的兩類資源。

4. 分析

既然是虛擬時(shí)間,如果排除了空間和時(shí)間的影響,其本質(zhì)應(yīng)該是一樣的,現(xiàn)實(shí)中與安全性質(zhì)類似場景包括消防、防盜、安保等

這里以我居住的小區(qū)為例,alkaid 住在A小區(qū)1幢11層1111房間。

我需要回到我的房間需要經(jīng)過,小區(qū)的門禁、1幢的門禁、1幢的電梯梯控、1111房間的鑰匙、密碼。

我們講現(xiàn)實(shí)的場景與虛擬的場景進(jìn)行映射,幫助進(jìn)行分析也方便大家思考,發(fā)現(xiàn)一些我可能沒有提到的東西。

小區(qū)的門禁,相當(dāng)于系統(tǒng)的身份認(rèn)證,通過門禁確認(rèn)我屬于小區(qū)的住戶

進(jìn)入小區(qū)后,處于會(huì)話管理的范疇內(nèi),當(dāng)我只持有1幢的門禁和梯控,相當(dāng)于只允許我訪問某些功能。

而房間鑰匙則對應(yīng)著我的數(shù)據(jù)訪問權(quán)限。

而小區(qū)的跑道和綠化則屬于授權(quán)用戶的公共資源, 小區(qū)外的其他則屬于任何人都能訪問的資源

小區(qū)中遍布的監(jiān)控能夠支持對行為的審計(jì)

5. 總結(jié)

在訪問控制方面,我們至少需要幾點(diǎn):

  • 功能級別訪問控制
  • 針對用戶數(shù)據(jù)或者其他資源的數(shù)據(jù)級的訪問控制
  • 梳理公共資源以及個(gè)人的資源
  • 監(jiān)控與審計(jì)

6. 風(fēng)險(xiǎn)與處理

風(fēng)險(xiǎn)也圍繞著我們在上文所說的幾點(diǎn)相關(guān)資源的訪問控制(即門禁的設(shè)計(jì))。

根據(jù)系統(tǒng)不同的需要,對不同的資源設(shè)置相應(yīng)的訪問權(quán)限。畢竟在一般情況下,我房間應(yīng)該只有我以及我授權(quán)的相關(guān)人員能夠進(jìn)入:

  • 需要評估和確認(rèn)訪問權(quán)限設(shè)計(jì)的有效性,滿足最小化的原則
  • 對于資源默認(rèn)的訪問權(quán)限應(yīng)當(dāng)是拒絕
  • 授權(quán)繞過/未授權(quán)訪問
  • 在系統(tǒng)變更過程中是否持續(xù)對資源進(jìn)行梳理和監(jiān)控
  • 側(cè)信道/信息推測

例子的描述: 房間里會(huì)有窗戶,可能透過窗戶能夠看到一些 或者 分析你的生活習(xí)慣推測一些信息。 從描述來看,風(fēng)險(xiǎn)相較于其他幾項(xiàng)較少。

之前提到過,我們忽略了時(shí)間和空間的影響。在虛擬世界中可能會(huì)存在直接訪問到我個(gè)人房間的情況,所以一般情況下我們首先需要去驗(yàn)證訪問者是否持有認(rèn)證通過后持有的虛擬身份。(一般這個(gè)操作在軟件系統(tǒng)中會(huì)作為全局?jǐn)r截器來實(shí)現(xiàn),相當(dāng)于將所有的資源納入到門禁的范圍內(nèi),避免在實(shí)現(xiàn)新增功能時(shí),忘了考慮這類情況,從而產(chǎn)生風(fēng)險(xiǎn)【該類情況即使通過審計(jì)發(fā)現(xiàn),也無法進(jìn)行追溯】。)

四、對抗中間人

1. 背景

在前文中提到的三大基石策略——身份認(rèn)證、訪問控制和會(huì)話管理,在通信過程都涉及到與遠(yuǎn)程服務(wù)器交換秘密信息,同時(shí)在實(shí)際的業(yè)務(wù)過程中,也包含了大量的個(gè)人隱私信息。

如果這些信息被竊取,可能會(huì)對社會(huì)、個(gè)人造成巨大的影響。

2. 概念

在具體討論怎么對抗中間人之前,我們首先來看看中間人到底是什么?

從名字來看,中間——那肯定是在什么之間。

信息系統(tǒng)常見幾個(gè)重要的主體,應(yīng)用、操作系統(tǒng)、網(wǎng)絡(luò)鏈路、客戶端、服務(wù)端,通信過程如下:

一般而言,我們所考慮的中間人攻擊的情況是圖中虛線的框框——網(wǎng)絡(luò)設(shè)備,攻擊者可能控制了相關(guān)的路由器或者交換機(jī),進(jìn)而對應(yīng)用的相關(guān)數(shù)據(jù)包進(jìn)行監(jiān)聽、篡改。

一般不考慮應(yīng)用與操作系統(tǒng)、操作系統(tǒng)與網(wǎng)卡之間攔截,一方面由于這些操作都需要對客戶端/服務(wù)端的操作系統(tǒng)進(jìn)行控制,如果能進(jìn)行控制,那么有其他更加豐富的方式獲 取相關(guān)的數(shù)據(jù),包括但不僅限于hook相關(guān)的技術(shù)、屏幕錄像。 另一方面,由于需要獲取操作系統(tǒng)的控制權(quán),一般而言是個(gè)例,不具有普遍性,在資源有限的情況,不會(huì)進(jìn)行考慮。同時(shí)在這類場景下,更關(guān)鍵是需要解決惡意攻擊者獲得操作系統(tǒng)控制權(quán)的問題。

當(dāng)然,如果有特殊的要求確實(shí)需要納入到考慮范圍的情況,那肯定需要在應(yīng)用層面去完成,自然是最方便的途徑,從數(shù)據(jù)的源頭進(jìn)行防護(hù),設(shè)計(jì)的要求同針對網(wǎng)絡(luò)設(shè)備的中間人一致。

對抗中間人攻擊,不可能去解決掉中間人,而不可能去保證每個(gè)人一個(gè)人的鏈路的安全。

需要解決如何在不可性的鏈路上去構(gòu)建一個(gè)可信或者相對可信的鏈路。

3. 風(fēng)險(xiǎn)與處理

風(fēng)險(xiǎn)其實(shí)在背景里已經(jīng)提到了就是信息被竊取、篡改,而處理的解決方式就是需要去構(gòu)建可信信道。

具體的風(fēng)險(xiǎn)可以細(xì)化成以下四種:

  • 虛擬身份或者臨時(shí)身份被竊取
  • 重放
  • 監(jiān)聽(隱私信息采集等)
  • 業(yè)務(wù)數(shù)據(jù)包被篡改

從風(fēng)險(xiǎn)可知,構(gòu)建的可信信道需要滿足數(shù)據(jù)被加密,防止被竊取身份,被采集信息加密應(yīng)該保證每個(gè)對象與對象之間不同(如果是現(xiàn)代密碼學(xué)算法應(yīng)該保證每組通信采用不同的密鑰)。

  • 需要支持完整性的校驗(yàn)
  • 需要支持對抗重放數(shù)據(jù)——即每個(gè)數(shù)據(jù)包有自己的標(biāo)識(shí)

4. 已有技術(shù)

提到中間人,不得不提到的一定是SSL、TLS,以及結(jié)合http協(xié)議形成的https,一般情況其代碼實(shí)現(xiàn)已經(jīng)集成在操作系統(tǒng)中。

理想情況下,TLS或者SSL協(xié)議能夠達(dá)成我們的目標(biāo),但是它們在構(gòu)建可信信道的過程中,依賴于數(shù)字證書技術(shù)。如果不當(dāng)使用數(shù)字證書,例如自簽證書、不可信CA濫發(fā)證書,那么可信信道就無法構(gòu)建。

無共享信息的可信信道,基本上無法建立,除了量子。

那么為了部分解決SSL/TLS的數(shù)字證書問題,只能采取增加部分預(yù)置信息的方式,例如HSTS——瀏覽器緩存證書,SSL Pinning——內(nèi)置證書進(jìn)行比較

5. 注意事項(xiàng)

由于SSL/TLS是對抗中間人的完整性校驗(yàn)和對抗重放,重放的另一個(gè)威脅源來自客戶端自身在應(yīng)用層發(fā)起的請求,這類情況無法適用SSL/TLS。

一般建議在應(yīng)用層面的核心業(yè)務(wù),再次實(shí)現(xiàn)完整性校驗(yàn)和對抗重放的技術(shù)。例如交易。

五、異常處理

滲透測試的小伙伴應(yīng)該會(huì)這樣的體會(huì)——只有當(dāng)輸入信息與我們預(yù)期的正常情況存在出入的時(shí)候,才會(huì)引起注意,例如頁面500報(bào)錯(cuò)、異常的業(yè)務(wù)流程、預(yù)計(jì)之外數(shù)據(jù)輸出。

所以異常可以算是一切攻擊的源頭,如果所有的情況都能符合預(yù)期,那么我想攻擊者的途徑應(yīng)該會(huì)少很多吧。

可惜的是人非圣賢,異常難以避免。

對研發(fā)而言,我們希望異常越清晰越好,查看異常越簡單越好,能夠協(xié)助我們盡快的定位bug,分析業(yè)務(wù)。

在攻擊者在挖掘漏洞的過程,同樣希望異常越清晰越好,與開發(fā)者們的預(yù)期一致,在頻繁的上線和更新代碼的過程中,經(jīng)常會(huì)遺忘掉這些暗門,從而使攻擊者能夠從研發(fā)留下的痕跡中收獲不少敏感信息。

所幸的是目前部分框架已經(jīng)支持對全局異常的統(tǒng)一處理。

剩下的需要解決的是配置問題,在下文中也會(huì)單獨(dú)的講這個(gè)問題,不過在這個(gè)篇章里索性就先提一點(diǎn)。

研發(fā)人員和攻擊者都關(guān)注異常信息,自然不可能把異常信息全都屏蔽,那么對于研發(fā)人員可能是一場災(zāi)難。

那么如何把兩者劃開來呢,測試環(huán)境自不必說,對于生產(chǎn)環(huán)境而言,攻擊者能接觸到的應(yīng)用頁面、通信的數(shù)據(jù)包,而研發(fā)人員在授權(quán)的情況下,理論上可以接觸到所有數(shù)據(jù)的,所以我們可控制異常信息的輸出,輸出到攻擊者無法接觸的地方,例如操作系統(tǒng)的某個(gè)固定目錄下、統(tǒng)一的日志收集平臺(tái)。

當(dāng)然有個(gè)后話,如何保證相關(guān)目錄的安全、日志平臺(tái)安全以及哪些數(shù)據(jù)需要隱藏又是我們需要繼續(xù)考慮的問題。

注意事項(xiàng):

異常處理的手段其實(shí)在本質(zhì)上并不能解決信息泄露的問題,只是通過對異常處理的控制,盡可能地降低從異常中獲取的信息量,提高攻擊者的攻擊成本和利用難度,從而降低風(fēng)險(xiǎn)。

(沒有任何回顯,本身就是一種異常。只是造成這類異常的情況豐富且復(fù)雜,從而降低從異常中獲取得信息量)

PS:信息量/信息熵等概念,可自行搜索了解,本質(zhì)上是為了量化信息。

六、配置管理

對于應(yīng)用系統(tǒng)而言,經(jīng)常需要部署在不同的運(yùn)行環(huán)境,我們引入了配置從而避免了因?yàn)榄h(huán)境的變動(dòng)就需要對應(yīng)用進(jìn)行重新編碼,重新測試的情況,同時(shí)各種各樣的配置項(xiàng)可以支持各式各樣的組件和程序不同的運(yùn)行方式,極大的提高了效率。

1. 場景一 不同的運(yùn)行環(huán)境

跨平臺(tái)的編程語言解決了應(yīng)用需要在不同操作系統(tǒng)部署的問題,優(yōu)化了大量的時(shí)間投入。但是它們沒辦法解決不同抽象的運(yùn)行環(huán)境,例如開發(fā)環(huán)境、測試環(huán)境、準(zhǔn)生產(chǎn)、生產(chǎn)環(huán)境,不同的抽象運(yùn)行環(huán)境對應(yīng)著不同的組件、網(wǎng)絡(luò)以及信息安全的要求。

  • 開發(fā)環(huán)境/測試環(huán)境:對于信息安全的要求應(yīng)該是最低,同時(shí)也是輸出信息最為豐富、系統(tǒng)最不穩(wěn)定的。
  • 準(zhǔn)生產(chǎn)/生產(chǎn)環(huán)境:對于信息安全有明確的要求,僅保留必要的輸出,系統(tǒng)最為穩(wěn)定。

2. 風(fēng)險(xiǎn)與處理

在從開發(fā)環(huán)境切換到準(zhǔn)生產(chǎn)/生產(chǎn)環(huán)境,難免需要更新具體的配置,一般而言會(huì)考慮引入編譯的配置選項(xiàng)來解決,實(shí)現(xiàn)一鍵切換,例如maven的profile屬性,不同的屬性值對應(yīng)了不同的策略,包括不同的打包策略、不同的配置文件。

這類方式是提高系統(tǒng)可靠性的重要方式,但是也存在一些副作用,需要使用者進(jìn)行控制。

如果管理不當(dāng),開發(fā)者有可能接觸到生產(chǎn)環(huán)境的具體配置信息,對生產(chǎn)經(jīng)營產(chǎn)生影響

如果打包策略/配置文件未進(jìn)行檢查和校驗(yàn),導(dǎo)致多個(gè)環(huán)境信息被一起打包。

如果缺少對具體配置項(xiàng)的檢查,導(dǎo)致生產(chǎn)環(huán)境采用了測試環(huán)境的配置,進(jìn)而可能產(chǎn)生信息泄露事件。

各個(gè)組件(中間件、容器等)的配置。雖然目前有docker一類的容器技術(shù),用于實(shí)現(xiàn)運(yùn)行環(huán)境的標(biāo)準(zhǔn)化配置,但是標(biāo)準(zhǔn)化配置不是一個(gè)不再需要關(guān)注的點(diǎn)而是一個(gè)更加需要關(guān)注的點(diǎn),試想如果某個(gè)標(biāo)準(zhǔn)化上配置存在弱口令賬號(hào)或者所有的標(biāo)準(zhǔn)化環(huán)境共享一個(gè)賬號(hào),會(huì)帶來什么樣的風(fēng)險(xiǎn)。

3. 場景二 日志管理

日志功能相關(guān)的組件越來越成熟,大多通過配置進(jìn)行實(shí)現(xiàn),索性就納入到了配置管理模塊。

日志是目前所有系統(tǒng)審計(jì)的重要依據(jù),同時(shí)也是發(fā)現(xiàn)攻擊者和內(nèi)鬼的重要手段,但是隨著SSL/TLS等相關(guān)加密方式普及,位于通信鏈路上的相關(guān)設(shè)備越來越難以捕獲到明文信息,應(yīng)用系統(tǒng)自身的日志顯得越來越重要。 我想隨著云相關(guān)技術(shù)的進(jìn)一步推廣,應(yīng)用系統(tǒng)的日志會(huì)更加重要。

如何管理這些日志,采集哪些日志就是需要進(jìn)行考慮的。

4. 風(fēng)險(xiǎn)與處理

日志最好也能有全局的日志控制。

當(dāng)然,如果需要最大發(fā)揮日志的價(jià)值,一般是需要匯集到統(tǒng)一的日志平臺(tái),用于支持搜索。而日志往往包含了最詳盡的業(yè)務(wù)信息,從某種意義上而言,這些日志可能是在誘導(dǎo)犯罪。(不知道是不是對前文中關(guān)于臨時(shí)身份有印象,拿到這些臨時(shí)身份的令牌,就可以完成身份竊取)

一類風(fēng)險(xiǎn)是正式這些日志信息造成,我們需要有明確的規(guī)定有指導(dǎo)數(shù)據(jù)記錄,例如敏感信息、個(gè)人隱私信息、令牌、身份等信息,不要存儲(chǔ)全文,需要進(jìn)行部分的模糊化。

另一類風(fēng)險(xiǎn)正是引入日志平臺(tái)其本身帶入的風(fēng)險(xiǎn)。

日志的具體配置不當(dāng),例如本地的日志文件存放到了web的相關(guān)目錄,從而能直接訪問,造成大量信息泄露。(相關(guān)實(shí)例可自行搜索)

5. 場景三 權(quán)限配置

目前越來越來多的應(yīng)用支持復(fù)雜的權(quán)限配置和資源配置,有效維護(hù)這類信息,能夠大幅度降低安全風(fēng)險(xiǎn)。

具體涉及的權(quán)限內(nèi)容,可查看訪問控制策略章節(jié)了解

七、軟件技術(shù)棧

1. 概念

軟件技術(shù)棧——我姑且這么寫如果有更好的名稱可以私信我,這里主要想提一提應(yīng)用系統(tǒng)中那些無法進(jìn)行掌控的第三方組件,例如java的第三方j(luò)ar、框架、中間件。

對于現(xiàn)在的應(yīng)用程序而言,從零開始的搭建已經(jīng)有點(diǎn)不可能了,不是技術(shù)不可能,而是業(yè)務(wù)上不可能,我們需要速度,在已有輪子的前提下,肯定不需要再造輪子,即使造輪子,你有能力保證造的輪子就比別人的好使嗎?

但是呢,這類第三方的代碼與我們編寫的代碼在運(yùn)行時(shí)共享的是同樣的權(quán)限、系統(tǒng)資源,如果這些代碼出現(xiàn)了問題,又當(dāng)如何?

2. 風(fēng)險(xiǎn)與處理

至少需要能管理、了解到底用了哪些第三方的代碼。唯有這樣,在相關(guān)的第三方出現(xiàn)安全問題時(shí),能夠快速響應(yīng),做到止損。(相關(guān)工具:SCA——軟件成分分析軟件)

盡可能不使用存在已知問題的組件,不使用停止維護(hù)/維護(hù)不當(dāng)?shù)牡谌絻?nèi)容(如果是開源的,己方有能力維護(hù)可以不納入考慮)。

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

敏感數(shù)據(jù)現(xiàn)在是屬于法律法規(guī)領(lǐng)域最關(guān)注的一個(gè)點(diǎn)了,雖然互聯(lián)網(wǎng)上的應(yīng)用五花八門,但是所有這些虛擬身份的背后都是一個(gè)唯一的實(shí)體人。生命以負(fù)熵為食,人天生喜歡規(guī)律也是有規(guī)律的,大量數(shù)據(jù)可能能夠重新去定義一個(gè)實(shí)體人,通過定向的投放去影響和控制人,甚至盜取這個(gè)人的現(xiàn)實(shí)身份,這也是為什么敏感數(shù)據(jù)會(huì)成為各國法律法規(guī)的關(guān)注點(diǎn)。

所以在應(yīng)用系統(tǒng)設(shè)計(jì)的初期,我們必須需要明確哪些是所謂的敏感數(shù)據(jù),以及圍繞著敏感數(shù)據(jù)的生命周期要如何處置

1. 哪些是敏感數(shù)據(jù)

個(gè)人隱私

CISSP ALL in One 在隱私章節(jié)里給出部分屬于隱私的數(shù)據(jù)類型,如下:

  • 敏感的業(yè)務(wù)數(shù)據(jù)
  • 財(cái)務(wù)相關(guān)交易記錄
  • ……需要根據(jù)具體內(nèi)容去決定

2. 敏感數(shù)據(jù)的生命周期

一般而言,生命周期至少包括數(shù)據(jù)的產(chǎn)生、存儲(chǔ)、使用、銷毀,該過程映射到實(shí)際的應(yīng)用系統(tǒng)中可能還需要進(jìn)行更加細(xì)節(jié)的處理。

傳輸:應(yīng)用系統(tǒng)涉及到信息交互,那么首先要新增的一個(gè)過程就是傳輸,在傳輸過程中的敏感信息要如何進(jìn)行處理是需要進(jìn)行明確。明文傳輸肯定是不行的。

產(chǎn)生:

  • 我覺得更明確的詞,應(yīng)該是采集。
  • 采集就涉及到到底是采用完整的數(shù)據(jù),還是部分關(guān)鍵即可,如果是部分關(guān)鍵,那么將采集出的數(shù)據(jù)直接轉(zhuǎn)成Hash摘要可作為一種參考方式。

存儲(chǔ):

  • 避免明文存儲(chǔ)
  • 如果不需要明文的敏感數(shù)據(jù),建議采用hash算法等方式轉(zhuǎn)化數(shù)據(jù),僅用于對比
  • 如果需要明文的敏感數(shù)據(jù)進(jìn)行操作,建議采用加密算法保障
  • 其他情況

使用:使用可能涉及到多個(gè)場景,例如客戶端頁面的展示、業(yè)務(wù)操作的需要,如不必要進(jìn)行展示,盡量不進(jìn)行展示。

銷毀:一般這類敏感數(shù)據(jù)是需要提供銷毀數(shù)據(jù)的功能的,是真正從數(shù)據(jù)庫清空相關(guān)信息,而不是通過標(biāo)志位實(shí)現(xiàn)的假刪除方式

注意: 這里的說明,僅僅是提供敏感數(shù)據(jù)相關(guān)策略的參考,具體內(nèi)容以相關(guān)的法律法規(guī)以及業(yè)務(wù)自行設(shè)計(jì)。

九、輸入輸出

1. 概念

輸入與輸出,絕大多數(shù)的漏洞都在體現(xiàn)在這方面,假如一個(gè)系統(tǒng)完全沒有輸入和輸出,開個(gè)玩笑,如果真有這個(gè)系統(tǒng),有和沒有又有什么區(qū)別?

輸入與輸出,這兩個(gè)詞雖然簡單但是里面缺少了一個(gè)東西——主體,什么東西的輸入輸出。

假如實(shí)體服務(wù)器,那么輸入輸出基本上就是我們在通信鏈路上來回輸送的數(shù)據(jù),但是這些數(shù)據(jù)有點(diǎn)駁雜,沒有辦法再進(jìn)一步的處理,唯一能做是采用一些全局的過濾器或者攔截器,但是誤殺又太高。

所有站在這個(gè)維度,雖然實(shí)現(xiàn)起來相對容易,但是把握度的難度會(huì)比較困難

假如把實(shí)體的粒度劃的再細(xì)一點(diǎn),定義成應(yīng)用軟件(軟件,而非系統(tǒng))。從這個(gè)維度來看,系統(tǒng)的輸入和輸出類型就豐富來起來

  • 輸入:來自文件系統(tǒng)上的文件、數(shù)據(jù)庫中的數(shù)據(jù)、中間件/容器傳遞的業(yè)務(wù)數(shù)據(jù)、其他組件的數(shù)據(jù)輸入、
  • 輸出:文件系統(tǒng)、數(shù)據(jù)庫、其他組件、中間件/容器

此時(shí)的輸入輸出可以看得出與部分漏洞有了聯(lián)系,例如與文件系統(tǒng)相關(guān)的文件上傳漏洞、任意文件讀取漏洞

記住,原則上一切的輸入和輸出都不可信,只是經(jīng)過校驗(yàn)和過濾的數(shù)據(jù)才能提高可信度。

2. 風(fēng)險(xiǎn)與處理

通過縮小實(shí)體的粒度,我們更加明確了輸入與輸出,后續(xù)的風(fēng)險(xiǎn)便是圍繞著具體的輸入信息和輸出的信息進(jìn)行分析,構(gòu)建針對性的過濾和處理。

當(dāng)然,這種方法因?yàn)榭s小了粒度所以在實(shí)現(xiàn)上就要復(fù)雜的多,主要是分析工作量增大,需要有針對性。

責(zé)任編輯:趙寧寧 來源: FreeBuf
相關(guān)推薦

2013-02-20 10:33:28

Windows安全策略

2014-04-15 10:26:13

2015-09-02 10:21:55

2014-04-21 10:24:06

2011-03-23 10:58:52

2009-08-05 10:49:50

信息安全策略安全管理

2017-02-07 09:28:29

云安全策略云計(jì)算

2022-02-13 00:13:26

云安全數(shù)據(jù)安全

2024-01-10 08:03:50

數(shù)據(jù)安全網(wǎng)絡(luò)安全

2018-11-26 08:12:54

2010-05-05 15:38:31

Oracle安全策略

2010-06-03 17:02:49

2017-03-31 09:27:05

2010-01-05 11:00:54

2011-06-20 13:29:44

2022-06-29 11:04:17

開源軟件企業(yè)安全策略

2012-11-09 10:55:44

2011-03-08 15:16:02

2016-10-19 21:56:26

2019-07-22 13:11:39

網(wǎng)絡(luò)安全信息安全網(wǎng)絡(luò)威脅
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一区二区三区不卡视频 | 国产一区二区三区在线看 | 国产 日韩 欧美 在线 | 久久久国产一区二区三区 | 亚洲成色777777在线观看影院 | 午夜精品一区二区三区在线视频 | 日本人爽p大片免费看 | 午夜精品一区二区三区在线视频 | 久久er精品| a在线视频观看 | 国产精品一区在线观看你懂的 | 欧美一区二区三区视频在线观看 | 亚洲精品专区 | 最新日韩精品 | 亚洲视频免费在线看 | 91免费电影| 国产高清在线观看 | 欧美日韩在线免费 | 精品福利一区 | 在线一区视频 | 日韩一区中文字幕 | 99精品免费久久久久久日本 | 亚洲国产成人av好男人在线观看 | 日本精品免费在线观看 | 精品久久久久久亚洲综合网站 | 一区二区中文字幕 | 国产在线精品一区二区 | 中文字幕视频在线观看 | 无码日韩精品一区二区免费 | 国产午夜精品理论片a大结局 | 欧美片网站免费 | 国产网站在线 | 日日综合 | 亚洲精久久 | 蜜桃在线视频 | 成人精品一区亚洲午夜久久久 | 日本一区二区高清不卡 | 日韩另类 | 日韩欧美在线视频 | 精品电影| 中国黄色在线视频 |