根據RBS安全公司的報道,安全研究人員發現了6338臺被惡意軟件感染的Redis服務器,由于此前Redis服務器中存在的多個安全問題沒有得到及時解決,使得Redis數據庫服務器成為了攻擊者們優先選擇的攻擊目標。
Redis是一種NoSQL類型的數據庫服務器,非常適合存儲“鍵-值”形式的數據。Redis是一個開源的數據庫服務器,先進的“鍵-值”存儲機制可用于構建高性能、可擴展的 Web 應用程序解決方案。Redis支持主從同步,數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得Redis可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。由于完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道并接收主服務器完整的消息發布記錄。值得一提的是,同步對讀取操作的可擴展性和數據冗余很有幫助。
因為Redis將數據庫性能作為優先考慮的因素。所以在其默認配置下,數據庫不僅沒有提供任何形式的身份驗證機制,而且也沒有部署其他的安全防護措施。Redis 的開發者之所以放棄解決未授權訪問導致的不安全性,是因為 99.99%使用Redis的場景都是在沙盒化的環境中, 為了0.01%的可能性增加安全規則的同時也增加了復雜性, 雖然這個問題的并不是不能解決的, 但是這在他的設計理念中仍是不劃算的。
利用SSH密鑰生成漏洞來攻擊Redis服務器
這也就意味著,只要能夠知道目標服務器的IP地址以及端口號,任何人都可以訪問到數據庫中存儲的數據。使情況變得更糟糕的是,在2015年年底又出現了一個安全漏洞。對于任何一臺Redis服務器,只要它沒有設置任何的身份驗證機制,那么這個漏洞將允許第三方程序可以將SSH密鑰存儲于 authorized_keys文件中。
據統計,目前在互聯網中,總共有超過三萬臺Redis數據庫服務器沒有設置身份驗證系統。根據RBS公司的安全研究人員透露的信息,其中有6338臺這樣的服務器已經被惡意軟件感染了。
RBS公司的安全研究人員通過Shodan引擎進行了一次非入侵式的掃描檢測。在此過程中, 一臺設置了“crackit” SSH密鑰的服務器成功引起了安全研究人員的注意。當然了,這臺服務器在當時已經被攻擊了。之所以這臺服務器能引起他們的注意,是因為研究人員在此前遇到的攻擊事件中,這個密鑰曾與一個地址為“[[email protected]]的電子郵郵箱進行了綁定。”
通過Shodan引擎,安全研究人員掃描到了配置非標準SSH密鑰的開放Redis數據庫。安全研究人員發現了5892個實例,這些服務器的SSH密鑰全部與電子郵件地址[email protected]綁定在一起。除此之外,他們還發現了385個與[email protected]郵箱地址綁定的SSH密鑰以及211個與[email protected]地址綁定的SSH密鑰。
最常見的非標準密鑰有"crackit", “crackit_key”, “qwe”, “ck”和 “crack”。據統計,RBS公司的安全研究人員總共發現了14個不同的電子郵箱地址以及40種不同的SSH密鑰組合。RBS公司的安全研究人員解釋稱,這些被攻擊的服務器基本上屬于獨立組織所有。
攻擊者并不會針對特定版本的Redis服務器,他們可以對任何Redis數據庫服務器進行攻擊。
在對這些被攻擊的Redis數據庫版本進行了分析之后,安全研究人員發現了106個不同的Redis版本,從最早期的1.2.0版本到最新的3.2.1版本Redis都包括在了其中。
安全公司建議所有使用了Redis數據庫的網站管理員盡快將數據庫版本更新到最新版本,并開啟數據庫的“保護模式”。根據Redis的更新文檔,從Redis 3.2版本開始,Redis允許用戶使用“保護模式”。
目前為止,這6338臺服務器仍然沒有得到修復。這也就意味著,攻擊者仍然可以對它們實施攻擊。