基礎設施即(安全)程式碼

 

 

在拉斯維加斯的Gartner資料中心、基礎設施與運作管理大會中,我演講了一個新的主題,叫做「基礎設施即(安全)程式碼」。這次演說談到讓大部份的基礎設施以另一種形式的程式碼來呈現的好處和挑戰。

這作法即便是在最保守的企業內也可以發揮。它會悄悄地融入你的運作和安全團隊,但這是個值得進行的趨勢。

基礎設施可以用程式碼表示帶來一些令人興奮的可能性。我們看到這作法被大量地運用在公共雲上,但它們也同樣適用於傳統資料中心(只要一點點的變化)。

你可以開始注意三個主要領域的變化:

  1. 程式碼本身
  2. 如何防護程式碼資料庫
  3. 你的安全控制如何改變以在程式碼內使用

以下是每個領域的重點。

程式碼 

如果你已經努力在自動化你的基礎設施,那你可能已經有程式碼或腳本要維護。對於其他才剛剛起步的人來說,第一步通常是設定檔的集合。

不管是哪一種,對於成熟的基礎設施自動化實作來說,有著三步驟的程序:

  1. 資料夾(The folder)
  2. 版本控制(Version control)
  3. 分支(Branching)

 

每個步驟都能擴展你利用基礎設施程式碼的方式,同時增加維護程式碼資料庫的嚴格性和程序(而不造成額外負擔)。
這對有開發背景的人來說不成問題,但對運作或安全團隊來說可能是個新挑戰。
使用版本控制系統(步驟2)所帶來的額外負擔較低,實在沒理由不今天就開始進行。

程式碼安全 

一旦你將程式碼整入版本控制系統(像是gitApache Subversion等),你需要確保此中央儲存系統安全。

關鍵是:

  1. 嚴格的存取控制
  2. 對進出儲存資料庫的流量進行行為分析和監控
  3. 教育你的團隊關於程式碼的風險

你必須將程式碼視為組織的重要資產。它對攻擊者來說就像是一張藏寶圖。
對這三步驟進行一些盡責調查(due diligence)就能夠減輕自動化基礎設施帶來的風險並獲得可觀回報。

安全程式碼 

現在你已經打好基礎,接著要確保你的安全控制在透過自動化基礎設施所可能帶來的動態環境內也能夠正確地運作。

你的安全實作關鍵是:

  1. 可腳本化或可程式化的安全控制
  2. 可自我調整的監控能力
  3. 將網路身份轉變成不可變的屬性

前兩點看字面就大概了解意思,第三點可能會比較有問題。

我們會指派IP地址或主機名稱作為在組織內的網路身份。這在動態環境內行不通。公共雲基礎設施的早期採用者體驗過這樣的痛處。

簡單的說,就是IP地址/主機名稱可能會很快地被重新分配(幾分鐘或幾小時,而非幾天或幾周),這會帶來一些運作上的困難。

不幸的是,大多數監控工具都是為了較傳統的環境而設計,才剛剛趕上並去處理這一問題。更多關於網路身份在動態環境內所面對的困難詳情,可以參考我去年的談話 – 「邊緣磨損;監控邊界不再可行」。

向前邁進 

自動化你的基礎設施有著明顯的好處。光是作業效率就值得將這部分加入你安全實作的初次和繼續投資。

想了解更多詳情,請參考我在下面談話的投影片。

來自Mark Nunnikhoven基礎設施即(安全)程式碼

 

有興趣談的更多嗎?到twitter上來找我,我在@marknca

 

@原文出處:Infrastructure as (Secure) Code 作者:Mark Nunnikhoven