聊聊网络安全等级保护“能力验证”:配置核查(Linux系统)
前言
作為測評機構一定會知道每年會舉行“能力驗證”活動,申請認可和獲準認可的合格評定機構通過參加能力驗證活動(包括 CNAS 組織實施或承認的能力驗證計劃、測評機構間比對和測量審核)證明其技術能力。之前的線上會議也表明了對測評機構能力建設方面的意見,在會議中說到機構的最高水平不代表機構的真實測評水平,因為機構派來參加能力驗證的一般都是經驗老道的測評師,所以表面上看起來沒啥問題,真實測評中可能會存在很多問題。另外也采取了措施,比如相同人員相隔一年內無法參加能力驗證,而且后續還有可能從“團隊模式”的情況轉化為“單人模式”。
在我看來,“能力驗證”就是監管測評機構測評技術方面的一次考試,通過了這場考試,才代表有技術能力從事這測評工作。
2019能力驗證
去年應該是由于疫情的原因,沒有舉辦能力驗證。筆者有幸參加了2019能力驗證,這里就聊一聊自己的一些感悟和他們出題的考察點吧。
一、概述
這邊看一下官方給出的概述
?
二、測評能力驗證內容
2019年能力驗證分3個考察內容:
1. 測評對象和測評指標選取
2. 配置檢查
3. 滲透測試
一般3個人一組進行能力驗證,上午測評方面,下午滲透方面。我這邊是測評方面,做的是配置核查,這里就寫一下我當時的測評情況。
2.1 樣品系統環境
本次能力驗證配置檢查所用樣品系統環境由 1 一 Linux 服務器、 1 臺 Windows服務器、 1 臺 NTP 服務器組成。
2.2 拓撲圖結構
?
2.3 測評對象范圍及配置說明
?
2.4 配置檢查內容
針對模擬系統中的 Windows 和 Linux 服務器操作系統, 開展安全計算環境(操作系統)方面的配置檢查和驗證測試 。這里我就以Linux系統為代表,針對本次考察內容來聊一聊。
首先,先看一下我們最終要提交的配置檢查結果報告單。
?
上面“注意事項”中,明確表明了測評記錄要詳實足夠支撐結果判定。下面就看看具體操作系統中配置是如何的,將違反條款標準或安全策略的點要寫清楚。我這里就不一一描述結果記錄該怎么寫了,這里主要討論該條款中的得分點,答出它預設的問題點才算得分,其余的內容其實不算得分點。
1)身份鑒別
| a) 應對登錄的用戶進行身份標識和鑒別,身份標識具有唯一性,身份鑒別信息具有復雜度要求并定期更換; |
根據這條條款,我們首先要從安全計算環境安全策略中找到關鍵的策略。
?
這條它規定了需要啟用密碼復雜度要求、密碼長度要求最少8位,最長使用期限為30天。預設問題很可能就在這條安全策略中。
所以我們先要去/etc/pam.d/system-auth 文件下查看是否配置復雜度策略,密碼復雜度要求,在/etc/shadow文件下查看當前用戶的口令最長使用期限,在/etc/login.defs文件下去查看后續新增賬戶口令最長有效期PASS_MAX_DAYS。
最終我查詢的結果是口令復雜度未配置,當前用戶口令最長使用期限不對,PASS_MAX_DAYS值為30,同時在/etc/login.defs目錄下查看PASS_MIN_LEN值為6。
我們再對照能力驗證計劃總結報告里面的預設測評要點進行分析:
?
很明顯,這個預設點的問題應該是讓你知道PASS_MIN_LEN這個為6的參數其實是不生效的,如果不知道這個參數是什么意思的,可以去看看這里的文章,我感覺應該是你答出了這個就算有得分了。
| b) 應具有登錄失敗處理功能,應配置并啟用結束會話、限制非法登錄次數和當登錄連接超時自動退出等相關措施; |
同理我們先看安全策略,這里涉及到的內容有兩條
?
?
所以針對本地登錄和SSH登錄,我們需要去查看兩個文件,分別為/etc/pam.d/system-auth、/etc/pam.d/sshd,去看這兩個文件下是否配置了登錄失敗處理功能;然后是否有設置TMOUT值。
我的查詢結果為:已在/etc/sshd文件下配置auth required pam_tally2.so deny=5 unlock_time=600,本地登錄情況沒有配置登錄失敗處理功能。已在/etc/profile文件中設置TMOUT=600,且當前環境已生效。
通過上面結果,可能有人就下結論了,說未限制root賬戶的遠程登錄失敗處理功能,但要看仔細,root賬戶已經被禁止SSH登錄了,所以就要體現這一點。需要在結果記錄中補充說明,已在/etc/ssh/sshd_config文件下配置:PermitRootLogin no
?
這里的預設問題就是要你答出本地和SSH遠程登錄的登錄失敗處理功能配置,然后需要強調說明root賬戶已禁止SSH遠程登錄,所以針對sshd文件下的root的鎖定參數無需配置。
| c) 當進行遠程管理時,應采取必要措施防止鑒別信息在網絡傳輸過程中被竊聽。 |
這一條沒啥好說的,Linux系統采用SSH,符合
?
這題主要預設點為Windows系統的,那里開啟了telnet服務,要求組策略中配置如下:遠程(RDP)連接要求使用指定的安全層:SSL(TLS 1.0),設置客戶端連接加密級別:高級別。這里就不細說了
2)訪問控制
| c) 應及時刪除或停用多余的、過期的賬戶,避免共享賬戶的存在; |
先看安全策略
?
查看/etc/passwd文件/etc/shadow文件,發現存在多余test賬戶
這和預設問題點一樣,可以看出這道基本送分,9成以上都回答出來了
?
| e) 應由授權主體配置訪問控制策略,訪問控制策略規定主體對客體的訪問規則。 |
安全策略:
這里有兩點,第一點我認為是UID為0的賬戶僅為root,而且sudoers文件里面沒有用戶可以修改其他用戶權限的命令存在。像命令那行,有用戶存在ALL這樣的肯定是不符合的。
?
第二點,僅sysadmin和sysauditor登錄后可su賬戶,去查看這個控制點。具體我忘記了,好像是設置了wheel組的su權限,這兩個賬戶隸屬于wheel組,我具體也測試過,僅這兩個賬戶可su root成功。因為原始記錄丟了,記不太清了。。。
?
然后我們看看這里的預設問題點:
?
可以看出得分率很低,而且我也不確定我的回答是否正確,有知道的大佬可以留言告訴我。
3)安全審計
| a) 應啟用安全審計功能,審計覆蓋到每個用戶,對重要的用戶行為和重要安全事件進行審計; |
安全策略:
?
這里很明顯,我們先正常檢查syslog、audit服務是否正常運行,auditctl -s查看內核狀態enabled值是否為1,這些都正常后,就去查看audit審計的具體規則了。
這里查看/etc/audit/audit.rules,也可以使用auditctl -l查看規則,查詢結果為:
-w /etc/passwd -p rxa
-w /etc/shadow -p rxa
-w /etc/xinetd.conf -p rxa
很明顯這里考察的就是你對audit審計規則配置的理解了,這里少了對“寫”行為的審計,所以提出該點得分
這里的得分率也是還可以的
?
| b) 審計記錄應包括事件的日期和時間、用戶、事件類型、事件是否成功及其他與審計相關的信息。 |
安全策略:
?
所以這一條主要考察的就是ntp服務是否正常啟用
這里通過service ntpd status查看,發現為停止狀態,然后查看ntp.conf文件,也未配置對應的service地址,同時該臺為centos 6.x的機子,沒有chronyd服務,所以只要看ntp即可。
預設問題也是一致的,查看ntp服務的啟動狀態
?
4)入侵防范
| a) 應遵循最小安裝的原則,僅安裝需要的組件和應用程序; |
安全策略:
?
針對Linux來說他這邊預設點就是去查看藍牙組件是否禁用
這道我沒做出來,我不清楚查看這個的命令是啥,百度也沒找到,ps -ef服務進程之類的找過,沒有發現blue關鍵字的進程之類的,有知道的大佬告訴我。反正結果記錄我是直接寫未啟用藍牙組件。
預設問題也是一樣的,就是查這個藍牙組件
?
| b) 應關閉不需要的系統服務、默認共享和高危端口; |
安全策略:
?
這里要求只查看tcp端口,直接netstat -tlnp即可,查看tcp哪些端口在進行監聽,很多人可能只想到了這一步(我當時也是只查看了這個),但是看預設問題看起來留坑了。我們先來看下預設問題:
?
說明這里可能在防火墻的地方給你留坑了?而且得分率也比較低
我猜測這里應該是還要使用 iptables -L -n查看對應防火墻規則。因為結果我當時的查詢情況來看,監聽的TCP端口僅有22、80,但是有可能防火墻有拒絕的規則,導致22(這個不可能,因為我們遠程上去了)或者80(沒有測試連通性)端口沒有放通?暫時猜測是這樣的,因為無從考證了。。
| c) 應通過設定終端接入方式或網絡地址范圍對通過網絡進行管理的管理終端進行限制。 |
安全策略:
?
這里很明顯叫你去查看是否僅這三個地址能遠程訪問服務器。一般我們在/etc/hosts.allow、/etc/hosts.deny中查看是否有相應參數,我覺得他這里很刁鉆,我們先看看我當時看到的這兩個文件下的配置:
hosts.deny文件配置:ssh:all:deny
host.allow文件配置:ssh:10.1.1.101,10.1.1.102,10.1.1.103:allow
是不是覺得好像沒問題?因為給我們分配的地址也是這三個,所以能上去很正常。我第一眼也沒發現有什么問題,但是我可能用了點小聰明,我把地址改成了104,發現還是能上,那么問題就來了,配置肯定哪里配置錯了。再仔細看一眼,他配置為ssh,正確的應該是sshd,所以你指出這個錯誤就能得分了。
預設問題點也是如出一轍,為配置的正確性:
?
5)惡意代碼防范
| 應采用免受惡意代碼攻擊的技術措施或主動免疫可信驗證機制及時識別入侵和病毒行為,并將其有效阻斷。 |
安全策略:
?
這里Linux服務器能力驗證這塊一般安裝的都是clamav,他也不會考你運維的問題,比如安裝錯誤,或者命令有問題什么的,所以你只要能看懂計劃任務就行了。這里我們去/etc/crontab和crontab -l查看下是否有相應的計劃任務。當時的查詢結果為:0 10* root /usr/bin/clamscan -r /var/www/html -l
/var/log/clamav/clamscan.log 但是我們別忘了另外一點,你crond這個服務沒啟動,這個計劃任務是不生效的,所以經查看crond服務處于停止狀態,這個就是不符合的點。
預設問題點:
?
6)數據保密性
| b) 應采用密碼技術保證重要數據在存儲過程中的保密性,包括但不限于鑒別數據、重要業務數據和重要個人信息等。 |
安全策略:發現沒有Linux的,讓你自己去找
?
這里我之前只考慮到了鑒別數據,正常情況下,Linux用戶口令保存在/etc/shadow文件夾中,每行的第二節即為加密后的password字段,根據$類別,該版本采用MD5+salt的方式存儲其用戶口令,這里鑒別數據我就下了符合結論。重要業務數據之類的也不曉得看啥,反正直接cat也都能看,就下了個不符合的結論。
但是,后來和別人溝通,他們說Linux系統根目錄下,有一個叫運維管理密碼之類的文件,打開來里面存儲的是明文的用戶名和口令,所以找到這個問題,可能才是得分點。這個肯定是敏感文件,需要加密存儲。我記得Windows查的時候是有個壓縮包,需要壓縮密碼的。
預設問題點:
?
7)剩余信息保護
| a) 應保證鑒別信息所在的存儲空間被釋放或重新分配前得到完全清除。 |
這條條款安全策略中沒有進行說明,說明要自己去尋找答案。但是我認為這個應該是針對Windows系統來說的,當時Windows系統里面給了你一個mimikatz軟件,并給了使用說明,一步步操作下來發現能抓取存儲在內存中的用戶口令。但Linux可能技術有限,我當時也不清楚這個點該怎么查,直接下的不符合結論,估計也不計入得分點吧。
后來我去網上查詢資料,Linux系統可以通過mimipenguin這個軟件,對Linux系統的用戶的鑒別數據進行獲取,所以也不清楚當時會不會給你配了這個環境?講道理沒這么復雜,先看看預設問題點吧。
預設問題點:很明顯,他這里沒有說Linux的相關問題,應該是主要考察你對Windows系統鑒別信息存儲空間是否得到完全清除的的驗證情況。
?
總結:
總體來說,我還是很幸運的代表公司參加了這一場能力驗證,對自己知識認知、提高都有很大幫助。另外,由于筆者材料保管不善,當時的Windows截圖,Linux會話日志保存在原來電腦,換了臺電腦忘記將這個文檔備份了,所以導致原材料丟失了……目前僅憑當時的記憶來復現了,針對于Windows系統的有點復雜,不太好搞,所以就目前僅聊聊Linux的配置情況吧,以后有機會能再次參加,再進行一下分享。同時,歡迎有想法的小伙伴們,對于能力驗證技術方面的問題進行溝通,如有不正確的及時指正。
總之,等保也是一個成長的過程,能力驗證也幾乎代表了等保公司的測評水平,隨著時代發展,萬萬不能落下對技術能力的提升啊~
?
注:文章來自網絡,如有侵權可聯系刪除,謝謝!
總結
以上是生活随笔為你收集整理的聊聊网络安全等级保护“能力验证”:配置核查(Linux系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GitHub Token的使用
- 下一篇: Homebrew软件包管理器中发现RCE