falco 【3】 default macros

简介: falco 【3】 default macros

falco default macros

tags: falco,安全

文章目录

falco default macros

为写入而打开的文件

打开文件以供阅读

从不真实

永远真实

进程名称已设置

文件系统对象重命名

已创建新目录

文件系统对象已删除

文件系统对象已修改

新进程产生

二进制文件的公共目录

Shell 已启动

已知敏感文件

新创建的进程

出站网络连接

入站网络连接

对象是一个容器

交互过程产生

通用 SSH 端口

允许的 SSH 主机

用户列入白名单的容器

允许生成shell的容器

允许与 EC2 元数据服务通信的容器

Kubernetes API 服务器

允许与 Kubernetes API 通信的容器

允许与 Kubernetes 服务节点端口通信的容器

上篇我们学习falco的规则运用,其中宏(macro)是指可重用方式定义规则的公共子部分的方法。

Falco 规则集定义了许多宏,可以更轻松地开始编写规则。这些宏为许多常见场景提供了快捷方式,并且可以在任何用户定义的规则集中使用。Falco 还提供了应该由用户覆盖的宏,以提供特定于用户环境的设置。提供的宏也可以附加到本地规则文件中。

为写入而打开的文件

- macro: open_write
  condition: (evt.type=open or evt.type=openat) and evt.is_open_write=true and fd.typechar='f' and fd.num>=

打开文件以供阅读

- macro: open_read
  condition: (evt.type=open or evt.type=openat) and evt.is_open_read=true and fd.typechar='f' and fd.num>=0

从不真实

- macro: never_true
  condition: (evt.num=0)

永远真实

- macro: always_true
  condition: (evt.num=>0)

进程名称已设置

- macro: proc_name_exists
  condition: (proc.name!="<NA>")

文件系统对象重命名

- macro: proc_name_exists
  condition: (proc.name!="<NA>")

已创建新目录

- macro: mkdir
  condition: evt.type = mkdir

文件系统对象已删除

- macro: remove
  condition: evt.type in (rmdir, unlink, unlinkat)

文件系统对象已修改

- macro: modify
  condition: rename or remove

新进程产生

- macro: spawned_process
  condition: evt.type = execve and evt.dir=<

二进制文件的公共目录

- macro: bin_dir
  condition: fd.directory in (/bin, /sbin, /usr/bin, /usr/sbin)

Shell 已启动

- macro: shell_procs
  condition: (proc.name in (shell_binaries))

已知敏感文件

- macro: sensitive_files
  condition: >
    fd.name startswith /etc and
    (fd.name in (sensitive_file_names)
     or fd.directory in (/etc/sudoers.d, /etc/pam.d))

新创建的进程

- macro: proc_is_new
  condition: proc.duration <= 5000000000
Inbound Network Connections
- macro: inbound
  condition: >
    (((evt.type in (accept,listen) and evt.dir=<)) or
     (fd.typechar = 4 or fd.typechar = 6) and
     (fd.ip != "0.0.0.0" and fd.net != "127.0.0.0/8") and (evt.rawres >= 0 or evt.res = EINPROGRESS))

出站网络连接

- macro: outbound
  condition: >
    (((evt.type = connect and evt.dir=<)) or
     (fd.typechar = 4 or fd.typechar = 6) and
     (fd.ip != "0.0.0.0" and fd.net != "127.0.0.0/8") and (evt.rawres >= 0 or evt.res = EINPROGRESS))

入站网络连接

- macro: inbound_outbound
  condition: >
    (((evt.type in (accept,listen,connect) and evt.dir=<)) or
     (fd.typechar = 4 or fd.typechar = 6) and
     (fd.ip != "0.0.0.0" and fd.net != "127.0.0.0/8") and (evt.rawres >= 0 or evt.res = EINPROGRESS))

对象是一个容器

- macro: container
  condition: container.id != host

交互过程产生

- macro: interactive
  condition: >
    ((proc.aname=sshd and proc.name != sshd) or
    proc.name=systemd-logind or proc.name=login)

通用 SSH 端口

覆盖此宏以反映环境中提供 SSH 服务的端口。

- macro: ssh_port
  condition: fd.sport=22

允许的 SSH 主机

覆盖此宏以反映可以连接到已知 SSH 端口(即堡垒或跳转框)的主机。

- macro: allowed_ssh_hosts
  condition: ssh_port

用户列入白名单的容器

允许在特权模式下运行的白名单容器。

- macro: user_trusted_containers
  condition: (container.image startswith sysdig/agent)

允许生成shell的容器

将允许生成 shell 的容器列入白名单,如果在 CI/CD 管道中使用容器,则可能需要这样做。

- macro: user_shell_container_exclusions
  condition: (never_true)

允许与 EC2 元数据服务通信的容器

将允许与 EC2 元数据服务通信的容器列入白名单。默认值:任何容器。

- macro: ec2_metadata_containers
  condition: container

Kubernetes API 服务器

在此处设置 Kubernetes API 服务的 IP。

- macro: k8s_api_server
  condition: (fd.sip="1.2.3.4" and fd.sport=8080)

允许与 Kubernetes API 通信的容器

将允许与 Kubernetes API 服务通信的容器列入白名单。需要设置 k8s_api_server。

- macro: k8s_containers
  condition: >
    (container.image startswith gcr.io/google_containers/hyperkube-amd64 or
    container.image startswith gcr.io/google_containers/kube2sky or
    container.image startswith sysdig/agent or
    container.image startswith sysdig/falco or
    container.image startswith sysdig/sysdig)

允许与 Kubernetes 服务节点端口通信的容器

- macro: nodeport_containers
  condition: container


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
Java 容器 Spring
DefaultListableBeanFactory
DefaultListableBeanFactory 是一个完整的、功能成熟的 IoC 容器,如果你的需求很简单,甚至可以直接使用 DefaultListableBeanFactory,如果你的需求比较复杂,那么通过扩展 DefaultListableBeanFactory 的功能也可以达到,可以说 DefaultListableBeanFactory 是整个 Spring IoC 容器的始祖。
|
运维 资源调度 Kubernetes
Kubernetes Scheduler Framework 扩展: 1. Coscheduling
# 前言 ## 为什么Kubernetes需要Coscheduling功能? Kubernetes目前已经广泛的应用于在线服务编排,为了提升集群的的利用率和运行效率,我们希望将Kubernetes作为一个统一的管理平台来管理在线服务和离线作业。但是默认的调度器是以Pod为调度单元进行依次调度,不会考虑Pod之间的相互关系。但是很多数据计算类的作业具有All-or-Nothing特点,要求所有的
2915 0
|
资源调度 Kubernetes 应用服务中间件
Kubernetes Scheduler Framework 扩展: 2. Binpack
# 前言 ## 为什么需要Binpack功能? Kubernetes默认开启的资源调度策略是`LeastRequestedPriority`,消耗的资源最少的节点得分最高,优先被调度。这样的资源选择情况有可能导致较多的资源碎片,如下图所示,两个节点各剩余1GPU的资源,导致申请2GPU的作业无法调度,导致整体资源使用率下降。 如果使用的资源调度策略是Binpack,优先将节点
1775 0
|
11天前
|
Java 调度 数据库管理
APScheduler自定义配置
APScheduler自定义配置
15 0
|
22天前
|
Kubernetes 容器
Warning FailedScheduling 14m (x12 over 16m) default-scheduler 0/1 nodes are available: 1 node(s
Warning FailedScheduling 14m (x12 over 16m) default-scheduler 0/1 nodes are available: 1 node(s
17 0
|
3月前
|
Apache 调度 数据库
Apache DolphinScheduler VS WhaleScheduler
Apache DolphinScheduler VS WhaleScheduler
119 2
|
4月前
|
Dubbo 应用服务中间件
【Default config not found for ApplicationConfig】的一种解决方案
【Default config not found for ApplicationConfig】的一种解决方案
109 0
|
5月前
no module nameed frontend
no module nameed frontend
24 0
|
8月前
gitlab--needs、default
gitlab--needs、default
gitlab--needs、default
|
9月前
|
自然语言处理 分布式计算 数据可视化
DolphinScheduler
DolphinScheduler是一款开源的分布式任务调度系统,它基于分布式架构设计,支持多租户、多语言、多框架、多数据源等特性。DolphinScheduler提供了可视化的工作流设计器和任务调度管理界面,使得任务的调度和管理更加方便和可靠。
390 0

热门文章

最新文章

相关实验场景

更多