RabbitMQ-docker部署
查看版本:rabbitmqctl version、rabbitmqctl status | grep version
配置文件:一般為rabbitmq.conf
端口號:一般為15672
一、身份鑒別
a)應對登錄的用戶進行身份標識和鑒別,身份標識具有唯一性,身份鑒別信息具有復雜度要求并定期更換;
此項建立在RabbitMQ中間件是否開啟WEB控制臺:
若未開啟:則不適用,若開啟:如圖所示,則
1、身份認證:通過賬戶名+密碼的方式對登錄用戶進行身份鑒別。
2、密碼復雜度策略:默認自身無內置的密碼復雜度配置選項,需通過外部認證機制或自定義插件進行設置。如 rabbitmq-auth-backend-http 插件 + 外部 HTTP 服務。
3、密碼有效期:默認自身無內置的密碼有效期策略配置,考察是否手動定期更換密碼。
4、空口令或弱口令:是否存在空口令賬戶或存在簡單密碼,如admin、123、123456等。
b)應具有登錄失敗處理功能,應配置并啟用結束會話、限制非法登錄次數和當登錄連接超時自動退出等相關措施;
1、登錄失敗:默認自身無內置的登錄失敗處理機制,需結合rabbitmq-auth-backend-http 插件 + 外部 HTTP 服務進行實現。下圖嘗試10次錯誤登錄后,彈出以下錯誤,再次輸入正確密碼,亦可成功登錄。
進入控制臺后,即可查看相關配置信息,如版本、賬戶信息等。
2、登錄超時:默認自身無內置的登錄連接超時機制。
c)當進行遠程管理時,應采取必要措施防止鑒別信息在網絡傳輸過程中被竊聽;
RabbitMQ中間件控制臺默認采用HTTP網絡通信協議進行數據傳輸。
這里嘗試抓了下包,發現僅是對賬戶名和密碼進行了Base64編碼,并未采用其他加密算法進行傳輸。
若想保證鑒別數據在傳輸過程中的保密性,則需SSL/TLS協議。
d)應采用口令、密碼技術、生物技術等兩種或兩種以上組合的鑒別技術對用戶進行身份鑒別,且其中一種鑒別技術至少應使用密碼技術來實現。
RabbitMQ中間件控制臺默認是通過賬戶名+密碼進行身份認證的,不涉及雙因子登錄,在此不符合。
二、訪問控制
a)應對登錄的用戶分配賬戶和權限;
進入控制臺后,則在此可查看所有可登錄賬戶的信息,以及權限劃分。
b)應重命名或刪除默認賬戶,修改默認賬戶的默認口令;
RabbitMQ存在默認的內置賬戶,即為guest。檢查是否禁用該賬戶或修改其默認口令。
c)應及時刪除或停用多余的、過期的賬戶,避免共享賬戶的存在;
查看是否存在多余或過期的賬戶信息,或是否存在多個人共用一個賬戶的情況。
d)應授予管理用戶所需的最小權限,實現管理用戶的權限分離;
進入控制臺后,可通過功能模塊Admin進行查看,如下圖中,已表明admin為超級管理員賬戶,擁有最高管理權限。
在此也可增加、修改、刪除賬戶信息。
e)應由授權主體配置訪問控制策略,訪問控制策略規定主體對客體的訪問規則;
目前搭建的環境中,訪問控制策略均由admin賬戶負責配置管理,且可制定相關策略限制各用戶的操作訪問權限。
f)訪問控制的粒度應達到主體為用戶級或進程級,客體為文件、數據庫表級;
RabbitMQ該中間件已達訪問控制粒度要求:主體為賬戶級(用戶級),客體為功能模塊級。
g)應對重要主體和客體設置安全標記,并控制主體對有安全標記信息資源的訪問。
此項針對于RabbitMQ中間件,默認無法實現,給不符合即可。
三、安全審計
a)應啟用安全審計功能,審計覆蓋到每個用戶,對重要的用戶行為和重要安全事件進行審計;
可查看RabbitMQ中間件的安裝目錄下是否存在日志文件信息,或通過查看其配置文件是否有設置日志記錄策略。
在此日志文件為10-defaults.conf,但一般為rabbitmq.conf,可能與安裝部署的時候有關。從圖上可知已開啟log.console = true,即將RabbitMQ中間件的運行日志信息打印至控制臺,若開啟此項,則可通過docker logs 容器名查看日志信息。如:
b)審計記錄應包括事件的日期和時間、用戶、事件類型、事件是否成功及其他與審計相關的信息;
此項可根據RabbitMQ配置文件中logfile參數尋找日志文件存放路徑,進而查看日志信息;若未配置日志存放信息,亦可在容器外使用docker logs -f RabbitMQ容器ID實時查看運行日志信息。
c)應對審計記錄進行保護,定期備份,避免受到未預期的刪除、修改或覆蓋等;
此項主要考察兩點:1、是否有對RabbitMQ產生的日志信息進行保護,如定期備份、日志文件是否有作權限控制。2、RabbitMQ的日志信息是否可追溯至前六個月的信息。
d)應對審計進程進行保護,防止未經授權的中斷。
此項針對RabbitMQ中間件而言,默認是跟隨中間件主進程的,非授權人員不得進行中斷。
四、入侵防范
a)應遵循最小安裝的原則,僅安裝需要的組件和應用程序;
根據GB28448測評范圍描述,RabbitMQ中間件此項不適用。
b)應關閉不需要的系統服務、默認共享和高危端口;
根據GB28448測評范圍描述,RabbitMQ中間件此項不適用。
c)應通過設定終端接入方式或網絡地址范圍對通過網絡進行管理的管理終端進行限制;
若RabbitMQ開啟控制臺,查看外界終端用戶是否可接入訪問,若未開啟控制臺,則一般從所在服務器的配置進行查看,如/etc/ssh/sshd_config或其他配置文件。
d)應提供數據有效性檢驗功能,保證通過人機接口輸入或通過通信接口輸入的內容符合系統設定要求;
根據GB28448測評范圍描述,RabbitMQ中間件此項不適用。
e)應能發現可能存在的已知漏洞,并在經過充分測試評估后,及時修補漏洞;
此項需結合漏洞掃描工具,核查是否有高風險漏洞。
f)應能夠檢測到對重要節點進行入侵的行為,并在發生嚴重入侵事件時提供報警。
根據GB28448測評范圍描述,RabbitMQ中間件此項不適用。
五、可信驗證
a)可基于可信根對計算設備的系統引導程序、系統程序、重要配置參數和應用程序等進行可信驗證,并在應用程序的關鍵執行環節進行動態可信驗證,在檢測到其可信性受到破壞后進行報警,并將驗證結果形成審計記錄送至安全管理中心。
根據GB28448測評范圍描述,RabbitMQ中間件此項不適用。
六、數據完整性
a)應采用校驗技術或密碼技術保證重要數據在傳輸過程中的完整性,包括但不限于鑒別數據、重要業務數據、重要審計數據、重要配置數據、重要視頻數據和重要個人信息等;
針對RabbitMQ中間件,重要數據一般為:鑒別數據、審計數據、配置數據。若開啟控制臺,則一般為HTTP網絡通信協議,未進行數據加密傳輸,不能保證數據在傳輸過程中的完整性。若未開啟控制臺,則數據多為本地傳輸管理,此項可判定為不適用。
b)應采用校驗技術或密碼技術保證重要數據在存儲過程中的完整性,包括但不限于鑒別數據、重要業務數據、重要審計數據、重要配置數據、重要視頻數據和重要個人信息等。
針對RabbitMQ中間件,重要數據一般為:鑒別數據、審計數據、配置數據。若開啟控制臺,則鑒別數據一般采用SHA-256加密算法,可保證鑒別數據在存儲過程中的完整性。而審計數據和配置數據一般未進行加密存儲。
七、數據保密性
a)應采用密碼技術保證重要數據在傳輸過程中的保密性,包括但不限于鑒別數據、重要業務數據和重要個人信息等;
針對RabbitMQ中間件,重要數據一般為:鑒別數據。若開啟控制臺,則一般為HTTP網絡通信協議,未進行數據加密傳輸,不能保證鑒別數據在傳輸過程中的完整性。若未開啟控制臺,則數據多為本地傳輸管理,此項可判定為不適用。
b)應采用密碼技術保證重要數據在存儲過程中的保密性,包括但不限于鑒別數據、重要業務數據和重要個人信息等。
針對RabbitMQ中間件,重要數據一般為:鑒別數據。則鑒別數據一般采用SHA-256加密算法,可保證鑒別數據在存儲過程中的保密性。
八、數據備份恢復
a)應提供重要數據的本地數據備份與恢復功能;
1、詢問業主單位是否有對RabbitMQ重要數據進行備份,如配置數據rabbitmq.conf。2、是否有對備份的數據進行恢復性測試。
b)應提供異地實時備份功能,利用通信網絡將重要數據實時備份至備份場地;
詢問業主單位是否有進行異地實時備份。
c)應提供重要數據處理系統的熱冗余,保證系統的高可用性。
詢問業主,結合實際測評資產判定。
九、剩余信息保護
a)應保證鑒別信息所在的存儲空間被釋放或重新分配前得到完全清除;
若開啟控制臺,則此項一般為符合,若未開啟,則此項為不適用。
b)應保證存有敏感數據的存儲空間被釋放或重新分配前得到完全清除。
若開啟控制臺,則此項一般為符合,若未開啟,則此項為不適用。