当前位置:首页 > 技术知识 > 正文内容

应用安全如何保障?来自字节跳动的实践分享

maynowei9个月前 (09-23)技术知识107

随着企业数字化转型不断深入,企业核心应用的安全愈发重要。应用层集合外部、内部和供应链三种攻击来源的各类威胁,常常成为业务架构中被攻击的入口,单一的防护方案很难实现全面防御。如何有效实现应用安全?这一问题是火山引擎云安全团队长期关注与重视的,并结合字节跳动应用安全积累了丰富的实战经验。

在刚刚结束的2022 CCS 成都网络安全大会上,来自火山引擎的信息安全工程师潘玺廷,进行《字节跳动应用运行时如何防护》的主题分享

生产环境主机威胁

生产环境攻击来源可以归类为外部、内部和供应链。对于一台主机,这三种攻击来源会实施在不同的作用域:对于 Linux 内核与用户态会有常见的恶意软件或是 Linux 漏洞风险,对于容器层会有更难以约束的镜像问题或是集群配置问题。本次分享的重点在应用层防护,这是一台主机最主要的攻击入口,这里集合了三种攻击来源的各类威胁。

为了应对应用层不同作用域、不同来源、不同方式的威胁,火山引擎结合字节跳动多年的实践应用经验,研发了针对不用作用域的 Elkeid 解决方案。

Elkeid 解决方案包含端上统一的 Agent 以及各个能力插件,为客户提供内核信息与事件采集、用户态查杀与基线、容器与集群审计、RASP 防御等安全能力,帮助客户应对在应用层不同作用域、不同来源、不同方式的威胁。火山引擎 Elkeid 解决方案能够满足企业服务器端的入侵检测,合规,审计等需求,同时实现对应用层的全面防御。

其中火山引擎 Elkeid RASP 是火山引擎云安全团队自研的一种应用安全防御技术,通过对应用运行时植入探针来采集运行时的关键信息,并分析运行时行为产生及时告警。

潘玺廷介绍了火山引擎 Elkeid 如何通过 RASP 技术,确保对业务生产环境和应用层实现有效的安全防护。

Elkeid RASP 兼容适配

火山引擎在自研 Elkeid RASP 技术前,就对该应用安全防御技术的适配兼容和快速部署进行了高要求,希望 RASP 能在采集、检测外具备旁路部署的能力,并且同时支持在多种语言环境下的使用。

因此,火山引擎 Elkeid RASP 技术对于
Node.JS/JVM/PHP/CPython/Golang 语言都是利用语言特性或相关接口来完成旁路部署的,并且在部署指令与上报信息的过程中,都能通过 Elkeid 技术栈与 Server 交互。

Elkeid RASP 防护策略

为了实现对业务运行过程中信息的全面采集,并对识别出的告警信息进行及时推送,火山引擎 Elkeid RASP 采用以下防护策略:

  1. RASP 的数据采集会覆盖目标应用的进程、网络与文件,并基于最小 Hook 原则,实现最小的资源占用;
  1. 通过 Elkeid-HUB 技术的强大流式编排计算能力,确保 RASP 能够对上报数据完成快速策略计算;
  1. RASP 探针原始上报的数据将会持续经过 HUB 的计算,生成的告警可以直接推送到安全工程师的通讯工具或是 CWPP 工作台中。

火山引擎 CWPP 是为了满足企业在复杂架构下安全需求的产品,帮助企业在一体式的解决方案下更好保障云上、云下工作负载安全。

  1. 通过构建 Elkeid-HIDS 与 Elkeid-RASP 共同监控的沙箱,同时对上游 package 及时订阅并分析,可以得出更早期的上游恶意包信息。

Elkeid 联动与溯源

当确认发现入侵行为后,安全工程师首要的工作便是要解决这些问题:

  • 入侵者是哪里进入的?
  • 入侵发生了多久?
  • 多少资产受到影响?
  • 入侵者的完整路径与操作是什么?

火山引擎Elkeid可以通过与 CWPP 实现快速联动,将发现到的安全告警实时发送给 CWPP 进行快速处置,通过告警溯源能力有效解决以上问题。

火山引擎 CWPP 通过自研存储层实现对原始数据存储的低成本存储和高效查询,该方案可以支持PB级原始数据的秒级查询,当产生安全告警后,CWPP 溯源引擎会尝试通过将告警与原始数据关联查询以达到还原现场的能力。

CWPP是为物理机、虚拟机、容器和无服务器工作负载提供一致的保护和可见性的安全产品。火山引擎 CWPP,脱胎于字节跳动主机安全团队,该项目在字节跳动内部解决了千万级容器的反入侵与溯源需求欢迎点击阅读原文,试用火山引擎 CWPP。

目前火山引擎 Elkeid 已将完整采集能力开源——

Github: https://github.com/bytedance/Elkeid

Home Page: https://elkeid.bytedance.com

在未来,火山引擎 Elkeid 将持续结合整体网络环境,和字节跳动内部实践、技术创新,为企业用户提供更为全面的主机安全解决方案。

相关文章

如何快速将axure生成的原型放到手机上演示

人人都是产品经理旗下【起点学院】推出产品经理“365天”成长计划,BAT大牛带你学产品! 之前Axure官方有一个原型在线分享演示的平台,用户可以直接生成原型到Axure官方平台,方便用户提供演示:h...

Objective-C的本质(objective-c的特点)

我们平时编写的Objective-C代码,底层实现其实都是C\C++代码,所以Objective-C的面向对象都是基于C\C++的数据结构实现的OC对象的本质Objective-C的对象、类主要是基于...

Android主流UI开源库整理(android完整开源项目)

前言最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...

Shopee新手指南:Shopee卖家中心用户界面介绍

1.Shopee各站点前台网页链接:2.Shopee各站点后台网页链接3.Shopee APP下载:安卓版下载链接:https://pan.baidu.com/s/1eSp8M1k#list/path...

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

C# 中的多线程同步机制:lock、Monitor 和 Mutex 用法详解

在多线程编程中,线程同步是确保多个线程安全地访问共享资源的关键技术。C# 提供了几种常用的同步机制,其中 lock、Monitor 和 Mutex 是最常用的同步工具。本文将全面介绍这三种同步机制的用...