企业内网安全
- 1.安全域
- 2.终端安全
- 3.网络安全
- 网络入侵检测系统
- 异常访问检测系统
- 隐蔽信道检测系统
- 4.服务器安全
- 基础安全配置
- 入侵防护检测
- 5.重点应用安全
- 活动目录
- 邮件系统
- VPN
- 堡垒机
- 6.蜜罐体系建设
- 蜜域名
- 蜜网站
- 蜜端口
- 蜜服务
- 蜜库蜜表
- 蜜文件
- 全民皆兵
1.安全域
企业出于不同安全防护等级的考虑,一般都会将内网划会为办公网、生产网、测试网、互联网、外联网等不同的区域,之间通过防火墙进行隔离
网络安全域是指同一系统内有相同的安全保护需求,相互信任,并具有相同的安全访问控制和边界控制策略的子网或网络,相同的网络安全域共享一样的安全策略
安全域的理论和方法所遵循的根本原则如下:
- 业务保障原则。安全域方法的根本目标是能够更好地保障网络上承载的业务。在保证安全的同时,还要保障业务的正常运行和运行效率
- 结构简化原则。安全域方法的直接目的和效果是要将整个网络变得更加简单,简单的网络结构便于设计防护体系
- 等级保护原则。安全域的划分要做到每个安全域的信息资产价值相近,具有相同或相近的安全等级、安全环境、安全策略等
- 立体协防原则。安全域的主要对象是网络,但是围绕安全域的防护需要考虑在各个层次上立体防守,包括物理、网络、系统、应用、数据等层次;同时,在部署安全域防护体系的时候,要综合运用身份鉴别、访问控制、检测审计、链路冗余、内容检测等各种安全方法实现协防
- 生命周期原则。对于安全域的划分和布防不仅要考虑静态环境,还要考虑不断发生的变化;另外,在安全域的建设和调整过程中要考虑工程化管理
- 资源整合原则。在保障安全的前提下安全域的划分要有利于实现IT资源整合,应充分实现IT资源的共享和复用
2.终端安全
终端安全涉及资产管理、补丁管理、终端准入、防病毒、外设管控、上网行为管理等诸多内容,每一个话题又是一个细分的领域。对企业敏感数据保护有要求的企业,往往在终端上还会部署一些文档加密、DLP类的程序。对于攻击者,一般来讲终端资产的重要性(包括拥有的数据价值)远不如后台服务器,所以攻击者往往都会以终端为跳板进行深入
在企业中,有一些特殊终端电脑需要关注,比如可以直接上网,不受限制等。而恰恰是这类终端电脑,其上面的资料可能比普通员工的重要很多,所以需要重点关注。为其设置特殊的网段使之与其他终端隔离,在该网段部署蜜罐,对进出该网段的流量进行重点监控,对此类人员的入站邮件内容进行更多层的分析,同时在SOC里将此类资产重点标记,机器上所产生的安全事件风险等级提升一个级别,这些都是应对之策。
3.网络安全
网络入侵检测系统
网络入侵检测系统(IDS/NIDS),无论开源还是商业都有不错的选择
异常访问检测系统
有些请求不会匹配IDS策略,比如从分支机构远程桌面访问总部的一台机器,看似一个正常的登录操作,但可能违反了企业内部安全策略,这时候可以借助异常访问检测系统进行检测
基于黑白名单策略及模型的异常访问检测系统就是一个例子。基于黑白名单策略好理解,比如不允许办公前台网段直接远程桌面或SSH登录到办公后台服务器网段,除了应急需要保留几个固定的IP之外,需要设置一个白名单和黑名单。
除了传统的黑白名单策略外,分析网络访问上的异常还有两个切入点:
- 基于访问路径的异常。比如,历史上A和B经常访问C的1433端口,突然有一天D也来访问C的1433端口,这在历史记录中是从来没有的,因此就算一个访问路径上的异常。
- 基于访问频率的异常。比如加入域的办公电脑每天访问域进行认证的次数为个位数,突然某天一个 IP不断地向域进行认证尝试,超过我们系统设置或者学习到的阈值,这就算一个访问频率的异常
拿到网络流量后,我们按时间、源IP、源端口、目标IP、目标端口、应用协议这六个元素来标识访问关系及统计访问频率,通过自学习模式生成白名单和profile规则,按照我们的管控规则自定义黑名单,对后续流量按照白名单、黑名单、profile规则的顺序进行匹配,对高风险事件进行实时告警
隐蔽信道检测系统
很多企业在防火墙上对Ping、DNS都是不做限制的,甚至个人PC及后台服务器均能Ping通互联网。但是黑客能通过ICMP协议的缺陷,将需要窃取的数据分片封装到ICMP协议的Payload中,通过不断地发送Ping包,窃取信息;黑客也可能利用DNS协议的缺陷,将需要窃取的数据分片封装到DNS协议的Payload中,通过不断地发送DNS请求,窃取信息
针对此类问题,建议的解决方案如下:
- 在IDS、IPS上检测异常的ICMP、DNS协议包。此种方式的有效性依赖于特征库。针对黑客常用的工具进行研究分析,定制出特征库是一个方法
- 监控数据包的发送频率。对于ICMP协议,正常业务场景下不会持续不断地发送Ping数据包,如果发现有短时间内不断发送Ping包请求的,都可以作为可疑事件进行排查。但是由于终端上DNS请求数据包较多,而且每个用户的使用习惯不同,此方法不适用于DNS Tunnel的检测
- 可以在防火墙上设置一个ICMP数据包大小的阀值,超过的ICMP包直接丢弃并报警;在防火墙上针对DNS的UDP长度大于512或TCP包长度大于1024的约定进行丢弃并报警
- 防火墙上只允许DNS请求到外网指定的DNS服务器,比如省localDNS或者114.114.114.114;有条件的企业还可以针对DNS协议中的TXT和NULL类型的记录进行阻断。注意有些场景也需要使用TXT记录,比如邮件方面会用到SPF等
4.服务器安全
服务器与终端环境有个明显的不同—服务器需要对外提供服务,会有大量的应用程序来访问,但人在上面的操作却非常少
基础安全配置
首先要做的就是一些基础的安全配置工作,相信每个企业都会有Windows服务器配置和管理规范、Linux服务器配置和管理规范之类的文档,网上也有很多资料可供参考。
Windows服务器的安全加固一般有以下几个要点:
- 安装时磁盘分区选用NTFS,各种文件权限控制需要依靠它
- 网络连接的TCP/IP协议“属性”中,配置“禁用TCP/IP上的NetBIOS”,少量特殊应用可能需要
- 服务器加入域,便于域统一管理安全策略
- 安全策略需要包括账户策略(密码策略、账户锁定策略、Kerberos策略)、本地策略(审核策略、用户权限分配、安全选项)等内容
- 事件日志,需要调整最大日志文件大小
- 系统服务配置,禁用不必要的服务,比如Alerter、Browser、Messenger、Shell-HWDetection、AudioSrv、WinHttpAutoProxySvc、PimIndexMaintenanceSvc、dmwappushsvc、MapsBroker、Ifsvc、wlidsvc、NgcSvc、NgcCtnrSvc、RmSvc、SensorDataService、SensrSvc、SensorService、SSDPSRV、WiaRpc等
- 开启高级审核策略,对账户登录、账户管理、登录/注销、策略更改、特权使用、系统等进行配置
- 关闭自动播放(主要是为了防止通过可移动设备如USB驱动器、外部硬盘、光盘等传播的恶意软件或病毒自动执行),启用密码保护的屏幕保护,关闭自动产生互联网访问流量的功能,安装防病毒及所需要的安全软件
Linux服务器的安全加固一般有以下几个要点:
- 物理安全相关设置,禁用USB存储设备,添加GRUB密码(在系统引导阶段为 GRUB 引导程序设置密码保护,以防止未经授权的用户修改启动选项或进入系统的敏感模式,例如单用户模式或修改内核参数),禁止Ctrl+Alt+Del直接重启服务器。
- 文件系统挂载设备,对/tmp和/var分区增加nodev(阻止攻击者在该文件系统上创建伪装成设备文件的恶意文件,从而防止利用设备文件进行攻击)和nosuid(阻止用户通过设置 SUID/SGID 来提升权限,防止攻击者利用具有特权的可执行文件进行权限提升攻击)选项,对/home分区增加nosuid选项
- 对一些系统文件设置权限,包括括
/etc/crontab
、/etc/securetty
、/boot/grub/grub.conf
、/etc/inittab
、/etc/login.defs
等 - 关闭一些不必要的服务,包括cups、postfix、pcscd、smartd、alsasound、iscsitarget、smb、acpid等
- 开启命令执行的时间戳记录,并将相关的环境变量设置为只读状态,防止被恶意修改
- 开启日志及audit审计功能,配置监控规则,同时设置syslog转发将日志送到SOC
- 口令策略设置,包括口令复杂度、有效期,同时设置超时自动退出、密码尝试次数过多锁定
- 对SSHD进行安全配置(最大重试次、禁用Rhosts认证、指定密码类型、指定MAC算法),同时删除RHOST相关的各种文件
- 调整一些内核参数,禁用LKM,限制/dev/mem,开启ALSR,禁用NAT功能
很多企业开始大量使用虚拟机技术,于是很多安全加固配置可以直接做到模板里,这样新生成的虚拟机就自动具有这些安全配置,再辅助一些运维自动化工具对安全基线配置进行检查,对发现的问题安排跟进处理
入侵防护检测
企业需要在安全基线配置外,有一定的入侵防护检测手段
一种思路是在服务器上安装类似HIDS的产品,开源的有OSSEC,商业的也有不少产品
依靠此类程序,我们在机器上收集了各种各样的事件,接下来需要统一送往SOC平台,在上面定制相应的CASE并产生告警。另外,针对应用日志(比如IIS日志),甚至应用程序本身的日志,也可以通过类似Flume类程序采集到大数据平台,便于进一步分析。
5.重点应用安全
活动目录
活动目录服务器是办公网中最重要的服务器之一,网上各种有关内网渗透的技术文章都会涉及,所以需要重点关注,尤其是域管理员账号的管理。域管理员账号如果在其他机器上登录过(比如管理员给普通用户安装软件),一旦这台机器被控制,通过执行特定程序读取内存即可获取域管理员的账号和密码。域管理员账号密码一旦被拿下,意味着整个内网几乎全部沦陷
邮件系统
邮件系统一般部署在互联网DMZ区,它需要接收外来的邮件,同时将邮件发送到外网的邮箱,但对企业员工来讲,邮件系统可能更类似于一个OA系统的内部平台。邮件系统主要两类安全问题:一类是入站邮件中的恶意URL或附件;一类是出站邮件中可能包含敏感数据,例如客户资料
VPN
目前VPN主要采用四项技术来保证安全,这四项技术分别是隧道技术(Tunneling)、加解密技术(Encryption&Decryption)、密钥管理技术(Key Management)、使用者与设备身份认证技术(Authentication)
1、隧道技术
是 VPN 的核心技术,类似于在公用网络上创建一个安全的点对点连接,通过封装数据包使其在公共网络上进行安全传输。隧道是由隧道协议形成的,分为 第二层隧道协议 和 第三层隧道协议
1️⃣第二层隧道协议
第二层隧道协议工作在数据链路层(OSI模型的第2层),使用的是点对点协议(PPP)进行封装。通过将多种网络协议封装到 PPP 中,再使用隧道协议进行二次封装
第二层隧道协议有L2F、PPTP、L2TP等
2️⃣第三层隧道协议
第三层隧道协议工作在网络层(OSI模型的第3层),直接将各种网络协议封装到隧道协议中,进行传输
第三层隧道协议有VTP、IPSec等
2、加解密技术
数据通信中一项较成熟的技术,VPN可直接利用现有加密方案
3、密钥管理技术
密钥管理技术的主要任务是如何在公用数据网上安全地传递密钥而不被窃取。现行密钥管理技术分为SKIP与ISAKMP/OAKLEY两种。SKIP主要利用Diffie-Hellman的演算法则,在网络上传输密钥;在ISAKMP中,双方都有两把密钥,分别用于公用、私用
4、身份认证技术
最常用的是使用者名称与密码、卡片式认证等方式。真实的VPN入侵案例,往往都是从弱口令、暴力猜解、心脏滴血漏洞开始的。心脏滴血漏洞好解决,升级对应的OpenSSL库就好了,而弱口令和暴力猜解,则需要VPN产品本身来解决
有一种思路是监测VPN的认证日志,当发现短时间内有大量失败时可以进行一定的锁定IP或账号的处理。PPTPD+FreeRadius+MySQL的方案,通过修改FreeRadius认证代码,每个用户在后台数据库保存一个PIN码,只有用户自己知道,而当用户登录认证失败的时候,系统只将当前动态口令以短信方式发送给用户,用户通过组合PIN码+动态口令来实现登录。针对暴力破解问题,每个用户只能尝试3次,否则后面不再发送短信
有的企业将安全控制得比较好,VPN账号默认都停用,当需要VPN时联系后台人员核实身份后做到一键开启,前提是7×24小时都有人在。没有7×24小时条件的企业,也不是没有方法,比如,在企业移动 APP里通过认证(短信、指纹、人脸识别)后自助开启VPN服务也是一种思路
堡垒机
商业堡垒机产品一般都会有上收服务器的用户密码,然后实现自动登录的功能,这中间涉及用户和密码的代填,常常会出现几类安全问题:
- 客户端进程在执行过程中的参数包含用户、密码信息,可能会被本地操作人员发现
- 明文传输的通信协议,特别是RDP转接过程中容易出现
- 服务器的用户密码虽然加密保存在后台,但前台需要解密才能实现代填,如果密钥写死在程序中,经过简单的逆向还原即能发现
6.蜜罐体系建设
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机
在企业内网,我们的对手可能是外部黑客,也可能是内部蓝军,更有可能是恶意的员工,所以我们的蜜罐建设不是简单部署honeyd就完事了,我们需要考虑得更多、更体系化
蜜域名
蜜域名,就是在内网或者互联网DNS上发布一个无法轻易猜到的域名,在DNS服务器配置不存在区域传送漏洞的情况下,一般不会轻易被访问到,别有用心之人可以通过域名暴力枚举来发现。一旦有人请求这个域名,就表明其有一定的可疑性。
蜜网站
上面的蜜域名,可以对应到一个网站,或者这个网站压根就没有域名,也不与其他网站有链接访问关系,也不提供给别人访问,但别有用心之人也可能会访问到。或者就是一个正常的网站,但我们利用ModSecurity在返回给用户的robots.txt内容中动态插入我们的内容,引导恶意爬虫或别有用心的攻击者来访问
蜜端口
蜜端口有两类:一类是传统的Web应用跑在非80端口上;一类是运行TCP/IP应用监听端口。
比如,我们结合Modsecurity来发现针对不常见端口的尝试攻击,选择一个没有对外公布的IP(即没有DNS解析到此IP),开启一个或多个非80端口。注意这个端口的选择也是有讲究的,仔细看一下Nmap默认扫描的端口中包含哪些,你是希望通过常规的端口扫描能让黑客发现这个端口,还是希望黑客通过全端口扫描才能发现
蜜服务
低交互性的蜜服务,用honeyd模拟脚本就可以了
随着Docker的兴起,有些商业蜜罐产品开始利用Docker+iptables转发来做调度,不同的Docker里运行各种不同的服务,比如RDP、SSH、Telnet、MySQL、Redis等,注意后端不再是一个模拟的交互环境,而是一个真实的服务,当我们用自动化脚本对网络上各种服务进行检测时,会触发蜜罐事件
蜜库蜜表
在企业内网真实的数据库服务器上,新建一个假的库或者表,同时记录针对假库假表的访问,这就是我们说的蜜库蜜表了。恶意人员可能关心企业内部的组织结构、薪酬信息甚至生产系统中的客户资料、交易信息等,我们在建假库假表的时候,适当模仿,可能更有迷惑性。
蜜文件
在一些重要的场所,比如机房维护操作间电脑上,放一些精心准备的Word和Excel文件,一旦有人想将这些文件带离,在终端或网络上的DLP程序能及时发现;如果恶意人员使用一些技术手段绕过DLP,在文件打开的时候,也会请求特定的URL来“告诉”我们,这些文件已经泄露出去了。所谓的精心准备的文件,包括几个方面:
- 精心设置文件名、时间、作者属性等,既吸引人又不至于让人怀疑,比如“XX银行股权分配计划.doc”
- 精心放置目录,既不能放到桌面、磁盘根目录这么显眼的地方,也不能隐藏太深
- 文件制作过程中,利用插入图片或链接的方式,设置一个URL带上一些内部标识的参数,同时尽量做到让这些图片或链接非常不起眼
- 文件制作好之后,需要在DLP系统上配置有针对性的策略,以发现相应的泄露行为
全民皆兵
传统的蜜罐在企业内网部署,维护量较大,而且不便于统一管理
全民皆兵是一种防卫思想,最终的目标是将侵略者埋葬在全民皆兵的汪洋大海里。我们借用这个思想,企业里本身就有海量的终端,我们需要在这些终端上进行适当的武装,比如随机蜜罐功能就是一个例子。我们在终端管理软件里加入随机蜜罐功能,后台配置相应策略之后,终端有5%~15%的概率运行 HTTP、FTP服务程序,运行1~2小时后自动退出,当然如果终端上已有相应端口监听,就不会运行。有些商业产品也开始利用类似的思路,在终端上监听一些端口(当然,如果与系统已有端口冲突则放弃),然后将外来访问蜜端口的请求通过SOCKET转发到后端真实的服务器上,同时记录相应的连接、断开情况,包括时间、来源IP、来源端口等,而且这种基于Agent的蜜罐还可以通过后台策略进行统一调度