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

ClickHouse与威胁日志分析

本文转载自微信公众号“新浪安全中心”,原文作者:糖果LUA概要威胁分析现在已经成为日常工作的一部分。基于ELK这种大数据工
  本文转载自微信公众号“新浪安全中心”,原文作者:糖果LUA

  概要

  威胁分析现在已经成为日常工作的一部分。基于ELK这种大数据工具已经成为日志分析的一个很流行的选择方案,开源免费部署方便,对日志的检索及汇聚提供很好的用户体验。之前糖果实验室就介绍过基于Graylog这种类ELK工具的整体日志处理方案。在经过生产实践后的体会总结,发现了这种日志处理方案的好处,也发现了不足。随着后续系统不断接入新的安全日志数据,更多校的日志分析需求来讲,系统变的会越加复杂。针对复杂的策略查询,有时我们基于ES和REST API的日志数据提供方式,在处理复杂查询开发时,开发效率会随着规模变大而变慢,我们需求一种更高抽象级别,和业务数据的直接关联的业务性语言,类似于SQL或是DSL一样的操作指令,让安全策略实现的落地成本降低。

  ELK模式回顾

  为从上层部署更好说明问题,我们用卡通一点的方式来描述系统结构,不涉及到更多的负载均衡和线路保障这种细节点。我们先回忆一下基于类似Graylog的日志分析方案。日志的数据的被封装抽象成Stream流的概念,引用Pipeline管道,把日志从逻辑上进行更高一级的抽象,这样我们不对直接面对文件和索引这些概念,有了Stream、Input、Output、Pipeline、这种概念的模式设计,可以更好的把原生的日志数据更好的归类和业务靠近。ClickHouse与威胁日志分析

  从日志的收集、到数据的格式化、到ES存储、到REST API数据对外提供查询、到自动化查询、到数据的可视化是我们一般的使用套路,我们在这条思路上耕耘了有一段时间,更多的文章可以参考糖果实验室之前的文章,这里就是高度的概括一下这种系统的结构。

  战斗民族的武器ClickHouse

  我们再介绍一下基于ClickHouse的数据采集分析方案。其实从数据的收集、处理、查询、展示,对用户来说体验上大多数也有几分类似,不同的一点是ClickHouse提供SQL方式的查询。本身Graylog这种也内含了MongoDB和Kafka等部件,而ClickHouse不是一种集成的解决处理方案。 相对简化的介绍一下。从系统部署构成来看,很相似。
ClickHouse与威胁日志分析

  方案间的差异性

  ClickHouse和ES是两种不同的数据检索引擎。ClickHouse提供了基于SQL的查询功能, ClickHouse对SQL支持和性能如何,在后期我们会给出相关的数据。像Graylog这种整体解决方案,提供了自己的数据查询DSL,但这种DSL是独立于Graylog本身的系统,而SQL具有更强的通用性。ES也支持ES SQL,但这点上就是谁用谁知道了。这两种方案核心的区别在于ES和ClickHouse不同的数据检索方案,安全业务会针对不同的数据产生不同的安全审计需求。对于数据收集和数据的展示的都是类似,当然ES也有ES SQL,但这不是SQL之间区别,而是两种生态和设计的不同。
ClickHouse与威胁日志分析

  我们可以类似使用MySQL的方式来使用ClickHouse的表, 被监控服务器将自身的数据通过特定的工具推送Kafka上,ClickHouse端去取得推送的数据,然后将数据存到二维数据结构的表中,之后我们就可以使用SQL语名去实现日志安全自动审计。Graylog这种类ELK的服务我们已经在生产中使用了,基于REST API为核心的设计很方便前端和移动端的审计应用扩展。基于威胁数据分析,我们基于ClickHouse实验出新的解决方案,重要针对的是复杂的数据检索和业务数据碰撞。有了SQL这种高抽象实现,减少纯代码对DSL操作依赖,代码写的少了,安全策略都被翻译成SQL语句,但同时底层的引擎又不一样。

  方案间的共性

  对于使用者来说,这两个方案总体思路上还把日志和“流”和“管道”联系在一起,逻辑上的日志数据流向,无论采用什么样的工具和存储,日志数据聚合模式都类似,只是协议上,是采用syslog协议,还是JSON协议,还是两者都支持,基于数据汇聚的角度来说,两种方案都可以达到目标。但对安全策略实现,那种方案更快,更方便,后续我们还会有新实验内存和数据实现。最大的共性,就是数据收集到外放数据的模式类似。
ClickHouse与威胁日志分析

  上面的图大大的简化了实际生产中的服务物理部署,用单点代替集群。简化到最后,就可以相对清晰的看到日志数据的流向。从访问者在请求服务者时产生的数据,到数据推送到Kafka队列,再由Kafka消费者消费数据给ClickHouse存储,然后提供Openresty为基础的API网关,再提供给API使用者作用。  ClickHouse与威胁日志分析

  基于Graylog、ELK的API网关是基于ES的数据检索,网关会把安全策略转换成查询, 而基于ClickHouse的API网关,采用的就是基于ClickHouse的SQL查询为基础的安全策略落地执行。我们在设计系统时,让安全策略和系统不依赖,或者说通用的安全策略不考虑实现的方案到底是ELK还是ClickHouse, 只要是安全分析策略,用一种脚本或是类似DSL的语言可能解析和执行即可。

  总结

  ClickHouse是战斗民族的产品,CloudFlare公司已经用于生产分析中,也将继续探索这些产品的新动向和实践。将流量分析和日志分析统计结合起来分析威胁,发现威胁。一些系统形式都是手段,系统可以实现安全人员的策略并行之有效的解决安全问题,是实践要达成的目标。我们可以基于ClickHouse开发更高级抽象的DSL描述安全的人员的安全策略与其它系统联动,完成威胁的分析与防护。后续会介绍一些相关的设计和工具及代码。


推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • 基于Dubbo与Zipkin的微服务调用链路监控解决方案
    本文提出了一种基于Dubbo与Zipkin的微服务调用链路监控解决方案。通过抽象配置层,支持HTTP和Kafka两种数据上报方式,实现了灵活且高效的调用链路追踪。该方案不仅提升了系统的可维护性和扩展性,还为故障排查提供了强大的支持。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 如何使用mysql_nd:Python连接MySQL数据库的优雅指南
    无论是进行机器学习、Web开发还是爬虫项目,数据库操作都是必不可少的一环。本文将详细介绍如何使用Python通过 `mysql_nd` 库与 MySQL 数据库进行高效连接和数据交互。内容涵盖以下几个方面: ... [详细]
  • (1)前期知识:1. 单机架构:单一服务器计算机——其处理能力和存储容量有限。2. 集群架构(负载均衡器与多节点服务器)——通过增加节点数量来提升系统性能和可靠性,实现高效的任务分配和资源利用。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
author-avatar
mobiledu2502895435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有