查看原文
其他

安全日志那些事

乌雲安全 2023-06-08

The following article is from FreeBuf Author Nan3r

背景


先说说当前背景,本人从一线红队(拿过大HVV第一)转为一个人的安全部也有两年的时间了,公司属于金融科技行业。金融科技类的公司并不直接受到银监会的监管,但是会遵守银行的安全要求,算间接受到监管。


10月18日,银保监会公布监管责任单位名单,包括4604家银行业金融机构法人、232家保险机构法人、2621家保险专业中介机构法人、115家外国及港澳台银行分行、7家外国再保险公司分公司。


为什么要先说明这个?这主要是由于金融行业的特殊性质和其关键的信息系统安全需求所决定的,对应金融行业的业务流程/风控都已经非常完善,按部就班执行就问题不大。基于金融数据的规范性和通用性,监管机构对金融业信息安全有着非常严格的要求,建立信息安全标准更加快速且具有实用性,对金融业日常安全工作的开展提供指导方针。比如证监会针对证券类行业专门发布了**《证券期货业数据分类分级指引》,用于指导行业的数据安全的落地。又比如《金融数据安全数据安全分级指南》(JR/T 0197—2020)**直接帮金融银行类行业划分了大部分的数据类型和对应的安全等级要求,给不知道数据安全如何下手的企业指明了方法论和实践方法。


有些同学可能还不知道怎么去获取相关标准规范,对于金融行业类的标准可在https://www.cfstc.org/bzgk/查询,国家类的标准可在https://openstd.samr.gov.cn/bzgk/gb/index查询,甲方安全第一要务肯定是要合法合规。



调研


背景说完了,本篇文章主要是讲一个监管要求必须落地的安全日志


  1. 保留时间要求:根据国家相关法律法规和规范性文件的要求,金融机构需要保存安全日志的时间一般不少于6个月,有些机构甚至要求长达3年。

  2. 内容要求:金融机构的安全日志应该记录所有的系统操作和安全事件,包括但不限于用户登录、文件访问、系统设置修改、网络连接、安全告警、安全漏洞等。

  3. 安全性要求:金融机构的安全日志必须具备完整性、可追溯性、保密性和不可篡改性。同时,还要求实现日志实时采集、传输、存储和分析等安全保障措施。

  4. 日志分析要求:金融机构需要通过对安全日志的分析,发现潜在的安全威胁和漏洞,并及时采取相应的安全措施。因此,对于大规模的金融机构来说,需要建立专门的安全日志分析系统和团队。

首先制定相关技术要求进行市场调研,所以我们要定好一个安全日志系统需要满足哪些条件:


  1. 日志收集能力:评估系统收集日志的能力和范围,包括支持的操作系统、设备、应用程序和协议等。

  2. 日志存储能力:评估系统存储日志的能力和容量,包括存储介质、存储方式、数据保护和恢复等。

  3. 日志分析能力:评估系统对日志数据的分析能力,包括实时分析、离线分析、自定义查询、可视化分析和报告等。

  4. 安全性能力:评估系统的安全性能力,包括日志加密、访问控制、审计跟踪和完整性保护等。

  5. 灵活性和可扩展性:评估系统的灵活性和可扩展性,包括支持的部署模式、集成接口、可编程接口和可配置性等。

  6. 性能和稳定性:评估系统的性能和稳定性,包括日志处理速度、响应时间、并发处理和容错能力等。

  7. 成本效益:评估系统的成本效益,包括购买成本、部署成本、维护成本和升级成本等。

按照成本来看,其实主要是基于公司的安全预算来,分为两类:商业和开源,以下是商业和开源的安全日志系统的对比表格:


特点商业安全日志系统开源安全日志系统
成本需要付费购买和许可证费用免费
技术支持提供技术支持、更新和维护服务需要自行维护和更新系统
安全保障具有高级的安全保障能力,包括日志加密、访问控制和审计跟踪等功能可能缺乏商业安全日志系统的高级安全保障能力
易用性通常具有更好的用户界面和易用性需要一定的技术知识和经验
开放性依赖于厂商提供的技术支持和更新,用户可能无法自由地修改和定制系统通常具有更高的开放性和灵活性,用户可以自由地修改和分发
社区支持通常有更多的支持文档和社区支持通常有更多的社区支持和文档
可扩展性可以与其他商业系统和工具进行集成通常具有更高的可扩展性,可以与其他开源系统和工具进行集成


如果预算充足建议直接上商业产品,可在大企业环境中解脱安全人员的运维工作,国外/跨国企业可参考如下产品(Splunk yyds):

  1. Splunk Enterprise:Splunk是一个领先的商业安全日志系统,它可以快速地收集、索引、分析和可视化各种类型的日志数据。Splunk提供了丰富的查询语言和可视化工具,帮助用户快速识别安全威胁并采取适当的措施。

  2. IBM QRadar:IBM QRadar是一个基于事件的安全情报平台,它可以从各种数据源收集、分析和管理日志数据。QRadar具有强大的事件管理和响应功能,可以帮助用户快速检测和响应安全事件。

  3. LogRhythm:LogRhythm是一个综合性的安全信息和事件管理平台,它可以快速识别和响应各种类型的安全事件。LogRhythm提供了强大的日志管理和分析功能,可以帮助用户发现隐藏的安全威胁。

  4. McAfee Enterprise Security Manager:McAfee Enterprise Security Manager是一款领先的安全事件和信息管理系统,它可以帮助用户快速识别和响应安全事件。该系统具有强大的日志分析和可视化功能,可以帮助用户更好地理解安全威胁。

国内的可参考如下:

  1. 神州数码-神州安全日志管理系统:神州安全日志管理系统是一款基于大数据、人工智能和云计算等技术的安全日志管理系统。它具有实时监控、自动告警和智能分析等功能,可以帮助用户快速识别和响应安全事件。

  2. 安恒-明御安全日志管理系统:明御安全日志管理系统是一款专业的安全日志管理系统,它具有实时采集、分析和报告等功能。该系统提供了丰富的分析工具和报告模板,可以帮助用户快速识别安全威胁。

  3. 启明星辰-启明星辰安全日志管理系统:启明星辰安全日志管理系统是一款基于日志收集、分析和可视化的安全日志管理系统。它可以帮助用户快速识别和响应安全事件,并提供了丰富的报告和可视化工具。

  4. 华为-飞腾日志管理系统:飞腾日志管理系统是华为推出的一款基于飞腾芯片的安全日志管理系统。它具有高效的日志收集和处理能力,可以帮助用户快速识别和响应安全事件。

如果预算不充足(比如我司),免费开源的安全日志系统就是我的刚需:

  1. Elastic Stack:Elastic Stack是一套开源的日志管理和分析平台,包括Elasticsearch、Logstash和Kibana等组件。它具有强大的搜索、分析和可视化功能,可以快速识别安全威胁。

  2. Graylog:Graylog是一款基于开源技术的日志管理和分析平台,可以帮助用户实时监控、分析和报告日志数据。它提供了丰富的日志收集和处理工具,适用于各种规模的组织。

  3. Fluentd:Fluentd是一款轻量级的开源日志收集和处理工具,它可以帮助用户将各种类型的日志数据集中管理和分析。Fluentd具有高度可定制化和灵活性,适用于各种环境和场景。

  4. OSSEC:OSSEC是一款开源的主机入侵检测系统,它可以帮助用户实时监控系统的安全状态,并及时发现和响应安全事件。该系统具有强大的日志管理和分析功能,可以帮助用户识别和分析安全威胁。

在调研和安装试用以上4个系统后,选择Elastic 来做安全日志系统(首先要破解成高级版)。因为当前业务系统使用的也是ELK来搜集业务日志,安装上会减少工作量,也满足安全日志系统的技术要求,且易于维护不会增加过多的学习成本,可快速上线使用。

实现


要使用Elastic Stack搜集安全日志遵循以下步骤,其实跟业务系统的日志采集类似,区别在于此beat采集系统安全日志:

  1. 安装Elasticsearch、Logstash和Kibana等组件:用户需要先在服务器上安装Elastic Stack的各个组件,具体安装方法可以参考官方文档或相关的在线资源。

  2. 配置Logstash:Logstash是Elastic Stack的数据搜集和转换工具,用户需要配置Logstash来收集和解析安全日志数据。用户可以编写自定义的Logstash插件来处理各种类型的安全日志数据,也可以使用现有的插件,主要分割日志数据可用于后面检测。

  3. 部署Kafka:用户需要从Apache Kafka的官方网站下载Kafka的安装包,并将其解压缩到目标服务器上。安装方法因不同操作系统而异,具体请参考官方文档。

  4. 部署Auditbeat:Auditbeat是Elastic Stack的轻量级数据搜集器,可以帮助用户收集分布式系统的日志数据。用户需要在分布式系统中部署Auditbeat,然后配置Auditbeat发送数据到kafka,Winlogbeat也类似配置,所有日志都发送到Kafka。

  5. 配置syslog:可将各种路由器、交换机等网络设备,安全设备的日志等支持syslog协议的日志都可以发送到logstash。

安装完毕后,就要做安全相关的事情:

  1. 导入检测规则,在security->rules,选择load elastic prebuilt rules,即可加载内置的安全检测规则,也可从社区的规则库下载后定时更新:https://github.com/elastic/detection-rules,碰到突发的事件比如挖矿/勒索,也可自己编写规则支持EQL和KQL的语法,参考官方文档https://www.elastic.co/guide/en/security/current/rules-ui-create.html,比如检测是否从堡垒机登录Linux生产区机器。

  2. 日志检测:在alerts处就可以看到检测到的对应恶意日志详情,这里就需要判断如果为误报,可点击对应日志添加规则白名单排除此类日志。

  3. Dashboard建立:为了建立一个可视化的安全态势,在analytics->dashboard创建对应索引的dashboard,比如winlogbeat的索引,可查看所有用户的登录情况。

  4. 告警聚合:通过定期5分钟的查询Kibana .siem-signals-default索引的API,获取安全日志的告警信息推送到安全运营平台或者告警到企业微信/邮件/钉钉等。

  5. 安全运维:一旦系统整个建立起来后,主要是维护集群的稳定,比如由于日志较多可设置Lifecycle定期删除6个月前的日志,定期更新相关检测规则,定期生成安全报表。

总结


本文主要介绍如何查询国家标准,基于标准的相关要求调研市面上的商业和开源安全日志系统。ELK确实比较适合中小型企业,服务器数量不多,扩展容易,容易维护,遇到问题可快速在社区找到答案,满足标准中安全日志系统的技术要求,安全规则多且持续更新,日志分布式存储不用担心丢失等优势。实现这套安全日志系统的过程写的比较简略,对第一次使用ELK的同学来说其中可能有很多坑,因为我就踩了很多,主要是导入检测规则和ELK集群运维的问题。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存