前言

說起公有云安全,大家總是會想到Antiddos,waf,主機安全,態勢感知這些安全軟件或服務。這些東西是重要的安全能力,但對公有云來說,僅看到這些,是非常不全面的。公有云作為一種替代傳統IDC網絡的基礎設施,在設計之初,就對安全有了充分的考慮,并對主要功能做了完整的實現。租戶可以基于這些實現,云設計,配置自己的網絡和應用,以滿足安全要求和基礎防護,這些是云安全的基礎。

云上應用的設計,需要重點考慮權限管理及訪問控制,嚴格的網絡隔離,數據的生命周期安全,安全檢測與響應,安全合規等。這些設計,要充分參考和使用云廠商提供的基礎能力,并結合自身要求及成本要求,形成完整的安全方案,并能夠持續檢查。

本文基上以上考慮,介紹云廠商提供的安全能力和使用方法。

注:相關功能各個云在方案上大體一致,若無特殊說明,本文以華為云為例。

第一章 安全責任共擔模型

傳統的機房,網絡,硬件,軟件都歸一個組織所有,所以安全責任非常清晰。但到了公有云環境,部分基礎設施由云提供商(CSP)掌握,部分虛擬機,操作系統,應用由客戶掌握,如何分工及配合,保持安全無縫連接,顯得尤為重要。

為了解決這個問題,AWS首先制定并發布了責任共擔模型(Shared Security Responsibility Model),用于明確云廠商和客戶之間的責任分工,之后,各云廠商均發布發相關的策略,并且隨時時間推進,策略也在不停進化。

1.1 AWS模型定義 

AWS IaaS安全責任共擔模型

AWS 負責“云本身的安全” – -AWS 負責保護運行所有 AWS 云服務的基礎設施。該基礎實施由運行 AWS 云服務的機房、硬件、軟件、網絡和設備、底層軟件等組成。簡單地說,在VM及虛擬網絡以下,安全責任由AWS負責。

客戶負責“云內部的安全” – 客戶責任由客戶所選的 AWS 云服務確定。這決定了客戶在履行安全責任時必須完成的配置工作量。

對上圖的進一步解讀,由上至下:Customer Data,客戶的數據,責任人完全在客戶。AWS提供了存儲能力,比如S3,S3提供訪問控制,加密,異地復制等能力,具體采取什么手段和措施,由客戶根據自己的需要來實施,并負擔相應的成本。

Platform,Applications,是指客戶的平臺和應用,這些運行于AWS之上,可以應用AWS提供的能力,但結果完全由客戶負責。

 Identity & Access Management(IAM)。可以認為IAM分成兩類,一個是AWS提供的IAM,這是一個完整的身份管理系統,但AWS只提供了系統,基于該系統的配置及信息維護,由客戶完全負責。另外,IAM提供了對接外部IAM的能力,比如AD域控,以更適合企業的管理模式,此類能力,也完全由客戶配置和負責。(IAM對云非常重要,后邊會專題講)

Operating Systems。AWS的Amazon Elastic Compute Cloud (Amazon EC2)提供了虛擬機及根據客戶需求安裝的操作系統,但操作系統的安全,包括帳號管理,補丁,安全加固等相關工作,需要客戶自己完成。

Network & Firewall Configration。AWS 提供了虛擬網絡及其之上的VPC,子網,ACL,安全組等,客戶需要準確設計配置自己的網絡,以確保正確的隔離和防護。AWS還提供相關自營或第三方安全服務,如防火墻,IDS,主機安全等,均由客戶自行選擇配置。

Client Side Data Encrytption & Data integrity Authtication 客戶端數據,在云外,客戶自己處理。

Server Side Encryption (File system and/or data) 服務端的數據(一般指ECS或裸金屬類服務器內,包含硬盤和文件系統),需要加密,可以采用AWS的加密方案(內置提供,需要配置),或其它三方的加密方案(比如,Bitlock),由客戶按需求處理。

Network Traffic Protection (Encryption,integrity,Identity) AWS給客戶提供的網絡默認不加密,與普通企業的網絡基本一致,客戶如果需要加密,完整性保護等,需要自己實現相關功能。

簡單總結,責任共擔模型暗含一個基本規則,那就是權限在誰手上,安全責任在誰手上。比如:在ECS上安裝一個mysql數據庫,從操作系統,到mysql的所有權限,都在客戶手上,那么所有的安全責任也在客戶手上。如果申請一個RDS的mysql數據庫服務,則操作系統的權限在云廠商手上,相關的安全責任由云廠商負責,客戶只負責mysql內部的權限管理和配置基本就可以。

這個規則比較合理,所以,安全責任模型已經被各云廠商和客戶接受。

1.2 華為云安全責任模型

上圖可以看出,在華為云的責任模型里,租戶數據的安全同樣由租戶負責,平臺安全和應用安全則非常強調租戶的定制配置,本質上,和AWS的模型是一致的。

參考鏈接 https://www.huaweicloud.com/securecenter/compliance/shared-responsibility-model.html

1.3 Azure安全責任模型

Azure的模型強調的共同的部分,尤其是PaaS的部分比較多,包括Network controls,Applications和Identity and directory infrastructure。這些部分有個共同的特征,是微軟開發,客戶配置,配置依賴于具體的實現,所以可以這么理解,安全配置的責任仍然是客戶的,但相關功能出問題,也可能是微軟的問題,雙方共同責任。

參考鏈接 https://docs.microsoft.com/zh-cn/azure/security/fundamentals/shared-responsibility

第二章 IAM

無論哪個組織,哪個系統,權限管理都是個極其挑戰的問題。統一身份認證(Identity and Access Management,簡稱IAM)是云提供權限管理的基礎服務,可以幫助您安全地控制云服務和資源的訪問權限。

IAM通過對用戶,用戶組,策略等相關資源的管理,可以使租戶完整的控制對云資源的訪問,包括誰(主體)在特定條件下(Attribution) 對某資源(客體)的訪問是否被允許(Action)。IAM是云的最基本組件,是云上權限管理的基礎,公有云基本都實現了基于RBAC或ABAC的訪問控制,并支持第三方IAM的擴展。正確理解和配置IAM,是云上安全的前提。 

2.1 常見訪問控制模型

在業界,訪問控制模型有多種,主要包括DAC,MAC,RBAC,ABAC等。

自主訪問控制(Discretionary Access Control,DAC)是一種接入控制服務,通過執行基于系統實體身份及其到系統資源的接入授權。DAC常見于文件系統,LINUX,UNIX、WindowsNT版本的操作系統都提供DAC的支持。在實現上,先對用戶鑒權,然后根據控制列表(ACL)決定用戶能否訪問資源。用戶控制權限的修改通常由特權用戶或者管理員組實現。DAC最大缺陷就是對權限控制比較分散,比如無法簡單地將一組文件設置統一的權限開放給指定的一群用戶。主體的權限太大,無意間就可能泄露信息。

強制訪問控制(Mandatory Access Control,MAC)在計算機安全領域指一種由操作系統約束的存取控制,目標是限制主體或發起者訪問或對對象或目標執行某種操作的能力。在實踐中,主體通常是一個進程或線程,對象可能是文件、目錄、TCP/UDP端口、共享內存段、I/O設備等。主體和對象各自具有一組安全屬性。每當主體嘗試訪問對象時,都會由操作系統內核強制施行授權規則——檢查安全屬性并決定是否可進行訪問。任何主體對任何物件的任何操作都將根據一組授權規則(也稱策略)進行測試,決定操作是否允許。MAC屬于強訪問控制,很難繞過。象Linux的Selinux就是MAC的典型實現。

DAC和MAC適合小規模的系統,隨著用戶數的增加,策略管理會越來越復雜。為了提升管理效率和準確性,基于角色的訪問控制(Role Based Access Control,RBAC)應運而生。RBAC是一種用于控制用戶在公司 IT 系統中能夠執行的操作的方法。RBAC的核心是角色(Role),在這個模型中,訪問權限是由為每個個體分配角色的人預先隱式定義的,但最終由客體屬主在確定角色權限時明確。一個角色擁有一個權限組,可以執行一定操作。新增或改變一個成員,只需要將其賦予某一個角色就行。比如,財務部員工都有A B C三個權限,先把ABC的權限賦予給一個角色(財務部普通員工),這時候財務部增加一個員工,只需要將這個員工分配為財務部普通員工的角色,即自動擁有ABC三個權限。如果要讓財務部普通員工增加或減少權限,只需要在角色中增加或減少權限,即自動應用到財務部所有普通員工上,非常高效和準確。

但RBAC仍然有局限性,一是隨著組織的增大,角色越來越多,會越來越難管理。另外,隨著技術的發展,我們需要更靈活的管理方式。比如,有些權限只能在公司用,遠程接入公司不能用,或者有些權限只能在上班時間用,下班時間不能用等等,這些在傳統的RBAC模型里無法實現,為了應對這種更靈活的需求,基于屬性的訪問控制開始發展。

2014年,Nist 800-162(Guide to Attribute Based Access Control (ABAC) Definition and Considerations )正式發布,對ABAC做出了準確的定義和描述。

ABAC 是一種邏輯訪問控制方法,其中執行一組操作的授權是通過評估與主體、客體、請求的操作相關的屬性來確定的,在某些情況下,對于給定的一組屬性,還根據描述允許操作的策略、規則或關系來評估環境條件是否允許訪問。(ABAC is a logical access control methodology where authorization to perform a set of operations is determined by evaluating attributes associated with the subject, object, requested operations, and, in some cases, environment conditions against policy, rules, or relationships that describe the allowable operations for a given set of attributes. ) 

屬性是主體、客體或環境條件的特征。屬性信息以“名稱-值”對的形式定義。

一個典型ABAC的系統如下圖  

說明:圖中Subject 是主體,Object是客體,ABAC Access Control Mechanism(ACM)是策略控制機制,Access Control Policy(ACP)是預定義策略,Environment,Subject,Object均有屬性特征,可用于ACM的判斷。對于主體對客體的每一次訪問要求,ACM是根據預定義策略(ACP)和主體屬性、客體屬性,環境屬性綜合判斷,該訪問是否允許。

在ABAC中,策略定義及策略執行可以根據主體屬性,客體屬性,環境條件等要素。顯然,這種定義和實現非常靈活。如果把角色(Role)也作為主體屬性之一的話,可以認為,ABAC對RBAC是有兼容能力的,ABAC是對RBAC的擴展。

簡單舉個例子,RBAC是有權限就可以執行,沒權限就拒絕。但在ABAC中,每一次允許或拒絕是根據一系列的條件來決定的,比如,公司內部辦公可以訪問絕密級文件,但遠程辦公可以訪問機密級文件。財務部的員工可以訪問財務部的絕密級文件,行政部的員工可以訪問財務部的機密文件。上述內容可以定義為策略,按這個策略,行政部的員工無論什么條件下無法訪問財務部的絕密文件,財務部的員工在公司內工作可以訪問絕密級文件,但如果居家辦公,遠程訪問則只能查閱機密級文件。以上規則的定義遠比RBAC在靈活得多。

目前看, 各云廠商基本采用以RBAC為主體,可以添加訪問控制條件的策略方式,可以認為是ABAC的訪問控制模型。

2.2 IAM功能介紹

訪問控制模型是比較抽象的概念,在一個訪問控制系統實現的時候,一般通過4A(帳號 Account,授權Authorization,鑒權Authentication,審計Audit)的形式呈現,我們從這四個緯度展開分析IAM。

2.2.1 帳號(Account)

當您首次使用華為云時注冊的帳號,該帳號是您的華為云資源歸屬、資源使用計費的主體,對其所擁有的資源及云服務具有完全的訪問權限,可以重置用戶密碼、分配用戶權限等。帳號統一接收所有IAM用戶進行資源操作時產生的費用賬單。

帳號不能在IAM中修改和刪除,您可以在帳號中心修改帳號信息,如果您需要刪除帳號,可以在帳號中心進行注銷。帳號相當于超級管理,且兼具計費能力,一般應避免在業務中使用。

帳號在登錄后,右上角的帳號信息中可以找到 

IAM用戶(IAM Users)

由帳號在IAM中創建的用戶,是云服務的使用人員,具有獨立的身份憑證(密碼和訪問密鑰),根據帳號授予的權限使用資源。這個相當于RBAC中的用戶。用戶組則相當于RBAC里的Role。

IAM用戶和用戶組可以從IAM服務中找到。在控制臺選IAM服務: 

IAM 用戶組(IAM Group)

用戶組是用戶的集合,IAM可以通過用戶組功能實現用戶的授權。您創建的IAM用戶,加入特定用戶組后,將具備對應用戶組的權限。當某個用戶加入多個用戶組時,此用戶同時擁有多個用戶組的權限,即多個用戶組權限的全集。(若多個組有權限沖突,以最先執行到的策略為準),這個相當于RBAC中的角色。 

身份憑證

身份憑證是識別用戶身份的依據,您通過控制臺或者API訪問華為云時,需要使用身份憑證來通過系統的鑒權認證。身份憑證包括密碼和訪問密鑰,您可以在IAM中管理自己以及帳號中IAM用戶的身份憑證。密碼:常見的身份憑證,密碼可以用來登錄控制臺,還可以調用API接口。訪問密鑰:即AK/SK(Access Key ID/Secret Access Key),調用API接口的身份憑證,不能登錄控制臺。訪問密鑰中具有驗證身份的簽名,通過加密簽名驗證可以確保機密性、完整性和請求雙方身份的正確性。

2.2.2 授權Authorization

權限

權限是由策略定義的。策略是IAM提供的一種細粒度授權的能力,可以精確到具體操作、資源、條件等。使用基于策略的授權是一種更加靈活地授權方式,能夠滿足企業對權限最小化的安全管控要求。例如:針對ECS服務,管理員能夠控制IAM用戶僅能對某一類(批)云服務器的資源進行指定的管理操作。策略包含系統策略和自定義策略。云服務在根據客戶需求及常見使用方式,為方便客戶使用,在IAM預置了常用授權項,稱為系統策略。如果系統策略無法滿足授權要求,管理員可以根據各服務支持的授權項,創建自定義策略,并通過給用戶組授予自定義策略來進行精細的訪問控制,自定義策略是對系統策略的擴展和補充。目前基本都支持可視化視圖、JSON視圖兩種自定義策略配置方式。

以OBS為例,IAM預置了四種系統權限:

在obsAdmin用戶組中編輯權限,增加上圖中OBS Administrator權限,由該組用戶即擁有OBS的完整控制權限。將userA加入到obsAdmin用戶組中,則userA具備OBS的完整控制權限。

同理,可以將OBSReadOnlyAccess權限加入到obsMonitor用戶組中,把userB加入到obsMonitor用戶組中,則userB只擁有OBS查看的相關權限。

細粒度授權

上述授權是對所有對象的操作,且操作內容均已定義好,如果需要更精細的權限管理,可以選擇自定義策略,自定義策略可以實現更細粒度授權。

在IAM中選擇權限管理—權限—創建自定義策略,可以從資源(某個桶),權限(Action), 允許/拒絕,請求條件等來定義一條策略。

比如,我們允許某一個用戶只能在桶上路徑/userpost有上傳權限,可以只選擇上傳權限(object.PutObject),并指定資源 OBS:*.*:object:/userpost。這個策略不限制哪個桶,只限制桶下的目錄。 

如果需要增加更多屬性限制,可以在特定條件中添加。用策略文件可以表示如下

上述策略保存,然后賦予某些組或用戶,就可以實現權限控制。

由于可見,ABAC實現的細粒度權限管理非常靈活。

2.2.3 鑒權Authentication

IAM的策略解析,鑒權的過程均由其內部實現,租戶不需要干預。

需要了解的是,基于API的鑒權方法。

2.2.3.1 API鑒權的使用

相對傳統數據中心部署,云的最大優點是自動化能力,所有的操作不僅可以通過console實現,還可以通過API實現自動化。比如創建刪除虛擬機,網絡,OBS桶等,console上幾乎所有操作,都可以編程實現。以創建ECS為例,可以通過CreateServers實現。

詳見 https://console.huaweicloud.com/apiexplorer/#/apidoc/ECS/CreateServers

其簡單的go 代碼如下:

package main
import (
    "fmt"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    ecs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/region"
)
func main() {
    ak := "<YOUR AK>"
    sk := "<YOUR SK>"
    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()
    client := ecs.NewEcsClient(
        ecs.EcsClientBuilder().
            WithRegion(region.ValueOf("cn-east-3")).
            WithCredential(auth).
            Build())
    request := &model.CreateServersRequest{}
    request.Body = &model.CreateServersRequestBody{
    }
    response, err := client.CreateServers(request)
    if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

其中,  

auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

即實現了鑒權過程。鑒權還支持用戶名/密碼取token的方式,但推薦還是AK/SK的方式。AK/SK可以在 控制臺--我的憑據 中下載。

從上述代碼可以看到,AK/SK會出現在代碼中,或者配置文件中,無論哪種方式,都非常容易泄露,事實上也發生過多次AK/SK在github等網站上泄露的問題。AK/SK的泄露相當于密碼的泄露,如果有人拿到,可以用來做任何該AK/SK權限內的事情,是云安全的TOP風險之一。

解決這個問題有兩個辦法:

1. AK/SK定期輪轉。密碼類憑據丟失問題,解決的最好的辦法是快速輪轉,讓密碼在盡可能短的時間內失效,這樣,即使丟失,造成的損失也會盡可能的小。Ak/sk的輪轉可以通過api來實現。

CreatePermanentAccessKey可以創建一個新的AK/SK. DeletePermanentAccessKey則可以刪除一組AK/SK。UpdatePermanentAccessKey則可以讓一組ak/sk失效或重新生效。

詳情及代碼可以參見 

https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=CreatePermanentAccessKey

2.使用臨時憑據

2.2.3.2 使用ECS委托獲取臨時憑據

既然AK/SK容易丟失,且輪轉是解決問題的辦法,那有沒有更好的辦法來確保安全?答案是使用ECS委托獲得臨時憑據。

元數據MetaData

云上有一個特殊的IP,169.254.169.254,這個IP全網的ECS都可以訪問,并通過這個IP取得本ECS的元數據。比如,如果一個ECS配置彈性IP,直接使用操作系統的命令并不能查到彈性IP的地址,但是可以通過169.254.169.254來獲取,方法很簡單

curl http://169.254.169.254/latest/meta-data/public-ipv4

返回的就是該ECS的彈性IP。通過這個IP可以查詢的元數據有很多,詳見

https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html#section7

委托

委托就是將一個用戶/帳號(委托方)的部分權限,資源,委托給另一個用戶/賬號(被委托方),使被委托方可以使用委托方授權范圍內,使用委托方的權限,對委托方的資源進行管理。

如果你想把運維外包給第三方服務,使用委托做權限管理是個非常合理的方法。

華為云還提供了一種委托,叫做彈性云服務器(ECS)委托,可以把某個權限直接委托給一臺或一組ECS,讓ECS直接具備權限,這個方法可以非常好的規避憑據丟失的風險。

它的原理和流程如下:

然后在ECS里設置使用委托

 

授權完成后,可以在虛擬機里查看

curl http://169.254.169.254/openstack/latest/securitykey

會返回AK,SK,Token等相關信息。類似 

此種方法獲得的臨時憑據有效期短,需要定期刷新,但丟失風險小,同時免了存盤等相關操作,安全性非常高。

更詳細的信息,可以參考 https://support.huaweicloud.com/bestpractice-iam/iam_0511.html

2.2.4 審計 Audit

系統所有的審計信息均保存在云審計服務CTS里。(詳見第六章 合規與審計)

2.2.5 常見安全配置

由于公有云的特點,管理員有最高權限,全球隨時可訪問,導致管理員的密碼,訪問憑據丟失等帶來的風險會非常大,所以,相關安全配置至關重要。基于此,有以下安全建議:

  1. 設置強密碼策略,要求密碼復雜度。密碼最好包括大小寫字母,數字等,同時密碼長度至少為8,并要求定期修改密碼。
  2. 確保管理員帳號啟用MFA 。多因素認證是解決密碼丟失的好辦法,即使密碼丟失,有第二驗證手段,會有效地防止權限失控。
  3. 管理員帳號禁用 AK/SK 。AK/SK是API權限入口,所有的API操作都不應該使用管理員,應該使用IAM用戶并對每種使用API的應用做嚴格的訪問控制。
  4. 創建非管理員權限的 IAM 用戶。日常工作應該盡量避免使用管理員帳號,相關的操作建立IAM用戶和用戶組,以確保權限最小化。
  5. 啟用登錄保護。IAM可以設置會話超時策略,帳號鎖定策略,帳號停用策略,最近登錄提示等,相關策略有助于確保登錄安全。

以上設置可以在 帳號-安全設置 中設置。

第三章 虛擬網絡

相對傳統網絡,云上的虛擬網絡帶來了最大的不同。傳統網絡一旦設計實施完成,基本固定,改動是個非常挑戰的工作,一般需要多級申請,多人審批及操作,靈活性差,但相關的改配風險也小。

云的網絡則不同,所有的網絡連接,隔離,ACL等,全部通過軟件配置完成,非常高效,改變非常容易,管理難度大。比如,可能某個人有意或無意創建一個虛擬機,帶上一個彈性IP,網絡就產生了一個對外的接口,導致攻擊面的改變。所以,正確設計、配置、使用及持續監控網絡變化,對云網絡是非常挑戰的問題。

3.1 主要概念介紹

Region(區域):

從地理位置和網絡時延維度劃分,同一個Region內共享彈性計算、塊存儲、對象存儲、VPC網絡、彈性公網IP、鏡像等公共服務。Region分為通用Region和專屬Region,通用Region指面向公共租戶提供通用云服務的Region,比如北京一,就是一個通用Region;專屬Region指只承載同一類業務或只面向特定租戶提供業務服務的專用Region,比如,金融Region等。

AZ(Availability Zone 可用區):

個AZ是一個或多個物理數據中心的集合,有獨立的風火水電,AZ內邏輯上再將計算、網絡、存儲等資源劃分成多個集群。一個Region中的多個AZ間通過高速光纖相連,以滿足用戶跨AZ構建高可用性系統的需求。AZ內的連接時延很低。

VPC (Virtual Private Cloud)虛擬私有云

用戶在華為云上申請的隔離的、私密的虛擬網絡環境。用戶可以基于VPC構建獨立的云上網絡空間,配合彈性公網IP、云連接、云專線等服務實現與Internet、云內私網、跨云私網互通。一個VPC相當于一個專屬網絡。

用戶在創建虛擬私有云VPC時,需要指定虛擬私有云VPC使用的私網網段。當前虛擬私有云VPC支持的網段有10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24。

VPC的網絡容量:每個VPC內實際使用的IP地址建議不超過5000個。超過需要考慮使用多VPC來承載業務。

VPC互通

PC間是隔離性大于連通性:VPC間默認隔離,確實需要互通,在Region內,可以通過VPC Peering互通,跨Region的場景,可以通過云連接(CC)互通。

Subnet 子網

子網是虛擬私有云下管理云資源的網絡平面,所有的云資源(例如云服務器、云數據庫等)都必須部署在子網內。

子網的網段設置都在VPC的網段之內。

默認情況下,同一個VPC的所有子網內的彈性云服務器均可以進行通信,不同VPC的彈性云服務器不能進行通信。

網間是連通性大于隔離性:子網間默認互通,但可以通過訪問權限控制實現隔離。

Security Group 安全組

它是一個邏輯上的分組,為同一個VPC內具有相同安全保護需求并相互信任的彈性云服務器提供訪問控制。安全組創建后,用戶可以在安全組中定義各種訪問規則,當彈性云服務器加入該安全組后,即受到這些訪問規則的保護。系統會為每個用戶默認創建一個默認安全組,默認安全組的規則是在出方向上的數據報文全部放行,入方向訪問受限,安全組內的彈性云服務器不用添加規則即可互相訪問;

NACL (網絡訪問控制)

網絡NACL是一個子網級別的可選安全層,通過與子網關聯的出方向/入方向規則控制出入子網的數據流。

網絡ACL與安全組類似,都是安全防護策略,當您想增加額外的安全防護層時,就可以啟用網絡ACL。安全組對云服務器、云容器、云數據庫等實例進行防護,網絡ACL對子網進行防護,兩者結合起來,可以實現更精細、更復雜的安全訪問控制。

以上各部分的關系大體如圖所示

彈性公網IP(Elastic IP,簡稱EIP)

提供獨立的公網IP資源,包括公網IP地址與公網出口帶寬服務。可以與彈性云服務器、裸金屬服務器、虛擬IP、彈性負載均衡、NAT網關等資源靈活地綁定及解綁。擁有多種靈活的計費方式,可以滿足各種業務場景的需要。

終端節點(VPC Endpoint)

可以在VPC內提供便捷、安全、私密的通道與終端節點服務(華為云服務、用戶私有服務)進行連接,該服務使用云內部網絡,無需彈性公網IP,提供性能更加強大、更加靈活的網絡。典型連接如圖:

連接OBS,用VPC Endpoint是最好選擇。

3.2 一個典型的網絡架構的策略配置

我們用一個實例看一下相關組件的使用及配置。如下圖,假設A企業有一個面向互聯網的Web服務,Web服務器由ECS搭建,下邊連接Redis和Mysql數據庫。該系統同時還有一個測試環境,生產和測試有部分連接的需求。所有的管理通過云堡壘機進行。

 按上述拓撲,Subnet-生產 主要隔離要求如下:

1)所有的管理通過云堡壘機完成,所以所有節點的22端口只對堡壘機開放。

2)Redis 的6379端口只對Web服務器開放,即SG2只對SG1開放6379端口。

3)Mysql的3306端口只對Web服務器開放,即SG3只對SG1開放3306端口。

4)SG1對互聯網開放80端口,其它端口均不開放。

5)禁止測試子網訪問生產子網。

按以上要求,SG1的安全組配置如下:(192.168.5.5為云堡壘機的地址)

SG2的安全組配置如下:

SG3的配置與SG2類似,可以參考。

禁止測試子網訪問生產子網,可以使用NACL策略,在subnet-生產上設置如下: 

由于ACL按優先級執行,優先級數字越小,執行優先級越高,*為默認規則,優先級最低。以上策略,第一條,拒絕所有測試子網的訪問,第二條,允許外部對80端口的訪問,第三條,其它全部拒絕。

網絡ACL,加上安全組,可以比較完善地完成訪問控制的要求。

通過以上配置,攻擊面已經基本縮到最小,對外只有一個業務端口,該端口外部可以接WAF和Antiddos,管理控制用堡壘機,有比較好的防護。參考上述方案可以對大部分應用場景做好防護。

注1:192.168.5.5為堡壘機IP地址,可按需要修改。注2:若要限制SG1的80端口只能從ELB訪問,則可需要修改上述80端口策略,增加ELB的端口限制,或允許子網網段訪問(將ELB創建到Subnet-生產中)。一般情況下web服務需要使用waf防護,需要基于waf要求確定安全組策略。

3.3 跨Region網絡連接及云上云下的連接

云連接(Cloud Connect)為用戶提供一種能夠快速構建跨區域VPC之間以及云上多VPC與云下多數據中心之間的高速、優質、穩定的網絡能力,幫助用戶打造一張具有企業級規模和通信能力的全球云上網絡。

云專線(Direct Connect)用于搭建企業自有計算環境到華為云用戶計算環境的高速、穩定、安全的專屬通道。您可使用專線接入服務將本地數據中心的計算機與華為云上的云服務器或托管主機實現私網相連,實現安全可靠的混合云部署。

一個典型的多連接環境如上圖,企業IDC通過云專線接入某一個Region的VPC(云專線走運營商網絡,需要單獨購買,云內各Region可以采用云連接(CC)互通。

云連接可以直接連通VPC的子網,所以,子網的ACL可以在云連接中生效,作為安全控制手段。

云連接的作用類似于路由器,所以在使用云連接前,各VPC規劃的IP不能沖突(至少保證要連接的IP段不能沖突)

3.4 對外連接

NAT網關 (NAT Gateway) 可為您提供網絡地址轉換服務,使用NAT網關可為您節約EIP資源,通過NAT網關還可以實現VPC內云主機與遠端私網(外部數據中心或其他VPC)互相訪問。

NAT網關分為SNAT和DNAT兩個功能。

  • SNAT功能通過綁定彈性公網IP,實現私有IP向公有IP的轉換,可實現VPC內跨可用區的多個云主機共享彈性公網IP,安全,高效的訪問互聯網。
  • DNAT功能綁定彈性公網IP,可通過IP映射或端口映射兩種方式,實現VPC內跨可用區的多個云主機共享彈性公網IP,為互聯網提供服務。

一般分為公網NAT網關和私網NAT網關兩種,功能基本一致,區別是公網NAT網關是很多租戶公用的,私網NAT網關是租戶獨享的。

第四章 數據安全

隨著數據作為生產要素的重要性凸顯,數據安全的地位不斷提升,尤其是隨著《數據安全法》的正式頒布,數據安全在國家安全體系中的重要地位得到了進一步明確。

數據安全是安全最核心的內容。所有網絡安全,信息安全系統,最終需要保護的最重要的資產是數據。安全里邊最重要的技術,加密,及數據安全里邊很重要的領域,DLP,都是用來保護數據的。最近幾年令業界最為頭疼的勒索病毒,針對的是數據。數據泄露造成的損失也非常大。針對數據安全的問題,公有云有相關的設計。

4.1 數據生命周期安全

GB/T37988-2019 信息安全技術數據安全能力成熟度模型 定義了數據生命周期的六個階段:

  • 數據采集:組織機構內部系統中新產生數據,以及從外部系統收集數據的階段。
  • 數據傳輸:數據從一個實體通過網絡流動到另一個實體的階段。
  • 數據存儲:數據以任何數字格式進行物理存儲或云存儲的階段。
  • 數據處理:組織機構在內部針對數據進行計算、分析、可視化等操作的階段。
  • 數據交換:組織機構與外部組織機構及個人進行數據交互的階段。
  • 數據銷毀:通過對數據及數據存儲介質通過相應的操作手段,使數據徹底消除且無法通過任何手段恢復的過程

同時,對數據生命周期的各階段也給出了關鍵處理過程的要求。

4.2 數據安全治理

數據安全,不僅僅是個技術問題,更重要的是個管理問題,技術與管理結合,形成數據安全治理。

對一個組織來說,數據安全治理是指在組織的數據安全戰略的指導下,為確保數據處于有效保護和合法利用的狀態,多個部門協作實施的一系列活動集合。包括建立組織數據安全治理團隊,制定數據安全相關制度規范,構建數據安全技術體系,建設數據安全人才梯隊等。它以保障數據安全、促進開發利用為原則,圍繞數據全生命周期構建相應安全體系,需要組織內容利益相關方統一認識,協同工作,平衡數據安全與發展。

數據安全治理的目標是在合規保障及風險管理的前提下,實現數據的開發利用,保障業務的持續健康發展,確保數據安全與業務發展的雙向促進。

可見,數據安全的治理是一個系統的管理過程和技術方案。本文只討論云上的技術方案部分。

注:以上內容來源于信通院《數據安全治理實踐指南1.0》http://www.caict.ac.cn/kxyj/qwfb/ztbg/202107/P020210720377857004616.pdf

4.3 公有云與數據存儲相關的服務

4.3.1 EVS(Elastic Volume Service) 云硬盤服務

可以為云服務器提供規格特性豐富、性能優越、安全可靠并且可彈性擴展的塊存儲服務,可滿足不同場景的業務需求,適用于分布式文件系統、開發測試、數據倉庫以及高性能計算等應用場景。

簡單地說,EVS就是一個可以掛到虛擬機上或服務器上的硬盤,并可根據需要動態擴展。EVS是塊存儲系統(相當于傳統的SAN),不是文件存儲系統。有高吞吐量,低時延的特點。并支持自動備份,加密等安全特性。

4.3.2 彈性文件服務(Scalable File Service)

為用戶的彈性云服務器(ECS)提供一個完全托管的共享文件存儲(相當于傳統的NAS)),符合標準文件協議(NFS),能夠彈性伸縮至PB規模,具備可擴展的性能,為海量數據、高帶寬型應用提供有力支持。

因為有文件系統,SFS支持多節點共享,也支持加密,自動備份等安全功能。

4.3.3 OBS(Object Storage Service)對象存儲系統

是一個基于對象的海量存儲服務,為客戶提供海量、安全、高可靠、低成本的數據存儲能力。

對象存儲源于AWS,相對傳統存儲(SAN,NAS),是一種完全不同的存儲形式。由于其具備低成本,大容量,共享方便,完整的安全設計,是目前互聯網上存儲數據量最大的應用。

對象存儲服務OBS的基本組成是桶和對象。

對象(Object): OBS中數據存儲的基本單位,一個對象實際是一個文件的數據與其相關屬性信息的集合體,包括Key、Metadata、Data三部分:

Key:鍵值,即對象的名稱,為經過UTF-8編碼的長度大于0且不超過1024的字符序列。一個桶里的每個對象必須擁有唯一的對象鍵值。

Metadata:元數據,即對象的描述信息,包括系統元數據和用戶元數據,這些元數據以鍵值對(Key-Value)的形式被上傳到OBS中。

系統元數據由OBS自動產生,在處理對象數據時使用,包括Date,Content-length,Last-modify,ETag等。

用戶元數據由用戶在上傳對象時指定,是用戶自定義的對象描述信息。

Data:數據,即文件的數據內容。

對象的含義非常象一個文件系統里的文件,有名字(鍵值),有屬性(元數據),有內容(數據)。

桶是OBS中存儲對象的容器,每個桶都有自己的存儲類別、訪問權限、所屬區域等屬性,用戶在互聯網上通過桶的訪問域名來定位桶。一個桶看上去象一個文件系統,可以建立各級目錄,可以存儲各種對象。

OBS的權限控制

OBS的權限控制分兩種,一種是基于IAM的控制策略(見IAM部分的細粒度授權),可以指定用戶,用戶組,對某些桶做具體的操作控制。另一種是基于資源的訪問控制,主要控制直接在OBS上進行,但訪問憑據依然用的是IAM的AK/SK,這種一般稱為桶策略,可以控制到具體對象:

1)桶策略在桶中創建,可以指定用戶,目錄,前綴后綴,具體動作,以及附加條件,做出允許或拒絕訪問的控制。

也有Json格式的策略

 非常類似于IAM的策略控制方法,但由于OBS里有更多的桶和對象數據,而IAM里不具備這些信息,所以這里的控制更加精準。

2)桶ACLs

桶ACL是基于帳號或用戶組的桶級訪問控制,桶的擁有者可以通過桶ACL授予指定帳號或用戶組特定的訪問權限。

桶ACL一般用于數據共享,其授權目標為帳號(Account),控制桶可能被哪些用戶讀或寫。

3)在ACL中內置了兩種權限,可以編輯

其中匿名用戶用于無訪問控制的數據分享,需要非常注意。一旦打開,就意味著任何人只要知道或掃描到這個桶的地址,就可以隨意訪問其中的數據。

很多互聯網著名的數據泄露事件都是有意或無意打開了這個控制。

OBS的其它安全特性

1.OBS支持桶加密,打開后,桶里的所有對象均為加密保存。

打開的方式非常簡單,建桶的時候選擇加密就可以

2.OBS支持傳輸加密,可以完整支持https.

3.支持臨時憑據,API調用更安全。

4.支持多版本和跨區域復制,能夠更好地確保數據可用性。

OBS的其它重要特性

OBS支持靜態網站托管功能,開啟后,靜態網頁存放于桶中,可以直接對互聯網開放訪問,并且支持獨立域名。該功能還支持CORS和防盜鏈等功能。

OBS的安全最佳實踐,見https://support.huaweicloud.com/bestpractice-obs/obs_05_2100.html

4.3.4 KMS(密鑰管理系統)

密鑰管理,即密鑰管理服務(Key Management Service, KMS),是一種安全、可靠、簡單易用的密鑰托管服務,幫助您輕松創建和管理密鑰,保護密鑰的安全。

對于數據加密來說,加解密相對來說是容易的,但密鑰管理一直是個比較麻煩的問題,KMS就是解決這個問題的。

KMS通過使用硬件安全模塊HSM(Hardware Security Module)保護密鑰的安全,所有的用戶密鑰都由HSM中的根密鑰保護,避免密鑰泄露。所有的軟件保護,都容易被破解,而HSM有完整的硬件保護,相對安全很多。

KMS對密鑰的所有操作都會進行訪問控制及日志跟蹤,提供所有密鑰的使用記錄,滿足審計和合規性要求。

KMS支持小數據量直接加解密。當您有少量數據(例如:口令、證書、電話號碼等)需要加解密時,用戶可以通過KMS界面使用在線工具加解密數據,或者調用KMS的API接口使用指定的用戶主密鑰直接加密、解密數據。當前支持不大于4KB的小數據加解密。

當有您有大量數據(例如:照片、視頻或者數據庫文件等)需要加解密時,用戶可采用信封加密方式加解密數據,無需通過網絡傳輸大量數據即可完成數據加解密。

加密過程:

1.用戶需要在KMS中創建一個用戶主密鑰。一個用戶在一個KMS里只需要一個主密鑰。

2.用戶調用KMS的“create-datakey”接口創建數據加密密鑰。用戶得到一個明文的數據加密密鑰和一個密文的數據加密密鑰。其中密文的數據加密密鑰是由指定的用戶主密鑰加密明文的數據加密密鑰生成的。

3.用戶使用明文的數據加密密鑰來加密明文文件,生成密文文件。

4.用戶將密文的數據加密密鑰和密文文件一同存儲到持久化存儲設備或服務中。

注:按以上流程,如果用戶主密鑰被刪除,則所有密文無法解決。

解密過程:

1.用戶從持久化存儲設備或服務中讀取密文的數據加密密鑰和密文文件。

2.用戶調用KMS的“decrypt-datakey”接口,使用對應的用戶主密鑰(即生成密文的數據加密密鑰時所使用的用戶主密鑰)來解密密文的數據加密密鑰,取得明文的數據加密密鑰。

若對應的用戶主密鑰被誤刪除,會導致解密失敗。因此,需要妥善管理好用戶主密鑰。KMS支持密鑰輪換功能,如果要更換密鑰,使用密鑰輪換功能來替換主密鑰。

3.用戶使用明文的數據加密密鑰來解密密文文件。

4.3.5 專屬加密(Dedicated Hardware Security Module,DHSM)

是一種云上數據加密的服務,可處理加解密、簽名、驗簽、產生密鑰和密鑰安全存儲等操作。Dedicated HSM提供經國家密碼管理局檢測認證的加密硬件,幫助您保護彈性云服務器上數據的安全性與完整性,滿足FIPS 140-2安全要求。同時,能夠對專屬加密實例生成的密鑰進行安全可靠的管理,也能使用多種加密算法來對數據進行可靠的加解密運算。

可以理解為一個虛擬的加密機,在某些要求使用加密機的場景,可以直接使用。

Dedicated HSM提供以下功能:

  • 生成、存儲、導入、導出和管理加密密鑰(包括對稱密鑰和非對稱密鑰)。
  • 使用對稱和非對稱算法加密和解密數據。
  • 使用加密哈希函數計算消息摘要和基于哈希的消息身份驗證代碼。
  • 對數據進行加密簽名(包括代碼簽名)并驗證簽名。
  • 以加密方式生成安全隨機數據

專屬加密一般對國際通用的摘要和對稱,非對稱加密算法,象SHA256,AES,RSA,及國密的加密算法,象SM1,SM4,SM7,SM2,SM3等,均有較好的支持

金融等行業,對加密機有特定的要求,可以使用專屬加密。

4.3.6 數據安全中心服務(Data Security Center,DSC)

華為云DSC是新一代的云化數據安全平臺,提供數據分級分類、數據安全風險識別、數據水印溯源和數據靜態脫敏等基礎數據安全能力,通過數據安全總覽整合數據安全生命周期各階段狀態,對外整體呈現云上數據安全態勢。

DSC可以直接掃描OBS,EVS,數據庫等的數據,并根據定義進行分類,脫敏等處理,是數據安全合規的重要工具。

4.3.7 數據庫安全服務

數據庫安全服務(Database Security Service,DBSS)是一個智能的數據庫安全服務,基于機器學習機制和大數據分析技術,提供數據庫審計,SQL注入攻擊檢測,風險操作識別等功能,保障云上數據庫的安全

4.4 數據生命周期與云服務安全的結合

再看一下數據的生命周期 

在該周期中,采集是個數據開始的動作,銷毀意味著生命周期的結束。

對數據安全來說,采集的安全,重要的是設計過程,知道采集到的數據是什么,哪些是敏感數據,哪些是一般數據,最好能直接分級分類,以便在后續的處理過程中采取不同的手段和方法來處理。

數據銷毀一般包括數據的擦除和介質的銷毀。機械硬盤數據擦除比較著名的標準是美國國防部的DoD 5220 及德國的 VSITR,都要求對硬盤進行多次的寫入,包括全0,全1,隨機等,以實現硬盤數據的不可恢復。更徹底的方法是介質銷毀,包括對硬盤的銷磁,對機械硬盤,光盤,SSD的硬盤,使用專用粉碎機進行徹底粉碎。在云服務中,數據擦除和介質銷毀均有云服務商完成,個人不需要操作。

但普通租戶的數據在刪除后,介質有可能被分配到其它應用或租戶使用,這時候,理論上有可能被其它租戶讀到。解決這個問題的辦法是加密,數據刪除后,只要再刪除加密密鑰,則數據徹底不可恢復。

數據傳輸過程中的數據保護,一般通過傳輸加密來完成。流量需要租戶自己加密,或者啟用https,對外的傳輸還可以使用vpn等方案來實現數據加密。

數據存儲需要重點解決可用性和保密性的問題。可用性包括備份,異地備份,實時多活等手段。保密性一般包括加密和權限控制。

數據交換則需要控制權限及交換通道的安全。

數據處理在內存中,一般安全手段不是太多,確保處理的機器不被非常控制是關鍵。另外,有類似聯邦學習、多方計算等方法可以使用。

注:云服務商提供的存儲方案,包括硬盤加密,OBS加密等,均為透明加解密,即擁有數據讀權限的人,自動擁有解密權限,所以,訪問控制至關重要。如果要增加更多控制手段,可以采用第三方加密手段。

4.5 典型數據安全網絡架構

 在上圖中,EVS,SFS,OBS的數據實現加密,密鑰由DEW(KMS)實現管理。

數據庫增加數據庫安全審計。

同時,相關的數據定期使用DEW掃描,以發現并處理敏感數據,防止數據泄露及敏感數據明文保存,達到基本的數據安全合規要求。

第五章 防護、檢測與響應

互聯網上的攻擊無處不在,隨著互聯網的發展,網絡攻擊也隨之發展,尤其最近幾年,以勒索軟件為代表的攻擊給重要基礎設施,政府組織,企業等都帶來了巨大損失。

5.1 常見攻擊介紹

針對網絡攻擊,思科整理的攻擊類型主要包括:

惡意軟件

“惡意軟件”一詞用于描述具有險惡意圖的軟件,包括間諜軟件、勒索軟件、病毒和蠕蟲。惡意軟件通常會在用戶點擊危險鏈接或郵件附件時通過漏洞侵入網絡,而這些鏈接或附件隨后會安裝危險的軟件。一旦進入系統內部,惡意軟件會執行以下操作:

阻止對網絡關鍵組件的訪問(勒索軟件)安裝惡意軟件或其他有害軟件通過從硬盤驅動器傳輸數據,隱蔽地獲取信息(間諜軟件)破壞某些組件并使系統無法運行

網絡釣魚

是一種發送欺詐性通信的行為,此類通信往往貌似發自信譽良好的來源,通常是通過電子郵件發送。其目的是竊取信用卡和登錄信息等敏感數據或在受害者的設備上安裝惡意軟件。網絡釣魚是當今日益常見的網絡威脅。

中間人 (MITM) 攻擊

也稱為竊聽攻擊,是攻擊者將自身插入雙方事務中時發生的攻擊。攻擊者中斷流量后,他們會過濾并竊取數據。

MITM 攻擊有兩個常見入口點:

  1. 在不安全的公共 Wi-Fi 網絡中,攻擊者可將自身插入訪客的設備與網絡之間。在不知情的情況下,訪客的所有信息都會經由攻擊者傳輸。
  2. 惡意軟件侵入設備后,攻擊者可以安裝軟件來處理受害者的所有信息。

拒絕服務攻擊

利用大量流量對系統、服務器或網絡發動泛洪攻擊,使其耗盡資源和帶寬,最終導致系統無法滿足正當的請求。攻擊者還可以利用多臺受感染的設備發動此攻擊。這種攻擊也稱為分布式拒絕服務 (DDoS) 攻擊。由于僵尸網絡大量存在,DDoS攻擊非常容易發起,目前仍然是云面臨的主要攻擊類型。

SQL注入

當攻擊者將惡意代碼插入使用結構化查詢語言 (SQL) 的服務器中并強制服務器透露通常不會透露的信息時,即為 SQL 注入攻擊。攻擊者只需在易受攻擊網站的搜索框中提交惡意代碼,即可實施 SQL 注入攻擊。

零日漏洞攻擊

發生在網絡漏洞宣布后但補丁或解決方案還沒來得及實施前。攻擊者在這段時間內以披露的漏洞為目標發起攻擊。零日漏洞威脅檢測需要始終保持警惕。

DNS 隧道

利用 DNS 協議在端口 53 上進行非 DNS 流量通信。它通過 DNS 發送 HTTP 和其他協議的流量。使用 DNS 隧道有各種正當的理由。但是,也存在出于惡意原因使用 DNS 隧道 VPN 服務的情況。攻擊者可能會利用 DNS 隧道將出站流量偽裝成 DNS,隱藏通常通過互聯網連接共享的數據。在用于惡意用途時,攻擊者操縱 DNS 請求,將數據從受感染系統泄露到攻擊者的基礎設施。此外,攻擊者還將其用于從攻擊者基礎設施到受感染系統的命令與控制回調。

https://www.cisco.com/c/zh_cn/products/security/common-cyberattacks.html#~types-of-cyber-attacks

這些攻擊,在傳統網絡上發生,也會在云上發生,是主要的威脅形式。但云上的系統除了面對這些攻擊以外,還有更多的威脅。

CSA(云安全聯盟)每年發布云的TOP 威脅,最新的威脅包括:

1.Insufficient Identity, Credentials, Access, and Key Management (4)

身份,憑據,密鑰等管理不足。身份和權限是安全的根本,憑據則是身份的代表。無論何種情況,丟失憑據,權限錯誤配置,都會帶來巨大的安全問題。

2.Insecure Interfaces and APIs (7)

不夠安全的接口和API。隨著云原生,微服務等的發展,以API為基礎的調用無處不在。API安全的關鍵,一是良好的權限設計,二是嚴格的參數檢查,否則,非常容易被突破。有一些API Gateway的方案對安全有一定的幫助。

3.Misconfiguration and Inadequate Change Control (2)

不合理的配置和變更控制。云的整體架構及實現是通過配置完成的,這意味著實現簡單,同時意味著錯誤也特別容易出現。比如,可能一個不小心的配置,給一個vm加了彈性IP,則網絡即向外暴露了一個攻擊面。Gartner曾斷言,到2025年,云上95%的數據丟失是由錯誤配置導致的。所以,必須謹慎對待配置及嚴格控制變更。

4.Lack of Cloud Security Architecture and Strategy (3)

缺乏合理的安全戰略和架構設計

5.Insecure Software Development

不安全的軟件開發。漏洞大體分成兩類,一類是軟件代碼問題,還有一類是配置問題。漏洞的問題必須通過嚴格的設計和開發流程、規范來解決。當前非常流行的DevSecOps重點解決的就是軟件設計開發的安全問題。

6.Unsecured Third-Party Resources

不安全和三方資源。近一兩年來,供應鏈攻擊越來越多,比較著名的就是Solawinds事件,多家政府單位,大型跨國組織,均受到攻擊。

7.System Vulnerabilities (8)

系統漏洞,包括0Day和NDay漏洞,是攻擊最常用的手段。

8.Accidental Cloud Data Disclosure

意外數據泄露,大部分跟配置有關,有些也跟設計有關。

9.Misconfiguration and Exploitation of Serverless and Container Workloads

對無服務和容器的不合理配置。由于Serverless和容器比較新,且配置復雜,容易出現配置錯誤。

10.Organized Crime/Hackers/APT (11)

有組織的犯罪,黑客和APT攻擊。最難防范的一類攻擊,由于攻擊方能力強,投入大,絕大部分組織在此類攻擊下均不能幸免。西工大遭受美國TAO攻擊就屬于此類。

11.Cloud Storage Data Exfiltration

云存儲數據泄露。近年來,隨著OBS的發展,OBS存儲大量的數據,同時,互聯網可訪問,支持編程接口,且ak/sk容易失竊,造成以上的TOP11威脅基于調查產生,所以在分類上有一些重合,比如,3和9都和配置有關,2和5都和軟件開發有關。但總體表現出各類問題對云安全的影響,目前在業界比較受到認可。

5.2 公有云常用安全服務

5.2.1 DDoS防護

分布式拒絕服務 (DDoS) 攻擊中,攻擊者發出海量實際上并不需要的互聯網流量,耗盡其目標的資源,造成正常流量無法到達其預定目的地。

DDoS是互聯網上最古老的攻擊類型之一,但由于目前僵尸網絡泛濫,導致發動攻擊容易但防護困難,仍然是最難解決的問題之一。

https://www.akamai.com/zh/our-thinking/ddos

據綠盟的統計,2022H1攻擊仍然大幅增加

同時,超過百G的攻擊也持續增加,防護越來越困難。

DDoS攻擊由于流量大,在對云上的租戶發動攻擊時,不僅會攻擊到該租戶,同時可能會導致整個云平臺的流量被打滿,導致很多租戶受影響。所以,各云平臺對DDoS攻擊一般都有快速響應機制,包括:

1.小流量攻擊,一般指小于5Gb/s或10Gb/s,平臺一般會自動啟動過濾清洗,且免費。

2.對于超過上述范圍的攻擊,客戶需要購買DDoS高防服務,否則IP會被拉入黑洞。一旦IP拉入黑洞,該服務將完全無法訪問,攻擊實際上達成了效果。

3.DDoS高防服務是指通過高防IP代理源站IP對外提供服務,將惡意攻擊流量引流到高防IP清洗,確保重要業務不被攻擊中斷。可服務于華為云、非華為云及IDC的互聯網主機。

4.由于DDoS高防服務,需要將流量引入到三方的高防機房清洗,而三方的高防機房離云服務商自己的機房有一定距離,會產生時延,且需要提前配置,使用有一定不便。

5.針對問題4,目前各家云服務商也開始推本地清洗,即在云的入口進行清洗,好處是不增加時延,但防護的能力一般較高防機房要稍弱。

6.更復雜的情況,可以使用階梯調度。針對不同的攻擊流量使用不同的防護類型。

5.2.2 WAF 

Web應用防火墻WAF對網站業務流量進行多維度檢測和防護,結合深度機器學習智能識別惡意請求特征和防御未知威脅,全面避免網站被黑客惡意攻擊和入侵。由于云上web應用眾多,WAF是必備的防護手段。

云上的WAF和傳統WAF技術原理及能力基本一致,不做過多介紹。

5.3 業界常見的云安全防護系統介紹

云安全是個非常大的領域,除了云廠商提供安全服務以外,很多安全公司也提供云上的安全能力。

2018年,Gartner比較了三個重要的云安全產品分類:CWPP,CSPM,CASB.

CWPP,全稱是Cloud Workload Protection Platform,顧名思義,云工作負載安全防護平臺。事實上,云工作負載主要就是指虛機和容器,因此CWPP就是虛機和容器的安全防護產品和解決方案,由于同時涉及到主機安全和網絡安全,覆蓋面很大。

CWPP對云上的工作負載,提供多個維度、全方位的保護能力,Gartner把這種能力分成了8大類別,從上到下,重要程度逐層遞增。

http://blog.nsfocus.net/cloud-cwpp/

目前的情況,很多的主機安全,EDR類,容器類安全方案基本都被歸入CWPP的范圍。

云安全態勢管理 (Cloud Security Posture Management,CSPM) 可有效應對云安全風險和公有云服務配置錯誤,滿足日益增長的企業安全需求。它能夠為企業提供風險評估、可視化、事件響應、合規性、監視和 DevOps 集成支持。在現實中,企業通常利用 CSPM 服務檢測配置不當的資源;識別云應用和服務中的風險活動和非安全活動;提高可見性,幫助安全管理員鑒別和解決云安全問題。

當定義和運行云環境時,用戶通常要配置和維護數千個設置項。隨著云成為今天 IT 界的“常態”,云系統的安全和保護正變得越來越復雜。越來越多的配置錯誤持續發生,常見的配置錯誤象:

  • 過于寬松的安全訪問策略
  • 為非加密存儲桶配置開放訪問權限
  • 不安全的互聯網連接路徑
  • 配置不當的虛擬化網絡功能
  • 每個實例的特定于應用的設置

這些配置錯誤,經常會導致比入侵更嚴重的問題,CSPM持續檢查配置是否出現問題,并對安全態勢作出評估,是非常重要的云安全工具。

CSPM和CWPP有一個根本的區別,在于CSPM通過API取云里的配置數據,而CWPP則直接在應用的操作系統或容器里獲取數據來分析。從CSA的風險來看,CSPM就是針對配置風險來設計的,對配置的持續檢查,以排除風險,對云安全極其重要。但目前國內CSPM剛起步,發展尚不理想。國外的checkpoint,Paloalto等公司,則有比較成熟的方案。

云訪問安全代理(Cloud Access Security Broker,CASB)是位于云服務消費者和云服務提供商(CSP)之間的內部或基于云的策略實施點,用于監視與云相關的活動,并應用與基于云的資源的使用相關的安全性、合規性和治理規則。CASB允許組織將其應用于本地基礎設施的相同類型的控制擴展到云中,并可以組合不同類型的策略實施,例如:

用戶憑據身份驗證,因此僅向批準的云服務提供訪問權限通過加密、令牌化或其他方式保護數據,因此敏感信息不會暴露在云服務或CSP中云服務活動監視,以便記錄、標記和分析用戶和實體的行為,以了解異常使用模式或受損的憑據數據丟失預防(DLP),因此敏感信息不能離開組織的網絡,以及惡意軟件檢測和修復,使敏感信息無法進入組織的網絡。

簡單地說,CASB是在SAAS的前邊加一個反向代理,對訪問實現過濾,以達到安全的目的。

https://jiagoushi.pro/what-casb-cloud-access-security-broker

Gartner的圖很形象的反映了三者的關系:

其中,CSPM負責管理面的安全,CWPP負責數據面的安全,CASB則只負責SaaS服務的安全。

注意,CSPM和CWPP有一些功能名字重合的,比如,都涉及配置管理,合規管理等,但其具體的內涵不太一致。CSPM的配置,重點是通過云平臺實現的配置,比如網絡配置,IAM配置等,它的數據是從云的API獲取的。而CWPP的配置更多是負載(比如虛擬機,容器)等的配置,它的數據是通過agent獲取的。CSPM的配置標準大部分來源于云平臺的最佳實踐,而CWPP的配置標準大部分來源于CIS Benchmark。所以二者是互補關系,而不是沖突關系。所以作為客戶,兩類產品同時需要,就產生了使用上的麻煩。從實際發展看,CSPM和CWPP有逐步融合的趨勢,CNAPP基本就可以看成CWPP+CSPM。

什么是CNAPP?CNAPP是今年新加入Gartner技術成熟度曲線的技術。它是一套用于幫助保障和保護跨開發和生產云原生應用的集成安全和合規功能。

CNAPP集成了多個云原生安全工具和數據源,包括容器掃描、云安全態勢管理、基礎設施即代碼掃描、云基礎設施授權管理和運行時云工作負載保護平臺。

近年來,CASB的聲音相對較弱,主要是隨著網絡架構的變化,向另一個更廣泛的類別延伸,這就是SASE。

安全訪問服務邊緣簡稱 SASE,是一種基于云的 IT 模型,它將軟件定義的網絡與網絡安全功能捆綁在一起,并從單一服務提供商交付。“SASE”一詞由全球研究和咨詢公司 Gartner 在 2019 年提出。

在SASE里,CASB被定義成一個子集。

https://www.cloudflare.com/zh-cn/learning/access-management/what-is-sase/

5.4 一個典型的完整安全防護系統模型

模型說明:

1.對外提供業務的接口,需要部署DDoS防護。如果是Web服務,需要部署WAF防護。

2.主機及容器側,需要部署主機安全類的CWPP。確保配置合規,漏洞及惡意軟件能夠被及時發現和處理。

3.相關存儲的數據需要加密。存儲重點數據的部位需要定期掃描,以確保數據安全合規。

4.數據庫需要部署數據庫安全的相關服務,包括防注入,日志分析等。

5.系統需要開通審計功能。收集所有安全日志,用于大數據分析,以及時發現入侵及其它風險。

6.部署CSPM,實時監控及解決配置風險。

第六章 合規與審計

6.1 什么是合規?

合規是指遵守規則、法律和法規的行為。它適用于國家、行業機構制定的法律和法規要求,也適用于公司內部政策。這些法律法規基本都包括技術和管理的部分。技術和管理都合規,才能算合規。例如,在歐洲設立的機構,或有業務處理歐盟個人數據的主體,均需按GDPR的要求處理個人數據,這些包括技術上的,比如個人數據的識別,加密,脫敏等,也包括管理上的,比如,數據控制者,數據處理者之間需要遵守的協議,相關管理義務等。

合規是安全要求的基礎,是一個普遍存在的商業問題,部分原因是越來越多的法規要求公司保持對合規監管要求的全面了解。為了遵守合規標準,組織必須遵守其自身或政府立法規定的要求或法規。

國外常見的法律法規包括PCI-DSS,HIPAA,GDPR,薩班斯等,國內目前最重要的是等保2.0。我們以PCI-DSS和等保2.0做更詳細的說明。

6.2 PCI 數據安全標準(PCI DSS)概述

6.2.1 標準簡介

PCI DSS 是面向所有存儲、處理或傳輸持卡人數據和/或敏感驗證數據的所有實體的全球性安全標準。PCI DSS 為消費者設定了一個基準保護級別,能夠幫助減少整個支付系統的欺詐和數據泄露問題。它適用于任何接受或處理支付卡的組織。

PCI DSS 合規涉及 3 項主要內容:

  • 處理來自客戶的信用卡數據的準入,即安全地收集和傳輸具體的敏感支付信息。
  • 安全地存儲數據,這在 PCI 標準的 12 個安全域中有所概述,例如加密、持續監控和對支付卡數據的訪問進行安全測試。
  • 每年都要驗證所需的安全控制措施是否到位,這可以包括表單、問卷、外部漏洞掃描服務及第三方審核。

相關的認證要求分為4級

最新的安全標準,PCI DSS 版本 3.2.1,包括 12 個安全域,其中300 多個次級要求反映了最佳安全實踐方式。

主流的云廠商基本都通過了PCI-DSS的認證,這就表示,需要PCI DSS認證的業務系統可以運行在云上,其基礎設施已經滿足要求,只需要客戶自己的應用系統滿足認證要求就可以了,更詳細的,12個安全域的要求在云上落地建議:

更詳細的內容可以參考 https://listings.pcisecuritystandards.org/pdfs/chinese_simplified_pci_dss_audit_procedures_v1-1.pdfhttps://www.huaweicloud.com/content/dam/cloudbu-site/archive/china/zh-cn/securecenter/security_doc/HUAWEI_CLOUD_Practical_Guide_for_PCI_DSS_chn_cn.pdf注:PCI-DSS認證比較復雜,一般需要尋找專業機構幫助。

6.3 等保2.0

6.3.1 標準簡介

2017年,《中華人民共和國網絡安全法》的正式實施,網絡安全法明確“國家實行網絡安全等級保護制度。”(第21條)、“國家對一旦遭到破壞、喪失功能或者數據泄露,可能嚴重危害國家安全、國計民生、公共利益的關鍵信息基礎設施,在網絡安全等級保護制度的基礎上,實行重點保護。”(第31條)。在此要求的基礎上,等保從1.0升級到2.0。

等保2.0簡單地說,可以分為三部分,包括技術要求,管理要求,測評。其依據的標準體系主要如下:

  • 網絡安全等級保護條例(總要求/上位文件)
  • 計算機信息系統安全保護等級劃分準則(GB 17859-1999)(上位標準)
  • 網絡安全等級保護實施指南(GB/T25058-2020)
  • 網絡安全等級保護定級指南(GB/T22240-2020)
  • 網絡安全等級保護基本要求(GB/T22239-2019)
  • 網絡安全等級保護設計技術要求(GB/T25070-2019)
  • 網絡安全等級保護測評要求(GB/T28448-2019)
  • 網絡安全等級保護測評過程指南(GB/T28449-2018)

具體要求說明

針對云計算,還有一條擴展要求:

1.云計算安全擴展要求是針對云計算平臺提出的安全通用要求之外額外需要實現的安全要求。主要內容包括“基礎設施的位置”、“虛擬化安全保護”、“鏡像和快照保護”、“云計算環境管理”和“云服務商選擇”等。

對這一條,等保網有完整的分析,《云計算安全擴展要求測評指標適用性探討》,其中都是對云平臺的要求,部分涉及租戶的要求,類似于責任劃分模型。詳細可參考:云計算安全擴展要求測評指標適用性探討 (djbh.net)http://www.djbh.net/webdev/web/HomeWebAction.do?p=getGzjb&id=8a81825680dbc18f0181c3c16fb70081

6.3.2 云租戶的等保合規指導

按等保2.0的標準,在技術上是從物理安全、通信網絡、區域邊界、計算環境、管理中心五個部分完整要求的。但在云上,部分設施由云服務商負責,部分功能由云租戶負責,所以責任也有區分。其中,物理安全,通信網絡及擴展要求,基本由云服務商負責,在認證時可以直接要求云服務商提供相關認證資料。

等保共分五級,從低到高,要求逐步提高。

我們以二級為例,進行分析,看看如何在云上實現。(詳見GBT/22239-2019, 7 第二級安全要求),其它級別也可以參考。

注:等保2.0不要求100%滿足,一般滿足到75%即可。

6.4 安全審計

計算機網絡安全審計(Audit)是指按照一定的安全策略,利用記錄、系統活動和用戶活動等信息,檢查、審查和檢驗操作事件的環境及活動,從而發現系統漏洞、入侵行為或改善系統性能的過程。

《中華人民共和國網絡安全法》 對審計的要求

第二十一條 國家實行網絡安全等級保護制度。網絡運營者應當按照網絡安全等級保護制度的要求,履行下列安全保護義務,保障網絡免受干擾、破壞或者未經授權的訪問,防止網絡數據泄露或者被竊取、篡改:

****

(三)采取監測、記錄網絡運行狀態、網絡安全事件的技術措施,并按照規定留存相關的網絡日志不少于六個月;

****

第五十五條 發生網絡安全事件,應當立即啟動網絡安全事件應急預案,對網絡安全事件進行調查和評估,要求網絡運營者采取技術措施和其他必要措施,消除安全隱患,防止危害擴大,并及時向社會發布與公眾有關的警示信息。

《互聯網安全保護技術措施規定》

第七條互聯網服務提供者和聯網使用單位應當落實以下互聯網安全保護技術措施:

****

(三)記錄并留存用戶登錄和退出時間、主叫號碼、賬號、互聯網地址或域名、系統維護日志的技術措施;

****

等保2.0 安全區域邊界,安全計算環境,安全管理中心均對審計提出了明確的要求。

PCI DSS等相關安全規范也對審計有明確要求。這些要求,在技術上體現在對審計日志的要求,一般認為,所有對系統產生影響的用戶活動、操作指令必須記錄日志,記錄日志的內容應該包括用戶id,時間,事件類型,被訪問資源,訪問結果等。

對審計日志的訪問要有訪問控制,應該提供防止非法獲取,修改,刪除日志的能力。嚴格的模型稱為三權分立模型,三權一般指配置,授權,審計,對應三個角色,系統管理員,安全管理員,安全審計員。所有審計操作應該由安全審計員完成,系統管理員,安全管理員不具備操作審計日志的權力。三個角色對系統的所有修改動作及敏感數據的查詢動作等都應該有詳細的日志記錄。

審計日志應該集中管理,系統應該具備審計日志的分析能力,以便事件調查。將用戶所有的操作日志集中記錄管理和分析,不僅可以對用戶行為進行監控,并且可以通過集中的審計數據進行數據挖掘,以便于事后的安全事故責任的認定。

https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%AE%A1%E8%AE%A1/1986498

6.4.1 云的安全審計及日志管理

云審計服務CTS

一個系統在設計和開發的過程中,應該有完整的審計功能。由于云服務的設計開發均由云廠商來實現,所以,云服務的審計功能也有云廠商來實現。

云廠商一般由一個統一的審計服務來實現的所有服務的審計功能,這就是云審計服務(CTS),它是云安全解決方案中專業的日志審計服務,提供對各種云資源操作記錄的收集、存儲和查詢功能,可用于支撐安全分析、合規審計、資源跟蹤和問題定位等常見應用場景。

云審計服務的功能主要包括:

記錄審計日志:支持記錄用戶通過管理控制臺或API接口發起的操作,以及各服務內部自觸發的操作。默認一般儲存的時間不長。若要合規,需要轉儲,但默認不轉儲。

審計日志轉儲:支持將審計日志周期性的轉儲至對象存儲服務OBS下的桶,轉儲時會按照服務維度壓縮審計日志為事件文件。

事件文件加密:支持在轉儲過程中使用數據加密服務(Data Encryption Workshop,簡稱DEW)中的密鑰對事件文件進行加密。

審計日志查詢:支持在管理控制臺短期(未轉儲)的操作記錄按照事件類型、事件來源、資源類型、篩選類型、操作用戶和事件級別等多個維度進行組合查詢。

打開云審計的頁面如圖

其中,事件列表比較簡單,就是提供了近期所有事件的列表并支持查詢功能

追蹤器有一個默認的system的追蹤器,可以獲取所有華為云產生的審計事件,并確定轉儲的OBS桶。

關鍵操作通知是指如果系統出現特定操作,可以及時發送消息,方便處理處置,比如對RDS的敏感操作直接發送消息。

云日志服務LTS

云日志服務是一個云上的綜合性的日志服務基礎設施,對日志的收集,查詢,分析,歸檔等做端到端管理,它可以處理云廠商的服務日志,也可以處理客戶應用的日志。

 1.日志收集

CTS支持云服務審計日志的收集,但一般情況下,我們說管理面的日志是審計日志,數據面的日志CTS并不收集。比如ELB的請求日志,云防火墻的阻斷日志等。如果需要這些日志,可以在日志接入中配置接收,然后可以對日志進行分析轉儲。

主機日志。默認操作系統的日志會不停滾動,新的日志覆蓋老的日志,以防止硬盤被塞滿。如果需要收集主機日志,LTS支持得很好,只要安裝agent,配置和收集都很方便。

自研服務的日志,可以通過API或SDK接入,直接實現日志的合規,很方便。


POST https://{接入點IP:8102}/v2/{project_id}/lts/groups/{log_group_id}/streams/{log_stream_id}/tenant/contents
{
  "log_time_ns": "1586850540000000000",
  "contents": [
    "Fri Feb  1 07:48:04 UTC 2019 0\n",
    "Sat Apri 18 16:04:04 UTC 2019"
  ],
  "labels": {
    "user_tag": "string"
  }
}

詳情可以參考https://support.huaweicloud.com/usermanual-lts/lts_04_0216.html

2.日志分析

LTS支持一些常見的日志分析功能,參見日志管理和儀表盤,同時,日志分析過程,支持告警,可以根據預定義的規則,發送告警消息。 

其能力基本類似于Elastic Search 和Kibana的組合功能。

3.日志轉儲和歸檔

LTS支持將日志轉儲到OBS,可以滿足合規和備份的要求。

同時支持將日志轉儲到DIS,轉到其它服務做進一步的高級分析。

這是完整的LTS應用框架。