京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7833|回复: 0

HIDS系统存储方案探索与实践

[复制链接]

4

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2019-12-23 21:14:37 | 显示全部楼层 |阅读模式 来自 中国
0x01 HIDS的背景
. N8 U, F+ J' h- z, F2 y8 X! e, D: U; c- J- d, I+ n2 q# Z
企业有各种安全防护手段,HIDS与网络流量监听一样, 是一种威胁检测的手段。HIDS(Host-based Intrusion Detection System)基于主机型入侵检测系统。与网络监听这种形式的主要区别是, HIDS的主要数据源来至于主机本身产生的各种审计信息。2 r0 G9 x* g/ A: c/ ~4 _
各公司在构架这样的系统时, 多多少少都会面临时相同的问题,其中有一个共通地方就是审计数据的存储方案如何建设,我们回顾了一下,讨论一下HIDS的数据处理流程,与相应存储方案的优劣。. G$ k& f$ ^0 g
- Z9 }1 V6 [/ [7 B& I2 O
0x02 HIDS与网络监听
$ K+ a* U! c4 T5 h# X8 l1 u3 v
8 M6 u  c! m3 Q通过在主机上安装一个审计数据收集的 agent代理程序,收集主机的相关信息。' J) c  \8 u- H, [* q# h
HIDS系统和其他的系统都很多的相似之处,也有着明显的区别。Agent安装收集数据,与网络分光流量监听对比最大的区别,在于要在机器上装Agent,这本身是成本(部署覆盖率,监控覆盖率),而网络分光只要将数据集中,就可以分析流量中的网络相关数据。
7 |& {4 H" N& s8 ^/ j实际上Agent上收集的数据总量,几乎占到一半存储比例的还是网络数据, 比如:网络连接数据(异常链接、网络等待等)。, G4 a9 e/ B( F1 C0 z" l
某种程度HIDS与网络流量监听, 即互补又殊途同归。7 w$ c5 O# b* ?$ R8 G' {5 o
说到相同的地方, HIDS与其他的安全信息系统,有很多信息本身应该具备的组织部分,比如数据的存储,数据的分析,让安全运维人员与整个系统交互,进行安全策略的地方。
8 b# |. G1 t- a8 ?7 a, @各大公司都有自己系统设计方案和建模方法, 他们用的审计数据源种类也许是相似的,大数据的存储方案也差不多, 建模的方法也是经典的建模方式,甚至有可能“攻击者”都是同一波人。. X: h5 n: y: [8 d! `: ~& @
基于类似的背景,才可能将整个方案通用化, 产品化。没有形成产品,也可以制定一个通用的模型框架。, }8 d- U, I1 G7 w' x  n7 Z
0x03 数据处理流程
# R9 e; C7 X- \( U' h, J6 X" ]  j; ~: g1 v1 ^
我们将整个系统分成几个模块,来看整个系统:
: g: t6 G8 Z, W& ?5 n( |数据源:主机服务器上有各种审计数据,这些审计的数据是整个系统的数据分析素材。账号信息、网络链接、登录信息、服务信息、处理器信息等。无论什么平台, 这些基本的审计信息几乎都是共有的。
% w  ~6 _/ i# m0 k我们用OSQuery举例,用开源方案说明问题, 可以脱敏。
' W9 L: F, e% T( o0 j2 I比如,取得当前主机的端口监听:
$ N& O3 S: ~8 f
    ( B! |% H) u% j% Q

  • , L2 l1 ?* L, t; [& s# c0 {$ W4 P, h
osquery>select * from listening_ports    pid | port| protocol|family | address    123| 808| 0 | 0 | 0.0.0.0市面上流通的入侵检测代理客户端(平台),很多是可以取得这些信息的。OSQuery是将主机各种类型的Audit信息,统一管理成了二维表(Virtual Table),提供了一个SQL查询引擎提供查询。' m; \- M+ \" j! N0 t" C& m  X

# t' @) v8 D" v* U+ z- P5 E
OSQuery架构图

3 \! Y9 A4 H; W& ]数据收集:面对各种主机审计数据源,系统必须要有一个数据收集能力。% I' E5 f8 d5 N) y) I' W
HIDS一个很重要的组成部分是Agent,  不只是安全系统才有Agent,像Zabbix这种监控服务也同样用Agent。数据收集Agent方法有几种方法选择:1.自行研发。2.开源方案。 " T2 k1 l! M/ ~: S) |" D
相同的目的:无论我们使用的开源方案,还是自研的Agent,目的都是一样的, 收集我们需要数据,服务器上的相关审计信息。只要能收集到我们想到的审计信息上这一点没有障碍,就达成目标。
1 w0 C' {0 `4 w5 E6 d9 R4 q无论我们是采用开源,还是自研的方案,系统底层的很多都是相通的。以Linux的系统为例子看下图。
1 r8 a8 u4 g8 x0 ^! k" r  q3 c) d  m. U
OSQuery或是自研的Agent相当于图中的go-audit, 都是系统审计日志Client客户端调用者。使用pythonaudit和caudit底层调用的API都是系统API,区别是对各种平台的支持(跨平台),Agent的性能和健壮性。
/ X$ S% k# I: [) V2 h9 B
[color=#777575 !important]自研Agent优点:对于自研agent来说,我们可以控制整个软件的逻辑, 尽情的加入我们想扩展的功能。/ y( V" ~8 {0 ~0 C, }' Q
[color=#777575 !important]自研Agent劣势:需要大量的平台适配,保证测试的覆盖率,不能轻易挂,没有社区的服务支持。
. M, C& r& R) v3 i" K[color=#777575 !important]开源Agent优势:对于开源agent来说,开源Agent被行业充分的测试, 可以稳定的在企业各种已知的平台上,收集不同平台的数据,Linux、Windows、MAC。自研的方案各大厂都有自己的轮子。开源Agent方案:AuditBeat、OSQuery、NxLog等等,可以根据规模和平台的大小进行选择,各种入侵检测方案。- v9 B, ?& T8 g) v, i# b2 R1 w
[color=#777575 !important]开源Agent劣势:需求的定制化和扩展性, 是否能适应企业审计需求,数据采集需求,后续是否会出现,软件停止维护等尴尬局面。1 `3 K- t  p) G9 s
 HIDS的Agent收集的数据,之前说过,占比最大的一块数据是网络相关数据(几乎总量50%),随着时间的推移,工具的进来,“Netstat”相关信息取得也发生了变化。' J7 i) ]( r6 w. i1 s# S* L: h" G6 ~

- a; H8 p# \! l! i. [以上的图,可以看到工具是如何与操作系统交互取得底层数据,这种圆环套圆环,调用套调用的依赖关系, 如果都能简化成SQL这种DSL业务语言,简直就是太方便,把各种分类的审计信息全变成虚表,让安全人员专注于业务数据的审计和策略的构建迭代, 支持一下OSQuery这种SQL的设计方案。" `5 g0 c+ V" P, ]: X: ~( h
还有一个Agent结点集中管理后台问题。
% C# X5 U. q8 u+ {: u6 Z$ g; W# OOSQuery后台管理是有商业方案,但那不得花钱吗!所以有开源方案,如下:- B: @; j' {$ Q9 Q& z- v
[color=#777575 !important]https://github.com/shengnoah/osctrl
) e* E- v5 A$ c) g4 Z* b

$ P- ~/ p/ t# l, |osctrl是jmpsec推出的后台管理系统,Freebsd、Ubuntu、Debian等各种平台都支持。
( p( Y) e1 I: c$ b3 L如果您使用的本身是基于ELK的方案,没有Hive、Clickhouse、Spark这些什么事,还可以选择Auditbeat方案, 是Elastic同门产品,并且Elastic还直接支持了SIEM,至于适用不适用企业就具体分析。: }2 ^$ T  X  s- d
这样像SOC/SIEM类的产品, Elastic、Graylog、Splunk都有解决方案。前两者都有开源和企业版,后者是一定数据量之内处理不要钱, 过量就要钱,
9 X: h% }& l" R- i如果企业的数据是,几十T,几百T的数据量,不花钱是不可能的。排除软件和运维成本,数据本身的生产,消费,存储的硬件成本就很明显的硬件成本。
: {1 Y, t( p, V6 D: |8 e( l7 J' X0x04 存储方案6 X2 v$ u/ o( ^: n2 X3 D
* ^3 f9 Z& v5 N, S/ C8 u
数据的存储:信息系统的一个核心是数据存储,数据库要保证基本的读写性能,扩展性,高可用性。
: M7 a8 _: g* L现在有成熟的大数据存储解决方案。
9 K, E/ W0 \: |+ l+ E$ V
8 T# W2 f1 ?* H" {, |- g# E
ES集群核心存储方案(图2)
# F( j* ^0 M/ j) v6 {' F
ES:ES集群存储,最常见大数据方案之一,在实时计算场景, ES可以满足我们实时处理数据的要求。但同时ES的成本并不低。7 d+ @$ c7 c8 v8 z$ z# z! T' U' o! u9 d
经过实践,ES集群为了稳定高可用,最少要用三台机器做结点,存两份数据的(1G的数据, 实际要用2G空间,有效使用空间低于2G),放到3台机器的不同分片, 这样才可能保证数据丢了可以找回来,要想达到数据访问的高性能,还需要配置高性的SSD磁盘。这都是钱。
6 E* q. e" h2 R/ q只有ES不行,还需要配套的Buff队列Kafka前端机,前端消费机,只有带宽达到要求,缓存达到要求,才能保证存储服务的QPS。2万QPS至少12核左右的CPU,类推累计总消费量。
0 w; r+ {: a% V" v  a4 x+ BES优点:实时计算快,生态工具多。ES缺点:成本相对贵,需要配套的运维和调优。
& W" a( ~; u) x- ]3 V& p  ]4 |& {# z需要专家配合才能让整个系统表现良好,默认的设置和优化的设置区别很大。
% a: @* Y; Q- t$ f2 h+ l! K4 B  ^! t6 r' O/ z7 [, D! ]
ClickHouse集群核心存储方案(图3)
6 J, ?  T6 j! T1 g& p" z0 x
ClickHouse:ClickHouse支持Mysql协议,存储空只需要原有数据的5分之1,1G的数据,200MB就可以保存(向高总致敬)。 并且检索的速度更快,相对使用机器更少。
* p6 n( i+ o+ ?0 w6 R  m6 xOSQuery在收集取得审计数据时,使用的SQL结构化语言,ES也可以支持针对Index的Mysql查询,但从速度性能上看,ClickHouse最有优势(个人体验),并且ClickHouse本身就原生的支持SQL。2 |  I% W4 V& {  \8 s, P& E( w
如果熟悉ClickHouse技术栈,Clickhouse也是一种主案,Clickhouse也同样需要前端机Kafka队列,也需要写Kafka数据,只是由原来的从Kafka写入ES,变成写入Clickhouse。; U8 _7 Z. \4 R5 S$ o' C
[color=#777575 !important]ClickHouse优点:存储空间小,速度性能快, 学习曲线不陡。ClickHouse缺点:生态没态ES多,需要自己实现一些服务工具链。
5 J+ @) a4 v# m3 Y% P" S: A2 R
& J( \6 K) H1 H' b
Graylog集群核心存储方案(图4)
2 J7 \1 c( F& u
Graylog作为一个开源解决方案,本身就把自己定位成了SOC/SIM系统,新版的Graylog有审计Agent的对接,OSQuery方案,适应多种平台的审计数据采集,(Linux、Windwos、MAC),支持威胁情报管理。Graylog是基于Java技术栈的,整体打包了Kafka和消费程序,由Graylog组成的集群,整体解决了数据前端数据缓存到消费到ES上有服务流程, 还有Buff数据持久化等各种特性,这个之前糖果的实验室的公号和FB专栏发布的文章都有介绍,不太具体展开。Graylog在与ES配合的过程,需要优化配置才能有更好的性能表现, 默认的Graylog原生需要调配的,不然可能会达不到您的预期,在数据管理上造成困扰, 有时不是Graylog本身的问题,是配置方案选择的原因,需要专家积累和测试。% J- I$ B' _* e6 e+ Q. Y
Hadopp集群核心存储方案% i+ P& O$ r% \& T- W( y
Hadoop:Hadoop要求存储空间是原文本的3倍, 对于中小规模的系统,几千台的服务器。如果用10T的数据存储,整个的实际的空间就要30T,而实际实时性上,不一定比ES和Clickhouse快。
% K8 j( ?! r7 `/ u- s6 s) b数据存储的占比,HIDS几乎50%数据存储空间,都是在存储网络相关数据,其他类别数据5倍,甚至是50倍。HIDS系统的大头数据,是主机网络相关数据。
8 c/ K: i4 g& @9 W; G
[color=#777575 !important]优点:功能强大,生态强大缺点:基础设施构建成本高,需要专业团队运维,不是一天两天玩的转。
4 L4 f" b4 \9 K* z$ ^* A" P, r! D
除了以上的方案还有Spark等其它的方案,成熟的技术在公司内部本身都有(ES、Clickhouse、Spark、Hadoop), 最后我们根据过去的经验和当前形势综合考虑,最后选择ES方案。
: N) K# B) e/ j 数据分析:随着积累沉淀的数据变多,存储多不意味着系统产出的收益多。基于规则模式的古典分析模式,在超大规模的数据存储过程中,存在视角上的盲点,和人力运维的巨大成本。威胁变化多样,我们需要的不只是指那打那规则策略系统,需要系统有举一反三的能力, 有联想威胁能力。基于AI、基于NLP、基于规则、基于语议分析都可以数据收集后,对原始审计数据中的威胁进行发掘。HIDS收集的数据有时可对应的算法,是否可能被有效的挖掘出数据, 不是一概而论,因为太多数据类型的审计日志, 需要挖掘建模方法,有时模型和威胁元数据是同样重要的。4 F- U! ^5 f: V0 m( E# ?6 ~
数据交互:整个HIDS最主要的操作者还是安全运维人员,让HIDS可以让安装运维人员配置策略,像无数安全分析系统一样,将威胁信息统计汇总。对于闭环的系统来说, 不需要过多的确认, 直接将威胁信息推给安全人员,直接响应是最理想的,这样运维人员,基本上不上后台系统,等着系统推送威胁给我们就好的理想状态。
# S# j) g: @! u% S4 G
[color=#777575 !important]“威胁告警是观点,不是结论。”一个百发百中的威胁发现系统,是需要完备的数据证据链路,提供支持,HIDS也只是数据链路上的一条。' U5 M. ?& z& I1 b9 I: g; @
因为证据链不全,才有了后期再分析判断的中间过程, 如果证据事实确凿,行动就行了,关键是证据链不全,最后还是需要先分析, 再决策,然后才能不瞎行动。
+ l% M/ [/ k+ t+ B. q0x05 总结
4 z( D7 F; ?3 q& L% J/ f7 o! d- |7 ~2 F, u) v5 e6 \, x/ N
经过几种方案的对比, 最后我们在ES、Clickhouse、Hadoop之间选择了ES集群为中心的数据存储方案,只是在目前这个阶段,基于当前规模和成本的计算,综合数据威胁分析实时性考虑,我们选择了一个相对比较适合我们场景的方案,不同企业具体情况具体分析, 但是选案的原理和资源计算方法是可以参考的。
( P$ O8 D' L% R7 c9 [对于那些,没有成本预算自研HIDS中小型公司,可以选择多种开源方案解决OSQuery、AuditBeat、OSSEC总有一款适合您。
2 t& i# n$ a; W% Z0 W参考
" P* u3 z& ]6 W1 _$ z
1 O# f+ Z; G. }. d" q4 f- d2 pSyscall Auditing at Scale' A  [0 m: z  W5 T3 R, ~
[color=#777575 !important]https://slack.engineering/syscall-auditing-at-scale-e6a3ca8ac1b8
: b5 S4 l( {+ x$ C0 [" Q
*本文原创作者:糖果L5Q,本文属于FreeBuf原创奖励计划,未经许可禁止转载
  e* E) J  o% @9 ~9 M8 w

$ Z7 ?, ]3 \- ~1 A( [0 t精彩推荐& c% ^( l: `/ ~" c
. ]" F$ q/ }0 X* H$ E9 f0 D2 K

- A6 k1 m, N' B8 H, x) y2 N, q4 H7 [: m" f

, y' k, ]; C- j$ W$ U
: R: [3 Q  M& _: s& k来源:http://mp.weixin.qq.com/s?src=11&timestamp=1577106005&ver=2052&signature=TOp2rWi5tKlIEFwUHz3u7DT8-J9KpsMHyuuWNIrRy21lhopqTD0ukz7SndieKHTIernqgs3kZKI6rwJOD58oI59HVhFJ3n*jFdBv00VgP9CBeoI1-d9VRMCWrgAFjhsb&new=1  B2 a! B. {% Z0 o( h8 Z7 y
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2026-4-18 06:02 , Processed in 0.049845 second(s), 28 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表