黑客的選擇:6大數(shù)據(jù)庫(kù)攻擊手段
發(fā)表時(shí)間:2023-07-03 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]普通的黑客從進(jìn)入到退出一次數(shù)據(jù)攻擊只需用不到10秒鐘時(shí)間就可完成, 這個(gè)時(shí)間對(duì)于數(shù)據(jù)庫(kù)管理員來(lái)說(shuō)即使注意到入侵者都幾乎不夠。 因此, 在數(shù)據(jù)被損害很長(zhǎng)時(shí)間之前, 許多數(shù)據(jù)庫(kù)攻擊都沒(méi)有被單位注意到。...
普通的黑客從進(jìn)入到退出一次數(shù)據(jù)攻擊只需用不到10秒鐘時(shí)間就可完成, 這個(gè)時(shí)間對(duì)于數(shù)據(jù)庫(kù)管理員來(lái)說(shuō)即使注意到入侵者都幾乎不夠。 因此, 在數(shù)據(jù)被損害很長(zhǎng)時(shí)間之前, 許多數(shù)據(jù)庫(kù)攻擊都沒(méi)有被單位注意到。
令人奇怪的是, 根據(jù)許多專(zhuān)家的介紹, 作為企業(yè)之“王冠”的大本營(yíng), 數(shù)據(jù)庫(kù)在許多企業(yè)中并沒(méi)有得到恰當(dāng)?shù)陌踩Wo(hù)。 惡意的黑客正利用非常簡(jiǎn)單的攻擊方法進(jìn)入數(shù)據(jù)庫(kù), 如利用弱口令和不嚴(yán)謹(jǐn)?shù)呐渲茫?及利用未打補(bǔ)丁的已知漏洞等。
我們不妨先談?wù)剚G失備份磁帶的問(wèn)題:如果丟失的或被盜竊的磁帶沒(méi)有加密,那么如果一個(gè)壞家伙得到了這種磁帶, 你就等著瞧吧。 這根本就不需要攻擊。
Forrester Group 的首席分析師Noel Yuhanna說(shuō), “最大的問(wèn)題之一是許多數(shù)據(jù)庫(kù)攻擊甚至都不為人知, 典型的數(shù)據(jù)庫(kù)每秒鐘擁有15000到20000次連接。 對(duì)人類(lèi)來(lái)說(shuō), 要知道所有這些連接正在做什么是不太可能的。 ”
黑客們對(duì)企業(yè)數(shù)據(jù)庫(kù)補(bǔ)丁的困難問(wèn)題特別清楚。 事實(shí)上, 企業(yè)正指望backlog。 那種企業(yè)能夠在一個(gè)數(shù)據(jù)中心中就可以鎖定少量數(shù)據(jù)庫(kù)的日子一去不復(fù)返了:當(dāng)今的多數(shù)組織, 擁有成千上萬(wàn)的數(shù)據(jù)庫(kù)需要配置、保障安全、實(shí)施監(jiān)視, 而遠(yuǎn)程用戶(hù)、客戶(hù)和企業(yè)合伙人都需要訪(fǎng)問(wèn)這些數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)安全廠(chǎng)商Sentrigo的CTO Slavik Markovich說(shuō), “困擾我的一個(gè)重大問(wèn)題是, 在我訪(fǎng)問(wèn)一個(gè)客戶(hù)的站點(diǎn)時(shí), 通常情況下, 其數(shù)據(jù)庫(kù)的配置是很脆弱的, 以至于很容易就可以利用其漏洞。 你通常并不需要緩沖區(qū)溢出或SQL注入攻擊, 因?yàn)檫@種數(shù)據(jù)庫(kù)的初始配置總體上就是不安全的。 ”
所有這些低垂的“果實(shí)”使得數(shù)據(jù)庫(kù)攻擊并不一定很復(fù)雜。 Markovich說(shuō), “這些是基本的配置問(wèn)題, 因此一個(gè)黑客并不必要做一些真正復(fù)雜的事情, 因?yàn)檫@些簡(jiǎn)單的方法就可以奏效。 ”
那么, 這些攻擊是什么呢, 企業(yè)如何阻止這種攻擊?下面我們看一下當(dāng)今的黑客們正在利用的六大數(shù)據(jù)庫(kù)攻擊。 多數(shù)攻擊都利用了組織設(shè)置其數(shù)據(jù)庫(kù)中的極明顯的缺陷。 有一些缺陷對(duì)于內(nèi)部的惡意人員更為有用, 而另外一些由那些試圖得到公司的貴重?cái)?shù)據(jù)的不法之徒所利用。 不管怎樣, 鎖定數(shù)據(jù)庫(kù)的唯一途徑是認(rèn)識(shí)到罪惡之手是如何進(jìn)入的。
下面是六大數(shù)據(jù)庫(kù)攻擊:
1.強(qiáng)力(或非強(qiáng)力)破解弱口令或默認(rèn)的用戶(hù)名及口令
2.特權(quán)提升
3.利用未用的和不需要的數(shù)據(jù)庫(kù)服務(wù)和和功能中的漏洞
4.針對(duì)未打補(bǔ)丁的數(shù)據(jù)庫(kù)漏洞
5.SQL注入
6.竊取備份(未加密)的磁帶下面分別分析一下:
1.對(duì)弱口令或默認(rèn)用戶(hù)名/口令的破解
以前的Oracle數(shù)據(jù)庫(kù)有一個(gè)默認(rèn)的用戶(hù)名:Scott及默認(rèn)的口令:tiger;而微軟的SQL Server的系統(tǒng)管理員賬戶(hù)的默認(rèn)口令是也是眾所周知。
當(dāng)然這些默認(rèn)的登錄對(duì)于黑客來(lái)說(shuō)尤其方便, 借此他們可以輕松地進(jìn)入數(shù)據(jù)庫(kù)。
Oracle和其它主要的數(shù)據(jù)庫(kù)廠(chǎng)商在其新版本的產(chǎn)品中表現(xiàn)得聰明起來(lái), 它們不再讓用戶(hù)保持默認(rèn)的和空的用戶(hù)名及口令等。 但這并不意味著,所有的組織都在較老的數(shù)據(jù)庫(kù)中敞開(kāi)著大門(mén)。
Forrester的Yuhanna說(shuō), “問(wèn)題是企業(yè)擁有15000個(gè)數(shù)據(jù)庫(kù), 而完全地保護(hù)其安全并不容易。 有時(shí)企業(yè)只能保障關(guān)鍵數(shù)據(jù)庫(kù)的安全, 其它的就不太安全了。 現(xiàn)在, 較新的數(shù)據(jù)庫(kù)強(qiáng)制使你在安裝時(shí)改變系統(tǒng)管理員賬戶(hù)的默認(rèn)口令。 但較老的數(shù)據(jù)庫(kù)版本可能存在著問(wèn)題。 ”
但即使是唯一的、非默認(rèn)的數(shù)據(jù)庫(kù)口令也是不安全的。 Sentrigo的 Markovich 說(shuō), “你總可以在客戶(hù)那里找到弱口令和易于猜測(cè)的口令。 通過(guò)強(qiáng)力破解或只試著用不同的組合就可以輕易地找到這種口令。 ”
口令破解工具有很多, 并且通過(guò)Google搜索或sectools.org等站點(diǎn)就可以輕易地獲得,這樣就會(huì)連接到Cain 、 Abel或John the Ripper等流行的工具。
保護(hù)自己免受口令攻擊的最佳方法:避免使用默認(rèn)口令, 建立強(qiáng)健的口令管理程序并對(duì)口令經(jīng)常改變。
2.特權(quán)提升
有幾種內(nèi)部人員攻擊的方法可以導(dǎo)致惡意的用戶(hù)占有超過(guò)其應(yīng)該具有的系統(tǒng)特權(quán)。 而且外部的攻擊者有時(shí)通過(guò)破壞操作系統(tǒng)而獲得更高級(jí)別的特權(quán)。 應(yīng)用安全公司的銷(xiāo)售副總裁Ted Julian說(shuō), “這是一種常見(jiàn)的威脅因素。 ”
特權(quán)提升通常更多地與錯(cuò)誤的配置有關(guān):一個(gè)用戶(hù)被錯(cuò)誤地授與了超過(guò)其實(shí)際需要用來(lái)完成工作的、對(duì)數(shù)據(jù)庫(kù)及其相關(guān)應(yīng)用程序的訪(fǎng)問(wèn)和特權(quán)。
Forrester的Yuhanna說(shuō), “這是一個(gè)控制問(wèn)題。 有時(shí)一個(gè)企業(yè)并沒(méi)有提供哪些人員需要訪(fǎng)問(wèn)何種資源的良好框架結(jié)構(gòu),而且通常情況下, 數(shù)據(jù)庫(kù)管理員并沒(méi)有從業(yè)務(wù)上理解企業(yè)的數(shù)據(jù)。 這是問(wèn)題之一。 ”
而且, 有時(shí)一個(gè)內(nèi)部的攻擊者(或者一個(gè)已經(jīng)控制了受害人機(jī)器的外部的家伙)可以輕松地從一個(gè)應(yīng)用程序跳轉(zhuǎn)到數(shù)據(jù)庫(kù), 即使他并沒(méi)有這個(gè)數(shù)據(jù)庫(kù)的相關(guān)憑證也可以如此。 Yuhanna 說(shuō), “一個(gè)非特權(quán)用戶(hù)可以試著連接到數(shù)據(jù)庫(kù), 只要他可以訪(fǎng)問(wèn)一個(gè)系統(tǒng), 如CRM, 他就可以用同樣的口令通過(guò)檢查, 即使他沒(méi)有獲得此數(shù)據(jù)庫(kù)的授權(quán)。 有些控制并沒(méi)有實(shí)現(xiàn)很好的集中化。 ”
Sentrigo的Markovich近來(lái)能夠通過(guò)一個(gè)擁有少量特權(quán)的用戶(hù)賬戶(hù)攻入一個(gè)客戶(hù)的數(shù)據(jù)庫(kù)。 Markovich說(shuō), “他們要求我攻入其數(shù)據(jù)庫(kù)。 我找到了一個(gè)少量特權(quán)的用戶(hù)口令, 然后就進(jìn)入了系統(tǒng)。 然后我檢查了他的特權(quán), 他擁有對(duì)數(shù)據(jù)庫(kù)的只讀性訪(fǎng)問(wèn), 因此一個(gè)少量特權(quán)的用戶(hù)可以訪(fǎng)問(wèn)讀取數(shù)據(jù)庫(kù)內(nèi)的任何表, 包括信用卡信息、個(gè)人信息。 因此, 我說(shuō):‘我不需要攻入數(shù)據(jù)庫(kù)。 ’”
專(zhuān)家們說(shuō), 經(jīng)驗(yàn)法則應(yīng)當(dāng)說(shuō)是僅給用戶(hù)所需要的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)和權(quán)力, 不要有更多的東西。
還有那些擁有合法訪(fǎng)問(wèn)的特權(quán)用戶(hù), 他們頭腦中可能并沒(méi)有合法的操作。 “你如何控制訪(fǎng)問(wèn)呢?這個(gè)領(lǐng)域也正在開(kāi)始演化。 ”
3.利用未用的和不需要的數(shù)據(jù)庫(kù)服務(wù)和功能中的漏洞
當(dāng)然, 一個(gè)外部的攻擊者會(huì)尋找較弱的數(shù)據(jù)庫(kù)口令, 看其潛在的受害人是否在運(yùn)行其Oracle數(shù)據(jù)庫(kù)上運(yùn)行監(jiān)聽(tīng)程序(Listener)功能。 監(jiān)聽(tīng)程序可以搜索出到達(dá)Oracle數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)連接, 并可以轉(zhuǎn)發(fā)此連接, 這樣一來(lái)就會(huì)將用戶(hù)和數(shù)據(jù)庫(kù)的鏈接暴露出來(lái)。
只需采用一些Google hacking攻擊, 一位攻擊者就可以搜索并找到數(shù)據(jù)庫(kù)服務(wù)上暴露的監(jiān)聽(tīng)程序。 Markovich 說(shuō), “許多客戶(hù)并沒(méi)有在監(jiān)聽(tīng)程序上設(shè)置口令, 因此, 黑客就可以搜索字符串并找出Web上活動(dòng)的監(jiān)聽(tīng)程序。 我剛才搜索了一下, 發(fā)現(xiàn)有一些可引起人們注意的東西, 如政府站點(diǎn)。 這確實(shí)是一個(gè)大問(wèn)題。 ”
其它的特性, 如操作系統(tǒng)和數(shù)據(jù)庫(kù)之間的鉤子可以將數(shù)據(jù)庫(kù)暴露給攻擊者。 這種鉤子可以成為達(dá)到數(shù)據(jù)庫(kù)的一個(gè)通信鏈接。 Yuhanna說(shuō), “在你鏈接庫(kù)和編寫(xiě)程序時(shí)…那將成為與數(shù)據(jù)庫(kù)的界面, ”你就是在將數(shù)據(jù)庫(kù)暴露出去, 并可能在無(wú)認(rèn)證和無(wú)授權(quán)的情況下讓黑客進(jìn)入內(nèi)部。
通常, 數(shù)據(jù)庫(kù)管理員并沒(méi)有關(guān)閉不需要的服務(wù)。 Julian 說(shuō), “他們只是任其開(kāi)著。 這種設(shè)計(jì)過(guò)時(shí)且管理跟不上, 這是讓其發(fā)揮實(shí)際作用的最簡(jiǎn)單方法。 不需要的服務(wù)在基礎(chǔ)結(jié)構(gòu)中大搖大擺地存在, 這會(huì)將你的漏洞暴露在外。 ”
關(guān)鍵是要保持?jǐn)?shù)據(jù)庫(kù)特性的精簡(jiǎn), 僅安裝你必須使用的內(nèi)容。 別的東西一概不要。 Markovich說(shuō), “任何特性都可被用來(lái)對(duì)付你, 因此只安裝你所需要的。 如果你并沒(méi)有部署一種特性, 你就不需要以后為它打補(bǔ)丁。
4.針對(duì)未打補(bǔ)丁的數(shù)據(jù)庫(kù)漏洞
好消息是Oracle和其它的數(shù)據(jù)庫(kù)廠(chǎng)商確實(shí)在為其漏洞打補(bǔ)丁。 壞消息是單位不能跟得上這些補(bǔ)丁, 因此它們總是處于企圖利用某種機(jī)會(huì)的老謀深算的攻擊者控制之下。
數(shù)據(jù)庫(kù)廠(chǎng)商總是小心翼翼地避免披露其補(bǔ)丁程序所修正的漏洞細(xì)節(jié), 但單位仍以極大的人力和時(shí)間來(lái)苦苦掙扎, 它會(huì)花費(fèi)人力物力來(lái)測(cè)試和應(yīng)用一個(gè)數(shù)據(jù)庫(kù)補(bǔ)丁。 例如, 給程序打補(bǔ)丁要求對(duì)受補(bǔ)丁影響的所有應(yīng)用程序都進(jìn)行測(cè)試, 這是項(xiàng)艱巨的任務(wù)。
Yuhanna 說(shuō), “最大問(wèn)題是多數(shù)公司不能及時(shí)安裝其程序補(bǔ)丁, 一家公司告訴我, 他們只能關(guān)閉其數(shù)據(jù)庫(kù)一次, 用六小時(shí)的時(shí)間打補(bǔ)丁, 它們要冒著無(wú)法打補(bǔ)丁的風(fēng)險(xiǎn), 因?yàn)樗鼈儾荒荜P(guān)閉其操作。 ”
Markovich說(shuō), 在今天正在運(yùn)行的多數(shù)Oracle數(shù)據(jù)庫(kù)中, 有至少10到20個(gè)已知的漏洞, 黑客們可以用這些漏洞攻擊進(jìn)入。 他說(shuō), “這些數(shù)據(jù)庫(kù)并沒(méi)有打補(bǔ)丁, 如果一個(gè)黑客能夠比較版本, 并精確地找出漏洞在什么地方, 那么, 他就可以跟蹤這個(gè)數(shù)據(jù)庫(kù)。 ”
而且一些黑客站點(diǎn)將一些已知的數(shù)據(jù)庫(kù)漏洞的利用腳本發(fā)布了出來(lái), 他說(shuō)。 即使跟得上補(bǔ)丁周期有極大困難, 單位也應(yīng)當(dāng)打補(bǔ)丁。 他說(shuō), 例如, Oracle4月15日的補(bǔ)丁包含了數(shù)據(jù)庫(kù)內(nèi)部的17個(gè)問(wèn)題。 這些和其它的補(bǔ)丁都不應(yīng)當(dāng)?shù)粢暂p心。 每一個(gè)問(wèn)題都能夠破壞你的數(shù)據(jù)庫(kù)。
5.SQL注入
SQL注入式攻擊并不是什么新事物了, 不過(guò)近來(lái)在網(wǎng)站上仍十分猖狂。 近來(lái)這種攻擊又侵入了成千上萬(wàn)的有著鮮明立場(chǎng)的網(wǎng)站。
雖然受影響的網(wǎng)頁(yè)和訪(fǎng)問(wèn)它的用戶(hù)在這些攻擊中典型情況下都受到了重視, 但這確實(shí)是黑客們進(jìn)入數(shù)據(jù)庫(kù)的一個(gè)聰明方法。 數(shù)據(jù)庫(kù)安全專(zhuān)家們說(shuō), 執(zhí)行一個(gè)面向前端數(shù)據(jù)庫(kù)Web應(yīng)用程序的SQL注入攻擊要比對(duì)數(shù)據(jù)庫(kù)自身的攻擊容易得多。 直接針對(duì)數(shù)據(jù)庫(kù)的SQL注入攻擊很少見(jiàn)。
在字段可用于用戶(hù)輸入, 通過(guò)SQL語(yǔ)句可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的直接查詢(xún)時(shí), 就會(huì)發(fā)生SQL攻擊。 也就是說(shuō)攻擊者需要提交一段數(shù)據(jù)庫(kù)查詢(xún)代碼, 根據(jù)程序返回的結(jié)果, 獲得某些他想得知的數(shù)據(jù)。
除客戶(hù)端之外, Web應(yīng)用程序是最脆弱的環(huán)節(jié)。 有些情況下, 如果攻擊者得到一個(gè)要求輸入用戶(hù)名和口令的應(yīng)用程序的屏幕, 而且應(yīng)用程序并不檢查登錄的內(nèi)容的話(huà), 他所需要做的就是提供一個(gè)SQL語(yǔ)句或者數(shù)據(jù)庫(kù)命令, 并直接轉(zhuǎn)向數(shù)據(jù)庫(kù)。 Yuhanna說(shuō), 問(wèn)題是身份驗(yàn)證和授權(quán)已經(jīng)被移交給了應(yīng)用程序服務(wù)器。
他說(shuō), “此時(shí)輸入的并不是一個(gè)用戶(hù)名, 而是一個(gè)SQL命令。 它被輸入到一個(gè)數(shù)據(jù)包中, 并且由應(yīng)用程序服務(wù)器發(fā)送給數(shù)據(jù)庫(kù)。 這個(gè)數(shù)據(jù)庫(kù)會(huì)讀取欺詐性的SQL命令, 而且它能夠完全關(guān)閉整個(gè)數(shù)據(jù)庫(kù)。 ”
他說(shuō), “這是開(kāi)發(fā)者的一種可悲的開(kāi)發(fā)方法。 你必須關(guān)注用戶(hù)正在輸入的內(nèi)容。 不管你想執(zhí)行什么, 數(shù)據(jù)庫(kù)都會(huì)執(zhí)行。 這是很令人驚慌的問(wèn)題。 SQL注入式攻擊是一個(gè)很大的問(wèn)題。 ”
Sentrigo 的Markovich說(shuō), 從Web應(yīng)用程序到數(shù)據(jù)庫(kù)兩個(gè)方面都可以實(shí)施SQL注入式攻擊, 而且可以從數(shù)據(jù)庫(kù)內(nèi)部實(shí)施。 但有一些程序設(shè)計(jì)方法可有助于防止應(yīng)用程序中的SQL注入攻擊漏洞, 如使用所謂的綁定變量(bind variable)或者使用參數(shù)進(jìn)行查詢(xún)等。
Markovich說(shuō),在Java等語(yǔ)言中,這就意味著在SQL語(yǔ)句中將問(wèn)號(hào)用作占位符,并將“接收”值與這些占位符綁定。 另外一種方法是避免顯示某些數(shù)據(jù)庫(kù)錯(cuò)誤消息,目的是避免將可能敏感的信息透露給潛在的攻擊者。
6.竊取(未加密的)備份磁帶
如果備份磁帶在運(yùn)輸或倉(cāng)儲(chǔ)過(guò)程中丟失, 而這些磁帶上的數(shù)據(jù)庫(kù)數(shù)據(jù)又沒(méi)有加密的話(huà), 一旦它落于罪惡之手, 這時(shí)黑客根本不需要接觸網(wǎng)絡(luò)就可以實(shí)施破壞。
但這類(lèi)攻擊更可能發(fā)生在將介質(zhì)銷(xiāo)售給攻擊者的一個(gè)內(nèi)部人員身上。 只要被竊取的或沒(méi)有加密的磁帶不是某種Informix或HP-UX 上的DB2等較老的版本, 黑客們需要做的只是安裝好磁帶, 然后他們就會(huì)獲得數(shù)據(jù)庫(kù)。
Julian說(shuō), “當(dāng)然, 如果不是一種受內(nèi)部人員驅(qū)動(dòng)的攻擊, 它就是非主要的。 ”他說(shuō), 同樣的原因, 閃盤(pán)也是另外一種風(fēng)險(xiǎn)。
除了沒(méi)有對(duì)備份介質(zhì)上的數(shù)據(jù)進(jìn)行加密等明顯的預(yù)防措施, 一些單位并沒(méi)有一直將標(biāo)簽貼在其備份介質(zhì)上。 “人們備份了許多數(shù)據(jù), 但卻疏于跟蹤和記錄。 ”Yuhanna說(shuō), “磁帶容易遭受攻擊, 因?yàn)闆](méi)有人會(huì)重視它, 而且企業(yè)在多數(shù)時(shí)間并不對(duì)其加密。 ”
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。