*本文原创作者:康康你秋裤穿反啦,属于FreeBuf原创奖励计划,未经许可禁止转载
本篇文章涉及到的知识点包括:IDS/IPS/防火墙的区别与部署位置;镜像端口、堡垒机的位置和注意细节;ACL访问控制列表和端口安全、VLAN安全,以及靶场以及日志采集的实施细节。
自己所在高校的实验室要有一个类似用机器学习方法来检测网络用户异常的相关项目,需要搭建一个攻防平台来采集日志数据,大名鼎鼎的数据集UNSW-NB15就是用类似方法取得的。本篇文章要把攻防平台搭建全过程以及日志搜集方法分享给大家。
值得注意的是,攻防平台的搭建其实是企业里网络安全建设的缩影,许多企业可能还在网络安全建设方面无从下手,不用慌张,本片文章将会对基本的防御设备的诉求、功能、和部署用法开始讲起,如果广大企业用户和安全运维从业人员能从本篇文章有所收获,那我非常开心啦,嘿嘿(●ˇ∀ˇ●)
话不多说,直接上拓扑
哈哈,这里将攻击区当作互联网,防火墙右侧模拟网络内部网络,可能会和实际部署有偏差,不要着急,下面会对每个过程以及设备具体讲解。
用途: 用来检查网络中有无攻击存在,基于流量型的,由于实验室与绿盟有合作,本次采用绿盟的NIDS设备,检测范围最大可以从数据链路层到应用层,如果发生攻击,会通知管理员,并记录日志,然后就没有然后了,对头,就是告诉你一声“你网络被攻击了哈”
用途: 应用级别的防火墙,规则实时更新,可以检测网络里面的发生的攻击,从网络层到应用层发生的攻击都可以识别,并实施阻断丢弃攻击报文。还可以进行一些应用管理、比如限制企业用户没事干打英雄联盟之类的功能也可以实现(lll¬ω¬)。
部署: 注意区分场景,有时候会被当作防火墙来部署,可以选择是否自带NAP/NAPT,可以选择DMZ区域等资产管理。0.0.0.0代表IP全部关心。部署在网络级别防火墙之后,一进一出。相当于对比较鸡肋的网络级防火墙的一个强大的功能扩充,这样就阻断了互联网和内网之间的攻击。本次没有采用该设备NIPS,但是还是给大家了解一下
用途: 啥东西,名字这么长,其实说白了就是漏洞扫描设备,可以远程检查并扫描网络里的服务器、电脑、手机、笔记本、甚至路由器、交换机上面存在的漏洞。比较良心的是,它还给出了修复方案和设备安全配置规范指南
用途: 在互联网与网络边界之间,实时监测不同网络间的攻击,并经行阻断,比较特别的是,实验采用绿盟的NF,可以检测到应用层的攻击,并阻断,听起来和IPS很像对不对? 后面我介绍他们之间的区别 。
部署: 网络与网络边界部署,一进一出,0.0.0.0代表全关心。值得注意的是,流量清洗设备在防火墙前面,IPS在防火墙后面,也可以选择在DMZ部署(前面提到过DMZ,DMZ可以理解为一个不同于外网或内网的特殊网络区域。DMZ内通常放置一些不含机密信息的公用服务器,比如Web、 Mail、FTP等。这样来自外网的访问者可以访问DMZ中 的服务,但不可能接触到存放在内网中的公司机密或私人信息等。即使DMZ中服务器受到破坏,也不会对内网中的机密信息造成影响。)
1.内网可以访问外网,内网的用户显然需要自由地访问外网。在这一策略中,防火墙需要进行源地址转换。 2.内网可以访问DMZ,此策略是为了方便内网用户使用和管理DMZ中的服务器。 3.外网不能访问内网,很显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。4.外网可以访问DMZ,DMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。 5.DMZ不能访问内网 很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。有经验的一下就想起来SSRF泄露内部信息,对不对?
用途 :包含访问控制,通常是运维人员用token以及动态密码来访问,用于检查公司内部管理员、操作员的恶意操作或者误操作,操作记录全程备份,进行严格的权限分配,避免不正当的操作,通常日志会被发送到异地服务器,作为取证和追责。其实这种设备挺有用的,大多数公司应该备一个,对于公司敏感信息管理、代码管理都有好处, 防止什么“删库跑路”之类的事情发生。 能力强的可以把它改造成git代码托管平台两用,
部署: 典型部署为在开发服务器、服务器集群与运维人员之间。分配正常IP,运维人员只能通过堡垒机来操作网络设备。
值得注意的事情和区别:
1. 其实堡垒机可以不用买的,除非你财大气粗非要买,其实,只要一般电脑配置可以,可以装一个开源的堡垒机系统 jumpserver,这种开源软件一大把舒服的很,很多甲方了解的信息不对称,花这些冤枉钱。
2.我不是要说防火墙和IDS、IPS之间的区别么?我这里说一下,其实现在很多乙方的安全硬件设备本质都!是!一!样!的!。
一个遵循冯诺依曼的设备,刷一个自家的unix based 、linux based这种操作系统。里面有从网络层到应用层攻击的检测、攻击阻断功能, 实时更新的规则是它们的灵魂 ,只不过是IDS故意阉割阻断功能、IPS和防火墙网络功能、部署位置之间有一丝差异,其余都差不多,但为什么还要分这么多产品呢?因为赚钱啊
——康康你秋裤穿反啦
好了,希望硬件安全产品厂商不要对号入座,赶紧跑。
这一片内容其实是网络设备集成、路由交换里面的东西,一般是网络工程师做组网设计时用的。巧了,鄙人就是网络工程的同学。
网络VLAN划分示例:
interface Vlan110 mac-address 0009.7c35.c403 ip address 192.168.3.1 255.255.255.0 ip ospf cost 10 standby 11 ip 192.168.3.1 standby 11 priority 200 standby 11 preempt
这里说重点,其他的一笔带过。
拓扑设计要求是192.168.6.0是用户区域有g/0-g/3,分别是靶机服务器、一个镜像接口和另一台安全设备,其他用户都在剩下的接口中,划分为vlan6
192.168.7.0是黑客攻击区域,划分为vlan7, 黑客可以访问用户和服务器,用户不能访问黑客,问在交换机中如何配置ACL访问控制列表实现这一功能?
我摸索了两天,才终于准确满足了这一需求:
#ip access-list standard 1 Ruijie(config-std-nacl)#deny 192.168.7.0 0.0.0.255 Ruijie(config-std-nacl)#permit 192.168.6.0 0.0.0.255 Ruijie(config-std-nacl)#permit any Ruijie(config-std-nacl)#exit Ruijie(config)#int range g0/4-12 Ruijie(config-if-range)#ip access-group 1 in Ruijie(config-if-range)#exit Ruijie(config)#int range g0/1-2 Ruijie(config-if-range)#ip access-group 1 in Ruijie(config-if-range)#exit Ruijie(config)#int range g0/1-2 Ruijie(config-if-range)#ip access-group 1 out Ruijie(config-if-range)#exit Ruijie(config)#int range g0/4-12 Ruijie(config-if-range)#ip access-group 1 out
好了,如果你是行业内的,看一看,如果这超出了你研究的领域,可以跳过。
switch(config-if)# interface fastethernet 0/1 进入一个端口 switch(config-if)# switchport-security 开启该端口安全功能 switch(config-if)# switchport-security maxmum 1 配置端口的最大连接数为1,最大能配置为128 switch(config-if)# switchport-security violation shutdown 如果违反规则就会关闭该端口
这是默认的锐捷的端口保护,有效缓解ARP欺骗和网络过载,ARP欺骗还可以在DHCP里面设置,有兴趣的朋友自行搜索。有关VLAN安全:
vlan 内部间的安全措施有很多种,这里介绍一种临时防止蠕虫散布的方法
建立VACL,使同一个vlan内部的机器不能互访,
R1(config)#vlan access-map map-name[sequence] R1(config-access-map)#match ip address{acl-number | acl-name} R1(config-access-map)#match ipx address{acl-number | acl-name} R1(config-access-map)#match mac addressacl-name R1(config-access-map)#action {drop |forward | redirect} R1(config)#vlan filter map-name vlan-listvlan-list私有vlan
我们的IDS要通过镜像端口才能部署 , 这样,IDS就可以观察到所有数据了, 所有流量数据都会被交换机给IDS另外发一份
镜像的意思就是监视的意思,把一个端口的通讯数据用另一个端口给复制出来,常常用于需要对那个端口的通讯进行监视才使用。镜像端口既可以实现一个VLAN中若干个源端口向一个监控端口镜像数据,也可以从若干个VLAN向一个监控端口镜像数据。
端口镜像(port Mirroring)功能通过在交换机或路由器上,将一个或多个源端口的数据流量转发到某一个指定端口来实现对网络的监听,指定端口称之为”镜像端口”或”目的端口”,在不严重影响源端口正常吞吐流量的情况下,可以通过镜像端口对网络的流量进行监控分析。在企业中用镜像功能,可以很好地对企业内部的网络数据进行监控管理,在网络出故障的时候,可以快速地定位故障
observe-port 1interfaceGigabitEthernet0/0/21 //观察口。 interface Vlanif1ipaddress 192.168.7.2 255.255.255.0 interface GigabitEthernet0/0/10 portlink-type access //划分接入方式 portdefault vlan 7 //划分归属VLAN port-mirroring to observe-port 1inbound //将此口的数据镜像到观察口,下同。 port-mirroring to observe-port 1 outbound。
服务器一台 :ubuntu12.04 nginx1.4+php5.3.4+mysql5
里面放上我们近年来常见的包含漏洞的旧版本CMS ,比如dedeCMS、FineCMS之类,系统版本低一点我们可以玩matespolite,数据库用root账户连接,平时可以玩UDF、MOF提权,剩下还有什么注入啊、文件包含啊。。不多说了
用户主机两台 :分别是ubuntu12.04和windows7未打补丁版
两台设备均开放SMB协议,什么永恒之蓝啊你懂的。。不多说了。
测试:
我们可以测试分别把IDS 打开,防火墙打开或关掉的攻击效果,攻击手段 不限于web安全以及系统组建提权,从而判断安全设备的作用。答案当然是防火墙对于内网之间的攻击当然没用啊,但是IDS会记录日志。
流量搜集:
别忘了我们搭建攻防平台的初衷是为了搜集日志的
在服务器靶机和用户的电脑上安装fiddler和wireshark,事后将日志丢给数据清洗、打标那帮人处理,其实数据的清洗和打标也是十分劳神的~~~
用户行为搜集:
这里要祭出大名鼎鼎的神器sysmon啦!
Sysmon是微软推出的一款工具,它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻,可用来监视和记录系统活动,并写入windows事件日志,监控的对象包括进程的创建、网络连接和文件创建和更改。
域 | 特征 | 备注 |
---|---|---|
USB设备操作 | 设备类型 设备插、拔行为 设备读、写行为 | sysmon |
文件访问 | 文件类型 新建、 拷贝、删除、打开、关闭、读与写权限 等操作 | Sysmon |
CD/DVD 介质访问 | 介质类型,介质读、写操作 | Sysmon |
网络流量 | 协议类型 源IP 目的IP 源端口 目的端口 路径 持续时间 | wireshark |
邮件操作(留下) | 账户名 登入、登出 新建、删除、读操作 收件人地址 (太敏感) | 邮件服务器 |
计算机登录 | 账户名 登录、登出操作 | os |
CPU | CPU 的占用率 | Powershell |
进程 | 进程类型 进程创建 进程生命周期 | Sysmon |
打印机操作 | 文件类型 文件名 | 打印机日志 |
用户命令 | 时间序列上的用户命令 | Linux bash日志 Windows sysmon |
注册表 | 读、写、添加、删除操作 | Sysmon |
随后贴心的 sysmon 可以把日志导出为xml格式。
一次攻防平台搭建介绍完了,这里折射出来很多企业里面需要做的事情,你看到了麽?
企业内部网络安全建设是从路由交换开始的,权限核查、漏洞扫描、攻击阻断甚至对外资产防DDoS,不管是买设备还是自己动手搭建,总之一样都不能少。 企业如果资金充裕的话,且对外有互联网产品,办一个安全应急响应中心(SRC)也是一个不错的选择,招点人就把内部网络安全也捎带办了。如果企业比较小,可以选择靠谱的乙方公司或者是云服务提供商做一个资产的安全托管,都是一个不错的选择。
(注:若对本文有任何想法,都可以私信与作者联系。)
*本文原创作者:康康你秋裤穿反啦,属于FreeBuf原创奖励计划,未经许可禁止转载