메뉴 건너뛰기

게임 커뮤니티 4브론즈

IT 해외 뉴스

本文翻译于Richard Lander的这篇英文文章:Secure your .NET cloud apps with rootless Linux Containers – .NET Blog (microsoft.com) 从 .NET 8 起,我们所有的 Linux 容镜像都将包含一个non-root 用户。只需要一行代码就能以non-root用户身份托管您的 .NET 容器。这个平台级的变化将会使你的应用程序更加安全,并使 .NET 成为最安全的开发者生态系统之一。这是一个小的变化,但对深层防御(defense in depth)影响巨大。 这一变化的灵感来源于我们早期在 Ubuntu Chiseled 容器中启用 .NET 的项目。Chiseled(又称 “distroless”)镜像旨在像设备一样,因此non-root是这些镜像最简单的设计选择。我们意识到,我们可以将Chiseled容器的non-root功能应用于我们发布的所有容器镜像。通过这样做,我们提高了.NET容器镜像的安全标准。 这篇文章是关于non-root容器的好处,创建它们的工作流程以及工作原理。在后续的文章中,我们也将讨论如何在Kubernetes中更好地使用这些镜像。另外,如果想要更简单的选项,那你应该查看.NET SDK 的内置容器支持。 最小特权 将容器托管为non-root符合最小特权原则。这是由操作系统提供的免费保安。如果以 root身份运行应用,那应用进程可以在容器中执行任何操作,例如修改文件、安装包或者运行任意可执行文件。如果您的应用程序受到攻击,这将是一个隐患。但是如果以non-root身份运行应用,你的应用进程将无法执行太多操作,从而极大地限制了攻击者的恶意操作。 non-root容器也可以认为是对安全供应链的贡献。通常,人们都是从阻止不良依赖项更新或排查组件来源的角度来探讨安全供应链。non-root容器在这两者之后。如果在你的进程中出现了不良依赖项(很有可能会),那么non-root容器可能是最好的最后防线。Kubernetes hardening最佳做法要求以non-root用户运行容器,也是出于这个原因。 浅识app 我们所有的 Linux 镜像–从 .NET 8 开始–将包含一个app用户。app用户将能够运行你的应用程序,但不能删除或更改容器镜像中的任何文件(除非你明确允许这样做)。这个命名也是一目了然,app用户除了运行你的应用程序外,几乎不能做任何事情。 这个app用户实际上并不是新的。它和我们用于Ubuntu Chiseled镜像的那个是一样的。这是个关键的设计点。从 .NET 8 开始,我们所有的 Linux 容器镜像都将包含app用户。这意味着您可以在我们提供的镜像之间进行切换,并且user和uid是一样的。 接下来我将描述 docker CLI 的全新体验。 $ docker run --rm mcr.microsoft.com/dotnet/aspnet:8.0-preview cat /etc/passwd | tail -n 1app:x:64198:64198::/home/app:/bin/sh 这是镜像中  /etc/passwd file的最后一行。这是 Linux 用于管理用户的文件。 根据行业指导 我们选择了一个相对较高的 uid,接近 2^16。我们还决定此用户应当有一个主目录。 $ docker run --rm -u app mcr.microsoft.com/dotnet/aspnet:8.0-preview bash -c "cd &&


원문출처 : https://devblogs.microsoft.com/dotnet-ch/%E4%BD%BF%E7%94%A8rootless-linux-%E5%AE%B9%E5%99%A8%E4%BF%9D%E6%8A%A4%E4%BD%A0%E7%9A%84-net-%E4%BA%91%E5%BA%94%E7%94%A8
번호 제목 글쓴이 날짜 조회 수
공지 자동수집 대상 사이트 KanoT 2023.02.14 2154
267 [Godot] Maintenance release: Godot 4.0.2 뉴스봇 2023.04.04 1009
266 [DevBlogs] Java on Azure Tooling的更新 – 2023年3月 뉴스봇 2023.04.04 383
265 [DevBlogs] Java on Azure Tooling Update – March 2023 뉴스봇 2023.04.04 1007
264 [DevBlogs] ASP.NET Core Route Tooling Enhancements in .NET 8 뉴스봇 2023.04.04 987
263 [DevBlogs] Skype for Business usage reports deprecation in Microsoft Graph production and beta endpoints  뉴스봇 2023.04.04 813
262 [DevBlogs] Improved Windows Broker Support with MSAL.NET 뉴스봇 2023.04.04 1172
261 [DevBlogs] C++17 creates a practical use of the backward array index operator 뉴스봇 2023.04.03 384
260 [Stack Overflow] “Data driven” decisions aren’t innovative decisions 뉴스봇 2023.04.03 404
259 [Stack Overflow] The people most affected by the tech layoffs 뉴스봇 2023.04.02 491
258 [DevBlogs] PowerShellGet 3.0 Preview 20 뉴스봇 2023.04.01 890
257 [DevBlogs] Python in Visual Studio Code – April 2023 Release 뉴스봇 2023.04.01 964
256 [DevBlogs] Azure Cosmos DB for PostgreSQL vs. Azure Database for PostgreSQL: When to choose which 뉴스봇 2023.04.01 833
255 [DevBlogs] Top five AppSource validation errors for Office Add-ins submissions – March 2023  뉴스봇 2023.04.01 448
254 [Godot] Release candidate: Godot 4.0.2 RC 1 뉴스봇 2023.03.31 1390
253 [DevBlogs] What is this [uuid(…)] in front of my C++ class declaration? 뉴스봇 2023.03.31 352
252 [Stack Overflow] The Overflow #171: The tech toolbox 뉴스봇 2023.03.31 309
» [DevBlogs] 使用Rootless Linux 容器保护你的 .NET 云应用 뉴스봇 2023.03.31 1451
250 [Stack Overflow] How to keep the servers running when your Mastodon goes viral 뉴스봇 2023.03.31 411
249 [DevBlogs] PIX 2303.30: Misc bug fixes + preview GPU Upload heap support  뉴스봇 2023.03.31 1393
248 [DevBlogs] PIX and ID3D12ManualWriteTrackingResource  뉴스봇 2023.03.31 733
위로