<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Daniel Alfocea</title><link>https://danielalfocea.com/en/</link><description>Recent content on Daniel Alfocea</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://danielalfocea.com/en/index.xml" rel="self" type="application/rss+xml"/><item><title>MCP Enterprise Security: A Practical Architecture and Lessons to Avoid Being Pwned</title><link>https://danielalfocea.com/en/talks/rootedcon-2026-mcp-enterprise/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2026-mcp-enterprise/</guid><description/></item><item><title>When MCP goes Wrong - Que MCP no rompa tu seguridad</title><link>https://danielalfocea.com/en/talks/rootedcon-2026-mcp-wrong/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2026-mcp-wrong/</guid><description/></item><item><title>LAPIS: Lightweight API Specification for Intelligent Systems</title><link>https://danielalfocea.com/en/papers/lapis/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/papers/lapis/</guid><description>&lt;p>OpenAPI was designed for code generators and documentation tools. When an LLM processes it, it spends tokens on information the model doesn&amp;rsquo;t need.&lt;/p>
&lt;p>LAPIS is an API specification format designed specifically for how language models consume documentation. Tested on GitHub, Twilio and DigitalOcean APIs, the average reduction is 85.5% fewer tokens compared to OpenAPI YAML and 88.6% compared to JSON.&lt;/p>
&lt;p>Beyond compactness, LAPIS includes centralized error handling, webhook triggers, rate limiting descriptions and operation flows, things OpenAPI scatters or doesn&amp;rsquo;t address directly.&lt;/p></description></item><item><title>Censorship, privacy and the fine art of disappearing without trace</title><link>https://danielalfocea.com/en/talks/rootedcon-2025-censorship/</link><pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2025-censorship/</guid><description/></item><item><title>Doing fun things with databases</title><link>https://danielalfocea.com/en/talks/navaja-negra-2024-databases/</link><pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/navaja-negra-2024-databases/</guid><description>&lt;p>Databases as sophisticated attack infrastructure.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Let&amp;rsquo;s forget basic SQL injection, data deletion or information theft. We already know that.&lt;/p>
&lt;p>This talk is about how attackers can use databases as part of sophisticated attack infrastructure:&lt;/p>
&lt;ul>
&lt;li>Databases as C2 (Command &amp;amp; Control)&lt;/li>
&lt;li>Advanced persistence via DB&lt;/li>
&lt;li>Lateral movement using DB infrastructure&lt;/li>
&lt;li>Covert exfiltration&lt;/li>
&lt;li>Parallels with malware evolution&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>Databases are at the heart of every modern system. But they&amp;rsquo;re rarely thought of as advanced attack vectors.&lt;/p></description></item><item><title>Dockerscan</title><link>https://danielalfocea.com/en/projects/dockerscan/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/dockerscan/</guid><description>&lt;p>&lt;strong>Dockerscan&lt;/strong> is probably the most comprehensive Docker security scanner available.&lt;/p>
&lt;p>When the container boom started, I realized there was a big problem: people didn&amp;rsquo;t know how to secure their containers. And the tools available were&amp;hellip; well, let&amp;rsquo;s say they left much to be desired.&lt;/p>
&lt;p>So I rolled up my sleeves and created Dockerscan.&lt;/p>
&lt;h2 id="what-does-it-do">What does it do?&lt;/h2>
&lt;ul>
&lt;li>Scans Docker images for vulnerabilities&lt;/li>
&lt;li>Analyzes container configuration&lt;/li>
&lt;li>Detects hardcoded secrets&lt;/li>
&lt;li>Identifies security issues in real-time&lt;/li>
&lt;li>And much more&lt;/li>
&lt;/ul>
&lt;h2 id="impact">Impact&lt;/h2>
&lt;p>With &lt;strong>+1,400 stars on GitHub&lt;/strong>, Dockerscan has become a reference tool for securing containers.&lt;/p></description></item><item><title>Slow JSON Stream: A Low-Bandwidth Denial-of-Service Attack Against HTTP APIs with JSON Request Bodies</title><link>https://danielalfocea.com/en/papers/slow-json-stream/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/papers/slow-json-stream/</guid><description>&lt;p>Slow JSON Stream is a low-bandwidth denial-of-service attack against HTTP APIs that accept &lt;code>application/json&lt;/code> bodies.&lt;/p>
&lt;h2 id="how-it-works">How it works&lt;/h2>
&lt;p>The attacker opens an HTTP/1.1 connection with chunked Transfer-Encoding and drips a valid JSON prefix (e.g. &lt;code>{&amp;quot;items&amp;quot;:[{...,}&lt;/code>) at one byte per second, never sending the closing token. Slowloris does the same with HTTP headers and servers already cut it with &lt;code>client_header_timeout&lt;/code>. This variant reaches the framework body reader and JSON parser, where most frameworks have no body timeout set by default.&lt;/p></description></item><item><title>AWS, with its lambdas and its little things</title><link>https://danielalfocea.com/en/talks/rootedcon-2024-aws-lambda/</link><pubDate>Fri, 08 Mar 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2024-aws-lambda/</guid><description/></item><item><title>Aiotasks</title><link>https://danielalfocea.com/en/projects/aiotasks/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/aiotasks/</guid><description>&lt;p>&lt;strong>Aiotasks&lt;/strong> is a distributed task manager for Python Asyncio. Think Celery, but for asynchronous code.&lt;/p>
&lt;p>I love Asyncio. I think it&amp;rsquo;s one of the best things that ever happened to Python. But when I tried to use Celery with asynchronous code, it was hell.&lt;/p>
&lt;p>So I created Aiotasks.&lt;/p>
&lt;h2 id="why-aiotasks">Why Aiotasks?&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Truly asynchronous&lt;/strong>: Designed from scratch for Asyncio&lt;/li>
&lt;li>&lt;strong>Simple&lt;/strong>: You don&amp;rsquo;t need a PhD in Python to use it&lt;/li>
&lt;li>&lt;strong>Distributed&lt;/strong>: Scales horizontally without issues&lt;/li>
&lt;li>&lt;strong>Lightweight&lt;/strong>: Doesn&amp;rsquo;t have the thousand dependencies Celery has&lt;/li>
&lt;/ul>
&lt;h2 id="use-cases">Use cases&lt;/h2>
&lt;p>I&amp;rsquo;ve used it in production for:&lt;/p></description></item><item><title>Protect your Python... because if it's as bad as it sounds, better nobody sees it</title><link>https://danielalfocea.com/en/talks/navaja-negra-2024-python/</link><pubDate>Fri, 06 Oct 2023 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/navaja-negra-2024-python/</guid><description>&lt;p>Entertaining, instructive, and a genuine brainfuck about Python code protection.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Scenarios where you need to protect your Python code: intellectual property, distributing applications, improving performance, securing sensitive algorithms.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Basic obfuscation methods&lt;/li>
&lt;li>Code packaging and encryption&lt;/li>
&lt;li>&lt;strong>Advanced techniques: creating custom Python interpreters&lt;/strong>&lt;/li>
&lt;li>Effectiveness analysis of each method&lt;/li>
&lt;li>Real use cases and limitations&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>Python is open source by design. But sometimes you need to protect proprietary algorithms, commercial products, or sensitive internal tools.&lt;/p></description></item><item><title>Protecting Python Source Code</title><link>https://danielalfocea.com/en/talks/navaja-negra-2024/</link><pubDate>Fri, 06 Oct 2023 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/navaja-negra-2024/</guid><description>&lt;p>Techniques to protect Python source code, from the obvious to the most advanced.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>When you publish Python code, you normally publish it as plain text. But sometimes you need to protect your source code.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Basic techniques: obfuscation, bytecode&lt;/li>
&lt;li>Intermediate techniques: packaging, encryption&lt;/li>
&lt;li>Advanced techniques: compiling your own modified Python interpreter&lt;/li>
&lt;li>Pros and cons of each approach&lt;/li>
&lt;li>Real use cases&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>There are situations where protecting source code is necessary: commercial products, proprietary algorithms, internal tools.&lt;/p></description></item><item><title>Plecost</title><link>https://danielalfocea.com/en/projects/plecost/</link><pubDate>Mon, 17 Mar 2014 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/plecost/</guid><description>&lt;p>&lt;strong>Plecost&lt;/strong> finds vulnerabilities in WordPress installations: core, plugins and themes. Every finding is matched against a local CVE database that updates daily.&lt;/p>
&lt;p>It lives in its own GitHub organization, but it&amp;rsquo;s mine. I started it in 2014 and rewrote it from scratch for version 4.&lt;/p>
&lt;h2 id="why-it-exists">Why it exists&lt;/h2>
&lt;p>Anyone auditing WordPress in production hits the same wall: API rate caps, vulnerability data that depends on an external service, no way to use it as a library, and slow scans because nothing runs concurrently.&lt;/p></description></item><item><title>NoSQL Injection Wordlists</title><link>https://danielalfocea.com/en/projects/nosqlinjection/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/nosqlinjection/</guid><description>&lt;p>&lt;strong>NoSQL Injection Wordlists&lt;/strong> is the most complete collection of payloads for testing NoSQL Injections you&amp;rsquo;ll find.&lt;/p>
&lt;p>When I started pentesting applications using MongoDB, Cassandra, and other NoSQL databases, I realized there were no good wordlists.&lt;/p>
&lt;p>The ones available were poor. Very poor.&lt;/p>
&lt;h2 id="whats-included">What&amp;rsquo;s included?&lt;/h2>
&lt;p>Hundreds of payloads for:&lt;/p>
&lt;ul>
&lt;li>MongoDB&lt;/li>
&lt;li>Cassandra&lt;/li>
&lt;li>CouchDB&lt;/li>
&lt;li>Redis&lt;/li>
&lt;li>And many more&lt;/li>
&lt;/ul>
&lt;h2 id="real-impact">Real impact&lt;/h2>
&lt;p>&lt;strong>+370 stars&lt;/strong> and used by pentesters worldwide.&lt;/p>
&lt;p>I&amp;rsquo;ve seen bug bounty reports that used these wordlists to find critical vulnerabilities.&lt;/p></description></item><item><title>Asyncio in production: what nobody tells you</title><link>https://danielalfocea.com/en/talks/python-asyncio-produccion/</link><pubDate>Sat, 08 Oct 2022 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/python-asyncio-produccion/</guid><description>&lt;p>Everything I&amp;rsquo;ve learned using Python Asyncio in production. The good, the bad, and the ugly.&lt;/p>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Asyncio is great. Until it isn&amp;rsquo;t.&lt;/p>
&lt;p>In this talk I cover:&lt;/p>
&lt;ul>
&lt;li>Common mistakes when using Asyncio&lt;/li>
&lt;li>Performance issues nobody tells you about&lt;/li>
&lt;li>Debugging asynchronous code&lt;/li>
&lt;li>Patterns that work in production&lt;/li>
&lt;/ul>
&lt;h2 id="based-on-real-experience">Based on real experience&lt;/h2>
&lt;p>It&amp;rsquo;s not theory. It&amp;rsquo;s what I&amp;rsquo;ve learned building systems that process millions of events per day.&lt;/p>
&lt;h2 id="impact">Impact&lt;/h2>
&lt;p>After the talk, many people wrote to me saying I&amp;rsquo;d saved them months of headaches.&lt;/p></description></item><item><title>FestIn</title><link>https://danielalfocea.com/en/projects/festin/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/festin/</guid><description>&lt;p>&lt;strong>FestIn&lt;/strong> is an open S3 bucket scanner. It helps you find exposed data before the bad guys do.&lt;/p>
&lt;p>Amazon S3 is great. But people misconfigure it. Badly.&lt;/p>
&lt;p>I&amp;rsquo;ve seen everything: complete databases, confidential documents, unencrypted backups&amp;hellip; all out in the open.&lt;/p>
&lt;h2 id="what-does-festin-do">What does FestIn do?&lt;/h2>
&lt;ul>
&lt;li>Scans S3 buckets for insecure configurations&lt;/li>
&lt;li>Detects publicly exposed data&lt;/li>
&lt;li>Identifies incorrect permissions&lt;/li>
&lt;li>Generates detailed reports&lt;/li>
&lt;/ul>
&lt;h2 id="real-story">Real story&lt;/h2>
&lt;p>Once, using FestIn, I found a bucket with medical information of millions of people. I contacted the company. They had a hard time believing it.&lt;/p></description></item><item><title>Spreading Application Security Ownership Across the Entire Organization</title><link>https://danielalfocea.com/en/talks/rsa-conference-2022/</link><pubDate>Tue, 07 Jun 2022 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rsa-conference-2022/</guid><description>&lt;p>RSA Conference 2022 - One of the world&amp;rsquo;s most important cybersecurity conferences.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Application security cannot be the sole responsibility of the security team. It needs to be distributed throughout the entire organization.&lt;/p>
&lt;p>This session covers:&lt;/p>
&lt;ul>
&lt;li>Strategies to distribute security ownership&lt;/li>
&lt;li>How to empower development teams&lt;/li>
&lt;li>Creating security culture across the organization&lt;/li>
&lt;li>Success metrics and measurement&lt;/li>
&lt;li>Real implementation cases&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>The most successful organizations in security are those where everyone feels responsible, not just the security team.&lt;/p></description></item><item><title>Aiohttp-Swagger</title><link>https://danielalfocea.com/en/projects/aiohttp-swagger/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/aiohttp-swagger/</guid><description>&lt;p>&lt;strong>Aiohttp-Swagger&lt;/strong> generates automatic API documentation for aiohttp servers.&lt;/p>
&lt;p>Documenting APIs is a pain. I know it. You know it. We all know it.&lt;/p>
&lt;p>But it&amp;rsquo;s necessary. And it has to be up to date. Otherwise, it&amp;rsquo;s worse than not having it.&lt;/p>
&lt;h2 id="why-did-i-create-it">Why did I create it?&lt;/h2>
&lt;p>I love aiohttp. It&amp;rsquo;s fast, simple, and powerful. But it didn&amp;rsquo;t have a decent way to generate Swagger documentation.&lt;/p>
&lt;p>So I created it.&lt;/p>
&lt;h2 id="features">Features&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Automatic&lt;/strong>: Generates documentation from your code&lt;/li>
&lt;li>&lt;strong>Swagger UI&lt;/strong>: Visual interface to test the API&lt;/li>
&lt;li>&lt;strong>OpenAPI&lt;/strong>: De facto standard for REST APIs&lt;/li>
&lt;li>&lt;strong>Easy&lt;/strong>: Two lines of code and you&amp;rsquo;re done&lt;/li>
&lt;/ul>
&lt;h2 id="adoption">Adoption&lt;/h2>
&lt;p>&lt;strong>+180 stars&lt;/strong> and used in APIs processing millions of requests per day.&lt;/p></description></item><item><title>From the Heaven to Hell in the CI/CD</title><link>https://danielalfocea.com/en/talks/rootedcon-2020-cicd-security/</link><pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2020-cicd-security/</guid><description>&lt;p>Critical CI/CD vulnerabilities nobody tells you about.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>CI/CD pipelines are the new target. Compromise the CI/CD and you compromise the entire company.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Top 10 CI/CD vulnerabilities&lt;/li>
&lt;li>Attacks on Jenkins, GitLab CI, GitHub Actions, CircleCI&lt;/li>
&lt;li>Supply chain attacks through CI/CD&lt;/li>
&lt;li>Secrets and credentials compromise&lt;/li>
&lt;li>Defense in depth for pipelines&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>CI/CD is the gateway to production. A compromised pipeline means malicious code in production without anyone noticing.&lt;/p></description></item><item><title>Enteletaor</title><link>https://danielalfocea.com/en/projects/enteletaor/</link><pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/enteletaor/</guid><description>&lt;p>&lt;strong>Enteletaor&lt;/strong> is a specialized pentesting tool for Message Queues and Brokers.&lt;/p>
&lt;p>RabbitMQ, Redis, Apache Kafka&amp;hellip; these are critical components in modern architectures. And nobody tests them properly.&lt;/p>
&lt;h2 id="the-problem">The problem&lt;/h2>
&lt;p>Most pentesters focus on web applications. But message brokers are equally critical. And equally misconfigured.&lt;/p>
&lt;h2 id="what-does-enteletaor-do">What does Enteletaor do?&lt;/h2>
&lt;ul>
&lt;li>Detects insecure configurations in brokers&lt;/li>
&lt;li>Injects malicious messages&lt;/li>
&lt;li>Identifies authentication issues&lt;/li>
&lt;li>Tests incorrect permissions&lt;/li>
&lt;/ul>
&lt;h2 id="real-cases">Real cases&lt;/h2>
&lt;p>I&amp;rsquo;ve found critical vulnerabilities in systems processing financial transactions.&lt;/p></description></item><item><title>Crawlino: The New Level of Crawling Systems</title><link>https://danielalfocea.com/en/talks/rootedcon-2018-crawlino/</link><pubDate>Fri, 02 Mar 2018 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2018-crawlino/</guid><description>&lt;p>Presentation of &lt;strong>Crawlino&lt;/strong>, a next-generation distributed crawling system.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Crawlino is a distributed crawling system designed for reconnaissance and analysis of web applications at scale.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Limitations of traditional crawlers&lt;/li>
&lt;li>Distributed and scalable architecture&lt;/li>
&lt;li>Intelligent crawling with learning&lt;/li>
&lt;li>Use cases in pentesting and reconnaissance&lt;/li>
&lt;li>Performance: millions of URLs per day&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>Traditional crawlers don&amp;rsquo;t scale. When you need to analyze thousands of domains or millions of URLs, you need a different approach.&lt;/p></description></item><item><title>Dockerfile Security</title><link>https://danielalfocea.com/en/projects/dockerfile-security/</link><pubDate>Sun, 07 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/dockerfile-security/</guid><description>&lt;p>&lt;strong>Dockerfile Security&lt;/strong> is a static analyzer that finds security issues in your Dockerfiles before building images.&lt;/p>
&lt;p>Prevention is better than cure. Especially in security.&lt;/p>
&lt;h2 id="why-is-it-important">Why is it important?&lt;/h2>
&lt;p>Dockerfiles are code. And like all code, they can have vulnerabilities:&lt;/p>
&lt;ul>
&lt;li>Hardcoded secrets&lt;/li>
&lt;li>Users with excessive privileges&lt;/li>
&lt;li>Unnecessary exposed ports&lt;/li>
&lt;li>Outdated software&lt;/li>
&lt;/ul>
&lt;h2 id="features">Features&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Static analysis&lt;/strong>: No need to build the image&lt;/li>
&lt;li>&lt;strong>Fast&lt;/strong>: Seconds, not minutes&lt;/li>
&lt;li>&lt;strong>Integrable&lt;/strong>: CI/CD friendly&lt;/li>
&lt;li>&lt;strong>Detailed&lt;/strong>: Explains what&amp;rsquo;s wrong and how to fix it&lt;/li>
&lt;/ul>
&lt;h2 id="impact">Impact&lt;/h2>
&lt;p>&lt;strong>+95 stars&lt;/strong> and used in CI/CD pipelines of companies that take security seriously.&lt;/p></description></item><item><title>Docker Might Not Be Your Friend - Trojanizing Docker Images</title><link>https://danielalfocea.com/en/talks/rooted-docker-security/</link><pubDate>Wed, 01 Mar 2017 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rooted-docker-security/</guid><description>&lt;p>Docker can be your worst enemy if you don&amp;rsquo;t know what you&amp;rsquo;re doing.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>With Roberto Muñoz we presented advanced techniques to trojanize Docker images and compromise systems through containers.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Docker image trojanization&lt;/li>
&lt;li>Backdoors in containers&lt;/li>
&lt;li>Attacks on Docker registries (Docker Hub, private)&lt;/li>
&lt;li>Supply chain attacks through images&lt;/li>
&lt;li>Persistence and lateral movement via Docker&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>Everyone uses Docker. Everyone trusts third-party images. Nobody verifies what they actually contain.&lt;/p></description></item><item><title>Vulnerable Node</title><link>https://danielalfocea.com/en/projects/vulnerable-node/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/vulnerable-node/</guid><description>&lt;p>Vulnerable Node is a small web shop written in NodeJS with real vulnerabilities in the code. Not simulated: real.&lt;/p>
&lt;h2 id="why-it-exists">Why it exists&lt;/h2>
&lt;p>When you build a code analyzer, you need something to test it against. The vulnerable apps that existed, such as OWASP NodeGoat, are fine for learning but not for measuring a tool: their flaws are simulated, and a serious analyzer does not find them because they are not really there.&lt;/p></description></item><item><title>I Meetup OWASP Madrid</title><link>https://danielalfocea.com/en/talks/owasp-madrid-2016/</link><pubDate>Wed, 01 Jun 2016 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/owasp-madrid-2016/</guid><description>&lt;p>First meetup of the OWASP Madrid chapter.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Technical talk about web application security at the first official meetup of the OWASP Madrid chapter.&lt;/p>
&lt;p>Examples and code from the talk are available on GitHub: &lt;a href="https://github.com/cr0hn/i-owasp-madrid">cr0hn/i-owasp-madrid&lt;/a>&lt;/p>
&lt;h2 id="owasp-madrid">OWASP Madrid&lt;/h2>
&lt;p>OWASP (Open Web Application Security Project) is the world&amp;rsquo;s leading organization in web application security.&lt;/p>
&lt;p>The Madrid chapter is one of the most active in Spain, with regular meetups on application security, APIs and secure development.&lt;/p></description></item><item><title>Aiohttp-Cache</title><link>https://danielalfocea.com/en/projects/aiohttp-cache/</link><pubDate>Tue, 09 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/aiohttp-cache/</guid><description>&lt;p>&lt;strong>Aiohttp-Cache&lt;/strong> is a cache system for aiohttp servers that makes your APIs fly.&lt;/p>
&lt;p>Speed matters. A lot.&lt;/p>
&lt;h2 id="the-problem">The problem&lt;/h2>
&lt;p>APIs often do the same thing over and over. Database queries, external service calls&amp;hellip; all of that is slow.&lt;/p>
&lt;p>The solution? Cache. But doing it right is complicated.&lt;/p>
&lt;h2 id="what-does-aiohttp-cache-do">What does Aiohttp-Cache do?&lt;/h2>
&lt;ul>
&lt;li>Automatic HTTP response caching&lt;/li>
&lt;li>Support for multiple backends (Redis, Memcached, memory)&lt;/li>
&lt;li>Smart invalidation&lt;/li>
&lt;li>Configurable TTLs&lt;/li>
&lt;li>Zero config by default&lt;/li>
&lt;/ul>
&lt;h2 id="use-cases">Use cases&lt;/h2>
&lt;p>I&amp;rsquo;ve used it in APIs that went from 100ms latency to 5ms.&lt;/p></description></item><item><title>Broker &amp; MQ Injection</title><link>https://danielalfocea.com/en/talks/rootedcon-2016-broker-injection/</link><pubDate>Tue, 01 Mar 2016 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/rootedcon-2016-broker-injection/</guid><description>&lt;p>First public presentation of the &lt;strong>Broker Injection&lt;/strong> concept.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>I presented for the first time the concept of Broker Injection and released &lt;strong>Enteletaor&lt;/strong>, a security tool to inject, extract and modify information from Brokers and Message Queues.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Vulnerabilities in messaging systems (Redis, RabbitMQ, ZeroMQ)&lt;/li>
&lt;li>Injection techniques in brokers&lt;/li>
&lt;li>Sensitive data exfiltration&lt;/li>
&lt;li>Practical demonstration with Enteletaor&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>Brokers and messaging systems are at the heart of modern distributed systems. But nobody was talking about their security.&lt;/p></description></item><item><title>OpenVAS to Report</title><link>https://danielalfocea.com/en/projects/openvas-to-report/</link><pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/openvas-to-report/</guid><description>&lt;p>&lt;strong>OpenVAS to Report&lt;/strong> is a set of tools to convert OpenVAS XML reports into professional executive reports.&lt;/p>
&lt;p>OpenVAS is great for finding vulnerabilities. But its reports are awful.&lt;/p>
&lt;h2 id="the-real-problem">The real problem&lt;/h2>
&lt;p>When you do a pentest, you need two types of reports:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Technical&lt;/strong>: For system administrators&lt;/li>
&lt;li>&lt;strong>Executive&lt;/strong>: For bosses who make decisions&lt;/li>
&lt;/ul>
&lt;p>OpenVAS only gives you XML. And it&amp;rsquo;s horrible to read.&lt;/p>
&lt;h2 id="what-does-this-tool-do">What does this tool do?&lt;/h2>
&lt;p>Converts OpenVAS XML into:&lt;/p></description></item><item><title>Python, Hacking and Sec-tools from the Trenches</title><link>https://danielalfocea.com/en/talks/cybercamp-2015-python-hacking/</link><pubDate>Tue, 01 Dec 2015 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/cybercamp-2015-python-hacking/</guid><description>&lt;p>Hands-on Python workshop for hacking and security.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Not a talk. A hands-on workshop on how to build security tools with Python.&lt;/p>
&lt;p>This workshop covers:&lt;/p>
&lt;ul>
&lt;li>Network hacking with Scapy&lt;/li>
&lt;li>Web hacking with Python&lt;/li>
&lt;li>Security tools development&lt;/li>
&lt;li>From script to professional tool&lt;/li>
&lt;li>Best practices and patterns&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>Python is the language of choice in security. But there&amp;rsquo;s a big difference between a 50-line script and a professional tool.&lt;/p></description></item><item><title>ja-shortener</title><link>https://danielalfocea.com/en/projects/ja-shortener/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/ja-shortener/</guid><description>&lt;p>I built ja-shortener because I refused to depend on Bitly for something as trivial as shortening a URL.&lt;/p>
&lt;p>It&amp;rsquo;s a self-hosted shortener. No third parties, no tracking, no API quotas showing up at the end of the month. It works and it doesn&amp;rsquo;t get in the way.&lt;/p>
&lt;p>+43 stars on GitHub.&lt;/p></description></item><item><title>Your DevOp Gives Me Work: I'm a Security Auditor</title><link>https://danielalfocea.com/en/talks/codemotion-2015-devsecops/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/talks/codemotion-2015-devsecops/</guid><description>&lt;p>The love-hate relationship between DevOps and Security.&lt;/p>
&lt;h2 id="what-its-about">What it&amp;rsquo;s about&lt;/h2>
&lt;p>Provocative title for a necessary talk: how the DevOps revolution is introducing new security problems.&lt;/p>
&lt;p>This talk covers:&lt;/p>
&lt;ul>
&lt;li>Common security mistakes in DevOps culture&lt;/li>
&lt;li>Insecure containers&lt;/li>
&lt;li>Secrets in environment variables&lt;/li>
&lt;li>Pipelines without security controls&lt;/li>
&lt;li>How to do DevSecOps right&lt;/li>
&lt;/ul>
&lt;h2 id="why-its-relevant">Why it&amp;rsquo;s relevant&lt;/h2>
&lt;p>In 2015, DevOps was booming. Everyone wanted to deploy fast. Nobody thought about security.&lt;/p>
&lt;p>This talk was a wake-up call: speed without security is a disaster waiting to happen.&lt;/p></description></item><item><title>RSM - Redis Security Map</title><link>https://danielalfocea.com/en/projects/rsm/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/rsm/</guid><description>&lt;p>RSM (Redis Security Map) is a security tool for Redis.&lt;/p>
&lt;p>The common problem: Redis deployed with default configuration, open port, no authentication, waiting for someone to find it with a basic scan. RSM detects those configurations and blocks access attempts before they get anywhere.&lt;/p>
&lt;p>+31 stars on GitHub.&lt;/p></description></item><item><title>EasyLogs</title><link>https://danielalfocea.com/en/projects/easylogs/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/easylogs/</guid><description>&lt;p>EasyLogs is a dashboard for watching logs in real time without setting up anything big.&lt;/p>
&lt;p>I wrote it because every time I wanted to look at the logs of a small service I ended up standing up Kibana, Graylog or something like it, and losing the afternoon configuring it to read four lines. I wanted something that starts with a &lt;code>docker run&lt;/code> and does what you need 90% of the time: see what is happening right now.&lt;/p></description></item><item><title>wordpress-docker-sec</title><link>https://danielalfocea.com/en/projects/wordpress-docker-sec/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/wordpress-docker-sec/</guid><description>&lt;p>WordPress gets configured one way and attacked another. This repository deploys on Docker the tools I use to audit and harden installations: nmap, wpscan, plecost.&lt;/p>
&lt;p>Nothing new, but having it ready and automated saves time every time.&lt;/p>
&lt;p>+13 stars on GitHub.&lt;/p></description></item><item><title>LAPIS</title><link>https://danielalfocea.com/en/projects/lapis/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/lapis/</guid><description>&lt;p>LAPIS (Lightweight API Specification for Intelligent Systems) is an API specification format designed for LLMs, not for code generators.&lt;/p>
&lt;p>OpenAPI works fine for documentation tools. When an LLM processes it, it spends tokens on information the model doesn&amp;rsquo;t need. LAPIS cuts that overhead: 85.5% fewer tokens than OpenAPI YAML, 88.6% fewer than JSON, measured on real APIs from GitHub, Twilio and DigitalOcean.&lt;/p>
&lt;p>It also includes centralized error handling, webhook triggers, rate limiting descriptions and operation flows. Converts automatically from OpenAPI 3.x. Published as an open specification under CC BY 4.0.&lt;/p></description></item><item><title>nginx-wordpress-docker-sec</title><link>https://danielalfocea.com/en/projects/nginx-wordpress-docker-sec/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/nginx-wordpress-docker-sec/</guid><description>&lt;p>The &lt;code>wordpress-docker-sec&lt;/code> version focused on Nginx. Same audit tools, but with the hardening applied at the web server level instead of the application.&lt;/p>
&lt;p>Both repos together cover most of the typical attack surface of a WordPress in production.&lt;/p>
&lt;p>+12 stars on GitHub.&lt;/p></description></item><item><title>realtime-redis-backup</title><link>https://danielalfocea.com/en/projects/realtime-redis-backup/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://danielalfocea.com/en/projects/realtime-redis-backup/</guid><description>&lt;p>realtime-redis-backup continuously backs up Redis to S3 using asyncio, without blocking anything.&lt;/p>
&lt;p>I built it because I wanted backups without having to stop Redis or set up replicas for that purpose. Configurable frequency, compression and retention.&lt;/p>
&lt;p>+11 stars on GitHub.&lt;/p></description></item></channel></rss>