Assimilation Project(AP,同化項目),是指在無需明顯增長集中化資源的情況下,發(fā)現(xiàn)和監(jiān)視未知規(guī)模網絡上的基礎設施、服務及相關設備的解決方案。
有關IBM AS/400中小型多用戶商業(yè)計算機系統(tǒng)超高可靠性的段子還挺多的。其中流傳最廣的一個版本是:某天,一位IBM維護工程師到客戶那里維護一臺AS/400服務器,倒霉的接待員工根本不知道那名維護工程師在說啥。最終,該系統(tǒng)在一個隔離空間中被找到了,它已經在那里默默扛起業(yè)務數年,完全被人遺忘,無人打理。
從可靠性視角看,這簡直太棒不過。從安全角度看,根本就是噩夢。它代表的是美國前防長拉姆斯菲爾德臭名昭著的“未知的未知”論調——有些事,我們不知道我們不知道,比如在缺乏證據表明,伊拉克政府向恐怖組織提供大規(guī)模殺傷性武器的情況下,英美還是攻打了伊拉克。
阿蘭·羅伯森,開源開發(fā)者,高可用性專家,常問人需要多長時間才能發(fā)現(xiàn)他們的服務中有哪些是未受監(jiān)管的。典型的答案落在3天到3個月的范圍內。諷刺的是,逆命題(當前提供了哪些服務)卻很好回答,因此分清所提供的服務清單與未受監(jiān)管的服務列表之間的差異應該是很容易的。但,正如前文所述例子顯示的,要找出都有哪些服務在運行,并不總是那么容易的,想知道這些未受監(jiān)管的服務是否配置良好,就更不容易了。
幸運的是,羅伯森正在研究該問題的解決方案,以開源項目AP的形式。AP可對你的系統(tǒng)執(zhí)行詳盡的服務發(fā)現(xiàn)和入庫動作,并存儲結果數據以便查詢。一旦數據被收集,AP會將系統(tǒng)當前狀態(tài)與一組IT安全最佳實踐進行對比。默認使用數據交換標準協(xié)會(DISA)/美國國家標準與技術研究所(NIST)的安全技術實施指南(STIG),但也可定義自己的或選擇適合自身情況的最佳實踐。
羅伯森還寫了一系列博客文章指導用戶怎樣快速啟動和運行AP:
1. 15分鐘獲得更好的安全
2. 1小時獲得更好的安全
3. 半天得到更好的安全
15分鐘那篇引導你通過簡單幾步下載自動化安全腳本來安裝AP及其依賴項。推薦在以root用戶運行之前花點時間看一下腳本,也多花不了幾分鐘。
AP依賴于高性能圖形數據庫Neo4j,因此,下一步就是啟動數據庫、核心服務和庫存代理。幾分鐘之內,發(fā)現(xiàn)和收集就完成了,可產生單個系統(tǒng)的快照。示例如下:
大紅框醒目地顯示出該系統(tǒng)沒遵從 DISA/NIST STIG 安全配置建議。
此時,可開始對數據庫進行一系列查詢,查看還有其他什么發(fā)現(xiàn)。輸入 assimcli query list 命令,可得到可用查詢的完整列表。要查看與系統(tǒng)互動的IP完整列表,發(fā)出 assimcli query allips 命令。示例結果如下:
從結果中顯示的 CADMUS COMPUTER SYSTEMS 可以推斷出測試用例運行在一臺VirtualBox虛擬機上。剩下的條目能看出測試用例的系統(tǒng)十分簡單,定義的主機名極少,納米探針代理運行了極短一段時間。一個產品網絡會有大得多的IP列表,相關信息也豐富得多。只要有新的IP在網絡中出現(xiàn),列表就會新增一條,因此該列表會隨時間長大。這是發(fā)現(xiàn)你現(xiàn)有服務的第一步。AP能從這一個系統(tǒng)擴展到監(jiān)視你所訪問的所有系統(tǒng)。
羅伯森系列文章的第三部分里,他描述了如何遠程安裝納米探針代理到你網絡中的其他系統(tǒng)中。納米探針會向CMA服務器發(fā)送收集到的配置數據,這樣你就能像上文描述的一樣,可視化你網絡中提供的服務了。短期內,不止你網絡中的系統(tǒng)和服務,甚至它們的配置及距離你理想配置的差距,都能被顯示出來。
此處可再引用一句拉姆斯菲爾德的名言:“你與現(xiàn)有系統(tǒng)對戰(zhàn),而不是與可能想要或希望擁有的系統(tǒng)對戰(zhàn)……” AP提供了一種方法,可確保知曉自身確實擁有的東西。