攜程數(shù)據(jù)庫(kù)事件網(wǎng)上有各種說法。有說是數(shù)據(jù)庫(kù)數(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版的首頁(yè)上的酒店、機(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ù)庫(kù)攻擊,目前技術(shù)部正在搶救。
數(shù)據(jù)庫(kù)整體被攻擊的可能性極大
從這些信息來判斷,應(yīng)該不是業(yè)務(wù)流程上線中出BUG,或者上線流程過程有些誤操作。為什么這么講,我們要進(jìn)行粗略分析。對(duì)于用戶的角度來講,好像攜程的首頁(yè)是只有一個(gè),好像攜程只有首頁(yè)這么一個(gè),各個(gè)業(yè)務(wù)的入口是統(tǒng)一的,但是從程序以及項(xiàng)目管理的角度來看,單單只是從攜程的首頁(yè)來看,至少有14以上個(gè)業(yè)務(wù)部門以及項(xiàng)目,而且這些項(xiàng)目之間關(guān)聯(lián)耦合度不大,平時(shí)上線肯定也是獨(dú)立上線的,如果一個(gè)項(xiàng)目掛了,短暫不可用又很快恢復(fù)了,那還可以理解,畢竟誰(shuí)上線沒有回滾過。但是大面積絕大部分業(yè)務(wù)都不可用,必然不是正常的上線流程中出問題?;旧衔覀兛梢耘袛?,攜程內(nèi)部系統(tǒng)肯定是受到大規(guī)模的攻擊,大部分的業(yè)務(wù)節(jié)點(diǎn)受到嚴(yán)重的攻擊或者數(shù)據(jù)庫(kù)受到嚴(yán)重的攻擊,至于是內(nèi)部員工或者是黑客那就不好說了。
我們?cè)賮矸治鱿率遣皇菢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)頁(yè)大部分的界面還是可以展現(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ù)。
我們?cè)倏词遣皇悄硞€(gè)數(shù)據(jù)庫(kù)掛了,從前面我們也講到,攜程的業(yè)務(wù)多,項(xiàng)目多,這些項(xiàng)目與業(yè)務(wù)線是不太可能使用同一臺(tái)數(shù)據(jù)庫(kù)的物理機(jī)的,攜程的數(shù)據(jù)庫(kù)機(jī)器數(shù)量肯定是比較龐大的,而且我相信攜程的數(shù)據(jù)庫(kù)肯定是做好高可用的,同時(shí)日常備份是定期進(jìn)行的。如果只是個(gè)別數(shù)據(jù)庫(kù)掛了,恢復(fù)起來的時(shí)間是非??斓?。但是從這次攻擊的事件來看,數(shù)據(jù)庫(kù)整體被攻擊的可能性非常大。
可能攤上大事了
如果這是一次黑客攻擊,那黑客對(duì)攜程內(nèi)部的系統(tǒng)了解程度那是相當(dāng)?shù)纳睿覞B透、潛伏的時(shí)間非常長(zhǎng)。如果這是一次非常惡意的攻擊,而且黑客對(duì)攜程苦大仇深,想一擊致命的話,數(shù)據(jù)庫(kù)就會(huì)是核心攻擊目標(biāo)。業(yè)務(wù)節(jié)點(diǎn)丟點(diǎn)程序代碼不會(huì)緊,最多就像人走在大街上衣服被搶光了而已,雖然丟人,但是還是可以很快再搞幾件衣服回來穿上就是了,要是數(shù)據(jù)庫(kù)被刪除,而且不僅僅是邏輯刪除,而且是物理刪除,同時(shí)把所有備份也進(jìn)行非常徹底的物理刪除的話,那基本上心臟中槍,沒得救了,不過好在這種情況出現(xiàn)的可能性不大。如果黑客把數(shù)據(jù)庫(kù)所在的主、從機(jī)器上的數(shù)據(jù)全部進(jìn)行邏輯刪除,同時(shí)運(yùn)行類似于dd的命令進(jìn)行數(shù)據(jù)覆蓋,那么主、從機(jī)器上的數(shù)據(jù)是沒法救的。
從網(wǎng)上的新聞來看,上午11點(diǎn)09服務(wù)就不可用了,我們做一個(gè)最壞情況的猜測(cè):黑客應(yīng)該是攻擊了大部分的數(shù)據(jù),同時(shí)估計(jì)也備份到存儲(chǔ)上的數(shù)據(jù)也給刪除了。所以到現(xiàn)在,攜程的服務(wù)還沒有恢復(fù)。
那么現(xiàn)在的問題關(guān)鍵點(diǎn)來了:攜程是用什么方式進(jìn)行數(shù)據(jù)庫(kù)的備份的(如果沒有日常備份,那整個(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ù)還是有可能找的回來的。簡(jiǎn)而言之:如果有正常的備份,我相信數(shù)據(jù)還是可以恢復(fù),如果沒有做數(shù)據(jù)庫(kù)日志的實(shí)時(shí)備份的話,最多丟個(gè)一備份周期的數(shù)據(jù)(一般是一天)。
上面講的都是針對(duì)性的攻擊,但是最壞的情況是:黑客掌握了攜程大部分機(jī)器的root權(quán)限,同時(shí)進(jìn)行無差別的毀滅性的攻擊的話(業(yè)務(wù)節(jié)點(diǎn)、數(shù)據(jù)庫(kù)節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)),那后果反正我是不敢想了。
晉城龍鼎 - 晉城網(wǎng)站建設(shè)為您解答!