《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 一種Web服務器安全機制的實現方法
一種Web服務器安全機制的實現方法
來源:微型機與應用2012年第2期
陳偉東1, 劉 剛1, 徐 崢1, 耿坤英2
(1. 浪潮嘉信信息技術有限公司,北京100085;2. 清華大學 軟件學院, 北京100083)
摘要: 針對Web網站點的入侵事件不斷發生,現有的防火墻、IDS等設備都不能有效防止入侵者篡改網站中的網頁、盜取重要信息等攻擊,提出了Web服務器安全較完備機制,從核心層保證Web站點中的網頁不會被黑客篡改,惡意代碼在系統中不會肆意發作。該機制重構了操作系統核心層權限訪問控制模型,對操作系統文件、注冊表、進程和網絡等資源采用白名單規則,并采用多機制相結合的方式提高Web服務器的抗攻擊能力。
Abstract:
Key words :

摘  要: 針對Web網站點的入侵事件不斷發生,現有的防火墻、IDS等設備都不能有效防止入侵者篡改網站中的網頁、盜取重要信息等攻擊,提出了Web服務器安全較完備機制,從核心層保證Web站點中的網頁不會被黑客篡改,惡意代碼在系統中不會肆意發作。該機制重構了操作系統核心層權限訪問控制模型,對操作系統文件、注冊表、進程和網絡等資源采用白名單規則,并采用多機制相結合的方式提高Web服務器的抗攻擊能力。
關鍵詞: 服務器安全; 系統保護; 文件驅動; 網絡驅動

    隨著互聯網技術的飛速發展,作為信息系統的核心設備,服務器的安全提升到了一個新的高度。服務器中存儲和處理的大量核心業務數據,其安全性愈顯重要,傳統防病毒系統、防火墻、IDS等設備無法保證服務器系統高度保密和信息完整性要求。多核服務器的安全保障難度再增高,采用新的安全機制來提供Web服務器抵抗黑客和惡意代碼攻擊尤為重要。Web應用必須有80和443端口,惡意用戶正是利用了這兩個端口執行各種惡意操作:偷竊、操控、破壞Web應用中重要信息。
    為透明提升Web服務器操作系統安全等級,最大程度地保證系統兼容性,本文通過對文件系統和網絡底層架構的理解,結合對規則的成功運用,實現了操作系統安全和網絡安全的有效結合。
1 原理與架構
    系統分為驅動層和應用層。驅動層包括一個文件過濾驅動程序和一個NDIS網絡防火墻驅動;應用層包括一個應用程序和與驅動交互的DLL。應用層采用了WTL做界面,在驅動程序啟動時,讀取相應的規則文件,包括文件規則(所有進程對文件讀寫的規則和特殊進程對文件讀寫的規則)。文件讀寫權限有禁用、只讀、正常讀寫等。
    計算機病毒發作時的行為一般有寫注冊表項、生成文件、遠程線程注入等。安全防護驅動攔截系統服務調用,通過分析例程調用的參數得到文件、進程等相關信息。系統服務調度表(SSDT)保存著本地系統服務的地址,可以定位函數的內存地址。
     文件系統過濾驅動對Native API做截獲,對IoCreateFile做INLINE HOOK,在文件讀寫時根據函數參數和例程上下文信息得到相關文件全路徑和進程相關信息。與加載到內存中的文件規則做判斷。規則加載方法是開啟一個系統線程,在系統線程循環中判斷規則文件是否被修改。如果被修改,則重新加載規則文件到內存。
    對注冊表的防護,則是HOOK了ZwCreateKey、ZwDeleteKey、ZwEnumerateKey、ZwOpenKey等函數。在函數內部得到操作的進程全路徑和注冊路徑,與規則文件中的進程名和注冊表路徑比較,如果符合規則,則采取規則文件中的動作對注冊表操作控制,文件動作規則包括禁用、只讀結合進程名的對比,只有進程名和文件名與規則中的進程名和文件名完全相同時,執行規則內相應的禁用和只讀動作等。
    進程和進程保護采用對ZwOpenProcess的HOOK方法實現。在截獲的ZwOpenProcess例程內,得到進程ID。把進程ID與內存規則鏈表中的保護進程的ID作對比。如果是需要保護進程的ID,則返回無效句柄。進程注入多數采用CreateRemoteThread方法,在應用層采用WriteProcessMemory函數。在核心層則是NtCreateThread例程和ZwWriteVirtualMemory例程。防止復制句柄則是在驅動層截獲ZwDuplicateObject例程。進程保護的最低層可采用KiInsertQueueApc方法的截獲來實現。目前較為高級的進程保護都采用KiInsertQueueApc方法實現,如XueTr等。圖1為服務器Web安全系統序列圖。

    對64位操作系統(Windows Vista 和Windows 2008 Server)等,由于操作系統采取了對內核保護的措施(PatchGuard技術),其內核被鎖定了,任何第三方軟件都無法對其進行修改。SSDT HOOK在64位操作系統上失效。
    采用微軟WDK開發包提供minifilter框架,對文件權限的修改在IRP_MJ_CREATE內進行截獲,對于只讀文件,如果規則比較發現其是需要進行權限修改的只讀文件,有WRITE的標記,則修改為GENERIC_READ標記。對需要禁用的文件,則在IRP_MJ_CREATE的后處理(PostCreate)例程內采用FltCancelFileOpen對相應的文件禁用。
   在網絡安全方面采用NDIS低層技術構建網絡防火墻,提供網絡層訪問控制和攻擊保護服務。統一部署在Web應用的前端。網絡防火墻是整個Web應用安全體系結構的一個組件,防御網絡層黑客攻擊(網絡掃描、telnet等),阻止蠕蟲的傳播。
2 文件和注冊表訪問權限研究與實現
    文件訪問控制采用Inline Hook方法,對IoCreateFile做截獲。文件規則包括文件全路徑名、打開文件的進程名、訪問權限(只讀、禁用、正常使用等)等多元參數組。在截獲函數內,首先根據參數和上下文得到文件全路徑名。然后得到進程名。與內存規則內的文件和進程名對比,如果符合則根據規則中的動作對文件只讀、禁用等操作。如果不符合,則采取默認動作。驅動內部需要得到保護進程的列表和進程ID等。進程加載通知(PsSetCreateProcessNotifyRoutine);DLL或驅動加載通知(PsSetLoadImageNotifyRoutine);低層驅動維護著活動進程鏈表和文件、進程、注冊表規則鏈表等。圖2為文件網絡驅動與應用層關系序列圖。

 

 

    Web服務器的安全需要考慮到Web服務應用程序的安全,包括遠程線程的防止注入、復制句柄、遠程內存讀寫、子進程創建的預防和判斷等。遠程線程注入通過CreateRemoteThread實現,需要調用WriteVirtualMemory等函數,在內核層則是調用ZwWriteVirtualMemory。ZwWriteVirtualMemory是在NTDLL.DLL中導出的,在驅動內得到NTDLL.DLL的地址,然后得到相應導出函數ZwWriteVirtualMemory地址。截獲地址后,在截獲函數內判斷進程ID號是否是在進程保護列表中的進程,如是則返回STATUS_ACCESS_DENIED。
    驅動底層的難點主要有文件只讀、禁用規則,結合進程規則的對比,以及規則文件的設計和在內存中與進程和文件名的對比。驅動層原來對文件對比采用SSDT HOOK方法,攔截ZwOpenfile和ZwCreateFile函數,后來改用了一個函數,采用了Inline Hook加匯編的方式,簡化了對函數的比較,收到了比較好的效果。對注冊表的規則和禁用,采用了Regmon中的方法,在注冊表相應的函數內得到注冊表的訪問全名,與注冊表規則進行比較,采取相應的禁用等方法。
     規則文件加上只讀等控制后,對規則的判斷首先需要對進程名進行判斷,是否符合規則中的進程名。判斷符合后,再對文件名進行規則判斷,如果文件名相同,則按規則文件中數據結構對文件做只讀和禁用等對復制句柄的禁止。
    在64位服務器系統上,需要對驅動進行簽名。Minifilter架構可在32位和64位操作系統上運行。可運行的系統包括WindowsXP、Windows 2003、Windows2008 Server 64位等。在64位多核系統中需要調整一些不兼容的函數。
    驅動難點還有在多核服務器上的驅動例程,如自旋鎖(SPIN LOCK)的獲取等,遇到了數次BSOD.都是多核鎖造成的,多核下要用KeAcquireInStackQueuedSpinLock.如果不想改動IRQL,只能用資源鎖(ERESOURCE)了。
3 服務器Web安全數據結構和接口方案
    用戶接口主要是應用層的程序與驅動進行DeviceIoControl 交互,應用程序啟動時,需要與驅動程序會話,調用相應的函數。還有應用層需要定時與驅動層查詢得到相關的日志。
    //驅動層與應用層應答IoControl
    #define IOCTL_REPLY_USERLAND_REQUEST    
    CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_
        BUFFERED,FILE_ANY_ACCESS)
    //對規則文件加密和解密IoControl
    #define IOCTL_RULEFILE_ENCRYPT            
    CTL_CODE(FILE_DEVICE_UNKNOWN, 0x805, METHOD_
        BUFFERED, FILE_ANY_ACCESS)
    //得到系統運行日志IoControl
    #define IOCTL_DPROTECT_GETLOG            
    CTL_CODE(FILE_DEVICE_UNKNOWN, 0x809, METHOD_
        BUFFERED, FILE_ANY_ACCESS)
    //應用層與驅動層通信EVENT
    #define IOCTL_REG_EVENT    
    CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_
        BUFFERED, FILE_ANY_ACCESS)
    //日志記錄數據結構
    typedef struct _LOG_RECORD {
        ULONG        Length;
        ULONG        SequenceNumber;
        RULE_TYPE    LogType;
        ULONG        uWhat;
        LARGE_INTEGER    origTime;
        CHAR        Name[0];
    } LOG_RECORD, *PLOG_RECORD;
     //規則類型  
    typedef enum _RuleType
    {
        RULE_FILE = 0,                  //文件規則類型
        RULE_DIRECTORY,                    //文件路徑類型
        RULE_REGISTRY,                             //注冊表規則
        RULE_SECTION,
        RULE_PROTECT,                      //需要保護的進程
        RULE_REGPROCESS,   //與注冊表規則對應的進程
        RULE_FILEPROCESS,      //與文件規則對應的進程
        RULE_NETWORK,
             }RULE_TYPE;
         //進程規則結構
    typedef struct _PROCRULE
    {
        ULONG    nId;
        CHAR    procName[PROCNAMELEN];
        short    nRuleType;
        DWORD    Reserved;
    } PROCRULE, *PPROCRULE;
    //注冊表規則
    typedef struct _REGRULE
    {
        ULONG nId;
        CHAR  procName[PROCNAMELEN];
        short    nRuleType;
    } REGRULE, *PREGRULE;
    //注冊表進程規則
    typedef struct _REGPROCRULE
    {
        ULONG  nId;
        CHAR  procName[PROCNAMELEN];
        short    nRuleType;
    } REGPROCRULE, *PREGPROCRULE;
    //文件規則數據結構
    typedef struct _FILERULE
    {
        ULONG    nId;
        ULONG    nReadWrite;
        CHAR    procName[PROCNAMELEN];
        short    nRuleType;
        BOOLEAN    bDirectory;
    } FILERULE, PFILERULE;
    //過濾規則結構
    typedef struct _FLTRULE
    {
        struct FLTRULE    *next;
        int    ruleLine;
        int    nAction;
        BOOLEAN bLog;
        enum RULE_TYPE    ruleType;
        union {
            struct _PROCRULE      procRule;
            struct _REGRULE      regRule;
            struct _FILERULE      fileRule;         //文件規則
            struct _PROCRULE       protectRule;
                                                             //禁止用任務管理器結束進程
            struct _REGPROCRULE   regProcrule;
        }Rule;
    } FLTRULE, *PFLTRULE;
     Minifilter應用層和驅動層的通信方案是在應用層采用FilterConnectCommunicationPort建立通信端口的連接。然后初始化相關參數數據,創建日志查詢線程。用FilterSendMessage例程查詢驅動內日志信息。
    經過測試人員詳細測試和客戶現場應用,本系統達到了良好的應用效果,從驅動層到應用層都運行良好。目前系統支持32位和64位服務器系統,對服務器安全要求較高的企事業單位有比較好的保障作用。
參考文獻
[1] 耿玉波,夏魯寧,杜皎,等.一種Web服務器安全機制的 研究與實現[J],計算機工程,2006(11):189-191.
[2] NAGAR R. Windows NT file system internals[EB/OL].[2007-04-01].http://download.csdn.net/source/168266.
[3] RUSSINOVICH M E, SOLOMON D A. Microsoft windows  Internals. Fourth Edition[M]. Microsoft Press, 2007.
[4] 湯方澄,楊小虎,董金祥.基于智能Agent的網絡安全監控系統的研究[J].計算機工程,2002,28(12):63-65.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久精视频免费在线久久完整在线看| 欧美在线观看网站| 欧美伊人久久久久久久久影院| 亚洲综合国产| 欧美精品色综合| 久久婷婷国产综合国色天香| 韩国福利一区| 一区二区三区四区国产| 亚洲欧美日韩成人| 激情综合久久| 国产精品久久婷婷六月丁香| 午夜精品成人在线| 国产精品久久久久高潮| 国产毛片精品国产一区二区三区| 欧美午夜宅男影院| 久久精选视频| 日韩小视频在线观看专区| 午夜一区二区三区在线观看| 亚洲一区二区视频在线观看| 欧美午夜激情视频| 国产精品一区二区在线观看| 国模精品娜娜一二三区| 欧美日韩一区二区在线观看视频| 99视频一区二区三区| 久久婷婷国产综合国色天香| 欧美日韩在线观看一区二区三区| 久久久人成影片一区二区三区观看| 欧美日本在线| 性欧美暴力猛交69hd| 99精品99| 欧美精品一二三| 久久高清一区| 国产精品亚洲成人| 亚洲麻豆国产自偷在线| 亚洲专区免费| 在线亚洲一区二区| 在线电影院国产精品| 欧美激情区在线播放| 欧美人妖在线观看| 久久色在线播放| 欧美性感一类影片在线播放| 99综合视频| 中文欧美在线视频| 国产精品爱啪在线线免费观看| 久久香蕉精品| 亚洲国产欧美一区二区三区丁香婷| 91久久久精品| 欧美在线观看视频一区二区三区| 国产一区二区中文字幕免费看| 在线中文字幕日韩| 日韩午夜在线观看视频| 夜久久久久久| 韩日视频一区| 欧美日韩国产一区二区三区地区| 欧美日韩三级一区二区| 欧美黄色片免费观看| 久久久久久久一区二区| 一本色道久久88精品综合| 亚洲综合视频网| 亚洲尤物视频网| 亚洲小视频在线| 久久视频在线看| 亚洲国产欧美一区二区三区久久| 欧美呦呦网站| 欧美日韩国产片| 国产精品一区免费观看| 一本久道久久综合中文字幕| 亚洲激情在线播放| 欧美中日韩免费视频| 国产精品入口日韩视频大尺度| 黄色欧美日韩| 影音欧美亚洲| 国产亚洲欧洲997久久综合| 欧美一区网站| 亚洲午夜激情在线| 久久夜色精品| 99在线观看免费视频精品观看| 在线观看一区| 欧美人在线观看| 欧美精品少妇一区二区三区| 一本大道av伊人久久综合| 亚洲高清不卡一区| 国产毛片久久| 欧美日韩一区不卡| 久久久久久久网站| 99精品黄色片免费大全| 欧美激情一区二区三区在线视频| 亚洲国产cao| 狠狠色2019综合网| 午夜精品在线看| 校园春色综合网| 欧美a级一区二区| 国产日韩欧美黄色| 久久男人资源视频| 亚洲电影在线观看| 国产伦精品一区二区三区高清| 你懂的国产精品永久在线| 欧美日韩国产精品专区| 国产亚洲在线| 一区二区三区日韩精品| 欧美日韩大片| 久久婷婷蜜乳一本欲蜜臀| 精品91久久久久| 国内精品美女av在线播放| 亚洲视频欧美在线| 在线播放国产一区中文字幕剧情欧美| 国产伊人精品| 久久国产毛片| 亚洲视频在线观看一区| 午夜精品一区二区三区电影天堂| 久久午夜精品一区二区| 国产精品五区| 久久精品人人做人人爽电影蜜月| 另类天堂av| 亚洲黄色av一区| 久久视频国产精品免费视频在线| 一区二区三区欧美亚洲| 欧美日韩精品欧美日韩精品一| 激情国产一区| 久久噜噜亚洲综合| 国产精品视频1区| 免费日韩精品中文字幕视频在线| 欧美激情按摩在线| 亚洲一区二区三区精品在线观看| 亚洲风情亚aⅴ在线发布| 欧美福利网址| 久久亚洲春色中文字幕| 欧美亚洲一区在线| 亚洲婷婷综合久久一本伊一区| 欧美影院午夜播放| 亚洲永久免费| 国产精品久久中文| 免费高清在线一区| 欧美精品日本| 99re视频这里只有精品| 亚洲国产另类久久久精品极度| 国产欧美日韩精品a在线观看| 国产精品久久久久一区二区| 欧美成人精品不卡视频在线观看| 欧美偷拍另类| 欧美日本韩国在线| 国产精品日韩精品| 欧美国产日韩视频| 欧美夜福利tv在线| 在线一区二区三区做爰视频网站| 欧美视频四区| 欧美大胆人体视频| 欧美激情一区二区三区在线视频观看| 国产欧美精品一区二区三区介绍| 久久在线观看视频| 韩国一区二区三区美女美女秀| 欧美日韩国产探花| 91久久精品日日躁夜夜躁欧美| 亚洲国产成人av好男人在线观看| 国产精品户外野外| 老色批av在线精品| 亚洲欧美一区二区视频| 亚洲一区二区精品在线| 精品999日本| 久久国产精品亚洲va麻豆| 亚洲自啪免费| 久久男人资源视频| 欧美性大战久久久久久久| 亚洲桃色在线一区| 亚洲黄色视屏| 午夜宅男久久久| 性色av一区二区三区在线观看| 韩国女主播一区二区三区| 日韩一区二区免费高清| 国模叶桐国产精品一区| 亚洲午夜精品视频| 欧美福利电影在线观看| 欧美国产视频日韩| 91久久嫩草影院一区二区| 亚洲一区三区在线观看| 欧美日韩在线一区二区三区| 亚洲精品欧美日韩专区| 美女精品在线观看| 国产精品一区二区三区四区| 免费在线亚洲欧美| 欲香欲色天天天综合和网| 99国产麻豆精品| 亚洲专区国产精品| 欧美三级乱码| 国产伦精品一区二区三区高清| 亚洲欧美在线观看| 亚洲精品欧美| 欧美日韩在线精品| 亚洲国内在线| 亚洲黄页视频免费观看| 欧美日韩国产成人| 国产综合视频| 国产一区二区三区最好精华液| 亚洲激情电影在线| 亚洲高清视频在线观看| 国产精品久久久久久久久免费| 欧美国产日本高清在线| 麻豆精品91| 麻豆精品91| 欧美日韩亚洲综合一区| 黄色一区二区在线| 国产精品v日韩精品v欧美精品网站| 欧美色视频日本高清在线观看| 亚洲毛片av在线| 日韩亚洲成人av在线| 国产精品久久久久久久久搜平片| 国产精品麻豆va在线播放| 老司机免费视频一区二区| 欧美日韩八区| 久久久精品视频成人| 香蕉av福利精品导航| 欧美激情在线狂野欧美精品| 韩曰欧美视频免费观看| 最新日韩中文字幕| 精品69视频一区二区三区| 亚洲字幕在线观看| 亚洲欧美日韩国产成人| 在线观看91久久久久久| 欧美人与禽猛交乱配| 国产亚洲激情在线| 欧美—级高清免费播放| 国产麻豆91精品| 欧美日韩福利视频| 久久久久国产精品人| av72成人在线| 蜜臀va亚洲va欧美va天堂| 亚洲欧美一区二区三区极速播放| 亚洲视频精品在线| 毛片精品免费在线观看| 久久精品国产一区二区三| 国产精品婷婷午夜在线观看| 亚洲午夜激情在线| 国产亚洲免费的视频看| 中文一区二区| 韩国av一区二区| 亚洲第一视频网站| 欧美日韩日日夜夜| 国产日韩精品电影| 亚洲高清一二三区| 亚洲二区在线观看| 欧美视频导航| 久久精品国产一区二区三区免费看| 欧美激情亚洲| 在线国产日韩| 久久天堂av综合合色| 在线一区视频| 91久久精品国产91久久性色tv| 国产日韩精品在线观看| 亚洲成色www久久网站| 久久久爽爽爽美女图片| 女主播福利一区| 99国产麻豆精品| 欧美午夜精品久久久久免费视| 午夜日韩在线观看| 国产日产亚洲精品| 欧美日韩中文字幕综合视频| 久久蜜桃av一区精品变态类天堂| 羞羞漫画18久久大片| 亚洲精品免费在线| 久久夜色精品亚洲噜噜国产mv| 一区二区三区鲁丝不卡| 国产乱理伦片在线观看夜一区| 亚洲精品网址在线观看| 一本久久综合亚洲鲁鲁五月天| 久久久蜜桃一区二区人| 美女精品一区| 日韩亚洲一区二区| 精品成人久久| 午夜欧美视频| 欧美伊人久久久久久午夜久久久久| 禁断一区二区三区在线| 亚洲国产日韩一区| 在线观看日产精品| 国内一区二区三区| 欧美在线一级va免费观看| 欧美三区美女| 午夜亚洲福利在线老司机| 国产精品一区二区女厕厕| 91久久精品日日躁夜夜躁国产| 久久精品亚洲国产奇米99| 夜夜躁日日躁狠狠久久88av| 久久精品国产在热久久| 欧美一区二区三区播放老司机| 午夜精品国产更新| 久久理论片午夜琪琪电影网| 欧美天天视频| 亚洲娇小video精品| 免费成人av在线看| 在线视频中文亚洲| 国产在线视频欧美一区二区三区| 国产热re99久久6国产精品| 久久天天躁狠狠躁夜夜爽蜜月| 欧美系列亚洲系列| 国产精品美女久久久久久免费| 久久先锋影音| 亚洲一区二区三区国产| 国产精品久久9| 黄色亚洲大片免费在线观看| 国产情侣一区| 国产人妖伪娘一区91| 亚洲影院色无极综合| 日韩午夜中文字幕| 亚洲一区二区黄色| 欧美影院视频| 久久天天躁夜夜躁狠狠躁2022| 欧美伊人久久久久久久久影院| 亚洲精品综合久久中文字幕| 鲁大师成人一区二区三区| 91久久极品少妇xxxxⅹ软件| 亚洲欧美日韩中文播放| 久久综合九色综合欧美就去吻| 亚洲精品视频一区二区三区| 国产亚洲欧美另类一区二区三区| 国产精品啊啊啊| 一本大道久久a久久精二百| 久久久久久九九九九| 国产一区二区三区四区三区四| 亚洲精品一品区二品区三品区| 国产精品久久久久久久久久三级| 国产亚洲精品bv在线观看| 久久综合伊人77777蜜臀| 国产亚洲毛片在线| 欧美激情精品久久久久久黑人| 亚洲欧美三级伦理| 亚洲在线观看免费视频| 国产欧美一区二区精品秋霞影院| 久久久伊人欧美| 99精品久久免费看蜜臀剧情介绍|