我經常懷疑,會不會有一天和我們連線的世界變得如此複雜,以至於產生自我感知能力。
等一下,那是電影裡的情節。我想說的是,面對日益複雜的事物,我們已經不知道如何保證它們的安全。這不是一個有趣的電影裡的情節,如果現在還不是這樣,那麼它正在成為可能發生的事情。
在信用卡號碼和網際網路還沒有出現的時候,你不得不親自走入一家銀行並用槍指著出納員,一般你能拿到滿滿一包的鈔票。安全通常就是守衛著100打甜甜圈的帶槍守衛。如今,網際網路上有上百萬人滿懷著竊取上百萬信用卡、使用者資料或者政府機密的希望,尋找任何微小的縫隙侵入你的系統。這已經不再是你曾曾祖父那時的古老西部了。
今天,需要保護的不僅僅是網站,還有你的客戶應用程式、後臺辦公系統、桌面和可移動裝置、閃盤以及雲環境。公司通常連線的物件不僅有客戶,還有供應商、服務商、分析服務以及雲伺服器。你的資料從各個地方傳來然後流向各種地方,並同時在各個地方存在。在這個急速變化的世界裡,需要有人知道資訊都存放在哪裡,資訊的內容為何,以及誰能夠訪問這些資訊。
身為一名安全負責人,事情可能就是這麼糾結:通常沒有人知道你是誰,你在做什麼,直到(發生安全事故時)5000個web編輯數落你是如此的愚蠢。儘管你每天會讀到很多安全漏洞被人利用並有很多系統被黑客入侵,我可以想象其實沒有被報導的安全事件遠遠不止於此。
確保一家複雜、關係複雜的公司安全,最大的問題在於有太多環節需要盯著,而且一不留神就會產生疏漏。最近發生的一個事件,大量社會安全號碼(類似身份證號)以及個人資訊從政府醫療救助機構被盜走,原因出在辦公室的一臺伺服器沒有被正確配置。只要犯下一個錯誤,就會被那群在網際網路上尋找漏洞的人捕捉到,所有看似完美的安全機構(聽起來他們是有安全應對措施,但我不是很清楚)可能都是嚼著甜甜圈守著顯示器那種型別。這就是安全面臨的挑戰:一個錯誤足以毀掉一切。
“一個鏈條的強度取決於最弱的一環”,這個經典的比喻形象地描述了為什麼安全是如此困難。一個疲勞的程式設計師,一個不斷施壓的經理,一個能力不足的QA,指令碼中的一個bug,甚至是錯誤地點選了一個按鈕都會讓一個優秀的安全設計被攻破。現在,越來越多的複雜性被加入到了不同種類的環境中,要真正理解如何積極有效地阻攔壞人,甚至是如何預防突發問題都成為一件不可能完成的任務。在這個快節奏的世界裡,高速發展業務的壓力引入了巨大的安全成本,現在適度地安全投入已經與銷售及利潤同樣重要。
我們擁有越來越豐富的功能,而對應的安全保護措施是如此薄弱,這是現在及將來我們會不斷遇到的問題。
我所服務的組織有幾家客戶和一組web服務,母公司提供web服務、快取、資料庫以及資料服務,母公司的上家還擁有提供多層服務的大型機系統、資料供應商和客戶。當我進行一次web服務呼叫時,我不知道有幾個層次的系統會被訪問並進行更新,也不清楚那些資料會存放在哪裡。這個呼叫過程的複雜程度足以讓大腦休克。有誰知道這些呼叫在哪裡發生並且如何在一起協同工作的嗎?我認為這是不可能的。現在考慮像美國國防部那樣的系統,部門層次更加複雜,需要保護的物件不是飛機座位而是整個國家的機密以及核武器安全。每個人都想得到其中的一些資訊,而保護工作是由第n層轉包商負責提供。
我最引述的名言之一就是:“如果建築工人像程式設計師寫程式碼那樣蓋房子,那麼只消一隻啄木鳥就足以毀掉整個文明。”如果連一個程式都難以加固,可以想象保護整個公司的那些系統會是怎樣的困難,更不要提保護由許許多多公司和政府系統組成的整個國家的安全了。襲擊伊朗核系統的Stuxnet蠕蟲病毒(造成伊朗核電站推遲發電)就是一個絕佳的研究案例,同時這也是更加複雜的軟體在未來能給我們帶來的某種預兆。
早期系統間的互動甚至需要密碼。今天,你需要考慮到所有可能的攻擊維度。僅僅阻止“駭客”攻擊你的網站是不夠的。威脅會從各個方向襲來而且通常會來自系統內部。
我為一家保健公司的時候發現,伺服器和資料庫的密碼都以文字的形式儲存在程式碼倉庫中而且公司裡有一半的人都知道這件事,這樣別人會輕易地偷取到資料。當我把這件事報告給CTO時,他強調說“公司信任自己的員工”。對重要的資料,我連自己都不相信,更何況那些經常流動的員工和承包商。不久前的那個銀行搶劫犯現在正坐在電腦前攻擊你的系統,在你的公司上班,甚至僱用別人監視你的一舉一動。讓一切處於運轉和監控之中是一項艱苦和昂貴的工作。
身處今天很難想象未來10年會是怎樣。隨著我們的系統互聯程度的增加,資料變得越來越重要。偷竊、阻斷以及拒絕訪問將會變得更加容易,越來越多的人將會試圖加入這個行列。我真的懷疑我們能否保護它們的安全。無論我們是否意識到,我都毫不懷疑會有更多的攻擊發生。甚至就在今天,你都能發現有公司絕望地掩飾自己的安全漏洞,也會聽說一個成功的攻擊是如何減緩甚至毀掉整個生意。不難想象這樣的事情每天都在發生,你也能夠知道人們對於技術進步是怎樣的恐懼。
當我們的技術迅速在迅速進步的時候,已經有一隻啄木鳥等在那裡,而且我認為很快就會知道這些軟體是否會轟然倒塌。畢竟,我們沒有無限的信用卡號、無盡的金錢或者多餘的核彈頭髮射程式碼可以輸掉。
安全真的應該是第一位的工作:即使現在不是,亡羊補牢也不晚。要麼現在補救,要麼未來會滿盤皆輸。
【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】