企業開源可學美國國防部這樣做

企業開源可學美國國防部這樣做

你知道美國國防部在F16戰鬥機裝上了Kubernetes叢集嗎?美國空軍早在2019年秋天時,在猶他州一座空軍基地內組成了一個團隊,花了45天,將F16戰鬥機上的執行環境,換成了Kubernetes,而且只靠戰鬥機上的老舊硬體設備,也可以做到在2分鐘內用Istio啟動整套Kubernetes,來執行5、6隻微服務。美國空軍軟體長透漏F16戰機電腦換上K8s的原因,就是看上容器化環境可以支援老舊語言和最新的Go、Python、Java程式,能讓戰鬥機執行更多新應用。

後來,不只F16戰鬥機,美國國防部還嘗試在武器系統、太空系統上運用K8s的專案,2020年時至少超過30個團隊在K8s上開發應用。不只空軍,美國海軍也發起了開發專案要將K8s用到海軍裝置上。

美國國防部擁抱Kubernetes不只是一個技術問題,更是一個管理問題。因為Kubernetes是開源軟體,而且是來自世界各國開發者的貢獻,如何在高度重視機密控管和安全的軍事環境中,使用來自開放社群的程式碼,是一大挑戰。

關鍵正是,美國國防部在2018年訂定了網路戰略,在其中為美國國防部使用開源軟體,制定了一套規範,更以這套規範設計了自己的DevSecOps 環境,來確保可以安全地使用開源軟體,這才讓美國空軍資訊團隊,可以在F16戰鬥機上部署K8s。

美國沒有透露這套DevSecOps的細節,但是可以從他們的網路戰略的相關規範,來了解他們對於運用開源軟體的關鍵原則。

美國國防部去年底剛上任的新任資訊長John B. Sherman,在今年1月親自發了一份內部備忘錄,叮嚀美國國防部內部各部門,只要依據這份網路戰略規範,注意兩大風險,就能夠安全的善用開源軟體來創新。

這位資訊長強調,開源軟體是現今軟體定義世界的重要基礎,也是讓軟體派送更快的關鍵。他指出,美國國防部也必須清楚知道,如何和更多開源社群互動、參與和貢獻的方法。他所提醒的兩大風險,一個是,開源軟體開啟了一條第三方程式碼進入美國國防部的管道,可能讓惡意程式有可趁之機,另一個風險是,將內部程式碼開源釋出時,可能將關鍵創新透露給美國的競爭對手。

但他不是要禁止開源軟體的使用,反而是要告訴自家團隊,如何因應這兩項風險的對策和做法,安全的善用開源軟體的效益。

因應第一項風險,美國國防部建立了一個供應鏈風險管理機制(SCRM), 針對網路威脅有一套標準化檢測流程。而對第二項風險則是建立了一個模組化開放系統方法論(MOSA),透過模組化切割的作法來保護關鍵的創新元件。

美國國防部還把這兩份規範的內容,也公開到美國國防部的開源軟體FAQ網站上。在這個網站上,提供了美國國防部所有對開源軟體的使用規範和注意事項,從開源軟體基本介紹,到美國政府開源政策、開源授權使用和說明等基礎資訊,以及與開發團隊密切相關的,開源軟體供應鏈安全管理作法,還有該如何在重要的國防安全系統中運用開源軟體的方式,甚至是,如何將美國國防部自行開發的程式碼開源釋出的作法,洋洋灑灑,超過65條問答說明,非常詳細,甚至要到哪裡取得專用開源程式碼的建議都有。

美國國防部這個開源軟體FAQ網站,可說是一套企業或組織擁抱開源軟體的參考指南,而且是可以符合五角大廈高度機敏程度的要求都能適用。

隨著雲端原生技術越來越重要,越來越多企業擁抱這類技術同時,也等於擁抱了一整套的開源工具鏈軟體,如何更安全的管理開源軟體,成了企業資訊部門的新挑戰。

臺灣已有一些大型金控,如國泰金,全力擁抱雲端原生技術之際,也發展出一套自己的開源軟體規範,但有更多企業才開始運用各種雲端原生技術和工具,不見得有一套自己的開源軟體管理框架,倒是可以參考美國國防部的這套開源軟體管理作法,更放心的來善用雲端原生技術的好處。


文章孻原:iThome