<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Research on RORO's blog</title><link>https://blog.rodolpheg.xyz/fr/tags/research/</link><description>Recent content in Research on RORO's blog</description><generator>Hugo</generator><language>fr</language><managingEditor>contact@rodolpheg.xyz (0xRo)</managingEditor><webMaster>contact@rodolpheg.xyz (0xRo)</webMaster><lastBuildDate>Wed, 08 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rodolpheg.xyz/fr/tags/research/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture de Semgrep : Reference technique complete</title><link>https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><author>contact@rodolpheg.xyz (0xRo)</author><guid>https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>Semgrep&lt;/strong> (Semantic Grep) est un outil d&amp;rsquo;analyse statique multi-langage qui identifie du code par sa &lt;em>structure&lt;/em> &amp;ndash; et non simplement par son texte &amp;ndash; en utilisant un Abstract Syntax Tree unifie et un langage de patterns riche. Ce document couvre l&amp;rsquo;architecture interne complete, du point d&amp;rsquo;entree CLI a la detection de taint sink.&lt;/p>
&lt;/blockquote>
&lt;h2 id="table-des-matieres">Table des matieres&lt;/h2>
&lt;ol start="0">
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#0-introduction">Introduction&lt;/a>
&lt;ul>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#01-quest-ce-que-le-sast">Qu&amp;rsquo;est-ce que le SAST ?&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#02-histoire-de-semgrep">Histoire de Semgrep&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#1-architecture-de-haut-niveau">Architecture de haut niveau&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#2-decomposition-des-composants">Decomposition des composants&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#3-le-pipeline-danalyse-complet">Le pipeline d&amp;rsquo;analyse complet&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#4-decouverte-et-filtrage-des-cibles">Decouverte et filtrage des cibles&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#5-parsing-et-optimisation-des-regles">Parsing et optimisation des regles&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#6-parsing-et-last-universel">Parsing et l&amp;rsquo;AST universel&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#7-le-moteur-de-matching">Le moteur de matching&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#8-le-langage-intermediaire-il-et-le-cfg">Le langage intermediaire (IL) et le CFG&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#9-analyse-de-taint-dataflow">Analyse de taint (Dataflow)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#10-pipeline-de-sortie-et-de-reporting">Pipeline de sortie et de reporting&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#11-architecture-osemgrep--rpc">Architecture OSemgrep / RPC&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.rodolpheg.xyz/fr/posts/semgrep-architecture/#12-structures-de-donnees-cles">Structures de donnees cles&lt;/a>&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="-1-pourquoi-">-1. Pourquoi ?&lt;/h2>
&lt;p>Je travaille en tant qu&amp;rsquo;ingenieur DevSecOps depuis bientot quatre ans. Quand j&amp;rsquo;ai commence, j&amp;rsquo;avais peu d&amp;rsquo;exposition a des outils comme le SAST, le SCA ou le DAST. Mon etat d&amp;rsquo;esprit etait fermement ancre dans la securite offensive. Le test d&amp;rsquo;intrusion etait l&amp;rsquo;objectif, le reve.&lt;/p></description></item><item><title>Comprendre les Code Property Graphs</title><link>https://blog.rodolpheg.xyz/fr/posts/understanding-code-property-graphs/</link><pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate><author>contact@rodolpheg.xyz (0xRo)</author><guid>https://blog.rodolpheg.xyz/fr/posts/understanding-code-property-graphs/</guid><description>&lt;p>Quand j&amp;rsquo;ai commence a developper des outils pour l&amp;rsquo;audit de code source, mon besoin principal etait de suivre les flux de donnees corrompues (tainted) a travers des bases de code complexes lors de revues de code manuelles. Au depart, je me suis tourne vers Tree-Sitter, qui s&amp;rsquo;est avere excellent pour l&amp;rsquo;analyse de fichiers individuels grace a ses capacites de parsing rapide et incrementiel. Cependant, en passant a des bases de code plus volumineuses avec des dependances inter-fichiers complexes et des flux de donnees, l&amp;rsquo;approche AST-only de Tree-Sitter est devenue limitante. Le defi n&amp;rsquo;etait pas simplement de parser des fichiers individuels. Il s&amp;rsquo;agissait de comprendre comment les donnees circulent entre les fonctions, a travers les modules et via differents chemins d&amp;rsquo;execution lors d&amp;rsquo;evaluations de securite manuelles approfondies.&lt;/p></description></item></channel></rss>