文/諸葛建偉
高校網站安全的“矛”與“盾”(二)
文/諸葛建偉
COST論壇由CCERT、《中國教育網絡》雜志于2008年共同發起,采取會員制,面向個人,完全免費,以開放、平等、自由的互聯網精神運作。如需獲取COST技術論壇視頻、錄音等資料,請登錄:http://www.cost.edu.cn/。
在網站系統的各個軟件層次上,目前最薄弱的安全環節在于Web應用程序。相比較于底層操作系統、網絡服務和常用應用軟件,Web應用程序可能是開發過程最快、編碼質量和測試水平最低的,這也造成了Web應用程序安全性最為薄弱的現狀。同時,Web應用程序的復雜性和靈活性又進一步惡化了它們的安全性。
國際上著名的信息安全研究組織OWASP在2007年首次公布之后,2010年又發布了Web應用程序所面臨的最新十大安全威脅(如表1所示)。從中我們可以看到,代碼注入攻擊和XSS跨站腳本一直以來占據著前兩位的位置,也是目前高校網站所面臨的最普遍的Web應用攻擊方式。
代碼注入攻擊有多種類型,但SQL注入攻擊是其中最為常見和簡單易懂的技術類型,我們以它為例,來介紹高校網站Web應用程序的主要安全威脅狀況。
SQL注入是利用Web應用程序數據層存在的輸入驗證不完善型安全漏洞實施的一類代碼注入攻擊技術,能夠通過惡意讀取、修改與操縱數據庫,來竊取網站敏感信息,進而攻陷網站獲得控制權。目前在網絡駭客社群中流傳著各種自動化的SQL注入攻擊工具,如CSC、NBSI、HDSI、阿D注入工具、WED、Domain等。
而高校網站中,大量涉及數據庫查詢操作的Web應用程序在開發時并沒有考慮到對SQL注入攻擊的預防、檢測和防御,例如某高校科研管理機構維護的科研經費來款查詢系統,是一個非常簡單的ASP動態頁面程序,設計目的是為高校科研人員查詢所承擔的各類科研項目經費是否到款、到款數額及撥付情況,在檢索表單中需用戶輸入一個對來款單位進行查詢的關鍵字,并只返回包含給定關鍵字的來款記錄,ASP程序中使用的SQL語句猜想應該是類似于“SELECT * FROM some_tbl where some_rec like ' %INPUT%'”。然而這個程序好像沒有對用戶輸入做任何的安全驗證和過濾,因此當具有好奇心的一些用戶,比如說作者本人,希望了解到其他科研人員承擔各類科研項目的情況,就會在輸入框內填寫“a% ' or ' a ' like ' %a”,點擊檢索之后就可以得到數據表全部記錄信息,這是因為程序在注入的輸入后,使用的SQL語句將會變成“SELECT * FROM some_tbl where some_rec like ' % a% ' or ' a ' like ' %a '”,而' a ' like ' %a '是一個永真式,使得WHERE子句永真,因此該SQL語句等價于“SELECT * FROM some_tbl”,從而在返回結果中給出全部記錄信息。當然,由于該ASP程序存在著SQL注入漏洞,對它的攻擊可以不限于此,還包括猜解管理員用戶口令、上傳ASP后門和本地提權攻擊等。
該漏洞可能在該網站上存在了數年之久,筆者曾向網站留下的管理員郵件地址發送多封漏洞提示郵件,但均未有回復,想是該網站已無技術人員維護,或是管理員郵件地址已淪為垃圾郵件充斥的郵箱而無人問津。
為了應對高校網站Web應用程序所普遍面臨的代碼注入、XSS等安全攻擊威脅,網站運營者和管理部門在機制方面需要建立起恰當的管理和責任制度,從技術角度則建議采用如下安全設防措施:

表1 OWASP組織公布的Top 10 Web應用程序安全威脅類型
1) 對于信息發布類網站盡量采用靜態網站設計
采用動態內容、支持用戶輸入的Web應用程序較靜態HTML具有更高的安全風險,因此技術人員在設計與開發Web應用時,應謹慎考慮是否采用動態頁面技術、是否支持客戶端執行代碼、是否允許接受用戶輸入,信息發布類網站往往無需引入動態頁面和用戶交互,而且可以通過后臺系統來產生信息發布靜態頁面的方式(這種Web站點構建方式也被新浪、搜狐等門戶網站所采納)來兼顧安全性、訪問性能與便捷性。蘭州大學的李仲賢老師曾在COST論壇分享了采用這種設計思路構建校園信息門戶網站的經驗。
2) 選擇安全性高、可靠的Web應用軟件包和解決方案
對于必須提供用戶交互、采用動態頁面的Web站點,盡量使用具有良好安全聲譽及穩定技術支持力量的Web應用軟件包,如活躍的開源和共享軟件,規范運作、注重安全的商業軟件公司解決方案等,并定期進行Web應用程序的安全評估與漏洞掃描檢測,對Web應用程序應跟進版本更新和安全補丁發布情況,進行升級與安全漏洞修補。
只在必要時候自主或外包開發Web應用程序,在開發和部署過程中需重視安全編程、持續性的安全測試與維護,安全編程與測試的檢查點有:獨立、完整且集中的輸入驗證、校驗全部的程序輸入、校驗輸入長度與類型、不使用任何方式驗證失敗的數據、對HTTP所有內容進行校驗、校驗向用戶輸出的數據、使用安全的S Q L查詢方式、禁止使用JavaScript進行任何校驗、使用安全統一的編碼或轉義方式、設定安全的權限邊界、校驗被調用的后臺命令、校驗被調用的文本或配置文件、確保程序所記錄的日志可控。
3) 充分有效利用Web服務器的日志功能
對Web應用程序的所有訪問請求進行日志記錄與安全審計,如Apache的access_logs/error_logs、IIS的日志文件等等,這些Web訪問日志往往以W3C的日志標準格式——Extended Common Log Format來進行記錄,關鍵的信息包括訪問用戶名、請求URL、referer來源鏈接等。通過一些輔助的Web日志分析與檢測工具,如AWStats等,可以從中發現出針對Web應用程序的漏洞探測、滲透攻擊等入侵行為。
4) 定期進行網站Web應用程序漏洞掃描
使用IBM AppScan、HP WebInspect、Acunetix Web Vulnerability Scanner等Web漏洞掃描軟件定期對重點網站進行Web應用程序漏洞掃描,并根據掃描結果推動程序開發和測試團隊修補所發現的安全漏洞,提高網站應用的安全性。除了Web應用程序漏洞掃描器產品之外,國內的一些安全公司,如綠盟、知道創宇等,也提供了遠程的網站Web漏洞安全掃描服務,這種遠程在線服務提供了投入資金和技術成本更低的高效安全解決方案。
5) 部署Web應用防火墻產品或服務
對于高校安全敏感的網站系統,如主頁站點和校園信息門戶等,應進行重點安全防護,建議部署商業或開源的Web應用防火墻設備,來檢測和抵御針對這些網站系統的Web應用攻擊,但這種方式對投入成本和技術水平要求較高,較難大規模推廣。筆者所在單位在多年研究基礎上,實現了Web應用防火墻服務云的技術解決方案,可以無需在防護網站端部署任何硬件設備,也無需改變網絡拓撲,通過簡單的網絡參數配置,即可以通過在云環境中集中部署的Web應用防火墻,為遠程的客戶網站提供安全防護托管服務,這種技術方案能夠為規模較小、缺乏安全技術水平的高校網站提供了非常便捷和低成本的安全保護措施。對于規模較大的高校網站群,也可以采用私有云方式來部署Web應用防火墻服務,同樣無需改變網絡拓撲,即可完成對網站群的高效安全防護。如需了解更多詳細信息,可通過本文作者向該服務具體負責老師進行詳細咨詢。

Web數據構成了高校網站的重要組成內容,也隨之面臨攻擊者竊取敏感與隱私信息,惡意篡改頁面和注入不良信息內容等安全威脅。
雖然大部分高校網站并不涉及敏感與隱私信息,但由于一些網站用戶缺失保密和安全意識,少部分網站上仍可能存在泄露科研敏感信息和師生個人隱私信息的情況,而攻擊者可以采用強大的Google Hacking技術,借助搜索引擎的力量,非常便捷地發現和攫取這些被意外或無意間泄露的敏感內容。在某高校網站的上傳目錄中無意泄露出的一份教師職稱評估業績表中,可以發現該教師承擔了一些來自國家敏感部門的科研項目,并完成了數篇關于武器技術的國防科技報告,筆者雖然無法確認這些泄露信息是否屬于保密范圍,但個人認為在互聯網上暴露如此詳細的涉及武器技術研發的項目與成果情況,應屬不該發生的事情。
在高校網站上泄露師生個人隱私信息則更為常見,利用Google Hacking的一些基本技巧,如搜索“filetype:xls site:edu.cn 課題 身份證號”,可以發現內部包含有“課題”和“身份證號”關鍵字的XLS電子文件,通常會找出一些包含有申請人身份證敏感信息的科研課題申請資料,在一個實驗室網站的incoming目錄上可以挖掘出一份課題申報信息表,其中包含了所有課題主要參與人員的身份證號敏感信息。搜索“filetype:xls 身份證號 site:edu.cn”、“filetype:xls 信用卡 site:edu.cn”還會發現大量高校網站隨意泄露學生個人敏感信息的情況,常見的如國家活動安排、獎助學金評選、新生報到等活動公開資料中經常給出完整的學生身份證號碼和信用卡號等,如在某高校網站上公開的殘奧會志愿者活動安排材料中隨意包含了學生身份證號。此類情況往往是由于高校中的一些行政人員缺乏保護個人隱私信息的觀念和意識,未經屏蔽處理,即把完全沒有必要公開的身份證號、信用卡號等隱私信息直接發布在網絡上,這往往會對學生的網絡信息安全造成一定的風險,如身份信息可能被濫用、常作為口令使用的生日日期被搜索獲得等。
通過一些觀察和分析,筆者認為目前高校網站通常的敏感信息泄露途徑和方式包括:
1) 由于不安全配置,未關閉Web服務器的文件列表枚舉和目錄遍歷,在不經意間泄露服務器中保存的敏感信息;
2) 利用Web服務器(往往同時配置FTP服務)的Upload、Incoming等上傳目錄中轉文件時,被搜索引擎爬蟲檢索而不經意泄露;
3) 由于網站用戶缺乏安全意識,在公開文檔中隨意包含他人,特別是學生的隱私信息;



4) 在公開的個人簡歷、職稱晉升材料和課題申請書中包含科研敏感信息。
除了敏感信息泄露之外,高校網站還比較容易遭受網頁篡改攻擊。2008年9月份清華和北大網站曾被“黑客”攻擊,并假冒校長名義發表抨擊大學教育的文章。在如圖2所示的中國被黑站點統計網站(www.zone-h.com.cn)和圖3所示的世界被黑站點統計網站(www.zone-h.org)上都可以查詢到大量被攻擊和篡改網頁的高校網站。筆者曾發表一篇論文《基于元搜索引擎實現被篡改網站發現與攻擊者調查剖析》,高校網站管理部門可以借鑒這種方法,通過綜合利用Google、百度、Yahoo等搜索引擎對網站的監控能力,利用常見的網頁篡改特征和對站點范圍的限定,自動地發現關注站點范圍內被惡意篡改的網頁。圖4示例了利用在網頁標題中匹配“hacked by”特征來發現edu.cn域名范圍內的被黑網站。
不良信息內容也對高校網站的正常運營帶來了安全風險,高校網站被攻陷后可能成為色情淫穢等不良信息的存儲和中轉倉庫,而提供用戶交互的BBS、論壇和博客等網站則可能遭遇網站用戶發布不良信息內容的情況,如果論壇管理者、博主沒有有效管理他們的網站,那么很多涉及出售非法物品的廣告會被經常光顧并被長期保留在這些網站上。
為了應對高校網站所面臨的Web數據安全威脅,高校網絡管理部門應通過各種有效途徑,來提高網站維護人員和用戶的數據安全意識,包括:
1)保密信息絕對不能聯網,此外也不應在網上公開團隊和個人承擔涉密項目的信息,以免引來針對性的社會工程攻擊;
2)應教育行政人員和師生注重個人隱私信息,網上公布的文檔資料中應盡量避免包含個人隱私信息,如必要時,也應進行部分的屏蔽處理;
3)注意對論壇、博客、BBS、留言本等允許用戶提交數據的審查,清除明確包含違法信息的數據內容。
另外網絡管理部門應幫助網站運營者加強網站數據安全性監測和防護措施,包括:
1)提升網站系統及Web應用程序的安全性,避免網站遭遇網頁篡改;
2)善用Google、百度等搜索引擎,定期進行關注域名范圍內的被黑網站發現和敏感數據檢查;
3)對網站的安全配置進行核查,盡量消除文件列表枚舉、目錄遍歷、隨意上傳等容易泄露信息的渠道;
4)對接受用戶交互的網站列出清單,協助網站運營者進行定期的數據安全性檢查;
5)建立規范便捷的網站安全響應機制和流程。
網站系統的安全威脅存在于傳輸網絡、操作系統與網絡服務、Web應用程序和數據內容等各個層次上,類型也非常多樣化,并且廣泛普遍存在。而高校網站由于資金和人力投入少,安全性尤為薄弱,各種安全問題頻頻出現。高校網絡管理部門應擔負起改善網站安全性的責任,爭取學校經費投入,建立安全管理和責任機制,并通過采納開源和商業的技術方案,建立起網站安全建設、監控和響應技術流程,來切實提升高校網站的安全性。同時,高校網站安全也需要多方協作,高校網站管理部門和網站管理者應成為安全責任主體,來推動相關安全機制的建立,而運營商、科研機構和安全公司也應對高校提供技術支持與幫助,網站用戶也應建立起良好的安全意識,只有如此,高校網站才能夠不再是網絡駭客們所青睞的“軟柿子”,而真正成為服務于廣大師生、支撐數字校園的堅強后盾。
(作者單位為清華大學網絡工程研究中心)