<?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: Lhoren De Roche</title>
    <description>The latest articles on DEV Community by Lhoren De Roche (@lhoren972971).</description>
    <link>https://dev.to/lhoren972971</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%2F4076202%2Fabf8c139-cb83-4bf1-a6c8-38d6789b67c9.png</url>
      <title>DEV Community: Lhoren De Roche</title>
      <link>https://dev.to/lhoren972971</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lhoren972971"/>
    <language>en</language>
    <item>
      <title>Your API Inventory Is Probably Wrong and the EU CRA of September 11, 2026 Will Expose It</title>
      <dc:creator>Lhoren De Roche</dc:creator>
      <pubDate>Fri, 14 Aug 2026 12:28:52 +0000</pubDate>
      <link>https://dev.to/lhoren972971/your-api-inventory-is-probably-wrong-and-the-eu-cra-of-september-11-2026-will-expose-it-2hjp</link>
      <guid>https://dev.to/lhoren972971/your-api-inventory-is-probably-wrong-and-the-eu-cra-of-september-11-2026-will-expose-it-2hjp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask your engineering team this question:&lt;/p&gt;

&lt;p&gt;"How many APIs do you have running &lt;br&gt;
in production right now?"&lt;/p&gt;

&lt;p&gt;In 9 out of 10 cases, the answer sounds like &lt;br&gt;
"around 200, I think" or &lt;br&gt;
"we'd have to check Confluence."&lt;/p&gt;

&lt;p&gt;This isn't negligence. It's structural.&lt;/p&gt;

&lt;p&gt;Cloudflare measured the gap across thousands &lt;br&gt;
of real customers: "30.7% of APIs active in &lt;br&gt;
production don't appear in any declared &lt;br&gt;
inventory". Nearly one in three APIs &lt;br&gt;
is invisible.&lt;/p&gt;

&lt;p&gt;And with the "EU Cyber Resilience Act &lt;br&gt;
taking effect on September 11, 2026", &lt;br&gt;
this invisibility becomes a regulatory &lt;br&gt;
problem — not just a security risk.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source: Cloudflare 2024 API Security &lt;br&gt;
and Management Report&lt;/em&gt;&lt;br&gt;
&lt;em&gt;cloudflare.com/2024-api-security-management-report&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Why Your API Inventory Is Always Wrong&lt;/p&gt;

&lt;p&gt;The problem isn't lack of good intentions. &lt;br&gt;
It's speed.&lt;/p&gt;

&lt;p&gt;Here's what actually happens in a scale-up &lt;br&gt;
shipping code every week:&lt;/p&gt;

&lt;p&gt;_Tuesday 2:00 PM&lt;br&gt;
A developer creates /api/internal/debug&lt;br&gt;
to investigate a production bug.&lt;/p&gt;

&lt;p&gt;_Thursday 9:00 AM&lt;br&gt;
The bug is fixed. The developer moves&lt;br&gt;
to the next ticket.&lt;/p&gt;

&lt;p&gt;Friday 6:00 PM&lt;br&gt;
The endpoint is deployed to production&lt;br&gt;
with the rest of the sprint.&lt;/p&gt;

&lt;p&gt;6 months later&lt;br&gt;
/api/internal/debug is still receiving traffic.&lt;br&gt;
No authentication.&lt;br&gt;
No identified owner.&lt;br&gt;
Zero documentation anywhere.__&lt;/p&gt;

&lt;p&gt;This is what we call a "shadow API"&lt;br&gt;
an endpoint active in production &lt;br&gt;
that nobody knew existed.&lt;/p&gt;

&lt;p&gt;A European fintech found "47 of them"&lt;br&gt;
during a security audit. &lt;br&gt;
17 with no authentication. &lt;br&gt;
8 with admin access to the production database. &lt;br&gt;
Zero in the architecture documentation.&lt;/p&gt;

&lt;p&gt;They had been running for years.&lt;/p&gt;

&lt;p&gt;The Zombie API Problem&lt;/p&gt;

&lt;p&gt;On the other side of the spectrum, &lt;br&gt;
"zombie APIs" are endpoints declared &lt;br&gt;
in your code that haven't received &lt;br&gt;
traffic in weeks or months.&lt;/p&gt;

&lt;p&gt;They're there. They're running. They're &lt;br&gt;
consuming resources. And they maintain &lt;br&gt;
an attack surface that nobody monitors &lt;br&gt;
anymore, because the team that built them &lt;br&gt;
was reassigned or dissolved long ago.&lt;/p&gt;

&lt;p&gt;The combination of shadow APIs and zombie APIs &lt;br&gt;
makes any manual inventory impossible &lt;br&gt;
to keep accurate. The spreadsheet is always &lt;br&gt;
two sprints behind reality.&lt;/p&gt;

&lt;p&gt;The EU Cyber Resilience Act Changes Everything&lt;/p&gt;

&lt;p&gt;With the "Cyber Resilience Act (CRA) &lt;br&gt;
taking effect on September 11, 2026", &lt;br&gt;
organizations must be able to produce &lt;br&gt;
a documented inventory of all their &lt;br&gt;
exposed software components APIs included &lt;br&gt;
 and their associated vulnerabilities, &lt;br&gt;
in ENISA format.&lt;/p&gt;

&lt;p&gt;This is no longer a best practice. &lt;br&gt;
It's a regulatory obligation with penalties.&lt;/p&gt;

&lt;p&gt;For fintechs and SaaS companies already &lt;br&gt;
subject to DORA, NIS2, and PCI DSS 4.0, &lt;br&gt;
this adds yet another constraint on an API &lt;br&gt;
inventory that most teams don't have.&lt;/p&gt;

&lt;p&gt;"With the EU Cyber Resilience Act taking &lt;br&gt;
effect September 11, 2026, organizations &lt;br&gt;
need a complete API inventory. &lt;br&gt;
APIRadar generates it in 10 minutes."&lt;/p&gt;

&lt;p&gt;How a Living API Inventory Works&lt;/p&gt;

&lt;p&gt;The only way to maintain a reliable API &lt;br&gt;
inventory is to generate it automatically &lt;br&gt;
from two sources of truth:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source 1&lt;/em&gt; Your code (what you declare)&lt;/p&gt;

&lt;p&gt;Your GitHub repos contain the definition &lt;br&gt;
of every route your developers wrote. &lt;br&gt;
A scanner that reads your route files &lt;br&gt;
can extract each endpoint with its HTTP &lt;br&gt;
method, path, source file, and line number.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source 2&lt;/em&gt; Real traffic (what's actually running)&lt;/p&gt;

&lt;p&gt;Your nginx, CloudFront, or AWS ALB access &lt;br&gt;
logs record every request your servers receive. &lt;br&gt;
By parsing these logs, you can extract every &lt;br&gt;
endpoint that received real production traffic.&lt;/p&gt;

&lt;p&gt;The Diff Engine where it gets interesting&lt;/p&gt;

&lt;p&gt;Comparing these two sources gives you &lt;br&gt;
three categories:&lt;/p&gt;

&lt;p&gt;_Traffic in prod BUT absent from code&lt;br&gt;
→ Shadow API 🔴&lt;br&gt;
Someone is calling this endpoint.&lt;br&gt;
Nobody knew it existed.&lt;br&gt;
Critical risk.&lt;/p&gt;

&lt;p&gt;In the code BUT no traffic&lt;br&gt;
→ Zombie API 🟡&lt;br&gt;
Forgotten endpoint, never disabled.&lt;br&gt;
Unnecessary attack surface.&lt;/p&gt;

&lt;p&gt;In the code AND regular traffic&lt;br&gt;
→ Active 🟢&lt;br&gt;
All good._&lt;/p&gt;

&lt;p&gt;What This Looks Like in Practice&lt;/p&gt;

&lt;p&gt;On a real Express.js repo scanned &lt;br&gt;
in 30 seconds:&lt;/p&gt;

&lt;p&gt;_gothinkster/node-express-realworld-example-app&lt;/p&gt;

&lt;p&gt;32 files scanned&lt;br&gt;
20 endpoints found&lt;br&gt;
1 undocumented endpoint detected&lt;br&gt;
Documentation score: 95/100_&lt;/p&gt;

&lt;p&gt;On a real fintech scale-up with &lt;br&gt;
production logs:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;53 endpoints in production&lt;br&gt;
3 shadow APIs 🔴 — risk score 25/100&lt;br&gt;
44 zombie APIs 🟡 — risk score 60/100&lt;br&gt;
6 active endpoints 🟢 — risk score 65/100&lt;br&gt;
Overall posture: 59/100&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The 3 shadow APIs in this example were &lt;br&gt;
receiving active traffic. None were in &lt;br&gt;
the inventory. None had an identified owner.&lt;/p&gt;

&lt;p&gt;How to Generate Your API Inventory &lt;br&gt;
in 10 Minutes&lt;/p&gt;

&lt;p&gt;You don't need an agent to install &lt;br&gt;
or access to your production infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Three steps:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Step 1 — Connect your GitHub repos&lt;br&gt;
OAuth in one click. Read-only. APIRadar &lt;br&gt;
extracts all routes declared in your code &lt;br&gt;
Next.js, Express, FastAPI, Django, Rails.&lt;/p&gt;

&lt;p&gt;Step 2 — Upload an access log file&lt;br&gt;
A nginx access.log or CloudFront file. &lt;br&gt;
Drag and drop. APIRadar extracts every &lt;br&gt;
endpoint that received real traffic.&lt;/p&gt;

&lt;p&gt;Step 3 - The Diff Engine does the rest&lt;br&gt;
In seconds, you see the gap between what &lt;br&gt;
you thought you had and what's actually &lt;br&gt;
running in production.&lt;/p&gt;

&lt;p&gt;Result: a complete inventory, a risk score &lt;br&gt;
per endpoint, and an automatic email alert &lt;br&gt;
whenever a new shadow API is detected.&lt;/p&gt;

&lt;p&gt;Try It Now — No Account Needed&lt;/p&gt;

&lt;p&gt;Want to see what your public repo &lt;br&gt;
declares as endpoints?&lt;/p&gt;

&lt;p&gt;Scan for free in 30 seconds no login:&lt;/p&gt;

&lt;p&gt;👉 "ap-iradar.vercel.app/scan"&lt;/p&gt;

&lt;p&gt;To go further compare with your &lt;br&gt;
production logs and detect real shadow APIs &lt;br&gt;
a free 14-day trial is available at &lt;br&gt;
"ap-iradar.vercel.app"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On September 11, 2026, the CRA takes effect.&lt;/p&gt;

&lt;p&gt;Organizations that don't have a complete, &lt;br&gt;
documented API inventory will be exposed&lt;br&gt;&lt;br&gt;
both regulatorily and technically.&lt;/p&gt;

&lt;p&gt;The good news: this isn't a months-long &lt;br&gt;
project. With the right tool, the inventory &lt;br&gt;
is generated in 10 minutes from your &lt;br&gt;
existing code and logs.&lt;/p&gt;

&lt;p&gt;The bad news: every day without an inventory, &lt;br&gt;
new endpoints appear in production. &lt;br&gt;
And some of them, you don't know about.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;APIRadar — API inventory and shadow API &lt;br&gt;
detection for scale-ups.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Free scanner: ap-iradar.vercel.app/scan&lt;/em&gt;&lt;br&gt;
&lt;em&gt;14-day free trial: ap-iradar.vercel.app&lt;/em&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>devops</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Votre inventaire API est probablement faux et le CRA du 11 septembre 2026 va l'exposer</title>
      <dc:creator>Lhoren De Roche</dc:creator>
      <pubDate>Thu, 13 Aug 2026 17:31:37 +0000</pubDate>
      <link>https://dev.to/lhoren972971/votre-inventaire-api-est-probablement-faux-et-le-cra-du-11-septembre-2026-va-lexposer-2o4l</link>
      <guid>https://dev.to/lhoren972971/votre-inventaire-api-est-probablement-faux-et-le-cra-du-11-septembre-2026-va-lexposer-2o4l</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Posez cette question à votre équipe :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Combien d'APIs avez-vous exactement &lt;br&gt;
en production en ce moment ?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dans 9 cas sur 10, la réponse ressemble à &lt;br&gt;
"environ 200, je crois" ou &lt;br&gt;
"il faudrait vérifier le Confluence".&lt;/p&gt;

&lt;p&gt;Ce n'est pas de la négligence. C'est structurel.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cloudflare a mesuré l'écart sur des milliers &lt;br&gt;
de clients réels : **30,7% des APIs actives &lt;br&gt;
en production ne figurent dans aucun inventaire &lt;br&gt;
déclaré&lt;/em&gt;*. Près d'une API sur trois est invisible.&lt;/p&gt;

&lt;p&gt;Et avec l'entrée en vigueur du &lt;br&gt;
&lt;strong&gt;Cyber Resilience Act le 11 septembre 2026&lt;/strong&gt;, &lt;br&gt;
cette invisibilité devient un problème &lt;br&gt;
réglementaire — pas seulement un risque &lt;br&gt;
de sécurité.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi votre inventaire API est toujours faux
&lt;/h2&gt;

&lt;p&gt;Voici ce qui se passe dans la réalité d'une &lt;br&gt;
scale-up qui shippe du code chaque semaine :&lt;/p&gt;

&lt;p&gt;"Mardi 14h00&lt;br&gt;
Un développeur crée /api/internal/debug&lt;br&gt;
pour investiguer un bug en production.&lt;/p&gt;

&lt;p&gt;Sprint 42 — Jeudi 09h00&lt;br&gt;
Le bug est résolu.&lt;/p&gt;

&lt;p&gt;6 mois plus tard&lt;br&gt;
/api/internal/debug reçoit toujours du trafic.&lt;br&gt;
Aucune authentification.&lt;br&gt;
Aucun propriétaire identifié.&lt;br&gt;
Zéro dans l'architecture documentée."&lt;/p&gt;

&lt;p&gt;C'est ce qu'on appelle une &lt;strong&gt;shadow API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Une fintech européenne en a trouvé &lt;strong&gt;47&lt;/strong&gt; &lt;br&gt;
lors d'un audit. 17 sans authentification. &lt;br&gt;
8 avec accès admin à la base de données.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le Cyber Resilience Act change la donne
&lt;/h2&gt;

&lt;p&gt;Avec l'entrée en vigueur du &lt;strong&gt;CRA le 11 septembre &lt;br&gt;
2026&lt;/strong&gt;, les organisations doivent produire un &lt;br&gt;
inventaire documenté de tous leurs composants &lt;br&gt;
logiciels exposés APIs incluses.&lt;/p&gt;

&lt;p&gt;Ce n'est plus une bonne pratique. C'est une obligation réglementaire.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comment fonctionne un inventaire API vivant
&lt;/h2&gt;

&lt;p&gt;Deux sources de vérité :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source 1 — Le code (ce que vous déclarez)&lt;/strong&gt;&lt;br&gt;
Vos repos GitHub contiennent toutes les routes &lt;br&gt;
que vos développeurs ont écrites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source 2 — Le trafic réel (ce qui tourne)&lt;/strong&gt;&lt;br&gt;
Vos logs nginx ou CloudFront enregistrent &lt;br&gt;
chaque requête reçue en production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le Diff Engine&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"_Trafic en prod MAIS absent du code&lt;br&gt;
→ Shadow API 🔴 — risque critique&lt;/p&gt;

&lt;p&gt;Dans le code MAIS plus de trafic&lt;br&gt;
→ Zombie API 🟡 — surface d'attaque inutile&lt;/p&gt;

&lt;p&gt;Dans le code ET trafic régulier&lt;br&gt;
→ Actif 🟢 — tout va bien _"&lt;/p&gt;

&lt;h2&gt;
  
  
  Ce que ça donne en pratique
&lt;/h2&gt;

&lt;p&gt;Sur un repo Express.js réel par exemple :&lt;/p&gt;

&lt;p&gt;32 fichiers scannés&lt;br&gt;
20 endpoints trouvés&lt;br&gt;
1 endpoint non documenté détecté&lt;br&gt;
Score : 95/100&lt;/p&gt;

&lt;p&gt;Sur une fintech en production :&lt;/p&gt;

&lt;p&gt;53 endpoints en production&lt;br&gt;
3 shadow APIs 🔴 score 25/100&lt;br&gt;
44 zombie APIs 🟡 score 60/100&lt;br&gt;
Posture globale : 59/100&lt;/p&gt;

&lt;h2&gt;
  
  
  Tester gratuitement — sans compte
&lt;/h2&gt;

&lt;p&gt;Scannez votre repo public en 30 secondes :&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;ap-iradar.vercel.app/scan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pour détecter les shadow APIs réelles &lt;br&gt;
(comparaison avec vos logs de prod) — &lt;br&gt;
essai gratuit 14 jours sur &lt;br&gt;
&lt;strong&gt;ap-iradar.vercel.app&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Le 11 septembre 2026, le CRA entre en vigueur.&lt;/p&gt;

&lt;p&gt;La bonne nouvelle : l'inventaire se génère &lt;br&gt;
en 10 minutes depuis votre code et &lt;br&gt;
vos logs existants.&lt;/p&gt;

&lt;p&gt;La mauvaise nouvelle : chaque jour sans &lt;br&gt;
inventaire, de nouveaux endpoints apparaissent en production. &lt;br&gt;
Et certains d'entre eux, vous ne les connaissez pas.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;APIRadar — API inventory for scale-ups&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ap-iradar.vercel.app&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source : Cloudflare 2024 API Security &lt;br&gt;
and Management Report&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>api</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
