OpenShift Security 15 - 用 RHACS 的安全策略管理运行中的容器安全

89 篇文章 3 订阅
76 篇文章 6 订阅

OpenShift 4.x HOL教程汇总
本文在 OpenShift 4.15 + RAHACS 4.4.3 环境中进行验证。

创建 RHACS 的 Policy

  1. 创建一个 Policy 的 JSON 文件,内容如下。Policy 只针对 OpenShift 的 Production 项目中的资源识别容器是否运行 curl 命令,一旦发现有 curl 命令运行,立即终止 Pod 运行。
    在这里插入图片描述
{
    "policies": [
        {
            "id": "e0a224d9-ca08-48c7-8164-7325245257d8",
            "name": "有 Curl 运行",
            "description": "在容器中运行了 Curl 命令",
            "rationale": "Curl 有可能下载能具有风险的文件",
            "remediation": "可以删除镜像中的 Curl 以便提升安全性",
            "disabled": false,
            "categories": [
                "Security Best Practices"
            ],
            "fields": null,
            "lifecycleStages": [
                "RUNTIME"
            ],
            "eventSource": "DEPLOYMENT_EVENT",
            "whitelists": [],
            "exclusions": [],
            "scope": [
                {
                    "cluster": "",
                    "namespace": "production",
                    "label": null
                }
            ],
            "severity": "LOW_SEVERITY",
            "enforcementActions": [
                "KILL_POD_ENFORCEMENT",
                "FAIL_KUBE_REQUEST_ENFORCEMENT"
            ],
            "notifiers": [],
            "lastUpdated": "2022-01-15T10:30:09.564919243Z",
            "SORTName": "",
            "SORTLifecycleStage": "",
            "SORTEnforcement": false,
            "policyVersion": "1.1",
            "policySections": [
                {
                    "sectionName": "Policy Section 1",
                    "policyGroups": [
                        {
                            "fieldName": "Process Name",
                            "booleanOperator": "OR",
                            "negate": false,
                            "values": [
                                {
                                    "value": "curl"
                                }
                            ]
                        }
                    ]
                }
            ],
            "mitreAttackVectors": [],
            "criteriaLocked": false,
            "mitreVectorsLocked": false,
            "isDefault": false
        }
    ]
}
  1. 在 RHACS 控制台中进入 Platform Configuration 的 System Policies,然后通过 “Import a policy” 图标将上面的 JSON 内容导入到 RHACS。
    在这里插入图片描述
  2. 进入 ““有 Curl 运行”” 策略,可以在 “Policy behavior” 区域看到它是作用在 Runtime 阶段,对 Namespace 为 production 范围运行的 curl 进程进行监控,一旦发现策略违规就使用 Enforce 方式进行响应。
    在这里插入图片描述

部署测试应用

  1. 在 OpenShift 中创建 development 和 production 项目。
oc new-project development
oc new-project production 
  1. 分别在 development 和 production 项目中部署 “registry.access.redhat.com/rhscl/httpd-24-rhel7” 镜像。
oc new-app --image=registry.access.redhat.com/rhscl/httpd-24-rhel7 --name=httpd-development -n development
oc new-app --image=registry.access.redhat.com/rhscl/httpd-24-rhel7 --name=httpd-production -n production 

验证

  1. 先在 development 项目中的 Pod 运行 curl 命令,确认可以正常运行。
$ oc project development
$ oc exec deploy/httpd-development -- curl http://www.baidu.com -o /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2381  100  2381    0     0   7369      0 --:--:-- --:--:-- --:--:--  7394
  1. 然后在 production 项目中的 Pod 运行 curl 命令,确认最后会提示 “command terminated with exit code 143”。
$ oc project production
$ oc exec deploy/httpd-production -- curl http://www.baidu.com -o /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0command terminated with exit code 143
  1. 查看 httpd-production 部署的 Event,确认有提示 Pod 因违反 ““有 Curl 运行”” 的策略被 killed。
$ oc describe deploy httpd-production -n production
。。。
Events:
  Type     Reason                Age    From                   Message
  ----     ------                ----   ----                   -------
  Normal   ScalingReplicaSet     140m   deployment-controller  Scaled up replica set httpd-production-6fbdfc6465 to 1
  Warning  StackRox enforcement  122m   stackrox/sensor        A pod (httpd-production-6fbdfc6465-9gnpq) violated StackRox policy "有 Curl 运行" and was killed
  1. 在 RHACS 的 Violations 中确认也有““有 Curl 运行”” 的违规记录。
    在这里插入图片描述
  2. 在违规记录中可以看到 curl 命令使用的参数和相关 Deployment 等。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值