互联网应用安全
1.端口管控
首先要做的就是端口管控,即在防火墙上严格限制对外开放的端口。原则上DMZ服务器只允许对外开放80、443端口,而且DMZ服务器不允许主动访问外部,访问外部的业务需要一对一开通访问。
有些企业管理员为了方便维护,在防火墙上直接对外开放Telnet、SSH、RDP的端口,这是非常不明智的,只要知道密码,黑客就可以通过这些端口获得交换机/服务器的权限,即使不知道密码,也可以通过暴力猜解密码获得登录凭证。有经验的管理员都知道,只要将SSH对外开放,系统日志就会出现大量的登录失败日志
还有一些FTP、MSSQL、MySQL、Redis、Rynsc、memcached、Elasticsearch、Mongodb等相关应用的端口,也不应该对互联网开放,否则各种自动化的攻击工具或蠕虫也会很快通过这些端口得到相应的权限,甚至直接加密你的数据进行勒索
一般大型企业的互联网出口或者业务系统会比较多,在日常防火墙维护过程中,难免会出现遗漏,所以需要有相应的机制来保障高危端口不对外开放,开放了要及时发现,这就需要端口扫描,常见的工具例如Nmap和Masscan
对于大型企业,建议采用联合方式,例如先用Masscan快速扫描一遍,然后再针对性地用Nmap扫描,以获取更多信息,包括操作系统版本、端口对应的Banner信息等。当扫描程序发现高危端口后,可以实时输出日志给SOC,以便一线人员实时跟进处理。在实际工作中,扫描还需要注意避开业务高峰、调整发包速率参数等,以免引起不必要的麻烦
2.Web应用安全
端口管控工作是基础,做好端口管控工作后,需要将重点放在Web安全上
++1、Web应用防火墙++
与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势。基于对Web应用业务和逻辑的深刻理解,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护
WAF产品有基于硬件的,也有基于软件的,还有基于云的:
- 硬件WAF一般支持透明桥接模式、旁路模式、反向代理模式等部署方式,而且性能好、支持ByPass等,所以是我们的首选。当然,有些防火墙的IPS模块也具备一定的WAF功能,例如CheckPoint;有些负载均衡设备本身也支持SSL卸载和应用防护,例如F5。在实际的部署过程中,需要考虑在哪一层部署,或者结合各产品自身特性综合性地部署。
- 在一些不重要的区域或者基于成本考虑,也可以使用软件WAF,比较著名的有ModSecurity
- 有些企业考虑将业务上云,于是出现了基于云的WAF,其本质上也是软件WAF,结合了一些日志分析、机器学习的技术
整体来讲,可以考虑在前端有硬件WAF的情况下,在服务器上启用软件WAF,结合业务场景对特定请求进行重点防护,以做补充。
++2、入侵检测/防御系统++
WAF更多是基于规则的,有规则就会有绕过的可能。针对这些可能绕过WAF的请求,我们还需要借助入侵检测系统/入侵防御系统(IDS/IPS)类产品对WAF后端的流量进行分析,发现恶意行为
++3、漏洞扫描和渗透测试++
针对暴露在互联网上的应用,我们自己也要开展定期扫描、内外部渗透测试等工作
建议有条件的企业,对一些企业应用经常出现的漏洞进行针对性的扫描,适当的时候可以结合开源代码定制自己的扫描器,这样的好处是便于内部IPS和WAF识别或加白处理
渗透测试往往包含内部测试和外部测试,内部安全人员对业务理解更深,更容易发现问题。考虑到内部人手、技能、经验等原因,企业一般会采购外部渗透服务,有一些是国家测评中心等国家单位,有些是绿盟、安恒、长亭科技这样的企业
3.系统安全
++1、OSSEC++
开源的HIDS产品中,OSSEC比较出名。OSSEC是一款开源的基于主机的入侵检测系统,包括日志分析、文件/注册表完整性检测、安全策略监控、Rootkit检测、实时报警、动态响应等功能
++2、Sysmon++
对于Windows系统,建议使用Sysmon。Sysmon是由Windows Sysinternals出品的Sysinternals系列中的工具,它以系统服务和设备驱动程序的方式安装在系统上,并保持常驻性。Sysmon用来监视和记录系统活动,并记录到Windows事件日志,可以提供有关进程创建、网络连接和文件创建时间更改的详细信息
在大量机器部署的情况下,结合Sysmon+Evtsys收集日志汇总到SOC,定制CASE,也是一个不错的方案
4.网络安全
WebShell通常为了方便都提供反弹shell的功能,即主动外连到特定端口,如果前面我们的防火墙在外连这块控制得不好,就容易出问题。
针对这个隐患,建议在网络上针对主动出站的连接进行记录,与学习到的基线或者自行维护的黑白名单进行对比以发现问题,我们把它称之为"异常流量检测系统",在DMZ环境下只需关注主动外连的情况,相对简单
在DMZ内网活动的时候,流量不一定会被镜像到,这时候需要借助蜜罐来发现异常。在每个DMZ网段内部署一到两个蜜罐,可以有效发现针对内网的扫描和探测行为
5.数据安全
一个SQL注入语法可能经过各种变形,加之利用服务端和WAF特性进行了绕过,但到了数据库这里,一切都是非常清晰的,数据库审计类产品可以轻松发现一些注入行为
数据库审计类产品有两类,一种是基于proxy或插件模式的;一种是基于网络流量的。
基于proxy好理解,应用先连接proxy,再由proxy连接后端真实数据库,这样所有的SQL请求都会被proxy记录下来;而有些数据库有一些审计插件,例如Mcafee开源的MySQL_Audit插件,只需将对应的so文件复制到plugin_dir目录然后在配置文件里启用即可。但这两个方案都对应用有一定的侵入性
稳妥起见,建议使用基于网络流量的数据库审计类产品,即将应用到DB的流量镜像给设备,由设备再还原出SQL语句。商业的数据库审计产品有imperva、安恒等
一个正常的页面输出,也可能会涉及银行卡号、身份证、手机号等客户资料信息,一般应用需要做一些脱敏处理。在一些特殊情况下可能处理得不够好,这时候就需要有一定的监测机制才能发现这种问题。常规的DLP方案在这里需要经过一定的调整,重点不再是分析HTTP的Request,而是分析服务器的 Response 信息。在Response信息里不仅能发现一些客户资料信息,还能发现一些异常的东西,诸如目录遍历、特定WebShell等的问题。当然有些功能也可以在WAF里实现,WAF也有针对Response的一些检测规则。
6.业务安全
还有一个场景需要提到,就是互联网应用中与业务逻辑相关的安全问题,统称"业务安全"。例如,一个简单的登录页面,可能涉及人机识别、验证码、找回密码功能等,而攻击者可能会利用暴力破解、撞库等方式进行尝试请求;再例如,一个简单的查看个人信息页面,涉及Session或Cookie验证,而攻击者可能会通过修改URL中的ID或者修改本地Cookie来看其他人的信息。还有一些是关于接口的安全问题,例如,某分类信息网站的简历泄露事件,就是攻击者组合了3个不同的接口获取相应信息。
这里的对抗方法,更多从风控角度出发,收集access日志、业务日志进行分析,再结合外部情报(黑白名单库)、机器学习等,是一个非常细分的领域
7.互联网DMZ区安全管控标准
安全管控标准 | 检查项列表 |
---|---|
端口管控 | 检测防火墙上是否存在高风险规则 |
扫描是否覆盖所有互联网网段 | |
扫描是否覆盖所有端口 | |
高危端口报警是否与SOC集成 | |
WAF系统 | 域名或所有Web应用是否全覆盖 |
WAF策略是否适用、覆盖应用类型 | |
是否开启实时阻断拦截 | |
日志是否与SOC集成 | |
是否有自动化验证(检测系统配置是否正确、策略是否生效、日志是否正常记录等的自动化程序) | |
自动化验证是否正常触发 | |
SOC事件等级是否正确 | |
签名库是否及时更新 | |
定期检查新上线应用是否启用WAF | |
IPS系统 | 流量是否全量覆盖 |
流量是否有监控 | |
策略是否正确 | |
日志是否与SOC集成 | |
是否有自动化验证 | |
自动化验证是否正常触发 | |
SOC事件等级是否正确 | |
签名库是否及时更新 | |
IPS系统是否纳入每日值班检查内容 | |
漏洞扫描与海量过滤 | 扫描是否覆盖所有应用 |
渗透测试是否覆盖所有应用 | |
外部渗透至少请两家公司进行 | |
应用扫描至少使用两种扫描器 | |
专项漏洞扫描是否有自动化的验证 | |
自动化验证是否每天定时发出 | |
异常管控系统 | 流量是否全覆盖 |
流量是否有监控 | |
日志是否与SOC集成 | |
是否有自动化验证 | |
自动化验证是否每天定时发出 | |
SOC事件等级是否正确 | |
异常流量系统是否纳人每天值班检查肉容 | |
白名单、黑名单等策略是否正确 | |
蜜罐系统 | 蜜罐日志与SOC集成 |
是否有自动化验证 | |
自动化验证是否每天定时发出 | |
SOC事件等级是否正确 | |
蜜罐存活性监控 | |
蜜罐是否覆盖所有区域 | |
数据库审计系统 | 数据库流量是否全部覆盖 |
流量是否有监控 | |
策略是否正确(攻击类和审计类都打开) | |
日志是否与SOC集成 | |
是否有自动化验证 | |
自动化验证是否每天定时发出 | |
SOC事件等级是否正确 | |
数据库审计系统是否纳入每天值班检查内容 | |
DLP系统 | 流量是否有监控 |
策略是否正确 | |
流量是否全部覆盖 | |
日志是否与SOC集成 | |
是否有自动化验证 | |
自动化验证是否正常触发 | |
SOC事件等级是否正确 |
当然,除了上表所提到的技术点之外,还涉及上线流程管控、防分布式拒绝服务攻击(DDoS)等。
常规的上线流程管控包括主机上线前扫描、应用上线前扫描、日志采集、安全防护软件部署、堡垒机纳管等各个环节,建议与ITIL流程结合在一起。而DDoS对抗也是一个很专业的细分领域