目 录
基于网络安全相关的开源项目技术预研分析报告 1
1. 预研背景 3
2. 预研目的和意义 3
3. 预研目标 3
4. 预研技术描述 3
4.1 态势感知或安全运营中心-OSSIM 3
4.1.1 OSSIM简介 3
4.1.2 OSSIM的功能 4
4.1.3 OSSIM的架构 6
4.1.4 OSSIM各个模块之间的关系 7
4.1.5 OSSIM关联引擎 8
4.1.6 OSSIM部署 11
4.2 入侵检测防御技术-Snort/Security Onion 11
4.2.1 Snort 11
4.2.1.1 Snort简介 11
4.2.1.2 Snort原理 12
4.2.1.3 Snort工作过程 12
4.2.1.4 Snort部署 14
4.2.1.5 Snort不足 14
4.2.2 Security Onion 15
4.2.2.1 Security Onion简介 15
4.2.2.2 Security Onion核心组件 15
4.2.2.3 Security Onion分析工具 17
4.2.2.4 Security Onion部署方案 20
4.2.2.5 Security Onion的使用 21
4.2.2.6 Security Onion总结 22
4.3 防火墙-PFSense/OPNSense 23
4.3.1 PFSense 23
4.3.1.1 PFSense简介 23
4.3.1.2 PFSense核心功能 23
4.3.2 OPNSense 24
4.3.2.1 OPNSense简介 24
4.3.2.2 OPNSense与PFSense的功能差异 24
4.3.2.3 OPNSense与PFSense的性能差异 26
4.3.2.4 OPNSense与PFSense的对比结果 26
4.4 Web应用防火墙或WAF-ModSecurity+OpenResty 27
4.4.1 ModSecurity 27
4.4.1.1 ModSecurity简介 27
4.4.1.2 ModSecurity核心功能 27
4.4.1.3 ModSecurity核心规则集(CRS) 28
4.4.1.4 ModSecurity劣势 29
4.4.1.5 OpenResty简介 29
4.4.2 OpenResty 29
4.4.2.1 OpenResty应用场景 29
4.4.2.2 OpenResty功能 30
4.4.3 ModSecurity+OpenResty+WASP CRS=OpenWAF 31
4.5 威胁情报技术-MISP/OpenCTI 32
4.5.1 MISP 32
4.5.1.1 MISP简介 32
4.5.1.2 MISP核心功能 33
4.5.2 OpenCTI 36
4.5.2.1 OpenCTI简介 36
4.5.2.2 OpenCTI核心功能 36
4.6 漏洞扫描技术-OpenVAS/W3af 38
4.6.1 OpenVAS 38
4.6.1.1 OpenVAS简介 38
4.6.1.2 OpenVAS组件 39
4.6.1.3 OpenVAS基本应用 40
4.6.2 W3af 42
4.6.2.1 W3af简介 42
4.6.2.2 W3af插件 42
4.6.2.3 W3af基本应用 43
4.7 堡垒机技术-JumpServer 45
4.7.1 JumpServer简介 45
4.7.2 JumpServer核心功能 45
4.8 蜜罐技术-T-Pot/HFish 48
4.8.1 T-Pot 48
4.8.1.1 T-Pot简介 48
4.8.1.2 T-Pot组件 49
4.8.2 HFish 54
4.8.2.1 HFish简介 54
4.8.2.2 HFish原理 54
4.8.2.3 HFish特点 55
4.8.2.4 HFish功能 55
5. 预研技术对比 56
6. 预研技术预计投入资源 58
7. 总结 58
本次预研是对现有的关于开源的网络安全产品技术的研究。
本次预研通过了解现有市面上开源网络安全产品的相关技术、功能、架构、原理等,提供技术产品路径的可行性判断及达到快速商业化的目的,为XX网络安全业务由安全集成转向自主研发打下夯实的基础。
通过本次技术预研,对各种网络安全类型相关的开源项目(态势感知或安全运营中心-OSSIM、入侵检测防御技术-Snort/Security Onion、防火墙-PFSense/OPNSense、Web应用防火墙-ModSecurity/OpenResty、威胁情报技术-MISP/OpenCTI、漏洞扫描技术-OpenVAS/W3af、堡垒机技术-JumpServer、蜜罐技术-Tpot/Hfish)的研究,分析出落地到项目中的可行性、各类产品的差异性、自主研发时需要投入的各类资源等。
OSSIM(OPEN Source Sevurity Informatiion System):开源安全信息管理系统,由美国的Alienvault公司开发,是目前一个非常流行和完整的开源安全架构体系。OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台,能够实现收集分类日志,识别并解决重大安全事件(优先级,标识出有问题的日志),满足在安全监控和日志存储方面的审计和合规需求。
开源安全信息管理平台OSSIM解决了如下的问题: 1、将nagios、Snort、OSSEC、Ntop、OpenVAS等开源软件无缝的结合在一起。2、OSSIM系统安装部署极为方便。3、实现了多平台,多架构的的日志统一收集分析。
OSSIM定位于一个集成解决方案,其目标并不是要开发一个新的系统,而是利用丰富的,强大的各种程序,包括:
常见的安全软件类的:
入侵检测模块:
Snort,Snare,OSSEC,等入侵检测系统
扫描和渗透模块:
Nessus:系统漏洞扫描和分析软件
NMap:最早是Linux下的网络扫描和嗅探工具包。
还用像P0f,Pads等。
监控模块:
Tcptrack(TCP会话实时监控)
Nagios(主机及服务可用性监控)
Ntop
还有像Spade(异常检测引擎),OpenVAS(漏洞扫描),Arpwatch(MAC异常检测)等开源软件
OSSIM虽然名字中含有SIM,其实它并不是一个SIM,因为它不具备大规模日志采集和存储能力,而是一个SEM,更偏重于实时的安全监控,实时风险评估,报警与处理。
它具有入侵检测,漏洞扫描,资产管理,安全监控,日志分析,流量分析等功能。
正在上传…重新上传取消
第一层,数据采集层:使用各种采集技术采集流量信息、日志、各种资产信息,经过归一化处理后传入核心层。
第二层,属于核心处理层,主要实现对各种数据的深入加工处理,包括运行监控、安全分析、风险评估、关联分析、资产管理、脆弱性管理、事件管理、报表管理等。
第三层,属于数据展现层,主要负责完成与用户之间的交互,达到安全预警和事件监控、安全运行监控、综合分析的统一展示,形式上以图形化方式展示给用户。
OSSIM系统主要使用了PHP、Python、Perl和C等四种编程语言,从软件层面上看OSSIM框架系统包括五大模块:Agent模块、Server模块、Database数据库模块、Frameworkd模块以及Framework模块。
看一下这几个模块的流程。
①Agent至Server:来自各个传感器的安全事件被对应Agent格式化后,以加密字符串传给Server。
②Server至Agent:发送有关请求命令(request command),以字符串方式向Agent传送,主要是要求Agent完成插件的启动停止及获取信息等。
③Server至Frameworkd:发送请求命令,要求Frameworkd针对Alarm采取相应操作,例如执行外部程序或发出Email来通知管理员。
④Frameworkd至Server:发送请求命令至Server。要求Server通知Agent对插件(Plugins)进行启动、停止等操作。
⑤Framework至Frameworkd:发送请求命令,要求Frameworkd启动OpenVas扫描进程。
⑥Frameworkd至Framework:传送OpenVas扫描结果在前端页面中显示。
⑦Database至Agent和Server:向Agent和Server提供数据。
⑧Server至Database:Server需要将Events、Alarms等数据存入数据库并建立索引或更新操作。
⑨Database至Frameworkd:在Frameworkd中的Openvas扫描和动作需要调用数据库里的数据。
⑩Frameworkd至Database:在Frameworkd执行过程中将Openvas扫描结果存入数据库。
⑾Database至Framework:前端页面显示需要调用数据库的告警事件。
⑿Framework至Database:用户参数设置信息需要存入数据库。
关联引擎(Server)是OSSIM安全集成管理系统的核心部分,它支持分布式运行,负责将Agents传送来的归一化安全事件进行关联分析,并对网络资产进行安全评估。工作流程如下:
Ossim使用了两种关联引擎进行安全行为的关联分析,分别是基于事件序列的关联方法和启发式的关联方法。
事件关联是将大量的安全事件过滤,压缩,归一化处理后,在提取最重要的的安全事件。
有了好的事件处理机制,还要有好的关联方法,而且不止一种关联方法。从这个图可以看到,大量标准化处理的事件被送入关联引擎之后,它们会经历事件分类处理,聚合,交叉关联,启发关联等多种关联方法,系统会根据数据库中的安全事件进行统计分类,找出经常导致安全事件的发源地和经常被攻击的端口,在这些阶段都会产生事件告警。
交叉关联:它是最常见的数据关联方式,是指事件与目标漏洞之间的关联。通过将入侵检测系统snort产生的告警信息与漏洞扫描工具nessus规则进行交叉关联。综合评估威胁程度的方法。可以将安全事件与网络拓扑、系统开放的服务、设备存在的漏洞进行关联匹配,以分析攻击成功的可能性。利用这种关联方法可以在OSSIM系统中关联规则检测到某些威胁,并实现自动响应(比如发出告警等)。
采用分布式的方式:
有一个服务器service将所有传感器传输过来的数据进行处理,进行展示。需要在每一个需要监视的部分放置sensor探针,进行数据的收集,以及归一化处理,将处理好的数据发送到service。
在1998年,Martin Roesch用C语言开发了开放源代码(Open Source)的入侵检测系统Snort。直至今天,Snort已发展成为一个具有多平台(Multi-Platform)、实时(Real-Time)流量分析、网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS。Snort目前最新版本已更新至2.9.16。
Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。
Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。
Snort通过在网络TCP/IP的5层结构的数据链路层进行抓取网络数据包,抓包时需将网卡设置为混杂模式,根据操作系统的不同采用libpcap或winpcap函数从网络中捕获数据包;然后将捕获的数据包送到包解码器进行解码。网络中的数据包有可能是以太网包、令牌环包、TCP/IP包、802.11包等格式。在这一过程包解码器将其解码成Snort认识的统一的格式;之后就将数据包送到预处理器进行处理,预处理包括能分片的数据包进行重新组装,处理一些明显的错误等问题。预处理的过程主要是通过插件来完成,比如Http预处理器完成对Http请求解码的规格化,Frag2事务处理器完成数据包的组装,Stream4预处理器用来使Snort状态化,端口扫描预处理器能检测端口扫描的能力等;对数据包进行了解码,过滤,预处理后,进入了Snort的最重要一环,进行规则的建立及根据规则进行检测。规则检测是Snort中最重要的部分,作用是检测数据包中是否包含有入侵行为。例如规则alert tcp any any ->202.12.1.0/24 80(msg:”misc large tcp packet”;dsize:>3000;)这条规则的意思是,当一个流入202.12.1.0这个网段的TCP包长度超过3000B时就发出警报。规则语法涉及到协议的类型、内容、长度、报头等各种要素。处理规则文件的时候,用三维链表来存规则信息以便和后面的数据包进行匹配,三维链表一旦构建好了,就通过某种方法查找三维链表并进行匹配和发生响应。规则检测的处理能力需要根据规则的数量,运行Snort机器的性能,网络负载等因素决定;最后一步就是输出模块,经过检测后的数据包需要以各种形式将结果进行输出,输出形式可以是输出到alert文件、其它日志文件、数据库UNIX域或Socket等。
Snort的部署非常灵活,很多操作系统上都可以运行,可以运行在windows、linux等操作系统上。用户在操作系统平台选择上应考虑其安全性,稳定性,同时还要考虑与其它应用程序的协同工作的要求。如果入侵检测系统本身都不稳定容易受到攻击,就不能很好的去检测其它安全攻击漏洞了。在Linux与Windows操作系统相比较之下,Linux更加健壮,安全和稳定。Snort的运行,主要是通过各插件协同工作才使其功能强大,所以在部署时选择合适的数据库,Web服务器,图形处理程序软件及版本也非常重要。Snort部署时一般是由传感器层、服务器层、管理员控制台层三层结构组成。传感器层层就是一个网络数据包的嗅探器层,收集网络数据包交给服务器层进行处理,管理员控制台层则主要是显示检测分析结果。部署Snort时可根据企业网络规模的大小,采用三层结构分别部署或采用三层结构集成在一台机器上进行部署,也可采用服务器层与控制台集成的两层结构。
Snort入侵检测系统适应多种平台,源代码开放,使用免费,受众多用户喜爱,但也有不少缺点。Snort之所以说他是轻量型就是说他的功能还不够完善,比如与其它产品产生联动等方面还有待改进;Snort由各功能插件协同工作,安装复杂,各软件插件有时会因版本等问题影响程序运行;Snort对所有流量的数据根据规则进行匹配,有时会产生很多合法程序的误报。
Security Onion是一款专为入侵检测和NSM(网络安全监控)设计的Linux发行版。其安装过程很简单,在短时间内就可以部署一套完整的NSM收集、检测和分析的套件。Security Onion可能是主动的,用于识别漏洞或过期的SSL证书,或者也可能是被动的,如事件响应和网络取证,其镜像可以作为传感器分布在网络中,以监控多个VLAN和子网。
Security Onion里面的组件包括:snort(入侵检测引擎)、suricata(入侵检测引擎)、bro(入侵检测分析系统)、sguil(入侵检测分析系统)、squert(前端显示)、snorby(前端显示)、wireshark(抓包)、xplico(流量审计)。大致分类如下:
完整数据包捕获通过netsniff-ng完成,netsniff-ng能捕获到所有传感器看到的和存储的流量(安全Onion有一个内置机制可在磁盘满容量之前清除旧数据)。完整的数据包捕获就像摄像机,但更好,它不仅能告诉我们数据的流向,还能知道他们携带的内容(Exp的Payload-通过系统漏洞进行攻击在目标系统下执行远程代码或命令、钓鱼邮件和文件泄露等)。
基于网络和基于主机的入侵检测系统分别分析网络流量和主机系统,并为检测的事件和活动提供日志和警报数据。Security Onion提供了多个IDS选项,包括NIDS及HIDS:
对于基于网络流量的检测,主要提供了规则驱动及分析驱动两种驱动方式。
规则驱动的NIDS:Security Onion提供了Snort(http://snort.org/)或Suricata(http://suricata-ids.org/)的选择。基于规则查看网络流量中是否存在于已知的恶意、异常或其他可疑流量相匹配的指纹和标识符。
分析驱动的NIDS:对于分析驱动的网络入侵检测,Security Onion提供了网络安全监控的神器—Bro,也称为Bro IDS(http://bro-ids.org/)。与基于规则的IDS在数据中大海捞针不同。Bro会监控网络活动并记录所有连接、DNS请求、检测到的网络服务和软件、SSL证书以及HTTP、FTP、IRC SMTP、SSH、SSL和Syslog,它提供了一个真实的深度和可视性,可以显示网络上的数据和事件。此外,Bro包含许多常见协议的分析器,默认情况下,它能根据Team Cymru的恶意软件哈希注册表项目检查MD5文件下载的总和。除了日志记录和流量分析器之外,Bro框架还提供了一种可拓展的实时分析网络数据的方式。最近与REN-ISAC的CIF(集体智慧框架)(http://csirtgadgets.org/collective-intelligence-framework/)提供的网络活动与最新社区情报源的实时关联。以便用户在访问已知的恶意IP、域名或URL的时候,及时发出警报。输入框架允许您我们可以将数据提供给Bro,也可以编写脚本。文件分析框架提供了与协议无关的文件分析,允许我们在文件通过网络时进行捕获,并自动将文件传递给沙箱或使用文件共享进行防病毒扫描。Bro具有很强的灵活性。
对于基于主机的入侵检测,Security Onion为Windows,Linux和Mac OS提供了免费的开源HIDS方案—OSSEC(http://www.ossec.net/)。OSSEC可执行日志分析、文件完整性检查、策略监控、rookit检测,并实时报警和主动响应。我们可以将基于主机的事件和基于网络的事件关联起来,来识别是否有成功攻击的事件。
通过完整数据包捕获,以及IDS日志和Bro数据,我们拥有了大量数据。Security Onion也集成了以下工具去理解分析这些数据。
Security Onion建立在分布式客户端-服务器模型上。Security
Onion 的“sensor(传感器)”是客户端, “server”就是服务器。服务器和传感器组件可以在单个物理机器或虚拟机上运行,也可以将多个传感器分布在整个基础架构中,并配置为向指定服务器报告。分析人员从客户端工作站(通常是虚拟机安装)连接到服务器以执行查询和检索数据。
以下是Security Onion的三种部署方案:
独立部署:一个独立安装包括运行服务器和传感器组件和相关的处理都在单个物理或虚拟机的。独立安装可以有多个网络接口来监视不同的网段。独立安装是监控可从一个位置访问的网络的最简单和最方便的方法。
服务器 - 传感器部署:服务器-传感器安装包括运行服务器组件的单台机器,其中一台或多台独立机器运行传感器组件并向服务器报告。传感器运行所有嗅探过程并存储关联的数据包捕获、IDS警报以及Sguil和ELSA的数据库。分析人员从一台单独的客户端机器连接到服务器,并将发送到服务器的所有查询分发到相应的传感器,并将请求的信息返回给客户端。该模型通过将大量收集的数据保留在传感器上,直到分析人员的客户请求为止,从而减少网络流量。服务器和传感器之间的所有流量都被加密,客户端和服务器之间的所有流量都被加密。
混合部署:混合安装由独立安装组成,该独立安装还具有一个或多个独立传感器,可向独立计算机的服务器组件报告。
Snort:200~300Mbps时开始丢包,500Mbps时无法工作(不推荐使用该引擎)
Suricata:能承受的流量比snort高,结合PFring可以承受很高的流量。
一般情况下,Security Onion的功能非常多。同时开启多个功能会非常消耗性能。部署的地点是首先要明确你要保护什么,想要获得什么情报。推荐的部署地点是出口线路、机密服务器到普通网络之间的线路。
Suricata可以使用ET和GPL等检测规则。但是后期需要信息安全工程师进行持续优化以及自定义。规则可以简单分为官方规则和自定义规则。官方规则是由一些专业的安全人员写出来的。一般如果不是对安全原理研究得特别深的情况下,不用去动他。自定义规则可以在官方规则基础上根据自己的需要进行修改。
通过对Security Onion的研究,我们拥有完整的数据包捕获、Snort或Suricata规则驱动的入侵检测,Bro事件驱动的入侵检测和OSSEC基于主机的入侵检测,一旦运行Security Onion安装程序,所有这些都会立即启动。这些具有各种依赖性和复杂性的不同系统可以无缝地运行在一起,否则需要数小时,数天或数周来自行组装和集成。曾经看似不可能完成的任务现在与Windows系统一样容易安装。
虽然Security Onion的安全配置比较简单,网上也有大量的资料。但是由于Security Onion集成了很多IDS组件,部分我们也用不到,都开启的话会非常消耗性能。建议还是应该根据自身的需求,选择更适合自身的某个方案,做深入的研究。例如Nids可以选择Snort、Suricata、Bro其中的一种,HIDS可以选择Ossec。
PFSense是一个基于FreeBSD架构的软件防火墙,通常会被安装在多网卡的主板上作为路由器或者防火墙去使用。往往这些硬件都比较廉价,PFSense具有商业防火墙的大部分功能,管理上非常简单,可以支持通过WEB页面进行配置,升级和管理而不需要使用者具备FreeBSD底层知识。PFSense部署在企业边缘网络上一般可以抵挡500Mbps的互联网流量。
PFSense防火墙具有防火墙的基本状态监测包过滤功能,同时还支持NAT模式部署、流量管理、流量监控、上网行为管理、双机热备、负载均衡、VPN等重要功能。在管理维护方面支持相关性能的查看和报告生成功能,同时还可以被网络管理平台通过SNMP进行集中管理。在开源防火墙市场中,PFSense占有领先的地位。因PFSense安装及使用功能较多,如需更详细的了解请参考:
目录 | 鐵血男兒的BLOG
OPNsense是一款基于FreeBSD 10的年轻防火墙操作系统,它开始作为PFSense的一个分支,几乎所有的代码都被重写了,只保留了一小部分仍然与PFSense共享,并解决了许多PFSense的内核问题。但它的核心功能与PFSense没有很大的区别。
特征 |
OPNsense® |
PFSense® |
防火墙 |
状态检查 |
状态检查 |
基于Web的图形界面 |
基于Phalcon PHP框架的Bootstrap |
*从2.3迁移到Bootstrap |
安装安装向导 |
是 |
是 |
可配置仪表板 |
是 |
是 |
IPv4和IPv6支持 |
是 |
是 |
无线接入点 |
是 |
是 |
无线客户端支持 |
是 |
是 |
设置和筛选/隔离多个 |
- |
是 |
接口(LAN)DMZ等) |
是 |
是 |
流量管理 |
是 |
是 |
状态表控件 |
是 |
是 |
NAT |
是 |
是 |
冗余/高可用性 |
是 |
是 |
多WAN支持 |
是 |
是 |
服务器入站负载平衡 |
是(虚拟服务器设置) |
是 |
网络诊断工具 |
有 |
有 |
[ping] |
是 |
是 |
[跟踪路由] |
是 |
是 |
[通过GUI进行端口测试] |
是 |
更多与包]如nmap |
V-P-N |
||
[IPsec(包括第2阶段NAT)] |
是 |
是 |
[Openv-p-n] |
是 |
是 |
[L2TP] |
是(tramite插件) |
是(tramite插件) |
[PPPoE的] |
是(tramite插件) |
是(tramite插件) |
[PPTP] |
有(不认为安全) |
无(因不确定而被删除) |
RRD图 |
否(系统健康) |
是 |
实时接口流量图 |
是 |
是 |
动态DNS |
是 |
是 |
入网门户 |
是 |
是 |
DHCP服务器和中继(IPv4和IPv6) |
是 |
是 |
命令行shell访问 |
是 |
是 |
局域网唤醒 |
是 |
是 |
内置数据包捕获/嗅探器 |
是 |
是 |
备份和恢复fw配置 |
是 |
是 |
通过Web GUI编辑文件 |
是 |
是 |
虚拟接口: |
||
[VLAN] |
是 |
是 |
[LAGG / LACP] |
是/是 |
是/是 |
[GIF] |
是 |
是 |
[GRE] |
是 |
是 |
[PPPoE / PPTP / L2TP / PPP WAN] |
是/是/是/是 |
是/是/是/是 |
[QinQ]和网桥] |
是 |
是 |
缓存DNS转发器/解析器 |
是 |
是 |
可以运行在许多虚拟化环境中。 |
是 |
是 |
代理服务器 |
是 |
使用插件 |
IPS |
是(基于Suricata:已包括在内) |
SNORT(EXTRA PACKAGE) |
IDS |
是(基于Suricata:已包括在内) |
SNORT(EXTRA PACKAGE) |
安全更新 |
每周 |
不定期发布修补版本 |
为了有另一个比较,通过文件传输测试一些系统性能,选择在两个防火墙入口级别后面连接的两台主机之间进行文件传输测试。测试结果表明,从Host1到Host2的流量通过不同连接方式(OpenV-P-N、通过v-p-n IPSec、通过直接路由)连接两个防火墙系统,在这两个防火墙系统为所有测试注册了几乎相同的性能。测试过程中记录了以Mbps报告的表达值:
吞吐量 |
OPNsense® |
PFSense® |
文件传输OpenV-P-N |
40-42 Mbps |
40-42 Mbps |
文件传输直接(路由) |
150-330Mbps |
150-330Mbps |
文件传输V-P-N IPSec |
150Mbps |
150Mbps |
在网络上通过阅读这两个项目的优点和缺点,两者之间的竞争对于项目和用户都是有利的,无论选择何种方式,都会是一个好产品。除了已经描述的微小差异之外,防火墙现在非常相似,系统性能几乎是相同的,都是从同一个操作系统派生的。在硬件兼容性方面,我们没有注意到特别的差异以及特性,90%是相同的。从图形上看,OPNSense比PFSense更好,菜单更加直观。但从经验及优秀社区来看PFSense拥有更好的声誉,最终到底如何选择,需对两者做深入研究及更深入的测试再做结论。
ModSecurity是一个开源的跨平台Web应用程序防火墙(WAF)引擎,用于Apache,IIS和Nginx。作为WAF产品,ModSecurity专门关注HTTP流量,当发出HTTP请求时,ModSecurity检查请求的所有部分,如果请求是恶意的,它会被阻止和记录,同时也是nginx官方推荐的WAF。
ModSecurity CRS项目的目标是提供一个容易的“可插入”组通用攻击检测规则提供一个基本水平的保护任何web应用程序。
ModSecurity CRS提供保护如果以下攻击/威胁类别:
不支持检查响应体的规则,如果配置中包含这些规则,则会被忽略,nginx的的sub_filter指令可以用来检查状语从句,重写响应数据,OWASP中相关规则是95X(https://f2ex.cn/modsecurity-crs-3-list/)。不支持OWASP核心规则集DDoS规则REQUEST-912-DOS- PROTECTION.conf,但nginx本身支持配置DDoS限制,不支持在审计日志中包含请求和响应主体(v3.0.3以下不支持)。
OpenResty是一个通过Lua扩展Nginx实现的可伸缩的Web平台,内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。功能和nginx类似,就是由于支持lua动态脚本,所以更加灵活,可以实现鉴权、限流、分流、日志记录、灰度发布等功能。OpenResty通过Lua脚本扩展nginx功能,可提供负载均衡、请求路由、安全认证、服务鉴权、流量控制与日志监控等服务。
进行一些业务逻辑处理,甚至进行耗CPU的模板渲染,一般流程:mysql/redis/http获取数据、业务处理、产生JSON/XML/模板渲染内容,比如京东的列表页/商品详情页。
可以进行IP/URL/UserAgent/Referer黑名单、限流等功能。
实现如数据校验前置、缓存前置、数据过滤、API请求聚合、认证管理、负载均衡、流量控制、灰度发布、降级、监控等功能。
OpenWAF是基于openresty的Web应用防护系统(WAF),他基于nginx_lua API分析HTTP请求信息。OpenWAF由行为分析引擎和规则引擎两大功能引擎构成。其中规则引擎主要对单个请求进行分析,行为分析引擎主要负责跨请求信息追踪。
规则引擎的启发来自modsecurity及freewaf(lua-resty-waf),将ModSecurity的规则机制用lua实现。基于规则引擎可以进行协议规范,自动工具,注入攻击,跨站攻击,信息泄露,异常请求等安全防护,支持动态添加规则,及时修补漏洞。
行为分析引擎包含基于频率的模糊识别,防恶意爬虫,人机识别等防探测模块,防CSRF,防CC,防提权,文件上传防护等防攻击模块,cookie防篡改,防盗链,自定义响应头,攻击响应页面等防信息泄露模块。
除了两大引擎之外,还包含统计,日志,攻击响应页面,接入规则等基础模块。除了已有的功能模块,OpenWAF还支持动态修改配置, 动态添加第三方模块,使得在不重启引擎中断业务的条件下,升级防护。
OpenWAF:https://gitee.com/liaoshaojun/OpenWAF#chinese-mailing-list
MISP开源威胁情报和共享平台(https://github.com/MISP/MISP)是一个开源软件解决方案,用于收集、存储、分发和共享网络安全指标、网络安全事件分析、恶意软件分析的威胁。MISP由事件分析人员、安全和ICT专业人员或恶意软件逆向人员设计,用于支持他们的日常操作,以有效地共享结构化信息。
MISP的目标是促进安全社区内外的结构化信息共享,MISP提供了支持信息交换的功能,还支持网络入侵检测系统(NIDS)、LIDS和日志分析工具消耗这些信息。
(1)一个有效的IOC和指标数据库,允许存储有关恶意软件样本、事件、攻击者和情报的技术和非技术信息。
(2)从恶意软件、攻击活动或分析中自动找到属性和指标之间的关系。关联引擎包括属性之间的关联和更高级的关联,如模糊哈希关联(如ssdeep)或CIDR块匹配。每个属性还可以启用或禁用关联。
(3)一个灵活的数据模型,其中复杂的对象可以表达和连接在一起,以表达威胁情报,事件或连接的元素。
(4)内置的共享功能,以方便使用不同模型的分布数据共享。MISP可以自动同步不同MISP实例之间的事件和属性。高级过滤功能可用于满足每个组织的共享策略,包括灵活的共享组容量和属性级分发机制。
(5)一个直观的用户界面,供最终用户创建、更新和协作的事件和属性/指标。一个图形界面,可以在事件及其相关性之间无缝导航。事件图功能,用于创建和查看对象和属性之间的关系。高级过滤功能和警告列表,以帮助分析人员贡献事件和属性,并限制误报的风险。
(6)以结构化格式存储数据(允许出于各种目的自动使用数据库),并广泛支持网络安全指标以及金融领域的欺诈指标。
(7)导出:生成IDS、OpenIOC、纯文本、CSV、MISP XML或JSON输出,以便与其他系统(网络IDS、主机IDS、自定义工具)、缓存格式(用于取证工具)、STIX (XML和JSON) 1和2、NIDS导出(Suricata、Snort和Bro/Zeek)或RPZ区域集成。可以通过misp模块轻松添加许多其他格式。
(8)导入:大批量导入、批量导入、从OpenIOC、GFI沙箱、ThreatConnect CSV、MISP标准格式或STIX 1.1/2.0导入。许多其他格式很容易通过misp模块添加。
(9)灵活的免费文本导入工具,以方便将非结构化的报告集成到MISP中。
(10)一个温和的系统在事件和属性上进行协作,允许MISP用户对属性/指标提出更改或更新。
(11)数据共享:使用MISP与其他方和信任组自动交换和同步。
(12)灵活的API集成MISP与您自己的解决方案。MISP与PyMISP捆绑在一起,PyMISP是一个灵活的Python库,用于获取、添加或更新事件属性、处理恶意软件样本或搜索属性。一个详尽的restSearch API,可以方便地搜索MISP中的指示器,并将它们导出为MISP支持的所有格式。
(13)可调整的分类法,根据您自己的分类方案或现有的分类对事件进行分类和标记。分类法可以是MISP本地的,也可以在MISP实例之间共享。
(14)与现有的威胁角色、恶意软件、RAT、勒索软件或MITRE ATT&CK捆绑在一起的叫做MISP galaxy的情报词汇表。
(15)Python中的扩展模块,使用自己的服务扩展MISP或激活已经可用的MISP模块。
(16)MISP中的实时发布-订阅通道,自动获取ZMQ(例如,MISP -dashboard)或Kafka发布中的所有更改(例如,新事件、指示器、视图或标记)。
(17)交换信息可以更快地检测出目标攻击,提高检测率,同时减少误报。我们也避免逆向类似的恶意软件,因为我们很快就知道其他团队或组织已经分析了特定的恶意软件。
OpenCTI (https://www.opencti.io/en/)即 Open Cyber Threat Intelligence Platform,开放网络威胁情报平台。它的创建是为了构建、存储、组织和可视化有关网络威胁的技术和非技术信息。
它使用基于 STIX2 标准的知识模式来执行数据的结构化。并被设计为现代 Web 应用程序,包括 GraphQL API 和面向 UX 的前端。此外,OpenCTI 可以与其他工具和应用程序集成,如 MISP、TheHive、MITRE ATT 和 CK 等。
OpenCTI 平台的首要目的是为强大的知识管理数据库提供一个强制架构,专为网络威胁情报和网络运营量身定做。通过多种工具和查看功能,分析师可以通过在实体和关系之间的平台上旋转来探索整个数据集。关系具有拥有多个上下文属性的可能性,因此很容易为给定实体提供多个级别的上下文。
OpenCTI 使分析师能够轻松地可视化任何实体及其关系。提供多种视图以及基于动态小部件的分析系统。例如,用户能够比较两种不同入侵的相关信息。将来,OpenCTI 路线图包括开发完整的调查能力,使分析师能够通过在统一空间中转向实体来探索整个知识图。
OpenCTI的目标是创建一个综合工具,允许用户利用技术(如 TTP 和可观察到的)和非技术信息(如建议的归因、受害情况等),同时将每条信息链接到其主要来源(报告、MISP 事件等)。所有指标都与威胁有关,所有信息都与分析人员充分了解情况、观察者对威胁、信息来源和恶意行为评分的作用有关。
OpenVAS(https://www.openvas.org/)是类似Nessus的综合型漏洞扫描器,可以用来识别远程主机、Web应用存在的各种漏洞。Nessus曾经是业内开源漏洞扫描工具的标准,在Nessus商业化不再开放源代码后,在它的原始项自中分支出openVAS开源项目。经过多年的发展,openVAS已成为当前最好用的开源漏洞扫描工具,功能非常强大,甚至可以与一些商业的漏洞扫描工具媲美。OpenVAS使用NVT(Network Vulnerabilty Test网络漏洞测试)脚本对多种远程系统(包括Windows、Linux、UNix以及Web应用程序等)的安全问题进行检测。现基于B/S架构进行工作,执行扫描并提供扫描结果。
openvas-scanner(扫描器):负责调用各种漏洞检测插件,完成实际的扫描操作。
openvas-manager(管理器):负责分配扫描任务,并根据扫描结果生产评估报告。
openvas-administrator(管理者):负责管理配置信息,用户授权等相关工作。
openvas-cli(命令行接口):负责提供从命令行访问OpenVAS服务层程序。
greenbone-security-assistant(安装助手):负责提供访问OpenVAS服务层的Web接口,便于通过浏览器来建立扫描任务,是使用最简便的客户层组件。
Greenbone-Desktop-Suite(桌面套件):负责提供访问OpenVAS服务层的图形程序界面,主要允许在Windows客户机中。
新建任务,Scans->Tasks:
点击上图圈红图标->New Task或者快速开始,点击魔法棒图标->Task Wizard,输入扫描主机主机名或ip即可:
服务器和网关也同样进行扫描:
等到扫描任务完成后,即可导出报告:
漏洞报告列表:
选择上图下载按钮,下载XML、CSV等格式的报告。报告中包含ip、主机名、端口号、漏洞等级、CVE编号、探测方法、影响、解决办法等。
w3af(http://w3af.org/)(Web Application Attack and Audit Framework)是一个Web应用程序攻击和审计框架。它的目标是创建一个易于使用和扩展、能够发现和利用Web应用程序漏洞的主体框架。w3af的核心代码和插件完全由Python编写。项目包含多种类型的插件,这些插件可以检测SQL注入、跨站脚本、本地和远程文件包含等漏洞。
核心模块负责进程的调度和插件的使用,插件部分负责查找并攻击Web安全漏洞。常用的插件包含:发现模块(discovery)、审计模块(audit)、搜索模块(grep)、攻击模块(attack)、输出模块(output)、修改模块(mangle)、入侵模块(evasion)、破解模块(bruteforce)
安装成功后进入图形界面,点击full_audit这一步是为了配置扫描模式:
选择导出报告的文件类型:
在Target里面输入你想要测试的网站:
扫描完之后就可以进入到w3af的目录里面去查看导出的报告。
JumpServer(https://www.jumpserver.org/index.html) 是全球首款开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 规范的运维安全审计系统。 JumpServer 使用 Python / Django 为主进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向扩展,无资产数量及并发限制。
身份认证 |
登录认证 |
资源统一登录与认证 |
LDAP/AD 认证 |
||
RADIUS 认证 |
||
OpenID 认证(实现单点登录) |
||
CAS 认证 (实现单点登录) |
||
钉钉认证 (扫码登录) |
||
企业微信认证 (扫码登录) |
||
MFA认证 |
MFA 二次认证(Google Authenticator) |
|
RADIUS 二次认证 |
||
登录复核 |
用户登录行为受管理员的监管与控制 |
|
登录限制 |
用户登录来源 IP 受管理员控制(支持黑/白名单) |
|
账号管理 |
集中账号 |
管理用户管理 |
系统用户管理 |
||
统一密码 |
资产密码托管 |
|
自动生成密码 |
||
自动推送密码 |
||
密码过期设置 |
||
批量改密 |
定期批量改密 |
|
多种密码策略 |
||
多云纳管 |
对私有云、公有云资产自动统一纳管 |
|
收集用户 |
自定义任务定期收集主机用户 |
|
密码匣子 |
统一对资产主机的用户密码进行查看、更新、测试操作 |
|
授权控制 |
多维授权 |
对用户、用户组、资产、资产节点、应用以及系统用户进行授权 |
资产授权 |
资产以树状结构进行展示 |
|
资产和节点均可灵活授权 |
||
节点内资产自动继承授权 |
||
子节点自动继承父节点授权 |
||
应用授权 |
实现更细粒度的应用级授权 |
|
MySQL 数据库应用、RemoteApp 远程应用 |
||
动作授权 |
实现对授权资产的文件上传、下载以及连接动作的控制 |
|
时间授权 |
实现对授权资源使用时间段的限制 |
|
特权指令 |
实现对特权指令的使用(支持黑白名单) |
|
命令过滤 |
实现对授权系统用户所执行的命令进行控制 |
|
文件传输 |
SFTP 文件上传/下载 |
|
文件管理 |
实现 Web SFTP 文件管理 |
|
工单管理 |
支持对用户登录请求行为进行控制 |
|
访问控制 |
登录资产复核(通过 SSH/Telnet 协议登录资产) |
|
命令执行复核 |
||
组织管理 |
实现多租户管理与权限隔离 |
|
安全审计 |
操作审计 |
用户操作行为审计 |
会话审计 |
在线会话内容监控 |
|
在线会话内容审计 |
||
历史会话内容审计 |
||
录像审计 |
支持对 Linux、Windows 等资产操作的录像进行回放审计 |
|
支持对 RemoteApp、MySQL 等应用操作的录像进行回放审计 |
||
指令审计 |
支持对资产和应用等操作的命令进行审计 |
|
文件传输 |
可对文件的上传、下载记录进行审计 |
|
数据库审计 |
连接方式 |
命令方式 |
Web UI方式 |
||
支持的数据库 |
MySQL |
|
Oracle |
||
MariaDB |
||
PostgreSQL |
||
功能亮点 |
语法高亮 |
|
SQL格式化 |
||
支持快捷键 |
||
支持选中执行 |
||
SQL历史查询 |
||
支持页面创建 DB, TABLE |
||
会话审计 |
命令记录 |
|
录像回放 |
上图就是T-Pot的组成部分,T-Pot 可以理解成是这么多系统的一个整合。
项目地址:Conpot
监听端口:1025 50100
项目地址:http://www.micheloosterhof.com/cowrie/
监听端口:2222 2223
项目地址:GitHub - DinoTools/dionaea: Home of the dionaea honeypot
监听端口:21 42 69/udp 8081 135 443 445 1433 1723 1883 1900/udp 3306 5060/udp 5061/udp
项目地址:GitHub - schmalle/ElasticpotPY: Elasticsearch honeypot written in Python with Bottle framework
监听端口:9200
项目地址:https://github.com/dtag-dev-sec/emobility
监听端口:8080
项目地址:https://github.com/mushorg/glastopf
监听端口:80
项目地址:GitHub - armedpot/honeytrap: Last download from git://git.carnivore.it/honeytrap.git of Honytrap by Tillmann Werner
监听端口:NFQUEUE
项目地址:https://github.com/citronneur/rdpy
监听端口:3389
项目地址:GitHub - magisterquis/vnclowpot: Low-interaction VNC honeypot with a static challenge.
监听端口:5900
项目地址:https://github.com/awhitehatter/mailoney
监听端口:25
项目地址:GitHub - OISF/suricata: Suricata git repository maintained by the OISF
项目地址:p0f v3
项目地址:Elasticsearch: The Official Distributed Search & Analytics Engine | Elastic
监听端口:64298(本地,可以通过 64297 端口的 web 服务使用)
项目地址:Logstash: Collect, Parse, Transform Logs | Elastic
项目地址:Kibana: Explore, Visualize, Discover Data | Elastic
监听端口:64296(本地,可以通过 64297 端口的 web 服务使用)
HFish (https://hfish.io)是一款基于 Golang 开发的跨平台多功能主动诱导型开源蜜罐框架系统,为了企业安全防护做出了精心的打造,全程记录攻击手段,实现防护自主化。不仅仅支持 HTTP(S) 蜜罐,还支持 SSH、SFTP、Redis、Mysql、FTP、Telnet等,同时提供 了API 接口,使用者可以随意扩展蜜罐模块 ( WEB、PC、APP ),Hfile使用 Golang + SQLite 开发,使用者可以在 Win + Mac + Linux 上快速部署一套蜜罐平台,当前官网最新版本是v2.5.0。
HFish由管理端(server)和节点端(client)组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。
HFile主要包含攻击信息的查看、扫描感知、攻击来源信息的查看、账号资产被攻击信息、情报系统的对接、蜜罐服务的添加、节点的管理等功能。
攻击列表
扫描感知
名称 |
优点 |
缺点 |
入侵检测防御技术 |
||
Snort |
有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合。 |
功能插件协同工作,安装复杂,各软件插件有时会因版本等问题影响程序运行;Snort对所有流量的数据根据规则进行匹配,有时会产生很多合法程序的误报 |
Security Onion |
功能较为强大,有完整的数据包捕获,Snort或Suricata规则驱动的入侵检测,Bro事件驱动的入侵检测和OSSEC基于主机的入侵检测。 |
由一系列开源组件组合而成,部署较为复杂,学习较为困难 |
防火墙 |
||
PFSense |
支持NAT模式部署、流量管理、流量监控、上网行为管理、双机热备、负载均衡、VPN等重要功能,但从经验及优秀社区来看PFSense拥有更好的声誉 |
待深入研究 |
OPNSense |
与PFSense有着相同的功能,都是从同一个操作系统派生的,菜单更加直观 |
待深入研究 |
WEB防火墙 |
||
ModSecurity |
通过CRS核心规则集的配置可以有效的阻止常用的WEB攻击 |
待深入研究 |
OpenResty |
实现如数据校验前置、缓存前置、数据过滤、API请求聚合、认证管理、负载均衡、流量控制、灰度发布、降级、监控等功能 |
待深入研究 |
威胁情报技术 |
||
MISP |
||
OpenCTI |
||
漏洞扫描技术 |
||
OpenVAS |
基于WEB与主机的漏洞扫描服务,技术十分成熟,可以与市面的一些商业的漏扫工具相媲美 |
待深入研究 |
W3af |
客户端扫描工具,集成了一些常用的扫描模块为WEB服务提供漏洞扫描 |
待深入研究 |
蜜罐技术 |
||
T-Pot |
||
HFish |
通过本次预研,对相关各类开源安全产品的功能、原理、特点有了初步的掌握及了解,如需更深入的了解各个产品的功能,还需进一步更深入的进行研究。在开源产品的选型上,安全运营产品可选择OSSIM进行深入研究;入侵检测防御技术可选择Security Onion进行深入研究;防火墙技术可选择OPNSense进行深入研究;WEB应用防火墙可选择OpenWAF进行深入研究;威胁情报技术可选择OPENCTI进行深入研究;漏洞扫描数据可选择OpenVAS进行深入研究;堡垒机技术可选择JumpServer进行深入研究;WEB应用蜜罐技术可选择HFish进入深入研究,其他应用蜜罐技术可选择T-Pot进行深入研究。