軟體文件被修改時的來源追溯方法、監測方法、還原方法及系統的制作方法
【專利摘要】本發明公開了一種軟體文件被修改時的來源追溯方法、監測方法、還原方法及系統,來源追溯方法包括S101、在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;S102、根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號;S103、通過進程ID獲取到對應的進程對象;S104、通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;S105、通過原始調用函數得到操作者IP、操作者提交的報文數據,從而得到修改的軟體文件的修改來源;S106、客戶端計算機將操作者IP、操作者提交的報文數據打包形成數據包,并將數據包上傳至服務器端;S107、服務器端接收到數據包之后發出警示信息至客戶端計算機側的對應管理人員。
【專利說明】
軟體文件被修改時的來源追溯方法、監測方法、還原方法及系統
技術領域
[0001 ]本發明涉及計算機軟體安全監控領域,特別涉及一種軟體文件被修改時的來源追溯方法、監測方法、還原方法及系統。
【背景技術】
[0002]個人電腦、服務器等計算機被入侵后,計算機內的軟體文件會被修改,導致計算機內存在木馬文件、原文件被篡改等等問題,為了減少被黑客、病毒入侵文件被修改的幾率,或者為了盡快發現病毒,保護計算機,許多用戶在計算機上裝有殺毒軟件、防護墻軟件等以對計算機內的軟體文件進行保護。目前的入侵防御軟件都是基于防火墻形式的前端防護軟件,采用正則和策略進行保護,因為自身設計缺陷和自身安全缺陷導致入侵者很容易繞過防御,或者軟件本身處理不到高并發和大流量導致啟用默認策略放行所有請求導致防御功能失效,這樣容易被黑客繞過策略,或者繞過防火墻對目標進行下一步滲透測試而防火墻上無任何不安全的通知,被黑客入侵系統后留下一系列不可追溯的記錄和更改,這些不可追溯的記錄和更改讓管理人員無法快速的找到入侵根源,讓管理員人員無法快速進行排查。因此,迫切需要一種能夠在得知計算機內軟體文件被修改后能夠即時發現被修改文件路徑和導致文件被修改的請求來源的解決方案,便于當計算機遇到非正常或非授權的修改時,管理人員能夠根據原始來源、調用過程到修改的途徑以及原始入侵口。
【發明內容】
[0003]針對上述現有技術的不足,本發明所要解決的技術問題是:提供一種操作系統執行寫入動作時能夠根據寫入的動作追溯到該寫入動作的原始根源的計算機內軟體文件被修改時的來源追溯方法;還提供一種監測計算機內的軟體文件是否被修改、追溯被修改的軟體文件的原始根源的客戶端計算機內軟體文件的監測方法;還提供一種能夠對客戶端計算機內軟體文件備份還原的方法;還提供一種客戶端計算機內軟體文件的監控還原系統。
[0004]為解決上述技術問題,本發明采用的一個技術方案是:提供一種計算機內軟體文件被修改時的來源追溯方法,包括以下步驟:
5101、在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
5102、根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號;
5103、通過進程ID獲取到對應的進程對象;
5104、通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
5105、通過原始調用函數得到操作者IP、操作者提交的報文數據,從而得到修改的軟體文件的修改來源。
[0005]其中,在S102步驟中,還根據操作系統調用寫入函數時傳遞的參數來獲取被寫入硬盤的目錄位置。[000?] 進一步的,上述SlOl至S105步驟均由客戶端計算機側進行處理;
還包括以下步驟:
S106、客戶端計算機將操作者ΙΡ、操作者提交的報文數據打包形成數據包,并將數據包上傳至服務器端。
[0007]S107、服務器端接收到數據包之后發出警示信息至客戶端計算機側的對應管理人員以警示對應的客戶端計算機內的文件被修改,警示信息包括操作者IP、操作者提交的報文數據。
[0008]其中,所述S106步驟包括以下子步驟:
51061、客戶端計算機對打包后的數據包進行數據加密;
51062、客戶端計算機判斷是否加密成功;若加密成功,則進入S1063步驟,若未加密成功,則轉入S1061步驟;
51063、客戶端計算機將加密后的數據包進行數據傳輸,以上傳至服務器端。
[0009]為解決上述技術問題,本發明采用的另一個技術方案是:提供一種客戶端計算機內軟體文件的監測方法,包括以下步驟:
5201、對客戶端計算機內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份;
5202、在客戶端計算機操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
5203、客戶端計算機根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容;
5204、客戶端計算機通過進程ID獲取到對應的進程對象;
5205、客戶端計算機通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
5206、客戶端計算機通過原始調用函數得到操作者IP、操作者提交的報文數據,并將操作者IP、報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端;
5207、服務器端接收到數據包之后對數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的。
[0010]進一步的,還包括:
5208、服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員。
[0011]進一步的,還包括:
5209、客戶端計算機接收當管理人員確認被修改明細對應的軟體文件修改為非授權人員的修改時而發出的備份還原請求,客戶端計算機將還原請求發送至服務器端;
5210、服務器端接收到還原請求之后,對請求的客戶端計算機進行軟體文件還原。
[0012]為解決上述技術問題,本發明采用的又一個技術方案是:提供一種客戶端計算機內軟體文件的監測方法,包括以下步驟:
5301、客戶端計算機對其內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份;
5302、客戶端計算機在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
5303、客戶端計算機根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容;
5304、客戶端計算機通過進程ID獲取到對應的進程對象;
5305、客戶端計算機通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
5306、客戶端計算機通過原始調用函數得到操作者IP、操作者提交的報文數據,并將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端;
5307、客戶端計算機接收客戶端計算機管理人員發出的備份還原請求,并將接收到的備份還原請求發送至服務器端;
5308、客戶端計算機根據服務器端的操作對客戶端內的軟體文件進行還原操作。
[0013]為解決上述技術問題,本發明采用的又一個技術方案是:提供一種對客戶端計算機內軟體文件備份還原的方法:
5401、服務器端接收客戶端計算機對其內的軟體文件進行備份的備份文件,以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件對應的備份文件包括:文件位置目錄的備份、文件屬性的備份、文件內容的備份;
5402、服務器端接收客戶端計算機對每一被修改的軟體文件對應的數據包,其中,數據包內有操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容;
5403、服務器端對接收到的數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的;
5404、服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員;
5405、服務器端接收客戶端計算機發送的備份還原請求,對請求的客戶端計算機進行軟體文件還原。
[0014]為解決上述技術問題,本發明采用的又一個技術方案是:提供一種客戶端計算機內軟體文件的監控還原系統,包括客戶端計算機以及服務器端;
所述客戶端計算機包括:
備份上傳模塊,用于對客戶端計算機內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份;
攔截模塊,用于在客戶端計算機操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
寫入信息獲取模塊,用于根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容;
進程對象獲取模塊,用于通過進程ID獲取到對應的進程對象;
第一分析模塊,用于通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
操作者信息獲取模塊,用于通過原始調用函數得到操作者IP、操作者提交的報文數據;數據包形成上傳模塊,用于將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端;所述服務器端包括:
第二分析模塊,用于接收到數據包之后對該數據包,對數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的;
數據包形成發送模塊,用于在服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員;
所述客戶端計算機還包括接收模塊,用于接收當管理人員確認被修改明細對應的軟體文件修改為非授權人員的修改時而發出的備份還原請求;
還原請求發送模塊,用于將接收到的還原請求發送至服務器端;
服務器端還包括還原操作模塊,用于根據還原請求對對應的客戶端計算機內的軟體文件進行還原操作。
[0015]上述方法及系統,監測每一個寫入動作,只要有寫入動作便進行攔截,待獲取到想要的信息之后,寫入會繼續,但是這個時候我們能夠從獲取到的信息通過逆向遞歸方法對寫入動作對應的原始請求函數,通過原始調用函數得到操作者IP及報文數據,如此只要計算機內有文件被修改、或者增加新的軟體文件,我們都可得到記錄,形成可追溯的記錄文件。這些記錄文件可以發送至計算機的管理人員中,當計算機的寫入操作是被允許的授權人員寫入時,管理人員知曉該操作是經過授權過的。當未經管理人員授權時進行修改,管理人員可通過這些記錄文件找到修改來源以及被修改的文件的位置,便于管理人員即時通過來源找到入侵口以及便于管理人員采取修復措施。通過攔截寫入函數后,獲取得到文件位置可得到被修改的文件的具體位置,管理人員得知該具體位置后,可選擇性的對該位置處的對應文件進行修復。
[0016]當服務器端形成記錄文件后,可通過任何一種傳輸方式發送給客戶端計算機的管理人員,例如郵件、QQ等等,如果客戶端計算機的寫入修改動作是管理人員自己或者授權的人進行的,管理人員通過該郵件或警示信息后,可不必理會;如果修改動作不是管理人員或授權的人進行的,管理人員收到該警示信息后通過記錄文件追溯修改源頭,可即時排查問題,對計算機進行修復。
[0017]客戶端和服務器端相配合實現客戶端計算機內的文件是否被修改的監測,若被修改后,由服務器端備份的軟體文件為基線,將修改后的軟體文件的屬性、內容、位置與備份的對應軟體文件進行對比,以得出修改的明細,并形成記錄文件發送至管理人員,由于本發明的客戶端計算機主要為企業用服務器,因此修改服務器的次數、頻率均比較低,而且修改一般均為管理人員修改,因此管理人員在接收到記錄文件時,很容易判斷此修改是否為本人或者授權人員的修改,若確定本修改為非授權人員的修改并且修改有可能影響服務器的處理,那么則表示該修改為異常修改,有可能為黑客入侵、病毒入侵后的修改,管理人員則通過記錄文件找到源頭、找到文件位置,通過備份該位置的文件還原,以避免系統繼續被感染,通過源頭找到修改文件是從服務器哪個入口進入的,能夠即時得知服務器的漏洞,能夠盡快的對漏洞進行修復。
[0018]上述方法及系統可以與前端防護墻配合使用,達到對客戶端計算機的雙層保護,即:防護墻對前端入侵進行防護,防護墻未防護到的,通過本系統及方法進行即時檢測,以便管理人員即時發現異常修改,即時得知被修改的文件、位置以及來源,即時作好備份或修復工作。
【附圖說明】
[0019]
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0020]圖1是本發明計算機內軟體文件被修改時的來源追溯方法一實施例的流程圖。
[0021]圖2是本發明客戶端計算機內軟體文件的監測方法一實施例的流程圖。
[0022]圖3是本發明客戶端計算機內軟體文件的監測方法另一實施例的流程圖。
[0023]圖4是本發明對客戶端計算機內軟體文件備份還原的方法一實施例的流程圖。
【具體實施方式】
[0024]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0025]請參見圖1,本發明的計算機內軟體文件被修改時的來源追溯方法,包括以下步驟:
5101、在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
5102、根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號;
本步驟中,還可根據寫入函數時傳遞的參數來獲取被寫入硬盤的位置目錄(例如文件路徑、文件層次結構)。可理解的,還可通過寫入函數時傳遞的參數來得到被寫入的文件屬性、被寫入的文件內容等等。文件屬性例如可是以下屬性的其中一種或任意組合:歸檔文件、隱藏文件、創建時間、文件流、文件大小、文件類型格式、文件MD5 (文件的hash值,文件的唯一標識)、文件所有者、文件組別、文件最后修改時間、系統文件、用戶和組等等。本實施例中可選擇:文件類型、文件大于、文件MD5、文件所有者、最后修改時間作為文件的屬性。在其他的實施例中,文件屬性還可有其它的選擇,并且文件屬性的各類并不限于以上列舉,在一些實施例中,可根據實際需要再列出相關的文件屬性各類,此處不再一一列舉。
[0026]S103、通過進程ID獲取到對應的進程對象;
5104、通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
5105、通過原始調用函數得到操作者IP、操作者提交的報文數據,從而得到修改的軟體文件的修改來源;
5106、將操作者IP、操作者提交的報文數據打包形成數據包,并將數據包上傳至服務器端;
本步驟中,包括以下子步驟:
51061、客戶端計算機對打包后的數據包進行數據加密;
51062、客戶端計算機判斷是否加密成功;若加密成功,則進入S1063步驟,若未加密成功,則轉入S1061步驟;
51063、客戶端計算機將加密后的數據包進行數據傳輸,以上傳至服務器端。
[0027]上述SlOl至S106步驟均由客戶端計算機側操作,客戶端計算機可以是個人電腦、服務器等。而本發明的追溯方法,主要是針對服務器而設定的,因此本實施例的客戶端計算機為服務器,例如企業用服務器、各種網頁服務器、云服務器等等。而本實施例中的服務器端則為本方法對應的APP的總服務器,用來備份、分析、處理各個客戶端服務器的軟體文件。
[0028]S107、服務器端接收到數據包之后發出警示信息至客戶端計算機側的對應管理人員以警示對應的客戶端計算機內的文件被修改,警示信息包括操作者IP、操作者提交的報文數據。
[0029]本發明實施方式,采用逆向法獲取操作系統寫入中斷的向量表hook住nt寫入內核函數,獲取寫入的進程ID號,通過進程ID獲取進程實例句柄,例如Java進程進行的寫入操作,則追溯到Java的Fi Ie類wri ter方法,利用匯編語句獲取該函數在堆桟中的返回值,通過本發明的追溯引擎達到無消耗的進行追溯直到追溯至能獲取HTTP報文信息的函數為止。
[0030]本發明實施方式,監測每一個寫入動作,只要有寫入動作便進行攔截,待獲取到想要的信息之后,寫入會繼續,但是這個時候我們能夠從獲取到的信息通過逆向遞歸方法對寫入動作對應的原始請求函數,通過原始調用函數得到操作者IP及報文數據,如此只要計算機內有文件被修改、或者增加新的軟體文件,我們都可得到記錄,形成可追溯的記錄文件。這些記錄文件可以發送至計算機的管理人員中,當計算機的寫入操作是被允許的授權人員寫入時,管理人員知曉該操作是經過授權過的。當未經管理人員授權時進行修改,管理人員可通過這些記錄文件找到修改來源以及被修改的文件的位置,便于管理人員即時通過來源找到入侵口以及便于管理人員采取修復措施。通過攔截寫入函數后,獲取得到文件位置可得到被修改的文件的具體位置,管理人員得知該具體位置后,可選擇性的對該位置處的對應文件進行修復。
[0031]當服務器端形成記錄文件后,可通過任何一種傳輸方式發送給客戶端計算機的管理人員,例如郵件、QQ等等,如果客戶端計算機的寫入修改動作是管理人員自己或者授權的人進行的,管理人員通過該郵件或警示信息后,可不必理會;如果修改動作不是管理人員或授權的人進行的,管理人員收到該警示信息后通過記錄文件追溯修改源頭,可即時排查問題,對計算機進行修復。
[0032]請參見圖2,本實施例的客戶端計算機內軟體文件的監測方法,包括以下步驟:
5201、對客戶端計算機內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括對文件文件位置目錄的備份、對文件屬性的備份、對文件內容的備份;文件的屬性可選用上述實施例的文件屬性,此處不再贅述
5202、在客戶端計算機操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
5203、客戶端計算機根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容;
5204、客戶端計算機通過進程ID獲取到對應的進程對象;
5205、客戶端計算機通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
5206、客戶端計算機通過原始調用函數得到操作者IP、操作者提交的報文數據,并將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端;
5207、服務器端接收到數據包之后對數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的;
本實施例中,還可選擇的包括:
5208、服務器端與基線對比得到修改的明細后,將此打包形成數據包(記錄文件)并發送至對應的客戶端計算機的管理人員;
本實施例中,還可選擇的包括:
5209、客戶端計算機接收當管理人員確認被修改明細對應的軟體文件修改為非授權人員的修改時而發出的備份還原請求,客戶端計算機將還原請求發送至服務器端;
5210、服務器端接收到還原請求之后,對請求的客戶端計算機進行軟體文件還原。
[0033]本發明實施方式,客戶端和服務器端相配合實現客戶端計算機內的文件是否被修改的監測,若被修改后,由服務器端備份的軟體文件為基線,將修改后的軟體文件的屬性、內容、位置與備份的對應軟體文件進行對比,以得出修改的明細,并形成記錄文件發送至管理人員,由于本實施例中的客戶端計算機主要為企業用服務器,因此修改服務器的次數、頻率均比較低,而且修改一般均為管理人員修改,因此管理人員在接收到記錄文件時,很容易判斷此修改是否為本人或者授權人員的修改,若確定本修改為非授權人員的修改并且修改有可能影響服務器的處理,那么則表示該修改為異常修改,有可能為黑客入侵、病毒入侵后的修改,管理人員則通過記錄文件找到源頭、找到文件位置,通過備份該位置的文件還原,以避免系統繼續被感染,通過源頭找到修改文件是從服務器哪個入口進入的,能夠即時得知服務器的漏洞,能夠盡快的對漏洞進行修復。
[0034]請參見圖3,圖3是本發明另一實施例的客戶端計算機內軟體文件的監測方法,本方法主要為客戶端側處理的流程,具體如下:
5301、客戶端計算機對其內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份;
5302、客戶端計算機在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
5303、客戶端計算機根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容;
5304、客戶端計算機通過進程ID獲取到對應的進程對象;
5305、客戶端計算機通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
5306、客戶端計算機通過原始調用函數得到操作者IP、操作者提交的報文數據,并將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容,并打包形成數據包上傳至服務器端;
5307、客戶端計算機接收客戶端計算機管理人員發出的備份還原請求,并將接收到的備份還原請求發送至服務器端;
5308、客戶端計算機根據服務器端的操作對客戶端內的軟體文件進行還原操作。
[0035]請參見圖4,圖4是本發明對客戶端計算機內軟體文件備份還原的方法,本方法主要為服務器端的處理流程,主要用于根據客戶端上傳的數據包、管理人員的請求進行備份還原,具體包括以下步驟:
5401、服務器端接收客戶端計算機對其內的軟體文件進行備份的備份文件,以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件對應的備份文件包括:文件位置目錄的備份、文件屬性的備份、文件內容的備份;
5402、服務器端接收客戶端計算機對每一被修改的軟體文件對應的數據包,其中,數據包內有操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容;
5403、服務器端對接收到的數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的;
5404、服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員;
5405、服務器端接收客戶端計算機發送的備份還原請求,對請求的客戶端計算機進行軟體文件還原。
[0036]可理解的,上述方法步驟并非嚴格按照順序進行執行,例如:向服務器端請求還原的提前時客戶端計算機被修改而導致的客戶端計算機出現問題,例如被非授權的人員進行修改,例如被黑客入侵而導致的文件被修改等等,只要管理人員確定修改會導致服務器出現崩潰、被入侵、服務器處理速度變慢等等問題時,均可產生上述還原請求,它是根據管理人員的請求指令而產生的,時間上沒有任何限定。
[0037]本發明還公開了一種客戶端計算機內軟體文件的監控還原系統,包括客戶端計算機以及服務器端;
所述客戶端計算機包括:
備份上傳模塊,用于對客戶端計算機內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份;
攔截模塊,用于在客戶端計算機操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數;
寫入信息獲取模塊,用于根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容;
進程對象獲取模塊,用于通過進程ID獲取到對應的進程對象;
第一分析模塊,用于通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用;
操作者信息獲取模塊,用于通過原始調用函數得到操作者IP、操作者提交的報文數據;數據包形成上傳模塊,用于將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容,并打包形成數據包上傳至服務器端;
所述服務器端包括:
第二分析模塊,用于接收到數據包之后對該數據包,對數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的;
數據包形成發送模塊,用于在服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員;
所述客戶端計算機還包括接收模塊,用于接收當管理人員確認被修改明細對應的軟體文件修改為非授權人員的修改時而發出的備份還原請求;
還原請求發送模塊,用于將接收到的還原請求發送至服務器端;
服務器端還包括還原操作模塊,用于根據還原請求對對應的客戶端計算機內的軟體文件進行還原操作。
[0038]本發明實施方式,客戶端和服務器端相配合實現客戶端計算機內的文件是否被修改的監測,若被修改后,由服務器端備份的軟體文件為基線,將修改后的軟體文件的屬性、內容、位置與備份的對應軟體文件進行對比,以得出修改的明細,并形成記錄文件發送至管理人員,由于本實施例中的客戶端計算機主要為企業用服務器,因此修改服務器的次數、頻率均比較低,而且修改一般均為管理人員修改,因此管理人員在接收到記錄文件時,很容易判斷此修改是否為本人或者授權人員的修改,若確定本修改為非授權人員的修改并且修改有可能影響服務器的處理,那么則表示該修改為異常修改,有可能為黑客入侵、病毒入侵后的修改,管理人員則通過記錄文件找到源頭、找到文件位置,通過備份該位置的文件還原,以避免系統繼續被感染,通過源頭找到修改文件是從服務器哪個入口進入的,能夠即時得知服務器的漏洞,能夠盡快的對漏洞進行修復。
[0039]本實施例的系統可以與前端防護墻配合使用,達到對客戶端計算機的雙層保護,即:防護墻對前端入侵進行防護,防護墻未防護到的,通過本系統及方法進行即時檢測,以便管理人員即時發現異常修改,即時得知被修改的文件、位置以及來源,即時作好備份或修復工作。
[0040]以上僅為本發明的實施方式,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
【主權項】
1.一種計算機內軟體文件被修改時的來源追溯方法,包括以下步驟: 5101、在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數; 5102、根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號; 5103、通過進程ID獲取到對應的進程對象; 5104、通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用; 5105、通過原始調用函數得到操作者IP、操作者提交的報文數據,從而得到修改的軟體文件的修改來源。2.如權利要求1所述的計算機內軟體文件被修改時的來源追溯方法,其特征在于,在S102步驟中,還根據操作系統調用寫入函數時傳遞的參數來獲取被寫入硬盤的目錄位置。3.如權利要求2所述的計算機內軟體文件被修改時的來源追溯方法,其特征在于: 上述SlOl至S105步驟均由客戶端計算機側進行處理; 還包括以下步驟: 5106、客戶端計算機將操作者IP、操作者提交的報文數據打包形成數據包,并將數據包上傳至服務器端。 5107、服務器端接收到數據包之后發出警示信息至客戶端計算機側的對應管理人員以警示對應的客戶端計算機內的文件被修改,警示信息包括操作者IP、操作者提交的報文數據。4.如權利要求3所述的計算機內軟體文件被修改時的來源追溯方法,其特征在于,所述S106步驟包括以下子步驟: 51061、客戶端計算機對打包后的數據包進行數據加密; 51062、客戶端計算機判斷是否加密成功;若加密成功,則進入S1063步驟,若未加密成功,則轉入S1061步驟; 51063、客戶端計算機將加密后的數據包進行數據傳輸,以上傳至服務器端。5.—種客戶端計算機內軟體文件的監測方法,包括以下步驟: 5201、對客戶端計算機內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份; 5202、在客戶端計算機操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數; 5203、客戶端計算機根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容; 5204、客戶端計算機通過進程ID獲取到對應的進程對象; 5205、客戶端計算機通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用; 5206、客戶端計算機通過原始調用函數得到操作者IP、操作者提交的報文數據,并將操作者IP、報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端; 5207、服務器端接收到數據包之后對數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的。6.如權利要求5所述的客戶端計算機內軟體文件的監測方法,其特征在于,還包括: 5208、服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員。7.如權利要求6所述的客戶端計算機內軟體文件的監測方法,其特征在于,還包括: 5209、客戶端計算機接收當管理人員確認被修改明細對應的軟體文件修改為非授權人員的修改時而發出的備份還原請求,客戶端計算機將還原請求發送至服務器端; 5210、服務器端接收到還原請求之后,對請求的客戶端計算機進行軟體文件還原。8.—種客戶端計算機內軟體文件的監測方法,包括以下步驟: 5301、客戶端計算機對其內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份; 5302、客戶端計算機在操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數; 5303、客戶端計算機根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容; 5304、客戶端計算機通過進程ID獲取到對應的進程對象; 5305、客戶端計算機通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用; 5306、客戶端計算機通過原始調用函數得到操作者IP、操作者提交的報文數據,并將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端; 5307、客戶端計算機接收客戶端計算機管理人員發出的備份還原請求,并將接收到的備份還原請求發送至服務器端; 5308、客戶端計算機根據服務器端的操作對客戶端內的軟體文件進行還原操作。9.一種對客戶端計算機內軟體文件備份還原的方法: 5401、服務器端接收客戶端計算機對其內的軟體文件進行備份的備份文件,以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件對應的備份文件包括:文件位置目錄的備份、文件屬性的備份、文件內容的備份; 5402、服務器端接收客戶端計算機對每一被修改的軟體文件對應的數據包,其中,數據包內有操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容; 5403、服務器端對接收到的數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的; 5404、服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員; 5405、服務器端接收客戶端計算機發送的備份還原請求,對請求的客戶端計算機進行軟體文件還原。10.—種客戶端計算機內軟體文件的監控還原系統,其特征在于:包括客戶端計算機以及服務器端; 所述客戶端計算機包括: 備份上傳模塊,用于對客戶端計算機內的軟體文件進行備份并上傳至服務器端,以使服務器端以此作為判斷客戶端計算機內的軟體文件是否被修改的基線,其中,軟體文件的備份包括文件位置目錄的備份、文件屬性的備份、文件內容的備份; 攔截模塊,用于在客戶端計算機操作系統內核即將對硬盤寫入時,攔截操作系統內核對硬盤的寫入函數; 寫入信息獲取模塊,用于根據操作系統調用寫入函數時傳遞的參數來獲取進程的進程ID號、被寫入硬盤的位置目錄、被寫入的文件屬性、被寫入的文件內容; 進程對象獲取模塊,用于通過進程ID獲取到對應的進程對象; 第一分析模塊,用于通過進程堆棧讀取寫入函數的返回地址進行遞歸分析所述進程對象的原始請求函數調用; 操作者信息獲取模塊,用于通過原始調用函數得到操作者IP、操作者提交的報文數據;數據包形成上傳模塊,用于將操作者IP、操作者提交的報文數據、被寫入硬盤的位置目錄、該目錄下被寫入的文件屬性以及被寫入的文件內容打包形成數據包上傳至服務器端;所述服務器端包括: 第二分析模塊,用于接收到數據包之后對該數據包,對數據包進行分析,根據數據包內的操作者IP得到入侵對象的原始來源,根據報文數據分析得到操作者的寫入手段;將數據包中的被寫入硬盤的位置目錄、該目錄下被寫入文件屬性以及被寫入文件內容與備份的對應文件進行比對,以得到在原備份的基礎上被修改的明細,從而實現對客戶端計算機內的軟體文件進行監測的目的; 數據包形成發送模塊,用于在服務器端與基線對比得到修改的明細后,將此打包形成數據包并發送至對應的客戶端計算機的管理人員; 所述客戶端計算機還包括接收模塊,用于接收當管理人員確認被修改明細對應的軟體文件修改為非授權人員的修改時而發出的備份還原請求; 還原請求發送模塊,用于將接收到的還原請求發送至服務器端; 服務器端還包括還原操作模塊,用于根據還原請求對對應的客戶端計算機內的軟體文件進行還原操作。
【文檔編號】G06F21/62GK105930740SQ201610234679
【公開日】2016年9月7日
【申請日】2016年4月15日
【發明人】舒小龍
【申請人】重慶鑫合信科技有限公司