返回文章列表

雲端資料資產安全防護與風險管理

本文探討雲端環境中資料資產的保護策略,涵蓋風險管理、資料分類別、加密技術、金鑰管理以及相關法規遵循。文章深入分析了資料生命週期不同階段的安全挑戰,並提供實務上的解決方案,包含程式碼範例和圖表說明,幫助讀者建立全面的資料保護策略。

資安 雲端運算

隨著雲端運算的普及,資料資產的保護變得更加複雜且重要。本文將探討如何在雲端環境中有效管理和保護資料資產,涵蓋風險評估、資料分類別、加密技術、金鑰管理以及相關法規遵循。同時,我們將分析資料在不同生命週期階段(靜態、傳輸中、使用中)的風險,並提供實務上的解決方案,例如使用雲端供應商的金鑰管理服務和標籤功能,以及如何平衡安全性和效能需求。

風險管理

風險是指可能發生的壞事。在大多數風險管理系統中,風險程度根據壞事發生的可能性(可能性)和如果發生壞事後果的嚴重程度(影響)。例如,某件事情很可能發生(例如有人猜測密碼“1234”),並且如果發生將會非常糟糕,那麼風險就很高。

風險管理與資料資產防護

風險管理是資訊安全的重要組成部分。在前一章中,我們討論了風險評估的基本概念,包括風險的可能性、影響程度以及如何對其進行分類別。在本章中,我們將探討資料資產的管理和防護。

風險互動作用

風險並不總是獨立存在,多個風險可能會相互作用或累積。例如,兩條冗餘電源線中任意一條斷電的影響可能微不足道,但如果兩條同時斷電,則可能造成嚴重後果。這種情況在現實中很難被發現,2017 年亞特蘭大機場的斷電事件就是一個很好的例子。

風險處理

一旦我們瞭解了已知的風險,我們就可以採取四種不同的措施來處理它們:

  1. 避免風險:在資訊安全領域,這通常意味著關閉系統,從而消除風險,但同時也失去了執行該系統所帶來的益處。
  2. 降低風險:透過採取額外的措施來降低風險發生的可能性或影響程度。例如,減少儲存的敏感資料量,以降低資料洩露的影響。
  3. 轉移風險:將風險轉移給他人管理,例如使用雲端服務,將管理底層系統的風險轉移給雲端服務提供商。
  4. 接受風險:在評估了整體風險水平和繼續活動的益處後,決定接受該風險,並將其記錄下來,取得所有利益相關者的同意。

資料資產管理

資料資產管理是資訊安全的一個重要方面。資料資產包括客戶姓名和地址、信用卡資訊、銀行賬戶資訊或存取這些資料的憑證。雲資產則是儲存和處理這些資料的資源,例如伺服器、容器、物件儲存或區塊儲存,以及資料函式庫或佇列等平台例項。

資料識別和分類別

資料分類別系統可以幫助我們優先考慮保護工作。一個簡單的資料分類別系統可以分為以下幾個級別:

  • :如果該資訊被公開發布,對組織的影響非常低或可以忽略不計。例如:
    • 伺服器的公共 IP 地址
    • 沒有個人資料、秘密或對攻擊者有價值的應用程式日誌資料
    • 沒有秘密或其他有價值內容的軟體安裝材料
  • 中等:該資訊不應在未簽署適當的保密協定的情況下向組織外部披露。在許多情況下,尤其是在較大的組織中,這種型別的資料應僅在組織內部按需披露。以下是一些例子:
    • 詳細資訊關於您的資訊系統設計,可能對攻擊者有用
    • 有關您的人員資訊,可能為網路釣魚或預文攻擊提供資訊

CIA 三元組

CIA 三元組是一個流行的資訊安全模型,包括保密性、完整性和可用性。三個方面的威脅分別對應於竊取資料、修改資料和使資料不可用。

風險評估與管理措施

透過瞭解和評估風險,我們可以採取適當的管理措施來保護我們的資料資產。這包括使用資料分類別系統、實施適當的安全控制措施,以及持續監控和評估風險。

資料資產管理與保護

在雲端運算時代,資料資產的管理與保護變得日益重要。企業需要對其資料進行識別、分類別和保護,以避免資料外洩或被未授權存取。

資料分類別系統

企業應該建立一個資料分類別系統,以確定不同型別資料的敏感度和重要性。以下是一個常見的分類別系統:

  • 低風險:公開的資訊,如新聞稿或公開的技術檔案。
  • 中風險:內部使用的資訊,如員工聯絡資訊或公司內部檔案。
  • 高風險:極為敏感的資訊,如財務資料、商業機密或個人身份資訊。

高風險資料包括:

  • 未來戰略或財務資訊,可能為競爭對手提供顯著優勢。
  • 商業機密,如知名軟飲或炸雞的配方。
  • 提供「王國鑰匙」的秘密,如雲端基礎設施的完整存取憑證。
  • 交由企業保管的敏感資訊,如客戶的財務資料。
  • 任何可能成為新聞頭條的資訊外洩事件。

相關行業或法規要求

許多行業和法規要求企業遵循特定的資料保護和管理的規定。例如:

  • 歐盟GDPR:適用於歐盟或歐洲經濟區公民的個人資料,要求企業對個人資料進行編目、保護和稽核存取。
  • 美國FISMA或FedRAMP:要求企業按照FIPS 199和其他美國政府標準對資料和系統進行分類別。
  • 美國ITAR:要求企業選擇支援ITAR的雲端服務,並由美國人員管理。
  • 全球PCI DSS:要求企業處理信用卡資訊時實施特定的控制措施,並禁止儲存某些型別的資料。
  • 美國HIPAA:要求企業保護受保護的健康資訊(PHI),通常涉及加密。

雲端中的資料資產管理

雲端提供者可以幫助企業識別和分類別其資料。企業可以使用雲端服務來清查儲存位置,並自動嘗試對重要資料進行分類別。然後,企業可以使用此資訊來標記儲存資料的雲端資產。

在識別重要資料時,企業不應忘記密碼、API金鑰和其他可以用於讀取或修改資料的秘密。對於樣例應用程式,除了資料函式庫中的客戶資料外,還有其他重要的資產需要考慮,例如:

  • 網路伺服器的日誌資料,可能用於識別客戶。
  • 網路伺服器的私鑰,用於TLS憑證;如果被攻擊者取得,可能被用來冒充網站並竊取客戶密碼。
  • 密碼雜湊清單,用於驗證客戶身份;如果使用聯合身份系統,則可以避免此風險。
  • 應用程式伺服器存取資料函式庫所需的密碼或API金鑰;如果被攻擊者取得,可能讀取或修改資料函式庫中的所有內容。

程式碼範例:

import boto3

# 建立 S3 客戶端
s3 = boto3.client('s3')

# 列出所有 S3 儲存桶
response = s3.list_buckets()

# 印出儲存桶名稱
for bucket in response['Buckets']:
    print(bucket['Name'])

內容解密:

  1. 匯入boto3函式庫:這是AWS SDK for Python,允許Python開發者直接在Python程式中編寫使用AWS服務(如S3)的程式碼。
  2. 建立S3客戶端:透過boto3.client('s3')建立了一個S3服務的客戶端,用於與S3服務進行互動。
  3. 列出所有S3儲存桶:使用s3.list_buckets()方法列出目前AWS帳戶下所有的S3儲存桶。
  4. 印出儲存桶名稱:遍歷傳回結果中的Buckets列表,並印出每個儲存桶的名稱。

此程式碼範例展示瞭如何使用AWS SDK for Python列出AWS帳戶下的所有S3儲存桶。這對於清查和管理雲端儲存資源非常有用。

資料資產管理與保護

在簡單的應用程式中,仍有許多非顯而易見的內容需要保護。圖2-1重複了前一章節的圖1-6,並增加了資料資產在框中。

標記雲端資源

大多數雲端服務供應商以及容器管理系統(如Kubernetes)都有標籤的概念。標籤通常是名稱(或「鍵」)和值的組合。這些標籤可用於多種用途,從在庫存中分類別資源到做出存取決策,再到選擇要警示的內容。例如,您可能為包含個人身份資訊的任何內容使用「PII-data」的鍵和「yes」的值,或者使用「datatype」的鍵和「PII」的值。

問題很明顯:如果組織中的每個人都使用不同的標籤,那麼它們將不會很有用!建立一個包含標籤說明的清單,解釋何時必須使用這些標籤,在多個雲端服務供應商中使用相同的標籤,並要求在建立資源時透過自動化工具應用這些標籤。即使您的雲端服務供應商之一沒有明確支援使用標籤,也通常有其他描述欄位可以用來以易於解析的格式(如JSON)儲存標籤。

內容解密:

  • 標籤可以自由使用,但雲端服務供應商對每個資源可以擁有的標籤數量設有限制(通常在15到64個標籤之間)。
  • 自動化工具可以用來檢查標籤是否正確應用於資源,以便及早發現未標記或錯誤標記的資源並進行糾正。

保護雲端中的資料

本文討論的多種資料保護技術也可以在本地佈署中使用,但許多雲端服務供應商提供了簡單、標準化和更便宜的方式來保護您的資料。

Tokenization

為什麼要儲存資料,而可以儲存類別似資料但對攻擊者無用的東西?Tokenization(通常用於信用卡號碼)用一個標記(通常是隨機生成的)替換了一段敏感資料。它具有以下好處:標記通常具有與原始資料相同的特徵(例如16位數字),因此底層系統不需要被修改。只有一個地方(「Token Service」)知道實際的敏感資料。Tokenization可以單獨使用,也可以與加密結合使用。

加密

加密是資料保護領域的銀彈;我們希望「加密所有東西」。不幸的是,它比那更複雜。資料可以處於三種狀態:

  • 傳輸中(透過網路傳輸)
  • 使用中(目前正在電腦的CPU中處理或儲存在RAM中)
  • 靜止中(在永續性儲存中,例如磁碟)
內容解密:
  • 資料在傳輸中的加密是一種必要的控制,將在第6章詳細討論。
  • 資料在使用中的加密目前仍相對較新,主要針對非常高安全性的環境,需要硬體平台的支援,並由雲端服務供應商提供。
  • 資料靜止中的加密可能是最複雜的,需要正確實作,不僅要加密資料,還要安全地管理加密金鑰。

技術深度分析

在高度安全的環境中,資料保護需要綜合運用多種技術,包括Tokenization和加密。選擇適當的技術和實施方案,需要深入瞭解各項技術的優缺點和適用場景。

圖表說明

此圖示展示了資料的三種狀態及其對應的加密技術。

雲端金鑰管理的重要性

在雲端環境中,資料加密是保護資料資產的重要手段。然而,加密資料需要妥善管理金鑰。幸運的是,雲端服務提供了多種金鑰管理方案。

金鑰管理的挑戰

加密資料無法有效壓縮,如果需要壓縮,應在加密前進行。傳統的本地環境通常會使用硬體安全模組(HSM)來儲存金鑰,但HSM價格昂貴。

雲端金鑰管理選項

雲端環境提供了多種金鑰管理選項,包括專用HSM和金鑰管理服務(KMS)。KMS是一種多租戶服務,使用HSM在後端保護金鑰。

主要雲端服務供應商的金鑰管理選項

供應商專用HSM選項金鑰管理服務
Amazon Web ServicesCloudHSMAmazon KMS
Microsoft AzureKey Vault(軟體金鑰)
Google Compute PlatformCloud KMS
IBM CloudCloud HSMKey Protect

正確使用KMS

正確使用KMS需要謹慎規劃。最簡單的方法是生成金鑰,加密資料後將金鑰存入KMS,並將加密資料寫入磁碟。然而,這種方法有兩個主要問題:

  1. 對KMS造成巨大負擔。
  2. 安全刪除資料需要信任KMS能夠徹底刪除金鑰。

為瞭解決這些問題,通常會使用兩級金鑰:金鑰加密金鑰和資料加密金鑰。金鑰加密金鑰用於加密資料加密金鑰,而加密後的資料加密金鑰則與資料一起儲存。

金鑰管理的類別比

想像一下出售房屋的過程。房屋鑰匙就像資料加密金鑰,可以直接存取房屋(資料)。房仲會將鑰匙放入門上的鑰匙盒,並用密碼保護,密碼就像金鑰加密金鑰。房仲服務就像金鑰管理服務。

實務上的考量

在實務上,金鑰管理需要考慮多種因素,包括安全性、效能和成本。選擇合適的金鑰管理方案對於保護雲端資料資產至關重要。

程式碼範例:使用KMS進行金鑰管理

import boto3

# 建立KMS客戶端
kms = boto3.client('kms')

# 生成資料加密金鑰
response = kms.generate_data_key(
    KeyId='alias/your-key-alias',
    KeySpec='AES_256'
)

# 取得加密後的資料加密金鑰
encrypted_data_key = response['CiphertextBlob']

# 將加密後的資料加密金鑰與資料一起儲存
# ...

#### 內容解密:
此範例程式碼使用了AWS KMS服務來生成資料加密金鑰首先建立了一個KMS客戶端然後呼叫`generate_data_key`方法生成一個AES-256位元的資料加密金鑰。`KeyId`引數指定了用於加密資料加密金鑰的金鑰別名。`KeySpec`引數指定了資料加密金鑰的規格生成的加密後的資料加密金鑰被儲存在`CiphertextBlob`欄位中可以與資料一起儲存

資料加密與金鑰管理在雲端環境中的重要性

在雲端運算的世界中,資料保護已成為一項至關重要的任務。為了確保資料的安全,企業和組織需要採用有效的資料加密和金鑰管理策略。本文將探討資料加密和金鑰管理的原理、實務應用以及其在雲端環境中的挑戰。

資料加密的基本原理

資料加密是指將明文資料轉換成密鑰,以防止未經授權的存取。加密演算法使用金鑰對資料進行加密和解密。金鑰管理是確保金鑰的安全儲存、分發和使用,以防止金鑰被洩露或濫用。

雲端環境中的資料加密

在雲端環境中,資料加密可以分為伺服器端加密和客戶端加密。伺服器端加密是由雲端服務提供商負責加密和解密資料,而客戶端加密則是由客戶端應用程式負責加密和解密資料。

伺服器端加密

伺服器端加密的優點是簡便易用,雲端服務提供商會自動處理金鑰管理和加密解密操作。然而,這種方法的安全性取決於雲端服務提供商的安全控制措施。

客戶端加密

客戶端加密提供了更高的安全性,因為資料在傳輸到雲端之前已經被加密。然而,這種方法需要客戶端應用程式負責金鑰管理和加密解密操作,增加了實作的複雜度。

金鑰管理的重要性

金鑰管理是資料加密安全的關鍵。金鑰洩露或被濫用將導致資料被未經授權的存取。金鑰管理包括金鑰的產生、儲存、分發、使用和銷毀等過程。

密碼學擦除

密碼學擦除是一種快速銷毀資料的方法。透過復原或刪除用於加密資料的金鑰,可以使資料變得不可還原。這種方法比傳統的資料銷毀方法更快、更有效。

加密如何抵禦不同型別的攻擊

攻擊者獲得對實體媒體的未經授權存取

加密可以保護儲存在實體媒體上的資料,即使攻擊者獲得了對媒體的存取權。

攻擊者獲得對平台或儲存系統的未經授權存取

加密可以保護儲存在雲端儲存系統中的資料,即使攻擊者獲得了對儲存系統的存取權。

此圖示展示了資料加密和解密的流程,以及金鑰管理和雲端儲存的作用。

重點整理

  • 資料加密是保護雲端資料安全的重要手段。
  • 金鑰管理是確保資料加密安全的關鍵。
  • 伺服器端加密和客戶端加密各有其優缺點。
  • 密碼學擦除是一種快速銷毀資料的方法。
  • 企業和組織需要根據自己的安全需求選擇合適的加密策略。

內容解密:

上述內容展示了雲端環境中資料加密和金鑰管理的重要性,以及不同型別的攻擊和對策。圖表清晰地展示了資料加密和解密的流程,以及金鑰管理和雲端儲存的作用。重點整理部分總結了文章的主要觀點。

資料保護策略:雲端環境中的加密與風險管理

在規劃雲端策略時,瞭解您擁有的資料型別至關重要,不論是明顯還是非明顯的部分。根據資料被讀取、修改或刪除時對您的影響進行分類別。組織內部需就「標籤字典」中使用的標籤達成一致,並利用雲端供應商提供的標籤功能來標記包含資料的資源。

加密策略的選擇

決定加密策略的最佳時機是在建立儲存例項之前,因為事後更改可能相當困難。大多數情況下,您應該使用雲端供應商的金鑰管理系統來管理加密金鑰,並在儲存服務中使用內建加密(如果可用的話),同時承擔儲存服務可能被攻破的風險。如果您需要在儲存資料之前自行加密,請僅使用經過嚴格測試的安全演算法實作。

程式碼範例:使用雲端供應商的金鑰管理系統

import boto3

# 建立 KMS 使用者端
kms = boto3.client('kms')

# 建立新的 KMS 金鑰
response = kms.create_key(
    Description='用於加密敏感資料的金鑰',
    KeyUsage='ENCRYPT_DECRYPT',
    Origin='AWS_KMS'
)

# 取得金鑰 ID
key_id = response['KeyMetadata']['KeyId']

print(f"已建立 KMS 金鑰,ID 為:{key_id}")

內容解密:

  1. 使用 boto3 函式庫與 AWS KMS 服務互動,建立一個 KMS 使用者端。
  2. create_key 方法用於建立新的 KMS 金鑰,並指定金鑰的描述、使用方式和來源。
  3. 從回應中提取金鑰 ID,用於後續的加密操作。

風險與控制措施

仔細控制可以存取金鑰的使用者和系統,並設定警示,以便在金鑰被以異常方式存取時通知您。這將提供額外的保護層,並使您能夠在完成資料處理後輕鬆地進行密碼學擦除。

資料保護層級

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title 雲端資料資產安全防護與風險管理

package "安全架構" {
    package "網路安全" {
        component [防火牆] as firewall
        component [WAF] as waf
        component [DDoS 防護] as ddos
    }

    package "身份認證" {
        component [OAuth 2.0] as oauth
        component [JWT Token] as jwt
        component [MFA] as mfa
    }

    package "資料安全" {
        component [加密傳輸 TLS] as tls
        component [資料加密] as encrypt
        component [金鑰管理] as kms
    }

    package "監控審計" {
        component [日誌收集] as log
        component [威脅偵測] as threat
        component [合規審計] as audit
    }
}

firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成

@enduml

此圖示展示了資料在不同層級中的流動,以及加密層如何保護資料。

績效與可用性考量

加密可能會因額外的處理時間而降低效能,但幸運的是,這不再是一個大問題。硬體成本低廉,且所有主要的晶片製造商都在其 CPU 中內建了某種形式的硬體加速功能。效能問題很少成為不加密資料的好藉口,但您只能透過使用真實世界的控制措施進行測試來確定。

重點摘要

  1. 分類別資料:瞭解您擁有的資料,並根據其敏感性進行分類別。
  2. 選擇加密策略:在建立儲存例項之前決定加密策略,使用雲端供應商的金鑰管理系統。
  3. 控制金鑰存取:仔細控制可以存取金鑰的使用者和系統,並設定警示。
  4. 測試效能影響:透過真實世界的測試來瞭解加密對效能的影響。

透過實施這些策略,您可以在雲端環境中有效地保護您的資料,同時平衡安全性和效能需求。