护网行动,攻击方的专业性越来越高,ATT&CK攻击手段覆盖率也越来越高。这对于防守方提出了更高的要求,护网行动对甲方是一个双刃剑,既极大地推动了公司的信息安全重视度和投入力量,但同时对甲方人员的素质要求有了很大提升,被攻破,轻则批评通报,重则乌纱帽不保;关于蓝方防守的文章已经很多了,作为参与了2年护网的甲方,总结了一些防御的基本要素,简单明了,抛砖引玉,给大家参考。
一:护网设备套餐
在护网前,各种安全公司都会推销花样很多的护网套餐,如果不差钱的主当然是多多益善,但是相当多的企业估计也没那么土豪,所以从自身条件出发选择一个合适的护网套餐,必须的套餐包括:防火墙+WAF+蜜罐+威胁监测系统(流量分析回溯或态势感知类)+安全值守(一个人的信息安全部),这个我认为是所有企业必须上的;那么豪华套餐,就包括防火墙+WAF+蜜罐+威胁监测系统(流量分析回溯或态势感知类)+威胁情报+ 主机HIDS +安全服务(渗透测试、安全监控组、分析组、处置组、报告总结组)等。各个企业可以根据自己情况,有针对性的上一些设备,这些设备和服务,不只是为了护网临阵磨枪,而是真的是要常态化运营。
虽然有了这些设备,还是万里长征走完第一步,很多企业啥设备都上,用简单的产品堆叠,最终效果不好,影响了老板对信息安全的看法,会认为信息安全团队能力不行,所以有了设备,还需要响应的策略、配置和服务进行运营好。
二:拦截策略优化
对安全设备的策略优化,是一个很细且长期的过程,一般安全设备商,他们的kpi是卖设备,让设备去上线验收,而甲方的kpi是要防止信息安全事件的发生,所以这就是一个矛盾,除非特别有钱的甲方,常驻一个安全团队来进行运营,一般很多公司,都是靠甲方自己去做安全策略的优化,下面我们分这几个维度来分享一下几个经验技巧:
- 拦截事件分类
- 防火墙拦截策略
- Waf拦截策略
- 流量监控类策略
拦截事件分类这块,我们一定要有这么三类:阻止会话、阻止会话并短暂封堵IP、阻止会话并长期封堵IP;防火墙是边界全部防护,waf则是针对具体每个站点来设置策略,为了误报,设备上线时候,乙方都推荐不会用封堵类策略,但是在实战场景是一定要有封堵类的策略的,因为在护网中,红方高手很多,而且可能有很多我们不知道的神兵利器,我们的设备有可能能够防住他一招两式,但是没法保证说对方所有绝招能够拦截,所以我们在策略上也要进行封堵,发现敌人破绽就封堵ip立马让其下线,敌人要继续攻击就得换个ip来,这样抬高了攻击成本。
那么问题来了,如何封堵ip并不产生误报了?封堵ip如果是靠人工一个一个判断再操作也是不可取的,所以一定要进行策略优化,自动进行封堵操作。如何自动化封堵,我们将下一个文章详细介绍。
2.1 防火墙拦截策略
首先在防火墙上,对来自于互联网的以下端口拦截并永久封堵(或长期封堵ip)的策略
端口 | 策略 | 封堵 |
445 | 拦截 | 永久封堵 |
3389 | 拦截 | 永久封堵 |
1433 | 拦截 | 永久封堵 |
6379 | 拦截 | 永久封堵 |
2181 | 拦截 | 永久封堵 |
11211 | 拦截 | 永久封堵 |
27017 | 拦截 | 永久封堵 |
50070 | 拦截 | 永久封堵 |
11211 | 拦截 | 永久封堵 |
5900 | 拦截 | 永久封堵 |
以上为高危端口包括远程桌面、VNC、常见数据库服务等端口,以上是攻方必攻之地,对于这样的端口,一定要封而且要封堵来源IP。
对于数据中心外联互联网,一定要采取限制策略,禁止外联互联网,对于很多企业来说,由于历史原因,可能直接放通了互联网的对外访问,那么就要仔细梳理,哪些是必要的访问,要采用白名单方式。
服务器外访,有个攻方常用的攻击方式,就是dns回显式注入,那么就将dnslog.cn等域名加入拦截和监控。
2.2 WAF拦截策略
WAF在使用中最大的问题也就是误报与漏报,同时,waf绕过是红方必然要求的一个技能,所以在实战中,waf是必然会被绕过,但是不代表waf策略就不需要优化,那么waf策略优化可以有这么几点:
2.2.1 user-agent防止扫描器
红方在踩点过程中,必然要用扫描器,连接高危端口的扫描器方式在上面的防火墙策略已经拦截,那么就开始用web应用扫描器,常见的扫描器user-agent如下,策略都是永久封堵。
类似如上user-agent包含上述关键字的,都将拦截并封堵源ip,在这些user-agent中,有一个非常重要的user-agent为python,这个对于很多扫描甚至是poc都是用python开发,所以来接这个很有必要。
2.2.2 url参数中防止高危POC攻击
很多高危漏洞一出来,针对该漏洞的poc扫描就非常多,针对这些poc的扫描攻击,可以建立一个url列表来拦截,waf本身策略更新也有这方面的配置,可以拦截,但是由于waf策略本身是需要有通用性,他会将策略做的更严格,我们自定义策略可以更宽松,比如前段时间F5的远程代码执行漏洞爆发 (CVE-2020-5902) ,那么我们已经确定没有使用F5,或者F5不会暴露在公网,那么我们可以将url关键字如下进行拦截,发现即封堵。
/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
常见的poc攻击url特征清单如下,以下基本上发现为攻方必然扫描的url,当然有一些需要根据企业情况分析,比如我们企业没有使用php作为开发语言,那么大量php的漏洞可以直接拦截并封堵:
url特征 |
/phpmyadmin |
/wls-wsat/CoordinatorPortType |
/_async/AsyncResponseService |
/_async/AsyncResponseServiceSoap12 |
uddiexplorer/SearchPublicRegistries.jsp |
/_async/ |
bea_wls_deployment_internal |
NCFindWeb?service=IPrealertConfigService&filename |
action=nc.ui.iufo.release.InfoReleaseAction&method=createBBSRelease&TreeSelectedID=&TableSelectedID= |
/uapws/service |
.svn/format |
WEB-INF/web.xml |
/cgi-bin/libagent.cgi |
/config.php |
fckeditor/editor/filemanager/connectors |
/FCKeditor/editor/filemanager/connectors/asp/connector.asp |
/FCKeditor/editor/filemanager/browser/default/browser.html |
fckeditor/editor/filemanager/connectors/test.html |
/secure/ContactAdministrators!default.jspa |
/phpinfo.php |
/ispirit/interface/gateway.php |
/weaver/bsh.servlet.BshServlet |
/wwwroot.rar |
/console/ |
/wls-wsat |
/solr/admin/cores?wt=json |
/install.txt |
/install.php |
/plugins/weathermap/editor.php |
/?q=node&destination=node |
/hedwig.cgi |
/device.rsp?cmd=list&opt=user |
/node/?_format=hal_json |
/_users/org.couchdb |
/mailsms/s?dumpConfig=%2F&func=ADMIN%3AappState |
mailsms/s?func=ADMIN:appState&dumpConfig=/ |
/plus/download.php |
/druid/index.html |
org.apache.dubbo |
/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp |
http请求中高危特征值字段
还有一类poc,是通过http请求中包含恶意代码来执行的,比如struts2漏洞,比如fastjson漏洞,所以也需要对类似特征值进行防范,比如我们用部分包含特征样例如下:
part=”com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource”,part=”java.lang.ProcessBuilder”,part=”command” |
part=”getRuntime”,part=”exec”,part=”java.lang.Runtime” |
part=”type=java.net.InetSocketAddress” |
part=”dataSourceName=rmi” |
part=”#ognlUtil=#container.getInstance(@com.opensymphony.xwork2″ |
part=”.OgnlContext”,part=”DEFAULT_MEMBER_ACCESS” |
2.2.3信息泄露类的扫描
对于部分扫描,在很多waf产品策略中,可能将其列为低危,或者仅仅拦截而不封堵
那么我们应该自定义一些信息泄露的url,直接拦截并封堵,样例如下:
/configuration/config.php |
/.bash_history |
/.git/config |
/.htpasswd |
/admin.rar |
/admin.sql |
/backup.gz |
/backup.rar |
/backup.sh |
/backup.sql |
/backup.zip |
/database.rar |
/database.sql |
/jmx-console/ |
/resin-admin/ |
/shell.asp |
以上策略都是拦截并封堵ip,这个在我们实战中很有效,基本上能够封堵大部分的扫描,如果能够将扫描拦截住,那么就将大部分的低层次的攻击给拦截了。
2.2.4流量监控类策略
上面也说到了流量监控设备如流量分析回溯、态势感知、威胁检测系统,基本上还是一个必需品,这些产品主要是流量镜像方式,那么他们自带了一些特征库,可以监测到经过了安全设备之后还遗存的攻击,所以上面的所有特征库,依然适用于流量监控设备,当流量监控设备上设置了如上告警特征,依然还存在,那么就要反过来查查防火墙和waf的配置,是不是策略没配置对,还是说站点没配置全等等。
三:日志统一收集并自动化处置
推荐使用日志收集系统来实现防火墙、waf、蜜罐等统一的日志收集和分析,并将攻击ip进行统一呈现,我们已经使用了graylog来做这个事情,详细可见我的另外一个文章《利用graylog收集各类安全设备日志实现大屏展示》,同时将攻击ip统一呈现还有一个好处,可以实现自动化的永久封堵,我们是通过脚本将攻击ip入库,然后脚本调用防火墙api,每5分钟实施黑名单永久封堵。
这样的好处是显而易见的,攻击者在没有摸清你的家底之前,只有通过不断的探测来摸底,但是探测过程中被你不断的封堵ip,那么他就知道碰到行家了,按照攻击队找软柿子捏的惯例,他们是不会再一个价值不高的目标花费太大的时间和精力,这个对于勒索、黑产团队也同样适用,黑产团队也是广撒网的方式来攻击,比如攻击是有成本的,只有当安全达到一定基线,那么就能够减少很多不应该的信息安全事件。
如上事情优化完成之后,就进入了安全监控、分析阶段,这个时候需要专家值守,通过全量日志分析系统,提升安全分析效率,输入第三方护网情报、自己的护网客户发现的问题,及时共享,联动处置。
如上为蓝方护网期间经验总结,其实不只是护网期间,作为常态化安全运营,均需要上述的一些基本优化动作,做完上述动作,基本上护网可以达到70%的不出事情,剩下的30%,一个是对手太强大,0day层出不穷,另外就是我们的应用开发,包括弱口令、运维漏洞、钓鱼邮件等依然存在,这些漏洞的解决,也不是一朝一夕,也是需要长期的过程。
2020年8月16日晚,写于护网前一天。
发表评论
您还未登录,请先登录。
登录