一個網站的用戶資料庫被入侵的方式有哪些?運維和管理人員如何防範?


前面的匿名用戶已經回答了主要的方法。不過很低調,我這菜鳥就展開說說吧。 說得不全,期待替他匿名用戶補充。

其實要滲透一個站的方法有很多。一個網站從開發到上線運營,需要經過很多環節很多人員。任何一個環節或者人員出了弱點都有可能被利用,從而造成巨大的損失。

常見的入侵手段有以下幾種:

1.利用網站自身漏洞。

比如sql注入。這裡舉個最簡單的例子說說一個sql注入如何導致庫被脫。

比如我們的站上有個表單有sql注入,那麼就可以執行sql語句,於是最簡單的就是,通過這個表單將資料庫dump到硬碟上的web目錄中,然後就可以下載了。當然這還牽涉到如何通過觸發web異常來獲取web根目錄等等(facebook就這樣被白帽黑客們調戲過)。或者,我先通過正常渠道將一個web頁面提交到庫中,然後通過這個表單提交一個mysql的dump命令,好了,我們伺服器硬碟上多了一個頁面,可以訪問了,如果這個頁面有上傳下載等功能呢,我就獲得了一部分我們伺服器的控制權了(術語叫webshell)。

2.利用部署、運維過程中的疏忽,比如一些伺服器軟體,自帶了一些管理後台和介面,如tomcat的manager頁面,jboss的jmx console,wampp的webdav等。這些後台的通常是為開發者設計,很脆弱,而且一般都有默認的用戶名和密碼,是不應該在線上出現的,如果運維人員在部署系統是安全意識不夠,暴露這些東西都會帶來潛在的風險。我曾經所呆過的公司就被這個問題搞過多次。自己的管理後台也有同樣的問題。

再比如運維過程中的備份、上傳等也容易爆弱點,最簡單的方法,我們再用搜索引擎搜索「index of /upload」或者「index of /backup」翻了看看,能搜到多少好玩的東西(我就曾不小心搜到過一個招聘站的包含「用戶姓名、手機號、郵箱」的庫)。

3.從辦公網路入手,再進入伺服器系統。由於辦公網路使用的人員複雜,比如有人喜歡休息時逛逛這個論壇,有人習慣上上那個網站。如果有人上了網站被掛了木馬。或者收到含有木馬的郵件並打開了。都有可能導致辦公機器首先淪陷,而辦公機器連伺服器往往都很容易。後面大家可想而知。

4.直接入侵伺服器。這在windows系統下比較明顯,一個溢出就有可能導致獲得管理員許可權。linux則相對比較安全。

5.社會工程,上面的傳統方法對技術要求比較高。社會工程攻擊就是重複利用人的弱點,騙取系統許可權等有價值的信息。比如一個電話打過去,裝作是同事,然後說:我是xxx部門的xxx,現在要做什麼,但是沒有許可權,我們的密碼是什麼的?如果你但是已經忙得焦頭爛額,很可能就直接把密碼說了。或者事情很簡單,壞人們手中有很強大的庫,包括很多常用的默認密碼(甚至公司內部通用的默認密碼),用這些庫來爆破你的伺服器。直接就獲得許可權了。

要防止此類災難性的後果也很簡單:堵住壞人的路。

1.增強自己系統的安全性。從開發人員的安全開發技術培訓,防止諸如sql注入、xss等嚴重漏洞的出現。工作人員的安全意識的培養等。設計系統的時候,要考慮到安全,如何加密,如何存儲,如何傳輸,如果一個子系統淪陷了會不會導致其他子系統淪陷等等。

2.審計要做好。事前及時發現異常。事後發現漏洞。

3.對外合作、三方軟體等使用須謹慎。不要讓自己不可控的東西成為自己的安全短板。

另外,提醒一下,其實壞人們手中的庫是很多的,對於有價值的網站,會有人用各種庫來刷。社工的庫比我們想像的要大得多。我們大家自己要注意安全,千萬不能一個密碼走遍全網,在一些不靠譜的站上註冊,就用被盜了也沒事的密碼,而郵箱密碼和銀行密碼最好單獨設置,單獨用。不要以為自己的賬號沒被盜過,而是人家登過你的賬號,然後發現沒搞頭又走了,你不知道而已,等哪天有搞頭了,你就發現你的賬號被盜了。


幾種常用到的站點漏洞

1.XSS

2.0day

3.webshell

一般先掃站,爆頁面,拿目錄,post小馬取許可權然後上大馬或者直接注入拿庫

怎麼防?

1.update now

2.抓0day

3.黑盒測試審代碼

--------------------

爆庫常用方式

1、通過暴力破解資料庫用戶口令,操縱資料庫

2、利用預設口令的漏洞訪問資料庫

3、利用許可權提升的漏洞得到高許可權用戶身份,控制資料庫

4、利用PL/SQL注入等,獲取訪問許可權提升,操縱資料庫

5、利用管理漏洞,獲知DBA等合法用戶名的口令,然後冒用

6、入侵到資料庫伺服器主機,拷貝數據文件、或備份文件


比較常見的就是使用xss。百度等大網站也曾經爆過xss漏洞。這裡複製一個例子吧,這個例子只是改了首頁,不過拿到了後台許可權之後拿到shell就可以搞定資料庫了。

因為某些原因我們想黑掉某個人的blog,該blog系統的源碼我們可以從網上獲取到,在簡單審核一些代碼之後我們沒有發現明顯的SQL注射之類的漏洞,但是發現了幾個非常有意思的xss漏洞,該漏洞同樣是反射型的xss,但是因為程序的原因可以使得exploit url變形得非常隱蔽。由於程序開源,我們通過本地搭建該環境可以輕鬆構造出可以加管理員,可以在後台寫shell的小型exploit,並且將exploit通過遠程的方式隱藏在前面的exploit url里。通過分析該程序發現在評論回復時只有登錄才可以回復,而目標經常性回復別人的評論,所以我們發表了一個評論並且將exploit url寫在裡面,通過一些手段誘使目標會訪問該url。在等待幾個小時之後,我們看到該評論已經被管理員回復,那麼我們的exploit也應該是被順利執行了。上後台用定義好的賬戶登錄,很順利,shell也已經存在。OK,最後就是塗首頁:)

對於這部分沒有什麼特別好說的,因為所有的數據和邏輯都是公開的,但是非常重要的一點依然是我們的場景。在某些應用程序里,因為前台的交互比較多,發生xss的點是前台,大部分用戶的操作也都是前台發生的,但是這部分的許可權非常沒有意義,我們往往需要特定目標先訪問後台,然後從後台訪問我們的xss點才能獲取相應的許可權。這部分的攻擊就變得比較困難了,而上面的攻擊里,由於目標肯定會先訪問後台然後訪問該xss點,所以xss變得有趣多了。

再加點xss的介紹:

XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。XSS屬於被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。


推薦篇技術文章:IT從業人員需要知道的安全知識

鏈接地址:http://www.mysqlops.com/2012/02/02/info_sec_primer.html


主要方式有幾種,1.網站系統本身存在漏洞,例如上傳,sql注入,管理員密碼弱口令,入侵以後獲得資料庫鏈接欄位,導出資料庫。2.通過入侵合作方獲得一些關聯信息,導出資料庫。3.通過入侵辦公網運維人員獲取伺服器控制權導出資料庫。

防護方案1.網站本身安全加固.2.三方系統的安全3.運維人員的安全意識提高


再補充一個細節:

比如 MySQL 如果不設置一定的許可權, 3306 埠是任何遠程主機都能連接的。

如果管理員的密碼比較弱,或者被泄露(賬號很有可能是 root,黑客只需要破密碼),就很可能黑客在任何機器上直接連接資料庫。

解決方案就是設置成只允許特定的主機才能連接。

同樣需要注意判斷連接來源的,比如 memcached 。


說點題外話,在知乎有幾個月了,經常會看到問題就一句話,非常簡單的一句話。不加前提(本題還是好的)就問一個範圍非常大的題目。比如本題,網站的用戶資料庫被入侵的方式有那些,嗯。

操作系統層面,網站層面,資料庫層面都有可能吧,

操作系統直接入侵要分*NIX/NT兩方便吧,

網站要分是自建系統還是通用系統吧,

通用系統要看具體是那個吧,

資料庫要分是Access?MySQL?MSSQL?Oracle?DB2?吧

PHP與Java也有不同吧

再來,也有可能某天來個VSFTPD的漏洞直接讓人可以控制*NIX系統了,這樣什麼都保不住。

而這些下來所對應的如何防範。。。。。。。。

還不討論什麼社會工程學。。

安全這個東西不說開個專業,至少開門課講上一年沒問題吧


常用的網路攻擊技術有:

注入技術(如:SQL Injection)

XSS(新浪微博XSS攻擊事件)

CSRF

Security Misconfiguration

Insecure Cryptographic Storage

Failure to Restrict URL Access

Insufficient Transport Layer Protection

Unvalidated Redirects and Forwards

我最近也寫了一篇關於 SQL Injection的博文你可以參考一下

http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html


注入、監聽、暴庫、弱口令掃描、XXS、還有溢出漏洞等。。。都是利用網站系統的漏洞。

還有社會工程學,就是利用社工庫對相關的站點進行掃描。


現在有好多的像PIGOSS BSM 類似的運維監控系統 你可以試試


推薦閱讀:

互聯網公司需要什麼樣的運維工程師?
互聯網運維工作有趣嗎?
系統工程師和系統運維是兩個不同的職位嗎?
都說docker是運維大神,想了解一下docker在web server運營上都有哪些用武之地?
2015 年 5 月 28 日攜程無法訪問的具體原因是什麼?

TAG:資料庫 | 數據安全 | 網路安全 | 運維 |