官术网_书友最值得收藏!

2.1 對抗性視角

利用漏洞的行為是我們在現實世界中接觸過的、最接近“魔法咒語”的東西。首先我們組織正確的咒語,然后對設備執行遠程控制。——霍爾弗·弗萊克

人類肇事者才是萬惡之源。安全事件不會自己無緣無故地發生。因此,只要對軟件安全性進行協同分析,就一定要考慮可能的對手會進行什么樣的嘗試,這樣才能預測和防御潛在的攻擊。攻擊者都是雜牌軍,從腳本小子(只能使用自動化惡意軟件,沒有技術能力的攻擊者)到掌握高端技術的國際黑客不一而足。能夠在某種程度上站在對手的角度進行思考固然是件好事,但是不要自欺欺人地認為自己可以準確地預測對手的一舉一動,也不要花費大量時間和精力去猜測他們的具體想法,更不要自以為是永遠比對手棋高一著的名偵探。了解攻擊者的思考方式的確有其價值,但我們的目標是開發安全軟件,所以攻擊者具體會通過什么技術手段來探測、滲透和泄露數據無關緊要。

我們有必要思考系統中最核心的目標是什么(在有些情況下,對手認為價值連城的數據對你來說實際上并沒有那么高的價值),然后確保高價值資產能夠得到妥善的保護,但不要浪費時間去做攻擊者肚子里的蛔蟲。攻擊者可不會白白浪費精力,他們一般都會把注意力放在那些最薄弱的環節上,以便可以順利完成他們的任務(他們也有可能漫無目的地四處嘗試,但這種行為很難防御,因為這些行為目的并不明確、隨意性很強)。軟件錯誤絕對是攻擊者重點關注的對象,因為它們往往就是軟件的弱點所在。攻擊者如果偶然發現了某些明顯的軟件錯誤,他們就會嘗試創建一些變體,看看能不能造成實實在在的破壞。那些可以導致系統內部詳情泄露的錯誤(例如,詳細的堆棧轉儲)對攻擊者的吸引力尤大。

一旦攻擊者發現了漏洞,他們就很有可能把更多時間和精力放在這個漏洞上,因為很多瑕疵都可以被攻擊者借助協同攻擊擴展出嚴重的后果(本書第 8 章還會介紹這方面的詳細信息)。一般來說,兩項幾乎不會引人注意的細微漏洞如果結合在一起,就可以制造出一次重大的攻擊,因此我們應該嚴肅對待一切漏洞。雖然攻擊者沒有內部信息(至少在執行滲透之前是沒有的),但是掌握攻擊技術的人絕對了解威脅建模的手段。

盡管我們永遠都無法真正預判對手會把時間花在哪個環節上,但是我們仍然應該思考一下攻擊者的動機,這是判斷軟件是否會受到嚴重攻擊的一項標準。這其實和一位著名的搶劫犯在解釋其搶劫銀行的原因(因為那里有錢)的道理類似。這里的重點在于,攻擊一個系統可能獲得的收益越高,人們就越有可能應用更多的技術和資源來對這個系統發起攻擊。雖然這只能作為一種推斷,但這種分析方法可以作為一個相對的指導方針:政府、軍方、大型企業和金融機構的系統都是重大的攻擊目標,而你保存愛寵照片的那個硬盤分區應該不是。

最后,與一切形式的攻擊行為一樣,攻擊的難度總是小于抵御攻擊的難度。攻擊者只需要選擇好切入點,然后下定決心去利用盡可能多的漏洞就可以了,因為攻擊者其實只需要成功一次就夠了。這些都表明了優先考慮安全工作的原因,防守方需要善加利用所有可用的優勢。

主站蜘蛛池模板: 杭锦后旗| 徐水县| 云安县| 永宁县| 黄冈市| 开鲁县| 凤台县| 凤凰县| 扎囊县| 张北县| 彰武县| 吉安市| 梅州市| 汕头市| 化州市| 贡觉县| 遵义市| 思南县| 昂仁县| 桑日县| 来宾市| 东港市| 邵武市| 峡江县| 绥宁县| 惠安县| 锡林浩特市| 许昌县| 怀化市| 砀山县| 卓资县| 贞丰县| 通化县| 华蓥市| 防城港市| 山东省| 梁山县| 唐山市| 庆城县| 建始县| 泊头市|