我是张靖昊我昨天我嗓子越来越有问题然后今天如果声音还比点大家抱歉然后我今天分享的主题是我们AIS安全实践策略存放为抛弃我是张靖昊这个TVT我先做一下自我介绍我是张靖昊也是AIS安全也是AIS安全同时我也是微软的最后代理专家然后我补了一个K8S生产策报这个K8S生产策报每周会分享一些我所关注的我认为值得注意的在K8S生态当中的一些然后这个K8S生态策报目前的话已经写了四年现在已经进入到了第五年了我想在场的如果关注K8S生态你应该或多或少看到我写的或者看到K8S生态策报这个表情对后面的话是我的我的Github的地址大家如果有兴趣跟我们跟我们联系的话进行交流那么我们就话不多说我们开始进入到今天那个时候那么今天我分享的这个内容其实都由于一句话就是大多数的K8S生态策报它都是不安全的其实我想要在聊这个问题之前想要问一下在场的小伙伴有多少人大家有自己搭建过K8S生态策报或者说自己有去管理过可以试试其实还有很多的然后大多数的小伙伴都有自己的K8S生态策报所以大多数的K8S生态策报人都是不安全的这句话其实对我们的影响是非常大的比如说我们费食费力的然后我们搭建了一个K8S生态策报但是我们发现它是不安全的它可能有一些有可能我们还是要对它去进行一些加固那么为什么会这么说呢其实我们可以看一下几个报告一个是AMOAMO是一个国外里的人厂商然后这个厂商的话它其实是专门去做K8S生态策报相关的一个厂商而这个厂商它有一个客人项目叫Kubase Cable这个项目的话2020年到2023年的是安全报告吧其实它看到了右侧的这个部分是它对于很多的用户然后它的很多客户然后做了一个调查调查之后呢发现大多数的人其实都会面临这一些安全的问题包括其中最主要的或者说大家最为痛的当我去做K8S安全的时候我发现在K8S安全的大体系下面我发现我有太多的报警需要去处理这个问题其实对于无论说对于安全而言还是说对于大家的这种集群的运萎或者说在大家不属应用到K8S群上中的时候大家都会发现这是一个非常严重的问题因为你的安全的报警这个应用本身的一些报警过多的时候其实我们就认为这个报警过多很少会有人关注然后并且大家的精力其实也没有那么多所以929之前你会发现太多的报警就导致一些重要的信息被淹没而这种查理下是最为可怕的因为在这么一大堆的报警当中你会发现可能有一条两条就不到 这是一个最重要的问题所以我们再去做K8S安全的时候其实一个很关键的理解我们一定要让我们的报警让它更加的有效然后把报警的不利降低的越小其实越好各位 除去这些以外其实还有很多人所担心的点或者说他们的痛点比如说有一些错误的配置然后还有比如说一些资源的泄漏还有一些夹带这些大家有兴趣的话可以在下面的这个AMO的这个光网上面去拿到这个然后除去这个AMO的这个报告以外另外一个是红帽的报告红帽在2020年的这个安全报告当中其实也有一个结果然后这个大家也可以通过这个地址去拿到报告在这边讲一下红帽的这个安全报告当中其实还发现错误的配置然后或者说意外的一些非预期的一些场景其实是战品是非常非常高的然后在此外还有一些比如说安全漏洞但是你会发现安全漏洞和这个攻击然后他们的这些战品其实大家一般情况下我们去做安全我们可能需要去防止漏洞我们需要去防止别人的攻击但实际上看到这个战品你会发现其实错误配置战的这个比例它会更高而且还会更加的突出所以如何能够这个K8S集群配置得更加安全这其实是非常关键的这也是我今天为大家分享的内容而且对K8S的配置把它做得更为安全这个其实今天听完之后大家的每个小伙伴应该都可以去自己的集群去检查一下或者说直接去理解好的那么这边其实有张图就是K8S的炸热图不知道我后来打出之后我们的内容大家可以捞捞就比较了解K8S自己的光瓦上也非常加重比如说在K8S集群中也有这个APSO有克除了玩家程度还有给ETCD这些组件其实都非常多而且大家应该是接触到的比较多而其中的一个最为关键的组件就是ETCDETCD也存出了K8S集群集群当中进入了全国的数据因为还有一个部分就对它其实并不在ETCD比如说我们有一些CNi的一些配置然后它其实并不在ETCD然后还有一些集群自身的比如说Kulite自己的一些配置这些东西它其实都不在ETCD中但是这些对我们的集群整体的配置和我们对于集群的安全又是实际相关的那么我们回到K8S集群K8S集群自身当中就是K8S集群当中存出的这些数据当中其实我们在K8S集群当中小区组组数据主要有两种方式第一种方式是我们可以用ConfigMap但是ConfigMap大家从这种情况下是存出一些配置所以这些配置比如说通过这些配置的方式包不出来或者说它K8S集群的一个文件另外一种资源就是Secret大家也会把自己的一些密要信息存住到这个Secret当中但是所谓的这个Secret虽然它名字叫做Secret但是它实际上不安全为什么呢 因为Secret它只是去做一个Base Level 4的加密叫做Base Level 4的编号Base Level 4大家想听懂知道吗就是你在编号之后你可以为它去做反编号其实就可以拿到这个信息如意的如意的问题就是有些人看到K8S这个Secret他知道它是Base Level 4的编号所以他可以很简单地给你Decode一下但可能有一些人不知道的所以在这种场地下Secret可能是消费的但是如果说你遇到的一些小药区大多数人应该会做一些功课所以这个Secret很容易会被人玩到那么除去说这个Secret它是一个Base Level 4的一个编号这么一个简单的一个事情其实我们会发现在这个ETCD当中所存储的这些数据它们其实是明文存储的也就是如果任何一个人它拿到了这个ETCD的连接的这个呈现或者说它可以能够到它都可以去访问到这个ETCD并且从这个ETCD当中去拿到所有的无论是这个Map还是这个Secret甚至还有一些人可能一些配置可能写在这个放到Tation当中其实都会被直接去看到那么这个情况的话就是这个ETCD所存在的问题它其实主要有两个一个是数据的明文存储就是我刚才提到的这个点另外一个点就是ETCD的这个呈现是相对来说比较开放的关于这两点分别来进行介绍好 首先我们来看一下关于这个ETCD当中的明文存储的这个情况对于ETCD的这个明文存储其实我们有ETCD的办法首先的一点就是数据的价值然后它这是在后端去进行数据价值这个特性的话需要ETCD的3.0以上的这个分分同时也是需要5.0.4.1.3这个版本的话大概应该是在2019年的年初的第一个版本也就是说如果大家是在2019年Q2或者Q3开始部署的PyS那么恭喜你已经可以用这个特性了如果是在此之前的大家说要去检查一下你可以去做一下申请好的那么对于这个ETCD开启这个数据加密的这个特性除去简单的1013版本加密ETCD的这个3.0版本之外呢然后接受一些新的一些future然后就比如说我们在Q4的1026的这个版本上就是我们可以去对我们的一些CRT去进行加密然后对我们最新的版本就是今年的第1个版本1.27也就是11号11号分发费的那个版本然后呢你可以从配复去进行加密像每天我们想要去加密的时候你需要去配置就比如说我对secret去进加密我对可谓版本去进加密然后或者比如说我对英国儿子资源去进加密等等你需要单个资源同一种配置但是在1.27的时候我们就可以通过从配复就加一个型号然后对所有的直接去进加密然后呢这个配置其实也比较简单然后呢这个是效果有点问题啊大家大概不会右边的话呢是一个简单10亿但是可以看到然后在这边对它做一些介绍然后呢其实可以看到就是如果大家想要去使用这个配置的话大家需要去开启一个加密的配置开启一个加密配置然后呢大家可以看到在下面这个resources然后在这个地方你可以去配置具体的一些资源然后就比如说比如说你对它的secret对大家可能应该然后呢还有去对你的一些另一的资源去进加密然后呢其中这些资源下面有一个providal然后在这个providal就是诺一印的你想要去加密的一些密钥对就是一些密钥然后呢还有甚至可以去对这个event是一个加密但是在这个event当中大家可以看到其实在通常情况下我们的event当中其实并没有太多的机密性能所以呢你可以在这个地方去配置一个providal然后这个providal的话可以直接配置一个空配置一个空表示不加密对表示不加密然后呢此外就像我们刚才提到的你可以在1.27的版本的时候可以使用从内埠比如说新点PBS然后呢这个地方其实包含了很多种不同的资源然后呢那么可以对所有的这些资源进行加密好的不会这是它的一些配置然后呢大家如果这个核心兴趣的话大家也可以直接在自己的这个机器能不能去试验一下并且这个大家直接在PBS的核心的话其实都可以看到有一个比较详情的操作文章然后我们在这里就再去介绍它的原来的过程我在这里简单地对这个它的这个加密的过程简单地做一下介绍就是我们在使用etcd在复活去进加密的这个特性的时候呢我们在使用的这个过程中实际上和原先的使用过程是一模一样的你并不需要去关系你到底用什么样的算法去进加密使用这些事情这个APS over会保护我们的定格然后其中其中第一个就是这个identityidentity然后呢这个就是最上一个这个就是表示说是不加密的这个过程是不加密然后呢数据会原样的去进出而后面的后面的接种的话是会进行加密但是它会发现就是它会有一些加密的强度加密的速度会有一些对于加密的强度还有对于加密的一些速度一些区分像前面比如说第二种它是非常的快然后呢它的加密程度是32位然后呢它是一个新的一个标准但是呢我们再来看一下第3个和第4个发现虽然它们很快或者说更快但是呢它们的这个安全系数并不那么高也就是说它有可能会被暴霍也就是说我们还可以用到一些其他人比如说下面的这个KMSVEKMSVR现在比较推荐的话都是去測到这个KMSVR然后而这个KMSVR它一方面它的这个加密强度非常的高就是反正就是我现在创建这个sqrt我现在创建这个sqrt然后但是呢这个sqrt比较多的那种用途如果创造这个加密的速度比较慢的那么有可能是要去等待一些事情有一些意外的情况意外的情况就是说耗时特别长会导致你的这个KMSVE出现了短短的这种情况虽然这个数据洗进去了在中方下你可能会看到一个爆破所以的话通常建议大家去选择一个强度稍微比较强的然后呢并且速度不快一些的这样子用的测试一个无感直立的状态并且还可以拿到对岩的加密的要求那么对于这个加密强中的话存在的这些问题就比如说第一个就是加密的类型多种不要但是呢其实不推荐的就比如说它的这些加密强度然后第一的这些其实我们还是还推荐然后呢还有就是加密使用的这个K如果你去操作一遍的话当然我在这里直接设计在这些加密所使用的这个K就是你如果想要去对它紧密的时候你需要没有这个K但这个K实际上是都会放在这个可成的爱当中的并且它是明分存存这是一个非常虽然你选择了一个比较强的一个加密算然后呢但是你发现可以你的这个命要其实就在这个服务机场里面服务所谓的攻击者他拿到了这个可成的话的等于全信然后他实际上可以直接从这个可成的能够拿到这个K然后并且因为你的这个配置的这些能够就像一个我那个示意然后配置也是命运的所以它就可以很轻松的去给你反应给你紧密一下然后拿到你运输的这个信息能够其实做一个不用弄然后呢另外一方面就是说我们通常建议的情况是大家可以把这些加密的这些K然后去做一些做一个就像我们的证书其实就是到这次为什么我们的证书只有底下的计训当中为什么默认是一年要证书可能存在些多个情况而如果存在所有能够弄得那么攻击者持续就不停地进行报复有可能在一个比方上这个视频范围之内然后呢它报复成功了然后呢拿到了这个对你进行的推出攻击然后呢所以我们通常也进行去对这个加密的一个K去进行轮转但是目前KOS这些K只需要手动的去进行操作OK然后呢此外呢刚刚我们一开始提到了两个问题一个是ETCD当中的数据是这些另外一个就是说ETCD它这个相对来说要开放所以对于它的开放的这个问题的话呢有一些就是比如说我们可以这ETCD放在平安的进行外资至于这个ETCD这些ETCD的服务然后一定要去避免当位保护的去操作这个地方的话其实就是这个策略对于我们无论是对于ETCD的所谓还是对我们这些空阵的情况下都是一个关键的关键的关键的配合好的然后呢我们那关键的第一个问题就是关于这个ETCD当中的这个数据安全的一个问题然后呢就代表Police呃在KMS的运动中提供了呃 能避免就是我们的这个安全处理安全处理可以去控制哪些应用可以去防那些服务那些服务可以哎其他的应用处分然后还有它的这个流量的不入口出口不能影响那些配置呃 那么我们可以通过带着我们去进行控制但是需要出一个就并不是所有的这些就比如说在呃KMS刚刚推广的那些年呃就是一四一五年然后那个时候呃 大家用到的CNL很多的比如说SlamoKaliper但是其中的就是这个Slamo它并不支持呃代表Police呃 直到目前它也不支持然后看起来呃 也不打算支持呃因为它的社区呃 它背后是高S然后高S已经呃 没有呃所以说如果你想要去使用这个Police的话那么你需要去注意一下呃所用的这个CNL它到底是是否支持这个呃但是我会自己作为配置以及我们现在的比如说呃 现在比较流行的一种呃 新秀呃就是Slamo呃Slamo出去支持那种原生的这个Police其实还支持C6自己的自己所配置就是C6然后它可以提供一个更强的配置右侧的这个图像是呃C6提供了一个大头Police的一个IPL你可以呃如果你对呃这个大头Police可以深入还了解或者说你想组织更近单一的方式出去配置的话你可以通过那个考试它的介面呃ok然后呢我们可以去单是这一句就是出去配置这个大头Police它是一个手段的以外我们需要增加对反的功夫力呃审核就比如说在每次更改大头Police的时候把它比如说放进你的这个呃通过呃通过你的这个可以藏住的这个Police呃这种方式然后去进一些审核并比如说出现一些错误的配置呃当然就是这些呼应呢我们一开始知道关于这种错误配置的一个问题呃如果说一旦出现了错误配置要么是这个访问的犯来变大要么就是有一些呃应该能够访问的这些无法经济访问那么对于这个因应就会造成就是第二个问题就是大家一定很熟悉的RBAC的这个策略对于RBAC的策略员其实有一个比较比较重要的问题就是再来说我们的这个Police当中的这些Police它实际上在启动这种Police之后它默认情况下会把你的这个PolicePolicePolicePolicePolicePolicePolicePolicePolicePolicePolice这个地方当前后的当中的这个PolicePolicePolice并且在RBAC几群的同样的情况下这个APS Go你可以通过Colonialis.default等等这样的一个方式去访问掉它所有的那个Police当中它都是可以直接访问也就是说假如说我们的这个淘汰它的程序比较大那么你其实直接通过API的整个方式去领导这个API然后这一些相当的一些操作这是一个微型的事情而这种场景其实也比较场景比如说现在大家一定会部署很多的一些逐渐而这些逐渐可能并不是TLS官方的可能是接地下班的或者说大家自己开达的一些逐渐这些control或者保护的一种因为发现在这些场景下RBSD配置过的一种情况是比较隐重的所以你可以去尝试一下其他的一些组织然后现代的一些项目你可以去尝试一下用它的这个作分去讨论一下这个API所以有可能你会发现那么应对这一刻RBSD的这种场景RBSD配置过的一种场景也比西班的然后比如说我们去对战加斯省级省级的这个功能是一条RBSD车提供的但是很多人的情况是不提供的所以大家可以去接地下配置然后呢右侧的话是一条省级日治的市医大家可以看到在这个省级日治的这个市医当中它可以去直接提供给我们的是哪个从哪个从哪个Name Space下您在哪个Pode然后使用了Galaxy SOS Count进行的一些实际上的操作然后呢而且这个API SOS对于这一次请求它的结构它到底是允许进行操作还是不明显的然后这个过程它倒是可以直接去展示出来的而在这个过程里头我们通常情况下我们需要对这个省级日治去进行一些采集然后去进行一些分手的同时出去采集分析以外我们其实需要去增加一个报警就比如说如果我们发现在我们这个省级日治当中出现了一些403的情况出现一些403的情况还有出现一些401的情况这个时候大家是需要关注的403的情况表示有一些请求它是使用了一个非预期的对吧 因为它是确切不住嘛403所谓的然后它有一些401就是它的这个未认证然后这两点是大家需要往外去关注的或者说比较需要重量出现的因为正常情况下如果这个配置是正确的话那么你的应用应该都可以正常地去访问大局的API SOS当出现不能防止情况意味着你需要去关注一下它到底是什么原因到底是有人到底是有人到这个迫度上也尝试你这个迫得当中的一些迷恶去访问大局的API SOS还是说出现了一些错误配置的一些情况还有一个点就是我们的资源的情况其实对于很多的这个class机器无论说大家是自己去配置一个机器还是说大家去使用一些公园的机器这个超卖的这个情况其实都是比较常见的超卖的情况产生超卖之后你会发现一个比较严重的问题就是你的应用可能会出现这种OWM也有可能的这个应用会被驱除如果出现OWM或者说被驱除其实对于这个意义来说到我迷恶都会在那里影响所以我们通常请大家可以使用一些比如说我可以使用这种LIMIT RENG或者我们使用这种RESOLVED COURT然后这些配置右侧的话是一个使用LIMIT RENG这个配置我们可以去创建LIMIT RENG这样子的资源再其中去限制我们最大可以使用的比如说CPU的资源LIMIT RENG资源然后呢我们再创建这些POLD之后我们去参加这种LIMIT REQUEST这种配置的时候你就会发现如果它超过了我们一开始的这种限制那么它就会创建室外对于这种资源超卖的情况我们可以去这些以外最后还可以用一些比如说像我们去增加一些迷史的调整然后相关的一些配置去处理它然后弄其实除去我们刚才提到的这些问题以外对于QBS的安全其实我在我在写这个PPD之前我问了一下这个GT-14我问一下GT-14我说QBS安全有哪些方面需要考虑你不要给我列出来详细的内容你只要特速有多少个就可以了然后呢它就超时了因为内容我让它实在是就算不出来那么其实我们来总结一下对于这个QBS安全而已设计的方面是非常多的根据我今天聊到的关于QBS解除自尸的这种配置上面的这些安全以外像刚才第一位主持人然后就是说在英文册上面可以去做解安全的然后还有今天没有聊到的比如说进向长迷的S6N然后等等等等这些东西其实是比较多的但是我们需要的一个地方就是说集群的安全我们底层这叫我今天所讲的内容就属于第二条就是集群的安全底层上面是可以进行交流的但是我们上层的策略就像第一位主持人聊到的上层的策略我们其实是需要和我们的便利性去集群的一些模特因为一旦你出现了像我们今天像他所聊到的安全总移的这种情况你会阻碍英文的上限但是在很多的这种公司和很多的很多这种长迷大家图的不就是一个快你出现了你说因为安全导致对你英文的然后呢那其实很多的公司其实不能接受这个问题所以在上层的这个策略其实你只需要去不停地去集模衡而底层的安全处就像我今天所讲的那个你是可以直接去用的好的非常感谢大家好的 非常感谢金涛老师然后时间关系我们今天只有一个问题来边这个谢谢老师这点非常受动就是我一直接受刚刚上去老师的这个分享上来我想都是从文艺也是从长迷方面从一个看来是另外一层面发现的这种分析似乎从一些间接的手段比如说加册或者是团体的测试也许你发现这个也挺影响的但是有没有一些专门的手段来针对这个集群的安全其实有些发现很高这种这是这是一个很好的解释然后其实其实目前有很多的手段比如说有一家名厂商叫做这个这个它开启了很多的相机其中大家可能听说过了或者大家可能接触到了有一个项目叫做TraviTravi的话它是过进行和工藏它也可以去扫描你的文件系统等等等等这是一个比较长期的一个工具除去这个工具以外它其实还承认了很多其他的项目然后它就比如说还有一个Korobatch这个项目你可以去Korobatch然后可以直接去给它去搜索一下然后这个项目其实就是去帮你直接在TRIZ群当中去扫描你当前集群当中所存在的一些比如说TRIZ然后还有一些比如说存在的一些安全隐患其实在目前KVS集群的是往安全它其实有一个所谓的叫做瘟血检测模型这是一个理论上的东西然后这个东西因为太偏离所以我们在前面去大家可以在现在或者是稍后大家去搜索一下就要直接安全的威胁安全威胁检测模型然后呢去搜索这个东西你就可以看到然后呢启动内容很多家厂商然后呢以及很多的这种开学项目然后大家其实都是去按照这样子的一个规范去检测的因为你不可能说每一个厂商或者每个工具大家都按自己所想的这种方式去检测大家都是通过这样子的一个模型通过同样的这一套标准去进行的检测对所以这样子大家都可以去测出来一个比较类似的一个检测好的谢谢听到老师那么我们下面进入查金时间然后是半点的时候回到这个会场谢谢大家