文/諸葛建偉
高校網(wǎng)站安全的“矛”與“盾”(二)
文/諸葛建偉
COST論壇由CCERT、《中國(guó)教育網(wǎng)絡(luò)》雜志于2008年共同發(fā)起,采取會(huì)員制,面向個(gè)人,完全免費(fèi),以開放、平等、自由的互聯(lián)網(wǎng)精神運(yùn)作。如需獲取COST技術(shù)論壇視頻、錄音等資料,請(qǐng)登錄:http://www.cost.edu.cn/。
在網(wǎng)站系統(tǒng)的各個(gè)軟件層次上,目前最薄弱的安全環(huán)節(jié)在于Web應(yīng)用程序。相比較于底層操作系統(tǒng)、網(wǎng)絡(luò)服務(wù)和常用應(yīng)用軟件,Web應(yīng)用程序可能是開發(fā)過程最快、編碼質(zhì)量和測(cè)試水平最低的,這也造成了Web應(yīng)用程序安全性最為薄弱的現(xiàn)狀。同時(shí),Web應(yīng)用程序的復(fù)雜性和靈活性又進(jìn)一步惡化了它們的安全性。
國(guó)際上著名的信息安全研究組織OWASP在2007年首次公布之后,2010年又發(fā)布了Web應(yīng)用程序所面臨的最新十大安全威脅(如表1所示)。從中我們可以看到,代碼注入攻擊和XSS跨站腳本一直以來占據(jù)著前兩位的位置,也是目前高校網(wǎng)站所面臨的最普遍的Web應(yīng)用攻擊方式。
代碼注入攻擊有多種類型,但SQL注入攻擊是其中最為常見和簡(jiǎn)單易懂的技術(shù)類型,我們以它為例,來介紹高校網(wǎng)站W(wǎng)eb應(yīng)用程序的主要安全威脅狀況。
SQL注入是利用Web應(yīng)用程序數(shù)據(jù)層存在的輸入驗(yàn)證不完善型安全漏洞實(shí)施的一類代碼注入攻擊技術(shù),能夠通過惡意讀取、修改與操縱數(shù)據(jù)庫(kù),來竊取網(wǎng)站敏感信息,進(jìn)而攻陷網(wǎng)站獲得控制權(quán)。目前在網(wǎng)絡(luò)駭客社群中流傳著各種自動(dòng)化的SQL注入攻擊工具,如CSC、NBSI、HDSI、阿D注入工具、WED、Domain等。
而高校網(wǎng)站中,大量涉及數(shù)據(jù)庫(kù)查詢操作的Web應(yīng)用程序在開發(fā)時(shí)并沒有考慮到對(duì)SQL注入攻擊的預(yù)防、檢測(cè)和防御,例如某高??蒲泄芾頇C(jī)構(gòu)維護(hù)的科研經(jīng)費(fèi)來款查詢系統(tǒng),是一個(gè)非常簡(jiǎn)單的ASP動(dòng)態(tài)頁(yè)面程序,設(shè)計(jì)目的是為高??蒲腥藛T查詢所承擔(dān)的各類科研項(xiàng)目經(jīng)費(fèi)是否到款、到款數(shù)額及撥付情況,在檢索表單中需用戶輸入一個(gè)對(duì)來款單位進(jìn)行查詢的關(guān)鍵字,并只返回包含給定關(guān)鍵字的來款記錄,ASP程序中使用的SQL語(yǔ)句猜想應(yīng)該是類似于“SELECT * FROM some_tbl where some_rec like ' %INPUT%'”。然而這個(gè)程序好像沒有對(duì)用戶輸入做任何的安全驗(yàn)證和過濾,因此當(dāng)具有好奇心的一些用戶,比如說作者本人,希望了解到其他科研人員承擔(dān)各類科研項(xiàng)目的情況,就會(huì)在輸入框內(nèi)填寫“a% ' or ' a ' like ' %a”,點(diǎn)擊檢索之后就可以得到數(shù)據(jù)表全部記錄信息,這是因?yàn)槌绦蛟谧⑷氲妮斎牒?,使用的SQL語(yǔ)句將會(huì)變成“SELECT * FROM some_tbl where some_rec like ' % a% ' or ' a ' like ' %a '”,而' a ' like ' %a '是一個(gè)永真式,使得WHERE子句永真,因此該SQL語(yǔ)句等價(jià)于“SELECT * FROM some_tbl”,從而在返回結(jié)果中給出全部記錄信息。當(dāng)然,由于該ASP程序存在著SQL注入漏洞,對(duì)它的攻擊可以不限于此,還包括猜解管理員用戶口令、上傳ASP后門和本地提權(quán)攻擊等。
該漏洞可能在該網(wǎng)站上存在了數(shù)年之久,筆者曾向網(wǎng)站留下的管理員郵件地址發(fā)送多封漏洞提示郵件,但均未有回復(fù),想是該網(wǎng)站已無技術(shù)人員維護(hù),或是管理員郵件地址已淪為垃圾郵件充斥的郵箱而無人問津。
為了應(yīng)對(duì)高校網(wǎng)站W(wǎng)eb應(yīng)用程序所普遍面臨的代碼注入、XSS等安全攻擊威脅,網(wǎng)站運(yùn)營(yíng)者和管理部門在機(jī)制方面需要建立起恰當(dāng)?shù)墓芾砗拓?zé)任制度,從技術(shù)角度則建議采用如下安全設(shè)防措施:
表1 OWASP組織公布的Top 10 Web應(yīng)用程序安全威脅類型
1) 對(duì)于信息發(fā)布類網(wǎng)站盡量采用靜態(tài)網(wǎng)站設(shè)計(jì)
采用動(dòng)態(tài)內(nèi)容、支持用戶輸入的Web應(yīng)用程序較靜態(tài)HTML具有更高的安全風(fēng)險(xiǎn),因此技術(shù)人員在設(shè)計(jì)與開發(fā)Web應(yīng)用時(shí),應(yīng)謹(jǐn)慎考慮是否采用動(dòng)態(tài)頁(yè)面技術(shù)、是否支持客戶端執(zhí)行代碼、是否允許接受用戶輸入,信息發(fā)布類網(wǎng)站往往無需引入動(dòng)態(tài)頁(yè)面和用戶交互,而且可以通過后臺(tái)系統(tǒng)來產(chǎn)生信息發(fā)布靜態(tài)頁(yè)面的方式(這種Web站點(diǎn)構(gòu)建方式也被新浪、搜狐等門戶網(wǎng)站所采納)來兼顧安全性、訪問性能與便捷性。蘭州大學(xué)的李仲賢老師曾在COST論壇分享了采用這種設(shè)計(jì)思路構(gòu)建校園信息門戶網(wǎng)站的經(jīng)驗(yàn)。
2) 選擇安全性高、可靠的Web應(yīng)用軟件包和解決方案
對(duì)于必須提供用戶交互、采用動(dòng)態(tài)頁(yè)面的Web站點(diǎn),盡量使用具有良好安全聲譽(yù)及穩(wěn)定技術(shù)支持力量的Web應(yīng)用軟件包,如活躍的開源和共享軟件,規(guī)范運(yùn)作、注重安全的商業(yè)軟件公司解決方案等,并定期進(jìn)行Web應(yīng)用程序的安全評(píng)估與漏洞掃描檢測(cè),對(duì)Web應(yīng)用程序應(yīng)跟進(jìn)版本更新和安全補(bǔ)丁發(fā)布情況,進(jìn)行升級(jí)與安全漏洞修補(bǔ)。
只在必要時(shí)候自主或外包開發(fā)Web應(yīng)用程序,在開發(fā)和部署過程中需重視安全編程、持續(xù)性的安全測(cè)試與維護(hù),安全編程與測(cè)試的檢查點(diǎn)有:獨(dú)立、完整且集中的輸入驗(yàn)證、校驗(yàn)全部的程序輸入、校驗(yàn)輸入長(zhǎng)度與類型、不使用任何方式驗(yàn)證失敗的數(shù)據(jù)、對(duì)HTTP所有內(nèi)容進(jìn)行校驗(yàn)、校驗(yàn)向用戶輸出的數(shù)據(jù)、使用安全的S Q L查詢方式、禁止使用JavaScript進(jìn)行任何校驗(yàn)、使用安全統(tǒng)一的編碼或轉(zhuǎn)義方式、設(shè)定安全的權(quán)限邊界、校驗(yàn)被調(diào)用的后臺(tái)命令、校驗(yàn)被調(diào)用的文本或配置文件、確保程序所記錄的日志可控。
3) 充分有效利用Web服務(wù)器的日志功能
對(duì)Web應(yīng)用程序的所有訪問請(qǐng)求進(jìn)行日志記錄與安全審計(jì),如Apache的access_logs/error_logs、IIS的日志文件等等,這些Web訪問日志往往以W3C的日志標(biāo)準(zhǔn)格式——Extended Common Log Format來進(jìn)行記錄,關(guān)鍵的信息包括訪問用戶名、請(qǐng)求URL、referer來源鏈接等。通過一些輔助的Web日志分析與檢測(cè)工具,如AWStats等,可以從中發(fā)現(xiàn)出針對(duì)Web應(yīng)用程序的漏洞探測(cè)、滲透攻擊等入侵行為。
4) 定期進(jìn)行網(wǎng)站W(wǎng)eb應(yīng)用程序漏洞掃描
使用IBM AppScan、HP WebInspect、Acunetix Web Vulnerability Scanner等Web漏洞掃描軟件定期對(duì)重點(diǎn)網(wǎng)站進(jìn)行Web應(yīng)用程序漏洞掃描,并根據(jù)掃描結(jié)果推動(dòng)程序開發(fā)和測(cè)試團(tuán)隊(duì)修補(bǔ)所發(fā)現(xiàn)的安全漏洞,提高網(wǎng)站應(yīng)用的安全性。除了Web應(yīng)用程序漏洞掃描器產(chǎn)品之外,國(guó)內(nèi)的一些安全公司,如綠盟、知道創(chuàng)宇等,也提供了遠(yuǎn)程的網(wǎng)站W(wǎng)eb漏洞安全掃描服務(wù),這種遠(yuǎn)程在線服務(wù)提供了投入資金和技術(shù)成本更低的高效安全解決方案。
5) 部署Web應(yīng)用防火墻產(chǎn)品或服務(wù)
對(duì)于高校安全敏感的網(wǎng)站系統(tǒng),如主頁(yè)站點(diǎn)和校園信息門戶等,應(yīng)進(jìn)行重點(diǎn)安全防護(hù),建議部署商業(yè)或開源的Web應(yīng)用防火墻設(shè)備,來檢測(cè)和抵御針對(duì)這些網(wǎng)站系統(tǒng)的Web應(yīng)用攻擊,但這種方式對(duì)投入成本和技術(shù)水平要求較高,較難大規(guī)模推廣。筆者所在單位在多年研究基礎(chǔ)上,實(shí)現(xiàn)了Web應(yīng)用防火墻服務(wù)云的技術(shù)解決方案,可以無需在防護(hù)網(wǎng)站端部署任何硬件設(shè)備,也無需改變網(wǎng)絡(luò)拓?fù)?,通過簡(jiǎn)單的網(wǎng)絡(luò)參數(shù)配置,即可以通過在云環(huán)境中集中部署的Web應(yīng)用防火墻,為遠(yuǎn)程的客戶網(wǎng)站提供安全防護(hù)托管服務(wù),這種技術(shù)方案能夠?yàn)橐?guī)模較小、缺乏安全技術(shù)水平的高校網(wǎng)站提供了非常便捷和低成本的安全保護(hù)措施。對(duì)于規(guī)模較大的高校網(wǎng)站群,也可以采用私有云方式來部署Web應(yīng)用防火墻服務(wù),同樣無需改變網(wǎng)絡(luò)拓?fù)?,即可完成?duì)網(wǎng)站群的高效安全防護(hù)。如需了解更多詳細(xì)信息,可通過本文作者向該服務(wù)具體負(fù)責(zé)老師進(jìn)行詳細(xì)咨詢。
Web數(shù)據(jù)構(gòu)成了高校網(wǎng)站的重要組成內(nèi)容,也隨之面臨攻擊者竊取敏感與隱私信息,惡意篡改頁(yè)面和注入不良信息內(nèi)容等安全威脅。
雖然大部分高校網(wǎng)站并不涉及敏感與隱私信息,但由于一些網(wǎng)站用戶缺失保密和安全意識(shí),少部分網(wǎng)站上仍可能存在泄露科研敏感信息和師生個(gè)人隱私信息的情況,而攻擊者可以采用強(qiáng)大的Google Hacking技術(shù),借助搜索引擎的力量,非常便捷地發(fā)現(xiàn)和攫取這些被意外或無意間泄露的敏感內(nèi)容。在某高校網(wǎng)站的上傳目錄中無意泄露出的一份教師職稱評(píng)估業(yè)績(jī)表中,可以發(fā)現(xiàn)該教師承擔(dān)了一些來自國(guó)家敏感部門的科研項(xiàng)目,并完成了數(shù)篇關(guān)于武器技術(shù)的國(guó)防科技報(bào)告,筆者雖然無法確認(rèn)這些泄露信息是否屬于保密范圍,但個(gè)人認(rèn)為在互聯(lián)網(wǎng)上暴露如此詳細(xì)的涉及武器技術(shù)研發(fā)的項(xiàng)目與成果情況,應(yīng)屬不該發(fā)生的事情。
在高校網(wǎng)站上泄露師生個(gè)人隱私信息則更為常見,利用Google Hacking的一些基本技巧,如搜索“filetype:xls site:edu.cn 課題 身份證號(hào)”,可以發(fā)現(xiàn)內(nèi)部包含有“課題”和“身份證號(hào)”關(guān)鍵字的XLS電子文件,通常會(huì)找出一些包含有申請(qǐng)人身份證敏感信息的科研課題申請(qǐng)資料,在一個(gè)實(shí)驗(yàn)室網(wǎng)站的incoming目錄上可以挖掘出一份課題申報(bào)信息表,其中包含了所有課題主要參與人員的身份證號(hào)敏感信息。搜索“filetype:xls 身份證號(hào) site:edu.cn”、“filetype:xls 信用卡 site:edu.cn”還會(huì)發(fā)現(xiàn)大量高校網(wǎng)站隨意泄露學(xué)生個(gè)人敏感信息的情況,常見的如國(guó)家活動(dòng)安排、獎(jiǎng)助學(xué)金評(píng)選、新生報(bào)到等活動(dòng)公開資料中經(jīng)常給出完整的學(xué)生身份證號(hào)碼和信用卡號(hào)等,如在某高校網(wǎng)站上公開的殘奧會(huì)志愿者活動(dòng)安排材料中隨意包含了學(xué)生身份證號(hào)。此類情況往往是由于高校中的一些行政人員缺乏保護(hù)個(gè)人隱私信息的觀念和意識(shí),未經(jīng)屏蔽處理,即把完全沒有必要公開的身份證號(hào)、信用卡號(hào)等隱私信息直接發(fā)布在網(wǎng)絡(luò)上,這往往會(huì)對(duì)學(xué)生的網(wǎng)絡(luò)信息安全造成一定的風(fēng)險(xiǎn),如身份信息可能被濫用、常作為口令使用的生日日期被搜索獲得等。
通過一些觀察和分析,筆者認(rèn)為目前高校網(wǎng)站通常的敏感信息泄露途徑和方式包括:
1) 由于不安全配置,未關(guān)閉Web服務(wù)器的文件列表枚舉和目錄遍歷,在不經(jīng)意間泄露服務(wù)器中保存的敏感信息;
2) 利用Web服務(wù)器(往往同時(shí)配置FTP服務(wù))的Upload、Incoming等上傳目錄中轉(zhuǎn)文件時(shí),被搜索引擎爬蟲檢索而不經(jīng)意泄露;
3) 由于網(wǎng)站用戶缺乏安全意識(shí),在公開文檔中隨意包含他人,特別是學(xué)生的隱私信息;
4) 在公開的個(gè)人簡(jiǎn)歷、職稱晉升材料和課題申請(qǐng)書中包含科研敏感信息。
除了敏感信息泄露之外,高校網(wǎng)站還比較容易遭受網(wǎng)頁(yè)篡改攻擊。2008年9月份清華和北大網(wǎng)站曾被“黑客”攻擊,并假冒校長(zhǎng)名義發(fā)表抨擊大學(xué)教育的文章。在如圖2所示的中國(guó)被黑站點(diǎn)統(tǒng)計(jì)網(wǎng)站(www.zone-h.com.cn)和圖3所示的世界被黑站點(diǎn)統(tǒng)計(jì)網(wǎng)站(www.zone-h.org)上都可以查詢到大量被攻擊和篡改網(wǎng)頁(yè)的高校網(wǎng)站。筆者曾發(fā)表一篇論文《基于元搜索引擎實(shí)現(xiàn)被篡改網(wǎng)站發(fā)現(xiàn)與攻擊者調(diào)查剖析》,高校網(wǎng)站管理部門可以借鑒這種方法,通過綜合利用Google、百度、Yahoo等搜索引擎對(duì)網(wǎng)站的監(jiān)控能力,利用常見的網(wǎng)頁(yè)篡改特征和對(duì)站點(diǎn)范圍的限定,自動(dòng)地發(fā)現(xiàn)關(guān)注站點(diǎn)范圍內(nèi)被惡意篡改的網(wǎng)頁(yè)。圖4示例了利用在網(wǎng)頁(yè)標(biāo)題中匹配“hacked by”特征來發(fā)現(xiàn)edu.cn域名范圍內(nèi)的被黑網(wǎng)站。
不良信息內(nèi)容也對(duì)高校網(wǎng)站的正常運(yùn)營(yíng)帶來了安全風(fēng)險(xiǎn),高校網(wǎng)站被攻陷后可能成為色情淫穢等不良信息的存儲(chǔ)和中轉(zhuǎn)倉(cāng)庫(kù),而提供用戶交互的BBS、論壇和博客等網(wǎng)站則可能遭遇網(wǎng)站用戶發(fā)布不良信息內(nèi)容的情況,如果論壇管理者、博主沒有有效管理他們的網(wǎng)站,那么很多涉及出售非法物品的廣告會(huì)被經(jīng)常光顧并被長(zhǎng)期保留在這些網(wǎng)站上。
為了應(yīng)對(duì)高校網(wǎng)站所面臨的Web數(shù)據(jù)安全威脅,高校網(wǎng)絡(luò)管理部門應(yīng)通過各種有效途徑,來提高網(wǎng)站維護(hù)人員和用戶的數(shù)據(jù)安全意識(shí),包括:
1)保密信息絕對(duì)不能聯(lián)網(wǎng),此外也不應(yīng)在網(wǎng)上公開團(tuán)隊(duì)和個(gè)人承擔(dān)涉密項(xiàng)目的信息,以免引來針對(duì)性的社會(huì)工程攻擊;
2)應(yīng)教育行政人員和師生注重個(gè)人隱私信息,網(wǎng)上公布的文檔資料中應(yīng)盡量避免包含個(gè)人隱私信息,如必要時(shí),也應(yīng)進(jìn)行部分的屏蔽處理;
3)注意對(duì)論壇、博客、BBS、留言本等允許用戶提交數(shù)據(jù)的審查,清除明確包含違法信息的數(shù)據(jù)內(nèi)容。
另外網(wǎng)絡(luò)管理部門應(yīng)幫助網(wǎng)站運(yùn)營(yíng)者加強(qiáng)網(wǎng)站數(shù)據(jù)安全性監(jiān)測(cè)和防護(hù)措施,包括:
1)提升網(wǎng)站系統(tǒng)及Web應(yīng)用程序的安全性,避免網(wǎng)站遭遇網(wǎng)頁(yè)篡改;
2)善用Google、百度等搜索引擎,定期進(jìn)行關(guān)注域名范圍內(nèi)的被黑網(wǎng)站發(fā)現(xiàn)和敏感數(shù)據(jù)檢查;
3)對(duì)網(wǎng)站的安全配置進(jìn)行核查,盡量消除文件列表枚舉、目錄遍歷、隨意上傳等容易泄露信息的渠道;
4)對(duì)接受用戶交互的網(wǎng)站列出清單,協(xié)助網(wǎng)站運(yùn)營(yíng)者進(jìn)行定期的數(shù)據(jù)安全性檢查;
5)建立規(guī)范便捷的網(wǎng)站安全響應(yīng)機(jī)制和流程。
網(wǎng)站系統(tǒng)的安全威脅存在于傳輸網(wǎng)絡(luò)、操作系統(tǒng)與網(wǎng)絡(luò)服務(wù)、Web應(yīng)用程序和數(shù)據(jù)內(nèi)容等各個(gè)層次上,類型也非常多樣化,并且廣泛普遍存在。而高校網(wǎng)站由于資金和人力投入少,安全性尤為薄弱,各種安全問題頻頻出現(xiàn)。高校網(wǎng)絡(luò)管理部門應(yīng)擔(dān)負(fù)起改善網(wǎng)站安全性的責(zé)任,爭(zhēng)取學(xué)校經(jīng)費(fèi)投入,建立安全管理和責(zé)任機(jī)制,并通過采納開源和商業(yè)的技術(shù)方案,建立起網(wǎng)站安全建設(shè)、監(jiān)控和響應(yīng)技術(shù)流程,來切實(shí)提升高校網(wǎng)站的安全性。同時(shí),高校網(wǎng)站安全也需要多方協(xié)作,高校網(wǎng)站管理部門和網(wǎng)站管理者應(yīng)成為安全責(zé)任主體,來推動(dòng)相關(guān)安全機(jī)制的建立,而運(yùn)營(yíng)商、科研機(jī)構(gòu)和安全公司也應(yīng)對(duì)高校提供技術(shù)支持與幫助,網(wǎng)站用戶也應(yīng)建立起良好的安全意識(shí),只有如此,高校網(wǎng)站才能夠不再是網(wǎng)絡(luò)駭客們所青睞的“軟柿子”,而真正成為服務(wù)于廣大師生、支撐數(shù)字校園的堅(jiān)強(qiáng)后盾。
(作者單位為清華大學(xué)網(wǎng)絡(luò)工程研究中心)