<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xx="categories" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Security - Ken Muse</title><atom:link href="https://www.kenmuse.com/categories/security/rss/" rel="self" type="application/rss+xml"/><link>https://www.kenmuse.com/categories/security/</link><description>Discover Azure, DevOps, and development insights with Ken Muse, a DevOps Architect at GitHub and 4x Microsoft Azure MVP</description><language>en-us</language><sy:updatePeriod>weekly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><image><title>Security - Ken Muse</title><link>https://www.kenmuse.com/categories/security/</link><width>32</width><url>https://www.kenmuse.com/categories/security/favicon/favicon-32x32.png</url><height>32</height></image><atom:link href="https://www.kenmuse.com/categories/security/rss/index.xml" rel="self" type="application/rss+xml"/><item><title>Configuring GitHub Runners With a Dotfiles Action</title><link>https://www.kenmuse.com/blog/configuring-github-runners-with-a-dotfiles-action/</link><pubDate>Fri, 23 Jan 2026 00:00:00 -0500</pubDate><guid isPermaLink="false">configuring-github-runners-with-a-dotfiles-action</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Transform your dotfiles repo into a GitHub Action that secures runners without tokens or manual cloning.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/configuring-github-runners-with-a-dotfiles-action/images/banner.png"/></item><item><title>Masking Sensitive Information on GitHub Runner Custom Images</title><link>https://www.kenmuse.com/blog/masking-secrets-github-runner-custom-images/</link><pubDate>Mon, 22 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">masking-secrets-github-runner-custom-images</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Learn the best way to protect sensitive information from leaking into the logs on GitHub runner custom images during both build-time and run-time.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/masking-secrets-github-runner-custom-images/images/banner.png"/></item><item><title>Using GitHub Custom Images with OIDC</title><link>https://www.kenmuse.com/blog/using-github-custom-images-with-oidc/</link><pubDate>Fri, 19 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">using-github-custom-images-with-oidc</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Learn how to use OIDC tokens in GitHub Actions custom images to authenticate with private container registries without storing credentials.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/using-github-custom-images-with-oidc/images/santa-oidc.png"/></item><item><title>Layering Approaches for Secure Secrets</title><link>https://www.kenmuse.com/blog/layering-approaches-for-secure-secrets/</link><pubDate>Fri, 12 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">layering-approaches-for-secure-secrets</guid><category>Security</category><category>DevOps</category><description>Learn to layer secret management techniques through practical examples that build defense-in-depth security for GitHub Actions, containers, and more.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/layering-approaches-for-secure-secrets/images/criminal-impossible-safe.png"/></item><item><title>More Ways to Secure Secrets</title><link>https://www.kenmuse.com/blog/more-ways-to-secure-secrets/</link><pubDate>Wed, 10 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">more-ways-to-secure-secrets</guid><category>Security</category><category>DevOps</category><description>Move beyond static credentials with federated auth, managed identities, and secret vaults -- learn the tradeoffs and security considerations.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/more-ways-to-secure-secrets/images/criminal-nested-safe.png"/></item><item><title>Securing Access to Secrets</title><link>https://www.kenmuse.com/blog/securing-access-to-secrets/</link><pubDate>Mon, 08 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">securing-access-to-secrets</guid><category>Security</category><category>DevOps</category><description>Explore practical approaches to storing secrets securely, from files to HSMs, with real-world hardening strategies you can implement today.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/securing-access-to-secrets/images/criminal-safe.png"/></item><item><title>Custom GitHub Runner Images With Pre- and Post-Job Scripts</title><link>https://www.kenmuse.com/blog/custom-github-runner-images-with-pre-and-post-job-scripts/</link><pubDate>Fri, 05 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">custom-github-runner-images-with-pre-and-post-job-scripts</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Learn how to capture custom GitHub-hosted runner images, add pre- and post-job hooks, and make them part of your daily workflows.</description><enclosure type="image/ebp" url="https://www.kenmuse.com/blog/custom-github-runner-images-with-pre-and-post-job-scripts/images/custom-image-versions.webp"/></item><item><title>Using Azure Flexible Federation With GitHub Actions</title><link>https://www.kenmuse.com/blog/using-azure-flexible-federation-with-github-actions/</link><pubDate>Tue, 02 Dec 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">using-azure-flexible-federation-with-github-actions</guid><category>Azure</category><category>DevOps</category><category>GitHub</category><category>Security</category><description>Use Azure flexible federated identity credentials with GitHub Actions to secure your workflows with custom OIDC claims approval expressions.</description><enclosure type="image/ebp" url="https://www.kenmuse.com/blog/using-azure-flexible-federation-with-github-actions/images/banner.webp"/></item><item><title>How I Avoided Shai-Hulud's Second Coming (Part 2)</title><link>https://www.kenmuse.com/blog/how-i-avoided-shai-hulud-second-coming-part-2/</link><pubDate>Fri, 28 Nov 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">how-i-avoided-shai-hulud-second-coming-part-2</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>How signed commits and repository protections completed my defense against the Shai-Hulud supply chain attack.</description><enclosure type="image/ebp" url="https://www.kenmuse.com/blog/how-i-avoided-shai-hulud-second-coming-part-2/images/activity-log.webp"/></item><item><title>How I Avoided Shai-Hulud's Second Coming (Part 1)</title><link>https://www.kenmuse.com/blog/how-i-avoided-shai-hulud-second-coming-part-1/</link><pubDate>Wed, 26 Nov 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">how-i-avoided-shai-hulud-second-coming-part-1</guid><category>Containers</category><category>DevOps</category><category>GitHub</category><category>Security</category><description>Simple security practices that protected my dev environment from the Shai-Hulud supply chain attack -- and how you can use them too.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/how-i-avoided-shai-hulud-second-coming-part-1/images/desert-worm.png"/></item><item><title>The Hidden Danger in Git Ref Names</title><link>https://www.kenmuse.com/blog/the-hidden-danger-in-git-ref-names/</link><pubDate>Fri, 31 Oct 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">the-hidden-danger-in-git-ref-names</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>A Halloween lesson: how a weaponized Git branch name let attackers inject code via a GitHub expression and the simple steps you can take to block it.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/the-hidden-danger-in-git-ref-names/images/halloween-banner.png"/></item><item><title>The Key to a Secure CI/CD Process</title><link>https://www.kenmuse.com/blog/key-to-a-secure-ci-cd-process/</link><pubDate>Mon, 20 Oct 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">key-to-a-secure-ci-cd-process</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Learn how to create a secure CI/CD pipeline by starting with securing your most important asset: your people.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/key-to-a-secure-ci-cd-process/images/banner.png"/></item><item><title>Restricting IP Access on GitHub-Hosted Runners</title><link>https://www.kenmuse.com/blog/restricting-ip-access-on-github-hosted-runners/</link><pubDate>Thu, 16 Oct 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">restricting-ip-access-on-github-hosted-runners</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Restrict outbound DNS and IP access on GitHub-hosted runners using iptables, ip6tables, and DNS-over-HTTPS blocking to harden your CI/CD.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/restricting-ip-access-on-github-hosted-runners/images/banner.png"/></item><item><title>Restricting DNS Access on GitHub-Hosted Runners</title><link>https://www.kenmuse.com/blog/restricting-dns-access-on-github-hosted-runners/</link><pubDate>Mon, 13 Oct 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">restricting-dns-access-on-github-hosted-runners</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Learn how to restrict DNS resolution and improve CI/CD security on GitHub-hosted runners by using a local Unbound allow list.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/restricting-dns-access-on-github-hosted-runners/images/banner.png"/></item><item><title>How to Dynamically Authenticate With Git</title><link>https://www.kenmuse.com/blog/how-to-dynamically-authenticate-with-git/</link><pubDate>Tue, 06 May 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">how-to-dynamically-authenticate-with-git</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Discover practical techniques for dynamically authenticating with Git using environment variables or secret vaults to retrieve user credentials.</description><enclosure type="image/ebp" url="https://www.kenmuse.com/blog/how-to-dynamically-authenticate-with-git/images/banner.webp"/></item><item><title>How Does Git Authentication Work?</title><link>https://www.kenmuse.com/blog/how-does-git-authentication-work/</link><pubDate>Sat, 03 May 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">how-does-git-authentication-work</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Discover the intricacies of Git authentication, how it works, and how to configure credential helpers to allow fine-grained control over authentication.</description><enclosure type="image/ebp" url="https://www.kenmuse.com/blog/how-does-git-authentication-work/images/banner.webp"/></item><item><title>Retrieving Properties From a Gitsigned Commit</title><link>https://www.kenmuse.com/blog/retrieving-properties-from-a-gitsigned-commit/</link><pubDate>Wed, 16 Apr 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">retrieving-properties-from-a-gitsigned-commit</guid><category>DevOps</category><category>Security</category><description>Learn how to extract and validate signed Git commits using the Gitsign certificates and OpenSSL to enhance your software supply chain security.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/retrieving-properties-from-a-gitsigned-commit/images/banner.png"/></item><item><title>Using Gitsign for Keyless Git Commit Signing</title><link>https://www.kenmuse.com/blog/using-gitsign-for-keyless-git-commit-signing/</link><pubDate>Sat, 12 Apr 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">using-gitsign-for-keyless-git-commit-signing</guid><category>DevOps</category><category>Security</category><description>Use Gitsign and GitHub Actions for keyless Git commit signing to enhance supply chain security and ensure code provenance without managing private keys.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/using-gitsign-for-keyless-git-commit-signing/images/banner.png"/></item><item><title>Inside My Home Automation Journey</title><link>https://www.kenmuse.com/blog/inside-my-home-automation-journey/</link><pubDate>Tue, 18 Feb 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">inside-my-home-automation-journey</guid><category>General</category><category>Security</category><description>How we learned to ditch data leaks and embrace local IoT control for ultimate privacy and smarter living.</description><enclosure type="image/jpeg" url="https://www.kenmuse.com/blog/inside-my-home-automation-journey/images/banner.jpg"/></item><item><title>The Most Dangerous Phrase in Software Development</title><link>https://www.kenmuse.com/blog/most-dangerous-phrase-in-software-development/</link><pubDate>Sat, 01 Feb 2025 00:00:00 -0500</pubDate><guid isPermaLink="false">most-dangerous-phrase-in-software-development</guid><category>DevOps</category><category>Programming</category><category>Security</category><description>Discover why "it should work" is software development's most dangerous phrase and how this mindset leads to unreliable, untested code.</description><enclosure type="image/jpeg" url="https://www.kenmuse.com/blog/most-dangerous-phrase-in-software-development/images/banner.jpg"/></item><item><title>Fashion, DevOps, and Certificates</title><link>https://www.kenmuse.com/blog/fashion-devops-and-certificates/</link><pubDate>Sat, 20 Apr 2024 00:00:00 -0400</pubDate><guid isPermaLink="false">fashion-devops-and-certificates</guid><category>Programming</category><category>Security</category><category>DevOps</category><description>Google has announced an initiative that will change the way certificates are issued, impacting 50% of companies. Are your dev practices up for the challenge?</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/fashion-devops-and-certificates/images/banner.png"/></item><item><title>Automating Azure OIDC Application Federation</title><link>https://www.kenmuse.com/blog/automating-azure-oidc-application-federation/</link><pubDate>Mon, 22 Jan 2024 00:00:00 -0500</pubDate><guid isPermaLink="false">automating-azure-oidc-application-federation</guid><category>Azure</category><category>DevOps</category><category>GitHub</category><category>Security</category><description>&lt;p&gt;I was recently asked if I knew how to automate creating Azure Entra ID (formerly Active Directory) applications. More specifically, they wanted to know if they could use PowerShell to automate creating the OIDC federation between Azure AD and GitHub. To do this, we just need to use a few PowerShell modules that save us the trouble of crafting several REST calls. These modules work with PowerShell 5.x and 7.x.&lt;/p&gt;</description><enclosure type="image/jpeg" url="https://www.kenmuse.com/blog/automating-azure-oidc-application-federation/images/banner.jpg"/></item><item><title>GitHub Actions Injection Attacks</title><link>https://www.kenmuse.com/blog/github-actions-injection-attacks/</link><pubDate>Thu, 21 Dec 2023 00:00:00 -0500</pubDate><guid isPermaLink="false">gitHub-actions-injection-attacks</guid><category>DevOps</category><category>GitHub</category><category>Security</category><description>Security is important, even in your CI/CD processes. Learn the basics of injection exploits with GitHub Actions and how to avoid them.</description><enclosure type="image/jpeg" url="https://www.kenmuse.com/blog/github-actions-injection-attacks/images/banner.jpg"/></item><item><title>Understanding OIDC and Identity Federation</title><link>https://www.kenmuse.com/blog/understanding-oidc-and-identity-federation/</link><pubDate>Fri, 24 Nov 2023 00:00:00 -0500</pubDate><guid isPermaLink="false">understanding-oidc-and-identity-federation</guid><category>Azure</category><category>DevOps</category><category>GitHub</category><category>Security</category><description>Adopting OIDC can be challenging for teams that don't understand how the process works. This post explores OIDC and explains what's happening under the covers.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/understanding-oidc-and-identity-federation/images/banner.png"/></item><item><title>The Hidden Dangers in Dependencies</title><link>https://www.kenmuse.com/blog/the-hidden-dangers-in-dependencies/</link><pubDate>Thu, 14 Sep 2023 00:00:00 -0400</pubDate><guid isPermaLink="false">the-hidden-dangers-in-dependencies</guid><category>DevOps</category><category>Programming</category><category>Security</category><description>When it comes to code, what you don't know can hurt you. Dependencies come with more security considerations than most people realize. Learn to tighten it up!</description><enclosure type="image/jpeg" url="https://www.kenmuse.com/blog/the-hidden-dangers-in-dependencies/images/banner.jpg"/></item><item><title>Understanding Certificate Authorities</title><link>https://www.kenmuse.com/blog/understanding-certificate-authorities/</link><pubDate>Thu, 27 Jul 2023 00:00:00 -0400</pubDate><guid isPermaLink="false">understanding-certificate-authorities</guid><category>Programming</category><category>Security</category><description>Certificates rely need a system of trust, and this starts with certificate authorities (CAs). In this post, we'll explore both CAs and self-signed certificates.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/understanding-certificate-authorities/images/banner.png"/></item><item><title>Understanding X.509 Certificates</title><link>https://www.kenmuse.com/blog/understanding-x509-certificates/</link><pubDate>Thu, 20 Jul 2023 00:00:00 -0400</pubDate><guid isPermaLink="false">understanding-x509-certificates</guid><category>Programming</category><category>Security</category><description>Despite decades of use, certificates tend to be a mystery to most developers. In today's post, we explore the basics of certificates and take a peak inside.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/understanding-x509-certificates/images/banner.png"/></item><item><title>Preventing GitHub Actions Injection Attacks</title><link>https://www.kenmuse.com/blog/github-actions-injection/</link><pubDate>Fri, 07 Apr 2023 00:00:00 -0400</pubDate><guid isPermaLink="false">github-actions-injection</guid><category>DevOps</category><category>Security</category><description>Everything coded can be exploited, including GitHub Actions. The powerful expressions syntax can also break your systems. Learn better ways to handle them.</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/github-actions-injection/images/banner.png"/></item><item><title>Security Theater - The Illusion of Compliance</title><link>https://www.kenmuse.com/blog/security-theater/</link><pubDate>Thu, 10 Nov 2022 00:00:00 -0500</pubDate><guid isPermaLink="false">security-theater</guid><category>Security</category><description>&lt;p&gt;Trying to secure code is no easy task. It takes real effort to build a product and keep it secure. As we try to shift left and build security into our applications, we are pushed to learn new ways to meet these goals. One of those ways is to use tools. Unfortunately, the complexities of security make it very easy for companies to offer quick fixes and simple solutions. They offer &lt;em&gt;security theater&lt;/em&gt;. If you&amp;rsquo;re not familiar with the term, security theater is when you create measures that give the illusion of security while doing little or nothing to actually secure anything.&lt;/p&gt;</description><enclosure type="image/png" url="https://www.kenmuse.com/blog/security-theater/images/banner.png"/></item></channel></rss>