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