【熱點(diǎn)】攜程可能攤上大事了——崩潰原因分析之「高能技術(shù)貼」

2 評論 9225 瀏覽 0 收藏 8 分鐘

攜程數(shù)據(jù)庫事件網(wǎng)上有各種說法。有說是數(shù)據(jù)庫數(shù)據(jù)和備份數(shù)據(jù)被物理刪除的。也有說是各個(gè)節(jié)點(diǎn)的業(yè)務(wù)代碼被刪除 現(xiàn)在重新在部署。也有說是誤操作,導(dǎo)致業(yè)務(wù)不可用。盡管眾說紛蕓,作為一個(gè)技術(shù)人員,我們還是需要透過現(xiàn)象看本質(zhì)。

網(wǎng)站崩潰的表象

我們先觀察一下ctrip這次問題的表現(xiàn)。從我觀察視角來看,在下午2點(diǎn)左右,攜程PC版的首頁上的酒店、機(jī)票這兩個(gè)最核心的應(yīng)用還是無法使用的,而且個(gè)人用戶也是無法登錄的,同時(shí)攜程手機(jī)端的酒店、機(jī)票無法使用,以及個(gè)人訂單是無法查詢的。

而網(wǎng)上的新聞報(bào)道上午11點(diǎn)服務(wù)就不可用了:攜程方面稱,今天上午11時(shí)09分,攜程的部分服務(wù)器遭到不明攻擊,導(dǎo)致官方網(wǎng)站及APP暫時(shí)無法正常使用,目前正在緊急恢復(fù)。從攜程內(nèi)部人士處獲悉,此次不明攻擊是攜程未攔截成功的第一次數(shù)據(jù)庫攻擊,目前技術(shù)部正在搶救。

數(shù)據(jù)庫整體被攻擊的可能性極大

從 這些信息來判斷,應(yīng)該不是業(yè)務(wù)流程上線中出BUG,或者上線流程過程有些誤操作。為什么這么講,我們要進(jìn)行粗略分析。對于用戶的角度來講,攜程的首頁是只 有一個(gè),各個(gè)業(yè)務(wù)的入口是統(tǒng)一的,但是從程序以及項(xiàng)目管理的角度來看,單單只是從攜程的首頁來看,至少有14以上個(gè)業(yè)務(wù)部門以及項(xiàng)目,而且這些項(xiàng)目之間關(guān) 聯(lián)耦合度不大,平時(shí)上線肯定也是獨(dú)立上線的,如果一個(gè)項(xiàng)目掛了,短暫不可用又很快恢復(fù)了,那還可以理解,畢竟誰上線沒有回滾過。但是大面積絕大部分業(yè)務(wù)都 不可用,必然不是正常的上線流程中出問題?;旧衔覀兛梢耘袛?,攜程內(nèi)部系統(tǒng)肯定是受到大規(guī)模的攻擊,大部分的業(yè)務(wù)節(jié)點(diǎn)受到嚴(yán)重的攻擊或者數(shù)據(jù)庫受到嚴(yán)重 的攻擊,至于是內(nèi)部員工或者是黑客那就不好說了。

我們再來分析下是不是業(yè)務(wù)節(jié)點(diǎn)受攻擊,從表象來看,業(yè)務(wù)節(jié)點(diǎn)或者負(fù) 載均衡應(yīng)該是被攻擊了,不然不會(huì)點(diǎn)擊酒店和機(jī)票搜索都會(huì)跳出Http/1.1 Service Unavailable,而應(yīng)該會(huì)出現(xiàn)搜索遲遲不出結(jié)果,但是網(wǎng)頁大部分的界面還是可以展現(xiàn)的。如果僅僅是業(yè)務(wù)節(jié)點(diǎn)受攻擊,比如:所有的業(yè)務(wù)節(jié)點(diǎn)上的部署 的代碼、程序被刪除了,或者是關(guān)機(jī)了,受到這種攻擊恢復(fù)的手法還是可以非常迅猛的,畢竟機(jī)器還在,攜程作為一個(gè)十幾年的老牌公司,上線部署流程應(yīng)該是建設(shè) 的比較完善的,可以在比較短的時(shí)間內(nèi)進(jìn)行恢復(fù)。

我們再看是不是某個(gè)數(shù)據(jù)庫掛了,從前面我們也講到,攜程的業(yè)務(wù)多,項(xiàng)目多,這些項(xiàng)目與業(yè)務(wù)線是不太可能使用同一臺(tái)數(shù)據(jù)庫的物理機(jī)的,攜程的數(shù)據(jù)庫機(jī)器數(shù)量 肯定是比較龐大的,而且我相信攜程的數(shù)據(jù)庫肯定是做好高可用的,同時(shí)日常備份是定期進(jìn)行的。如果只是個(gè)別數(shù)據(jù)庫掛了,恢復(fù)起來的時(shí)間是非??斓?。但是從這 次攻擊的事件來看,數(shù)據(jù)庫整體被攻擊的可能性非常大。

可能攤上大事了

如果這是一次黑客攻擊,那黑客對攜程內(nèi)部的系統(tǒng)了解程度那是相當(dāng)?shù)纳?,而且滲透、潛伏的時(shí)間非常長。如果這是一次非常惡意的攻擊,而且黑客對攜程苦大仇 深,想一擊致命的話,數(shù)據(jù)庫就會(huì)是核心攻擊目標(biāo)。業(yè)務(wù)節(jié)點(diǎn)丟點(diǎn)程序代碼不要緊,最多就像人走在大街上衣服被搶光了而已,雖然丟人,但是還是可以很快再搞幾 件衣服回來穿上就是了,要是數(shù)據(jù)庫被刪除,而且不僅僅是邏輯刪除,而且是物理刪除,同時(shí)把所有備份也進(jìn)行非常徹底的物理刪除的話,那基本上心臟中槍,沒得 救了,不過好在這種情況出現(xiàn)的可能性不大。如果黑客把數(shù)據(jù)庫所在的主、從機(jī)器上的數(shù)據(jù)全部進(jìn)行邏輯刪除,同時(shí)運(yùn)行類似于dd的命令進(jìn)行數(shù)據(jù)覆蓋,那么主、 從機(jī)器上的數(shù)據(jù)是沒法救的。

從網(wǎng)上的新聞來看,上午11點(diǎn)09服務(wù)就不可用了,我們做一個(gè)最壞情況的猜測:黑客應(yīng)該是攻擊了大部分的數(shù)據(jù),同時(shí)估計(jì)也刪除了備份到存儲(chǔ)上的數(shù)據(jù)。所以到現(xiàn)在,攜程的服務(wù)還沒有恢復(fù)。

那么現(xiàn)在的問題關(guān)鍵點(diǎn)來了:攜程是用什么方式進(jìn)行數(shù)據(jù)庫的備份的(如果沒有日常備份,那整個(gè)攜程就可悲劇了)。如果采用內(nèi)部私有云存儲(chǔ)的方式進(jìn)行備份,那 么此事還有的救。雖然黑客有可能把這些數(shù)據(jù)從云存儲(chǔ)的應(yīng)用端刪除,但是服務(wù)端這些數(shù)據(jù)可能還存在。數(shù)據(jù)是否可以恢復(fù)要取決于私有云存儲(chǔ)的架構(gòu)。攜程從公開 的報(bào)道來看,內(nèi)部私有云用的是openstack,那么很有可能是使用swift的存儲(chǔ),除非黑客也是非常熟悉swift的架構(gòu),把swift上的三個(gè)備 份的機(jī)器找到,進(jìn)行物理刪除。否則,數(shù)據(jù)還是有可能恢復(fù)的。如果到備份到存儲(chǔ)一體機(jī),我相信數(shù)據(jù)還是有可能找的回來的。簡而言之:如果有正常的備份,我相 信數(shù)據(jù)還是可以恢復(fù),如果沒有做數(shù)據(jù)庫日志的實(shí)時(shí)備份的話,最多丟個(gè)一備份周期的數(shù)據(jù)(一般是一天)。

上面講的都是針對性的攻擊,但是最壞的情況是:黑客掌握了攜程大部分機(jī)器的root權(quán)限,同時(shí)進(jìn)行無差別的毀滅性的攻擊的話(業(yè)務(wù)節(jié)點(diǎn)、數(shù)據(jù)庫節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)),那后果反正我是不敢想了。

來源:虎嗅? 作者:郭理靖

?
更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 這到底是惹到誰了啊。這么狠啊

    來自浙江 回復(fù)
  2. ? 悲劇了

    來自浙江 回復(fù)