MySQL常見安全小貼士
來源:易賢網(wǎng) 閱讀:934 次 日期:2015-09-24 15:11:56
溫馨提示:易賢網(wǎng)小編為您整理了“MySQL常見安全小貼士”,方便廣大網(wǎng)友查閱!

MySQL是最受DBA歡迎的數(shù)據(jù)庫之一,易用性和高性能是MySQL數(shù)據(jù)庫的標(biāo)志。然而,高人氣使得MySQL成為很多惡意個(gè)人和組織攻擊的目標(biāo)。默認(rèn)安裝的MySQL在安全措施方面存在較大隱患,特別是根密碼空缺和緩沖區(qū)溢出的潛在漏洞,使其成為最容易受攻擊的目標(biāo)。在本文中,我們將介紹一些簡單而有效的方法來加強(qiáng)數(shù)據(jù)庫的安全性,以抵御本地以及遠(yuǎn)程的攻擊。

常見安全行為

作為DBA,與安全相關(guān)的工作應(yīng)當(dāng)圍繞以下三方面展開:

•打補(bǔ)丁

•限制訪問

•避免有用信息收集

本文剩余部分將會(huì)在細(xì)節(jié)上討論以上三個(gè)行為,并將重點(diǎn)放在對(duì)網(wǎng)絡(luò)、操作系統(tǒng)以及數(shù)據(jù)庫服務(wù)器的限制訪問上。

安全補(bǔ)丁

盡管每個(gè)人都會(huì)盡最大努力去保護(hù)數(shù)據(jù),但永遠(yuǎn)會(huì)有人發(fā)現(xiàn)可以利用的漏洞。數(shù)據(jù)庫供應(yīng)商會(huì)檢查引起問題的漏洞,并提供相應(yīng)的漏洞補(bǔ)丁程序。

為MySQL尋找相關(guān)安全補(bǔ)丁最好的去處之一便是Oracle的官方網(wǎng)站。你需要經(jīng)常訪問MySQL論壇,并關(guān)注相關(guān)動(dòng)向。它們通常是安全警報(bào)最先發(fā)出的地方。

防止對(duì)系統(tǒng)的訪問

有四項(xiàng)主要的來源是需要注意的:

•對(duì)網(wǎng)絡(luò)的訪問

•對(duì)數(shù)據(jù)庫的直接訪問

•對(duì)備份的訪問

•對(duì)操作系統(tǒng)的訪問,包括數(shù)據(jù)和日志文件

以上每一項(xiàng)都有其自身所面臨的挑戰(zhàn)和解決途徑:

對(duì)網(wǎng)絡(luò)的訪問

如果你所在的局域網(wǎng)或廣域網(wǎng)并不安全,你需要考慮對(duì)服務(wù)器和客戶端之間的網(wǎng)絡(luò)連接進(jìn)行加密。非授權(quán)用戶能夠以某種方式獲得對(duì)特權(quán)用戶賬戶(例如root) 的訪問權(quán)限么,他們可以利用類似tcpdump的工具嗅探發(fā)往MySQL的網(wǎng)絡(luò)流并過濾數(shù)據(jù)包。這些數(shù)據(jù)包是會(huì)包含查詢和數(shù)據(jù)的。

默認(rèn)情況下,MySQL是以最佳性能配置的,因此除非對(duì)連接進(jìn)行人工設(shè)置,否則所有連接都是非加密的。而通常是采用SSL協(xié)議對(duì)所有在MySQL客戶端和服務(wù)器之間發(fā)送的數(shù)據(jù)進(jìn)行加密。

MySQL可以基于每個(gè)連接進(jìn)行加密,因此你可以根據(jù)各個(gè)應(yīng)用程序的需求來選擇使用非加密連接或是安全的加密SSL連接。

對(duì)數(shù)據(jù)庫的訪問

對(duì)于黑客來說,首要的潛在入口點(diǎn)之一就是root賬戶。因此,對(duì)密碼進(jìn)行重置和對(duì)ID重命名是至關(guān)重要的。

...當(dāng)你拿到一個(gè)默認(rèn)安裝的MySQL時(shí),首先要做的就是為root用戶設(shè)置密碼。

$ mysqladmin -u root password NEWPASSWORD

一旦設(shè)置了密碼,將”root” 改成其他名字,安全性將會(huì)更好。一個(gè)黑客比較青睞于在MySQL服務(wù)器上將root用戶作為目標(biāo),既是由于其超級(jí)用戶身份,也是因?yàn)樗且阎脩?。通過改變r(jià)oot用戶名,會(huì)讓黑客進(jìn)行成功攻擊變得更困難。使用以下一系列命令可以重命名“root” 用戶:

mysql> RENAME USER root TO new_user;

除此之外,讓超級(jí)用戶的數(shù)量保持在絕對(duì)意義上的最小對(duì)掌控?cái)?shù)據(jù)庫是非常關(guān)鍵的。而太多的超級(jí)賬號(hào)是存在隱患的,實(shí)際上,就關(guān)鍵數(shù)據(jù)而言,如果你不小心就有可能失去很多東西。

有一個(gè)賬戶類型是DBA們所鐘愛的,即只讀用戶。這是最好用的一類賬戶類型,因?yàn)槌钟兴挠脩魧?shí)際上是無法對(duì)數(shù)據(jù)庫或其數(shù)據(jù)造成破壞的。通常,用戶會(huì)編造一些理由來解釋他們?yōu)楹涡枰獙憴?quán)限。而確定一個(gè)特定權(quán)限是否有其真正價(jià)值的試金石就是在某種程度上將其簡單的移除,然后觀察是否有人對(duì)此抱怨。如果什么都不發(fā)生就最好了。以我的經(jīng)驗(yàn),只有很少的用戶渴望權(quán)限。而余下的用戶并不需要額外的權(quán)限。其實(shí),我并非提倡通過關(guān)閉用戶權(quán)限來欺瞞你的客戶,我所要闡釋的是要對(duì)用戶的工作模式加以正確的分析。有些事情可以通過簡單的質(zhì)量審計(jì)就可以非常輕易的完成。

對(duì)備份的訪問

理想情況,只要對(duì)備份進(jìn)行離線存儲(chǔ),這樣當(dāng)主站有故障發(fā)生時(shí)就不會(huì)對(duì)備份造成影響。此外,所有保護(hù)你數(shù)據(jù)庫服務(wù)器網(wǎng)絡(luò)的步驟同樣適用于備份系統(tǒng)。有一些優(yōu)秀的軟件模型可以對(duì)你的數(shù)據(jù)進(jìn)行加密,因此,即便是備份文件在不大可能的情況下落入他人之手,其內(nèi)容對(duì)于偷盜者而言也是無用的。

這里是一個(gè)用PHP語言寫的加密函數(shù),它利用的是“rijndael-256”模型:

public function encrypt( $msg, $k, $base64 = false ) {

if ( ! $td = mcrypt_module_open('rijndael-256', '', 'ctr', '') ) return false;

$msg = serialize($msg);

$iv = mcrypt_create_iv(32, MCRYPT_RAND);

if ( mcrypt_generic_init($td, $k, $iv) !== 0 ) return false;

$msg = mcrypt_generic($td, $msg); # encrypt

$msg = $iv . $msg; # prepend iv

$mac = $this->pbkdf2($msg, $k, 1000, 32); # create mac

$msg .= $mac; # append mac

mcrypt_generic_deinit($td); # clear buffers

mcrypt_module_close($td); # close cipher module

if ( $base64 ) $msg = base64_encode($msg);

return $msg;

}

對(duì)操作系統(tǒng)的訪問

本地操作系統(tǒng)可以使用認(rèn)證,防火墻以及其他防病毒軟件進(jìn)行聯(lián)合防護(hù)。其他的訪問控制機(jī)制包括用戶名密碼策略,受管轄的使用組策略(GPO),以及過濾特定的訪問對(duì)象。

Oracle對(duì)此有很好的在線資源供參考。

結(jié)論

有各種各樣保護(hù)MySQL數(shù)據(jù)的方法,在本文中我們只介紹了一些基礎(chǔ)方法。在一場無盡的戰(zhàn)斗中,要讓數(shù)據(jù)庫免受攻擊,一種方法不可能一勞永逸。相反,必須始終保持警惕并保證自己熟悉最新的安全漏洞和相應(yīng)對(duì)策。記住,打造世界上最安全的數(shù)據(jù)庫并不是你的目標(biāo),你只需要讓黑客們付出足夠的精力才能攻破你的數(shù)據(jù)庫,這樣黑客們就會(huì)轉(zhuǎn)向更易攻擊的目標(biāo)。

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:MySQL常見安全小貼士
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)