




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Oracle數(shù)據(jù)庫系統(tǒng)安全配置本標(biāo)準(zhǔn)適用于Unix/Linux操作系統(tǒng)下的Oracle數(shù)據(jù)庫系統(tǒng),版本為8i、9i、10g。1 將Oracle用戶設(shè)置為DBA組的成員查看 dba組下的成員是否有Oracle用戶:cat /etc/group |grep dba 若Oracle用戶不在dba組,則將其加入:usermod -G dba 用戶名2 最小權(quán)限使用規(guī)則加固目的1 應(yīng)該只提供最小權(quán)限給用戶(包括SYSTEM和OBJECT權(quán)限)2 從PUBLIC組中撤回不必要的權(quán)限或角色。(如:UTL_SMTP、UTL_TCP、UTL_HTTP、UTL_FILE、DBMS_RANDOM、DBMS_SQL、DBMS_SYS_SQL、DBMS_BACKUP_RESTORE)加固方法撤銷不需要的權(quán)限和角色,使用SQL語句REVOKE EXECUTE ON SYS.UTL_HTTP FROM PUBLIC;REVOKE EXECUTE ON SYS.UTL_FILE FROM PUBLIC;REVOKE EXECUTE ON SYS.UTL_SMTP FROM PUBLIC;REVOKE SELECT ON ALL_USERS FROM PUBLIC;驗證:OEM管理器中,安全性-用戶-PUBLIC-已授予的對象權(quán)限col pp format a35SELECT s.privilege| ON |s.owner|.|NVL(l.longname, s.table_name) pp, s.grantable FROMsys.dba_tab_privs s, javasnm l WHERE s.table_name = l.short(+) AND s.grantee=PUBLICand s.privilege = EXECUTE and s.table_name like UTL%;3 修改所有系統(tǒng)賬戶默認(rèn)口令,鎖定不需要的賬戶加固目的為了安全考慮,應(yīng)用鎖定Oracle當(dāng)中不需要的用戶;或改變?nèi)笔∮脩舻拿艽a。加固方法在sqlplus中查看所有賬戶及其狀態(tài):select username,account_status from dba_users;修改默認(rèn)賬戶的口令:ALTER USER user_name IDENTIFIED BY password;鎖定不需要的用戶,使用SQL語句:ALTER USER user PASSWORD EXPIRE;注意鎖定MGMT_VIEW、DBSNMP、SYSMAN帳號或修改密碼。(如果要使用DBConsole ,MGMT_VIEW,DBSNMP 、SYSMAN不能鎖定,請修改密碼)DIP、EXFSYS、OUTLN、TSMSYS、WMSYS默認(rèn)已鎖定,請驗證。4 刪除多余自建賬號drop user user_name cascade;5 $ORACLE_HOME/bin目錄權(quán)限保護加固目的確保對$ORACLE_HOME/bin目錄的訪問權(quán)限盡可能少加固方法運行命令:chown -R oracle:dba $ORACLE_HOME/bin (此命令在root用戶下操作)驗證:ls -l $ORACLE_HOME/bin 確保該目錄下的文件屬主為oracle用戶,且其他用戶沒有寫權(quán)限。6 監(jiān)聽listener作ip訪問限制修改(需重啟監(jiān)聽)$ORACLE_HOME/network/admin/sqlnet.ora :tcp.validnode_checking=yestcp.invited_nodes=(localhost, 本機ip, 應(yīng)用服務(wù)器ip,管理機ip等)重啟監(jiān)聽:lsnrctl stop;lsnrctl start。7 關(guān)閉遠(yuǎn)程操作系統(tǒng)認(rèn)證加固目的設(shè)置正確識別客戶端用戶,并限制操作系統(tǒng)用戶數(shù)量(包括管理員權(quán)限、root權(quán)限、普通用戶權(quán)限等)加固方法1 使用文本方式,打開數(shù)據(jù)庫配置文件init.ora;設(shè)置參數(shù)REMOTE_OS_AUTHENT值為FALSE (SAP 系統(tǒng)不可設(shè)置為False)2 在數(shù)據(jù)庫的賬戶管理中刪除不必要的操作系統(tǒng)賬號設(shè)置(需重啟數(shù)據(jù)庫):alter system set remote_os_authent=false scope=spfile;驗證:SQL show parameter remote_os_authentNAME TYPE VALUE- - -remote_os_authent boolean FALSE8 修改默認(rèn)的監(jiān)聽端口修改(需重啟監(jiān)聽)$ORACLE_HOME/network/admin/listener.ora:(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)修改PORT的值為新的監(jiān)聽端口-(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 3521)確認(rèn):lsnrctl status9 監(jiān)聽程序的管理加固目的通過設(shè)置listener.ora文件中的參數(shù)ADMIN_RESTRICTIONS_listener_name來防止遠(yuǎn)程對監(jiān)聽程序的非授權(quán)管理。加固方法在$ORACLE_HOME/network/admin/listener.ora文件中,設(shè)置ADMIN_RESTRICTIONS_(listener_name)=ON。LISTENER加訪問密碼:(only 9i)$ORACLE_HOME/network/admin/listener.oraPASSWORDS_LISTENER =10g : (監(jiān)聽默認(rèn)為本地操作系統(tǒng)帳號認(rèn)證,即禁止遠(yuǎn)程管理)驗證:Lsnrctl status,查看輸出Security ON: Local OS Authentication10 密碼策略加固目的在Oracle,我們可以通過修改用戶概要文件來設(shè)置密碼的安全策略,可以自定義密碼的復(fù)雜度。在概要文件中有以下參數(shù)是和密碼安全有關(guān)心的:FAILED_LOGIN_ATTEMPTS:最大錯誤登錄次數(shù)PASSWORD_GRACE_TIME:口令失效后鎖定時間PASSWORD_LIFE_TIME:口令有效時間PASSWORD_LOCK_TIME:登錄超過有效次數(shù)鎖定時間PASSWORD_REUSE_MAX:口令歷史記錄保留次數(shù)PASSWORD_REUSE_TIME:口令歷史記錄保留時間PASSWORD_VERIFY_FUNCTION:口令復(fù)雜度審計函數(shù)加固方法解釋:PASSWORD_LIFE_TIME:口令有效時間口令使用期限(按照國網(wǎng)要求,三個月修改一次密碼,即90天)。password_grace_time 指的是在你的密碼已經(jīng)過期以后, 第一次登錄時間開始往后統(tǒng)計, 使系統(tǒng)可以使用的日期限度.PASSWORD_REUSE_TIME是重用密碼的最小時間間隔,單位是天??梢越o出整數(shù)或分?jǐn)?shù),如1/1440表示1分鐘(出于效率的考慮,oracle不會每分鐘都去進(jìn)行檢查,一般來說,有5分鐘左右的誤差,因此如果這個數(shù)小于1/144則沒有多大的意義)。PASSWORD_REUSE_MAX是重用密碼前更換密碼的最小次數(shù)。ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 60;(三級系統(tǒng)應(yīng)設(shè)置在10次以內(nèi),二級系統(tǒng)在20次以內(nèi))ALTER PROFILE default LIMIT PASSWORD_LOCK_TIME 0.5;修改Oracle提供的驗證函數(shù)文件$ORACLE_HOME/rdbms/admin/utlpwdmg.sql其中IF length(password) 4 一行改為 8,并將最后一段修改為ALTER PROFILE DEFAULT LIMITPASSWORD_LIFE_TIME 90FAILED_LOGIN_ATTEMPTS 20 PASSWORD_LOCK_TIME 30/1440PASSWORD_VERIFY_FUNCTION verify_function;在sqlplus中執(zhí)行start $ORACLE_HOME/rdbms/admin/utlpwdmg.sql設(shè)置后,密碼復(fù)雜度必須包含字母、數(shù)字、標(biāo)點(密碼不區(qū)分大小寫),最小長度為8。最大錯誤登錄次數(shù)為20次,賬號鎖定時間為30分鐘驗證:OEM安全性概要文件select * from dba_profiles; 創(chuàng)建驗證函數(shù):(建議使用sys來創(chuàng)建該函數(shù),否則可能出現(xiàn)問題)CREATE OR REPLACE FUNCTION verify_function(username varchar2, password varchar2, old_password varchar2) RETURN boolean IS n boolean; m integer; differ integer; isdigit boolean; ischar boolean; ispunct boolean; digitarray varchar2(20); punctarray varchar2(25); chararray varchar2(52);BEGIN digitarray:= 0123456789; chararray:= abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; punctarray:=!#$%&()*+,-/:;?_; - Check if the password is same as the username IF NLS_LOWER(password) = NLS_LOWER(username) THEN raise_application_error(-20001, Password same as or similar to user); END IF; - Check for the minimum length of the password IF length(password) 8 THEN raise_application_error(-20002, Password length less than 8); END IF; - Check if the password is too simple. A dictionary of words may be - maintained and a check may be made so as not to allow the words - that are too simple for the password. IF NLS_LOWER(password) IN (welcome, database, account, user, password, oracle, computer, abcd) THEN raise_application_error(-20002, Password too simple); END IF; - Check if the password contains at least one letter, one digit and one - punctuation mark. - 1. Check for the digit isdigit:=FALSE; m := length(password); FOR i IN 1.10 LOOP FOR j IN 1.m LOOP IF substr(password,j,1) = substr(digitarray,i,1) THEN isdigit:=TRUE; GOTO findchar; END IF; END LOOP; END LOOP; IF isdigit = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation); END IF; - 2. Check for the character ischar:=FALSE; FOR i IN 1.length(chararray) LOOP FOR j IN 1.m LOOP IF substr(password,j,1) = substr(chararray,i,1) THEN ischar:=TRUE; GOTO findpunct; END IF; END LOOP; END LOOP; IF ischar = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation); END IF; - 3. Check for the punctuation ispunct:=FALSE; FOR i IN 1.length(punctarray) LOOP FOR j IN 1.m LOOP IF substr(password,j,1) = substr(punctarray,i,1) THEN ispunct:=TRUE; GOTO endsearch; END IF; END LOOP; END LOOP; IF ispunct = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation); END IF; - Check if the password differs from the previous password by at least - 3 letters IF old_password IS NOT NULL THEN differ := length(old_password) - length(password); IF abs(differ) 3 THEN IF length(password) length(old_password) THEN m := length(password); ELSE m := length(old_password); END IF; differ := abs(differ); FOR i IN 1.m LOOP IF substr(password,i,1) != substr(old_password,i,1) THEN differ := differ + 1; END IF; END LOOP; IF differ 3 THEN raise_application_error(-20004, Password should differ by at least 3 characters); END IF; END IF; END IF; - Everything is fine; return TRUE ; RETURN(TRUE);END;/11 數(shù)據(jù)庫操作審計加固目的ORACLE數(shù)據(jù)庫具有對其內(nèi)部所有發(fā)生的活動的審計能力,審計日志一般放在sys.aud$表中,也可以寫入操作系統(tǒng)的審計跟蹤文件中??蓪徲嫷幕顒佑腥N類型:登錄嘗試、數(shù)據(jù)庫活動和對象存取,缺省情況下,數(shù)據(jù)庫不啟動審計,要求管理員配置數(shù)據(jù)庫后才能啟動審計。加固方法使用文本方式,打開數(shù)據(jù)庫配置文件init.ora,更改以下參數(shù)配置AUDIT_TRAILTrue。init.ora所在路徑:$ORACLE_HOME/database/ (windows)$ORACLE_HOME/dbs/ (UnixLinux)接下來在sqlplus中執(zhí)行以下兩條命令:alter system set audit_trail=OS scope=spfile;alter system set Audit_sys_operations=true scope=spfile;默認(rèn)為false,當(dāng)設(shè)置為true時,所有sys用戶(包括以sysdba,sysoper身份登錄的用戶)的操作都會被記錄驗證:SQL show parameter auditNAME TYPE VALUE- - -audit_sys_operations boolean TRUEaudit_trail string OSTRANSACTION_AUDITING :the transaction layer generates a special redo record which contains session and user information.These records might be useful if using a redo log analysis tool.AUDIT_FILE_DEST指定了當(dāng)審?fù)獠繉徲浳募繕?biāo)存儲路徑,其缺省值是$ORACLE_HOME/rdbms/audit/ipeipei/blog/item/2b3759825da6d4a20cf4d271.html/ruixj/archive/2007/04/17/1568095.aspxaudit_file_dest string /opt/oracle/admin/cognos/adump監(jiān)聽器日志 錯誤登錄/opt/oracle/product/10.2.0/db_1/network/log/listener.log12 安全補丁的更新加固目的及時更新數(shù)據(jù)庫的安全補丁,減少數(shù)據(jù)庫系統(tǒng)可能受到的攻擊。加固方法查看,下載并安裝相關(guān)的安全補丁。參考Oracle廠商建議,僅對已發(fā)現(xiàn)的特定漏洞或缺陷安裝相應(yīng)補丁。13 Oracle 數(shù)據(jù)字典的保護加固目的設(shè)置保護后,可防止其他用戶(具有ANY system privileges)使用數(shù)據(jù)字典時,具有相同的ANY權(quán)限。加固方法使用文本方式,打開數(shù)據(jù)庫配置文件init.ora;更改以下參數(shù)O7_DICTIONARY_ACCESSIBILITY。1Oracle 9i、10g:缺省值是False2Oracle 8i:缺省值是True,需要改成False3如果用戶必須需要該權(quán)限,賦予其權(quán)限SELECT ANY DICTIONARY驗證:SQL show parameter O7_DICTIONARY_ACCESSIBILITYNAME TYPE VALUE- - -O7_DICTIONARY_ACCESSIBILITY boolean FALSE14 關(guān)閉Extproc功能加固目的由于extproc存在安全問題允許用戶不進(jìn)行身份認(rèn)證就可以調(diào)用系統(tǒng)函數(shù),因此,如果不需要該功能必須關(guān)閉。加固方法修改TNSNAMES.ORA和LISTENER.ORA文件,刪除以下條目:l icache_extprocl PLSExtprocl Extproctnsnames.ora :#EXTPROC_CONNECTION_DATA =# (DESCRIPTION =# (ADDRESS_LIST =# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)# )# (CONNECT_DATA =# (SID = PLSExtProc)# (PRESENTATION = RO)# )# )listener.ora :# (SID_DESC =# (SID_NAME = PLSExtProc)# (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)# (PROGRAM = extproc)# )# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)15 DBSNMP用戶的保護加固目的Oracle數(shù)據(jù)庫系統(tǒng)如果采用典型安裝后,自動創(chuàng)建一個叫做DBSNMP的用戶,該用戶允許Oracle系統(tǒng)的智能代理(intelligent Agent),該用戶的缺省密碼也是“DBSNMP”。如果忘記修改該用戶的口令,任何人都可以通過該用戶存取數(shù)據(jù)庫系統(tǒng)。其他有威脅的帳號還有:CTXSYS,MDSYS,ORDPLUGINS,ORDSYS,OUTLN等。加固方法鎖定該賬號,或者更換密碼16 SYS用戶加固目的Oracle數(shù)據(jù)庫系統(tǒng)安裝后,自動創(chuàng)建一個叫做SYS的數(shù)據(jù)庫管理員用戶,當(dāng)該用戶sysdba方式連接數(shù)據(jù)庫時,便具有全部系統(tǒng)權(quán)限,因而對它的保護尤為重要。加固方法更換SYS用戶密碼,符合密碼復(fù)雜度要求;新建一個DBA用戶,作為日常管理使用。17 本地緩存區(qū)溢出防護加固目的oracle程序存在本地緩沖區(qū)溢出。在傳遞命令行參數(shù)給oracle程序時缺少充分的邊界緩沖區(qū)檢查,可導(dǎo)致以oracle進(jìn)程權(quán)限在系統(tǒng)上執(zhí)行任意代碼,需要進(jìn)行有效加固。加固方法以系統(tǒng)管理員權(quán)限登錄操作系統(tǒng),進(jìn)入Oracle安裝目錄運行:chmod o-x oracle加強對Oracle文件的可執(zhí)行控制驗證非oracle帳號對該文件沒有讀取、運行權(quán)限:ll $ORACLE_HOME/bin/oracle-rwsr-s- 1 oracle dba 110758976 2008-01-23 /opt/oracle/product/10.2.0/db_1/bin/oraclechmod o-x $ORACLE_HOME/bin/oracle18 日志目錄SQL show parameter dumpNAME TYPE VALUE- - -background_core_dump string partialbackground_dump_dest string /opt/oracle/admin/portaldb/bdumpcore_dump_dest string /opt/oracle/admin/portaldb/cdumpmax_dump_file_size string UNLIMITEDshadow_core_dump string partialuser_dump_dest string /opt/oracle/admin/portaldb/udumpSQL show parameter auditNAME TYPE VALUE- - -audit_file_dest string /opt/oracle/admin/portaldb/adump19 啟用資源限制Profile 分兩部分(資源參數(shù)和密碼參數(shù)),resource_limit為 TRUE 限定資源參數(shù)(resource parameters)設(shè)置有效;不管 resource_limit 的值為 TRUE 或 FALSE密碼參數(shù)(password parameters)設(shè)置始終有效。alter system set resource_limit=true scope=both;常用資源參數(shù)(除非應(yīng)用程序有明確的資源規(guī)劃,一般不需修改):CPU_PER_SESSION、CPU_PER_CALL、LOGICAL_READS_PER_SESSION、LOGICAL_READS_PER_CALL、IDLE_TIME、CONNECT_TIME、PRIVATE_SGA20 監(jiān)聽器跟蹤級別可根據(jù)需要設(shè)定監(jiān)聽級別,開啟跟蹤會對性能有所影響。監(jiān)聽器跟蹤級別有四個狀態(tài):OFF - 未啟用跟蹤功能,是默認(rèn)值。USER - 用戶級別,標(biāo)識用戶導(dǎo)致的錯誤條件。ADMIN - 數(shù)據(jù)庫管理員級別,標(biāo)識特定的安裝問題。SUPPORT - 客戶支持人員級別,跟蹤文件可能會變得很大。建議在進(jìn)行網(wǎng)絡(luò)問題診斷時開啟跟蹤功能。 LSNRCTL set trc_directory /network/trace LSNRCTL set trc_file .trc LSNRCTL set trc_level LSNRCTL save_config21 XDB 服務(wù)Oracle XDB 是 Oracle 的 XML 數(shù)據(jù)庫,Oracle XDB 數(shù)據(jù)可以通過基于 HTTP 服務(wù)的8080端口或者基于 FTP 服務(wù)的2100端口訪問。XDB 的 HTTP 和 FTP 服務(wù)存在多個緩沖區(qū)溢出問題,遠(yuǎn)程攻擊者可以利用這些漏洞對服務(wù)進(jìn)行拒絕服務(wù)攻擊,精心提交字符串?dāng)?shù)據(jù)可能以服務(wù)進(jìn)程權(quán)限在系統(tǒng)上執(zhí)行任意指令。show parameter dispatchers 如為空,表示無該服務(wù)。去掉相應(yīng)的數(shù)據(jù)庫的初始化參數(shù)中的如下行: dispatchers=(PROTOCOL=TCP) (SERVICE=sidXDB) 說明:sid 為數(shù)據(jù)庫的實例名,再重啟數(shù)據(jù)庫。22 SYS.DBMS_DEFER_SYS.DELETE_TRAN 存在 SQL 注入漏洞DELETE_TRAN 對 DESTINATION 參數(shù)的處理存在問題,可能導(dǎo)致 SQL 注入攻擊。攻擊者
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程技術(shù)服務(wù)勞動協(xié)議年
- 項目管理中的能力提升試題及答案
- 工程項目管理人才發(fā)展試題及答案
- 網(wǎng)絡(luò)游戲開發(fā)測試與上線合同
- 工程項目風(fēng)險控制的方法試題及答案
- 小學(xué)生生命安全教育
- 提升企業(yè)核心競爭力的總結(jié)計劃
- 通過社交反饋增強品牌價值計劃
- 2025年工程項目管理核心能力試題及答案
- 工程經(jīng)濟學(xué)的應(yīng)用實例分析試題與答案
- 山西建投集團考試真題
- DL∕T 1254-2013 差動電阻式監(jiān)測儀器鑒定技術(shù)規(guī)程
- 足浴場所衛(wèi)生管理要求
- 2024年遼寧省中考英語試題(附答案)
- 鍋爐安裝合同協(xié)議書
- 【必考題】中考初中三年級政治上模試題附答案
- DL-T5496-2015220kV-500kV戶內(nèi)變電站設(shè)計規(guī)程
- DL-T5440-2020重覆冰架空輸電線路設(shè)計技術(shù)規(guī)程
- 2024年江西省公安機關(guān)警務(wù)輔助人員條例訓(xùn)練題庫321題及答案
- 2069-3-3101-002WKB產(chǎn)品判定準(zhǔn)則-外發(fā)
- MOOC 市場調(diào)查與研究-南京郵電大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論