用 Elastic Security 来武装每一位安全运维人员,从容的预防、检测和应对网络威胁。这款免费开放的解决方案提供了 SIEM、端点安全、威胁狩猎、云监控、恶意软件保护等功能。在这个课程中,您将学习如何利用 Elastic Security 的 SIEM 功能和威胁检测功能来为您的安全运维保驾护航。
本课程专为安全分析师(SecOps),和其它对此感兴趣工程师而设计。希望你在本课程中体验到运用 Elastic Security 进行安全运维的一天。你将学习到如何使用 Elastic Security 来可视化数据,配置数据摄入,应用规则检测引擎。在本课程结束时,你将全面掌握使用 Elastic Security 来检测基础设施威胁的工作方法,能够运用 Elasticsearch 的快速搜索进行实时的安全防护和响应。
在本课程中您将会学到:
本课程所使用到的 Elastic Stack 的组件包括:
网络信息安全管理方案的复杂性和成本是有目共睹的,通常安全相关工作由安全管理团队专人专职负责,他们运用各种专业技能和工具开展日常的工作。Elasticsearch 在安全领域是经常被使用到的搜索和分析平台。Elastic 在最近几年着重发展了对安全管理的支持。用户可以在已有的 Elastic Stack 的技能的基础上,平滑的扩展到安全管理使用场景,复用现有的技能和 ELK 基础设施解决安全管理的痛点。
分阶段的开展安全管理的推荐过程如下:
本培训的所有操作和配置都从在一个虚拟机上和一个 Elasticsearch 集群上完成。
检查清单如下:
本课程使用的 Elastic Stack 安装包,示例配置文件都可以在下列位置获取。
Elastic Stack 软件安装包清单:
下面开始创建 Elasticsearch 集群,并初始化相关设置。
登录阿里云控制台,搜索 Elasticsearch Service 产品,进入该产品控制台,点击 "新建" 集群按钮。
在选择 Elasticsearch 版本的时候请选 7.10.0。
说明:
Negative : 注意:请确保将 Elasticsearch 服务运行正常,查看集群的基础配置,访问控制,私网访问地址, 记录本 ES 集群私网访问网址备用。集群创建成功后,修改 ES 集群的访问协议,使私网用 https 访问,ES 集群不需要开启公网访问。
进入刚刚创建的 Elasticsearch 服务集群配置界面,点击 "可视化配置" 标签,点击并开启 "内网访问" 选项,记录界面中所出现的网址备用,如下所示:
在浏览器中输入公网访问地址,使用 elastic / Security%123 密码验证是否能成功登陆和使用 Kibana。
最后,需要在 Kibana 的开发者工具里调整一个集群参数。
PUT _all/_settings
{
"refresh_interval": "1s"
}
点击左侧的开发者工具图标,在 Console
的代码输入区域中输入以上代码片段,将光标移动到 PUT
这一行,点击哪一行右侧的三角形播放按钮,等待右侧出现 true
的执行结果即可。
还需要为摄入数据创建一个用于解析 IP 地址地理位置的 pipeline ,这个操作在 Kibana 的开发者工具中完成。将下面的代码复制粘贴到 Kibana 的开发者工具中。
PUT _ingest/pipeline/geoip-info
{
"description": "Add geoip info",
"processors": [
{
"geoip": {
"field": "client.ip",
"target_field": "client.geo",
"ignore_missing": true
}
},
{
"geoip": {
"field": "source.ip",
"target_field": "source.geo",
"ignore_missing": true
}
},
{
"geoip": {
"field": "destination.ip",
"target_field": "destination.geo",
"ignore_missing": true
}
},
{
"geoip": {
"field": "server.ip",
"target_field": "server.geo",
"ignore_missing": true
}
},
{
"geoip": {
"field": "host.ip",
"target_field": "host.geo",
"ignore_missing": true
}
}
]
}
GET _ingest/pipeline/geoip-info
将左侧编辑器文本框中的光标移动到 PUT _ingest/pipeline/geoip-info
这一行,点击右侧扳手图标傍边的三角按钮,执行 pipeline 创建操作。
在控制台中输入并点击 GET _ingest/pipeline/geoip-info
这个语句右侧的三角形,查看刚才创建的流水线的信息。
Negative : 注意:这个数据丰富流水线会在 Beats 的配置文件中触发,必须正确创建以上流水线,才能顺利完成后续练习。
点击 Kibana 左上角菜单中点击 "堆栈监控",阿里云的 Elasticsearch 集群默认开启了技术栈自监控,将看到的结果类似如下所示。
在以上的监控功能中,特别是 Beats 这一块,能看到各种 Beats 在被监控节点上的部署结果和运行现状,在后续的测试过程中,建议多次访问这个监控页面查看安装配置结果。
Negative : 注意:这个监控页面需要依赖于 Beats 的配置文件中启用了监控功能,建议在所有 Beats 配置文件中打开这个开关。
如果使用 Elastic 的 Beats (以及相关模块)采集和摄入安全事件数据,那么所有数据在进入 Elasticsearch 的过程中就完成了和统一通用数据定义 ECS 的适配。相同含义字段在各个不同数据源中的差异性就在这个过程中得到了调和,在 Kibana 分析安全数据的过程中,也是基于数据已经得到了 ECS 的标准化了。
下面分步骤配置三种最常用的 Beats 数据采集工具。
Auditbeat 支持的操作系统包括:
以 Linux 为例,Auditbeat 能够提供的安全事件如下:
安装 Auditbeat 软件包,运行下面的命令:
sudo rpm -ivh https://mirrors.aliyun.com/elasticstack/7.x/yum/7.10.0/auditbeat-7.10.0-x86_64.rpm
初始化 auditbeat 的索引和数据分析仪表板,运行下面的命令:
sudo auditbeat setup -e \
-E output.logstash.enabled=false \
-E output.elasticsearch.hosts=['https://es-cn-7pp2v2ce7001ivh93.elasticsearch.aliyuncs.com:9200'] \
-E output.elasticsearch.username=elastic \
-E output.elasticsearch.password=Security%123\
-E setup.kibana.host=https://es-cn-7pp2v2ce7001ivh93-kibana.internal.elasticsearch.aliyuncs.com
参数解释:
注意:以上两个信息需要在根据你的实验环境进行替换。
待以上文件执行成功以后,在 Kibana 中浏览 Auditbeat 的仪表板。点击名为 "[Auditbeat System] System Overview ECS"的仪表板。
在每一个 Beat 的 setup 命令成功执行完毕之后,都可以在 Kibana 的 Dashboard 菜单查看新增的仪表板。
浏览和理解下面的 Auditbeat 示例文件。
auditbeat.modules:
- module: auditd
audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ]
audit_rules: |
- module: file_integrity
paths:
- /bin
- /usr/bin
- /sbin
- /usr/sbin
- /etc
- module: system
datasets:
- package # Installed, updated, and removed packages
period: 2m # The frequency at which the datasets check for changes
- module: system
datasets:
- host # General host information, e.g. uptime, IPs
- login # User logins, logouts, and system boots.
- process # Started and stopped processes
- socket # Opened and closed sockets
- user # User information
user.detect_password_changes: true
login.wtmp_file_pattern: /var/log/wtmp*
login.btmp_file_pattern: /var/log/btmp*
tags: ["service-siem", "vagrant-vm"]
fields:
env: workshop
output.elasticsearch:
hosts: ["https://es-cn-7pp2v2ce7001ivh93.elasticsearch.aliyuncs.com:9200"]
username: elastic
password: Security%123
pipeline: geoip-info
processors:
- add_host_metadata:
netinfo.enabled: false
geo:
location: 35.5528, 116.2360
continent_name: Asia
country_iso_code: CN
region_name: Beijing
region_iso_code: CN-BJ
city_name: Beijing
name: myCyberSecLab
- add_locale: ~
- add_fields:
when.network.source.ip: private
fields:
source.geo.location:
lat: 35.5528
lon: 116.2360
source.geo.continent_name: Asia
source.geo.country_iso_code: CN
source.geo.region_name: Beijing
source.geo.region_iso_code: CN-BJ
source.geo.city_name: Beijing
source.geo.name: myCyberSecLab
target: ''
- add_fields:
when.network.destination.ip: private
fields:
destination.geo.location:
lat: 35.5528
lon: 116.2360
destination.geo.continent_name: Asia
destination.geo.country_iso_code: CN
destination.geo.region_name: Beijing
destination.geo.region_iso_code: CN-BJ
destination.geo.city_name: Beijing
destination.geo.name: myCyberSecLab
target: ''
setup.ilm.check_exists: false
logging.level: error
monitoring.enabled: true
以上配置文件中只包含必要和推荐的一些配置内容,可以作为一个生产环境实施的基础,将其版本化,逐渐修订为你需要的状态,并让它可以被自动化部署工具使用。
在当前目录下, 用以上配置信息创建一个名为 sec-4.yml 的文件。
运行下面的命令,覆盖默认配置文件,并启动 Auditbeat 服务,开始采集数据。
sudo mv /etc/auditbeat/auditbeat.yml /etc/auditbeat/auditbeat.yml.bk
sudo cp sec-4.yml /etc/auditbeat/auditbeat.yml
sudo auditbeat test config
sudo auditbeat test output
sudo systemctl start auditbeat
sudo systemctl status auditbeat
注意:以上的这两条测试命令 auditbeat test config 和 auditbeat test output 适用于后续的其它 Beats 的启动前测试。它们能确保 Beats 服务使用目标配置文件正确运行。
如果上面的服务启动结果正常,很快的下面可以在 Kibana 的 Discovery 功能中,查看 Auditbeat-* 这个索引的数据。
在 Kibana 的 Dashboard 中查看Auditbeat 的数据分析仪表板 (搜索 system 关键字)。
在 Kibana 的堆栈检测中查看这个 Beat 的运行状态。
Negative : 注意:至此完成了 Auditbeat 在这个服务器上的部署和配置,并且确认仪表板中的数据都是更新的,这个 Beat采集代理的监控状态也正常。
Pecketbeat 是一个应用监控和性能分析系统,它可以嗅探服务器上发生的网络包,解码 7 层的网络消息,然后将分析结果发送到后台的 Elasticsearch 服务中进行分析, 支持的操作系统包括:
安装 Pecketbeat 软件包和它的依赖,运行下面的命令:
sudo yum install libpcap -y
sudo rpm -ivh https://mirrors.aliyun.com/elasticstack/7.x/yum/7.10.0/packetbeat-7.10.0-x86_64.rpm
初始化 Pecketbeat 的索引和数据分析仪表板,运行下面的命令:
sudo packetbeat setup -e \
-E output.logstash.enabled=false \
-E output.elasticsearch.hosts=['https://es-cn-7pp2v2ce7001ivh93.elasticsearch.aliyuncs.com:9200'] \
-E output.elasticsearch.username=elastic \
-E output.elasticsearch.password=Security%123\
-E setup.kibana.host=https://es-cn-7pp2v2ce7001ivh93-kibana.internal.elasticsearch.aliyuncs.com
以上命令成功执行之后,查看新增的 Packetbeat 仪表板。
查看和学习 Packetbeat 默认的配置文件和下面的示例配置文件的差异。
#=== Packetbeat specific options ===
packetbeat.interfaces.device: any
#=== Flows ===
packetbeat.flows:
timeout: 30s
period: 10s
#=== Transaction protocols ===
packetbeat.protocols:
- type: icmp
enabled: true
- type: dhcpv4
ports: [67, 68]
send_request: true
send_response: true
- type: dns
ports: [53]
include_authorities: true
include_additionals: true
send_request: true
send_response: true
- type: http
ports: [80, 8080, 8000, 5000, 8002]
- type: tls
ports:
- 443 # HTTPS
- 993 # IMAPS
- 995 # POP3S
- 5223 # XMPP over SSL
- 8443
- 8883 # Secure MQTT
- 9243 # Elasticsearch
tags: ["service-siem", "vagrant-vm"]
fields:
env: workshop
output.elasticsearch:
hosts: ["https://es-cn-7pp2v2ce7001ivh93.elasticsearch.aliyuncs.com:9200"]
username: elastic
password: Security%123
pipeline: geoip-info
processors:
- add_host_metadata:
netinfo.enabled: false
geo:
location: 35.5528, 116.2360
continent_name: Asia
country_iso_code: CN
region_name: Beijing
region_iso_code: CN-BJ
city_name: Beijing
name: myCyberSecLab
- add_locale: ~
- add_fields:
when.network.source.ip: private
fields:
source.geo.location:
lat: 35.5528
lon: 116.2360
source.geo.continent_name: Asia
source.geo.country_iso_code: CN
source.geo.region_name: Beijing
source.geo.region_iso_code: CN-BJ
source.geo.city_name: Beijing
source.geo.name: myCyberSecLab
target: ''
- add_fields:
when.network.destination.ip: private
fields:
destination.geo.location:
lat: 35.5528
lon: 116.2360
destination.geo.continent_name: Asia
destination.geo.country_iso_code: CN
destination.geo.region_name: Beijing
destination.geo.region_iso_code: CN-BJ
destination.geo.city_name: Beijing
destination.geo.name: myCyberSecLab
target: ''
setup.ilm.check_exists: false
logging.level: error
queue.spool: ~
monitoring.enabled: true
用以上配置信息在当前目录下创建一个名为 sec-5.yml 的配置文件。【注意:以上是示例文件,还有很多可以定义的参数,详见官方文档】
用下面的命令替换默认的位置文件为以上内容,并测试配置文件的语法和功能是否正常,最后启动 Packetbeat 开始采集该服务器上看到的流量。
sudo mv /etc/packetbeat/packetbeat.yml /etc/packetbeat/packetbeat.yml.bk
sudo cp sec-5.yml /etc/packetbeat/packetbeat.yml
sudo packetbeat test config
sudo packetbeat test output
sudo systemctl start packetbeat
sudo systemctl status packetbeat
尝试用 ping 命令测试几个网站,产生一些网络流量,或者做一次 yum update ,命令如下:
ping baidu.com
ping www.goo.ne.jp
sudo yum update -y
在 Kibana 的主页上点击 "安全",在这里将看到 Packetbeat 和 Auditbeat 的安全事件统计图。
在 Kibana 的安全应用中,点击网络视图,将看到如下所示:
将鼠标移动到日本的那个红点上,显示详细信息。
Negative : 注意:至此完成了 Packetbeat 的配置和调试工作,还可以再次确认相关仪表板和 Beat 代理监控的状态。
在 Kibana 的主页上点击"添加数据"按钮后,点击 "安全",这里展示的是 Elastic 官方支持的安全事件数据采集模块,大部分是通过 Filebeat 日志文件集成的方式完成。
用户还可以使用 Filebeat 的扩展能力,基于 ECS 开发自己的自定义功能模块,用于安全数据的统一收集,这有利于消除安全信息数据在工具集方面的各种壁垒,消除数据孤岛和死角。
运行下面的命令安装 Filebeat 软件包:
sudo rpm -ivh https://mirrors.aliyun.com/elasticstack/7.x/yum/7.10.0/filebeat-7.10.0-x86_64.rpm
初始化 Filebeat 的索引和数据分析仪表板,运行下面的命令:
sudo filebeat setup -e \
-E output.logstash.enabled=false \
-E output.elasticsearch.hosts=['https://es-cn-7pp2v2ce7001ivh93.elasticsearch.aliyuncs.com:9200'] \
-E output.elasticsearch.username=elastic \
-E output.elasticsearch.password=Security%123\
-E setup.kibana.host=https://es-cn-7pp2v2ce7001ivh93-kibana.internal.elasticsearch.aliyuncs.com
Filebeat 默认不会启用任何数据采集模块,运行下面的命令,启用系统日志文件的采集。
sudo filebeat modules enable system
sudo filebeat modules list
Filebeat 的示例文件如下:
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
enabled: false
paths:
- /var/log/*.log
#============================ Filebeat modules ============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
reload.period: 60s
tags: ["service-siem", "vagrant-vm"]
fields:
env: workshop
output.elasticsearch:
hosts: ["https://es-cn-7pp2v2ce7001ivh93.elasticsearch.aliyuncs.com:9200"]
username: elastic
password: Security%123
pipeline: geoip-info
processors:
- add_host_metadata:
netinfo.enabled: false
geo:
location: 35.5528, 116.2360
continent_name: Asia
country_iso_code: CN
region_name: Beijing
region_iso_code: CN-BJ
city_name: Beijing
name: myCyberSecLab
- add_locale: ~
- add_fields:
when.network.source.ip: private
fields:
source.geo.location:
lat: 35.5528
lon: 116.2360
source.geo.continent_name: Asia
source.geo.country_iso_code: CN
source.geo.region_name: Beijing
source.geo.region_iso_code: CN-BJ
source.geo.city_name: Beijing
source.geo.name: myCyberSecLab
target: ''
- add_fields:
when.network.destination.ip: private
fields:
destination.geo.location:
lat: 35.5528
lon: 116.2360
destination.geo.continent_name: Asia
destination.geo.country_iso_code: CN
destination.geo.region_name: Beijing
destination.geo.region_iso_code: CN-BJ
destination.geo.city_name: Beijing
destination.geo.name: myCyberSecLab
target: ''
setup.ilm.check_exists: false
logging.level: error
queue.spool: ~
monitoring.enabled: true
在当前目录中,使用以上配置信息,创建名为 sec-6.yml 的文件。
用下面的命令更新 Filebeat 默认的配置文件,测试文件的可用性,并启动服务。
sudo mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bk
sudo cp sec-6.yml /etc/filebeat/filebeat.yml
sudo filebeat test config
sudo filebeat test output
sudo systemctl start filebeat
sudo systemctl status filebeat
Filebeat 正常运行了几分钟之后,回到 Kibana 中安全应用的主页,在主机事件区域中,可以看到 Filebeat 上传的事件数量。查看 Filebeat 的系统概况仪表板【[Filebeat System] Syslog dashboard ECS】,如下所示:
点击上图的 sudo commands, SSH logins 和 New users 等标签页,查看系统日志的详细分析图。
Negative : 注意:至此完成了 所有 Elastic 提供的安全事件采集和分析工具体系的搭建。
在 Elasticsearch 的数据平台里,除了使用各种 Beats 以及相关模块之外,还可以使用 Logstash 集成外部的数据源,外部的系统也可以直接调用 Elasticsearch 的 API 摄入外部数据(基于 ECS)。Elasticsearch 的准实时搜索能力可以让安全运维人员在海量的安全事件数据中作出及时精确的搜索,完成必要的安全巡检和事件精细分析的工作。
在 Kibana 中进入 "安全" 应用的主页,点击 "时间线" 标签页,点击 "创建新时间线" 按钮。创建一个下图所示事件搜索场景。
关键操作说明:
这样就定义了一个典型的可以重复使用的搜索分析场景,这个时间线也可以逐渐迭代和进化它的搜索条件,调整输出的字段,从而调整它的精度和用途。
Negative : 注意:时间线是人工安全事件巡检分析的入口,利用它在一个界面中执行分析和搜索操作,它默认使用来自所有数据源的事件。
当某个时间线的分析结果被判定为安全事故之后,就需要根据它来创建一个故障调查案例,这是 SIEM 的常用场景。点击时间线右上角的 "齿轮按钮",选择 "附加到新案例" 选项,进入新建案例界面,如下图所示:
Elastic Security 也是一个团队协作平台,这个开放式协作平台,将数据的搜索服务提供给了所有相关团队,让团队可以第一时间的分析相同的安全事故线索,并在案例中协同工作。
Negative : 注意:人工安全分析的结果,加 ML 自动分析的结果,加内部外部的安全情报分析等等都会触发 SecOps 人员创建进一步调查案例,立案调查是为了锁定和消除安全风险根因。
本练习旨在帮助你理解 EQL 的分析方法。
现在模拟若干次操作系统 SSH 登录的操作,至少包含下面一组连续的事件:
以上操作还可以自由操作若干次,目的在于制造一些ssh 登录事件。
打开 开发者工具,输入相关 EQL 查询语句,对 Auditbeat 的索引进行如下查询。
GET /auditbeat-*/_eql/search
{
"query": """
sequence by host.name, source.ip, user.name with maxspan=15s
[authentication where event.outcome == "failure"]
[authentication where event.outcome == "failure"]
[authentication where event.outcome == "success"]
"""
}
浏览查询结果的最后三个事件,确认其"outcome" 字段是否是以 "success" "failure" "failure" 的顺序。
后续更新的版本 7.12 中,可以在Kibana 界面上直接完成如下操作:
点击 Kibana 菜单中的 "时间线",点击 "创建新的时间线" 按钮,点击 "相关性",这里是使用 EQL 事件查询语言的界面。
输入这个事件搜索时间线的相关信息:
sequence by host.name, source.ip, user.name with maxspan=15s
[authentication where event.outcome == "failure"]
[authentication where event.outcome == "failure"]
[authentication where event.outcome == "success"]
可以尝试删除搜索语句中第一行的 "[authentication where event.outcome == "failure"]" 查询条件,看看搜索结果有什么不同。
下面是搜索语法简单解释,详细 EQL 语法参考件官方文档:
通过以上的操作,我们可以体会到 EQL 的优势包括:
Negative : 注意:EQL 是专门为安全狩猎、为复杂性较高的安全分析而生的;不仅可以在 Kibana SIEM 的时间线–> "相关性" 这个界面中使用,而且可以直接通过 Elasticsearch 的 API调用 /_eql/
完成所有搜索功能,这也是和其它系统集成的接口。
【本节操作目前阿里云还不支持,待后续版本更新支持本功能】Elastic Security 7.10 增加了检测规则,以发现针对macOS和Linux主机的常见滥用恶意软件和技术,并扩大了针对Windows主机的MITRE ATT&CK®覆盖范围。
Elastic Security 目前内置了 315 条安全检测规则,这些规则默认没有打开,可以按需打开和关闭每一条检测规则。
下面执行下面的一些列的操作触发这个规则:
sudo vi /etc/hosts
命令,在这个文件中,随意加入一条 dns 解析记录。保存退出。如上图所示:
Negative : 注意:这里我们完成了一部分 Elastic Security 管理套件内置检测规则的管理,包括启用、触发、干预处理等操作流程。
自定义规则的创建方法:
按照下面的步骤创建一个自定义新规则:
sequence by host.name, source.ip, user.name with maxspan=15s
[authentication where event.outcome == "failure"]
[authentication where event.outcome == "failure"]
[authentication where event.outcome == "success"]
自定义规则可以是企业环境中特定的安全威胁检测机制,如果这种特定威胁已经发生过了,那么SecOps 团队应该马上进行消除工作,在消除了威胁造成的影响后,为了防止这个威胁的复发,应该创建对应的检测规则,并定期执行和告警,这种工作方式可以日积月累出很多扎实的威胁狩猎知识库。
Negative : 注意:Elastic Security 内置规则,加上企业安全分析师有的放矢的安全狩猎都会逐步让规则检测库丰富和完善。基于规则的自动化巡检消除了大量日常手工重复安全巡视的工作量。所有启用的规则经过定期的优化、调校和测试会变得更加精准。
Suricata 是一个高性能的IDS、IPS和网络安全监控的引擎。 它是开源的,由一个社区经营的非营利基金会开放信息安全基金会(OISF)开发。 Filebeat 也提供了官方的支持模块。
####安装配置 Suricata
这是一款比较流行的开源软件 CentOS 的 epel 仓库中就有,通过下面的命令安装。
sudo yum -y install epel-release
sudo yum -y install suricata
下载和更新 IDS 的检测规则库。
sudo suricata-update
查看虚拟机的网卡接口,并确认配置文件中使用了网卡。
修改配置文件, 如果你的虚拟机只有一个网卡,则使用"eth0"这个网卡的名称。
sudo vi /etc/sysconfig/suricata
启动 Suricata 服务。并启用 Filebeat 的 suricat 模块,重启 Filebeat 服务。
sudo systemctl start suricata
sudo filebeat modules enable suricata
sudo systemctl restart filebeat
Negative : 注意:Elastic Security 通过 Filebeat 默认兼容很多安全解决方案,包括开源和商业的方案,上面我们完成了对开源软件 Suricata 的集成。
在 CentOS 操作系统中安装 hping3 攻击发起一次测试性的 SSH DDoS 攻击。
sudo dnf -y install hping3
然后执行以下的模拟攻击命令,下面的 IP 地址是本测试环境的配置。
sudo hping3 -S -p 22 --flood --rand-source 192.168.0.30
使用另外一个 ssh 登录终端窗口,运行下面的命令,观察 suricata 的实时监测状况。
sudo tail -f /var/log/suricata/fast.log
在保持一分钟以后,分别停止上面两条命令,终止这次攻击测试。下面查看结果。以下仪表板和界面的数据显示,最长可能会有 5 分钟的延迟。
下面是 Filebeat 模块自带的 Suricata 仪表板的分析视图。下面是 Suricata 的事件统计分析视图。
Suricata 规则所触发告警的安全事故。
在 Elastic Security 【7.12版本之后,检测规则可用的情况下,以下结果可见】首页看到的 Suricata 生产的信号量。Suricata 属于外部安全信号。关于 HPing 攻击检测规则见文档:https://www.elastic.co/guide/en/siem/guide/current/hping-process-activity.html ,也可以尝试使用 Discovery 的 KQL 功能做相关查询。
在检测结果页面的状态如下:
几十秒钟的 Hping3 的测试就可以产生上百万的 ssh 网络连接事件,这个地图上需要绘制的线条会非常多,可能需要等几秒钟才能完全显示。
以上就是 Suricata 通过 Filebeat 集成到 Elastic Security 中的效果。后续还可以改进的地方:
Negative : 注意:想一想你的其它昂贵的安全管理工具的数据都发挥了应有的价值了么?如果这些工具集的数据的价值无法通过一种统一的数据定义标准化起来,数据就无法关联查询,无法充分消费,从而不能产生任何价值。
下面只描述了 Elastic Stack 内置的 ML 作业的启动,这些机器学习作业可以帮助用户快速的了解自己的数据,需要积累几天的数据之后,这些ML 作业才能展示有意义的结果。
在 Elastic Security 的界面内启用内置 ML 作业。
操作流程如下:
点击某一条ML 作业的链接,可以进入 ML 的管理界面中,查看这个作业的详细配置。
Negative : 注意:以上完成了 Elastic Security 管理套件里内置 ML 作业的管理。
进入 Machine Learning 的管理界面后,进入异常检测管理界面。点击创建作业即可基于某个索引整体数据集的异常检测作业。下面是操作过程。
以上操作过程创建了一些列 ML 作业,这些作业会定期执行,在积累学习了一周或者更长时间的数据之后,就会产生比较有意义的基于机器学习的分析结果。
Negative : 注意:最后本练习结束了对索引的机器学习作业的管理。