热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

「驭龙」开源主机入侵检测系统了解一下

传送门:「驭龙」Linux执行命令监控驱动实现解析 0x00 简介驭龙HIDS是一款由 YSRC 开源的入侵检测系统,由 Agent, Daemon, Server 和 Web 四个部分组成。集异常检

传送门:「驭龙」Linux执行命令监控驱动实现解析

 

0x00 简介

驭龙HIDS是一款由 YSRC 开源的入侵检测系统,由 Agent, Daemon, Server 和 Web 四个部分组成。集异常检测、监控管理为一体,拥有异常行为发现、快速阻断、高级分析等功能,可从多个维度行为信息中发现入侵行为。

简单的讲,驭龙提供了一个OSSEC/OSSIM之外的开源HIDS选择。对于“一个人的安全部/没有钱的安全部”来说,是一个功能更丰富,二次开发门槛更低一些的“轮子”。

除了agent中涉及到驱动的部分是c写的,其他后端、web都是golang写的,天然跨平台。agent支持32位/64位win、linux环境,后端所依赖的Elasticsearch、MongoDB本身也支持多平台,所以后端部署在win、linux皆可。如果只有小几百个agent部署实例,最少单台机器就能支撑。

0x01 功能特点



  • 实时监控、秒级响应

  • 全局首次出现概念,可发现未知威胁

  • 支持自定义规则,高扩展性

  • 高级分析功能,可溯源

  • 全局快速阻断(进程、文件)

  • 威胁情报查询(可自定义接口)


0x02 整体架构

Agent为采集者角色,收集服务器信息、开机启动项、计划任务、监听端口、服务、登录日志、用户列表,实时监控文件操作行为、网络连接、执行命令,初步筛选整理后通过RPC协议传输到Server节点。

Daemon为守护服务进程,为Agent提供进程守护、静默环境部署作用,其任务执行功能通过接收服务端的指令实现Agent热更新、阻断功能和自定义命令执行等,任务传输过程使用RSA进行加密。

Server为整套系统的大脑,支持横向扩展分布式部署,解析用户定义的规则(已内置部分基础规则)对从各Agent接收到的信息和行为进行分析检测和保存,可从各个维度的信息中发现webshell写入行为、异常登录行为、异常网络连接行为、异常命令调用行为等,从而实现对入侵行为实时预警。

架构图

测试演示

0x03 web 控制台



  • 控制台拥有以下功能:统计查看、主机查看管理、数据分析、告警处理、任务推送、规则配置、系统设置。

展示驭龙HIDS的各项数据信息,包括:警报分布、警报信息TOP、警报类型统计、主机数、任务、数据总览等等。



  • 主机列表


    展示当前已部署agent的主机列表,可通过搜索功能和快速标签进行筛选并进行实时监控主机行为和查看关键信息。




  • 主机信息查看

  • 实时监控

  • 警告所有触发规则的记录都会在此显示,通过此面板进行处置,网络连接、进程和文件可在此面板进行全网阻断。

  • 任务可通过此功能对指定主机发送任务指令,包括以下:



  • kill: 结束进程(传入进程名)

  • uninstall: 卸载自身

  • update: agent更新

  • delete: 文件删除(传入文件路径)

  • exec: 自定义命令(这个功能其实比较“危险”,所以对外发布的代码中我们注释掉了。如需启用这个功能,请去掉注释,自行编译agent)

  • reload: 重启agent

  • quit: 结束自身



  • 规则引擎定义告警规则,可通过此面板进行添加、修改、删除、启用、关闭、导出,具体格式可查看规则编写文档。

其他还有些设置相关的,这边就不再贴了。

0x04 规则

具体的规则格式、结构、字段定义请参照Github上的文档。

这里引用职业欠钱前辈写的《大型互联网企业入侵检测实战总结》中关于入侵检测基本原则的描述,在定义规则的时候可以思考一下。


  1. 不能把每一条告警都彻底跟进的模型,等同于无效模型 ——有入侵了再说之前有告警,只是太多了没跟过来/没查彻底,这是马后炮,等同于不具备发现能力;

  2. 我们必须屏蔽一些重复发生的相似的误报告警,以集中精力对每一个告警都闭环掉 —— 这会产生白名单,也就是漏报,因此单个模型的漏报是不可避免的;

  3. 由于任何单模型都会存在漏报,所以我们必须在多个纬度上做多个模型,形成纵深 —— 假设WebShell静态文本分析被黑客变形绕过了,在RASP(运行时环境)的恶意调用还可以监控到,这样可以选择接受单个模型的漏报,但在整体上仍然不漏;

  4. 任何模型都有误报漏报,我们做什么,不做什么,需要考虑的是“性价比” —— 比如某些变形的WebShell可以写成跟业务代码非常相似,人的肉眼几乎无法识别,再追求一定要在文本分析上进行对抗,就是性价比很差的决策,通过RASP的检测方案,其性价比更高一些;

  5. 我们不可能知道黑客所有的攻击手法,也不可能针对每一种手法都建设策略(不具备性价比),但是,针对重点业务,我们可以通过加固的方式,让黑客能攻击的路径极度收敛,仅在关键环节进行对抗(包括加固的有效性检测)可能会让100%的目标变得现实


基于上述几个原则,我们可以知道一个事实,或许,我们永远不可能在单点上做到100分,但是,我们可以通过一些组合方式,让攻击者很难绕过所有的点。

更多细节的介绍以及系统部署、编译步骤、规则编写的文档请参照GitHub  https://github.com/ysrc/yulong-hids

0x05  又及

驭龙项目目前的开源版本已经可以正常使用,基础功能也基本都有了。

但是目前并没有完全开发完毕,这边列了一些 To do:


  • 建立入侵行为case库,自动化重放case模拟测试

  • 机器学习判断可疑行为,作为规则之外的补充

  • 资产盘点,例如识别补丁,应用版本、负责人,各种包/kernel版本…辅以漏洞库,能更快速的应急响应,哪些必须要修,那些不修可以接受

  • 区分通讯模式(主动、被动)

  • 使用消息队列代替RPC

  • 基线核查,没有代码能力的社区成员也可以整理好相关文档,YSRC来实现

  • 幻影蜜罐,agent动态代理蜜罐端口,大规模提升蜜罐覆盖密度

  • 支持多场景(办公环境、Docker),目前驭龙仅适合线上服务器环境

  • 轻量级的linux内核防护,在不升级内核的情况下,免疫一些攻击

除了希望社区在二次开发过程中会回馈一部分代码给上游之外,YSRC这边急需补充一些人手:

渗透测试核心,不限学历,要求无黑产经历,熟悉各种渗透姿势,猥琐流;

资深golang开发,配合安全同事、带领开发同事进行功能及架构迭代;

具体JD就不写了,跟大部分厂商的要求大同小异。

地点base苏州,感兴趣的可以关注公众号后对话或者发送简历至 sec@ly.com

最后,感谢驭龙项目的两位核心开发同事 wolf、nearg1e,贡献了驱动代码的Z000000、mlsm,帮助review驱动代码的 taylor3768,以及对外测试期间提供了协助、反馈及建议的 kingjin、superhuahua、Johnny

你们的贡献在开源社区留下了自己的印记

we salute you~

YSRC 坚持开源不易,git clone 的时候顺手转发一下文章吧

关注公众号后回复 驭龙,加入驭龙讨论群。


推荐阅读
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 本文将介绍如何利用Python爬虫技术抓取国内主流在线学习平台的数据,并以51CTO学院为例,进行详细的技术解析和实践操作。 ... [详细]
  • ODBC介绍:开放式数据库连接详解
    本文详细介绍了ODBC(开放式数据库连接),这是一种允许应用程序访问多种数据库系统的标准API。自1992年由微软与Simba合作推出以来,ODBC已成为跨平台数据访问的重要标准。 ... [详细]
author-avatar
mobiledu2502914555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有