當您的儲存空間(Bucket)被惡意攻擊、流量被惡意盜刷時,會出現高頻寬或者大流量突發的情況,進而產生高於日常消費金額的賬單。如果您希望降低因類似情況帶來的大額資金損失的風險,請參考本文提供的多種安全最佳實務。
以下最佳實務遵循通用準則,並不等同完整的安全解決方案。這些最佳實務可能不適合您的環境或不滿足您的環境要求,僅建議將其視為參考因素。請您在日常使用中提高資料安全意識並時刻做好Alibaba Content Security Service防範措施。
大額資金損失風險
當您的Bucket被惡意攻擊、流量被惡意盜刷時,會產生以下大額資金損失風險:
高額賬單:當您的Bucket被惡意攻擊、流量被惡意盜刷時,實際消耗了OSS的頻寬資源,因此您需要自行承擔攻擊產生的流量頻寬費用。
超出賬戶餘額的賬單:OSS隨用隨付,其賬單金額受計費周期和賬單處理時延等因素的影響,無法做到賬戶餘額為0的情況下立即停機,因而可能會出現欠費金額大於0。當您的儲存空間(Bucket)被惡意攻擊、流量被惡意盜刷時,極易出現高額賬單,連帶出現的風險是賬單金額往往會超出您的賬戶餘額。
阻止公用訪問
OSS支援通過設定Bucket Policy以及ACL的方式實現公用訪問。公用訪問是指無需特定許可權或身分識別驗證即可對OSS資源進行訪問。公用訪問容易引發資料泄露以及被惡意訪問而產生大量外網下行流量的風險。為避免公用訪問可能帶來的風險,OSS支援在OSS全域、單個Bucket、單個存取點和單個對象FC存取點的維度一鍵開啟阻止公用訪問。開啟阻止公用訪問後,已有的公用存取權限會被忽略,且不允許建立新的公用存取權限,以此關閉資料的公開訪問渠道,確保資料安全。具體步驟,請參見阻止公用訪問。
通過終端節點私網訪問OSS資源
使用終端節點私網(PrivateLink)允許您將VPC與OSS進行安全的私人串連,避免通過公網訪問帶來的各種潛在安全風險。這種串連方式不僅可以提高資料安全性,還可以降低因惡意訪問流量導致的大額資金損失的可能性。具體說明如下:
隔離性:使用終端節點私網訪問OSS資源,可以將OSS與公用互連網隔離。確保只有在您明確授權的VPC內,才能訪問到您的OSS資源,避免了來自公用互連網上的惡意訪問和攻擊。
控制許可權:通過VPC內的終端節點,您可以更精細地控制對OSS資源的存取權限。例如,限制某些IP地址或子網的訪問,或者設定特定的安全性群組規則等,進一步增強了安全性。
流量監控:在VPC內部署服務,您可以更好地監控和管理網路流量,及時發現並處理異常流量,防止惡意訪問帶來的風險。
具體步驟,請參見通過終端節點私網訪問OSS資源。
修改ACL為私人存取權限
除非您明確要求包括匿名訪問者在內的任何人都能讀寫您的OSS資源,包括儲存空間(Bucket)以及檔案(Object),否則請勿將Bucket或者Object的讀寫權限ACL設定為公用讀取(public-read)或者公用讀寫(public-read-write)。設定公用讀取或者公用讀寫許可權後,對訪問者的許可權說明如下:
公用讀寫:任何人(包括匿名訪問者)都可以對該Bucket內的Object進行讀寫操作。
警告互連網上任何使用者都可以對該Bucket內的Object進行訪問,並且向該Bucket寫入資料。這有可能造成您資料的外泄以及費用激增,若被人惡意寫入違法資訊還可能會侵害您的合法權益。除特殊情境外,不建議您配置公用讀寫許可權。
公用讀取:只有該Bucket的擁有者可以對該Bucket內的Object進行寫操作,任何人(包括匿名訪問者)都可以對該Bucket內的Object進行讀操作。
警告互連網上任何使用者都可以對該Bucket內的Object進行訪問,這有可能造成您資料的外泄以及費用激增,請謹慎操作。
鑒於公用讀取或者公用讀寫許可權對OSS資源帶來的資料安全風險考慮,強烈建議您將Bucket或者Object的讀寫權限設定為私人(private)。設定為私人許可權後,只有該Bucket擁有者可以對該Bucket以及Bucket內的Object進行讀寫操作,其他人均無存取權限。因此,在修改ACL為私人存取權限之前,請自行確認業務本身不受影響。
具體步驟,請參見設定儲存空間讀寫權限ACL和設定檔案讀寫權限ACL。
通過CloudMonitor配置警示規則
當您需要監控OSS資源的使用和運行情況時,可以通過CloudMonitor建立閾值警示規則,實現監控指標超過靜態閾值或動態閾值後自動發送警示通知的功能,協助您及時瞭解監控資料異常並快速進行處理。
例如,您可以為某個Bucket配置警示規則,並在警示規則中指定當連續一個周期(1周期=1分鐘)出現公網流入流量、公網流出流量、CDN流入流量、CDN流出流量等在其大於或等於100 Mbytes,將警示資訊寫入Log Service指定的Logstore中。
以公網流入流量大於或者等於100 Mbytes時觸發警示為例,其警示規則配置如下:
您可以基於Bucket的維度配置警示規則,您還可以為當前阿里雲帳號下的所有OSS資源配置警示規則。具體步驟,請參見建立警示規則。
配置防盜鏈
通過在OSS中配置基於請求標題Referer的訪問規則,可以阻止某些Referer訪問您的OSS檔案,從而防止其他網站盜用您的檔案,並避免由此引起的不必要的流量費用增加。
當瀏覽器向OSS發送請求時,請求標題中將包含Referer,用於告知OSS該請求的頁面連結來源。如果配置了防盜鏈,OSS將根據請求的Referer與配置的Referer規則來判斷是否允許此請求:
如果瀏覽器附帶的Referer與黑名單Referer匹配,或與白名單Referer不匹配,則OSS將拒絕該請求的訪問。
如果瀏覽器附帶的Referer與白名單Referer匹配,則OSS將允許該請求的訪問。
例如,某個Bucket配置了白名單Referer為https://10.10.10.10
。
使用者A在
https://10.10.10.10
嵌入test.jpg圖片,當瀏覽器請求訪問此圖片時會帶上https://10.10.10.10
的Referer,此情境下OSS將允許該請求的訪問。使用者B盜用了test.jpg的圖片連結並將其嵌入
https://192.168.0.0
,當瀏覽器請求訪問此圖片時會帶上https://192.168.0.0
的Referer,此情境下OSS將拒絕該請求的訪問。
更多資訊,請參見防盜鏈。
設定跨域資源共用
跨域資源共用CORS(Cross-Origin Resource Sharing)簡稱跨域訪問,是HTML5提供的標準跨域解決方案,允許Web應用伺服器進行跨域存取控制,確保跨域資料轉送的安全性。跨域訪問是瀏覽器出於安全考慮而設定的限制,是一種用於隔離潛在惡意檔案的關鍵安全機制。當A、B兩個網站屬於不同域時,來自於A網站頁面中的JavaScript代碼訪問B網站時,瀏覽器會拒絕該訪問。
OSS支援根據需求靈活配置CORS規則,實現允許或者拒絕相應的跨域請求。例如,您希望僅允許來源為www.aliyun.com
、跨域要求方法為GET
的請求,則CORS規則配置如下:
具體步驟,請參見設定跨域資源共用。
避免使用順序首碼的方式命名檔案
當您上傳大量檔案時,如果使用順序首碼(如時間戳記或字母順序)、日期、數字ID等可以被遍曆的方式來命名檔案,攻擊者可通過總結規律以及編寫指令碼的方式擷取全部的檔案,最終造成資料泄露。強烈建議您通過向檔案名稱添加十六進位雜湊首碼或以反轉檔案名稱的方式命名檔案,從而有效降低檔案名稱被遍曆的風險。具體操作,請參見資料安全。