亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

從黑客角度檢驗oracle數據庫

2024-08-29 13:49:48
字體:
來源:轉載
供稿:網友
一 State of Oracle Security (oracle的安全狀態)1 來之媒體的報道:超過十分之一的于internet上公司數據庫有安全隱患。一份來之750家美國數據庫開發商開始對數據庫安全表示憂慮。2 黑客世界的秘密:討論會對數據庫被黑的報道增多。– Blackhat, Defcon EXPliots 蠕蟲侵蝕著數據庫
– Alpha Voyager
– Spida worm攻擊oracle的白皮書3 oracle網站-Alerts Web pagehttp://otn.oracle.com/deploy/securi...Info&alerts.htm
 PRior to July 2000
-One vulnerability acknowledged by Oracle
 From July 2000 to August 2002
-41 vulnerability reports on the Oracle website
 Vulnerabilities reported on
SecurityFocus.com
-About 75 vulnerabilities reported about Oracle4 防火墻后邊神秘的oracle是安全的大多數的折衷安全是內部工作的結果
內部威脅是最危險的
數據庫中的非特權用戶5 面對這樣狀況我們要做什么對漏洞的修復
警惕風險和威脅
找到正確的解決方案二 Securing the Listener service1 監聽(listener)的脆弱監聽是客戶端和數據庫的代理重要性:i) 分離了鑒定和審核ii) 以一個獨立的進程運行iii) 接受命令執行數據庫的外部任務監聽服務的脆弱性在客戶端和數據庫建立的連接進程中,監聽作為一個代理。客戶端指向對監聽的一個連接,監聽依次來和數據庫進行連接握手。問題存在于監聽分離了鑒證,被外部數據庫控制治理。監聽作為一個獨立的進程,在過去稱為UID,接受命令執行任務。2 監聽服務的安全問題帶有passWord的監聽是安全的-默認配置是無
-lsnrctl設在password
必須建立一個健壯的password
-對暴力破解是不易攻擊的
保護好listener.ora文件
-password存儲在這里
不要遠程治理監聽
-在網絡上password是不加密的。
如何對監聽進行安全控制:首先:在監聽服務中設置passwod,許多DBA甚至沒有意思到在必須在監聽服務中設置password,監聽服務接受遠程的命令,假如你沒有設置,任意人都可以發送命令。兩種設置方法:1) 使用監聽控制實用工具 – lsnrctl.2) 在listener.ora文件中設置。你必須設置一個強壯的password,一個不少于8位用數字和非凡單詞組成的。假如設置比較脆弱,黑客程序將會試出你的密碼。Password是存在listener.ora的文件中,假如用戶可以讀取,可以利用password日志遠程的監聽。同時也推薦你不要遠程治理listener,因為密碼在網上被明文傳播,有可能被監聽。推薦你只用來進行連接。監聽命令:-LSNRCTL> help
The following Operations are available
start stop status
quit exit set*
show*password rawmode displaymode
trc_file trc_Directory trc_level
log_file log_directory log_status
current_listener connect_timeout startup_waittime
use_plugandplay save_config_on_stop可以通過set password來進行設置。有兩個問題在password中:password是沒有lockout feature。命令審核是和標準oracle的審核數據是分開的。Password是不過期的,因為沒有passwod的治理特性。3 監聽包(listener packet)當一個命令輸入到監聽控制器中會發生:向監聽發生一條命令,假如監聽是遠程的,命令通過網絡傳播,上圖是發送的數據包,我們可以看到報頭中一些非凡的字符。在報尾可以看到listener要執行的遠程命令,在這個例子中:

COMMAND=status三 listener attacke demo
http://www.jammed.com/~jwa/hacks/security/tnscmd/1 緩沖區溢出:覆蓋堆棧的內存,執行惡意的代碼。監聽服務的緩沖區溢出:1) 一個連接字符串的例子:
– (DESCRipTION=(CONNECT_DATA=(CID=(PROGRAM=)(HO
ST=)(USER=))(COMMAND=status) (SERVICE=LIST80)(VERSION=135294976)))2) 尋找緩沖區溢出

改變適當的值看看會發生什么情況
– Try USER= with 4,000 Xs after it
– Try SERVICE= with 4000 Xs after it
– Etc…黑客是如何發現緩沖區溢出的:當一個命令發生到監聽服務時,黑客試圖在連接字符中加很長的字符串,例如發生USER=一個很上的字符串。假如數據庫開發人員只為username分配了一個1024字節長的單元,當發送超過了1024個字節,其他的字符將覆蓋后邊的單元。所以程序要能自能的對長度進行檢查。2 監聽器服務緩沖區溢出i) Oracle 8.1.7
發生1k的字節COMMAND= dwon機
超過4k會使系統崩潰。ii) oracle 9.0.1
發生1k的字節SERVICE=3 利用報頭區的值典型的命令:
– .T.......6.,...............:................4.............(CONNECT_DATA=.)
垃圾字符描述了報頭的信息
– Offset to data
– Size of connection string
– Size of packet
– Type of packet4 竊取監聽命令發生一下的命令:
– .T.......6.,...............:................4.............(CONNECT_DATA=.)改變報頭表明40字節
– ......."...(DESCRIPTION=(ERR=1153)(VSNNUM=135290880)(ERROR_
STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(CONNECT_DAT
A=.)ervices))CONNECT'))(ERROR=(CODE=3 03)(EMFI=1))))改變報頭表明200字節
– ........"..>.H.......@(DESCRIPTION=(ERR=1153)(VSNNUM=135290880)
(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(CONNE
CT_DATA=.)ervices))CONNECT_DATA=(SID=orcl)(global_dbname=te
st.com)(CID=(PROGRAM=C:Oraclebinsqlplus.exe)(HOST=anewman)
(USER=aaron))')) (ERROR=(CODE=303)(EMFI=1))))假如你偽造數據包的大小,監聽將隨意返回任何數據在它的命令字符中將超過你發生的字符長。例如一個用戶上交了100字符的命令,而對你的返回要10字符,監聽將先返回10字符對你的原先的拷貝,但這樣的返回不會終結,還會返回90個先前命令的字符。可以獲得username,當然這樣是難的,不過這樣的危險還是存在的。6 外部程序動態庫和共享lib中的函數能被pl/sql調用的
通過創建lib和packages進行設置:
– CREATE LIBRARY test AS ‘msvcrt,dll’;
CREATE PACKAGE test_function IS PROCEDURE
exec(command IN CHAR);
CREATE PACKAGE BODY test_function IS
PROCEDURE exec(command IN CHAR)
IS EXTERNAL NAME “system”
LIBRARY test;有許多安去問題和外部服務進程有關,Xprocs答應在oracle中創建函數,參照DLL或共享庫文件在操作系統上。這個很強的特性使得數據庫能任何操作系統可以做得事情。當然權利越大責任也越大。創建一個Xproc可以指向操作系統的任何一個dll,使得你可以執行操作系統的命令。同樣象獲得數據庫服務器的資源那樣,來獲得系統資源。第一關心的是你有沒有給一個用戶creat library和create procedure的特權。7 遠程回調外部進程非‘正式’支持
但它很有效
ExtPorcs 是監聽的另一個連接點
– SID_LIST_LISTENER =
– (SID_LIST =
– (SID_DESC =
– (SID_NAME = PLSExtProc)
– (ORACLE_HOME = E:oracleora81)
-(PROGRAM = extproc)
ExtProc任何審核一個用戶
――它是無效的?。。。?!8 默認設置-對外進程自動配置
-Oracle 8i –YES
-Oracle 9i-NO
Call listener
-Do not create ExtProc as another listener endpoint
-Create its own entry in the listener.ora file三 Oracle in a Web application1 繞過防火墻的攻擊:防火墻的配置:

– Block access through port 1521
– Only allow traffic to port 80
– Block UDP as well as TCP
SQL 注入
– Not specific to Oracle
-a web programming problem許多治理都認為防火墻的數據庫是安全的。及時是你的防護墻配置是很恰當的,也可以通過web應用程序進行攻擊。這些攻擊主要是由于開發應用程序者一些錯誤的編程所致。我們可以發現許多站點在這個方面都很脆弱。雖然因數據庫不同攻擊而異,但基本問題還是相同的對所有的數據庫來講。最簡單的一個檢驗你的數據庫是否脆弱,是通過嵌入一個請求在沒有地方,然后來驗證結果。有些站點會返回語法錯誤。而許多只是捕捉了錯誤,沒有報道。當然這些站點仍然有脆弱,但是這些可以不被利用假如你不過任何錯誤消息發送反饋信息。2 How does it work修改請求改變這樣的查詢:
– Select * from my_table where column_x = ‘1’
To: – Select * from my_table where column_x = ‘1’
UNION select password from DBA_USERS
where ‘q’=‘q’exploit是如何工作的?它是通過改變一個sql語句成另為一種,例如上面的例子,一個簡單查詢變成了2個查詢。你可以嵌入第二條命令在查詢中在其他的數據庫中,Oracle不運行這樣做,而代替的是攻擊者需要去補充查詢請求的結尾。注重結尾的‘q’=’q’,這樣用的原因是我們可以處理第二條查詢,asp將加他加入網頁的結尾,這條語句值是真的。3 Example jsp pagePackage myseverlets;
<….>
String sql = new String(“SELECT * FROM
WebUsers WHERE Username=’” +
request.getParameter(“username”) + “’
AND Password=’” +
request.getParameter(“password”) + “’”
stmt = Conn.prepareStatement(sql)
Rs = stmt.executeQuery()
Exploiting the problem is mUCh simpler if you can access the source of the web
page. You should not be able to see this data, however there are many bugs that
allow you to view the source, and I’m sure there are still lots that have not yet been
discovered.
The problem with our ASP code is that we are concatenating our SQL statement
together without parsing out any single quotes. Parsing out single quotes is a good
first step, but its recommended that you actually use parameterized SQL statements
instead.4 有效的輸入假如用戶和密碼設置為:
– Username: Bob
– Password: Hardtoguesspassword
sql語句: – SELECT * FROM WebUsers WHERE
Username=’Bob’ AND
Password=’Hardtoguess’
這是我們一個典型的檢驗機制在登陸到web site上時,然后通過select語句和數據庫進行匹配,假如匹配建立,用戶被鑒別。假如在我們的代碼中記錄集合為空,將預備一個無效的username或者password,登陸被拒絕。5 黑客的輸入代替password的輸入:
– Aa’ OR ‘A’=‘A‘
相應的sql語句:
– SELECT * FROM WebUsers WHERE
Username=’Bob’ AND Password=’Aa’ OR
‘A’=‘A’
黑客已經進入了數據庫。6 Selecting from other TablesTo select data other than the rows from the
table being selected from
 UNION the SQL Statement with the
DBA_USERS view.這是另一個例子取得數據從其他的表中,這與當前的查詢無直接聯系。最好的方法是查找屏幕中包含選項的動態列表。假如這個sql只是注重一個單值,黑客不能得到其他數據。而且一些小技巧單一查詢變成2個查詢或者是把他們組合起來,這有點難道,你要匹配列數還有列的數據類型。然后一些服務器提供你一個錯誤的消息,使得這項是可行的。一些Error類似為:Number of columns does not match

Or
2nd column in UNION statement does not match the type of the first statement.7Sample ASP PageDim sql
Sql = “SELECT * FROM PRODUCT WHERE
ProductName=’” & product_name & “’”
Set rs = Conn.OpenRecordset(sql)
‘ return the rows to the browser
Once again we have the ASP page. An attacker does not really need this, but it does
make our lives easier for demonstration purposes. Once again we are not using
parameterized queries, but instead are concatenating a string to build our SQL
statement.8 有效的輸入: Set the product_name to :
– DVD Player
 The SQL Statement is now:
– SELECT * FROM PRODUCT WHERE
ProductName=’DVD Player’9 黑客輸入: Set the product_name to :
– test’ UNION select username, password from
dba_users where ‘a’ = ‘a
 The SQL Statement is now:
– SELECT * FROM PRODUCT WHERE
ProductName=’test’ UNION select username,
password from dba_users where ‘a’=‘a’黑客可以從password的拷貝中獲得一些雜亂的信息,來進行暴力破解。通過添加UNION的命令和第二語句,來得到dba_users表的內容。10 防止SQl的注入驗證用戶的輸入解析避免單一查詢為雙重查詢使用對象參數來設在參數
- Bind variables回顧升級你的CGI腳步,ASP page,etc… 建議你對web設計者制訂程序的方針,主要著重使用參數化查許和對sql語句的無連接字符串。
11 SQL Injection demo
ASP page, IIS web server ,Oracle database四 Database Vulnerabilities1 數據庫安全問題
sqlnet.log
普遍的oracle安全問題
PL/SQL 的脆弱性。
主機操作系統
– Known Issues Installing Oracle
-Lockdown Protection Procedures2 sqlnet.log當來自一個機器的連接失敗后會在目錄下建立一個文件,記錄失敗的連接。
得到一些信息: username, IP,address, date, etc…3 普遍的oracle安全問題默認的passwords:
– SYS, SYSTEM, DBSNMP, OUTLN,MDSYS,SCOTT
Password的治理特性沒有激活,通過pfiles文件執行復用參數。
– No password lockout by default
– No password expiration by default
Public角色有對ALL_USERS視圖的答應權限。4 PL/SQL的脆弱性動態SQL的問題
– EXECUTE IMMEDIATE
– DBMS_SQL
答應用戶傳遞sql語句中的參數危險性
這些問題和sql 注入問題幾乎一樣。
There are two ways to create SQL Statements on the fly in PL/SQL code – Execute
immediate and through the package DBMS_SQL.5 動態sql語句的例子CREATE PROCEDURE BAD_CODING_EXAMPLE ( NEW_PASSWORD
VARCHAR2  AS
TEST VARCHAR2;
BEGIN
-- DO SOME WORK HERE
EXECUTE IMMEDIATE 'UPDATE ' TABLE_NAME ' SET '
COLUMN_NAME ' = ''' NEW_PASSWORD '''‘ WHERE USERNAME=
= ''' CURRENT_USER_NAME ''';
END BAD_CODING_EXAMPLE;
有效的輸入 from any OCI connection, ODBC connection, SQL*Plus, etc…– EXEC BAD_CODING_EXAMPLE( ‘testabc’ ;
 SQL Created
– UPDATE APPLICATION_USERS SET PASSWORD = ‘testabc’
WHERE USERNAME = ‘aaron’
這個要求有一個有效的帳戶,和對過程的可執行。
黑客的輸入
– EXEC BAD_CODING_EXAMPLE( ‘testabc’’, ADMIN=1,
FULL_NAME=‘’TEST’ ;
SQL Created
– UPDATE APPLICATION_USERS SET PASSWORD = ‘testabc‘,
ADMIN=1, FULL_NAME=‘TEST’ WHERE USERNAME =
‘aaron’通過在輸入中附加一條語句,使得ADMIN列更新,使得用戶成為應用程序的治理員。注重我們應該四周另一列在末尾來出來最后的單一請求。6 Getting to the operating system在NT中oracle以localSystem身份,作為系統權限的一部分。在Unix為oracle user來運行,對oralce的所用文件有權限。進程:– UTL_FILE, UTL_HTTP系統權利類似于create library一但用于了對數據庫的權限,就可以進入操作系統,可以使用很多進程– UTL_FILE是最致命的,給你對文件的讀寫權。不過UTL_FILE_DIR參數可以進行限制,治理員可以修改這個參數。Oracle運行你加載libraries到一個獨立的進程空間使用EXTOROC可執行文件。一些共享libraries和DLL也是可行的。7 操作系統 Oracle 有許多tUID文件

 Oratclsh was setUID root
– TCL debugger
– Allowed you to run a script as root
– Change setuid immediately, even if you are not usingSetuid有很多問題,以前oracle捆綁了15setuid文件。最大的問題是TCL debugger,為應用程序設計在他們用于DBSNMP引擎前。這個debugger是steuid的而且由root擁有。所以很輕易獲得root權限,雖然有patch,不過還是有很多文件可以被利用的,這個問題即使是dbsnmp agent 不使用也會有。Other SetUID files
 Were many until Oracle8i release 2
– Cmctl, tnslsnr, etc…
 Very important one – oracle
– Main database engine
 Relies on ORACLE_HOME directory
– To load the pwdSID.ora file
– Allows you to load a rogue database8.1.6已經取消了許多SetUIDbits. Dbsnmp和oracle files然后保留,這兩個都需要SetUID才能恰當的工作。推薦使用不同策略,可以是任何人不可以可執行權限除了所有者。Oracle是主要的可執行程序,假如你設置為可執行的話,任何在server有帳戶的人可以開啟一個實例,通過UTL_FILE package去寫一些文件。這些依靠于$ORACLE_HOME的環境變量的設置。8 安裝Oracleoracle在安裝的時候會在/tmp目錄下建立一些文件,雖然umask是022,不過有人可以在安裝之前生產一些目錄和文件,一些保留的舊文件使得黑客可以注入一些代碼在安裝的時候。而且有很多腳本使得代碼注入很簡單,黑客可以很輕松的創建root toolkit。9 鎖定操作系統在安裝之前對其他的os用戶進行鎖定
設置TMP_DIR為一個安全的目錄
鎖定ORACLE_HOME許可權限
刪除setUID從所有的文件
重新命令UNIXoracle的帳戶五 Resources, Conclusion, and Wrap UpHow to Combat Hackers:
 Stay patched –
– http://metalink.oracle.com
 Security alerts:
– www.oraclesecurity.net/resources/mailinglist.html
 Security Discussion Board
– www.oraclesecurity.net/cgi-bin/ubb/ultimatebb.cgi
 Check out security solutions at:
– www.appsecinc.com
 Defense in depth
 Multiple levels of security
– Perform audits and pen tests on your database
on a regular basis
– Encryption of data-in-motion
– Encryption of data-at-rest
– Monitor your log files
– Implement intrusion detection


上一篇:Oracle的空間數據庫管理技巧

下一篇:oracle中關于null排序的問題

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级在线亚洲天堂| 一区二区av在线| 久久久久久久一区二区| 日韩欧美中文在线| 九九九热精品免费视频观看网站| 日韩在线观看你懂的| 川上优av一区二区线观看| 欧美日韩爱爱视频| 国产精品第一视频| 久久久久久久久久久免费精品| 欧美中文在线观看国产| 亚洲娇小xxxx欧美娇小| 97人洗澡人人免费公开视频碰碰碰| 国产一区二区三区视频在线观看| 精品伊人久久97| 欧美午夜精品伦理| 在线观看久久久久久| 欧美精品国产精品日韩精品| 欧美午夜女人视频在线| 亚洲国产一区二区三区在线观看| 亚洲一区二区三区成人在线视频精品| 国产欧美精品日韩精品| 日韩电影中文字幕av| 亚洲a级在线观看| 亚洲精品福利免费在线观看| 精品偷拍一区二区三区在线看| 国产精品中文在线| 亚洲国产精品系列| 亚洲a∨日韩av高清在线观看| 欧美一级淫片videoshd| 亚洲国产精品国自产拍av秋霞| 国产日韩在线看片| 国产精品1234| 在线视频欧美日韩精品| 庆余年2免费日韩剧观看大牛| 欧美性生活大片免费观看网址| 精品久久香蕉国产线看观看gif| 亚洲欧美综合v| 中文字幕久久久av一区| 亚洲精品wwwww| 欧美日韩中文在线| 国产亚洲免费的视频看| 国产精品九九久久久久久久| 91禁外国网站| 欧美性生交大片免费| 国产成人拍精品视频午夜网站| 日韩美女激情视频| 精品国产拍在线观看| 久久久av一区| 国产精品va在线播放| 91社影院在线观看| 国产日本欧美一区二区三区在线| 日韩av影片在线观看| 在线观看免费高清视频97| 欧美一性一乱一交一视频| 国产69精品久久久久9| 欧美国产第二页| 欧洲一区二区视频| 亚洲午夜未满十八勿入免费观看全集| 欧美亚洲成人免费| 欧美成人精品在线观看| 91亚洲精品久久久久久久久久久久| 欧美日本中文字幕| 91香蕉嫩草神马影院在线观看| 91麻豆国产语对白在线观看| 欧美肥臀大乳一区二区免费视频| 青青a在线精品免费观看| 欧美在线国产精品| 成人免费网站在线| 成人av在线网址| 久热爱精品视频线路一| 亚洲精品中文字幕有码专区| 国产日本欧美一区二区三区在线| 日本亚洲欧美三级| 91久久在线播放| 亚洲成人av片在线观看| 欧美日韩亚洲一区二区| 91夜夜未满十八勿入爽爽影院| 亚洲人在线视频| 青青久久aⅴ北条麻妃| 青草青草久热精品视频在线网站| 国产精品一区专区欧美日韩| 91精品国产自产在线观看永久| 成人免费午夜电影| 日韩精品在线免费观看视频| 亚洲人成77777在线观看网| 久久精品国产亚洲| 日本久久久久久久| 黑人狂躁日本妞一区二区三区| 欧美黄网免费在线观看| 91性高湖久久久久久久久_久久99| 久久免费少妇高潮久久精品99| 亚洲国产一区二区三区在线观看| 成人黄色在线播放| 国产精品爽爽ⅴa在线观看| 亚洲黄在线观看| 91久久中文字幕| 欧美激情一区二区三级高清视频| 欧美日韩国产精品专区| 色爱av美腿丝袜综合粉嫩av| 国产自产女人91一区在线观看| 欧美日韩中文字幕| 亚洲精品一区二区在线| 亚洲欧美日韩国产中文| 亚洲精品久久久久久久久久久久久| 曰本色欧美视频在线| 国产成人精品视| 亚洲精品国产suv| 国产高清在线不卡| 国产这里只有精品| 久久av中文字幕| 亚洲女人天堂视频| xxxxxxxxx欧美| 亚洲精品suv精品一区二区| 成人欧美一区二区三区黑人孕妇| 久久精品国产亚洲一区二区| 91大神福利视频在线| 91超碰中文字幕久久精品| 久久久这里只有精品视频| 亚洲欧美日韩爽爽影院| 91av在线免费观看视频| 69av在线视频| 热久久99这里有精品| 欧美夫妻性视频| 久久夜精品va视频免费观看| 久久精品国产2020观看福利| 成人在线观看视频网站| 日韩精品中文字幕在线播放| 91国在线精品国内播放| 成人免费激情视频| 欧美精品国产精品日韩精品| 亚洲码在线观看| 在线观看中文字幕亚洲| 国产精品日韩欧美综合| 中文字幕免费精品一区| 亚洲韩国日本中文字幕| 欧美激情一区二区久久久| 国产精品福利观看| 国产精品视频免费在线观看| 欧美最猛性xxxx| 精品亚洲夜色av98在线观看| 欧美日韩激情小视频| 国产精品ⅴa在线观看h| 久久精品最新地址| 国产一区二区三区毛片| 91精品国产综合久久香蕉922| 亚洲男人天堂视频| 欧美一二三视频| 国产精品网站入口| 欧美成人第一页| 欧美成人性色生活仑片| 日韩中文字幕第一页| 国产精品96久久久久久| 久久综合久久八八| 成人免费高清完整版在线观看| 伊人久久久久久久久久久| 亚洲精品99久久久久中文字幕| 国产精品爱啪在线线免费观看| 国产乱肥老妇国产一区二| 亚洲欧美在线一区| 热re99久久精品国产66热| 国内精品免费午夜毛片| 国产日韩欧美在线观看| 日韩中文字幕视频|