基于图的下一代入侵检测系统
青藤云安全是一家主机安全独角兽公司,看名字就知道当前很大一块方向专注云原生应用安全,目前主营的是主机万相/容器蜂巢产品,行业领先,累计支持 800万 Agent。当前公司基于 NebulaGraph 结合图技术开发的下一代实时入侵检测系统已经初步投入市场,参与了 2022 护网行动,取得了不错的反响。
本文将简单介绍基于图的入侵检测系统,抛砖引玉,期望能有更多优秀人才参与挖掘图与安全的结合应用。
入侵检测的现状与挑战
主流入侵检测系统
入侵检测一直是安全研究的一大方向,青藤的万相和蜂巢两套产品分别为基于主机和容器的主机入侵检测产品,它们的原理都类似,如下图。
Agent 埋在主机/容器侧,接收服务端下发的规则结合采集的原始事件(进程/网络连接/文件读写等),通过安全专家编写规则,比如:进程文件 MD5/文件 MD5/执行命令行/机器学习等特征,命中当做告警报出来,相关告警上报到服务端;另外全量的原始事件也上报给服务端日志收集系统,入库保存到 SIEM 系统。
这套系统一旦告警上报到服务端,安全人员会拿当前告警相关信息到 SIEM 中查询告警发生时刻前后相关的事件,必要时登录相关机器查看相关信息,综合判断当前攻击告警是否有效并做相关处置。
这套系统是当前入侵检测的主流架构,但是也存在诸多问题:
- 基于单事件+规则做单点检测,可能造成大量误报(规则太松)或漏报(规则太严)
- 同一次攻击触发的告警可能过多,安全分析人员分析溯源工作量巨大
- 同一次告警相关原始事件需要借助 SIEM 人工分析,缺乏可视化手段
图与安全研究方向
其实,可以看到这里的几个问题点本质上都是独立去看待每个告警和事件,实际上一次攻击相关的告警/事件应该是彼此关联的,这里很自然想到用图去把这些原始事件/告警关联起来整体分析。事实上,这也是当前安全研究的一个热门方向——溯源图,借助溯源图我们做如下多方面的安全分析和检测:
1.图检测
传统安全解决的类似 IOC 检测,也就是单点判断,针对进程/网络连接/文件等实体判断是不是安全的;实际攻击面临的问题,可能各个点都检测不出来,但实际行为是危险的——1 个规则写不全,就算规则能写出来,比如命中某个命令行,但是触发告警很多,最终也无法应用。也就是要综合判断各种组合关系,这是图擅长的事情,也就是安全中图检测的问题——把所有相关的事件放在一张图中来综合判断分析是否为有效攻击。
图检测研究很早,但是面临计算量和算法的双重挑战,目前行业应用很少,基本上组合判断都还是序列检测方式。问题是序列规则能写多少确定规则,规则太多也有问题,无法应用;刚才提到确定规则,无法很好模糊匹配,也就是挖掘,安全中规则太确定就可以被绕过,黑客很聪明且借助自动化攻击更容易绕过这些规则。
2.图关联和溯源
刚才提到告警,也就是当前所有安全产品面临的另一个问题——要不是规则命中不了,要不就是规则命中太多,我们叫告警淹没,安全运营处理能力有限,可能一天 100 个告警还好,如果一天甚至一小时 10000 条告警就没法处理了,那和没告警没差别。
这其实是一个安全中关联分类和溯源的问题:
- 一次攻击会产生很多告警,比如:暴力破解登录,用了恶意文件,执行了恶意命令等等,关联分类把一次攻击中相关的告警关联在一起,这是图擅长的事情。这些告警关联在一起,还可以综合评判也就是多个告警联合判断当前攻击是否有效;
- 每个告警只会告诉你当前你是进程、文件、网络有问题,那这个问题是如何发生的,黑客是怎么进来的,文件是从哪里下载的,先干了什么后干了什么。安全产品需要帮助客户完成这个分析过程,目前行业是借助 SIEM/THP/SOC 等安全产品,所有原始事件都上传保存,找安全专家,从告警开始查原始事件日志,看告警前发生了什么,哪些有关系可能导致攻击,这个过程短则几分钟,长甚至数个小时。安全是个对抗过程,早就是优——越早发现越早对抗,封禁或隔离,否则就算发现也为时过晚。可以把相关的原始事件实体(进程/网络等)入图,借助图可以可视化探索和溯源整个攻击过程,这就是图溯源的过程,学术叫因果图、溯源图。
3.图知识图谱和预测
我们知道当前安全从根本上讲还是基于规则或者说先验知识,每种漏洞/木马/攻击工具/攻击过程/攻击组织都有它的特征,前几种规则还比较好描述,攻击过程、攻击组织等就很难完整描述了。
目前的主流做法是基于安全框架构建知识库,当前主流有 Kill Chain/ATT&CK 等框架,这是美国国防部主导的网络攻击战争相关两家公司提出的安全分析框架,相当于划分了攻击的战术和具体攻击技术的映射,这个具体如何实施比较难。安全学术界,比如:伊利诺伊大学/普渡大学近两年都在研究类似问题,也就是安全知识库(安全知识图谱)的构建。有了这个完善的知识库,就可以完成安全的终极设想,比如:我知道你的攻击过程/攻击组织,是不是就可以在攻击真正开始前,好比你打仗刚拿起枪冲到阵地上,判断你是要朝我开枪,预判直接击毙。
国内外现状
目前基于图的入侵检测系统,真正率先投入到实战中的是美国的安全明星公司——Crowd Strike,它完全基于图构建安全系统,现在相当于做了图检测和图关联溯源这两块的事情,目前估值 670 亿美元。云计算巨头 AWS 和 Azure 都在跟进它的方法。国内基于图做入侵检测系统的,目前有公开资料的是微步在线和深信服,他们相当于做了部分图关联和溯源的工作。
青藤云安全的万相和蜂巢在入侵检测深耕多年,已经取得了行业认可的安全检测能力,所以选择从图关联和溯源入手,基于 NebulaGraph 结合图技术开发的下一代实时入侵检测系统,先重点解决告警淹没和关联溯源的痛点问题。
青藤云安全下一代入侵检测系统
检测原理架构图
如下,核心是上报的攻击告警和部分原始事件统一在图中实时关联。
产品效果
经过关联引擎关联处理输出的就是攻击事件,一个攻击事件可能关联多个攻击告警并可视化呈现出来,当前产品效果图如下:
同一次攻击利用恶意文件和木马
敏感容器挂载
自定义脚本检测
NebulaGraph 的优势
选择 NebulaGraph 主要基于如下考虑:
- 图查询的刚需,特别是关联和溯源时多级进程关系查询,借助 Cypher查询图数据库能够比借助 SQL 在关系数据库中查询多级关系容易多;
- 大规模存储,涉及到大量事件和告警的存储;
- 高性能查询场景需求,关联需要保证近实时,当前相关查询都在 ms 级别;
得益于 NebulaGraph 的良好性能,关联引擎以近实时的方式入图和计算关联,入图部分是青藤自己基于 Flink 打造的实时入图组件,只需要更改配置文件即可完成图点边映射入图。
下一步研究方向和计划
当前青藤云安全新入侵检测主要支持单机和部分多机场景的关联和溯源,下一步重点是借助图支持更多多机关联的场景,特别是一些典型的安全攻击场景(反弹/横移),进一步以图赋能安全,为客户提供更好的服务。
当然,当前在将 NebulaGraph 应用到图安全应用过程中,也遇到了很多问题,提一些建议供参考。
1.下推优化
在开发过程中,极关心查询效率问题。我们在使用过程中,最大的问题就是下推优化,比如一颗发散的进程树,同时指定根节点和叶子节点,语句书写顺序不同就可能导致查询从叶子节点开始还是根节点开始,查询效率千差万别,最后不得不只指定叶子节点条件强制从叶子节点开始查。
MATCH 性能本质上也是下推优化问题,这个问题遇到也很多,目前我们的做法是对于部分已经查询过语句维持一个缓存池,也注意到官方企业版其实提供了部分缓存功能,这个点要是能考虑加到社区版就好了,是一个实际应用刚需。
2.实时场景一些技术需求点
因为我们是基于 NebulaGraph 做实时关联,一个较大的问题是如何实现一致性和速度的平衡——因为目前 NebulaGraph 实现的是最终一致性,写入图后其实是不知道到底是否真实入图完成。在实际应用中,关联引擎需要在下游轮询等待判断当前的点边是否真正的入图完成。这个对于实际使用和性能都会造成一定影响,是否有更好的方式值得思考。
另一块其实还是效率相关的问题,我们可以看到一些竞品 TigerGraph/TuGraph 都提供了自定义匹配/遍历算法和能力,比如:在我们多机关联场景中就遇到这种需求,目前只能通过拆分多条路径然后拼接起来的实现方式,效率和速度无疑是打折扣的。
3.TOB 部署
另一个,感受较深的是 NebulaGraph 对 TOB 部署的痛点。安全这个行业,目前国内还是走现场部署的较多,特别是国企和政务相关对上 SaaS 相对敏感,那么面临的问题就是效率和成本的问题——
第一个是单机部署,默认生产版本是为云设计的存算分离分布式部署方式,对于 TOB 部署还是太繁琐,且资源占用相对也较其他数据库多。
第二个是 HDD 部署,成本考虑,很多公司特别中小公司安全预算有限,很难提供 SSD 环境,更别说官网要求的大容量 SSD 高配置机器,也就是针对 HDD 和低配机器的优化上需要考虑更多。
以上,为青藤云安全团队工程师文洲带来的分享。
谢谢你读完本文 (///▽///)
要来近距离体验一把图数据库吗?现在可以用用 NebulaGraph Cloud 来搭建自己的图数据系统哟,快来节省大量的部署安装时间来搞定业务吧~ NebulaGraph 阿里云计算巢现 30 天免费使用中,点击链接来用用图数据库吧~
想看源码的小伙伴可以前往 GitHub 阅读、使用、(з)-☆ star 它 -> GitHub;和其他的 NebulaGraph 用户一起交流图数据库技术和应用技能,留下「你的名片」一起玩耍呢~
相关文章:

基于图的下一代入侵检测系统
青藤云安全是一家主机安全独角兽公司,看名字就知道当前很大一块方向专注云原生应用安全,目前主营的是主机万相/容器蜂巢产品,行业领先,累计支持 800万 Agent。当前公司基于 NebulaGraph 结合图技术开发的下一代实时入侵检测系统已…...

若依框架---树状层级部门数据库表
👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 Ǵ…...

【Mysql第十期 数据类型】
文章目录1. MySQL中的数据类型2.类型介绍2.2 可选属性2.2.2 UNSIGNED2.2.3 ZEROFILL2.3 适用场景2.4 如何选择?3. 浮点类型3.2 数据精度说明3.3 精度误差说明4. 定点数类型4.1 类型介绍4.2 开发中经验5. 位类型:BIT6. 日期与时间类型6.1 YEAR类型6.2 DAT…...
2023-2-9 刷题情况
删除子文件夹 题目描述 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就…...

Homekit智能家居DIY设备-智能通断开关
智能通断器,也叫开关模块,可以非常方便地接入家中原有开关、插座、灯具、电器的线路中,通过手机App或者语音即可控制电路通断,轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及,越来越多的人想将自己的家改…...
【java】EJB(Enterprise Java Bean)概述
EJB概述目录一、什么情况下需要企业Bean需要使用EJB的N个理由二、EJB的基本分类2.1、Enterprise Bean2.2、 Message Driven Bean(MDB)——消息驱动Bean,基于JMS三、定义客户端访问的接口3.1、 远程客户端——客户端与其调用的EJB对象不在同一个JVM进程中3.2、本地客户端——客户…...
Android 10.0 Launcher3桌面禁止左右滑动
1.1概述 在10.0的rom定制化开发中,由于Launcher3有一些功能需要定制,这样的需求也好多的,现在功能需求要求桌面固定在Launcher3的app列表页,不让左右移动,就是禁止左右移动的功能实现,所以需要禁止滑动分析页面滑动部分的功能,然后禁用 2.1Launcher3桌面禁止左右滑动的核…...
日期类的实现
文章目录1. 日期类的具体实现1.查询当前月份的天数2. 构造函数的实现(注意)3.d1d24. d1!d25. d1<d26. d1<d27. d1>d28. d1>d29. 日期天数10.日期天数11.日期-天数12. 日期-天数13. d和 d14. --d 和 d--15.日期日期 返回天数2. 函数的声明——date.h3. 函数的定义—…...

2022年这5款熟悉的软件退出了历史舞台
在过去的一年里,有很多新产品发布,当然也有很多产品与我们就此别过。这些产品曾陪伴我们的生活,给我们带来欢乐,帮助我们成长。所以本文将盘点一下在2022年和我们告别的产品。1.微软IE浏览器IE浏览器1995年8月16日正式上线&#x…...

用Nginx打包部署vue3项目及404和500解决
打包vue3 npm run build安装Nginx 这里安装步骤比较繁琐,现在服务器比较便宜,如果想用Nginx,可以去菜鸟教程https://www.runoob.com/linux/nginx-install-setup.html 配置安装一下找到安装路径下的 conf 文件夹 下 nginx.conf文件࿰…...

Java面试——多线程并发篇
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

维基百科数据抽取
1. 数据路径 https://dumps.wikimedia.org/enwiki/latest/ ----英文 https://dumps.wikimedia.org/zhwiki/latest/ ----中文 https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 --下载最新的 https://dumps.wikimedia.org/wikidatawiki/2023…...

2020年因果推断综述《A Survey on Causal Inference》
最近阅读了TKDD2020年的《A Survey on Causal Inference》,传送门,自己对文章按照顺序做了整理,同时对优秀的内容进行融合,如有不当之处,请多多指教。 文章对因果推理方法进行了全面的回顾,根据传统因果框…...
嵌入式linux系统测试程序编写
文章目录 网络CPU load监测性能设定开源测试工具iozone —— 文件系统测试工具iperf —— 网络性能测试工具LMbench —— 系统性能评测LTP —— linux功能/性能压力测试memtester —— 内存测试,坏位检测stressapptest —— 内存流量压力测试stream —— 内存性能测试fio ——…...

力扣SQL刷题5
目录597. 好友申请 I:总体通过率602. 好友申请 II :谁有最多的好友603. 连续空余座位1045. 买下所有产品的客户597. 好友申请 I:总体通过率 官方讲的题目太繁琐了,大概就是(表2中列1列2不全相同的行数)/&a…...

动态规划详解(完结篇)——如何抽象出动态规划算法?以及解题思路
今天直接开始讲解FIRST:如何抽象出动态规划算法?这个问题,困扰了无数代OIER,包括本蒟蒻在比赛的时候,看一道题,怎么想到他是什么算法的呢?这就需要抽象能力而不同的算法,往往有着不同…...

C语言一维数组篇【下】——每日刷题经验分享
一维数组篇——每日刷题经验分享~😎前言🙌有序序列插入一个整数 😊序列中删除指定数字 😊序列中整数去重小乐乐查找数字筛选法求素数总结撒花💞😎博客昵称:博客小梦~ 😊最喜欢的座右…...

VHDL语言基础-组合逻辑电路-其它组合逻辑模块
目录 多路选择器: 逻辑功能: 常用的类型: 4选1多路选择器的实现: 求补器: 求补器的实现: 三态门: 三态门的应用实例: 三态门的实现: 缓冲器: 什么是…...

初识Vue
文章目录1. 前言2. Vue 的特点3. 安装 Vue4. HelloWord1. 前言 vue是什么 ? 引用 : vue.js 文档 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层…...

TOUGH系列软件建模实践方法及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
查看原文>>> https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247578057&idx7&sn75f8d2c1c6edb28af76a8db4bb773de3&chksm9be2aed9ac9527cf0081082cdcf781e6c37f9f3ba383332ed1116abcbee0f05c0593187e964d&token2070450548&langzh_CN#r…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】
1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
经过前面几期的内容我们学习了很多网络安全的知识,而这期内容就涉及到了前面的第六期-RCE模块,第七期-File inclusion模块,第八期-Unsafe Filedownload模块。 什么是"遍历"呢:对学过一些开发语言的朋友来说应该知道&…...
软件工程教学评价
王海林老师您好。 您的《软件工程》课程成功地将宏观的理论与具体的实践相结合。上半学期的理论教学中,您通过丰富的实例,将“高内聚低耦合”、SOLID原则等抽象概念解释得十分透彻,让这些理论不再是停留在纸面的名词,而是可以指导…...