本文首發(fā)微信公眾號:數(shù)據(jù)安全架構(gòu)與治理
01?背景簡介
在2018年的時(shí)候嘁酿,筆者發(fā)布了一篇:基于Golang打造一款開源的WAF網(wǎng)關(guān)?,那會(huì)兒是JANUSEC應(yīng)用網(wǎng)關(guān)剛剛在Github開源苇本,構(gòu)建了一款全新的應(yīng)用網(wǎng)關(guān)的基本框架某弦。初始版本雖然功能不多桐愉,卻是按照《數(shù)據(jù)安全架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn)》中介紹的最佳實(shí)戰(zhàn)來進(jìn)行打造的,或者說比《數(shù)據(jù)安全架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn)》成書的時(shí)間還要早粉洼,因?yàn)槲沂窍茸鲩_源產(chǎn)品节预,后來才寫書的(他們的確一脈相承,都是過去十幾年安全最佳實(shí)踐經(jīng)驗(yàn)的總結(jié))属韧。
隨后安拟,是近三年的不斷改進(jìn),但版本長期維持在0.9.XX宵喂,只增加最后的小版本糠赦。有不少用戶也呼吁盡快推出1.0版本,反饋說“我們已經(jīng)在生產(chǎn)環(huán)境使用了锅棕,就是這個(gè)版本號看起來有點(diǎn)怪怪的”拙泽。是啊,版本號小于1裸燎,往往會(huì)讓一部分用戶產(chǎn)生不信任感顾瞻,JANUSEC應(yīng)用網(wǎng)關(guān)已經(jīng)過了長期的實(shí)戰(zhàn)檢驗(yàn),完全具備在生產(chǎn)環(huán)境部署的能力德绿。于是在進(jìn)一步優(yōu)化細(xì)節(jié)后荷荤,我決定發(fā)布1.0退渗,向用戶傳遞信心,歡迎大家對比測試蕴纳、部署使用( 開源發(fā)布在https://github.com/Janusec/janusec?或搜索?Janusec?)会油。
https://github.com/Janusec/janusec
02?應(yīng)用網(wǎng)關(guān)是什么?
提到安全防御古毛,大家可能會(huì)想到WAF翻翩、CC防護(hù)、IDS稻薇、防火墻嫂冻、抗DDoS等各種各樣的安全產(chǎn)品,但安全從來都不是安全設(shè)備或產(chǎn)品的堆砌塞椎,用好各類產(chǎn)品絮吵,讓他們真正發(fā)揮有效的作用,其實(shí)并不容易忱屑。
為了解決這個(gè)問題,業(yè)界各大企業(yè)也紛紛推出了自己的解決方案暇昂,如:
Google Access Proxy (核心模塊Google?Front-End, GFE)
Microsoft Azure應(yīng)用網(wǎng)關(guān)
百度BFE
騰訊STGW+門神WAF
這些產(chǎn)品或解決方案莺戒,就是應(yīng)用網(wǎng)關(guān)。
應(yīng)用網(wǎng)關(guān)
應(yīng)用網(wǎng)關(guān)急波,是跨不同安全域之間訪問的應(yīng)用層互通基礎(chǔ)設(shè)施从铲。
應(yīng)用安全網(wǎng)關(guān),是提供了安全能力的應(yīng)用網(wǎng)關(guān)澄暮,通常來說名段,安全能力是應(yīng)用網(wǎng)關(guān)不可缺少的一部分,所以應(yīng)用網(wǎng)關(guān)泣懊、應(yīng)用安全網(wǎng)關(guān)也常成毂伲混用。
應(yīng)用網(wǎng)關(guān)如其說是一款產(chǎn)品馍刮,不如說是一站式安全能力與交付解決方案信夫。它作為流量出入口,可以執(zhí)行路由選擇與負(fù)載均衡(含前端負(fù)載均衡和后端負(fù)載均衡)卡啰,可以執(zhí)行安全防護(hù)静稻,可以用于全站HTTPS加密傳輸,還可以附加身份認(rèn)證匈辱、訪問控制振湾、運(yùn)維審計(jì)等安全能力。
03?JANUSEC解決了哪些痛點(diǎn)亡脸?
首先押搪,很多企業(yè)內(nèi)部網(wǎng)站往往由于各種各樣的原因(比如人力不足树酪、敏捷上線、過于信任內(nèi)網(wǎng)等)嵌言,缺乏認(rèn)證機(jī)制嗅回,導(dǎo)致內(nèi)網(wǎng)被滲透之后,這些網(wǎng)站對黑客來說毫無招架之力摧茴。
身份認(rèn)證是一切信任的基礎(chǔ)绵载,JANUSEC應(yīng)用網(wǎng)關(guān)可以協(xié)助業(yè)務(wù)將身份認(rèn)證這個(gè)核心安全能力前置(或左移),附加到業(yè)務(wù)中去苛白。JANUSEC v1.0.0提供了五種可選的身份認(rèn)證機(jī)制:
企業(yè)微信掃碼
釘釘掃碼
飛書掃碼
LDAP
CAS 2.0(協(xié)議)
網(wǎng)關(guān)身份認(rèn)證
如果內(nèi)部運(yùn)營網(wǎng)站原本沒有身份認(rèn)證機(jī)制娃豹,這些認(rèn)證機(jī)制可直接在應(yīng)用網(wǎng)關(guān)上啟用,而內(nèi)部運(yùn)營網(wǎng)站可以保持原樣购裙,不用任何改進(jìn)懂版。啟用后,員工訪問內(nèi)部網(wǎng)站躏率,會(huì)要求身份認(rèn)證(跳轉(zhuǎn)到指定的身份認(rèn)證服務(wù)提供商)躯畴,通過后才能訪問后端網(wǎng)站。
其次薇芝,JANUSEC應(yīng)用網(wǎng)關(guān)提供了WAF/CC防御蓬抄。WAF方面,JANUSEC應(yīng)用網(wǎng)關(guān)提供了一個(gè)可供用戶自行配置規(guī)則的基礎(chǔ)設(shè)施夯到,并預(yù)置了常見的Web高危漏洞的攔截規(guī)則嚷缭。與其他WAF相比,JANUSEC應(yīng)用網(wǎng)關(guān)的WAF除了支持傳統(tǒng)的單檢查點(diǎn)的規(guī)則外耍贾,還支持多個(gè)檢查點(diǎn)聯(lián)動(dòng)的組合規(guī)則阅爽,這讓防御更加靈活。
Janusec WAF
CC防護(hù)方面荐开,JANUSEC應(yīng)用網(wǎng)關(guān)可與nftables聯(lián)動(dòng)付翁,并創(chuàng)造性地使用了兩道檢測防線,分別針對快速CC誓焦、慢速CC(如故意放慢速度繞過檢測的攻擊工具)進(jìn)行攔截胆敞。在2020年的一次實(shí)戰(zhàn)對抗測試中,單節(jié)點(diǎn)普通PC服務(wù)器部署的JANUSEC應(yīng)用網(wǎng)關(guān)杂伟,成功攔截近5000個(gè)IP的CC測試集群移层,并將發(fā)起攻擊的IP資源池一網(wǎng)打盡(鎖定預(yù)先配置的時(shí)間)。
Janusec CC
第三赫粥,JANUSEC應(yīng)用網(wǎng)關(guān)提供了基于Web的SSH運(yùn)維通道观话,并提供運(yùn)維審計(jì)能力。簡單的說越平,就是通過瀏覽器就可以發(fā)起安全運(yùn)維频蛔,且做到后端服務(wù)器上執(zhí)行的指令可關(guān)聯(lián)到員工ID灵迫。
Janusec Web SSH
第四,JANUSEC應(yīng)用網(wǎng)關(guān)提供了全站HTTPS加密(可用于全站HTTPS推廣)晦溪,以及ACME自動(dòng)化證書申請瀑粥、續(xù)期、配置的能力三圆。
時(shí)至今日狞换,仍然還有很多企業(yè)在推廣全站HTTPS方面存在困難,而啟用全站HTTPS早已是大勢所趨舟肉。JANUSEC應(yīng)用網(wǎng)關(guān)可助力全站HTTPS的工程化推廣修噪。另一方面,各業(yè)務(wù)自行部署的HTTPS往往存在各種問題(如弱加密算法)路媚,傳輸安全性得不到保障黄琼,這些在網(wǎng)關(guān)上已經(jīng)默認(rèn)解決了。
Janusec證書質(zhì)量檢測
JANUSEC應(yīng)用網(wǎng)關(guān)支持使用免費(fèi)的ACME自動(dòng)證書(自動(dòng)申請整慎、自動(dòng)續(xù)期脏款、自動(dòng)部署Lets Encrypt數(shù)字證書),對于個(gè)人站長或小型企業(yè)而言裤园,可以節(jié)省采購證書的費(fèi)用弛矛。配置時(shí),只需要選擇使用ACME自動(dòng)證書比然,剩下的一切JANUSEC應(yīng)用網(wǎng)關(guān)自動(dòng)來完成(申請、續(xù)期周循、部署生效等)强法。
04?更多特性
JANUSEC應(yīng)用網(wǎng)關(guān)的特性還有:
消除高危端口(正常業(yè)務(wù)不用分配外網(wǎng)網(wǎng)卡或外網(wǎng)IP)
證書管理與私鑰保護(hù),可以做到各業(yè)務(wù)團(tuán)隊(duì)不持有私鑰湾笛,也能正常發(fā)布HTTPS業(yè)務(wù)
支持域名饮怯、域名+二級目錄的路由模式(比如example.com/abc/、example.com/xyz/ 可以指向不同的業(yè)務(wù))
用戶側(cè)負(fù)載均衡(多節(jié)點(diǎn)部署)嚎研、后端服務(wù)器負(fù)載均衡蓖墅,以及輕量級內(nèi)容緩存,起到內(nèi)容加速的作用
除了常規(guī)的HTTP/HTTPS (HTTP2)临扮,還支持Web Socket论矾、TCP、UDP的轉(zhuǎn)發(fā)
靜態(tài)Web服務(wù)器(如果需要發(fā)布靜態(tài)網(wǎng)站杆勇,連后端的Web服務(wù)器都可以省了贪壳,網(wǎng)關(guān)自身就可以發(fā)布)
...?(更多特性,等你來發(fā)掘)
05?發(fā)布地址
JANUSEC應(yīng)用網(wǎng)關(guān)已發(fā)布在?https://github.com/Janusec/janusec(此外蚜退,還發(fā)布了一個(gè)Docker鏡像闰靴,可用于快速體驗(yàn))彪笼。
后記:1.0版本只是一個(gè)新的開始,我們會(huì)繼續(xù)完善蚂且、改進(jìn)配猫,為大家提供更好的解決方案。最關(guān)鍵的一點(diǎn)杏死,它是免費(fèi)的泵肄。