ShareWAF功能白皮书:遇见强大的下一代WAF!

时间:2024-03-31 21:23:18

ShareWAF简介

ShareWAF功能白皮书:遇见强大的下一代WAF!

 

ShareWAF是一款创新型WAF产品。

具备众多超越传统WAF的先进、实用功能。

如:前端WAF、大数据防护、JS混淆加密、反爬虫、网页防篡改、设备指纹、网页源码加密、AI风控、防自动化攻击、自定义编程防护等。

实现了对网站的多维度防护,涵盖:浏览器端、传输中、服务器。

ShareWAF旨在成为更强大、更具先进性的下一代WAF。

说明

①本白皮书会对ShareWAF大多数功能进行文字性解说。

②功能标题中会有一到三个☆号,星号越多表示功能越重要。

③由于功能更新换代等原因,部分计划弃用的老旧功能、较不重要的功能、不适合纯文字描述的功能将不在本书中体现。

 

须知

①非所有功能适用于所有网站。

②个别功能可能不兼容某些个别环境。

 

目录

1.JS混淆加密☆☆☆ 1

2.网页源码加密☆☆ 1

3.前端WAF☆☆☆ 1

4.变形元素☆☆☆ 2

5.防扫描☆☆☆ 2

6.Web服务器信息伪装☆ 3

7.AI风控防护☆☆☆ 3

8.自定义编程☆☆☆ 3

9.Web API☆☆ 4

10.网页防篡改☆☆☆ 4

11.正则防护☆☆☆ 4

12.防内容爬虫☆☆☆ 5

13.负载均衡☆ 5

14.内核防护☆☆ 5

15.人机识别☆ 6

16.请求类型限制☆ 6

17.协议头长度限制☆ 6

18.请求后缀限制☆ 7

19.Url关键字限制☆ 7

20.响应码限制☆ 7

21.内容关键字限制☆ 8

22.文件上传限制☆ 8

23.数据库☆☆☆ 8

24.调试模式☆☆ 9

25.数据统计☆ 9

26.实时攻击态势☆☆☆ 9

27.日志☆ 9

28.OEM定制☆ 10

28.守护进程☆ 10

29.集群☆ 11

30.部署方式☆ 11

31.IP黑名单☆ 11

32.URL白名单☆ 12

33.例外☆ 12

34.管理后台☆☆ 12

35.自定义404页面☆ 12

 

1.JS混淆加密☆☆☆

对JS文件和网页中的JS代码,进行自动、动态混淆加密。

功能用途:

提高JS代码安全性,防止代码被分析、复制、盗用等。

所谓动态,是指每次访问,用户获取到的都是不同的加密代码。①

使用方法:

从ShareWAF后台,启用“JS混淆加密”功能即可。

注释:

①如浏览器发生缓存,会影响动态效果。

 

2.网页源码加密☆☆

对网页源码进行加密。

功能用途:

使网页源码呈密文状态①,防网页源码型爬虫。

使用方法:

从ShareWAF后台,启用“网页源码加密”功能即可。

注释:

①查看网页源码时看到的是密文,但不影响浏览器解析。因此各页面元素依然可以被正常解析、渲染。也不影响搜索引擎收录。

 

3.前端WAF☆☆☆

独立运行于浏览器端的WAF引擎,可为网站提供另一重安全屏障。

功能用途:

包含有以下子功能:大数据防护、设备指纹识别、防自动化攻击①、防Xpath定位、防SQL注入、防XSS、防CRSF、防爬虫②、防Iframe嵌套、禁用网页右键菜单。

使用方法:

从ShareWAF后台,启用“前端WAF”相关功能即可。

注释:

①可防自动输入脚本、自动按键软件等。

②前端WAF中的反爬虫用于防链接类爬虫。

③除ShareWAF的前端WAF模块外,另有独立的前端WAF:BrowserWAF,可单独、手动使用。

 

JS混淆加密、网页源码加密、前端WAF几个功能结合,可以实现很好的前端加固效果。

 

4.变形元素☆☆☆

对页面中的某些关键元素名称、ID进行动态变形。

功能用途:

使关键元素如用户名、ID、Email等无法定位①,从而实现防批量注册、暴力**、撞库等自动化攻击,并可用于防上述敏感信息嗅探②③。

使用方法:

从ShareWAF后台,启用“变形元素”功能,并设定要“变形”的元素ID或名称。

注释:

①不可使用password等前端语法关键字。

②变形元素标识是随机且动态的,无法被自动化嗅探。

③如发生缓存,会影响变形元素效果。

④注意防止名称雷同,影响其它内容。

 

5.防扫描☆☆☆

即:防漏扫。

功能用途:

防止各种扫描工具对网站发起的漏洞扫描。防护后将基本扫描不出漏洞信息。

使用方法:

ShareWAF有3种方法可实现防扫描,可同时使用:

①从ShareWAF后台启用“防扫描”功能,并设定扫描特征,即:攻击特征。特征为扫描器标识。

②使用AI风控规则:

从rules.js规则文件中设定“访问规则”:任意页面,一定时间范围时,如0.1分钟,发生大量访问,即可基本认定为是扫描器或类似的自动化攻击工具行为。

③从ShareWAF后台,开启“防应用层DDOS”功能,也与②有异曲同工之效果。

 

6.Web服务器信息伪装☆

自动①修改网站反馈给浏览器或扫描软件的Web服务器响应信息,抹去IIS、Apache、Nginx等信息特征。

功能用途:

隐藏、伪造Web服务器关键信息,防止针对性的攻击,如:溢出。

注释:

①此功能无需操作,ShareWAF运行时自动实现 。

 

7.AI风控防护☆☆☆

ShareWAF中基于传统规则思路的独立防护模块、可高度自定义规则的AI风控功能①。

是又一重Web安全防线,更是易用且强大的风控系统。

功能用途:

通过规则设计,可实现众多Web安全防护效果,如:防SQL注入、防木马上传等。

更可实现风控功能:防自动发贴、防批量注册、防爬虫②、防撞库等。

使用方法:

打开rulemode.js文件,设置enable值为1,然后在rule.js文件中编辑防护规则,重启即可。

注释:

①所谓AI,指用类似人的思维进行条件式规则设计,以此实现的防护,有接近人工智能的聪明、实用效果,为体现此特点,故对此功能冠名AI。

②通过控制访问频率,限制各种爬虫连续访问。

 

8.自定义编程☆☆☆

ShareWAF开放核心功能二次开发接口,可根据自身需求进行自定义编程。

功能用途:

①实现私有化防护功能,可以是很强大的功能,甚至是一个新的防护引擎。

②对已有功能进行微调,比如:网页源码加密算法、响应头等。

③实现自己需要的个性化功能,比如:以Syslog协议传输日志到远程日志服务器。

使用方法:

①编程语言限:JavaScript。

②开发接口文件为:developer.js,内有相关说明及例程。

9.Web API☆☆

ShareWAF有Web API接口功能,可通过独立的接口服务器提供服务。

功能用途:

接口功能涵盖:注册、登录、配置、文件上传等多方面,可用于实现ShareWAF后端UI二次开发。

 

10.网页防篡改☆☆☆

功能用途:

可将静态①文件缓存于ShareWAF,将ShareWAF当为一个Web服务器。如此,即使原网站服务器文件被非法修改、甚至网站被删除,也却并会不影响正常访问,因为原网站只是影子服务器,真正的Web服务器其实成了ShareWAF。

另外,此功能也可用于访问加速,规避因为部署WAF带来的访问性能影响。

使用方法:

①从ShareWAF后台,启用“网页防篡改”,即:缓存功能。然后设定要缓存的文件后缀名,再启用“缓存更新”,最后访问被保护的网站,访问后的文件就缓存到ShareWAF了。

②也可使用手工操作方法,相较更为简单,且更适用文件量较大的情况:直接复制网站文件到ShareWAF目录下Cache目录中的“网站域名”子目录,即可。

注释:

①适用于静态文件,如:html、js、css、图片、视频等。Asp、php等动态文件不可用。

 

11.正则防护☆☆☆

基于正则表达式①的基础防护功能。

功能用途:

正则表达式匹配,是WAF用于安全防护的传统手段,是基于规则的基础防护方式。

通常用于防护:Sql注入、Xss、木马上传、拖库、Cookie注入等。

使用方法:

从ShareWAF后台,启用“正则防护”即可。

正则规则置于regexp.js文件中,打开即可对规则进行编辑。

注释:

①使用标准正则表达式语法。

 

12.防内容爬虫☆☆☆

ShareWAF独立的功能子模块。通过动态字体加密技术,防内容型爬虫。

功能用途:

通过建立动态字典文件①,并结合字体路径加密技术。实现:防网页文字拷贝。

防护效果:使爬取失败。拷贝的文字内容中,将含有大量乱码,无法正常使用。

使用方法:

独立部署防内容爬虫功能模块。

注释:

①ttf、woff等字体文件。

 

13.负载均衡☆

ShareWAF独立的负载均衡子模块。

功能用途:

有状态①负载均衡、分流。

使用方法:

独立部署负载均衡功能模块。

注释:

①有状态指:带有类似登录的操作行为时,目标总会被到负载到同一服务器。

 

14.内核防护☆☆

对于常见网络攻击,ShareWAF有多重防护,如:前端WAF防护、大数据防护、AI风控防护、正则防护,以及最后的内核防护。合而为:ShareWAF五大防护引擎。多重防护的存在,可以为网站建立起多道防线,提供更高的安全强度①。

功能用途:

内核防护也是基于规则的防护,同样用于防护:Sql注入、Xss、Cookie注入等常见攻击。

使用方法:

在后台“攻击特征”中配入防护规则,启动ShareWAF后,防护即会生效。

注释:

①安全没有100%的绝对,从来都是相对而言的。攻防从来都是在不断的对抗中。多一重安全防护,就会少一成被绕过的可能性、就会增加一分攻击成本,当攻击成本高到一定程度,就实现了安全。所以,多重防护引擎,带来的是更高的网站安全性。

 

15.人机识别☆

根据特征和行为,自动识别大量三方脚本和软件访问、自动判断人机行为。自动拦截脚本和软件发起的访问。

使用方法:

从ShareWAF后台启用“人机识别”即可。

注释:

①前端WAF的防自动化攻击、防爬虫,也具备识别机器访问能力,如要反人机,建议也启用。

 

16.请求类型限制☆

功能用途:

限制指定类型的请求方法,比如:post、put等。

使用方法:

①打开permit.js,设置enable值为1;

②在forbidden_request_type中设置要限制、禁止的请求类型。

③重启ShareWAF。

 

17.协议头长度限制☆

功能用途:

限制指定协议头长度,超出长度则请求无法通过。

使用方法:

①打开permit.js,设置enable值为1;

②在req_headers_key_length_limit中设置要限制的请求头类型、长度。

③重启ShareWAF。

 

18.请求后缀限制☆

功能用途:

禁止指定后缀名的请求路径。

使用方法:

①打开permit.js,设置enable值为1;

②在forbidden_request_extname中设置要限制的请求后缀名。

③重启ShareWAF。

 

19.Url关键字限制☆

功能用途:

检测到Url中出现指定关键字时,禁止访问。

使用方法:

①打开permit.js,设置enable值为1;

②在url_fliter中设置要限制的关键字,可以为中英文,甚至乱码。

③重启ShareWAF。

 

20.响应码限制☆

功能用途:

限制指定响应码内容反馈给客户端。

使用方法:

①打开permit.js,设置enable值为1;

②在forbidden_response_code中设置要限制的响应码,如:404、405。

③重启ShareWAF。

 

21.内容关键字限制☆

功能用途:

当检测到页面中有指定关键字、语句时,限制网页显示。

使用方法:

①打开permit.js,设置enable值为1;

②在content_fliter中设置要限制的关键字或语句。

③重启ShareWAF。

 

22.文件上传限制☆

功能用途:

限制指定后缀文件的上传。

使用方法:

①打开permit.js,设置enable值为1;

②在upload_fliter中设置要限制的文件后缀名。

③重启ShareWAF。

 

23.数据库☆☆☆

ShareWAF有三种数据存储方式:MongoDB数据库、Sqlite数据库、无数据库:文本存储。

①MongoDB:适用于集群部署时使用。

②SQLite:适用于单机部署时使用。

③文本数据存储:适用于嵌入式系统部署、无数据库部署时使用。

使用方法:

①打开config.js,设置use_mongodb值为1,并在mongodb_server字段中配置好远程地址,即启用MongoDB。启用时,配置信息、攻击记录、访问记录信息都会存储在MongoDB数据库中。

②当设置use_mongodb值为0、use_sqlite3值为1,即启用本地Sqlite存储,攻击记录、访问记录会存储在本地sqlite数据库中。

③当设置use_mongodb值为0、use_sqlite3值为0,即不启用数据库。攻击记录、访问记录会存储在log目录下的日志文件中。在此种模式下,ShareWAF后台中无法进行数据统计、展示。

 

24.调试模式☆☆

ShareWAF有调试模式。在初始部署阶段或出现问题需要调试时,调试模式很有用。

功能用途:

调试模式下,ShareWAF运行时会输出各种信息,以供调试、分析、确定问题原因,为解决问题提供有力帮助。

使用方法:

打开config.js,设置debug值为1,重启即进入调试模式。

 

25.数据统计☆

ShareWAF有丰富的数据统计功能,用于展示:访问数量、各种攻击数量、一定时间范围内的攻击数量、攻击详情、满足一定条件的攻击详情等。以及可对各种数据以饼型图、柱型图、线型图进行展示。

使用方法:

进入ShareWAF后台,切换到“数据统计”即可查看、使用相关功能。

 

26.实时攻击态势☆☆☆

功能用途:

用于大屏展示,以3D效果实时显示当前网站访问、网络攻击态势。

访问效果会以小的动画线段在3D地图中显示。

攻击效果会以告警的方式、以定位动画并配告警声音在3D地图中发出显著提醒。

使用方法:

从ShareWAF后台“实时攻击态势”打开。

27.日志☆

①操作、审记日志:记录帐号登录成功、失败、操作等行为。以及permit.js中相关功能的记录。日志记录在log.txt文件中。

②调试日志:此需手工操作,使用命令行重定向,可在启动调试时将调试信息写入到文件中做为日志保存。

 

28.OEM定制☆

ShareWAF支持OEM定制。

功能用途:

实现自定义产品名称、数据库、链接等。

使用方法:

①打开oem.js,编辑oem_name可定制软件名称。限使用英文名称。修改会影响启动时显示的软件名、拦截界面中的软件名及sqlite数据库名。

②打开oem.js,编辑oem_url可定制软件官网链接。修改会影响启动时显示的链接,以及访问到未配置保护的域名时的默认跳转链接。

③打开admin目录下的oem.js,可编辑oem_title、oem_name、oem_url,修改分别影响ShareWAF后台、ShareWAF管理员后台中的标题、名称、链接。

以上OEM修改,仅影响软件名、链接等。如要进行更深一步OEM定制,实现很不一样的展示,可使用WEB API等,进行功能、UI再开发。

 

28.守护进程☆

功能用途:

为防止ShareWAF意外中止服务①,以及在远程终端关闭时不中断服务,可使用ShareWAF的守护进程②。

ShareWAF的守护进程程序为:daemon.js。

当用它启动ShareWAF时,每隔10秒就会对ShareWAF进行一次检测,如发现异常,会自动重启ShareWAF。

使用方法:

①守护进程运行依赖于一个nodejs模块:forever,因此使用前需先安装此模块:

Npm install forever -g

②然后通过守护进程启动ShareWAF:

Node daemon.js

注释:

①ShareWAF稳定性颇高,然为高稳定性考虑,使用此方案以为达到有备无患。

②也可直接使用forever start sharewaf.js启动。

③调试阶段请勿使用此方式启动ShareWAF,不方便。

 

29.集群☆

ShareWAF有集群功能。

功能用途:

集群可提高程序稳定性、提升性能。

当集群启用时,会有多个ShareWAF进程同时启动,共同提供功能服务。如其中某个甚至某几个进程出错或意外关闭,其它进程还可以正常工作,并不影响整体功能。

同时,多进程还会最大化的提升系统资源利用率,提升ShareWAF整体性能。

使用方法:

打开config.js,设置cluster_enable值为1,重启即可。

 

30.部署方式☆

ShareWAF可以软件、云、硬件的形式,以反向代理、透明代理、旁路方式进行部署。

解释:

①默认部署是软件WAF。也可视其为云,可做为公有云WAF、私有云WAF使用。因为ShareWAF本身即设计为了云模式,支持128个网站接入。

②如果使用Linux类系统机器,可以制作为硬件WAF。还可以配Bypass网卡,做成无视断电、死机的高可用硬件WAF。

③如果是Linux类型机器或硬件,可以进行透明代理部署,实现无感知接入。

 

31.IP黑名单☆

功能用途:

IP黑名单,自定义屏蔽特定IP。

使用方法:

在ShareWAF后台,将要屏蔽的IP填入IP黑名单即可。

 

32.URL白名单☆

功能用途:

测试使用,对比保护前后效果。

或者对某些不希望保护的路径进行放行。

使用方法:

在ShareWAF后台,将要列入白名单的URL路径或路径特征①填入URL白名单即可。

解释:

①注意防止特征雷同而产生漏保护。

 

33.例外☆

功能用途:

如某一服务器有多个网站,部署ShareWAF后要共用ShareWAF端口,如:80。而不希望对其中某个或某几个网站进行保护,可使用“例外”功能。

使用方法:

打开config.js,在skip_to中依例填入要“例外”的网站,重启ShareWAF即可。

 

34.管理后台☆☆

ShareWAF后台,默认指用户后台。此外还有管理员后台。

ShareWAF后台可以进行自主注册帐号、登入、配置、查看报表等操作。

而管理后台,是为方便管理员操作而存在的,可用于管理网站、监测服务器信息、重启ShareWAF等操作。

使用方法:

用管理员帐号登入管理后台,即可进行各种操作。

默认管理员帐号、密码:admin。

 

35.自定义404页面☆

功能用途:

如标题名,即:自定义404页面。如未启用此功能,则404页面是ShareWAF默认的404错误页。

使用方法:

在ShareWAF后台,配置404页面地址即可。注:需是Web服务器上存在的页面地址。