專利名稱:一種數(shù)據(jù)防篡改的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)防篡改的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,在網(wǎng)絡(luò)上提供各種網(wǎng)頁內(nèi)容信息服務(wù)的WEB服務(wù)器變得越來越普及。針對WEB服務(wù)器的各類攻擊也越來越多,由于WEB服務(wù)器本身的系統(tǒng)漏洞或者網(wǎng)絡(luò)管理員的錯誤設(shè)定等,黑客們可以未經(jīng)授權(quán)的將WEB服務(wù)器中的數(shù)據(jù)修改成包含惡意信息的內(nèi)容,如木馬或掛馬,給WEB服務(wù)器的所有者和用戶帶來損失。在現(xiàn)有技術(shù)中,一般通過對用戶設(shè)置權(quán)限的方法來防止WEB服務(wù)器中的數(shù)據(jù)被非法篡改。具體的,先對每個用戶設(shè)置相應(yīng)的權(quán)限,然后指定某些需要保護的數(shù)據(jù),對于這些指定的數(shù)據(jù),只有具有較高權(quán)限的用戶才能夠?qū)ζ溥M行讀寫操作,其他用戶則不能對起進行讀寫操作,以達到保護這些數(shù)據(jù)的目的。然而,這種通過設(shè)置權(quán)限實現(xiàn)防止數(shù)據(jù)被非法篡改的方法,權(quán)限的設(shè)置是在WEB 服務(wù)器的應(yīng)用程序中設(shè)置的,也即現(xiàn)有技術(shù)是在WEB服務(wù)器的應(yīng)用層對數(shù)據(jù)進行保護,而應(yīng)用層的保護很容易被突破。例如,對每個用戶設(shè)置的權(quán)限可以通過具有更高權(quán)限的用戶進行修改,將每個用戶設(shè)置的權(quán)限均更改為可以對指定的數(shù)據(jù)進行讀寫操作,這樣每個用戶都可以篡改這些數(shù)據(jù)。因此,現(xiàn)有技術(shù)中防止數(shù)據(jù)被非法篡改的方法并不能有效的保證數(shù)據(jù)的安全,降低了數(shù)據(jù)的安全性。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)防篡改的方法及裝置,用以解決現(xiàn)有技術(shù)不能有效的保證數(shù)據(jù)的安全,降低了數(shù)據(jù)的安全性的問題。本發(fā)明實施例提供的一種數(shù)據(jù)防篡改的方法,包括Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求;并根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù);所述Iinux操作系統(tǒng)內(nèi)核根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作;以及當(dāng)判斷為合法操作時,所述Iinux操作系統(tǒng)內(nèi)核進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作;否則,拒絕所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作。本發(fā)明實施例提供的一種數(shù)據(jù)防篡改的裝置,包括接收模塊,用于接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求;確定模塊,用于根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù);判斷模塊,用于根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作;處理模塊,用于當(dāng)判斷為合法操作時,進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作,否則,拒絕所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作。本發(fā)明實施例提供一種數(shù)據(jù)防篡改的方法及裝置,該方法Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,并確定第一應(yīng)用程序所要修改的數(shù)據(jù),根據(jù)預(yù)先保存的安全策略,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作是否合法,若合法,則進行該修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)該修改操作,否則拒絕該修改操作。由于本發(fā)明實施例中 Iinux操作系統(tǒng)內(nèi)核在進行相應(yīng)的系統(tǒng)調(diào)用之前,根據(jù)保存的安全策略判斷修改操作是否合法,從而實現(xiàn)了在內(nèi)核級別的驅(qū)動層對數(shù)據(jù)進行保護,相比于現(xiàn)有技術(shù)在應(yīng)用層對數(shù)據(jù)進行保護的方法,可以有效的保證數(shù)據(jù)的安全,提高了數(shù)據(jù)的安全性。
圖I為本發(fā)明實施例提供的數(shù)據(jù)防篡改的過程;圖2為本發(fā)明實施例提供的數(shù)據(jù)防篡改的詳細過程;圖3為本發(fā)明實施例提供的數(shù)據(jù)防篡改的裝置結(jié)構(gòu)示意圖。
具體實施例方式在實際應(yīng)用中,應(yīng)用程序?qū)?shù)據(jù)進行的修改操作大多是由Iinux操作系統(tǒng)內(nèi)核進行相應(yīng)的系統(tǒng)調(diào)用完成的。其中,Iinux操作系統(tǒng)內(nèi)核位于驅(qū)動層,而應(yīng)用程序位于應(yīng)用層,系統(tǒng)調(diào)用是指應(yīng)用程序向Iinux操作系統(tǒng)內(nèi)核請求需要運行的服務(wù)。也即,應(yīng)用層對數(shù)據(jù)的修改是由驅(qū)動層進行相應(yīng)的系統(tǒng)調(diào)用完成的。由于在應(yīng)用層對數(shù)據(jù)的保護很容易被突破,因此,只要突破了在應(yīng)用層對數(shù)據(jù)的保護,應(yīng)用層就可以直接指示驅(qū)動層進行相應(yīng)的系統(tǒng)調(diào)用,以完成對數(shù)據(jù)的修改。但是,Iinux操作系統(tǒng)內(nèi)核所在的驅(qū)動層卻很難被突破,因此本發(fā)明實施例中摒棄了現(xiàn)有技術(shù)中在應(yīng)用層對數(shù)據(jù)進行保護的方法,而在內(nèi)核級別的驅(qū)動層對數(shù)據(jù)進行保護, 在Iinux操作系統(tǒng)內(nèi)核進行系統(tǒng)調(diào)用之前,先判斷對數(shù)據(jù)的修改操作是否為合法操作,如果合法,則進行相應(yīng)的系統(tǒng)調(diào)用,完成對數(shù)據(jù)的修改操作,如果不合法,則拒絕進行系統(tǒng)調(diào)用,也即拒絕該修改操作。采用該方法即使應(yīng)用層被突破,但是當(dāng)應(yīng)用層請求驅(qū)動層進行一個系統(tǒng)調(diào)用時,若驅(qū)動層判斷該操作不合法,仍然能夠拒絕對數(shù)據(jù)的非法篡改,相比于現(xiàn)有技術(shù)中只停留在應(yīng)用層對數(shù)據(jù)進行保護的方法,本發(fā)明實施例提供的數(shù)據(jù)防篡改方法可以更加有效的保證數(shù)據(jù)的安全,提高了數(shù)據(jù)的安全性。下面結(jié)合說明書附圖,對本發(fā)明實施例進行詳細描述。圖I為本發(fā)明實施例提供的數(shù)據(jù)防篡改的過程,具體包括以下步驟SlOl =Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求。在本發(fā)明實施例中,用戶通過該第一應(yīng)用程序?qū)?shù)據(jù)進行修改,該第一應(yīng)用程序則向Iinux操作系統(tǒng)內(nèi)核發(fā)送修改數(shù)據(jù)的修改請求,請求Iinux操作系統(tǒng)內(nèi)核進行相應(yīng)的系統(tǒng)調(diào)用,以完成修改操作。其中,該第一應(yīng)用程序即為位于應(yīng)用層的應(yīng)用程序。S102 :根據(jù)該修改請求,確定第一應(yīng)用程序所要修改的數(shù)據(jù)。Iinux操作系統(tǒng)內(nèi)核在接收到修改請求后,并不馬上進行相應(yīng)的系統(tǒng)調(diào)用,而是先根據(jù)該修改請求,確定第一應(yīng)用程序所要修改的數(shù)據(jù)。其中,該修改請求中攜帶第一應(yīng)用程序所要修改的數(shù)據(jù)的標(biāo)識、存儲路徑以及數(shù)據(jù)類型,Iinux操作系統(tǒng)內(nèi)核可以據(jù)此確定第一應(yīng)用程序所要修改的數(shù)據(jù)。S103:linux操作系統(tǒng)內(nèi)核根據(jù)預(yù)先保存的安全策略,判斷第一應(yīng)用程序?qū)Υ_定的該數(shù)據(jù)的修改操作是否為合法操作,若是,則進行步驟S104,否則進行步驟S105。在本發(fā)明實施例中,Iinux操作系統(tǒng)接收到修改請求后,并不馬上進行相應(yīng)的系統(tǒng)調(diào)用,而是先根據(jù)上述步驟S102和S103判斷對該數(shù)據(jù)進行的修改操作是否為合法操作,若是合法操作則允許修改,否則拒絕修改,也即在內(nèi)核級別的驅(qū)動層中實現(xiàn)對數(shù)據(jù)的保護。其中,安全策略可以根據(jù)需要進行具體設(shè)定,并預(yù)先保存在Iinux操作系統(tǒng)內(nèi)核中。S104 =Iinux操作系統(tǒng)內(nèi)核進行該修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作。當(dāng)判斷該修改操作為合法操作時,則執(zhí)行正常的流程,進行相應(yīng)的系統(tǒng)調(diào)用,完成對該數(shù)據(jù)的修改操作。S105 :拒絕第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作。當(dāng)判斷該修改操作為非法操作時,則不進行系統(tǒng)調(diào)用,拒絕該修改操作。在上述過程中,Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,并確定第一應(yīng)用程序所要修改的數(shù)據(jù),根據(jù)預(yù)先保存的安全策略,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作是否合法,若合法,則進行該修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)該修改操作,否則拒絕該修改操作。由于本發(fā)明實施例中Iinux操作系統(tǒng)內(nèi)核在進行相應(yīng)的系統(tǒng)調(diào)用之前,根據(jù)保存的安全策略判斷修改操作是否合法,從而實現(xiàn)了在內(nèi)核級別的驅(qū)動層對數(shù)據(jù)進行保護,由于要進入Iinux操作系統(tǒng)內(nèi)核,并對其保存的安全策略進行修改需要很高的權(quán)限,而且,進入位于驅(qū)動層的Iinux操作系統(tǒng)內(nèi)核并修改安全策略還需要攻擊者對 Iinux操作系統(tǒng)內(nèi)核非常熟悉,因此,Iinux操作系統(tǒng)的驅(qū)動層很難被突破,即使應(yīng)用層被突破,驅(qū)動層仍然可以有效的保護數(shù)據(jù),進而相比于現(xiàn)有技術(shù)只停留在應(yīng)用層對數(shù)據(jù)進行保護的方法,可以有效的保證數(shù)據(jù)的安全,提高了數(shù)據(jù)的安全性。在上述圖I所示的過程中,Iinux操作系統(tǒng)內(nèi)核在接收到修改請求后,并不是馬上進行系統(tǒng)調(diào)用,而是先進行步驟S102和S103的方法是通過hook的方法實現(xiàn)的。具體的, Iinux操作系統(tǒng)內(nèi)核預(yù)先對修改操作對應(yīng)的每個系統(tǒng)調(diào)用進行hook操作,使得Iinux操作系統(tǒng)內(nèi)核在根據(jù)接收到的修改請求進行相應(yīng)的系統(tǒng)調(diào)用之前,先進行步驟S102和S103的過程,也即先進行根據(jù)該修改請求,確定第一應(yīng)用程序所要修改的數(shù)據(jù),并根據(jù)預(yù)先保存的安全策略,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作是否為合法操作的步驟。由于現(xiàn)有的Iinux操作系統(tǒng)內(nèi)核均是在接收到修改請求后馬上進行相應(yīng)的系統(tǒng)調(diào)用,而hook方法則可以使Iinux操作系統(tǒng)內(nèi)核在進行系統(tǒng)調(diào)用之前,先進行特定步驟的處理,因此,通過上述對每個系統(tǒng)調(diào)用進行hook操作的方法,就可在現(xiàn)有的Iinux操作系統(tǒng)內(nèi)核在進行系統(tǒng)調(diào)用之前,先執(zhí)行步驟S102和S103,以判斷修改操作是否合法,再根據(jù)判斷結(jié)果進行相應(yīng)處理。在本發(fā)明實施例中,可以通過第二應(yīng)用程序?qū)⒃O(shè)定的安全策略保存在Iinux操作系統(tǒng)內(nèi)核中,也即通過應(yīng)用層將安全策略寫入驅(qū)動層。其中,第二應(yīng)用程序也是位于應(yīng)用層的應(yīng)用程序,為了進一步保證數(shù)據(jù)的安全性,該第二應(yīng)用程序可以是預(yù)設(shè)的可信任的應(yīng)用程序。并且,由于netlink方式可以實現(xiàn)應(yīng)用層和驅(qū)動層的全雙工即時通信,采用netlink方式將安全策略寫入驅(qū)動層可以提高寫入安全策略的效率,因此,本發(fā)明實施例中Iinux 操作系統(tǒng)內(nèi)核保存安全策略的方法具體為=Iinux操作系統(tǒng)內(nèi)核接收第二應(yīng)用程序通過 netlink方式下發(fā)的安全策略并保存。當(dāng)然,第二應(yīng)用程序還可以采用其他方式向Iinux操作系統(tǒng)內(nèi)核下發(fā)安全策略。在本發(fā)明實施例中,設(shè)置的安全策略中具體可以包括受保護數(shù)據(jù)的存儲路徑、受保護數(shù)據(jù)的數(shù)據(jù)類型、可信任的應(yīng)用程序的標(biāo)識信息等,當(dāng)然也可以只包括其中的一種或幾種,其中,安全策略中包含的內(nèi)容越多,數(shù)據(jù)的安全性也就越高。采用上述方法,則可以對需要保護的數(shù)據(jù)進行批量的設(shè)定,例如設(shè)定某路徑下的html類型、txt類型、jsp類型、jpeg 類型的數(shù)據(jù)為受保護的數(shù)據(jù),并可以設(shè)定一個或幾個可信任的應(yīng)用程序,可信任的應(yīng)用程序的標(biāo)識信息可以為應(yīng)用程序的名稱,為了避免非法應(yīng)用程序采用相同的名稱對受保護的數(shù)據(jù)進行篡改,可信任的應(yīng)用程序的標(biāo)識信息還可以為應(yīng)用程序的路徑信息。如果第一應(yīng)用程序要修改的數(shù)據(jù)為指定路徑下的指定類型的數(shù)據(jù),那么只有當(dāng)?shù)谝粦?yīng)用程序為指定的可信任的應(yīng)用程序時,才可以對該數(shù)據(jù)進行修改,否則拒絕修改。如果第一應(yīng)用程序要修改的數(shù)據(jù)不是指定路徑下的數(shù)據(jù),或者不是指定類型的數(shù)據(jù),也即第一應(yīng)用程序要修改的數(shù)據(jù)不是指定的受保護的數(shù)據(jù),那么無論第一應(yīng)用程序是否為指定的可信任的應(yīng)用程序,均可以對該數(shù)據(jù)進行修改。以安全策略中包括受保護數(shù)據(jù)的存儲路徑、受保護數(shù)據(jù)的數(shù)據(jù)類型、可信任的應(yīng)用程序的標(biāo)識信息為例進行說明。當(dāng)Iinux操作系統(tǒng)內(nèi)核判斷第一應(yīng)用程序所要修改的數(shù)據(jù)為該安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷該數(shù)據(jù)的數(shù)據(jù)類型為安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷第一應(yīng)用程序的標(biāo)識信息為安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作為合法操作。當(dāng)Iinux操作系統(tǒng)內(nèi)核判斷該數(shù)據(jù)不是安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),或者,判斷該數(shù)據(jù)的數(shù)據(jù)類型不是安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型時,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作為合法操作。當(dāng)Iinux操作系統(tǒng)內(nèi)核判斷該數(shù)據(jù)為安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷該數(shù)據(jù)的數(shù)據(jù)類型為安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷第一應(yīng)用程序的標(biāo)識信息不是安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作為非法操作。另外,為了進一步保證數(shù)據(jù)的安全性,還可以根據(jù)需要,在安全策略中針對每個受保護數(shù)據(jù),具體的設(shè)置允許或拒絕對該受保護數(shù)據(jù)所進行的操作類型,例如拒絕對該受保護數(shù)據(jù)進行寫操作、修改操作、重命名操作,允許對該受保護數(shù)據(jù)進行讀操作等等,可以更細粒度的保護每個受保護數(shù)據(jù)。其中,為了避免Iinux操作系統(tǒng)內(nèi)核中保存的安全策略被篡改,該安全策略本身也要作為受保護數(shù)據(jù)而受到保護,以進一步提高數(shù)據(jù)的安全性。在上述過程中,為了提示安全策略中指定的受保護數(shù)據(jù)已被修改,以進一步提高數(shù)據(jù)的安全性,當(dāng)Iinux操作系統(tǒng)內(nèi)核判斷該數(shù)據(jù)為安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷該數(shù)據(jù)的數(shù)據(jù)類型為安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型, 且,判斷第一應(yīng)用程序的標(biāo)識信息為安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時, Iinux操作系統(tǒng)內(nèi)核進行該修改操作對應(yīng)的系統(tǒng)調(diào)用之后,還要產(chǎn)生告警信息,并將產(chǎn)生的告警信息通過netlink方式返回第二應(yīng)用程序,以提示指定的受保護數(shù)據(jù)已經(jīng)被修改。具體的,可以將產(chǎn)生的告警信息統(tǒng)一保存在第二應(yīng)用程序的告警日志中,用來在因受保護數(shù)據(jù)被修改而出現(xiàn)問題時,管理員可以在告警日志中查詢相應(yīng)的告警信息,對出現(xiàn)的問題進行追蹤并解決。圖2為本發(fā)明實施例提供的數(shù)據(jù)防篡改的詳細過程,具體包括以下步驟S201 :linux操作系統(tǒng)內(nèi)核接收第二應(yīng)用程序通過netlink方式下發(fā)的安全策略并保存,并對修改操作對應(yīng)的每個系統(tǒng)調(diào)用進行hook操作。其中,進行hook操作的目的是在Iinux操作系統(tǒng)內(nèi)核進行系統(tǒng)調(diào)用之前,先進行修改操作是否合法的判斷,根據(jù)判斷結(jié)果進行相應(yīng)處理。S202 :linux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求。S203 :根據(jù)修改請求,確定第一應(yīng)用程序所要修改的數(shù)據(jù)。S204:判斷該數(shù)據(jù)是否為安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),若是,則進行步驟S205,否則進行步驟S207。S205:判斷該數(shù)據(jù)的數(shù)據(jù)類型是否為安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型, 若是,則進行步驟S206,否則進行步驟S207。S206:判斷第一應(yīng)用程序的標(biāo)識信息是否為安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息,若是,則進行步驟S207,否則進行步驟S209。S207 :進行該修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作。S208 :產(chǎn)生告警信息,并將產(chǎn)生的告警信息通過netlink方式返回第二應(yīng)用程序。S209 :不進行系統(tǒng)調(diào)用,拒絕第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作。圖3為本發(fā)明實施例提供的數(shù)據(jù)防篡改的裝置結(jié)構(gòu)示意圖,具體包括接收模塊301,用于接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求;確定模塊302,用于根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù);判斷模塊303,用于根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作;處理模塊304,用于當(dāng)判斷為合法操作時,進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作,否則,拒絕所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作。所述裝置還包括插入模塊305,用于對修改操作對應(yīng)的每個系統(tǒng)調(diào)用進行hook操作,使所述處理模塊304在根據(jù)接收到的第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,進行相應(yīng)的系統(tǒng)調(diào)用之前,確定模塊302根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù),并且判斷模塊303根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作。所述判斷模塊303具體用于,接收第二應(yīng)用程序通過netlink方式下發(fā)的安全策略并保存。所述判斷模塊303具體用于,當(dāng)判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息為所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為合法操作;當(dāng)判斷所述數(shù)據(jù)不是所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),或者,判斷所述數(shù)據(jù)的數(shù)據(jù)類型不是所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為合法操作;當(dāng)判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息不是所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為非法操作;其中,所述安全策略中包括受保護數(shù)據(jù)的存儲路徑、受保護數(shù)據(jù)的數(shù)據(jù)類型、可信任的應(yīng)用程序的標(biāo)識信息。所述裝置還包括告警模塊306,用于當(dāng)所述判斷模塊303判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息為所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,所述處理模塊304進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用之后,產(chǎn)生告警信息,并將產(chǎn)生的告警信息通過netlink方式返回第二應(yīng)用程序。具體的上述數(shù)據(jù)防篡改的裝置可以位于Iinux操作系統(tǒng)內(nèi)核中。本發(fā)明實施例提供一種數(shù)據(jù)防篡改的方法及裝置,該方法Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,并確定第一應(yīng)用程序所要修改的數(shù)據(jù),根據(jù)預(yù)先保存的安全策略,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作是否合法,若合法,則進行該修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)該修改操作,否則拒絕該修改操作。由于本發(fā)明實施例中 Iinux操作系統(tǒng)內(nèi)核在進行相應(yīng)的系統(tǒng)調(diào)用之前,根據(jù)保存的安全策略判斷修改操作是否合法,從而實現(xiàn)了在內(nèi)核級別的驅(qū)動層對數(shù)據(jù)進行保護,相比于現(xiàn)有技術(shù)在應(yīng)用層對數(shù)據(jù)進行保護的方法,可以有效的保證數(shù)據(jù)的安全,提高了數(shù)據(jù)的安全性。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)防篡改的方法,其特征在于,包括Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求;并根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù);所述Iinux操作系統(tǒng)內(nèi)核根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作;以及當(dāng)判斷為合法操作時,所述Iinux操作系統(tǒng)內(nèi)核進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用, 以實現(xiàn)所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作;否則,拒絕所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作。
2.如權(quán)利要求I所述的方法,其特征在于,Iinux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求之前,所述方法還包括所述Iinux操作系統(tǒng)內(nèi)核對修改操作對應(yīng)的每個系統(tǒng)調(diào)用進行hook操作,使所述 Iinux操作系統(tǒng)內(nèi)核在根據(jù)接收到的第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,進行相應(yīng)的系統(tǒng)調(diào)用之前,先進行根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù),并根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作的步驟。
3.如權(quán)利要求I所述的方法,其特征在于,所述Iinux操作系統(tǒng)內(nèi)核保存安全策略,具體包括所述Iinux操作系統(tǒng)內(nèi)核接收第二應(yīng)用程序通過netlink方式下發(fā)的安全策略并保存。
4.如權(quán)利要求I所述的方法,其特征在于,所述安全策略具體包括受保護數(shù)據(jù)的存儲路徑、受保護數(shù)據(jù)的數(shù)據(jù)類型、可信任的應(yīng)用程序的標(biāo)識信息;所述Iinux操作系統(tǒng)內(nèi)核根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作,具體包括當(dāng)所述Iinux操作系統(tǒng)內(nèi)核判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息為所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為合法操作;以及當(dāng)所述Iinux操作系統(tǒng)內(nèi)核判斷所述數(shù)據(jù)不是所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),或者,判斷所述數(shù)據(jù)的數(shù)據(jù)類型不是所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為合法操作;以及當(dāng)所述Iinux操作系統(tǒng)內(nèi)核判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息不是所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為非法操作。
5.如權(quán)利要求4所述的方法,其特征在于,當(dāng)所述Iinux操作系統(tǒng)內(nèi)核判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息為所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,所述Iinux操作系統(tǒng)內(nèi)核進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用之后,所述方法還包括產(chǎn)生告警信息,并將產(chǎn)生的所述告警信息通過netlink方式返回第二應(yīng)用程序。
6.一種數(shù)據(jù)防篡改的裝置,其特征在于,包括接收模塊,用于接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求;確定模塊,用于根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù);判斷模塊,用于根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作;處理模塊,用于當(dāng)判斷為合法操作時,進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作,否則,拒絕所述第一應(yīng)用程序?qū)λ鰯?shù)據(jù)的修改操作。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括插入模塊,用于對修改操作對應(yīng)的每個系統(tǒng)調(diào)用進行hook操作,使所述處理模塊在根據(jù)接收到的第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,進行相應(yīng)的系統(tǒng)調(diào)用之前,確定模塊根據(jù)所述修改請求,確定所述第一應(yīng)用程序所要修改的數(shù)據(jù),并且判斷模塊根據(jù)預(yù)先保存的安全策略,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作是否為合法操作。
8.如權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊具體用于,接收第二應(yīng)用程序通過netlink方式下發(fā)的安全策略并保存。
9.如權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊具體用于,當(dāng)判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息為所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為合法操作;當(dāng)判斷所述數(shù)據(jù)不是所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),或者,判斷所述數(shù)據(jù)的數(shù)據(jù)類型不是所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為合法操作;當(dāng)判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息不是所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,判斷所述第一應(yīng)用程序?qū)Υ_定的所述數(shù)據(jù)的修改操作為非法操作;其中,所述安全策略中包括受保護數(shù)據(jù)的存儲路徑、受保護數(shù)據(jù)的數(shù)據(jù)類型、可信任的應(yīng)用程序的標(biāo)識信息。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括告警模塊,用于當(dāng)所述判斷模塊判斷所述數(shù)據(jù)為所述安全策略中包含的受保護數(shù)據(jù)的存儲路徑下的數(shù)據(jù),且,判斷所述數(shù)據(jù)的數(shù)據(jù)類型為所述安全策略中包含的受保護數(shù)據(jù)的數(shù)據(jù)類型,且,判斷所述第一應(yīng)用程序的標(biāo)識信息為所述安全策略中包含的可信任的應(yīng)用程序的標(biāo)識信息時,所述處理模塊進行所述修改操作對應(yīng)的系統(tǒng)調(diào)用之后,產(chǎn)生告警信息, 并將產(chǎn)生的告警信息通過netlink方式返回第二應(yīng)用程序。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)防篡改的方法及裝置,用以解決現(xiàn)有技術(shù)不能有效的保證數(shù)據(jù)的安全,降低了數(shù)據(jù)的安全性的問題。該方法linux操作系統(tǒng)內(nèi)核接收第一應(yīng)用程序發(fā)送的修改數(shù)據(jù)的修改請求,并確定第一應(yīng)用程序所要修改的數(shù)據(jù),根據(jù)預(yù)先保存的安全策略,判斷第一應(yīng)用程序?qū)υ摂?shù)據(jù)的修改操作是否合法,若合法,則進行該修改操作對應(yīng)的系統(tǒng)調(diào)用,以實現(xiàn)該修改操作,否則拒絕該修改操作。由于本發(fā)明實施例中l(wèi)inux操作系統(tǒng)內(nèi)核在進行相應(yīng)的系統(tǒng)調(diào)用之前,根據(jù)保存的安全策略判斷修改操作是否合法,從而實現(xiàn)了在內(nèi)核級別的驅(qū)動層對數(shù)據(jù)進行保護,相比于現(xiàn)有技術(shù)在應(yīng)用層對數(shù)據(jù)進行保護的方法,可以有效的保證數(shù)據(jù)的安全,提高了數(shù)據(jù)的安全性。
文檔編號G06F21/00GK102592076SQ20111043065
公開日2012年7月18日 申請日期2011年12月20日 優(yōu)先權(quán)日2011年12月20日
發(fā)明者劉洋, 宋洋, 馬剛偉 申請人:北京神州綠盟信息安全科技股份有限公司