黄玮
将入侵尝试(Intrusion attempt)或 威胁 (Threat)定义为潜在的、有预谋的且未经授权而访问信息、操作信息、致使系统不可靠或无法使用的企图
未授权使用数据/程序资源 | 授权使用数据/程序资源 | |
---|---|---|
未授权使用计算机 | 外部渗透 | N/A |
授权使用计算机 | 内部渗透 | 滥用行为(misfeasance) |
系统访问控制要面对三类用户
—— J. P. Anderson. Computer security threat monitoring and surveillance, Technical report, James P. Anderson Co., Fort Washington, PA, 1980.
通用的入侵检测系统抽象模型
—— Dorothy Denning. An Intrusion-Detection Model. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. SE-13, NO. 2, FEBRUARY 1987, 222-232.
可以看做是「SCAP」和「威胁情报」的先行探路者
SCAP: Security Content Automation Protocol
从「人读」到「机读」
Intrusion Detection System
IDS
将发布一个警报信息通知系统管理员IDS
同在一台机器,警报信息将显示在监视器上,也可能伴随着声音提示IDS
内置方法(通常是加密的)、SNMP
(简单网络管理协议,通常不加密)、email
、SMS
(短信息)、IM(即时通信)
或者以上几种方法的混合方式传递给管理员Profile
),当有一个在这个轮廓以外的事件发生时,IDS 就会告警misuse
)」检测如何评价 IDS 好坏?
FPR = FP / N
FNR = FN / N
最理想的入侵检测系统的评估结果是误报率 FPR=0
且漏报率 FNR=0
,但实际上误报率和漏报率常常是成反比的
异常检测
和 误用检测
比较异常检测 | 误用检测 | |
---|---|---|
可靠性 | 不稳定 | 较稳定 |
可用性 | 较低 | 较高 |
可测试 | 测试结果波动较大 | 测试结果较稳定 |
适应性 | 较强 | 较弱(难以检测未知攻击) |
实时性 | 易造成延时 | 延时较小 |
准确性 | 误报率较高 | 漏报率较高 |
安全性 | - | - |
恶意软件信息共享平台
(Malware Information Sharing Platform
),后来重新定位为 开源威胁情报和共享平台
(Open Source Threat Intelligence and Sharing Platform
)IODEF
- Incident Object Description Exchange Format
an occasion when someone goes into a place or situation where they are not wanted or expected to be
a suggestion that something unpleasant or violent will happen, especially if a particular action or order is not followed
入侵
检测强调在能区分『内外网』的场景下,重点关注『从外到内』的攻击行为威胁
检测不区分『内外网』入侵
检测强调检测『已经发生』的攻击行为威胁
检测强调预防『尚未发生』的攻击事件发生入侵
检测虽然在最早的术语定义中是包含『滥用』行为的,但在实际研究和产品落地实现时主流 IDS 依然以『狭义』的漏洞利用行为检测为主威胁
检测的目标不再有遗漏:攻击、滥用、恶意代码等等一网打尽Martin Roesch
在 1998 年用 C 语言开发Martin Roesch
创建了公司 Sourcefire
Sourcefire
并主导 Snort
的开源项目
Snort
核心代码和订阅规则为基础,开发了商业版的防火墙、入侵检测等设备与服务并持续回馈到 Snort
开源项目OpenAppId is an open, application-focused detection language and processing module for Snort that enables users to create, share, and implement application and service detection.
Sourcefire
之后发布的 Snort
新衍生项目
Snort2
和 Snort3
Snort
的母公司之后,于 2014 年发布了用 C++
语言重写的 Snort3 Alpha
,又被称为 Snort++
Snort2
,Snort3
的产品定位从 IDS
悄然变为 IPS(Intrusion Prevention System)
Snort2
的 主要变化 如下:
对比项 | Snort | Suricata |
---|---|---|
开发者 | Sourcefire, Inc. | Open Information Security Foundation (OISF) |
项目历史 | 1998 - | 2009 - |
编程语言 | C | C |
操作系统 | 跨平台 | 跨平台 |
并行处理 | 单线程(Snort3完全重写支持多线程) | 多线程 |
IPv6支持 | 有 | 有 |
Snort (VRT)规则语法兼容性 | 兼容 | 兼容 |
Emerging Threats Rules 兼容性 | 兼容 | 兼容 |
日志格式 | Unified2 | Unified2 / JSON |
OpenAppId
Snort Talos(VRT)
action
匹配规则后执行的 动作
header
IP 五元组定义rule options
详细规则定义Emerging Threats Ruleset
由 开源社区
维护Emerging Threats Pro Ruleset
由 Proofpoint/ET
维护sudo apt update && sudo apt install -y suricata
# 检查当前 suricata 版本
suricata -V
# This is Suricata version 5.0.3 RELEASE
# 查看 suricata-update 的内置命令帮助手册
sudo suricata-update --help
sudo suricata-update enable-source --help
# 检查当前 suricata 可订阅的规则库
sudo suricata-update list-sources
# 检查 suricata 已启用订阅的规则库
sudo suricata-update list-enabled-sources
# 检查当前 suricata 可「免费」订阅的规则库
sudo suricata-update list-sources --free
# Name: et/open
# Vendor: Proofpoint
# Summary: Emerging Threats Open Ruleset
# License: MIT
# Name: oisf/trafficid
# Vendor: OISF
# Summary: Suricata Traffic ID ruleset
# License: MIT
# Name: ptresearch/attackdetection
# Vendor: Positive Technologies
# Summary: Positive Technologies Attack Detection Team ruleset
# License: Custom
# Name: sslbl/ssl-fp-blacklist
# Vendor: Abuse.ch
# Summary: Abuse.ch SSL Blacklist
# License: Non-Commercial
# Name: sslbl/ja3-fingerprints
# Vendor: Abuse.ch
# Summary: Abuse.ch Suricata JA3 Fingerprint Ruleset
# License: Non-Commercial
# Name: etnetera/aggressive
# Vendor: Etnetera a.s.
# Summary: Etnetera aggressive IP blacklist
# License: MIT
# Name: tgreen/hunting
# Vendor: tgreen
# Summary: Threat hunting rules
# License: GPLv3
sudo suricata-update enable-source et/open
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source ptresearch/attackdetection
# 启用「越多」特征订阅「越好」?
# 请回忆前述「特征库越大越好?」一节内容
sudo suricata-update list-enabled-sources
# Enabled sources:
# - et/open
# - oisf/trafficid
# - ptresearch/attackdetection
# 下载所有「已启用」订阅源的规则库更新
sudo suricata-update update
# 所有订阅的规则被合并写入 /var/lib/suricata/rules/suricata.rules
# 修改 /etc/suricata/suricata.yaml 里的 default-rule-path 值为
# /var/lib/suricata/rules
# 测试用 pcap https://c4pr1c3.github.io/cuc-ns/chap0x12/attack-trace.pcap
suricata -r attack-trace.pcap
# 默认生成 4 个日志文件
# eve.json
# fast.log
# stats.log
# suricata.log
# 查看所有「告警」
cat fast.log
# 需要自行安装工具 jq
cat eve.json | jq -c 'select(.event_type=="alert")'
2018 年 10 月 11 日 原 Bro
开发者团队宣布将拥有 20 年历史的开源项目 Bro
更名为 Zeek
,原有 Bro
相关文档和工具包内包含的程序命名将经历一段 Bro
和 Zeek
共存的时期,最终会将所有名称中包含 bro
的工具和术语统一迁移到 zeek
相关命名规范。
Zeek is the new name for the long-established Bro system. Note that parts of the system retain the “Bro” name, and it also often appears in the documentation and distributions.
推荐优先阅读 Zeek 官方文档 。
lsb_release -a
# No LSB modules are available.
# Distributor ID: Kali
# Description: Kali GNU/Linux Rolling
# Release: 2020.3
# Codename: kali-rolling
cat /etc/os-release
# PRETTY_NAME="Kali GNU/Linux Rolling"
# NAME="Kali GNU/Linux"
# ID=kali
# VERSION="2020.3"
# VERSION_ID="2020.3"
# VERSION_CODENAME="kali-rolling"
# ID_LIKE=debian
# ANSI_COLOR="1;31"
# HOME_URL="https://www.kali.org/"
# SUPPORT_URL="https://forums.kali.org/"
# BUG_REPORT_URL="https://bugs.kali.org/"
# ref: https://software.opensuse.org//download.html?project=security%3Azeek&package=zeek
echo 'deb http://download.opensuse.org/repositories/security:/zeek/Debian_Testing/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list
curl -fsSL https://download.opensuse.org/repositories/security:zeek/Debian_Testing/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security:zeek.gpg > /dev/null
sudo apt update
sudo apt install zeek-lts
sudo /opt/zeek/bin/zeek --version
# /opt/zeek/bin/zeek version 3.0.8
apt show zeek-lts
# Package: zeek-lts
# Version: 3.0.8-0
# Priority: optional
# Section: Network
# Maintainer: Johanna Amann <johanna@icir.org>
# Installed-Size: 246 kB
# Depends: zeek-lts-core (= 3.0.8-0), zeekctl-lts (= 3.0.8-0), zeek-lts-core-dev (= 3.0.8-0)
# Conflicts: libbroker-dev, zeek, zeek-core, zeek-core-dev, zeek-libcaf-dev, zeekctl
# Download-Size: 240 kB
# APT-Manual-Installed: yes
# APT-Sources: http://download.opensuse.org/repositories/security:/zeek/Debian_Testing Packages
# Description: Zeek is a powerful framework for network analysis and security monitoring.
pfSense®
和 m0n0wall
自 2014 年起独立分支开发