1. 程式人生 > >雲上資料庫“全鏈路安全”實踐:保護企業核心資產

雲上資料庫“全鏈路安全”實踐:保護企業核心資產

資料庫所儲存的是企業最為核心的資產,所以對於企業而言,必須要將資料庫的安全做到位。那麼,如何保證雲上資料庫的安全呢?在本文中,阿里雲資料庫高階產品專家崔京(花名:乙休)就為大家帶來了雲資料庫的“全鏈路安全”。

_

在大家心中,資料庫安全到底指什麼呢?其實資料庫安全可以分為幾個方面理解,首先是資料連續可用,保證業務能夠持續對外提供服務;二是資料可靠,不會丟失,保證資料的完整性,無論是磁碟故障還是硬體故障還是機房失火,都需要保證資料的完整性;三是需要保證資料隱私性,保證資料不洩露。本次重點則圍繞資料隱私不洩露的方面分享。

資料庫真的“安全”嗎?

回顧近期發生的資料安全事件,首先是有一千多萬的快遞資訊洩露了,上面包括了收貨人和發貨人的資訊。其次,是很多人的生物識別資訊洩露,導致一些包括指紋在內的資訊洩露。還有一個事件就是某酒店的入住資訊洩露。近期還有一種攻擊行為是基於資料庫本身的安全漏洞進行掃描,進行資料加密和勒索,這種方式是更為嚴重的攻擊大範圍攻擊手段。

其實對於資料安全而言,最大的風險就是我們不知道風險在哪裡。有人覺得自己的資料存在自己的線下機房裡就是安全的,但是根據報道和統計,大部分資料洩露都來源於線下。這是因為線下往往缺乏有效的安全管理和技術手段。據不完全統計,超過7成的自建資料庫存在風險,比如弱口令或者沒有防火牆。

那麼在阿里雲上,如何對待資料安全呢?首先,阿里雲認為資料隱私是第一原則,這一原則根植於阿里雲飛天作業系統核心,在這核心之上產生的所有引擎、服務、平臺以及產品都必須遵循資料安全和隱私第一這個原則,也就是“Security By Design”的實現,也稱之為“未雨綢繆”。同樣,外界環境也是充滿著不確定性的,那麼為了保證資料庫能夠在不確定的 環境中能夠對外提供服務,那麼就需要有“居安思危”的思想,這也是阿里雲的整體思想。

阿里雲的全鏈路解決方案

在2011年左右,阿里雲資料庫推出了一款商用資料庫——MySQL 5.1版本,從那時到現在已經過去了7年時間,這7年間阿里雲資料庫形成了一套屬於自己的安全解決方案,稱之為全鏈路安全方案。資料庫其實是一個雲上的資源服務,要想保護好一個數據庫,首先需要從控制層面對於訪問這件事情進行控制。第二點就是需要審計能力,需要知道誰在什麼時間和地點以什麼形式訪問了資料庫。第三點就是加密能力,包括鏈路、傳輸以及儲存加密。之後一點就是對於風險的預警能力,也就是對於緊急事件的應急處理能力,這就是全鏈路安全的概況。

對於資料庫的訪問控制而言,首先需要知道訪問路徑。其實訪問路徑無外乎兩種,一種是標準的SQL語句的資料鏈路,另外一種就是通過API,因為雲上資料庫不同於其他資料庫,資料庫本身作為雲上的資源供使用者使用。對於資源本身進行管理其實形成了API的標準,通過API能夠建立、刪除以及恢復資料庫等,這樣的方式等同於直接在控制檯做操作,也等同於通過一些SDK或者控制檯以及CLI進行操作。

具體而言,如何對於這兩種訪問路徑進行控制呢?當我們需要訪問雲上中心資料的時候需要一層層地認證、授權以及通過每一層的防護網,才能達到所需的資料。資料鏈路最外層是阿里雲大安全所提供的雲盾能力,第二層就是金融雲的解決方案,提供了符合金融行業監管的標準。第三層就是提供了集中授權訪問的功能,這是聯合堡壘機產品實現的,其意思就是當有很多使用者以及應用程式需要訪問很多資料庫的時候,有效地管理中間的授權和審計。其次,還有專有網路以及訪問來源的ACL。在其下就可以使用核心、資料庫引擎提供的ACL。在控制鏈路上,可以通過資源控制來控制人員和賬號允許其在什麼時間用什麼IP對於哪些資料庫進行訪問,這樣的授權粒度非常細。基於最小授權原則,無論是資料鏈路還是控制鏈路,都應該基於這套原則控制使用者訪問。

資料庫安全解決方案案例分享

接下來分享兩個案例。第一個案例是某公司擁有100多個數據庫,100多個研發人員,研發需要處理資料庫問題,因此需要訪問資料庫,那麼如何對於這些資料庫進行管理呢?客戶提出已經給每個研發提供了AD認證,而阿里雲提供的解決方案就是引入堡壘機,堡壘機就是在阿里雲VPC內部的伺服器,當用戶的內網和VPC打通之後,就可以在公司內網直接通過域賬號登入堡壘機,因為其是與AD打通的,無論是SSH協議的Linux還是Windows都能夠連到堡壘機上,在堡壘機上再為每個使用者分配賬號和密碼,這樣一來,研發人員就可以安全地訪問到符合自己許可權的資料庫。同時,對於不同的業務可以做資源組隔離來保證不同業務的ECS不能互相訪問彼此的資料庫。

第二個案例與第一個類似,但是客戶要求每個研發同學都擁有一個RAM子賬號,在這樣的情況下,可以在中間引入一個DMS產品提供的統一認證功能,這樣一來研發同學並不需要知道資料庫密碼就可以訪問。而使用者可以授權RAM子賬號能夠訪問哪些資料庫。

阿里雲資料庫全鏈路安全能力

審計部分而言,在資料鏈路部分都是發起SQL,那麼如何對於SQL進行審計呢?阿里雲會記錄完整的登入事件,也就是會記錄登入、登出日誌。此外,還會進行完整的SQL執行審計,包括查詢、更新、修改和刪除,還會記錄SQL掃描的行數以及返回的資料行數。在控制鏈路上,可以審計哪個子賬號在什麼時間從哪個IP通過什麼方式訪問了哪個例項,做了什麼操作,並且這是阿里雲的通用服務。

此外,值得一提的就是阿里雲近期會對之前的SQL審計功能進行全面升級,新版本提升了基於SQL日誌的安全風險以及效能風險的分析洞察能力,所以我們稱之為“SQL洞察”。另外,在技術架構設計上做了一次大調整,使用了新的列式儲存服務以及壓縮、索引技術,使得儲存成本整體降低了60%。

具體而言,在SQL洞察上提供了哪些能力。首先,對於搜尋功能進行了增強,高階搜尋能夠幫助使用者實現很多功能,這些功能將會逐漸開放API。其次,會提供一些分析診斷的能力,將會與原本的效能診斷服務打通,實現定製化的靈活的診斷能力。比如你可以找出昨天業務系統報錯那十分鐘,資料庫的SQL有沒有異常,哪條SQL是“罪魁禍首”。

加密方面,阿里雲對於傳輸和儲存都提供加密能力。在傳輸這裡,提供了像SSL TSL v1.2的支援,並且還可以強制某一使用者使用SSL,配置過程也非常簡單。同時,除了在訪問路徑上實現了加密,在資料庫備份的時候,以及在傳輸和儲存到OSS的時候,也提供了加密能力,並且加密的Key由使用者自己保管。目前提供的表級別的TDE加密,可以在資料庫裡面直接開啟某一張表的加密,未來還可以通過雲盤實現資料庫例項級別的加密等。

預警以及應急方面,阿里雲提供了免費的產品——Adviser智慧顧問,它將會幫助使用者發現基礎雲產品中的安全風險,並將這些風險以建議的方式推送給使用者。同時,在應急方面,還會與安全組織進行合作,在重大漏洞爆發之前就能夠提前感知,此外基於阿里雲安全團隊的技術能力能夠在漏洞爆發之前將其修復,並且提供了24小時的安全應急響應能力。

總結而言,全鏈路安全從技術層面到服務層面,無論是資料鏈路還是控制鏈路,從事前、事中再到事後,從接入層、網路層再到代理層、儲存層,阿里雲都提供了立體的全鏈路安全方案,使用者可以按需選擇裡面可能有幫助的功能,這套安全體系已經支撐雲上的MySQL、MariaDB以及全新的下一代雲資料庫POLARDB等。

但是,僅有這些還遠遠不夠,因為安全是需要持續進化的事情,沒有永遠的安全,但是雲端計算技術的進化速度遠比線下自身的技術能力進化速度更快。這是因為雲有兩大特點,第一個就是“線上”,其次是很多人蔘與,這樣就可以獲更多的貢獻。正如“流水不腐,戶樞不蠹”所言的,阿里雲希望通過雲這種新的形式構建更高的安全能力,幫助大家實現更高的安全建設。