Hashicorp Vault在企業(yè)信息化系統(tǒng)中應(yīng)用的可行性調(diào)研
一、Hashicorp Vault 簡介
HashiCorp Vault是一款企業(yè)級私密信息管理工具。Vault的創(chuàng)造者HashiCorp公司是一家專注于DevOps工具鏈的公司,其旗下明星級產(chǎn)品包括Vagrant、Packer、Terraform、Consul、Nomad等,再加上Vault,這些工具貫穿了持續(xù)交付的整個流程。
Hashicorp Vault 是一個基于身份認(rèn)證的機(jī)密數(shù)據(jù)安全和加密管理系統(tǒng)。機(jī)密數(shù)據(jù)是您想要嚴(yán)格控制訪問的任何內(nèi)容,例如 API 加密密鑰、密碼或證書。Vault 提供由身份驗證和授權(quán)方法控制的加密服務(wù)。使用 Vault 的 UI、CLI 或 HTTP API,可以安全地存儲和管理對機(jī)密和其他敏感數(shù)據(jù)的訪問,嚴(yán)格控制數(shù)據(jù)訪問,而且是可審計的。
現(xiàn)在很多系統(tǒng)需要訪問大量機(jī)密數(shù)據(jù):數(shù)據(jù)庫憑證、外部服務(wù)的 API 密鑰、面向服務(wù)的架構(gòu)通信的憑證等。了解誰在訪問哪些機(jī)密已經(jīng)非常困難。如果沒有自定義解決方案,幾乎不可能添加密鑰滾動、安全存儲和詳細(xì)的審計日志。這就是 Vault 介入的地方。
以下是 Vault 的關(guān)鍵特性:
- 靜態(tài)存儲:
任意鍵/值可以存儲在 Vault 中。Vault 在將這些機(jī)密數(shù)據(jù)持久化之前對其進(jìn)行加密,因此獲得對原始存儲的訪問權(quán)不足以訪問您的機(jī)密數(shù)據(jù)。Vault 可以寫入磁盤、Consul 等。
- ·動態(tài)存儲:
Vault 可以為某些系統(tǒng)按需生成機(jī)密數(shù)據(jù),例如 AWS 或 SQL 數(shù)據(jù)庫。例如,當(dāng)應(yīng)用程序需要訪問 S3 存儲桶時,它會向 Vault 索取憑證,而 Vault 將根據(jù)需要生成具有有效權(quán)限的 AWS 密鑰對。創(chuàng)建這些動態(tài)機(jī)密數(shù)據(jù)后,Vault 會在租約到期后自動撤銷它們。
- 數(shù)據(jù)加密:
Vault 可以在不存儲數(shù)據(jù)的情況下加密和解密數(shù)據(jù)。這允許安全團(tuán)隊定義加密參數(shù),開發(fā)人員可以將加密數(shù)據(jù)存儲在 SQL 數(shù)據(jù)庫等位置,而無需設(shè)計自己的加密方法。
- 租賃和續(xù)訂:
Vault 中的所有機(jī)密數(shù)據(jù)都有與之相關(guān)的租約。在租約結(jié)束時,Vault 將自動撤銷該機(jī)密數(shù)據(jù)??蛻粢部梢酝ㄟ^內(nèi)置的更新 API 更新租約。
- 撤銷:
Vault 具有對秘密撤銷的內(nèi)置支持。Vault 不僅可以撤銷單個機(jī)密數(shù)據(jù),還可以撤銷機(jī)密樹,例如特定用戶讀取的所有機(jī)密數(shù)據(jù),或特定類型的所有機(jī)密數(shù)據(jù)。撤銷有助于密鑰滾動以及在入侵情況下鎖定系統(tǒng)。
Vault 帶有各種稱為 secrets engines 和 authentication methods 的可插拔組件,允許您與外部系統(tǒng)集成。這些組件的目的是管理和保護(hù)動態(tài)基礎(chǔ)設(shè)施中的機(jī)密(例如數(shù)據(jù)庫憑證、密碼、API 密鑰)。
二、引入 Vault 的可行性分析
(一)企業(yè)信息化系統(tǒng)中敏感信息安全現(xiàn)狀
大多數(shù)企業(yè)信息化系統(tǒng)或平臺中,有很大一部分的敏感數(shù)據(jù)。在分析某一個企業(yè)信息化軟件時,在敏感數(shù)據(jù)方面發(fā)現(xiàn)了以下信息,這些信息應(yīng)是具有一些代表性的:
- 系統(tǒng)使用的敏感配置信息,比如數(shù)據(jù)庫賬號信息等;
- 用戶的賬號及密碼,登錄 web 使用;
- 主機(jī)賬號、密碼、密鑰,使用遠(yuǎn)程桌面時使用;
- 數(shù)據(jù)庫賬號、密碼,登錄數(shù)據(jù)庫時使用。
這些敏感信息,安全方面主要采取了以下幾種方式:
- 系統(tǒng)配置相關(guān)敏感信息,無安全措施;
- 用戶密碼采用了MD5+SHA256方式靜態(tài)加密;
- 主機(jī)密碼、密鑰,數(shù)據(jù)庫密碼,采用的是python自帶的加密模塊進(jìn)行靜態(tài)加密。
這些敏感數(shù)據(jù)的存儲位置也大致分為兩個地方:
- 系統(tǒng)的敏感配置信息,明文存儲;
- git 上存儲著系統(tǒng)使用的加密方式和 salt;
- 數(shù)據(jù)庫里存儲著加密后的數(shù)據(jù)。
(二)當(dāng)前企業(yè)信息化系統(tǒng)加密存儲方式風(fēng)險分析
要解密一份加密后的敏感數(shù)據(jù),需要三個方面的信息:加密方式 + salt + 加密后數(shù)據(jù),這三個數(shù)據(jù)的存儲本身,也就成了安全風(fēng)險所在。
目前許多企業(yè)的信息化性中,敏感信息任意存放,無序管理,缺乏系統(tǒng)性安全管理手段和系統(tǒng),因此,這些敏感信息風(fēng)險非常高。
(三)引入 Vault 可行性分析
Vault 的字面意思是“保險庫”。
對于靜態(tài)加密模型來說,最重要的是加密密鑰的存儲位置以及對這些密鑰的訪問控制。密鑰如果能夠進(jìn)行嚴(yán)格的保護(hù),能夠由指定的用戶進(jìn)行管理,并可供特定的服務(wù)使用,那靜態(tài)加密的安全性就會得到大幅提升。
對于企業(yè)的信息化系統(tǒng)來說,目前的安全性保證依賴于產(chǎn)品本身上,如果能借助保險庫,將數(shù)據(jù)存入保險庫中,并由用戶保管各自鑰匙,那系統(tǒng)的安全性就有了很大的保證。
針對 Vault 的特性,以及企業(yè)信息化系統(tǒng)的現(xiàn)狀,我們可以作如下安全提升方案:
- 系統(tǒng)配置信息:
比如數(shù)據(jù)庫憑證,采用靜態(tài)存儲方案,不再以明文方式存儲在配置文件中;
- 用戶賬號信息、主機(jī)憑證信息:
采用靜態(tài)存儲方案,將密碼、SSL 密鑰以靜態(tài)方式存儲在 Vault 中,信息化系統(tǒng)中不再存儲直接的憑證信息;
- 數(shù)據(jù)庫堡壘機(jī)憑證信息:
支持靜態(tài)和動態(tài)兩種存儲方式,可以讓用戶自行選擇,信息化系統(tǒng)中不再存儲直接的憑證信息。
安全提升方案落地后,給用戶在使用信息化系統(tǒng)時提供安全方案選擇,可以選擇默認(rèn)的平臺加密方案,也可以選擇安全性更高的 Vault 解決方案,提高用戶的選擇權(quán)和靈活性。
這樣的安全提升方案,在PaaS/SaaS 平臺中,由各租戶管理員自行配置獨立的安全方案,安全優(yōu)勢將更為明顯。
三、引入 Vault 的成本分析
- Hashicorp Vault 提供開源版本,授權(quán)采用 MPL V2.0 協(xié)議,商業(yè)軟件可免費使用;
- 接入的人力成本需要考慮,主要包括產(chǎn)品、研發(fā)、測試的人力成本。
四、引入 Vault 對產(chǎn)品亮點的提升
近幾年,在信息化全面普及的大環(huán)境下,各種安全問題層出不窮,國家對信息化的安全也越來越重視,《網(wǎng)絡(luò)安全法》、《數(shù)據(jù)安全法》、《個人信息保護(hù)法》相繼出爐。相關(guān)的企業(yè)和個人對信息安全的要求也越來越高。
企業(yè)信息化系統(tǒng)引入 Vault 來提高敏感數(shù)據(jù)的安全性,可以令企業(yè)在信息安全管理方面合規(guī),并成為企業(yè)信息化系統(tǒng)的安全亮點。