軟件安全測試之系統安全測試

書接上文:~應用安全測試設計~


一、操作系統安全

1. 操作系統不允許存在Nessus掃描出的高風險級別漏洞

*注:Nessus使用方法簡介

對於各服務器的操作系統採用Nessus進行漏洞掃描:
1、登錄Nessus;
2、創建掃描策略:點擊“Policies”菜單,再點擊“Add”按鈕,在第一步中設置掃描策略的名稱;在第二步配置超級管理員賬號口令;在第三步,點擊“Disable All”按鈕,在“Familles”框中選擇“Policy Compliance”,在“Policy Compliance”的“Plugins”框中選擇對應的系統類型(如Unix系統是21157,window系統是21156),即使該Plugins圈變綠,然後點擊“Submit”;在第四步,在“Plugin”中選擇對應的操作系統(例如Unix系統的選擇“Unix Compliance Checks”,windows系統選擇“WindowsComplianceChecks”),然後導入本用例附件“CIS Compliance Audit Policies.rar”中對應的audit文件,然後點擊“Submit”按鈕,完成掃描策略配置;
3、點擊“Scans”菜單,點擊“Add”按鈕,創建新的掃描任務,“Policy”選擇步驟2創建的掃描策略,“Scan Targets”中輸入測試環境的IP地址;點擊“Launch Scan”按鈕,開始掃描;
4、等到“Scans”窗口中,步驟3啓動的掃描任務不見了之後,表明掃描結束了,點擊“Reports”菜單,查看對應的掃描結果報告。


2. 通用操作系統安全補丁

對於基於通用操作系統的產品,檢查其配套發佈資料中是否包含公司發佈的最新操作系統安全補丁的列表,以及對這些補丁的兼容性測試結果。


3. 通用操作系統安全補丁納入年度補丁計劃


4. 遠程登錄支持 SSH 協議

使用putty軟件,訪問被測操作系統的22端口,是否能夠正常登錄


5. 安全防毒軟件


二、數據庫安全

1. 數據庫安全配置基本要求

可以採用NGSSQuirreL進行掃描是否使用廠商的缺省口令:
1、運行數據庫對應的NGSSQuirreL軟件(例如Oracle對應NGSSQuirreL for Oracle);
2、根據掃描嚮導“Scan Wizard”配置掃描對象。以Oracle爲例,第一步,直接點擊“Next”按鈕;第二步,在“Host”中填要掃描的IP地址,在“Port”中填寫Oracle的監聽端口(默認爲1521),點擊“Next”按鈕;第三步,根據實際情況配置Oracle Listener的密碼,然後點擊“OK”按鈕(如果沒有設置密碼則直接點擊“Cancel”按鈕);第四步,點擊下拉列表框選擇要掃描的數據庫實例,然後點擊“OK”;第五步,在“Username”中填“system”,在“Password”中填system用戶的實際密碼(默認是manager),如果“Instance”爲空,則填入要掃描的Oracle實例名,然後點擊“Next”按鈕;第六步,點擊“Scan”按鈕,開始掃描。
3、掃描工具窗口底部的狀態欄顯示“Scan Finished”,表明掃描結束了,點擊“File”菜單,選擇“Export Report to”-“HTML File”,輸出掃描報告。
4、查看數據庫掃描報告。
也可以手工測試是否使用廠商的缺省口令:
oracle11g之前版本採用Checkpwd工具掃描,運行CMD後命令如下
checkpwd system/manager@//10.71.99.12:1521/BME password_file.txt
如果pc已經安裝客戶端並且配置了數據源可直接使用
checkpwd system/manager@數據源名字password_file.txt
注:其中藍色部分要根據實際情況填寫。
Oracle11g獲取使用默認口令的用戶SQL:select * from dba_users_with_defpwd
2.使用informix/DB2/LDAP/內存數據庫/MySQL等其他類型數據的產品,檢查訪問數據庫的用戶缺省口令(可通過查看建用戶腳本或者密碼修改指南)
手工檢查產品的數據庫中非鎖定/失效用戶的缺省口令複雜度需滿足“口令安全要求”:
可通過查看建用戶腳本或者密碼修改指南
注:非標數據庫必須進行該項手工測試用例設計,需要收集所有安裝運行啓動初始化等各過程中的所有默認賬號、接口、入口、口令等。

預期結果:

數據庫口令禁止使用數據庫廠商的缺省口令,且口令複雜度需滿足“口令安全要求”
針對NGSSQuirreL掃描報告中不存在默認帳號密碼的漏洞,也就是說掃描報告的“Vulnerability”列查找不到“Default Password”的字符串。
備註:如果確定該賬號已經鎖定無法正常訪問,該賬號被暴出來的“Default Password”可以認爲是誤報。
針對手工測試方法:
1.oracle11g之前版本掃描報告中不存在默認口令、弱口令,也就是說掃描報告中“Weak passwords found”的值爲0(此工具不支持ORACLE11掃描。)。
Oracle11g查詢結果爲空,也就是不存在使用默認口令的數據庫用戶(鎖定/失效用戶除外)。
2.使用informix/DB2/LDAP等其他類型數據的產品沒有使用數據庫廠商的默認口令
口令安全要求:
1、口令長度至少6個字符(特權用戶至少8個字符);
2、口令必須包含如下至少兩種字符的組合:
      -至少一個小寫字母;
      -至少一個大寫字母;
      -至少一個數字;
      -至少一個特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?  和空格
3、口令不能和帳號或者帳號的倒寫一樣;


2. 數據庫帳戶最小授權


3. 對於有監聽器功能的數據庫(如Oracle的listener.ora)需要設置監聽器密碼或者設置爲本地操作系統驗證。


4. 數據庫中的重要文件在OS下的權限:

1.$ORACLE_HOME/bin目錄下的文件必須屬於oracle用戶、dba組,且權限小於或等於755
2.$ORACLE_HOME目錄下的文件必須屬於oracle用戶、dba組,且權限小於或等於750(不包括$ORACLE_HOME/bin中的文件和externaljob.ora)
3.$ORACLE_HOME/network/admin目錄下的文件必須屬於oracle用戶、dba組,且權限小於或等於640
4.控制文件、數據文件、聯機日誌文件必須屬於oracle用戶、dba組,且權限均需要設置爲660(如果使用ASM管理,則不需要設置權限) 
5.歸檔日誌文件必須屬於oracle用戶、dba組,且權限需要小於等於750
6.密碼文件必須屬於oracle用戶、dba組,且權限需要設置爲640
7.pfile,spfile文件必須屬於oracle用戶、dba組,且權限需要設置爲640
8.user_dump_dest、background_dump_dest、core_dump_dest指向的目錄必須屬於oracle用戶、dba組,且權限需要設置爲640
9.diagnostic_dest指向的目錄必須屬於oracle用戶、dba組,且權限需要設置爲660
10.ifile必須屬於oracle用戶、dba組,且權限需要設置爲750
11.$ORACLE_HOME/bin/tkprof文件必須屬於root用戶、dba組,且權限需要設置爲750
12.externaljob.ora文件必須屬於root用戶、dba組,且權限需要設置爲640
13.ASM磁盤必須屬於oracle/grid用戶、dba/oinstall組,且權限需要設置爲660


5. 使用單獨的操作系統帳號來運行數據庫

linux下參考命令返回運行oracle數據庫的操作系統帳號:ps -ef | grep ora_|awk '{print $1}'


6. 數據庫若存在多個默認帳號,必須將不使用的帳號禁用或刪除

對於oracle,重點檢查DBA_USERS表中的賬戶名


7. 數據庫安全補丁


三、Web容器安全

1. 使用Appscan等業界主流掃描工具,確保Web容器不存在高風險級別漏洞

至於appscan的使用,百度上有大量教程,這裏就不多說了。


關於系統安全設置的話題,這裏只是列出提綱;具體問題和解決辦法以後有時間會在新文章中補全。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章