云原生场景下的安全左移
本博客地址:https://security.blog.csdn.net/article/details/129430859
一、安全左移概述
安全左移需要考虑开发安全、软件供应链安全、镜像仓库、配置核查这四个部分。
首先是开发安全,安全团队需要关注代码漏洞,比如使用代码检查工具进行静态代码分析或动态运行时分析,找到因缺少安全意识造成的漏洞;此外,应重点检查代码中是否包含用户凭证、存在的密码硬编码等。
其次是软件供应链安全,也就是项目使用到的第三方软件库的安全,可使用软件成分分析(SCA)技术以发现项目中用到的第三方软件库(特别是开源软件),分析相关代码版本库,将其与漏洞库比较,如有匹配则告知存在漏洞。
再次是镜像仓库,应使用镜像漏洞扫描工具持续对自有仓库中的镜像进行持续评估,对有安全风险的镜像进行及时更新。
最后是配置核查,比如暴露面核查、服务器配置加固等,这部分可以最大程度提升攻击者发现脆弱资产和利用漏洞的难度。
基于以上,我们发现开发安全、软件供应链安全、配置核查其实和传统的安全左移基本是没有区别的,因此我们本文重点介绍镜像仓库的安全。
二、容器镜像安全
2.1、镜像构建安全
镜像构建的方式通常有两种:基于容器直接构建或基于Dockerfile构建。建议所有的镜像文件由Dockerfile创建,因为基于Dockerfile构建的镜像是完全透明的,所有的操作指令都是可控和可追溯的。
镜像构建存在的风险项通常包括:
1)基础镜像并不是由可信的组织和人员发布的,镜像本身存在后门或者其他风险项;
2)在Dockerfile中存储敏感信息,如配置服务时使用明文固定密码或凭证等;
3)安装不必要的软件扩大了攻击面等。
针对以上问题,可以从下面几方面来加固镜像构建安全。
1、验证镜像来源
为了保证镜像内容可信,建议开启Docker的内容信任机制。内容信任机制为向远程镜像仓库发送和接收的数据提供了数字签名功能,这些签名允许客户端验证镜像标签的完整性和发布者。默认情况下内容信任机制是被禁用的,可以通过执行下面指令完成或者在Docker的配置文件中配置。
export DOCKER_CONTENT_TRUST=1
2、镜像轻量化
只安装必要的软件包,这不仅在提高容器性能方面有很大帮助,更重要的是减少了攻击面。
3、正确使用镜像指令
在构建镜像时要选择恰当的指令。比如,若需要引入外部文件,在Dockerfile中能用COPY指令就不要使用ADD指令,因为COPY指令只是将文件从本地主机复制到容器文件系统,ADD指令却可以从远程URL下载文件并执行诸如解压缩等操作,这可能会带来从URL添加恶意文件的风险。
4、敏感信息处理
比如Dockerfile中不能存储密码、令牌、密钥和用户机密信息等,即使在创建好容器后再删除这些数据也会造成风险,因为在镜像的历史记录中仍能检索到这些数据。
2.2、镜像仓库安全
1、公共仓库安全
1)在选择镜像时,应使用官方发布的最新版本的镜像,并保持定时更新
2)下载的镜像要经过漏洞扫描评估
3)对于提供服务的镜像,不仅要从操作系统层面进行扫描,还要从应用层面进行扫描
4)对于提供了公开Dockerfile的镜像优先选择自己构建,可避免镜像后门的植入,保证镜像构建过程可控
2、私有仓库安全
私有仓库主要是Harbor:
1)需要启用HTTPS
2)不能使用默认的密码
3)开启防暴力破解机制
4)严格控制挂载卷权限
2.3、容器镜像安全检测
目前比较流行的开源镜像扫描引擎有Clair、Anchore等。
镜像检测的核心目前仍然是已知系统CVE检测。扫描器获取到镜像后,将它分离成相应的层和软件包,然后将这些包与多个CVE数据库包的名称和版本进行对比,从而判定是否存在漏洞。通常开源的镜像漏洞扫描工具会获取各发行版官方途径安装的软件,而至于软件开发者自己部署的非官方软件,这些扫描工具一般是不覆盖的。
2.4、容器镜像传输安全
容器镜像在下载和上传时须保证完整性和秘密性,提高安全性的做法如下:
1)数字签名
上传者主动给要上传的镜像签名,下载者获取镜像时先验证签名再使用,防止其被恶意篡改。
2)用户访问控制
敏感系统和部署工具(注册中心、编排工具等)应该具备有效限制和监控用户访问权限的机制。
3)尽可能使用支持HTTPS的镜像仓库
为避免引入可疑镜像,用户谨慎使用–insecure-registry选项,以免连接来源不可靠的HTTP镜像仓库。
三、总结
镜像安全是开发安全的最右侧,也是运营安全的最左侧,位置非常关键。保证镜像和仓库的安全,对于贯彻开发运营一体化的安全具有重要的意义。
要保证应用全生命周期的安全,安全左移后还需要考虑重新将安全控制右移,通过运行时检测和响应及时发现并处置威胁。
相关文章:
云原生场景下的安全左移
本博客地址:https://security.blog.csdn.net/article/details/129430859 一、安全左移概述 安全左移需要考虑开发安全、软件供应链安全、镜像仓库、配置核查这四个部分。 首先是开发安全,安全团队需要关注代码漏洞,比如使用代码检查工具进…...
mysql面试经典问题
文章目录 1. 能说下myisam 和 innodb的区别吗?2. 说下mysql的索引有哪些吧,聚簇和非聚簇索引又是什么?3. 那你知道什么是覆盖索引和回表吗?4. 锁的类型有哪些呢5. 你能说下事务的基本特性和隔离级别吗?6. 那ACID靠什么保证的呢?7. 那你说说什么是幻读,什么是MVCC?幻读什…...

微信小程序|基于小程序+C#制作一个考试答题小程序
基于小程序+C#制作一个考试答题小程序打破传统线下考试答题的边界线问题,使考试不用再局限与某个统一的场所,只要有设备,哪里都能考试。 一、小程序...
【1605. 给定行和列的和求可行矩阵】
来源:力扣(LeetCode) 描述: 给你两个非负整数数组 rowSum 和 colSum ,其中 rowSum[i] 是二维矩阵中第 i 行元素的和, colSum[j] 是第 j 列元素的和。换言之你不知道矩阵里的每个元素,但是你知…...

Linux命令之nano命令
一、nano命令简介 nano是一个小型、免费、友好的编辑器,旨在取代非免费Pine包中的默认编辑器Pico。nano不仅复制了Pico的外观,还实现了Pico中一些缺失(或默认禁用)的功能,例如“搜索和替换”和“转到行号和列号”。nan…...
IT项目管理(作业1)
一.单选题(共12题,100.0分) 1.以下哪项是项目的一个实例?( ) A、改进现有的业务流程或程序B、为公司运营提供信息技术支持C、批量生产一种新近开发出来的家用电冰箱D、管理一个公司 我的答案:A 2.下列哪项不能成为项目结束的理由?( ) A…...

蓝桥杯嵌入式(G4系列):串口收发
前言: 在整个蓝桥杯考试中涉及串口的次数还是较多,这里写下这篇博客,记录一下自己的学习过程。 STM32Cubemx配置: 首先,我们点击左侧的Connectivity选择USART1进行如下配置。 使能串口中断 在左侧的管脚配置上也要做出…...

「兔了个兔」玉兔踏青,纯CSS实现瑞兔日历(附源码)
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...

第17章 关于局部波动率的一些总结
这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…...

反转链表合并两个有序链表链表分割链表的回文结构相交链表
反转链表来源:杭哥206. 反转链表 - 力扣(LeetCode)typedef struct ListNode ListNode; struct ListNode* reverseList(struct ListNode* head) {if (headNULL){return NULL;}ListNode* prevhead;ListNode* curhead->next;ListNode* furNUL…...

联想触摸板只能单击,二指三指失效
问题背景 这问题是我笔记本两三年前重装win10系统后出现的,当时有鼠标懒得弄。今天发现没鼠标后,触摸板连二指滑动都没有太麻烦了,所以决定弄一下。 联想笔记本,win10系统重装后出现的问题。 1.鲁大师,联想电脑管家 …...
mysql 删除表卡死,或是截断(truncate)卡死解决办法
利用工具进行truncate表的时候,一直运行,运行了十几分钟也没有成功。中止之后再运行也是一样。但是删除表的数据以及查询表数据都是可以的。猜测是锁死了。 使用 show processlist; 发现Waiting for table metadata lock 问题; mysql> s…...

ORACLE P6 EPPM 架构及套件介绍(源自Oracle Help)
引言 借助官方帮助的内容, 我水一篇文章,翻译了下文 P6EPPM架构 P6各套件 P6:大多数用户几乎完全依赖在标准网络浏览器中运行的 P6 网络应用程序。简称为 P6,它是管理项目的主要界面。P6 移动版:允许团队成员提供任…...
Android开发面试:数据结构与算法知识答案精解
目录 数据结构与算法 线性表 数组 链表 栈 队列 树 二叉树 红黑树 哈夫曼树 排序算法 冒泡排序 选择排序 插入排序 希尔排序 堆排序 快速排序 归并排序 查找算法 线性查找 二分查找 插值查找 斐波拉契查找 树表查找 分块查找 哈希查找 动态规划算法…...
京东前端手写面试题集锦
实现call方法 call做了什么: 将函数设为对象的属性执行和删除这个函数指定this到函数并传入给定参数执行函数如果不传入参数,默认指向为 window // 模拟 call bar.mycall(null); //实现一个call方法: // 原理:利用 context.xxx self obj.…...
【JDK动态代理】及【CGLib动态代理】:Java的两种动态代理方式
Java的两种动态代理方式动态代理是什么?JDK动态代理CGLib动态代理CGLib 底层原理CGLib 实现步骤两者区别Spring AOP原理--动态代理动态代理是什么? 动态代理就是,在程序运行期,创建目标对象的代理对象,并对目标对象中的…...

《程序员面试金典(第6版)》面试题 04.05. 合法二叉搜索树
题目描述 实现一个函数,检查一棵二叉树是否为二叉搜索树。 示例 1: 输入: 2/ \1 3输出: true 示例 2: 输入: 5/ \1 4/ \3 6输出: false 解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。 解题思路与代码 使用…...

Nginx 反向代理技术梳理
Nginx 反向代理技术梳理 使用反向代理脑图 域名 A 可以解析找到 CDN 缓存 用户点击 APP 即通过 URL 发送 HTTPS 请求域名会进入阿里云的 DNS 服务器,解析域名会做第一级负载均衡通过 CDN 解析出域名,通过阿里云配置转发到 CDN 缓存服务器 CDN 有数据则直…...
华为OD机试 - 整数编码(Java) | 机试题+算法思路+考点+代码解析 【2023】
整数编码 题目 实现一种整数编码方法,使得待编码的数字越小,编码后所占用的字节数越小。 编码规则如下: 1、编码时7位一组,每个字节的低7位用于存储待编码数字的补码。 2、字节的最高位表示后续是否还有字节,置1表示后面还有更多的字节,置0表示当前字节为最后一个字…...

蓝桥杯冲击01 - 质数篇
目录 前言 一、质数是什么 二、易错点 三、试除法判断是否为质数 四、质数常考三大模型 五、真题练手 前言 距离蓝桥杯还有一个月,高效复习蓝桥杯知识, 质数相关的题目在蓝桥杯中经常出现。例如,2016年蓝桥杯省赛初赛第四题就是要求判…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...