等保2.0測評:Redis 資料庫配置
前期調研
針對於等保前期系統情況方面,這裡我們要了解的是資料庫的版本。
檢視資料庫版本:運維人員一般都會配置redis命令的環境變數,如果下面命令不行就用 find 找吧,一些基礎知識這裡就不說了。
1)伺服器本地檢視
redis-server -v redis-server --version
2)登入到資料庫內查詢
登入資料庫:redis-cli -h 127.0.0.1 -p 6379 -h後面跟ip,-p跟埠
一般是本地登入,直接 redis-cli 即可登入,當然前提是沒有修改過Redis的服務埠。
登入到資料庫後,我們輸入:info
一、身份鑑別
a)應對登入的使用者進行身份標識和鑑別,身份標識具有唯一性,身份鑑別資訊具有複雜度要求並定期更換
1. 身份鑑別和標識
預設情況下redis資料庫是無口令直接登入的:直接輸入redis-cli 即可登入
所以我們要檢視redis配置檔案,一般為redis.conf,在redis主目錄下
檢視requirepass引數是否不為註釋狀態:
如果不是註釋狀態,如上圖,後面跟著的 ***y@123 就是密碼,是明文儲存的。
如果設定過口令,則會提示
注意:這裡沒有使用者的概念,只能加一個口令驗證。
2. 身份鑑別資訊具有複雜度並定期更改
沒辦法滿足這個要求,無口令複雜度、最長使用期限設定功能。
這裡核查使用者當前口令複雜度是否滿足要求。
擴充套件:Redis 資料庫開啟口令驗證
1)通過配置檔案進行配置
在 redis.conf 中找到 requirepass foobared引數
取消requirepass前面的註釋,並將將foobared改成相應密碼,然後重啟資料庫即可
再嘗試登入,此時可以連線,但無法執行一些相關命令
需要使用auth password命令進行登入
或者使用 redis-cli -h 127.0.0.1 -p 6379 -a "mypass" 進行登入(不建議使用)
因為這樣明文密碼會留存到 history 裡面,不安全。
2)通過命令列配置(臨時)
config set requirepass ***y@1234 config get requirepass
然後嘗試配置檔案中配置的老密碼登入redis,會發現原來的不可用,被拒絕
但是再重啟redis後,將會引用配置檔案中的口令
b)應具有登入失敗處理功能,應配置並啟用結束會話、限制非法登入次數和當登入連線超時自動退出等相關措施
1. 登入失敗處理功能
沒有這個功能,詢問管理人員是否有第三方措施。
預設不符合。
2. 操作超時自動退出功能
檢視redis配置檔案,一般為redis.conf,在redis主目錄下
檢視timeout的值,預設為0永不退出
這裡設定的就是,120秒退出後要求重新進行身份鑑別。
超過這個時間它就要求重新進行身份鑑別了。
c)當進行遠端管理時,應採取必要措施防止鑑別資訊在網路傳輸過程中被竊聽
預設情況下:
抓包出來是明文傳輸的
這個要去詢問管理人員是否做了相關措施防止鑑別資訊在傳輸過程中被竊聽。
預設不符合。
d)應採用口令、密碼技術、生物技術等兩種或兩種以上組合的鑑別技術對使用者進行身份鑑別,且其中一種鑑別技術至少應使用密碼技術來實現
這個一般不會去做,我們只要現場核查它是否使用了雙因素認證就行了。
二、訪問控制
由於Redis資料庫沒有使用者這個概念,通過單一的口令驗證就可以登入,擁有所有許可權,所以針對訪問控制這個控制點,有些是判不適用,有些是判不符合的,這個我覺得可以根據機構自己的要求來進行判斷,畢竟目前沒有一個統一的標準。
a)應對登入的使用者分配賬戶和許可權
無使用者概念,通過口令驗證,擁有所有許可權。
b)應重新命名或刪除預設賬戶,修改預設賬戶的預設口令
無預設賬戶存在。不適用
c)應及時刪除或停用多餘的、過期的賬戶,避免共享賬戶的存在
無賬戶概念。
d)應授予管理使用者所需的最小許可權,實現管理使用者的許可權分離
無法分權,做不到。
e)應由授權主體配置訪問控制策略,訪問控制策略規定主體對客體的訪問規則
無授權主體。
f)訪問控制的粒度應達到主體為使用者級或程序級,客體為檔案、資料庫表級
無使用者概念。
g)應對重要主體和客體設定安全標記,並控制主體對有安全標記資訊資源的訪問
做不到。
三、安全審計
a)應啟用安全審計功能,審計覆蓋到每個使用者,對重要的使用者行為和重要安全事件進行審計
檢視redis配置檔案,一般為redis.conf,在redis主目錄下
檢視loglevel、logfile引數,我安裝的該版本預設情況下:
redis支援通過loglevel配置項設定日誌等級,共分四級,即debug、verbose、notice、warning。
redis也支援通過logfile配置項來設定日誌檔案的生成位置。如果設定為空字串,則redis會將日誌輸出到標準輸出,日誌將會發送給/dev/null。
這裡我們配置一下,將日誌輸出到如下檔案中。
重啟後,日誌就會寫入到這個檔案中
所以這裡我們要確定兩個引數:loglevel、logfile。
且logfile必須要配置,因為不配置就不會留存對應的日誌了。
b)審計記錄應包括事件的日期和時間、使用者、事件型別、事件是否成功及其他與審計相關的資訊
預設符合,日誌時間跟隨系統時間。比如我剛重啟了資料庫,就會產生對應日誌。
c)應對審計記錄進行保護,定期備份,避免受到未預期的刪除、修改或覆蓋等
儲存在作業系統上的日誌檔案許可權,不得超過644,預設不刪應該永久儲存。
定期備份問題,詢問管理人員是否有做即可。
d)應對審計程序進行保護,防止未經授權的中斷
預設符合。
無法中斷日誌檔案輸出,但是可以修改日誌記錄等級。
四、入侵防範
以下條款為:不適用
a)應遵循最小安裝的原則,僅安裝需要的元件和應用程式
b)應關閉不需要的系統服務、預設共享和高危埠
d)應提供資料有效性檢驗功能,保證通過人機介面輸入或通過通訊介面輸入的內容符合系統設定要求
f)應能夠檢測到對重要節點進行入侵的行為,並在發生嚴重入侵事件時提供報警
涉及到的:
c)應通過設定終端接入方式或網路地址範圍對通過網路進行管理的管理終端進行限制
找到redis的配置檔案,一般為redis.conf,可以先找NETWORK,下面會有個bind
註釋情況下為任意IP訪問,可設定指定 IP,以空格分割。這裡只要看bind後面跟的ip地址即可。
e)應能發現可能存在的已知漏洞,並在經過充分測試評估後,及時修補漏洞
這條就結合漏掃、測試等方法進行判斷,redis這玩意可是出了名的漏洞多。。
像非授權訪問漏洞,本地也測試過能成功,這裡就不細說了,交給滲透工程師去看吧,然後我們等保的拿他們的報告確認是否存在對應漏洞即可。
五、資料完整性
針對這個資料庫,下面兩條預設都是不符合。詢問管理人員是否做了相關措施來保證資料的完整性。
a)應採用校驗技術或密碼技術保證重要資料在傳輸過程中的完整性,包括但不限於鑑別資料、重要業務資料、重要審計資料、重要配置資料、重要視訊資料和重要個人資訊等
b)應採用校驗技術或密碼技術保證重要資料在儲存過程中的完整性,包括但不限於鑑別資料、重要業務資料、重要審計資料、重要配置資料、重要視訊資料和重要個人資訊等
六、資料保密性
這個保密性同理,針對這個資料庫,下面兩條預設都是不符合。詢問管理人員是否做了相關措施來保證資料的保密性。
a)應採用密碼技術保證重要資料在傳輸過程中的保密性,包括但不限於鑑別資料、重要業務資料和重要個人資訊等
b)應採用密碼技術保證重要資料在儲存過程中的保密性,包括但不限於鑑別資料、重要業務資料和重要個人資訊等
七、資料備份恢復
a) 應提供重要資料的本地資料備份與恢復功能
這個沒啥好說的,直接去問管理人員備份怎麼做的,是否有措施保證備份資料有效(有測試記錄即可)。
b)應提供異地實時備份功能,利用通訊網路將重要資料實時備份至備份場地
詢問管理員
c)應提供重要資料處理系統的熱冗餘,保證系統的高可用性
這個根據實際情況來看,是否有熱冗餘的必要性。沒有個人認為可判不適用。