Mssql和Mysql的安全性分析

來源:互聯網
上載者:User
mysql|安全|安全性 資料庫是電子商務、金融以及ERP系統的基礎,通常都儲存著重要的商業夥伴和
客戶資訊。大多數企業、組織以及政府部門的電子資料都儲存在各種資料庫中,他們
用這些資料庫儲存一些設定檔,還掌握著敏感的金融資料。但是資料庫通常沒有象
作業系統和網路這樣在安全性上受到重視。資料是企業,組織的命脈所在,因此選擇
一款安全的資料庫是至關重要的。大型網站一般使用oracle或DB2,而中小型網站大
多數使用更加靈活小巧的mssql資料庫或者mysql資料庫。那麼,在同樣的條件下,微
軟的mssql和免費的mysql哪個更加安全呢?

我在我的機子上面用管理員帳號預設安裝了mssql和mysql以便在相同的情況下測
試他們的安全性。我的系統配置如下:作業系統Microsoft Windows 2000 Version5.0,
安裝了sp4,ftp服務和iis服務,支援asp和php。系統只有一個管理員帳號admin,guest
帳號沒有禁用。


一.系統內部安全性分析




1.mysql資料庫許可權控制問題

mysql的許可權控制是基於mysql這個資料庫的,叫做授權表,一共包括包括六個表
columns_priv,db,func,host,tables_priv和user。先使用desc user命令查看非
常重要的user表的結構以便查詢內容,現在可以查看他的使用權限設定了。
使用命令select host,user,password,delete_priv,update_priv,drop_priv from user;
這個命令查看了幾個比較危險的許可權,顯示結果如下:
mysql> select host,user,password,delete_priv,update_priv,drop_priv from user;
+-----------+------+------------------+-------------+-------------+-----------+
| host | user | password | delete_priv | update_priv | drop_priv |
+-----------+------+------------------+-------------+-------------+-----------+
| localhost | root |0e4941f53f6fa106 | Y | Y | Y |
| % | root | | Y | Y | Y |
| localhost | | | Y | Y | Y |
| % | | | N | N | N |
+-----------+------+------------------+-------------+-------------+-----------+
4 rows in set (0.00 sec)
第一條表示在本機使用root用密碼登陸,擁有刪除記錄,修改記錄,刪除表等許可權,
好,這是安全的。第二條表示在任何主機使用root不需密碼登陸,擁有刪除記錄,
修改記錄,刪除表等許可權。第三條表示在本機匿名登陸,擁有刪除記錄,修改記
錄,刪除表等許可權。最後條表示可以再任何主機匿名登陸,但是沒有任何許可權。
顯然,第二,三,四都是不安全的!第二條不用說,就第三條而言,就算你在本地
是guest許可權,但是也可以登陸mysql資料庫,而且擁有全部許可權。這樣,就可以對數
據庫為所欲為了。
解決方案:如果你不需要遠程維護,刪除掉第二條,delete from user where
host="%" and user="root";或者給它加個強壯的密碼。刪除第三條,delete from
user where host="localhost" and user="";


2.mysql安裝目錄許可權問題

mysql預設安裝到c:\mysql,但是c盤預設是everyone完全控制,由於許可權的繼承
性,c:\mysql對everyone也是完全控制的,顯然這樣是不安全的。因為惡意使用者可以
刪除重要的資料檔案。
解決方案:重新設定mysql目錄的存取許可權。或者將mysql安裝到其他目錄,如果
你移動Mysql分發到D:\mysql,你就必須使用用
D:\mysql\bin\mysqld --basedir D:\mysql來啟動mysqld,甚至還需要修改它的配置
檔案。

3.mssql資料庫許可權控制問題

mssql資料庫的許可權控制是基於master庫的syslogins表,擁有所有許可權的帳號是
sa,其他還有sysadmin,db_owner等不同許可權帳號。但是,mssql資料庫最高許可權帳
號sa的預設密碼是空,這樣如果安裝的時候不注意,就會給資料帶來毀滅性的災難。
惡意攻擊者可以修改,刪除所有資料,更加重要的是mssql帳號可以利用擴充執行系
統命令。
解決方案:定期檢查所有登陸帳號,查看是否有不符合要求的密碼。
Use master
Select name,Password from syslogins where password is null命令檢查是否有空
口令帳號存在。儘可能的刪除儲存擴充,防止本機使用者利用儲存擴充執行惡意命令。
use master
sp_dropextendedproc xp_cmdshell 命令刪除xp_cmdshell擴充。

4.mssql安裝目錄許可權問題

同mysql一樣,mssql也是安裝到everyone完全控制c盤,由於存取控制問題,最
好安裝到d盤等非系統硬碟進行嚴格的許可權控制。而且,由於mssql資料庫與系統結合非常緊密,
系統管理員在沒有資料庫密碼的情況下也可以通過選擇windows驗證來操作資料庫。因此,普通使用者有
可能通過系統漏洞提升自己的許可權,對資料庫進行破壞。

解決辦法:除了嚴格的存取限制外,還要定期查看SQL Server日誌檢查是否有可
疑的登入事件發生,或者使用DOS命令findstr /C:"登入" d:\Microsoft SQL Server\MSSQL\LOG\*.*。
mssql的安全是和windows系統安全緊密結合的,任何一個出現漏洞,都會威脅到另一個的安全。


總結,在系統內部安全性上,mysql和mssql都沒有達到令人滿意的程度,帳號安全,存取許可權
都控制的不是很好。但是mssql有詳細的日誌可以查看登陸情況,比mysql要高出一籌。如果進行了
合理的設定,mysql反而要更加安全些,因為對mssql而言,只要有系統許可權即可擁有資料庫許可權。



二.外部網路安全性分析



1.資料庫服務的探測

為了安全,可以讓mysql服務運行在內網,但是如果你的機器有外網的介面,mysql也會自動被綁定
在外網上面,暴露在internet中,而且系統會在TCP的3306連接埠監聽,非常容易被連接埠掃描工具發現,不
能保證資料安全。如果預設,mssql則會開啟TCP的1433連接埠監聽。雖然mssql可以人為的改變監聽連接埠,但
是通過微軟未公開的1434連接埠的UDP探測可以很容易知道SQL Server使用的什麼TCP/IP連接埠了。往UDP1434連接埠
發送一個1個位元組的內容為02的資料包,被探測的系統則會返回安裝的mssql服務資訊,這些資訊包括:主機名稱
稱、執行個體名稱、版本、管道名稱以及使用的連接埠等。這個連接埠是微軟自己使用,而且不象預設的1433連接埠那
樣可以改變,1434是不能改變的。一個典型的返回的資訊如下:
ServerName;Sky;InstanceName;sky;IsClustered;No;Version;8.00.194;tcp;3341;np;\\sky\pipe\MSSQL$XHT310\sql\query;
可以發現mssql的tcp連接埠改成了3341,為攻擊者開啟了方便之門!只要會一點socket編程知識,
很容易就可以寫出掃描mssql服務的程式,而且,由於利用了udp連接埠,一般的過濾是很難防範的。
補天的awen寫了個探測程式,用的是c#語言,代碼如下:
using System;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.Threading;

namespace ConsoleApplication3
{

class Class1
{
//建立一個UDPCLIENT執行個體
private static UdpClient m_Client;

//LISTEN用來擷取返回的資訊
public static string Listen(string hostip)
{
string HostIP = hostip;
IPAddress thisIP = IPAddress.Parse(HostIP);
IPEndPoint host = new IPEndPoint(thisIP,1434);
byte [] data = m_Client.Receive(ref host);
Encoding ASCII = Encoding.ASCII;
String strData = ASCII.GetString(data);
return strData;



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。