自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

秘密蔓延:一文了解如何保護您的秘密

安全 應用安全
由于秘密蔓延,企業(yè)可能會通過多種方式遭受損失。黑客可以圍繞金融交易進行欺詐活動,甚至實施盜竊。他們還可以破解和配置系統(tǒng),以獲得數據訪問的贖金。您可能面臨的另一類與數據泄露相關的財務損失是法律費用、監(jiān)管罰款以及對受影響方的賠償。

您的開發(fā)團隊多久以明文形式向同事發(fā)送 API 密鑰或其他敏感數據?雖然這是共享數據最快的方式,但它絕對不是最安全的。 

當敏感數據最終出現在配置文件、源代碼或明文中時,就會發(fā)生大量泄露。這個問題被稱為秘密蔓延,它會給企業(yè)帶來不利的后果。 

秘密蔓延導致的數據泄露會給公司帶來財務損失、聲譽損害和法律問題。您可以通過使用可靠的機密管理工具來降低這些風險,該工具允許您安全地共享、存儲和管理您的機密。

本文對于想要保護公司免受與秘密蔓延相關的漏洞的開發(fā)人員、安全專業(yè)人員和產品經理來說非常有用。

什么是秘密蔓延,為什么要關心?

在軟件開發(fā)中,秘密是用于用戶授權和身份驗證并提供對系統(tǒng)或數據的訪問的任何信息。此類信息包括:

  • API 密鑰
  • 密碼
  • 加密密鑰
  • 數據庫憑證
  • 訪問令牌

秘密蔓延,也稱為秘密泄露或管理不善,是指對公司軟件和基礎設施內的秘密處理不當。管理不善的秘密對于黑客來說是有利可圖且容易攻擊的目標,他們可以利用這些秘密進行未經授權的訪問。

根據GitGuardian 的2023 年秘密蔓延狀況報告,2022 年,在公共 GitHub 提交中檢測到了 1000 萬個新秘密,比 2021 年增加了 67%。GitGuardian 指出,更多的秘密在私人存儲庫或企業(yè) IT 資產等封閉空間中積累,這意味著 GitHub 上蔓延的秘密僅占全球公開秘密的一小部分。

為了有效降低秘密蔓延的風險,您需要知道去哪里尋找。這些是秘密蔓延最常見的地方:

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

泄密對企業(yè)到底有哪些危害?以下是組織因秘密蔓延而面臨的六種最常見后果:

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

讓我們詳細討論每個后果。

1. 數據泄露

當然,秘密蔓延最明顯的后果是數據泄露。通過暴露 API 密鑰或密碼,您的公司可能面臨讓攻擊者訪問其系統(tǒng)、數據庫和敏感數據的風險。這會導致數據泄露,并可能導致有價值的信息被盜,包括知識產權、財務記錄,甚至用戶數據。 

2、財務損失

由于秘密蔓延,企業(yè)可能會通過多種方式遭受損失。黑客可以圍繞金融交易進行欺詐活動,甚至實施盜竊。他們還可以破解和配置系統(tǒng),以獲得數據訪問的贖金。您可能面臨的另一類與數據泄露相關的財務損失是法律費用、監(jiān)管罰款以及對受影響方的賠償。

根據IBM 的《2022 年數據泄露成本報告》,因憑證被盜或泄露而導致的數據泄露造成的全球平均成本為 450 萬美元。在美國,這一成本甚至更高,每次泄露達到 977 萬美元。

3. 名譽損害

數據泄露和秘密蔓延事件可能會嚴重損害您公司的聲譽。數據泄露案件會引起負面宣傳、媒體關注和客戶強烈反對。所有這一切之后往往會失去客戶、業(yè)務合作伙伴和投資者。

聲譽受損可能會阻止客戶、合作伙伴和投資者離開您的公司,并激勵他們與您的競爭對手合作。這將為競爭對手創(chuàng)造額外的商機,讓他們獲得更大的市場份額。 

4. 合規(guī)和法律問題

客戶數據處理不當可能會導致不遵守各種數據保護和隱私法律法規(guī),包括HIPAA、GDPR和 CCPA。因此,您可能會面臨罰款、處罰和訴訟,從而導致進一步的聲譽和財務損失。更不用說您的公司需要經歷與重新認證和重新審核相關的額外壓力才能繼續(xù)其工作。

5. 運營中斷

您的業(yè)務運營也可能會受到秘密蔓延的影響,因為您需要分配資源用于調查、事件響應和補救活動。您可能需要關閉系統(tǒng)和服務,直到它們得到保護,而這種停機的每一秒都可能造成數千美元的損失。

盡管存在這些后果,秘密蔓延事件的數量仍在逐年增加,損害了各種規(guī)模的企業(yè)。根據GitGuardian 的2023 年秘密蔓延狀況報告,僅在 2022 年,許多世界知名公司就因秘密蔓延而受到數據泄露和泄露的影響:

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

企業(yè)應該怎樣做才能降低泄露秘密的風險?讓我們看一下保護敏感數據的最佳實踐。

最大限度降低秘密蔓延風險的最佳實踐

為了防止秘密蔓延,我們 Apriorit 建議在您的開發(fā)過程中采用以下最佳安全實踐:

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

1. 加密和訪問控制

您的秘密應在靜態(tài)和傳輸過程中進行加密,以便即使信息泄露,黑客也無法訪問信息。此外,檢查誰有權訪問某些數據:根據職位和工作要求,僅向有限數量的員工授予系統(tǒng)訪問權限。

2. 安全開發(fā)實踐

實施安全編碼實踐,例如避免在源代碼中硬編碼機密以及利用環(huán)境變量或配置文件來引用機密。

3. 定期審核和審查

確保定期檢查您的系統(tǒng):

  • 滲透測試
  • 靜態(tài)應用安全測試
  • 動態(tài)應用安全測試
  • 安全代碼審查
  • 秘密掃描工具
  • 安全審計和合規(guī)性評估

4. 保密管理制度

使用秘密管理系統(tǒng)可以幫助您安全地存儲和控制對秘密數據的訪問。最流行的系統(tǒng)是 HashiCorp Vault 和 AWS Secrets Manager。

在許多方面,秘密管理解決方案類似于密碼管理器。大多數密碼管理器都很簡單,并且不具有每用戶權限或訪問控制列表 (ACL) 等高級功能。他們可以在需要時存儲和檢索密碼,但除此之外就無能為力了。

秘密管理解決方案預計具有更復雜的功能:

  • 創(chuàng)建 ACL
  • 為用戶或用戶組添加權限
  • 內置憑證輪換 
  • 先進的訪問控制功能

本文致力于使用秘密管理系統(tǒng)(即 HashiCorp Vault)來保護您的秘密。讓我們討論如何安裝、初始化和配置 HashiCorp 機密管理工具。

什么是 HashiCorp Vault 以及它如何工作?

HashiCorp Vault是一個基于身份的開源秘密和加密管理系統(tǒng),具有許多用例和功能。例如,Vault 支持零信任安全架構,可以幫助您保護云基礎設施。 

HashiCorp 已通過 ISO 認證。ISO 認證可確保組織實施穩(wěn)健的系統(tǒng)、流程和控制,以維持質量、安全性和合規(guī)性。審計報告和合規(guī)函,例如Armanino的SOC 3報告和Leidos的 FIPS合規(guī)函進一步證明HashiCorp經過了嚴格的測試和評估。

您可以開始免費使用 Vault 進行機密管理,或者如果您需要特定的解決方案,可以從兩個付費計劃中進行選擇。您可以在HashiCorp Vault 官方網站上查看定價政策。

Vault 具有復雜的結構,并使用稱為后端的組件來向其委派任務。Vault 中有四個專用于不同流程的后端:身份驗證、秘密、審計和存儲。所有這些都由 Vault 核心控制——Vault 架構的核心組件,它將所有用戶請求路由到特定后端。

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

現在讓我們更詳細地討論秘密管理庫中的后端,并討論它們的功能和目的。 

1. 認證后端

身份驗證后端或身份提供商負責處理身份驗證過程,并在身份驗證成功后返回用戶身份(通常作為令牌或用戶信息,如電子郵件、ID、角色等)。 

令牌身份驗證是一種中心身份驗證方法,因為所有其他方法都依賴于它。它到底是如何運作的?

當用戶成功進行身份驗證時,身份提供者會返回有關用戶的信息,例如用戶名或唯一標識符。然后,Vault 獲取此身份信息并創(chuàng)建與該身份關聯的訪問令牌。此訪問令牌允許用戶根據配置的訪問策略和權限訪問所需的資源或在 Vault 內執(zhí)行特定操作。 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

當然,令牌認證可以單獨使用。無需使用任何其他身份提供商即可創(chuàng)建、撤銷和更新這些令牌。但這并不總是處理身份驗證的最佳方式。 

令牌在訪問控制中也發(fā)揮著至關重要的作用,因為當創(chuàng)建令牌時,允許或禁止訪問資源的特定于用戶的策略會被編碼到令牌上。 

與 Vault 集成的身份驗證后端的一些示例包括輕量級目錄訪問協(xié)議 (LDAP)、GitHub 和 Azure Active Directory。您還可以使用其他受支持的身份驗證方法,例如 JSON Web 令牌、Kerberos,甚至標準用戶名和密碼。 

2. 存儲后端

存儲后端負責存儲所有信息。普遍接受的做法是將存儲后端視為不可信實體。與許多其他機密管理解決方案一樣,Vault 僅將加密數據存儲在存儲后端,因此如果存儲遭到破壞,在不知道加密密鑰的情況下就不可能檢索機密。? 

Vault 支持許多存儲驅動程序,包括文件系統(tǒng)、內存存儲、關系數據庫和 Amazon S3。每種方法都有其優(yōu)點和缺點,因此哪種方法最好取決于您的特定需求和存儲驅動程序的功能。 

此外,Vault還有自己的嵌入式數據存儲,稱為集成存儲。使用此集成存儲可以消除系統(tǒng)中的另一個依賴項,并使監(jiān)控和故障排除變得更加容易,因為您只需監(jiān)控 Vault。 

使用 Vault 的本機存儲驅動程序不需要安裝任何其他軟件,并且是開箱即用的解決方案。 

3. 秘密后端

秘密后端,或秘密管理 HashiCorp 工具中的秘密引擎,負責各種存儲秘密的方式。一些秘密引擎只能存儲和讀取數據,而另一些則具有更復雜的功能,例如動態(tài)秘密生成。 

支持的引擎有很多,包括鍵值存儲、輕量級目錄訪問協(xié)議 (LDAP)、數據庫(用于動態(tài)數據庫憑證生成)、用于生成基于時間的憑證的基于時間的一次性密碼 (TOTP) 工具,以及來自 AWS、GCP 和 Azure 的引擎。我們還可以添加自定義秘密引擎。

這些引擎的行為類似于虛擬文件系統(tǒng),并安裝在 Vault 中的指定路徑上。我們可以讓多個引擎同時運行,并且它們都有不同的路徑。由于每個引擎都有自己的路徑,因此我們發(fā)送到 Vault 的請求會自動轉發(fā)到所需的引擎。 

例如,我們可以啟用一個鍵值秘密引擎來存儲我們的密碼和 API 密鑰,同時擁有一個 AWS 秘密引擎來動態(tài)生成 AWS 訪問憑證。 

4. 審計后端

審核后端負責記錄 Vault 處理的所有請求和響應。記錄機密管理器的活動可能看起來不安全,因為我們很可能將機密保存在日志中。 

但是,Vault 通過對請求和響應包含的大部分字符串進行哈希處理來處理此問題,以避免泄露敏感信息。散列還允許我們通過自己生成這些散列來快速將秘密值與日志中的值進行比較。 

您可以從多種審核機制中進行選擇,包括系統(tǒng)日志記錄協(xié)議 (Syslog)、文件或套接字。Socket 允許您將日志流式傳輸到 TCP、UDP 或 UNIX 套接字,從而允許您使用任何日志管理平臺。 

現在我們了解了 Vault 的工作原理及其提供的功能,讓我們使用 Hashicorp Vault 安全最佳實踐在現實示例中進行演示。

安裝、配置和初始化 Vault 

讓我們開始根據我們的需要安裝、配置和運行 Vault。

安裝 

在本文中,我們將使用Docker Hub中的官方 Docker 映像。Docker允許應用程序容器化,方便我們在隔離的環(huán)境中運行Vault。這是嘗試 Vault 的最簡單方法?,F在讓我們通過在終端或命令提示符中運行以下命令來啟動 Vault: 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

如果本地尚未提供 Vault Docker 映像,這將下載該映像,并啟動一個在其中運行 Vault 的新容器。

保險庫配置 

默認情況下,Vault 的服務器以開發(fā)模式運行:它使用內存存儲存儲所有秘密,自動初始化,并以未密封的方式啟動。開發(fā)模式對于嘗試事物很有用,但不應該在生產中使用。 

在我們的例子中,我們將使用標準模式,這意味著需要手動初始化和啟封 Vault。要在標準模式下運行我們的服務器,我們應該創(chuàng)建一個配置文件。 

Vault的配置文件是用HashiCorp配置語言編寫的。它們有許多不同的選項,但我們在整篇文章中只會使用其中的幾個。? 

讓我們?yōu)槲覀兊?Vault 創(chuàng)建一個簡單的配置: 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

現在,我們來看看關鍵設置。首先,我們禁用了傳輸層安全協(xié)議(TLS)。請注意,您應始終在生產中使用 TLS 來提供客戶端和服務器之間的安全通信。 

其次,我們禁用內存鎖。盡管啟用內存鎖被認為是使用 Vault 時最安全的方法,但并非所有平臺都支持它,我們希望我們的示例盡可能簡單,沒有任何意外錯誤。我們還啟用了 Web UI,因為有些人發(fā)現它比命令行界面 (CLI) 更容易、更快。 

現在我們可以通過將配置的路徑作為參數傳遞來使用新配置啟動服務器: 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)


一切都按預期進行,但現在我們必須初始化服務器本身。

初始化保管庫 

為了初始化我們的服務器,我們需要另一個安裝了 Vault 的 Docker 容器。為了簡化該過程,我們創(chuàng)建了以下 Dockerfile: 

services: 
  vault_server: 
image: vault 
container_name: vault-server 
command: ["server"] 
cap_add: 
  - IPC_LOCK 
ports: 
  - 8200:8200 
environment: 
  VAULT_LOCAL_CONFIG: '{"storage": {"file": {"path": "/vault/file"}}, "listener": [{"tcp": { "address": "0.0.0.0:8200", "tls_disable": true}}], "disable_mlock": true, "ui": true}' 
networks: 
  - vault 
 
  vault_client: 
image: vault 
container_name: vault-client 
command: ["sh"] 
tty: true 
stdin_open: true 
environment: 
  - VAULT_ADDR=http://vault-server:8200 
depends_on: 
  - vault_server 
networks: 
  - vault 
 
networks: 
  vault: 
driver: bridge

請注意,我們將配置從文件移至環(huán)境變量。這是 Vault 官方 Docker 鏡像提供的功能。它允許我們直接在環(huán)境中定義必要的配置參數,而不需要單獨的文件。

我們還將服務器中的 TCP 端口 8200 映射到 Docker 主機的端口 8200,以便從 Docker 主機訪問 Web UI。

現在我們可以使用Docker Compose來啟動我們的容器。Docker Compose 是一個允許我們定義和管理多容器 Docker 應用程序的工具。它使用 YAML 文件(通常名為 docker-compose.yml)來指定組成應用程序的容器的配置和依賴項。 

這是我們的容器創(chuàng)建的樣子:

$ docker compose up 
[+] Running 2/2 
 ? Container vault-server  Created                                                                                                                                  
 ? Container vault-client  Created                                                                                                                                  
Attaching to vault-client, vault-server 
# Vault server output

此時,我們還將提供 Web UI 的屏幕截圖,以展示如何在不使用命令行界面的情況下執(zhí)行完全相同的操作。您可以通過從您選擇的任何瀏覽器導航到 http:// localhost:8200來訪問 Web UI 。用戶界面如下所示: 

屏幕截圖 1.Vault 的 Web UI屏幕截圖 1.Vault 的 Web UI

最后,我們需要將終端會話從另一個終端附加到我們的Vault-Client容器(如果您使用的是Web UI,則可以完全跳過這些CLI步驟):

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

您可以通過在客戶端內執(zhí)行以下命令來驗證一切是否按預期運行: 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

從輸出中我們可以看到,Vault 是密封的且未初始化。Vault 始終以密封狀態(tài)啟動,因此我們應該在每次啟動后將其解封。

為此,我們使用開封密鑰。該密鑰在初始化期間生成一次。Vault 使用Shamir 的秘密共享將密鑰分割成預定義數量的部分,然后使用這些部分來重建它。這種方法降低了暴露未密封代幣的風險,因為我們只擁有其中的一部分。其他部件可以由您的同事保管或安全地存放在不同的地方。? 

要解封 Vault,請在客戶端內運行以下命令: 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

指定您需要一份密鑰共享,并且密鑰閾值是一把密鑰?,F在按初始化并保存生成的密鑰。

屏幕截圖 2. 設置根密鑰屏幕截圖 2. 設置根密鑰

這將使用單個解封密鑰初始化服務器。將生成的令牌和密鑰保存到環(huán)境變量中。我們稍后會需要它們。從現在開始,我們將初始根令牌稱為ROOT_TOKEN,將 Vault 服務器初始化期間生成的第一個解封密鑰(密鑰 1)稱為UNSEAL_KEY。 

Vault 支持多個解封密鑰,但由于我們只是在學習而不是創(chuàng)建可用于生產的解決方案,因此我們將使用一個。 

現在您可以使用解封密鑰來解封服務器: 

秘密蔓延:一文了解如何保護您的秘密(上)秘密蔓延:一文了解如何保護您的秘密(上)

粘貼 UNSEAL_KEY 并按 Unseal。

截圖 3. 解封金庫截圖 3. 解封金庫

現在一切都準備好了,我們終于可以開始使用 Vault 了。 

責任編輯:武曉燕 來源: 嘶吼網
相關推薦

2020-04-01 22:05:24

虛擬機HotSpotJava

2020-08-02 23:40:09

密碼密碼管理器主密碼

2024-05-21 09:45:40

機器學習人工智能XAI

2020-08-27 07:34:50

Zookeeper數據結構

2019-10-14 09:52:41

ELFLinux文件

2024-02-01 11:57:31

this指針代碼C++

2022-01-18 08:04:37

數據分析 Python

2023-11-20 08:18:49

Netty服務器

2023-04-26 15:43:24

容器編排容器編排工具

2022-02-25 07:34:36

MQTT協(xié)議RabbitMQ

2022-06-08 08:11:56

威脅建模網絡安全網絡攻擊

2023-11-06 08:16:19

APM系統(tǒng)運維

2022-11-11 19:09:13

架構

2020-10-08 11:30:09

安全技術數據

2023-03-31 08:16:53

Flutter優(yōu)化內存管理

2022-09-15 08:00:00

安全加密資產漏洞

2023-12-26 07:33:45

Redis持久化COW

2022-10-28 13:48:24

Notebook數據開發(fā)機器學習

2025-01-06 07:54:13

SPC控制圖工具

2024-10-06 14:01:47

Python裝飾器對象編程
點贊
收藏

51CTO技術棧公眾號