<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Writings on Ashim Mahara</title><link>https://www.ashimmahara.com/writing/</link><description>Recent content in Writings on Ashim Mahara</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 29 Jul 2026 02:12:49 -0400</lastBuildDate><atom:link href="https://www.ashimmahara.com/writing/index.xml" rel="self" type="application/rss+xml"/><item><title>APT (Agentic Persistent Threat)</title><link>https://www.ashimmahara.com/writing/huggingface_incident/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.ashimmahara.com/writing/huggingface_incident/</guid><description>&lt;p&gt;An agent autonomously hacked into HuggingFace&amp;rsquo;s infrastructure last week. In my humble opinion, this is perhaps the first major case of cyber misalignment at APT scale in terms of depth-of-access and trade-craft, but what it did not possess was the stealthiness and patience required for ensuring long-term access and goal achievement. The silver lining: it wasn&amp;rsquo;t misaligned, or capable, enough to hide its own footprints, and that margin narrows as cyber capabilities develop further.&lt;/p&gt;</description></item><item><title>Docker Diffing for Terminal MCP Honeypot</title><link>https://www.ashimmahara.com/writing/terminal_mcp_honeypot/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.ashimmahara.com/writing/terminal_mcp_honeypot/</guid><description>&lt;p&gt;Sooo, it was quite interesting to see that there is a &lt;code&gt;docker diff&lt;/code&gt; command in the &lt;a href="https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.Container.diff"&gt;docker-py&lt;/a&gt; sdk. This immediately piqued my curiousity around the possible use-cases of the feature. One thought that immediately came to me was &lt;code&gt;honeypots&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="honeypots"&gt;Honeypots&lt;/h2&gt;
&lt;p&gt;Honeypots - and honeytokens / canary tokens - are quite possibly the greatest ROI tool in the defensive cybersecurity realm. Their main goal is to capture attacker tradecraft and provide signals around trends in global security like data collected at scale by companies like &lt;a href="https://www.greynoise.io/"&gt;GreyNoise&lt;/a&gt;. In comparison, honeytokens/ canary tokens (&lt;a href="https://www.securityengineering.dev/the-beginners-guide-to-honeytokens-aka-canary-tokens/"&gt;article from security engineering.dev&lt;/a&gt;) are used as an early detection mechanism that provide early alerts.&lt;/p&gt;</description></item><item><title>Scraper Release</title><link>https://www.ashimmahara.com/writing/releasing_scraper/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.ashimmahara.com/writing/releasing_scraper/</guid><description>&lt;p&gt;I open-sourced part of a pipeline for traditional phishing detection yesterday. I was on the fence for this one for so long but I saw no point in keeping the repository private.&lt;/p&gt;
&lt;p&gt;The scraper library is meant to be used in conjunction with another internal library / endpoint for model predictions. I have the model weights somewhere in a local gitea instance. I could push it to huggingface if I can locate it. The models are from the DETR family (from facebook research) and I had already converted them to ONNX for edge deployment in browsers (had to make a PR to huggingface for it since they didn&amp;rsquo;t support it at the time).&lt;/p&gt;</description></item><item><title>Docker with Python</title><link>https://www.ashimmahara.com/writing/docker_python/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.ashimmahara.com/writing/docker_python/</guid><description>&lt;p&gt;Soooo, I have decided to write more about some of the things that I am doing right now.&lt;/p&gt;
&lt;p&gt;Today I decided to port my janky &lt;code&gt;subprocess.run(cmd)&lt;/code&gt; approach to managing docker containers to &lt;code&gt;docker-py&lt;/code&gt; sdk.&lt;/p&gt;
&lt;h2 id="client"&gt;Client&lt;/h2&gt;
&lt;p&gt;To interact with the local docker service, we first have to create a client.&lt;/p&gt;
&lt;p&gt;The client can be created as:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import docker

client = docker.from_env()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are other options available to for various configurations like providing the &lt;code&gt;DOCKER_HOST&lt;/code&gt; argument for remote hosts but I&amp;rsquo;ll leave it to you for reading up on it from &lt;a href="https://docker-py.readthedocs.io/en/stable/client.html"&gt;docker client ref&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>