一種基于操作系統(tǒng)底層防網(wǎng)頁(yè)文件篡改的系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是關(guān)于網(wǎng)絡(luò)信息安全領(lǐng)域,特別涉及一種基于操作系統(tǒng)底層防網(wǎng)頁(yè)文件篡改的系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的網(wǎng)頁(yè)文件防篡改技術(shù)有以下3種:
[0003]1.定時(shí)循環(huán)掃描技術(shù)(外掛輪詢(xún)):使用程序按用戶(hù)設(shè)定的間隔,對(duì)網(wǎng)站目錄進(jìn)行定時(shí)掃描比對(duì),如果發(fā)現(xiàn)篡改,就用備份進(jìn)行恢復(fù)。
[0004]2.事件觸發(fā)技術(shù):使用程序?qū)W(wǎng)站目錄進(jìn)行實(shí)時(shí)監(jiān)控,稍有“風(fēng)吹草動(dòng)”就進(jìn)行檢查是否是非法篡改。
[0005]3.核心內(nèi)嵌技術(shù)(數(shù)字水印+數(shù)字指紋):在用戶(hù)請(qǐng)求訪(fǎng)問(wèn)網(wǎng)頁(yè)之后,在系統(tǒng)正式提交網(wǎng)頁(yè)內(nèi)容給用戶(hù)之前,對(duì)網(wǎng)頁(yè)進(jìn)行完整性檢查。
[0006]第一種,定時(shí)循環(huán)掃描技術(shù):這是早期使用的技術(shù),比較落后,已經(jīng)被淘汰了,原因是:現(xiàn)在的網(wǎng)站少則幾千個(gè)文件,大則幾萬(wàn),幾十萬(wàn)個(gè)文件,如果采用定時(shí)循環(huán)掃描,從頭掃到尾,不僅需要耗費(fèi)大量的時(shí)間,還會(huì)大大影響服務(wù)器性能。在掃描的間隙或者掃描過(guò)程中,如果有文件被二次篡改,那么在下次循環(huán)掃描到該文件之前,文件就一直是被篡改的,公眾訪(fǎng)問(wèn)到的也將是被篡改的網(wǎng)頁(yè),這是一段“盲區(qū)”,“盲區(qū)”的時(shí)長(zhǎng)由網(wǎng)站文件數(shù)量、磁盤(pán)性能、CPU性能等眾多客觀因素來(lái)決定。該技術(shù)由于過(guò)于簡(jiǎn)單,其安全隱患相信讀者看完上面的說(shuō)明就能完全領(lǐng)會(huì)明白,故而在此不給出POC程序。
[0007]第二種,事件觸發(fā)技術(shù):這是目前主流的防篡改技術(shù)之一,該技術(shù)以穩(wěn)定、可靠、占用資源極少著稱(chēng),其原理是監(jiān)控網(wǎng)站目錄,如果目錄中有篡改發(fā)生,監(jiān)控程序就能得到系統(tǒng)通知事件,隨后程序根據(jù)相關(guān)規(guī)則判定是否是非法篡改,如果是非法篡改就立即給予恢復(fù)??梢钥闯觯摷夹g(shù)是典型的“后發(fā)制人”,即非法篡改已經(jīng)發(fā)生后才可進(jìn)行恢復(fù),其安全隱患有三:其一,如果黑客采取“連續(xù)篡改”的攻擊方式,則很有可能永遠(yuǎn)也無(wú)法恢復(fù),公眾看到的一直是被篡改的網(wǎng)頁(yè)。因?yàn)?篡改發(fā)生后,防篡改程序才嘗試進(jìn)行恢復(fù),這有一個(gè)系統(tǒng)延遲的時(shí)間間隔,而“連續(xù)篡改”攻擊則是對(duì)一個(gè)文件進(jìn)行每秒上千次的篡改,如此一來(lái),“后發(fā)制人”的方式永遠(yuǎn)也趕不上“連續(xù)篡改”的速度。其二,如果文件被非法篡改后,立即被惡意劫持,則防篡改進(jìn)程將無(wú)法對(duì)該文件進(jìn)行恢復(fù)。其三,目錄監(jiān)控的安全性受制于防篡改監(jiān)控進(jìn)程的安全性,如果監(jiān)控進(jìn)程被強(qiáng)行終止,則防篡改功能就立刻消失,網(wǎng)站目錄就又面臨被篡改的危險(xiǎn)。有關(guān)強(qiáng)行終止進(jìn)程的方式,在Windows系統(tǒng)中,自帶的就有任務(wù)管理器、taskkill.exe命令,tskill.exe命令,ntsd.exe命令,這四種方式幾乎可以結(jié)束任何進(jìn)程。
[0008]第三種,核心內(nèi)嵌技術(shù)(即“數(shù)字水印”或“數(shù)字指紋”):這也是目前的主流技術(shù)之一,該技術(shù)以無(wú)進(jìn)程、篡改網(wǎng)頁(yè)無(wú)法流出、使用密碼學(xué)算法作支撐而著稱(chēng),其原理是:對(duì)每一個(gè)流出的網(wǎng)頁(yè)進(jìn)行數(shù)字水印(數(shù)字指紋)檢查,如果發(fā)現(xiàn)相關(guān)水印和之前備份的水印不同,則可斷定該文件被篡改,并且阻止其繼續(xù)流出,并傳喚恢復(fù)程序進(jìn)行恢復(fù)。該技術(shù)的特點(diǎn)是:即使黑客通過(guò)各種各樣未知的手段篡改了網(wǎng)頁(yè)文件,被篡改的網(wǎng)頁(yè)文件也無(wú)法流出被公眾訪(fǎng)問(wèn)到。該技術(shù)的安全隱患有二:
[0009]其一:市面上“數(shù)字水印”的密碼學(xué)算法,無(wú)一例外地使用MD5 (Message-Digestalgorithm 5)散列算法,該散列算法由于網(wǎng)上到處都有現(xiàn)成的代碼可以直接拷貝,而且在計(jì)算100KB以?xún)?nèi)的小文件時(shí)速度可以忍受,因而之前在密碼存儲(chǔ)和文件完整性校驗(yàn)方面廣為運(yùn)用。不過(guò),在2004年我國(guó)密碼學(xué)家,山東大學(xué)王小云教授攻破了包括這一算法在內(nèi)的多種密碼學(xué)算法,使得偽造出具有相同數(shù)字水印而內(nèi)容截然不同的文件立刻成為了現(xiàn)實(shí)。
[0010]其二:“數(shù)字水印”技術(shù)在計(jì)算大于100KB大小的文件“指紋”時(shí),其速度將隨著文件的增大而逐步下降到讓人無(wú)法忍受的地步,因此大多數(shù)產(chǎn)品都會(huì)默認(rèn)設(shè)置一個(gè)超過(guò)XXXKB的文件不進(jìn)行數(shù)字水印檢查規(guī)則。如此一來(lái),黑客只要把非法篡改文件的大小調(diào)整到XXXKB以上,就可以讓非法文件自由流出了,這又是一個(gè)潛在的巨大安全隱患。關(guān)于這項(xiàng)安全隱患,讀者可以隨便找個(gè)1MB以上的文件放入網(wǎng)站目錄中,然后再訪(fǎng)問(wèn)該文件,如果發(fā)現(xiàn)文件可以訪(fǎng)問(wèn)或者下載,即可證明當(dāng)前使用的防篡改產(chǎn)品存在該安全隱患?!皵?shù)字水印”技術(shù)安全隱患的根本成因是密碼學(xué)水印算法的安全性,以及水印算法速度與公眾訪(fǎng)問(wèn)網(wǎng)頁(yè)速度的矛盾。由于目前MD4、MD5、SHA-1、RIPEMD等相對(duì)快速的水印算法均被破解,其安全性都已經(jīng)蕩然無(wú)存。因而,在新的又快速又安全的新水印算法發(fā)明之前,上述兩種安全隱患將永遠(yuǎn)是“數(shù)字水印”技術(shù)的夢(mèng)魘。
[0011]綜上,在現(xiàn)有的網(wǎng)頁(yè)文件防篡改技術(shù)手段,都存在安全性和性能上的問(wèn)題。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)中的不足,提供一種能把對(duì)文件的篡改攻擊予以事前阻止,減少進(jìn)行恢復(fù)所需要的成本和時(shí)間的系統(tǒng)。為解決上述技術(shù)問(wèn)題,本發(fā)明的解決方案是:
[0013]提供一種基于操作系統(tǒng)底層防網(wǎng)頁(yè)文件篡改的系統(tǒng),包括管理端和監(jiān)控端,管理端、監(jiān)控端采用C/S架構(gòu);
[0014]管理端包括監(jiān)控端管理模塊、篡改規(guī)則庫(kù)管理模塊、篡改規(guī)則設(shè)置模塊、日志管理豐吳塊;
[0015]所述監(jiān)控端管理模塊,用于配置監(jiān)控端,并將配置信息保存在數(shù)據(jù)庫(kù)內(nèi);
[0016]所述篡改規(guī)則庫(kù)管理模塊,用于搜集并整理所有篡改規(guī)則并保存在數(shù)據(jù)庫(kù)中;其中,篡改規(guī)則包括被保護(hù)的路徑、程序進(jìn)程名、觸發(fā)日志等級(jí)和開(kāi)關(guān)字段,篡改規(guī)則保存在篡改規(guī)則庫(kù)中;
[0017]所述篡改規(guī)則設(shè)置模塊,用于將篡改規(guī)則庫(kù)中存儲(chǔ)的篡改規(guī)則組成二進(jìn)制的篡改規(guī)則配置文件,并通過(guò)管道通知監(jiān)控端的文件系統(tǒng)過(guò)濾驅(qū)動(dòng)重新讀取篡改規(guī)則配置文件;
[0018]所述日志管理模塊,用于接收監(jiān)控端發(fā)回的日志信息,并對(duì)日志信息進(jìn)行展示、統(tǒng)計(jì);
[0019]監(jiān)控端包括驅(qū)動(dòng)管理模塊、篡改規(guī)則配置文件讀取模塊、防篡改模塊、文件篡改日志獲取模塊;
[0020]所述驅(qū)動(dòng)管理模塊,用于對(duì)文件系統(tǒng)過(guò)濾驅(qū)動(dòng)進(jìn)行管理,管理操作包括:安裝、啟動(dòng)、停止、卸載;
[0021]所述篡改規(guī)則配置文件讀取模塊,用于接收管理端發(fā)來(lái)的篡改規(guī)則配置文件讀取通知,并讀取篡改規(guī)則配置文件中的篡改規(guī)則信息;
[0022]所述防篡改模塊,通過(guò)在操作系統(tǒng)的文件系統(tǒng)過(guò)濾驅(qū)動(dòng)的應(yīng)用層添加鉤子函數(shù),當(dāng)操作系統(tǒng)中的文件有任何操作行為時(shí)觸發(fā)鉤子函數(shù);其中,所述鉤子函數(shù)能在獲得文件的行為和操作文件的進(jìn)程后,根據(jù)篡改規(guī)則配置文件讀取模塊讀取到的篡改規(guī)則信息,進(jìn)行阻止或者放行進(jìn)程的操作,達(dá)到防篡改的目的;
[0023]所述文件篡改日志獲取模塊,用于通過(guò)管道跟底層的文件系統(tǒng)過(guò)濾驅(qū)動(dòng)通信,定期獲取篡改文件日志并保存在數(shù)據(jù)庫(kù)內(nèi)。
[0024]在本發(fā)明中,所述管理端和監(jiān)控端通過(guò)使用SSL的HTTP協(xié)議進(jìn)行通信,通信的數(shù)據(jù)采用RC4加密。
[0025]在本發(fā)明中,所述數(shù)據(jù)庫(kù)為sqlite數(shù)據(jù)庫(kù)。
[0026]在本發(fā)明中,所述防篡改模塊能采用windows或者Iinux兩種平臺(tái)實(shí)現(xiàn):
[0027]采用windows平臺(tái)實(shí)現(xiàn)時(shí),當(dāng)文件被進(jìn)程操作時(shí),都會(huì)產(chǎn)生一個(gè)IRP請(qǐng)求,通過(guò)文件系統(tǒng)過(guò)濾驅(qū)動(dòng)攔截IRP請(qǐng)求后,根據(jù)篡改規(guī)則信息進(jìn)行阻止或者放行進(jìn)程的操作,達(dá)到防篡改的目的;
[0028]采用Iinux平臺(tái)實(shí)現(xiàn)時(shí),文件系統(tǒng)過(guò)濾驅(qū)動(dòng)是基于虛擬文件系統(tǒng)(VFS)基礎(chǔ)上的,當(dāng)文件變化時(shí),虛擬文件系統(tǒng)(VFS)把所有的操作信息存儲(chǔ)在一個(gè)單獨(dú)的數(shù)據(jù)結(jié)構(gòu)INODE(索引節(jié)點(diǎn))中,操作信息包括文件的訪(fǎng)問(wèn)控制權(quán)限、大小、擁有者和創(chuàng)建時(shí)間,文件系統(tǒng)過(guò)濾驅(qū)動(dòng)在攔截到這個(gè)操作后,根據(jù)篡改規(guī)則信息進(jìn)行阻止或者放行進(jìn)程的操作,達(dá)到防篡改的目的。
[0029]本發(fā)明的工作原理:將篡改恢復(fù)機(jī)制改為文件防篡改模塊,由其全面接管文件系統(tǒng)的讀寫(xiě)操作,達(dá)到從根源防止文件被篡改。
[0030]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
[0031 ] 本發(fā)明對(duì)于網(wǎng)頁(yè)文件的防篡改具有很強(qiáng)的時(shí)效性,把對(duì)文件篡改攻擊予以事前阻止,實(shí)現(xiàn)了在windows和Iinux兩個(gè)平臺(tái)上阻止文件的篡改行為,杜絕了網(wǎng)頁(yè)文件被篡改以后所造成的種種不利影響,減少進(jìn)行恢復(fù)所需要的成本以及時(shí)間。
【附圖說(shuō)明】
[0032]