国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

從網(wǎng)站安全測(cè)評(píng)談起

2015-03-18 06:42
網(wǎng)絡(luò)安全和信息化 2015年7期

接到總公司關(guān)于開(kāi)展互聯(lián)網(wǎng)接入及互聯(lián)網(wǎng)應(yīng)用系統(tǒng)安全專項(xiàng)整治工作的通知,要求學(xué)校對(duì)一直運(yùn)行的互聯(lián)網(wǎng)Web網(wǎng)站進(jìn)行安全評(píng)測(cè)。

基于對(duì)自身安全技術(shù)的不信任以及網(wǎng)站開(kāi)發(fā)由非專業(yè)人士完成,學(xué)校信息管理部門(mén)并未進(jìn)行互聯(lián)網(wǎng)應(yīng)用的全面開(kāi)發(fā),唯一的一臺(tái)外網(wǎng)服務(wù)器只是簡(jiǎn)單地用php腳本和MySQL開(kāi)源數(shù)據(jù)庫(kù)搭建起了一個(gè)計(jì)算機(jī)職稱報(bào)名系統(tǒng)。報(bào)名時(shí)打開(kāi)主機(jī)電源,報(bào)名工作完成以后關(guān)閉主機(jī)電源。我們調(diào)侃說(shuō):從某種意義上講,不開(kāi)機(jī)、不接入、不使用應(yīng)該是最安全的。

測(cè)評(píng)是由具有資質(zhì)的專業(yè)Web網(wǎng)站安全測(cè)評(píng)公司進(jìn)行的,無(wú)需上門(mén),只電話告訴了對(duì)方域名,對(duì)方就可以在遠(yuǎn)程通過(guò)專業(yè)的安全測(cè)試軟件進(jìn)行測(cè)試,并自動(dòng)生成測(cè)試報(bào)告。其技術(shù)核心其實(shí)就是對(duì)網(wǎng)站系統(tǒng)的滲透測(cè)試,類似于黑客攻擊。測(cè)試結(jié)果很快就出來(lái)了,盡管有思想準(zhǔn)備,當(dāng)拿到測(cè)試報(bào)告的時(shí)候,還是驚出了一身冷汗。一個(gè)覆蓋報(bào)名功能的簡(jiǎn)單的php腳本系統(tǒng),共500個(gè)腳本文件,20%的腳本存在不同程度的安全問(wèn)題,Web風(fēng)險(xiǎn)等級(jí)被定義為9.9(非常危險(xiǎn))。安全問(wèn)題的前三位分別是:

跨站腳本攻擊漏洞(XSS):36個(gè)。

存在無(wú)CSRF保護(hù)的信息提交(Infor Leak):24個(gè)。

命 令 注 入(SQL Inject):18個(gè)。

本次安全測(cè)評(píng)所呈現(xiàn)出的問(wèn)題不僅存在于我們學(xué)校,其實(shí),大多數(shù)中小企業(yè),由于開(kāi)發(fā)網(wǎng)站的技術(shù)力量不足,投入資金有限,加之項(xiàng)目經(jīng)理只重視功能需求的實(shí)現(xiàn),而忽略了網(wǎng)站安全的建設(shè),導(dǎo)致網(wǎng)站成為一個(gè)沒(méi)有安全配置的產(chǎn)品。網(wǎng)站的安全問(wèn)題在中小企業(yè)是普遍存在的,所以,外網(wǎng)Web站點(diǎn)的安全也成為一個(gè)企業(yè)網(wǎng)絡(luò)運(yùn)維成功的關(guān)鍵所在。

盡管我們開(kāi)發(fā)的系統(tǒng)已經(jīng)存在了很多年,使用過(guò)程中也從未出現(xiàn)過(guò)任何問(wèn)題,但不能因此而不重視并忽略安全問(wèn)題的存在。那么,作為一個(gè)中小企業(yè)的運(yùn)維人員,對(duì)于一個(gè)從架構(gòu)到硬件到軟件全權(quán)負(fù)責(zé)的技術(shù)人員,在進(jìn)行Web網(wǎng)站運(yùn)維時(shí)應(yīng)該注意哪些問(wèn)題?以下是筆者對(duì)于Web網(wǎng)站安全管理的一些粗淺建議:

1.架構(gòu)安全

架構(gòu)的作用就是讓W(xué)eb服務(wù)器處在一個(gè)安全的網(wǎng)絡(luò)環(huán)境中。在這個(gè)環(huán)境中,應(yīng)該有針對(duì)外來(lái)訪問(wèn)封包的檢測(cè)設(shè)備;有基于本機(jī)外出封包的過(guò)濾和診斷設(shè)備;有基于網(wǎng)站的攻擊行為審核、記錄和防護(hù)設(shè)備,有隱匿服務(wù)器身份,使其處在對(duì)外邊界深層的設(shè)備。

例如,我們可以使用防火墻針對(duì)服務(wù)端口進(jìn)行防護(hù),也可以針對(duì)封包協(xié)議進(jìn)行策略定制,可以使用nat技術(shù)實(shí)現(xiàn)服務(wù)器地址的轉(zhuǎn)換,可以使用上網(wǎng)行為透明接入并記錄進(jìn)出的網(wǎng)絡(luò)訪問(wèn)。

如果網(wǎng)絡(luò)夠大,還需要考慮負(fù)載均衡和服務(wù)器資源池、網(wǎng)頁(yè)緩存等基于網(wǎng)站運(yùn)行性能的一些細(xì)節(jié)問(wèn)題,保證網(wǎng)站服務(wù)器運(yùn)行的穩(wěn)定可靠。

2.硬件安全

網(wǎng)站服務(wù)器是運(yùn)行網(wǎng)站的載體。除了保障硬件穩(wěn)定運(yùn)轉(zhuǎn)外,還要提供方便操作和管理的手段,例如,遠(yuǎn)程喚醒服務(wù)器、VNC連接控制等。需要注意一點(diǎn)的是,打開(kāi)的服務(wù)越多,系統(tǒng)的安全漏洞就會(huì)越多,由此而造成的其他安全影響也不容小視。

操作系統(tǒng)是服務(wù)器硬件的運(yùn)作靈魂,所以針對(duì)操作系統(tǒng)的升級(jí)要及時(shí),針對(duì)漏洞的補(bǔ)丁要實(shí)現(xiàn)在線升級(jí),要把操作系統(tǒng)的防火墻打開(kāi),安裝并運(yùn)行安全防護(hù)軟件和殺毒軟件,保證系統(tǒng)處在一個(gè)專業(yè)安全產(chǎn)品的可監(jiān)控狀態(tài)之下??v觀發(fā)生的安全事件和案例,最有效的進(jìn)攻往往是從最底層發(fā)起的,要么是具備操作物理硬件的人員,要么是通過(guò)操作系統(tǒng)底層漏洞或者網(wǎng)絡(luò)協(xié)議的安全漏洞,而這種滲透又是極其致命的,可以做到悄無(wú)聲息和全覆蓋,危害極大。

3.編碼安全

Web網(wǎng)站對(duì)服務(wù)器端的安全最終還是要從編碼上來(lái)解決。一個(gè)是服務(wù)器后端,一個(gè)是前端腳本。后端涉及兩大部分,第一是軟件供應(yīng)商提供的Web容器或數(shù)據(jù)庫(kù)產(chǎn)品,第二是用戶開(kāi)發(fā)的可解釋腳本。前端腳本部分也涉及兩大部分,第一是對(duì)前端輸入字符串的過(guò)濾;第二是代碼邏輯。Web網(wǎng)站的安全主要依賴于后臺(tái)程序代碼部分對(duì)用戶輸入的檢測(cè)和對(duì)代碼邏輯的正確設(shè)計(jì),從這個(gè)角度來(lái)說(shuō),Web網(wǎng)站的核心安全其實(shí)就是編碼人員的編碼水平和安全意識(shí)。

第一,Web容器。目前常見(jiàn)的Web容器有微軟的iis和Apache軟件基金會(huì)的開(kāi)源apache,腳本則涉及眾多,諸如php、asp、jsp等。由于開(kāi)發(fā)過(guò)程中軟件自身會(huì)存在一些bug,比如 Apache 2.2.14及早期版本的mod_isapi模塊中就曾經(jīng)存在一個(gè)嚴(yán)重的漏洞,該漏洞允許遠(yuǎn)程攻擊者獲得一個(gè)數(shù)據(jù)庫(kù)的完整控制權(quán)。所以在不保持軟件最新的前提下,搭建并運(yùn)行在服務(wù)器端的這些軟件會(huì)存在安全漏洞。運(yùn)維人員必須要引起重視,要保證這種軟件bug的更新是及時(shí)和有效的。不過(guò)大多數(shù)的網(wǎng)站運(yùn)維人員出于一些個(gè)人目的,比如為了保證不間斷運(yùn)行Web應(yīng)用、保持網(wǎng)站24小時(shí)的開(kāi)放和訪問(wèn)、擔(dān)心升級(jí)會(huì)導(dǎo)致代碼的不兼容、懶于升級(jí)等,很少有對(duì)在線Web容器進(jìn)行持續(xù)升級(jí)和更新的,這是個(gè)很壞的習(xí)慣,也是當(dāng)前的運(yùn)維現(xiàn)實(shí)。由于服務(wù)軟件有些是不開(kāi)源的,所以,用戶對(duì)于由這方面引發(fā)的安全問(wèn)題只能通過(guò)獲取最新升級(jí)包或者更新漏洞補(bǔ)丁的方式進(jìn)行。

第二,程序框架。合理的程序框架設(shè)計(jì)也可以增強(qiáng)網(wǎng)站的安全性,比如將數(shù)據(jù)庫(kù)服務(wù)器和Web服務(wù)器分開(kāi)放在兩臺(tái)機(jī)器上;對(duì)外公開(kāi)訪問(wèn)的網(wǎng)站上只保留靜態(tài)頁(yè)面文件,所有頁(yè)面由另外一臺(tái)內(nèi)部服務(wù)器動(dòng)態(tài)產(chǎn)生并推送到對(duì)外的服務(wù)器上等。

第三,腳本語(yǔ)言。每種腳本語(yǔ)言都會(huì)在服務(wù)器端設(shè)置一些基于本地安全訪問(wèn)的函數(shù)供腳本代碼調(diào)用,以增強(qiáng)腳本訪問(wèn)本地資源的能力。平時(shí),只有后臺(tái)服務(wù)和腳本代碼才能接觸和調(diào)用這些函數(shù),如果代碼涉及不夠周密,用戶也可以通過(guò)用戶輸入或者h(yuǎn)ttp協(xié)議傳輸某些特殊字節(jié),間接調(diào)用這些函數(shù),從而造成服務(wù)器被非法操作。比如在php中存在以下五個(gè)特殊函數(shù):system、exec、passthru、shell_exec、運(yùn)算符,這些函數(shù)或運(yùn)算符可以執(zhí)行本地命令,作為網(wǎng)站管理人員,應(yīng)該具有監(jiān)控網(wǎng)站代碼腳本的工具或者手段,隨時(shí)檢測(cè)腳本源代碼的狀態(tài),并對(duì)php命令注入事后防范提供第一時(shí)間的警告和響應(yīng)處理。

第四,命令注入。所謂命令注入,是最常見(jiàn)的基于Web站點(diǎn)的黑客攻擊行為。這種攻擊方式利用了Web應(yīng)用程序?qū)τ脩舳颂峤坏妮斎霐?shù)據(jù)過(guò)濾不嚴(yán)格的缺陷,黑客通過(guò)輸入構(gòu)造特殊命令字符串的方式,將數(shù)據(jù)提交至Web應(yīng)用程序中,并利用該方式執(zhí)行服務(wù)器的外部程序或者系統(tǒng)命令來(lái)實(shí)施攻擊,以非法獲取數(shù)據(jù)或者網(wǎng)絡(luò)資源為目的。

根據(jù)對(duì)注入命令的觸發(fā)是在前端還是在后端,又可以細(xì)分為:sql注入、XPath注入、CGI命令執(zhí)行、XXS和會(huì)話劫持。

在腳本代碼的安全設(shè)定上,牢記這樣一個(gè)道理:方便了自己的同時(shí),也就方便了他人。所以要想在很多情況下避免安全問(wèn)題的出現(xiàn),就需要養(yǎng)成一個(gè)良好的編碼習(xí)慣。例如,檢查php代碼是否存在輸入上的漏檢、對(duì)輸入上的腳本轉(zhuǎn)義符號(hào)等進(jìn)行適當(dāng)?shù)慕財(cái)嗵幚?、是否在后臺(tái)腳本的代碼中存在方便自己執(zhí)行管理的eval語(yǔ)句、是否在腳本代碼中開(kāi)放了對(duì)外部應(yīng)用程序的訪問(wèn)、是否開(kāi)放了對(duì)數(shù)據(jù)庫(kù)執(zhí)行和查詢的腳本接口等。

第五,XSS跨站腳本。準(zhǔn)確來(lái)講,這是命令注入的一種特例,單獨(dú)拿出來(lái),是因?yàn)檫@種攻擊由來(lái)已久,且經(jīng)常被使用而沒(méi)有引起運(yùn)維人員足夠的重視。用戶在訪問(wèn)網(wǎng)站的時(shí)候,經(jīng)常要向網(wǎng)站提供自己的個(gè)性化信息,比如網(wǎng)站用戶的cookies或者其他個(gè)人數(shù)據(jù),跨站腳本主要被攻擊者利用,通過(guò)發(fā)送惡意鏈接或使用社會(huì)工程學(xué)等方法來(lái)讀取到這些信息,當(dāng)攻擊者獲得這些數(shù)據(jù)后,就可以偽裝成該用戶來(lái)登錄網(wǎng)站,從而獲得該用戶的權(quán)限。

xss腳本內(nèi)容需要作為一個(gè)http參數(shù)進(jìn)行傳遞,所以,在這些參數(shù)進(jìn)入代碼執(zhí)行前需要作審核和過(guò)濾。常用的方法就是設(shè)立一個(gè)函數(shù),專門(mén)對(duì)字符串進(jìn)行驗(yàn)證和重編碼,驗(yàn)證所有輸入數(shù)據(jù)的類型、長(zhǎng)度、語(yǔ)法和業(yè)務(wù)類別,重編碼則是將特殊字符轉(zhuǎn)換為html編碼,使其在到達(dá)后臺(tái)腳本時(shí)就失去腳本效應(yīng)。

第六,CSRF跨站請(qǐng)求偽造。與XSS非常相似,但XSS是利用用戶對(duì)當(dāng)前網(wǎng)站的信任來(lái)發(fā)起攻擊,而CSRF是利用網(wǎng)站對(duì)用戶的信任來(lái)發(fā)起攻擊。CSRF攻擊成功的可能在于網(wǎng)站腳本注重簡(jiǎn)便快捷的功能需求,而忽略了安全設(shè)置。這種情況在當(dāng)下的中小型企業(yè)中普遍存在,一次驗(yàn)證成功后,網(wǎng)站對(duì)用戶是始終信任的。這要求我們?cè)陉P(guān)鍵的業(yè)務(wù)上必須不怕麻煩,要設(shè)置多種交叉驗(yàn)證方式,才能避免CSRF的攻擊。當(dāng)然,從技術(shù)上講,同時(shí)開(kāi)啟服務(wù)器端的session功能和客戶端的cookies功能,將針對(duì)用戶的唯一的令牌存儲(chǔ)在其中,然后對(duì)用戶的每次請(qǐng)求,都進(jìn)行令牌檢查,確保一致,也能有效杜絕CSRF攻擊。

第七,錯(cuò)誤信息。程序代碼在運(yùn)行過(guò)程中,會(huì)出現(xiàn)很多意想不到的錯(cuò)誤,用戶代碼必須對(duì)這些錯(cuò)誤進(jìn)行接管。無(wú)論是程序邏輯之內(nèi)的還是之外的,都要完全接管,否則,就會(huì)在客戶端出現(xiàn)一些與安全緊要相關(guān)的錯(cuò)誤提示,惡意用戶通過(guò)這些提示,可以獲取鏈接地址、服務(wù)器運(yùn)行狀態(tài)、容器類別與版本號(hào)、腳本路徑、腳本文件名等敏感信息。

第八,數(shù)據(jù)傳輸。http協(xié)議是一個(gè)早期的Web瀏覽訪問(wèn)協(xié)議,無(wú)論是在POST方式上,還是在GET方式上都使用明文傳輸數(shù)據(jù),這樣,當(dāng)涉及到網(wǎng)站用戶驗(yàn)證時(shí),信息在流經(jīng)網(wǎng)絡(luò)時(shí)很容易被第三方劫持。為了防止第三方監(jiān)聽(tīng)通訊,建議使用https協(xié)議,即使用封裝了ssl的http協(xié)議進(jìn)行數(shù)據(jù)交換,增加信息在網(wǎng)絡(luò)流動(dòng)過(guò)程中的安全性。

第九,編碼習(xí)慣。商業(yè)編碼追求效率,所以,編碼工人被統(tǒng)一培訓(xùn),在命名方式、注釋方式上擁有相同的習(xí)慣。如果運(yùn)維人員接受過(guò)這樣的培訓(xùn),這種習(xí)慣會(huì)被帶到網(wǎng)站的安全領(lǐng)域,比如,在進(jìn)行網(wǎng)站數(shù)據(jù)備份的時(shí)候,會(huì)使用一些約定俗成的名字 :bak、rar、* 副本 *、db.php等,當(dāng)目錄被非法遍歷時(shí),入侵者可以很容易地猜測(cè)到加載了敏感信息的數(shù)據(jù)庫(kù)文件,從而導(dǎo)致敏感信息失竊。這種習(xí)慣要改,方法就是要么將數(shù)據(jù)庫(kù)與腳本分離,要么起一個(gè)不會(huì)被輕易猜到的名字。

綜上所述,要想做好Web網(wǎng)站的安全運(yùn)維,要求運(yùn)維人員熟悉基于Web腳本的各種欺騙和攻擊手法,養(yǎng)成一個(gè)隨時(shí)為軟件打補(bǔ)丁的好習(xí)慣,培養(yǎng)一個(gè)安全意識(shí),永遠(yuǎn)不要相信客戶端傳來(lái)的任何信息,對(duì)這些信息都應(yīng)該首先進(jìn)行編碼和過(guò)濾處理,檢查可能存在的隱患,及時(shí)截?cái)?,編碼還要接管腳本可能出現(xiàn)的所有異常和錯(cuò)誤,謹(jǐn)慎地向用戶返回可控的信息。

Web網(wǎng)站運(yùn)維人員的職責(zé)就是在自己力所能及的范圍內(nèi),盡量做好對(duì)Web網(wǎng)站的安全防護(hù),但是不排除有些攻擊是運(yùn)維人員所不能控制的,比如一個(gè)0-day漏洞就足以秒殺我們?yōu)榘踩龅乃泄ぷ?。所以,建立必要的監(jiān)督預(yù)警機(jī)制、備份機(jī)制、事后恢復(fù)機(jī)制也很有必要。

總而言之,基于Web網(wǎng)站的安全防范和諸多安全事務(wù)的管理一樣,要做到事前有布置,事中有控制,事后有處理。只有這樣,才能減少發(fā)生安全問(wèn)題的幾率和損失,做一名稱職的網(wǎng)絡(luò)安全運(yùn)維人員。