從寬頻上網普及後,電子商務網站在近年來不斷增加,因為許多病毒還有駭客的報導,大家也都知道網站安全的重要性,但是也許一般網站都是由中小企業成立的,或者是由外包廠商代管,可能因為經驗或人手不足的不足,而忽略了網站安全的重要性,大家都會安裝防火牆或是防毒軟體,但是卻都不太注重防駭的部份,前一陣子SQL
Injection著實讓許多MIS人員嚇到了,因為大部份的系統都有此漏洞,只要有使用到SQL資料庫的網站就可能被有心人士入侵並竊取資料庫內的資料。
SQL Injection(資料隱碼)的漏洞是什麼呢?
簡單來說就是利用網頁程式設計者忽略檢查使用者從表格或瀏覽器輸入內容所造成的安全漏洞,目前只要是有資料存取需求的網頁大都使用SQL資料庫系統,讓管理者可以方便管理網站資料或讓使用者可以進行查詢與交易,如果程式設計者在寫程式時有所疏忽,那麼網路不法份子可能可以簡單的利用一些惡意的SQL指令去進行未被授權的不法行為,例如竊取資料或者侵入系統或破壞資料,而且這也只是利用SQL指令本身的瑕疵來入侵的,所以只要是支援SQL指令的資料庫皆會受影響,使用者可以輕易的靠一行指令或得伺服器的最高權限帳號,取得最高管理權限,這樣就能自由的獲取所有的資料了,之後他想作什麼就可以作什麼了,因為是使用正常管道及一般的操作正常指令,那些防火牆及防毒軟體都無法事先偵測,當然現在有一些防駭軟體陸續已經加入了偵測的技術了,不過如果是同時加裝使用SSL去執行時,加密的結果是使得一般偵測系統衝突也失去防護功能,對於欲使網站更安全的SSL實在是一種諷刺,當然,也有防駭軟體注意到此漏洞而對此提出一些其他的解決辦法,目前各家資料庫也注意到此事件的嚴重性而作了許多安全上的更新,不過,最重要且基本的解決方式還是設計師在寫網站系統時能事先對這些指令作出一些規定和限制來防範,免得將來有類似的新漏洞問題又重複影響資料安全的問題。
在此我們不舉例來說明如何利用SQL
Injection來入侵,此類的資訊可在各技術資訊網站查詢,已經有許多網站有提供類似資訊,有興趣者可以利用搜尋引擎自行搜尋看看,同時微軟網站上也有很詳細的說明。
最後我們來了解要如何保護網站的資料庫,提供幾個重點供與參考的重點:
1.更新資料庫及伺服器系統:
首先當然是先到軟體廠商的網站更新資料庫系統的安全性囉,記得可同時訂閱廠商所提供的電子報,當廠商發現軟體的安全漏洞或是有最新功能更新時,我們都可以馬上收到資訊,更快速的作軟體更新和安全功能使用的通知訊息,服務廠商總會比我們先發現漏洞的,他也一定會先通知我們的,這樣就可以輕鬆的做好事前的預防,事前的預防總是比事後的補救重要。
2.加強程式指令的安全檢查:
在線上輸入欄位的內容時一定要先過濾,只要有用到SQL指令時就必須先對特殊指令作檢查,至少將"select"、"create"、"update"、"delete"
、"insert"、"drop"等SQL指令作過濾,甚至是限制輸入內容為中英文字及數字,禁
止使用"--"、" ' "、"="、"@"等符號。
3.關閉無用的功能:
如程式已撰寫完成,請關閉WEB或SQL線上錯誤檢查的顯示功能,可必免駭客穫得入侵的資訊,其實以前就有很多類似漏洞都是利用錯誤檢查功能來告訴駭客資料的放置位置在哪裡的,甚至是資料庫在哪裡,而且如MS
SQL資料庫裡有許多預儲程序,功能非常強大,但平常沒有什麼人會使用時,可以先刪除。
4.不要使用資料庫預設的使用帳號或不設密碼:
如MS SQL的預設最高帳號為sa且無密碼,請一定加上密碼並建立較低權限的帳號給網頁程式使用。
5.定時檢查系統的Log記錄:
當你發現一堆奇怪的連線來源,試著去瞭解和解讀,就算沒抓到入侵者也至少知道最近流行哪種入侵,最近本網就一直有一堆FTP的入侵,因為鎖了IP所以就算知道帳號密碼也進不來。
6.裝套防駭軟體吧:
雖然不一定能全盤預防,但可增加一定的安全性,而如果是小網站可以裝個BlackIce for
server之類的防駭軟體,如果是在大網站(可能)最好能夠選購硬體式的防駭設備,就連公司內部員工都要記得裝喔,因為很多新病毒都是利用系統漏洞來攻擊,防毒防駭缺一不可。
網路基本的安全處理是必要的,但常常也沒辦法完全防止(堵住)駭客的侵襲,但是至少可以拖延時間,就好像沒有什麼絕對安全的汽車鎖,但至少可以擋住一些程度較低的無聊人士及拖延資料被竊取的一點時間,這些小小的防備還是有大大的功效喔!
基本的防駭方法:
1.將SQL Server獨立在內部網域:
限制只有該網站伺服器可讀取,好處是不會被有心人士直接攻擊,弱點是如果網站伺服器都被攻下來了,有了這個跳板,那麼後面的資料庫還防得住嗎?
2.在重要的資料輸入頁面使用SSL:
使用者登入帳號或輸入其他個人重要資料時,使用SSL去作加密傳輸,避免在傳輸時被其他人截聽偷窺到重要資料,類似像資料傳輸截聽偷窺的技術,在對一般的網
管人員來說是非常容易做到的,說不定貴公司的網管人員正在使用網管軟體監視你送出的每一個封包內容呢,監看你在網路上傳送接收的任何資料,您在聊天室的密談就像是蓋著白紗聊天,很容易就被偷聽的一清二楚囉!
3.Access資料庫的保護:
因為小型網站普遍使用Access資料庫是小型網站的普遍選擇,而這種資料庫可直接被線上直接下載,所以更必須好好保護,基本保護不外乎先加上密碼,但無法防制使用暴力破解程式來破解。另外可將它藏在某個有權限控制的資料夾,使用DSN讓人猜不到,藏到非網站的目錄下,把副檔名改成asp使它變成執行錯誤無法下載(在資料裡面要有<%%>
,或者另用一個沒用資料表來存放干擾用資料,不管用什麼方式,如果之前的SQL
Injection漏洞沒有防補,那就都沒用了,偷產生一個帳號,用command方式將網站整個傳回,網站的資料一樣能被盜走。
後記,從此看來好像只要是程式就會有漏洞,駭客們不一定都會自己研發新技術,通常被入侵都是基本保護與更新沒作好,作者也是如此,在多年前網路剛興起時就被人家利用ICQ入侵偷走辛苦血寫的程式(過),最後還回傳訊息來道謝,真是讓人氣死。駭客入侵竊取資料或修改資料的案例不勝枚舉,就如在一年多前也曾發生一個客戶因被駭客竄改管理密碼的案例,並找作者幫忙把憑證匯出裝到別台Server,作者解決方式是請該網管到大陸網站搜尋一下SQL
Injection的文章,然後依照同樣的方法去入侵自己的系統,得到管理帳號後再將憑證匯出並重新安裝系統,最後卻以這個漏洞來解決這件事情,算是這個漏洞作了一件好事囉,哈,最後還是建議大家有空多上網了解,可以到大陸一些駭客的資訊網站逛逛,可以讓自己更積極和更有效的去作系統的更新動作,小心,別偷懶!
作者:寰宇數位 陳冠冕 2003/11/19
|