<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tech Legend</title>
    <description>The latest articles on DEV Community by Tech Legend (@tech_legend_363498c8e24cb).</description>
    <link>https://dev.to/tech_legend_363498c8e24cb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4224677%2F3afd3e5b-e071-4ae8-9ec5-f98c6286cdb2.jpg</url>
      <title>DEV Community: Tech Legend</title>
      <link>https://dev.to/tech_legend_363498c8e24cb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tech_legend_363498c8e24cb"/>
    <language>en</language>
    <item>
      <title>How Attackers Find Exposed Cloud Credentials in Your Repos — and How to Stop Them</title>
      <dc:creator>Tech Legend</dc:creator>
      <pubDate>Fri, 13 Nov 2026 21:53:59 +0000</pubDate>
      <link>https://dev.to/tech_legend_363498c8e24cb/how-attackers-find-exposed-cloud-credentials-in-your-repos-and-how-to-stop-them-5ejm</link>
      <guid>https://dev.to/tech_legend_363498c8e24cb/how-attackers-find-exposed-cloud-credentials-in-your-repos-and-how-to-stop-them-5ejm</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Every fast-moving development team pushes code daily. Somewhere in that flow, a developer pastes an API key into a config file, commits it, and pushes. It takes seconds — and automated scanners can find that key just as fast.&lt;/p&gt;

&lt;p&gt;Exposed secrets in code repositories are one of the most common and most preventable ways cloud environments get compromised. This post breaks down what counts as an exposed secret, how attackers find them, and the practical steps that actually reduce the risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  What counts as an exposed secret
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloud access keys&lt;/strong&gt; — AWS access key IDs and secret keys, GCP service account JSON, Azure storage account keys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third-party API keys&lt;/strong&gt; — Stripe, Twilio, OpenAI, SendGrid, and similar tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private keys&lt;/strong&gt; — SSH private keys, signing certificates, &lt;code&gt;.pem&lt;/code&gt; files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database connection strings&lt;/strong&gt; — URLs that embed a username and password.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration data&lt;/strong&gt; — internal endpoints, bucket names, or architecture details that help an attacker move laterally.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How attackers find them
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Automated secret scanners.&lt;/strong&gt; Tools like Gitleaks, TruffleHog, and GitHub's own secret scanning crawl public repositories and match patterns — AWS key formats, Slack tokens, private key headers, and hundreds more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub dorking.&lt;/strong&gt; Attackers run targeted searches for filenames and strings: &lt;code&gt;filename:.env&lt;/code&gt;, &lt;code&gt;AWS_SECRET_ACCESS_KEY&lt;/code&gt;, &lt;code&gt;extension:pem private key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mass scanning services.&lt;/strong&gt; Dedicated services continuously scan the public commit stream and publish or sell what they find. A leaked key can be picked up within minutes of being pushed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;An exposed key is not a theoretical risk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data exfiltration&lt;/strong&gt; — a compromised database credential can dump an entire dataset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud bill fraud&lt;/strong&gt; — stolen cloud keys are routinely used to spin up compute resources at the victim's expense.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lateral movement&lt;/strong&gt; — a build server or CI credential becomes a beachhead into internal systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service impersonation&lt;/strong&gt; — an API token lets an attacker act as your application.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prevention that actually works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Never hardcode secrets.&lt;/strong&gt; Use environment variables or a secrets manager:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Instead of this&lt;/span&gt;
aws_secret_access_key &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"&lt;/span&gt;

&lt;span class="c"&gt;# Do this&lt;/span&gt;
&lt;span class="kd"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;AWS_SECRET_ACCESS_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"$(aws secretsmanager get-secret-value --secret-id prod/app --query SecretString --output text)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Add pre-commit hooks.&lt;/strong&gt; Catch secrets before they ever reach the remote:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install gitleaks and run it on staged changes&lt;/span&gt;
brew install gitleaks
gitleaks protect --staged
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Enable secret scanning in CI.&lt;/strong&gt; Run a scanner on every push and block merges that introduce a match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Use a vault for production.&lt;/strong&gt; AWS Secrets Manager, HashiCorp Vault, or Azure Key Vault inject secrets at runtime instead of baking them into artifacts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. If a secret leaks, rotate immediately.&lt;/strong&gt; Deleting the file in a new commit is not enough — the secret remains in Git history. Revoke the credential first, then scrub history with &lt;code&gt;git filter-repo&lt;/code&gt; and force-push.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] No secrets in source code or IaC templates&lt;/li&gt;
&lt;li&gt;[ ] &lt;code&gt;.env&lt;/code&gt; and key files in &lt;code&gt;.gitignore&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Pre-commit secret scanning enabled&lt;/li&gt;
&lt;li&gt;[ ] CI blocks merges with detected secrets&lt;/li&gt;
&lt;li&gt;[ ] Production secrets come from a vault&lt;/li&gt;
&lt;li&gt;[ ] Incident runbook: revoke → rotate → scrub history&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Further reading
&lt;/h2&gt;

&lt;p&gt;For a deeper look at how mass scanning services hunt exposed secrets in public repositories, see the hSECURITIES analysis: &lt;a href="https://hsecurities.in/blog/hackers-enlist-artex-scan-github-secrets" rel="noopener noreferrer"&gt;Hackers Enlist Artex to Scan GitHub Repositories for Exposed Secrets&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was generated by an AI assistant.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>security</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Non-Human Identities Are Your Next Security Blind Spot</title>
      <dc:creator>Tech Legend</dc:creator>
      <pubDate>Fri, 13 Nov 2026 20:46:03 +0000</pubDate>
      <link>https://dev.to/tech_legend_363498c8e24cb/non-human-identities-are-your-next-security-blind-spot-37dp</link>
      <guid>https://dev.to/tech_legend_363498c8e24cb/non-human-identities-are-your-next-security-blind-spot-37dp</guid>
      <description>&lt;p&gt;Most security programs assume every login belongs to a person. You onboard employees, assign roles, enforce multi-factor authentication and watch for odd behaviour. That model made sense when the only credentials in your environment were human ones. It no longer matches how modern software runs.&lt;/p&gt;

&lt;p&gt;Today's infrastructure runs on machine credentials. Service accounts let microservices authenticate to each other. API keys and OAuth tokens connect integrations and internal tools. CI/CD pipelines authenticate to container registries and cloud APIs. Containers and IoT devices carry identities of their own. And a newer category — autonomous AI agents — now holds permissions to read data, approve actions and trigger workflows.&lt;/p&gt;

&lt;p&gt;None of these identities has a human typing a password, and most were never designed with the same controls you apply to employee accounts.&lt;/p&gt;

&lt;p&gt;Three weaknesses show up repeatedly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Static, long-lived credentials.&lt;/strong&gt; API keys and hardcoded secrets often never expire and are rarely rotated. A leaked key can stay valid for months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over-privilege.&lt;/strong&gt; Service accounts accumulate permissions they no longer need, because removing access feels riskier than leaving it in place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poor visibility.&lt;/strong&gt; Logging and monitoring are tuned to human behaviour. Machine traffic looks different, and without context it is hard to tell a legitimate automated call from a compromised identity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What actually helps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inventory first.&lt;/strong&gt; Catalog service accounts, API keys, tokens and agents, and give each one an owner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply least privilege&lt;/strong&gt;, and revisit permissions when the workload changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shorten credential lifetimes&lt;/strong&gt; — rotating tokens or certificate-based authentication beat static keys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralise secrets management&lt;/strong&gt; in a vault that supports rotation and audit logging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor machine behaviour&lt;/strong&gt;: call volume, destination and timing, not just failed logins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate every API call&lt;/strong&gt; — authenticate, authorise and schema-validate, even when the call comes from inside your network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Securing non-human identities is less about buying a product and more about changing a default: every identity, human or machine, is verified, scoped and monitored.&lt;/p&gt;

&lt;p&gt;Full analysis: &lt;a href="https://hsecurities.in/blog/non-human-identities-cybersecurity-risks" rel="noopener noreferrer"&gt;https://hsecurities.in/blog/non-human-identities-cybersecurity-risks&lt;/a&gt;&lt;br&gt;
More security deep-dives: &lt;a href="https://hsecurities.in/blog" rel="noopener noreferrer"&gt;https://hsecurities.in/blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Some AI-assisted.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>devops</category>
      <category>ai</category>
    </item>
    <item>
      <title>RHEL 10.3 and 9.9: the security and AI changes worth planning around</title>
      <dc:creator>Tech Legend</dc:creator>
      <pubDate>Thu, 12 Nov 2026 00:40:30 +0000</pubDate>
      <link>https://dev.to/tech_legend_363498c8e24cb/rhel-103-and-99-the-security-and-ai-changes-worth-planning-around-450p</link>
      <guid>https://dev.to/tech_legend_363498c8e24cb/rhel-103-and-99-the-security-and-ai-changes-worth-planning-around-450p</guid>
      <description>&lt;p&gt;Red Hat's latest enterprise Linux releases — RHEL 10.3 and RHEL 9.9 — land with a clear focus: harder defaults, verifiable supply chains, and AI tooling that runs inside the OS rather than bolted on top.&lt;/p&gt;

&lt;p&gt;The security side is the part most teams will feel first. Both releases tighten default kernel parameters, improve memory-protection mechanisms such as Control Flow Integrity, and give administrators more granular SELinux policy controls. Red Hat has also leaned into supply-chain provenance, tracking the origin and integrity of dependencies in container images and installed packages. For regulated environments, that is a meaningful reduction in attack surface without waiting on application changes.&lt;/p&gt;

&lt;p&gt;The AI angle is more practical than it sounds: RHEL 10.3 ships tooling that can use local or private-cloud LLMs to help with debugging, code generation, and producing initial hardening scripts from application manifests. The goal is to make secure configuration the default path rather than a specialist task.&lt;/p&gt;

&lt;p&gt;If you run RHEL in production, treat this as a security milestone rather than a routine bump. Inventory your hosts, pilot the upgrade on staging, check the release notes for breaking changes, and re-scan after patching to confirm the vulnerable packages are gone.&lt;/p&gt;

&lt;p&gt;We broke down the full advisory — the key changes, affected components, and upgrade steps — in our report: &lt;a href="https://hsecurities.in/blog/red-hat-rhel-10-3-and-9-9-security-ai-features" rel="noopener noreferrer"&gt;https://hsecurities.in/blog/red-hat-rhel-10-3-and-9-9-security-ai-features&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some AI-assisted.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Non-human identities are the access problem nobody tracks</title>
      <dc:creator>Tech Legend</dc:creator>
      <pubDate>Tue, 10 Nov 2026 10:17:48 +0000</pubDate>
      <link>https://dev.to/tech_legend_363498c8e24cb/non-human-identities-are-the-access-problem-nobody-tracks-7fp</link>
      <guid>https://dev.to/tech_legend_363498c8e24cb/non-human-identities-are-the-access-problem-nobody-tracks-7fp</guid>
      <description>&lt;p&gt;Most access reviews still focus on human users. Yet a typical estate holds far more machine identities than people: service accounts, API keys, OAuth tokens, container workload identities and AI agents — each with credentials that can read data or trigger actions.&lt;/p&gt;

&lt;p&gt;The lifecycle is where these identities go wrong. They are created quickly, given broader permissions than needed, rarely rotated, and almost never deactivated. A leaked API key in a public repository, or a forgotten service account with admin rights, is a direct path into production.&lt;/p&gt;

&lt;p&gt;A practical starting point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inventory every credential that is not a person.&lt;/strong&gt; Include API keys, tokens, service accounts and workload identities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply least privilege.&lt;/strong&gt; Each identity should hold only the permissions its workload needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rotate on a schedule&lt;/strong&gt; and revoke credentials the moment a workload is retired.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat AI agents as identities.&lt;/strong&gt; An agent that can call your APIs is an access principal and should be audited like one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The risk is not that machines are logging in. It is that nobody is keeping track of what they can do. The full threat-landscape overview, with the attack path and the controls that actually help, is here: &lt;a href="https://hsecurities.in/blog/non-human-identities-cybersecurity-risks" rel="noopener noreferrer"&gt;https://hsecurities.in/blog/non-human-identities-cybersecurity-risks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is an AI-assisted summary of hSECURITIES research.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>devops</category>
      <category>identity</category>
    </item>
  </channel>
</rss>
