李永銳
摘 要 隨著國(guó)家互聯(lián)網(wǎng)+戰(zhàn)略的不斷推進(jìn),聯(lián)網(wǎng)應(yīng)用的普及程度不斷提高,人們對(duì)互聯(lián)網(wǎng)的依賴也不斷加大,隨之而來網(wǎng)絡(luò)安全問題也日益凸顯,本文對(duì)如何提高互聯(lián)網(wǎng)應(yīng)用安全提出了自己的看法。
【關(guān)鍵詞】反向代理 安全 跨站腳本 SQL注入 拒絕服務(wù)攻擊
1 概述
近年來重大網(wǎng)絡(luò)安全事故層出不窮,如2016年全國(guó)關(guān)注的徐玉玉電信詐騙案就是由于山東高考報(bào)名系統(tǒng)漏洞導(dǎo)致考生信息泄露而引發(fā)的。這些網(wǎng)絡(luò)安全問題大都是針對(duì)Web應(yīng)用系統(tǒng)進(jìn)行攻擊,Web應(yīng)用的安全漏洞導(dǎo)致了大量用戶個(gè)人信息的泄露與財(cái)產(chǎn)損失。作為傳統(tǒng)行業(yè)的郵政企業(yè)也積極進(jìn)行轉(zhuǎn)型發(fā)展擁抱互聯(lián)網(wǎng)時(shí)代,通過互聯(lián)網(wǎng)為廣大群眾提供各種業(yè)務(wù)服務(wù),通過互聯(lián)網(wǎng)進(jìn)行企業(yè)宣傳與內(nèi)部管理,以廣東郵政來說全省就有200多個(gè)應(yīng)用部署在互聯(lián)網(wǎng)上,一旦發(fā)生安全事故對(duì)郵政企業(yè)及郵政客戶都會(huì)造成重大影響,加強(qiáng)互聯(lián)網(wǎng)應(yīng)用的安全管理刻不容緩。
2 互聯(lián)網(wǎng)Web應(yīng)用安全風(fēng)險(xiǎn)分析
根據(jù)Open Web Application Security Project(OWASP)組織的報(bào)告,Web應(yīng)用程序的常見安全風(fēng)險(xiǎn)包括:
2.1 拒絕服務(wù)攻擊(DDOS)
拒絕服務(wù)攻擊是指導(dǎo)致合法用戶不能正常使用網(wǎng)絡(luò)服務(wù),使信息或信息系統(tǒng)的被利用價(jià)值和服務(wù)能力下降或喪失的攻擊手段。拒絕服務(wù)攻擊最基本的攻擊手段就是制造大量正常的請(qǐng)求來占用過多的服務(wù)資源,從而使廣大合法用戶無法得到服務(wù);
2.2 注入(Injection)
是指攻擊者通過輸入惡意數(shù)據(jù),從而達(dá)到在Web服務(wù)器環(huán)境下運(yùn)行任意指令的目的,如SQL注入、SHELL注入。
2.3 跨站腳本(XSS)
當(dāng)應(yīng)用程序收到含有不可信的數(shù)據(jù),在沒有進(jìn)行適當(dāng)?shù)尿?yàn)證和轉(zhuǎn)義的情況下,將它發(fā)送給瀏覽器,導(dǎo)致產(chǎn)生跨站腳本攻擊(XSS)。XSS允許攻擊者在受害者的瀏覽器上執(zhí)行腳本,從而劫持用戶會(huì)話將用戶轉(zhuǎn)向至惡意網(wǎng)站。
2.4 跨站請(qǐng)求偽造 (CSRF)
跨站請(qǐng)求偽造攻擊通過誘使用戶的瀏覽器將偽造的HTTP請(qǐng)求,包括該用戶的會(huì)話cookie和其他認(rèn)證信息,發(fā)送到一個(gè)存在漏洞的Web應(yīng)用程序,而應(yīng)用程序按照用戶合法請(qǐng)求的模式處理這些請(qǐng)求導(dǎo)致?lián)p失。
3 反向代理技術(shù)
反向代理 (Reverse Proxy) 是指以代理服務(wù)器來接受另一個(gè)網(wǎng)絡(luò)的訪問請(qǐng)求,然后將請(qǐng)求中轉(zhuǎn)給自身所處網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給訪問的客戶端,這時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。
反向代理通俗來說就是 Web 服務(wù)器加速,它是一種通過在繁忙的 Web 服務(wù)器和外部網(wǎng)絡(luò)之間增加一個(gè)高速的 Web 緩沖服務(wù)器來降低實(shí)際的 Web 服務(wù)器的負(fù)載的一種技術(shù)。反向代理是針對(duì) Web 服務(wù)器供加速功能,作為代理緩存,它并不是針對(duì)瀏覽器用戶,而針對(duì)一臺(tái)或多臺(tái)特定的 Web 服務(wù)器,它可以代理外部網(wǎng)絡(luò)對(duì)內(nèi)部網(wǎng)絡(luò)的訪問請(qǐng)求。被代理的服務(wù)器對(duì)外部網(wǎng)絡(luò)來說是不可見的,也無法直接訪問,反向代理為內(nèi)部的Web服務(wù)器提供了一個(gè)緩沖隔離的空間,避免了內(nèi)部重要的Web服務(wù)器直接暴露在外部網(wǎng)絡(luò)環(huán)境中,減少了這些服務(wù)器被攻擊的機(jī)率。
此外反向代理服務(wù)器還具有內(nèi)容過濾的功能可以對(duì)經(jīng)過代理服務(wù)器的Web內(nèi)容進(jìn)行修改,在網(wǎng)頁中增加或刪除指定的內(nèi)容,還可以分析網(wǎng)頁內(nèi)容,根據(jù)網(wǎng)頁內(nèi)容執(zhí)行指定的操作。
4 反向代理的配置
Nginx是一個(gè)俄羅斯開發(fā)的高性能HTTP和反向代理服務(wù)器,在互連網(wǎng)公司得到了廣泛應(yīng)用,Nginx是插件體系結(jié)構(gòu)的,通過插件模塊實(shí)現(xiàn)功能擴(kuò)展并且支持LUA腳本編程。廣東郵政采用Nginx作為互聯(lián)網(wǎng)應(yīng)用的反向代理,通過解析訪問二級(jí)域名將訪問請(qǐng)求分發(fā)到內(nèi)網(wǎng)的各個(gè)應(yīng)用服務(wù)器上。
Nginx安裝完畢后,通過修改nginx.conf 配置文件來控制Nginx的行為。針對(duì)常見的互聯(lián)網(wǎng)安全威脅,Nginx的配置如下
4.1 限制外部請(qǐng)求訪問頻率及連接數(shù)限制
limit_req_zone $clientRealIp zone=req_one:30m rate=2r/s;
limit_conn_zone $clientRealIp zone=req_addr:10m;
limit_req_status 503;
這里的配置說明代理服務(wù)器將根據(jù)客戶端的IP地址進(jìn)行連接數(shù)及訪問頻率的限制,limit_req_zone參數(shù)用于限制訪問頻率,每個(gè)IP地址每秒只能訪問2次,limit_conn_zone定義了一個(gè)連接地址地址池用于每個(gè)服務(wù)的連接數(shù)限制。
4.2 配置代理轉(zhuǎn)發(fā)
server_name a.gdpost.com.cn;
location / { proxy_pass http://192.168.248.31:8080/;
limit_req zone=one burst=50 nodelay; limit_conn req_addr 2; }
server_name b.gdpost.com.cn;
location / { proxy_pass http://192.168.248.45:8090/;
limit_req zone=one burst=50 nodelay; limit_conn req_addr 5; }
上面的配置表示配置對(duì)域名a.gdpost.com.cn的訪問請(qǐng)求跳轉(zhuǎn)到內(nèi)網(wǎng)192.168.248.31服務(wù)器,每個(gè)客戶端IP地址同時(shí)連接數(shù)為2;對(duì)配置域名b.gdpost.com.cn的訪問請(qǐng)求跳轉(zhuǎn)到內(nèi)網(wǎng)192.168.248.45服務(wù)器,每個(gè)客戶端IP地址同時(shí)連接數(shù)為5。
4.3 配置防止跨站腳本參數(shù)
add_header X-XSS-Protection "1; mode=block";
set $block_common_status 0;
if ($query_string ~ "(<|%3C).*script.*(>|%3E)")
{ set $block_common_status 1; }
if($query_string~*".*('|--|iframe|script|alert|Webscan|style|confirm|innerhtml|innertext|class).*")
{ set $block_common_status 1; }
if ($query_string ~ "base64_(en|de)code\(.*\)")
{ set $block_common_status 1; }
if ($block_common_status = 1)
{ return 403; }
這段配置首先向?yàn)g覽器發(fā)送 X-XSS-Protection頭信息,目前新版本的瀏覽都能識(shí)別該HTTP頭信息對(duì)可能存在跨站腳本的JS方法進(jìn)行阻止;另外配置中利用正則表達(dá)式對(duì)客戶端瀏覽器發(fā)送的數(shù)據(jù)進(jìn)行檢測(cè),如果里面包含有XSS腳本的關(guān)鍵字則阻止該次訪問不會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給實(shí)際的服務(wù)器,從而達(dá)到防止XSS攻擊的目的。
5 結(jié)語
本文結(jié)合作者在工作中的實(shí)踐探討了提升互聯(lián)網(wǎng)應(yīng)用的一些方法和手段,但是互聯(lián)網(wǎng)應(yīng)用的安全是個(gè)綜合體系,需要網(wǎng)絡(luò)硬件、系統(tǒng)軟件、應(yīng)用軟件、管理制度等多方配合,共同協(xié)作,而且互聯(lián)網(wǎng)應(yīng)用的安全形勢(shì)也是在不斷變化發(fā)展的,新的攻擊手段不斷出現(xiàn),針對(duì)這些新的安全威脅我們也要不斷調(diào)整應(yīng)用的防護(hù)措施,確保應(yīng)用的安全。
參考文獻(xiàn)
[1]李媛,張曉梅,胡冰.Web應(yīng)用的安全風(fēng)險(xiǎn)及應(yīng)對(duì)措施[J].保密科學(xué)技術(shù),2010(02).
[2]車樹炎,黃銀瑞.反向代理技術(shù)在高校網(wǎng)站系統(tǒng)中的應(yīng)用研究[J].電腦編程技巧與維護(hù),2013(02).