當前位置:首頁 » 數據倉庫 » 資料庫加固必須要做的
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫加固必須要做的

發布時間: 2022-08-26 15:10:03

1. 如何加固主機系統

從實際運作的層面來看,IT安全問題圍繞三個基本事實:其一,IT系統不可能絕對可靠地識別用戶的身份。其二,授權用戶可能會被利用;其三,如果黑客獲得了對主機的訪問權,那麼該主機就可能被闖入。後者,即為主機加固安全,是極其重要的一道防線。

方面,主機等高價值目標往往吸引的是黑客中的高手;另一方面,如果保存在主機上的數據越重要,用戶對它的安全投入就越大,正所謂是「魔高一尺,道高一丈」的較量。

在過去的幾年間,現實世界的一些犯罪組織一直在積極招攬黑客,從事針對某些目標的犯罪活動,比如最近黑客試圖從住友銀行的英國分行盜竊約2億英鎊。此類犯罪活動結合了對IT系統獲得物理訪問權和黑客行為,這意味著單單在主機和網際網路之間設置性能可靠的防火牆已不足以保護你的數據。

如今,黑客完全有可能透過防火牆將黑客工具裝入網路發動內部進攻。由於眾多黑客工具在網上能夠免費獲得,加上USB存儲設備隨手可得,只要閑置的USB埠能夠實際訪問公共場所(比如接待處),就有可能利用網路上的任何PC發動攻擊。為此,你要開始考慮對主機進行加固,以防直接從網路內部發動的攻擊。

斷開網路連接

要加強主機安全,最明顯的一個辦法就是,把主機與不需要連接的部分斷開。如果黑客無法碰到主機,非法闖入也就無從談起。

關閉埠

提高主機安全的第二個辦法就是,真正使用主機內置的安全特性。比如,默認配置的Windows伺服器允許任何用戶完全可以訪問任何目錄下的任何文件。對這種配置進行修改非常容易,但取很少有網路管理員去修改。如果用戶對某個文件沒有擁有權,就不應該享有自動訪問該文件的許可權。如果你改了配置,那麼即便黑客闖入了某個賬戶,他也未必能夠訪問該主機上的所有文件。

另外,對外開的埠越少,黑客用來危及系統安全的辦法也就越少。進入Windows MMC管理器禁用不需要的服務,主機上運行的進程越少,意味著黑客可以利用的潛在故障以及安全漏洞就越少。

限制訪問

你可以採取的另一個措施就是切斷主機驗證和應用管理的聯系。擁有管理主機的許可權,並不意味著有權可以管理其他功能,比如主機運行的資料庫引擎或者其他應用。這可能會給需要全局管理許可權的用戶帶來不便,但它卻使非法闖入資料庫的難度加大了一倍,因為黑客必須攻破兩個用戶身份和口令。同樣,你可以把其他管理任務授權給特定的用戶組,但不授予主機(或者網路)的全局管理許可權。比如說,你可以允許用戶管理列印機,但不授予控制列印機的主機的全部管理許可權。你還可以禁止沒要求加班的員工下班後登錄主機。其實,大多數操作系統都內置了所有這些特性,你根本用不著投入資金,需要的只是學習並使用這些特性。

加強保護

視主機操作系統和運行的網路環境而定,你可以要求使用令牌或者生物識別技術進行驗證,用於管理員對任何主機進行訪問,你還可以限制管理員只能訪問安全區域的某個子網。這樣,如果管理員想添加一個新用戶,就必須在特定的安全區域,通過特定子網上的PC來進行添加,還必須提供用戶名、口令、採用生物識別技術的身份以及令牌碼。

改變操作系統

不過,如果你需要更高的安全級別,恐怕就得採用專門技術了。不要單單把Windows作為伺服器的操作系統。Windows是一款非常流行的伺服器操作系統,但每個黑客都知道,就潛在回報而言,花時間查找Windows操作系統的安全漏洞,遠比花同樣時間闖入某個版本的Unix大得多。即使你買不起所選擇的某個Unix版本的源代碼許可證,Unix較之Windows也有一個優點:你可以重新構建內核,只包含主機中真正需要的那些部分。相比之下,Windows在這方面的內核隨帶了大量的代碼,你沒法刪除,也沒法全部關閉。

2. 如何確保數據安全

1.數據脫敏

數據脫敏是保證數據安全的最基本的手段,脫敏方法有很多,最常用的就是使用可逆加密演算法,對入倉每一個敏感欄位都需要加密。比如手機號,郵箱,身份證號,銀行卡號等信息

2.數據許可權控制

需要開發一套完善的數據許可權控制體系,最好是能做到欄位級別,有些表無關人員是不需要查詢的,所以不需要任何許可權,有些表部分人需要查詢,除數據工程師外,其他人均需要通過OA流程進行許可權審批,需要查看哪些表的哪些欄位,為什麼需要這個許可權等信息都需要審批存檔。

3.程序檢查

有些欄位明顯是敏感數據,比如身份證號,手機號等信息,但是業務庫並沒有加密,而且從欄位名來看,也很難看出是敏感信息,所以抽取到數據倉庫後需要使用程序去統一檢測是否有敏感數據,然後根據檢測結果讓對應負責人去確認是否真的是敏感欄位,是否需要加密等。

4.流程化操作

流程化主要是體現在公司內部取數或者外部項目數據同步,取數的時候如果數據量很大或者包含了敏感信息,是需要提OA 審批流程的,讓大家知道誰要取這些數據,取這些數據的意義在哪,出了問題可以回溯,快速定位到責任人。開發外部項目的時候,不同公司之間的數據同步,是需要由甲方出具同意書的,否則的話風險太大。

5.敏感sql實時審查及操作日誌分析

及時發現敏感sql的執行並詢問責任人,事後分析操作日誌,查出有問題的操作。

6.部門重視數據安全

把數據安全當做一項KPI去考核,讓大家積極的參與到數據安全管理當中去。

3. 簡述oracle安全加固從哪幾個方面入手加固

1.安全加固的檢查方向
2.安全加固檢查safeCheck.sh
3.安全加固執行safeExec.sh

1.安全加固的檢查方向

1.1.sysdba用戶遠程登錄限制(查看Oracle登錄認證方式)

檢查:
show parameter remote_login_passwordfile

整改:
alter system set remote_login_passwordfile = NONE scope=spfile;
註:需要重啟庫生效。

1.2.是否開啟了資源限制

show parameter resource_limit

alter system set resource_limit = true;

1.3.登錄失敗的帳號鎖定策略

select * from dba_profiles order by 1;
關注FAILED_LOGIN_ATTEMPTS的設定值

1.4.資料庫用戶帳號檢查

檢查:
select username,profile from dba_users where account_status='OPEN';

整改:
鎖定用戶:alter user <用戶名> lock;
刪除用戶:drop user <用戶名> cascade;

1.5.範例資料庫帳號

是否存在默認的範例資料庫賬號scott等,可以考慮刪除scott賬號

1.6.dba許可權賬戶檢查

select username,profile from dba_users where account_status='OPEN';

1.7.資料庫賬戶口令加密存儲

11g數據裡面的賬戶口令本來就是加密存儲的。

1.8.資料庫密碼安全性校驗函數

select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';

1.9.設定信任IP集

只需在伺服器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中設置以下行:

tcp.validnode_checking = yes
tcp.invited_nodes = (ip1,ip2…)
1.10.超時的空閑遠程連接是否自動斷開

根據實際需要設置合適的數值。
在$ORACLE_HOME/network/admin/sqlnet.ora中設置下面參數:
SQLNET.EXPIRE_TIME=10

2.安全加固檢查safeCheck.sh

#!/bin/bash
#name:safeCheck.sh
#function:to create a safe check report.
#usage: oracle用戶登錄,執行 sh safeCheck.sh > /tmp/safeCheck.log

#logon database
sqlplus -S / as sysdba <<EOF

--format
prompt ============================
prompt == format
prompt ============================
prompt
set linesize 140 pagesize 50
col username for a30
col profile for a30
col resource_name for a30
col limit for a30

--check
prompt ============================
prompt == 1.sysdba用戶遠程登錄限制
prompt ============================
prompt
show parameter remote_login_passwordfile
prompt 結果應為none.

prompt ======================
prompt == 2.resource_limit
prompt ======================
prompt
show parameter resource_limit
prompt 結果應為true.

prompt ===========================
prompt == 3.登錄失敗的帳號鎖定策略
prompt ===========================
prompt
select * from dba_profiles order by 1;
prompt 關注FAILED_LOGIN_ATTEMPTS參數

prompt ===========================
prompt == 4.資料庫用戶帳號檢查
prompt ===========================
prompt
select username,profile from dba_users where account_status='OPEN';
prompt 正常使用的用戶列表

prompt ==========================
prompt == 5.範例資料庫帳號
prompt ==========================
prompt
select * from all_users order by created;
prompt 關注有無示例賬戶scott

prompt ===========================
prompt == 6.dba許可權賬戶檢查
prompt ===========================
prompt

prompt ===========================
prompt == 7.資料庫賬戶口令加密存儲
prompt ===========================
prompt

prompt =============================
prompt == 8.資料庫密碼安全性校驗函數
prompt =============================
prompt
select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';
prompt 結果應該不為null

--logoff database
EOF

# check the files
echo ===================
echo == 9.設定信任IP集
echo ===================
echo
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下
#tcp.validnode_checking = yes
#tcp.invited_nodes = (ip1,ip2…)

echo ===================================
echo == 10.超時的空閑遠程連接是否自動斷開
echo ===================================
echo
#根據實際需要設置合適的數值。
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下一行
#SQLNET.EXPIRE_TIME=10
3.安全加固執行safeExec.sh

#!/bin/bash
#name:safeExec.sh
#function:to execute the script for safe.
#usage: oracle用戶登錄,執行 sh safeExec.sh > /tmp/safeExec.log

#logon database
sqlplus -S / as sysdba <<EOF

--format
prompt ============================
prompt == format
prompt ============================
set linesize 140 pagesize 50
col username for a30
col profile for a30
col resource_name for a30
col limit for a30

--execute
prompt ============================
prompt == 1.sysdba用戶遠程登錄限制
prompt ============================
alter system set remote_login_passwordfile=none scope=spfile;

prompt ======================
prompt == 2.resource_limit
prompt ======================
alter system set resource_limit=true;

prompt ===========================
prompt == 3.登錄失敗的帳號鎖定策略
prompt ===========================
alter profile default limit FAILED_LOGIN_ATTEMPTS 10;

prompt ===========================
prompt == 4.資料庫用戶帳號檢查
prompt ===========================
--select username,profile from dba_users where account_status='OPEN';
prompt I think I have nothing to do in this step.

prompt ===========================
prompt == 5.範例資料庫帳號
prompt ===========================
prompt 是否刪除範例scott用戶?
--drop user scott cascade;

prompt ===========================
prompt == 6.dba許可權賬戶檢查
prompt ===========================
prompt I think I have nothing to do in this step.

prompt ===========================
prompt == 7.資料庫賬戶口令加密存儲
prompt ===========================
prompt 11g版本,資料庫層面就是加密的嘛~

prompt =============================
prompt == 8.資料庫密碼安全性校驗函數
prompt =============================
prompt 執行創建安全性校驗函數的腳本
@?/rdbms/admin/utlpwdmg.sql

--logoff database
EOF

# check the files
echo ===================
echo == 9.設定信任IP集
echo ===================
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下
#tcp.validnode_checking = yes
#tcp.invited_nodes = (ip1,ip2…)

echo ===================================
echo == 10.超時的空閑遠程連接是否自動斷開
echo ===================================
#根據實際需要設置合適的數值。
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下一行
#SQLNET.EXPIRE_TIME=10
針對第9和第10步驟中的sqlnet.ora配置文件示例:

注意如果是ASM實例,sqlnet.ora配置文件是grid用戶下$ORACLE_HOME/network/admin/sqlnet.ora的。

SQLNET.EXPIRE_TIME=10
tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.99.*)

4. 資料庫安全加固的產品

應用背景及存在問題
我國已有的安全建設重要圍繞著網路防護、主機訪問和應用層安全防護以及伺服器層安全防護進行,但對真正核心的數據存儲管理的核心資料庫並沒有採取有效的防護措施。網路層安全防護的主要產品有:防火牆、網路隔離設備、入侵檢測、防病毒等;應用層安全防護的主要產品有:安全認證、統一授權等;伺服器層安全防護的主要產品有:伺服器防護、防病毒、入侵檢測、主機審計等;數據層安全防護的主要產品有:資料庫安全增強、資料庫審計、文檔防護等,數據層安全防護是存放於伺服器內的數據本身的最後一道安全防護屏障,如果網路層、應用層和伺服器層的安全防護被攻破,只要數據層安全防護有效,就不致予泄露敏感數據。可見數據層安全防護的重要性。
世界最大職業中介網站Monster遭到黑客大規模攻擊,黑客竊取在網站注冊的數百萬求職者個人信息,並進行勒索;程序員程稚瀚四次侵入北京移動充值中心資料庫,盜取充值卡密碼,獲利300 多萬元。2003 年廣東聯通7 名人員,利用內部工號和密碼,對欠費停機手機進行充值,使聯通損失260 萬元。2005 年12 月25 日,美國銀行披露,2004 年12 月下旬,丟失了包括1200 萬信用卡信息的磁帶備份. ---Gartner Research;CSI/FBI 2005 年計算機犯罪和和安全會的相關報告中提到70%的信息系統數據丟失和遭受攻擊,都來自於內部。
當前主流Oracle安全增強方案包括前置代理、應用加密和Oracle自帶加密選件DTE等。前置代理需要應用大幅改造、大量Oracle核心特性無法使用;應用加密必須由應用實現數據加密,加密數據無法檢索,已有系統無法透明移植;DTE不能集成國產加密演算法,不符合國家密碼政策。因此這幾種方案一直未能得到有效推廣。

5. 想開發一個應用程序,用戶採用客戶端的方式訪問遠程資料庫,宜採用哪些安全手段加固系統

系統的安全與應用環境、業務內容、客戶群都有密切關系。在該問題上可以採用一下幾種方式:
1、採用VPN技術客戶端和伺服器端構造虛擬區域網,普通互聯網客戶無法訪問。
2、伺服器端設置防火牆,可按IP分段、時間段等手段進行控制訪問。
3、在資料庫級不僅設置登入用戶/口令,還要設置各種許可權,進行多層次訪問控制。
4、在編制應用程序過程中,隱蔽登入口的訪問路徑、登入用戶名、登入口令等。

6. 在測試驗證資料庫加固檢查中,哪個內容是所有資料庫檢查中包含的

1. 修改sys, system的口令。

2. Lock,修改,刪除默認用戶: dbsnmp,ctxsys等。

3. 把REMOTE_OS_AUTHENT改成False,防止遠程機器直接登陸。

4. 把O7_DICTIONARY_ACCESSIBILITY改成False。

5. 把一些許可權從PUBLIC Role取消掉。

6. 檢查資料庫的數據文件的安全性。不要設置成666之類的。檢查其他dba 用戶。

7. 把一些不需要的服務(比如ftp, nfs等關閉掉)

8. 限制資料庫主機上面的用戶數量。

9. 定期檢查Metalink/OTN上面的security Alert。比如:http://otn.oracle.com/deploy/security/alerts.htm

10. 把你的資料庫與應用放在一個單獨的子網中,要不然你的用戶密碼很容易被sniffer去。或者採用advance security,對用戶登錄加密。

11. 限止只有某些ip才能訪問你的資料庫。

12. lsnrctl 要加密碼,要不然別人很容易從外面關掉你的listener。

13. 如果可能,不要使用默認1521埠

7. 關於oradc資料庫系統加固要求描述正確的有哪些

網噴混凝土加固基坑壁施工施工要求:應該叫錨噴砼(噴謝砼),一般是按施工方案來做的,如沒有的話,其施工要求:砼的標號,厚度,鋼筋的錨固,錨桿的做法(是否是壓力灌漿)與錨桿的深度與角度,護壁的土質與護坡坡度,頂部的密封與排水,上部重物的堆放要求。底部的排水溝處理。還有錨噴機械要求等等。

8. 一個好的資料庫加密系統一般應滿足哪些方面的要求

我認為,至少需要滿足下面4個方面的要求。

1、保證資料庫系統的整體性能沒有明顯下降
眾所周知,資料庫系統的數據處理性能對整個業務系統的整體性能表現有決定性的作用,在某些場合,資料庫必須保證處理能力維持在某個較高水平才能滿足業務需要。另一方面,資料庫加密系統是一個對資料庫中數據進行加密保護的應用系統,在數據從業務系統存儲到資料庫時要對數據進行加密,這個過程中明文數據需要被加密成密文,在數據由資料庫中被讀取出來傳遞到業務系統時要對數據進行解密,這個過程中密文需要被解密成明文。加密和解密是個根據一定的演算法邏輯進行循環運算的過程,這個過程對CPU會產生一定的消耗,會影響資料庫的性能。
資料庫加密系統可以有多種技術路線來實現,業界已經驗證和使用的技術路線包括應用系統加密、前置代理加密、後置代理加密、表空間透明數據加密、文件系統加密和磁碟加密。其中應用系統加密和前置代理加密技術會極大地影響資料庫性能,僅適用於小量數據加密場景;後置代理加密技術在某些場景上也會大幅影響資料庫性能,使用場景有明顯限制;所以,好的資料庫加密系統應該盡量使用後三種技術路線來實現。
2、保證數據安全

保存在資料庫中的數據是用戶的資產,因此,任何一個資料庫加密系統都需要保證在有密鑰的前提下能夠對由自己加密的數據進行無損解密。因此,一個好的資料庫加密系統應該具備密鑰備份和恢復功能,以便於在加密機故障不可用時能夠快速搭建新的加密機環境;另外,如果資料庫加密系統提供了獨立的工具或介面來實現加密機故障時用戶數據的解密,則是更好的選擇。
3、應用完全透明

資料庫系統是為業務系統提供數據服務的,一個好的資料庫加密系統應該對應用系統具備完全的透明性,這種透明性主要表現在:(1)部署資料庫加密系統時,應用系統不需要做任何改造,即使是連接字元串都不需要修改;(2)在部署了資料庫資料庫加密系統後,資料庫內部的存儲過程、用戶自定義函數、觸發器、SQL代碼段等可執行對象及主外鍵關系、各種索引、默認值、Check約束等均可以正常使用,也不需要做任何改變;(3)資料庫自身的外圍管理工具、第三方資料庫工具等在部署資料庫加密系統後仍然可以正常使用。
4、高可用性

資料庫加密系統自身應具備高可用能力,可以以主備或多機的方式提供資料庫加密服務,當其中的一台加密機發生故障時,其它加密機應可能快速接管加密服務,保證資料庫系統和用戶業務系統的可用性。

9. 關於紅帽子linuxAS5中mysql加固

,1,在linux下的mysql伺服器進行所有訪問的審計這個網路上已經有人詳細介紹過次方法了,具體可以查看http://www.2cto.com/database/201108/99590.html

2,對mysqld的啟動項進行加固

–local-infile[={0|1}]
如果用–local-infile=0啟動伺服器,則客戶端不能使用LOCAL in LOAD DATA語句。
–old-passwords
強制伺服器為新密碼生成短(pre-4.1)密碼哈希。當伺服器必須支持舊版本客戶端程序時,為了保證兼容性這很有用。
(OBSOLETE) –safe-show-database
在以前版本的MySQL中,該選項使SHOW DATABASES語句只顯示用戶具有部分許可權的資料庫名。在MySQL 5.1中,該選項不再作為現在的 默認行為使用,有一個SHOW DATABASES許可權可以用來控制每個賬戶對資料庫名的訪問。
–safe-user-create
如果啟用,用戶不能用GRANT語句創建新用戶,除非用戶有mysql.user表的INSERT許可權。如果你想讓用戶具有授權許可權來創建新用戶,你應給用戶授予下面的許可權:
mysql> GRANT INSERT(user) ON mysql.user TO 『user_name』@'host_name』;
這樣確保用戶不能直接更改許可權列,必須使用GRANT語句給其它用戶授予該許可權。
–secure-auth
不允許鑒定有舊(pre-4.1)密碼的賬戶。

10. 資料庫安全的防護手段

Xsecure產品系列實現對資料庫的全方位防護 ,需要覆蓋資料庫的事前、事中、事後安全;覆蓋資料庫應用安全、維護安全、使用安全和存儲安全;是最全面的資料庫防泄露產品。 資料庫漏洞掃描系統Xsecure-DBScan ,是一款幫助用戶對當前的資料庫系統進行自動化安全評估的專業軟體,能有效暴露當前資料庫系統的安全問題,提供對資料庫的安全狀況進行持續化監控,幫助用戶保持資料庫的安全健康狀態。
發現外部黑客攻擊漏洞,防止外部攻擊:實現非授權的從外到內的檢測;模擬黑客使用的漏洞發現技術,在沒有授權的情況下,對目標資料庫的安全性作深入的探測分析;收集外部人員可以利用的資料庫漏洞的詳細信息。分析內部不安全配置,防止越權訪問:通過只讀賬戶,實現由內到外的檢測;提供現有數據的漏洞透視圖和資料庫配置安全評估;避免內外部的非授權訪問。
監控資料庫安全狀況,防止資料庫安全狀況惡化:對於資料庫建立安全基線,對資料庫進行定期掃描,對所有安全狀況發生的變化進行報告和分析。 操作系統中的對象一般情況下是文件,而資料庫支持的應用要求更為精細。通常比較完整的資料庫對數據安全性採取以下措施:
(1)將資料庫中需要保護的部分與其他部分相隔。
(2)採用授權規則,如賬戶、口令和許可權控制等訪問控制方法。
(3)對數據進行加密後存儲於資料庫。 由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。資料庫系統能盡快恢復資料庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。