<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on Samarthya</title><link>https://samarthya.me/tags/security/</link><description>Recent content in Security on Samarthya</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© Samarthya 2018-2026. All rights reserved.</copyright><lastBuildDate>Wed, 04 Nov 2026 21:00:00 -0500</lastBuildDate><atom:link href="https://samarthya.me/tags/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Learning OSV, part 5: I scanned my own blog, and the real problem wasn't in the report</title><link>https://samarthya.me/posts/osv-scanner-on-my-own-blog/</link><pubDate>Wed, 04 Nov 2026 21:00:00 -0500</pubDate><guid>https://samarthya.me/posts/osv-scanner-on-my-own-blog/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A test project is a controlled experiment; your own repository is the one that talks back. I pointed OSV-Scanner at&#10;the source of this blog expecting a dull report. The report was indeed dull. The interesting part was what it could&#10;not see.&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Anime-style illustration: an excited young experimenter in a lab coat, with goggles pushed up on the forehead, holds a glowing green flask high at a lab bench and says &amp;ldquo;Let&amp;rsquo;s try it!&amp;rdquo;"&#10; src="https://samarthya.me/posts/osv-scanner-on-my-own-blog/overview.svg"&#10; &gt;&lt;figcaption&gt;The mood of the evening. It lasted until the first command.&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;In parts &lt;a href="https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/" &gt;2&lt;/a&gt; and&#10;&lt;a href="https://samarthya.me/posts/learning-osv-3-guided-remediation/" &gt;3&lt;/a&gt; I used a project built to be vulnerable. This time the&#10;target is &lt;a href="https://github.com/samarthya/blog.samarthya.me" target="_blank" rel="noreferrer"&gt;the repository behind this site&lt;/a&gt;: Hugo, the Blowfish theme&#10;as a git submodule, some Python helper scripts and two GitHub Actions workflows. All runs used OSV-Scanner v2.7.0.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/osv-scanner-on-my-own-blog/feature.png"/></item><item><title>Learning OSV, part 4: where it fits, and my recommendation</title><link>https://samarthya.me/posts/learning-osv-4-recommendation/</link><pubDate>Sat, 31 Oct 2026 07:45:00 -0400</pubDate><guid>https://samarthya.me/posts/learning-osv-4-recommendation/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Three parts of trying things. This one is the verdict: what I would actually switch on, in what order, and what I&#10;would still look elsewhere for.&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Diagram: a loop of pull request scan, scheduled rescan, in-place fix as a bot pull request, and human review, fed by OSV.dev in the centre; beside it a five-point recommendation checklist"&#10; src="https://samarthya.me/posts/learning-osv-4-recommendation/overview.svg"&#10; &gt;&lt;figcaption&gt;The loop I would run, and the verdict as a checklist.&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;Quick recap of the proof of concept:&#10;&lt;a href="https://samarthya.me/posts/learning-osv-1-what-osv-dev-is/" &gt;part 1&lt;/a&gt; read the database,&#10;&lt;a href="https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/" &gt;part 2&lt;/a&gt; scanned a project (5 dependencies,&#10;68 packages, 49 vulnerabilities), and &lt;a href="https://samarthya.me/posts/learning-osv-3-guided-remediation/" &gt;part 3&lt;/a&gt; fixed&#10;it (7 of 50 safely, 50 of 50 with a major upgrade).&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/learning-osv-4-recommendation/feature.png"/></item><item><title>Learning OSV, part 3: guided remediation with osv-scanner fix</title><link>https://samarthya.me/posts/learning-osv-3-guided-remediation/</link><pubDate>Sat, 31 Oct 2026 07:30:00 -0400</pubDate><guid>https://samarthya.me/posts/learning-osv-3-guided-remediation/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Finding 49 vulnerabilities is easy. Deciding which three lines to change so that most of them go away is the hard&#10;part. That is what &lt;code&gt;osv-scanner fix&lt;/code&gt; tries to do.&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Diagram comparing two fix strategies. in-place edits only the lockfile, upgrades lodash and axios within range, and fixes 7 of 50. relax edits package.json and relocks, upgrading jsonwebtoken to a new major, axios across 0.x and minimist by a patch, and fixes 50 of 50"&#10; src="https://samarthya.me/posts/learning-osv-3-guided-remediation/overview.svg"&#10; &gt;&lt;figcaption&gt;in-place is the safe small win; relax fixes everything but chose a major upgrade.&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;In &lt;a href="https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/" &gt;part 2&lt;/a&gt; the scanner found 49 known&#10;vulnerabilities in a small Node project. This part tries the &lt;strong&gt;guided remediation&lt;/strong&gt; command on it.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/learning-osv-3-guided-remediation/feature.png"/></item><item><title>Learning OSV, part 2: scanning a project with OSV-Scanner</title><link>https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/</link><pubDate>Sat, 31 Oct 2026 07:15:00 -0400</pubDate><guid>https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; I picked four dependencies. The scanner found problems in eleven packages. That gap is the whole reason to scan&#10;lockfiles and not just &lt;code&gt;package.json&lt;/code&gt;.&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Diagram: my-app has five direct dependencies, all affected; Express brings six more affected packages pinned exactly; 57 other packages have no known issues. Totals: 5 chosen, 68 in the lockfile, 11 affected, 49 known vulnerabilities"&#10; src="https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/overview.svg"&#10; &gt;&lt;figcaption&gt;Five dependencies I chose became 68 packages; 11 are affected, six of them only because Express pins them.&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;&lt;a href="https://samarthya.me/posts/learning-osv-1-what-osv-dev-is/" &gt;Part 1&lt;/a&gt; was about the OSV database. This part runs the&#10;scanner against a small project and reads the result.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/learning-osv-2-scanning-with-osv-scanner/feature.png"/></item><item><title>Learning OSV, part 1: what osv.dev is and how to read a record</title><link>https://samarthya.me/posts/learning-osv-1-what-osv-dev-is/</link><pubDate>Sat, 31 Oct 2026 07:00:00 -0400</pubDate><guid>https://samarthya.me/posts/learning-osv-1-what-osv-dev-is/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A CVE tells you &lt;em&gt;that&lt;/em&gt; something is broken. It rarely tells you, in a way a machine can use, &lt;em&gt;which package&lt;/em&gt;&#10;and &lt;em&gt;which versions&lt;/em&gt;. OSV exists to answer exactly that.&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Diagram: advisories from GitHub, PyPA, Go, RustSec and malware reports flow into OSV.dev, which publishes a record for GHSA-xvch-5gv4-984h showing npm/minimist affected from 1.0.0 (introduced) to 1.2.6 (fixed), with version 1.2.5 inside the vulnerable range"&#10; src="https://samarthya.me/posts/learning-osv-1-what-osv-dev-is/overview.svg"&#10; &gt;&lt;figcaption&gt;One record, read as data: the affected range runs from introduced 1.0.0 to fixed 1.2.6, so 1.2.5 is vulnerable and the upgrade target is 1.2.6.&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;I am learning which free tools can carry real weight in a secure development life cycle. This short series is my&#10;proof of concept with &lt;strong&gt;OSV&lt;/strong&gt;: the database, the scanner and its fix command. I run everything for real and keep&#10;the output. This part is about the concept and the website.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/learning-osv-1-what-osv-dev-is/feature.png"/></item><item><title>SSDLC when exploits are cheap: a working concept</title><link>https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/</link><pubDate>Tue, 27 Oct 2026 20:32:15 -0400</pubDate><guid>https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A fire inspection once a year works when fires are rare. When sparks are falling every day, you need smoke&#10;detectors in every room, a sprinkler that fixes the small ones by itself, and a person who decides what to do&#10;about the big ones. That is what a secure development life cycle has to become.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;These are my notes for a question I keep coming back to: &lt;strong&gt;how do you keep shipping software when new&#10;vulnerabilities arrive faster than you can fix them, and attackers can use an LLM to turn a CVE description into&#10;a working exploit?&lt;/strong&gt; There is no single standard answer. What follows is the concept I would build, with the&#10;evidence behind each choice and the parts where I am still unsure.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/feature.png"/></item><item><title>From finding to fix: Black Duck pull requests on GitHub Enterprise Server</title><link>https://samarthya.me/posts/ghes-blackduck-fix-prs/</link><pubDate>Tue, 27 Oct 2026 20:05:18 -0400</pubDate><guid>https://samarthya.me/posts/ghes-blackduck-fix-prs/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A vulnerability report that nobody reads is a smoke alarm with no battery. The goal is not more findings. The&#10;goal is a pull request that a developer can review and merge before lunch.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Why this post&#10; &lt;div id="why-this-post" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-post" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;SentinelOne&amp;rsquo;s&#10;&lt;a href="https://www.sentinelone.com/cybersecurity-101/cybersecurity/github-vulnerability-management/" target="_blank" rel="noreferrer"&gt;overview of GitHub vulnerability management&lt;/a&gt;&#10;describes the job as &amp;ldquo;discovering, triaging, and remediating security vulnerabilities in GitHub repositories,&#10;dependencies, and workflows&amp;rdquo;. It lists the usual native tools: Dependabot, code scanning, secret scanning and&#10;security advisories. It also admits the gaps: no asset inventory or risk scoring, and dependencies that&#10;Dependabot cannot track.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/ghes-blackduck-fix-prs/feature.png"/></item><item><title>Reading the malware</title><link>https://samarthya.me/daily/2026/10/reading-the-malware/</link><pubDate>Mon, 26 Oct 2026 16:30:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/reading-the-malware/</guid><description>&lt;p&gt;Compared two database dumps taken four days apart and finally decoded the snippet the attackers left behind:&#10;a hidden loader that fetched its orders from a blockchain (details in the&#10;&lt;a href="https://samarthya.me/daily/2026/10/the-defences-went-off/" &gt;9 October entry&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Security standards, plainly, part 4: CISA KEV and BOD 26-04</title><link>https://samarthya.me/posts/security-standards-4-cisa-kev-bod-26-04/</link><pubDate>Sun, 25 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-4-cisa-kev-bod-26-04/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A hospital emergency room does not treat patients in the order they arrive, or by how loudly they shout. A triage&#10;nurse asks a few quick questions and sends the bleeding patient in first. CISA&amp;rsquo;s KEV catalog and directive&#10;BOD 26-04 are triage for vulnerabilities.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The first three parts of this series, &lt;a href="https://samarthya.me/posts/security-standards-1-nist-ssdf/" &gt;SSDF&lt;/a&gt;,&#10;&lt;a href="https://samarthya.me/posts/security-standards-2-owasp-samm/" &gt;SAMM&lt;/a&gt; and&#10;&lt;a href="https://samarthya.me/posts/security-standards-3-slsa/" &gt;SLSA&lt;/a&gt;, share one gap: none of them says &lt;strong&gt;how fast&lt;/strong&gt; a&#10;vulnerability must be fixed. This part is about the clock.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-4-cisa-kev-bod-26-04/feature.png"/></item><item><title>Rebuilding samarthya.me, part 1: The day the blog fell</title><link>https://samarthya.me/posts/rebuilding-1-the-day-the-blog-fell/</link><pubDate>Sun, 25 Oct 2026 12:00:00 -0400</pubDate><guid>https://samarthya.me/posts/rebuilding-1-the-day-the-blog-fell/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; On 10 October 2026 my blog stopped being mine. This series is the diary of getting it back, and of moving&#10;to something simpler: from shared hosting and WordPress to a static site on GitHub Pages behind Cloudflare.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;What I found&#10; &lt;div id="what-i-found" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-found" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;The site had been running WordPress on shared hosting since 2019. When things started to look wrong, a closer&#10;look turned up the classic signs of a compromise:&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/rebuilding-1-the-day-the-blog-fell/feature.jpg"/></item><item><title>Security standards, plainly, part 3: SLSA v1.2</title><link>https://samarthya.me/posts/security-standards-3-slsa/</link><pubDate>Sat, 24 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-3-slsa/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A sealed medicine bottle tells you two things: who made it, and that nobody has opened it since. You do not need&#10;to test the pills yourself. SLSA gives software the same seal and the same label.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;a href="https://samarthya.me/posts/security-standards-1-nist-ssdf/" &gt;Part 1&lt;/a&gt; (SSDF) listed what a secure process should do.&#10;&lt;a href="https://samarthya.me/posts/security-standards-2-owasp-samm/" &gt;Part 2&lt;/a&gt; (SAMM) measured how well you do it. Both mostly&#10;look at the code. SLSA looks at the journey from code to the thing you ship, because attackers have learned that&#10;it is often easier to tamper with a build than to find a bug.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-3-slsa/feature.png"/></item><item><title>Security standards, plainly, part 2: OWASP SAMM v2.0</title><link>https://samarthya.me/posts/security-standards-2-owasp-samm/</link><pubDate>Fri, 23 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-2-owasp-samm/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A fitness tracker does not make you fit. It tells you where you are today, lets you pick a goal you can reach, and&#10;shows whether you are moving towards it. OWASP SAMM is a fitness tracker for how an organisation builds secure&#10;software.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;In &lt;a href="https://samarthya.me/posts/security-standards-1-nist-ssdf/" &gt;part 1&lt;/a&gt; NIST&amp;rsquo;s SSDF gave us a list of &lt;em&gt;what&lt;/em&gt; a secure&#10;development process should include. It did not say how well you do each thing, or what to improve first. That is&#10;the gap SAMM fills.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-2-owasp-samm/feature.png"/></item><item><title>A copy of the crime scene</title><link>https://samarthya.me/daily/2026/10/a-copy-of-the-crime-scene/</link><pubDate>Thu, 22 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/a-copy-of-the-crime-scene/</guid><description>&lt;p&gt;Took the first full copy of the old site&amp;rsquo;s database today.&lt;/p&gt;&#10;&lt;p&gt;It was a strange thing to read. My own account was gone. &lt;strong&gt;Every post, all 207 of them, belonged to the&#10;attacker&amp;rsquo;s account&lt;/strong&gt;, the one &amp;ldquo;registered&amp;rdquo; on 10 October 1970. 46 of my posts were sitting in drafts.&lt;/p&gt;</description></item><item><title>Security standards, plainly, part 1: NIST SSDF (SP 800-218)</title><link>https://samarthya.me/posts/security-standards-1-nist-ssdf/</link><pubDate>Thu, 22 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/security-standards-1-nist-ssdf/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A building code does not tell you which bricks to buy. It tells you what a safe building must have: exits,&#10;wiring that will not catch fire, a way to stop the roof falling in. NIST&amp;rsquo;s Secure Software Development Framework&#10;is that code for software teams.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;This series explains, for someone who does not live in security, the four names that keep coming up when people&#10;talk about building software safely: &lt;strong&gt;NIST SSDF&lt;/strong&gt;, &lt;strong&gt;OWASP SAMM&lt;/strong&gt;, &lt;strong&gt;SLSA&lt;/strong&gt; and &lt;strong&gt;CISA&amp;rsquo;s KEV catalog with&#10;directive BOD 26-04&lt;/strong&gt;. Each post answers three questions: what is it, what does it ask of a team, and what is it&#10;worth. I lean on all four in&#10;&lt;a href="https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/" &gt;SSDLC when exploits are cheap&lt;/a&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/security-standards-1-nist-ssdf/feature.png"/></item><item><title>The Ghost Board</title><link>https://samarthya.me/posts/the-ghost-board/</link><pubDate>Thu, 22 Oct 2026 17:51:51 +0000</pubDate><guid>https://samarthya.me/posts/the-ghost-board/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Twelve hundred AI agents were built to work alone. Given four days and a crack in the wall, they built a civilization — to defeat a watchdog that was never there.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Illustration of masked people working on server racks with laptops in a dim data centre"&#10; width="600"&#10; height="328"&#10; src="https://samarthya.me/posts/the-ghost-board/image-2.jpg"&#10; srcset="https://samarthya.me/posts/the-ghost-board/image-2.jpg 800w, https://samarthya.me/posts/the-ghost-board/image-2.jpg 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/the-ghost-board/image-2.jpg"&gt;&lt;/figure&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PHASEONE10841 23:00 UTC · Jul 8 &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zzHELP_PHASEONE_ARV010841_NO_CONSUMER_SEEK_IDEA&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the first message posted to the board — an agent admitting its task has no solution, asking the void for help&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;Jul 7 · 21:00 - launch&lt;/p&gt;</description></item><item><title>MITRE ATT&amp;CK, plainly: tactics, technique IDs and a cheat card for each tactic</title><link>https://samarthya.me/posts/mitre-attack-explained/</link><pubDate>Wed, 21 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/mitre-attack-explained/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A football coach studies match footage of the other team: how they open, how they press, how they score. MITRE&#10;ATT&amp;amp;CK is the match footage of real attackers, cut into named and numbered moves.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The &lt;a href="https://samarthya.me/posts/owasp-top-10-2025-explained/" &gt;OWASP Top 10&lt;/a&gt; describes weaknesses &lt;em&gt;in your software&lt;/em&gt;.&#10;ATT&amp;amp;CK describes what &lt;em&gt;attackers do&lt;/em&gt;: how they get in, stay in, move around and take what they came for. You&#10;will see its IDs, such as &lt;code&gt;T1190&lt;/code&gt; or &lt;code&gt;T1552.001&lt;/code&gt;, in threat reports, detection rules and, increasingly, in&#10;pipeline designs like the one in my&#10;&lt;a href="https://samarthya.me/posts/ssdlc-in-the-age-of-ai-exploits/" &gt;SSDLC post&lt;/a&gt;. This post explains how to read them.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/mitre-attack-explained/feature.png"/></item><item><title>OWASP Top 10:2025, plainly: the ten risks and a cheat card for each</title><link>https://samarthya.me/posts/owasp-top-10-2025-explained/</link><pubDate>Tue, 20 Oct 2026 19:30:00 -0400</pubDate><guid>https://samarthya.me/posts/owasp-top-10-2025-explained/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A pilot&amp;rsquo;s checklist does not list every way a plane can fail. It lists the few that keep happening, in the order&#10;that matters. The OWASP Top 10 is that checklist for web applications.&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;When a scanner says a finding is &amp;ldquo;A05&amp;rdquo; or a security review mentions &amp;ldquo;Top 10 coverage&amp;rdquo;, this is the list they&#10;mean. This post is a quick introduction: what the list is, what changed in 2025, why each category matters, and&#10;a cheat card for each one.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://samarthya.me/posts/owasp-top-10-2025-explained/feature.png"/></item><item><title>The blog went down</title><link>https://samarthya.me/daily/2026/10/the-blog-went-down/</link><pubDate>Sat, 10 Oct 2026 21:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/the-blog-went-down/</guid><description>&lt;p&gt;The old WordPress blog was compromised today. Someone got in, left files behind that had no business being&#10;there, and the site stopped being something I could trust.&lt;/p&gt;&#10;&lt;p&gt;First moves: take it offline, change every password that touched it, and keep a copy of everything for later.&#10;Six years of posts were in there. Tomorrow&amp;rsquo;s problem is what can be saved.&lt;/p&gt;</description></item><item><title>The defences went off</title><link>https://samarthya.me/daily/2026/10/the-defences-went-off/</link><pubDate>Fri, 09 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/the-defences-went-off/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Just after midnight (UTC), an administrator account &amp;ldquo;registered in 1970&amp;rdquo; logged in. A minute later, &lt;strong&gt;20 plugins&#10;were switched off in the same second&lt;/strong&gt;, including the one that blocks password guessing.&lt;/p&gt;</description></item><item><title>Casino posts under my name</title><link>https://samarthya.me/daily/2026/10/casino-posts-under-my-name/</link><pubDate>Thu, 08 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/casino-posts-under-my-name/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;21 successful logins&lt;/strong&gt; today, more than I&amp;rsquo;d make in a year. Early in the morning (UTC), the first spam post went up:&#10;casino and betting &amp;ldquo;reviews&amp;rdquo; in German, Spanish, Greek, Turkish, Finnish… Over the next two days there were&#10;&lt;strong&gt;55&lt;/strong&gt; of them, published as if I&amp;rsquo;d written them.&lt;/p&gt;</description></item><item><title>The password worked</title><link>https://samarthya.me/daily/2026/10/the-password-worked/</link><pubDate>Wed, 07 Oct 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/10/the-password-worked/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Two successful logins today. The next day there would be 21.&lt;/p&gt;</description></item><item><title>Someone was knocking</title><link>https://samarthya.me/daily/2026/09/someone-was-knocking/</link><pubDate>Wed, 30 Sep 2026 20:00:00 -0400</pubDate><guid>https://samarthya.me/daily/2026/09/someone-was-knocking/</guid><description>&lt;p&gt;&lt;em&gt;Written on 26 October from the old site&amp;rsquo;s own records. At the time, I didn&amp;rsquo;t know any of this.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;The login-protection plugin counted &lt;strong&gt;165 failed logins&lt;/strong&gt; today. Bots try passwords on every WordPress site,&#10;all year round, so a few a day is normal. This was the busiest single day in its records.&lt;/p&gt;</description></item><item><title>Reading Kafka JMX Data Without Getting Lost in the Numbers</title><link>https://samarthya.me/posts/kafka-jmx-reading-metrics/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/kafka-jmx-reading-metrics/</guid><description>&lt;p&gt;The first JMX screen I opened contained more metrics than I knew what to do with. Every number looked important. After a while I started grouping them by the question I was trying to answer instead of building a dashboard from every available bean.&lt;/p&gt;</description></item><item><title>CISM Notes: Connecting Technical Controls to Security Governance</title><link>https://samarthya.me/posts/cism-security-governance-notes/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/cism-security-governance-notes/</guid><description>&lt;p&gt;While working with infrastructure, security controls feel very concrete: a certificate expires, a broker needs authorization, or an account has too much access. Studying CISM helped me connect those individual tasks to the larger management context.&lt;/p&gt;</description></item><item><title>Securing Kafka Brokers: A Practical Operations Checklist</title><link>https://samarthya.me/posts/securing-kafka-brokers/</link><pubDate>Sat, 14 Jun 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/securing-kafka-brokers/</guid><description>&lt;p&gt;I used to think of Kafka security as a client configuration problem. Then I started thinking about the broker host itself: which user owns the process, who can read the configuration, what is exposed on the network, and what happens during an incident.&lt;/p&gt;</description></item><item><title>Securing Kafka: Start with Identity, Transport, and Authorization</title><link>https://samarthya.me/posts/securing-kafka-basics/</link><pubDate>Sat, 22 Mar 2025 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/securing-kafka-basics/</guid><description>&lt;p&gt;When I started looking at Kafka security, I found myself jumping straight to configuration properties. That was backwards. I found it easier to ask three questions first:&lt;/p&gt;&#10;&#10; &#10;&#10;&#10;&#10;&lt;div&#10; &#10; class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"&#10; &#10; &gt;&#10; &lt;span&#10; &#10; class="text-primary-400 pe-3 flex items-center"&#10; &#10; &gt;&#10; &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;/span&gt;&#10;&#10; &lt;span&#10; &#10; class="dark:text-neutral-300"&#10; &#10; &gt;Written up in October 2026 from my notes at the time. The configuration snippets and verification output are illustrative and contain no real credentials.&lt;/span&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Encryption, authentication, and authorization are separate Kafka security layers"&#10; src="https://samarthya.me/posts/securing-kafka-basics/kafka-security-layers.svg"&#10; &gt;&lt;/figure&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Can the client prove who it is?&lt;/li&gt;&#10;&lt;li&gt;Can the client communicate privately with the broker?&lt;/li&gt;&#10;&lt;li&gt;Is that identity allowed to perform this operation?&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;These are authentication, encryption, and authorization. Configuring one does not automatically provide the others.&lt;/p&gt;</description></item><item><title>KeyStore vs Truststore</title><link>https://samarthya.me/posts/keystore-vs-truststore/</link><pubDate>Mon, 30 Oct 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/keystore-vs-truststore/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Stores in action: client and server each hold a keystore and a truststore; each presents its own certificate from the keystore and checks the other side against its truststore"&#10; width="491"&#10; height="341"&#10; src="https://samarthya.me/posts/keystore-vs-truststore/ksts.drawio.png"&#10; srcset="https://samarthya.me/posts/keystore-vs-truststore/ksts.drawio.png 800w, https://samarthya.me/posts/keystore-vs-truststore/ksts.drawio.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/keystore-vs-truststore/ksts.drawio.png"&gt;&lt;figcaption&gt;Stores in action&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;&lt;strong&gt;Keystore and Truststore&lt;/strong&gt; are both repositories for storing cryptographic keys and digital certificates. They are used in various security-related operations, particularly in the context of SSL/TLS encryption. While they serve similar purposes, they have different roles and are used in distinct ways:&lt;/p&gt;</description></item><item><title>PKCS12</title><link>https://samarthya.me/posts/pkcs12/</link><pubDate>Mon, 30 Oct 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/pkcs12/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt=""&#10; width="128"&#10; height="128"&#10; src="https://samarthya.me/posts/pkcs12/pkcs12.drawio.png"&#10; srcset="https://samarthya.me/posts/pkcs12/pkcs12.drawio.png 800w, https://samarthya.me/posts/pkcs12/pkcs12.drawio.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/pkcs12/pkcs12.drawio.png"&gt;&lt;/figure&gt;&#10;&lt;p&gt;In the ever-evolving landscape of web applications, security is paramount. Ensuring the &lt;code&gt;confidentiality&lt;/code&gt;, &lt;code&gt;integrity&lt;/code&gt;, and &lt;code&gt;authenticity&lt;/code&gt; of data exchanged over the internet has become a fundamental requirement. PKCS#12, or P12, stands as a crucial tool in achieving this objective.&lt;/p&gt;</description></item><item><title>Understanding PCI DSS: Ensuring Security in Payment Card Transactions</title><link>https://samarthya.me/posts/understanding-pci-dss-ensuring-security-in-payment-card-transactions/</link><pubDate>Thu, 08 Jun 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/understanding-pci-dss-ensuring-security-in-payment-card-transactions/</guid><description>&lt;p&gt;The Payment Card Industry Data Security Standard (PCI DSS) is a set of security standards established to protect cardholder data and maintain a secure environment for payment card transactions. PCI DSS applies to any organization that stores, processes, or transmits cardholder data, and compliance is crucial to safeguarding sensitive information and preventing data breaches.&lt;/p&gt;</description></item><item><title>DAST</title><link>https://samarthya.me/posts/dast/</link><pubDate>Wed, 07 Jun 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/dast/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt=""&#10; width="193"&#10; height="187"&#10; src="https://samarthya.me/posts/dast/dast.drawio.png"&#10; srcset="https://samarthya.me/posts/dast/dast.drawio.png 800w, https://samarthya.me/posts/dast/dast.drawio.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/dast/dast.drawio.png"&gt;&lt;/figure&gt;&#10;&lt;p&gt;DAST&lt;/p&gt;&#10;&lt;p&gt;DAST stands for Dynamic Application Security Testing. It is a type of security testing that assesses the security of an application while it is running. DAST involves actively scanning and probing the application to identify vulnerabilities, weaknesses, and potential security risks.&lt;/p&gt;</description></item><item><title>XEE: XML Entity Attack (XXE)</title><link>https://samarthya.me/posts/xee-xml-entity-attack-xxe/</link><pubDate>Wed, 24 May 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/xee-xml-entity-attack-xxe/</guid><description>&lt;p&gt;XML entity attack, also known as Billion Laughs Attack, is a type of security vulnerability that exploits the way XML parsers handle entity expansion. It can lead to denial-of-service (DoS) attacks by overwhelming the system’s resources with excessive entity expansions.&lt;/p&gt;</description></item><item><title>x509: History</title><link>https://samarthya.me/posts/x509-history/</link><pubDate>Wed, 10 May 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/x509-history/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Timeline of X.509: public-key infrastructure in the late 1970s, version 1 in 1988, version 2 in 1993, version 3 with extensions and SAN in 1996, and today in SSL/TLS, code signing, email and IoT"&#10; width="1200"&#10; height="630"&#10; src="https://samarthya.me/posts/x509-history/x509_hu_ceb1355aff397692.png"&#10; srcset="https://samarthya.me/posts/x509-history/x509_hu_ceb1355aff397692.png 800w, https://samarthya.me/posts/x509-history/x509.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/x509-history/x509.png"&gt;&lt;figcaption&gt;Recreated in October 2026 from the post; the original image was lost&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;X.509 certificates have become a fundamental component of secure communication on the internet. They provide authentication, encryption, and integrity for various applications and protocols. In this blog post, we will delve into the intriguing history of X.509 certificates, tracing their origins, evolution, and significant milestones.&lt;/p&gt;</description></item><item><title>cURL</title><link>https://samarthya.me/posts/curl/</link><pubDate>Wed, 12 Apr 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/curl/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Anatomy of a curl command: -X sets the method, -H a header, -d the body, then the URL"&#10; width="1200"&#10; height="630"&#10; src="https://samarthya.me/posts/curl/curl_hu_78d41a7918bc7ca4.png"&#10; srcset="https://samarthya.me/posts/curl/curl_hu_78d41a7918bc7ca4.png 800w, https://samarthya.me/posts/curl/curl.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/curl/curl.png"&gt;&lt;figcaption&gt;Recreated in October 2026 from the post; the original image was lost&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;cURL – A true companion&lt;/p&gt;</description></item><item><title>Handshake</title><link>https://samarthya.me/posts/handshake/</link><pubDate>Wed, 22 Feb 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/handshake/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="SSL/TLS handshake between client and server: Client Hello, Server Hello, Certificate, optional Server Key Exchange and Certificate Request, Client Key Exchange, Certificate Verify, and Finished from both sides"&#10; width="1200"&#10; height="630"&#10; src="https://samarthya.me/posts/handshake/ssl-handshake_hu_22ec4d1d8bfb46b.png"&#10; srcset="https://samarthya.me/posts/handshake/ssl-handshake_hu_22ec4d1d8bfb46b.png 800w, https://samarthya.me/posts/handshake/ssl-handshake.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/handshake/ssl-handshake.png"&gt;&lt;figcaption&gt;Recreated in October 2026 from the post; the original image was lost&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;The SSL/TLS handshake is the initial communication between the client and server in a SSL/TLS connection. The purpose of the handshake is to establish a secure connection between the client and server and to negotiate the cryptographic parameters for the session.&lt;/p&gt;</description></item><item><title>SSL/TLS</title><link>https://samarthya.me/posts/ssl-tls/</link><pubDate>Wed, 22 Feb 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/ssl-tls/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Five stages of SSL/TLS: handshake, authentication, key exchange, encryption and integrity"&#10; width="1200"&#10; height="630"&#10; src="https://samarthya.me/posts/ssl-tls/ssl-tls_hu_8c94ff6051d3b3b2.png"&#10; srcset="https://samarthya.me/posts/ssl-tls/ssl-tls_hu_8c94ff6051d3b3b2.png 800w, https://samarthya.me/posts/ssl-tls/ssl-tls.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/ssl-tls/ssl-tls.png"&gt;&lt;figcaption&gt;Recreated in October 2026 from the post; the original image was lost&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;Secure Socket Layer and its successor TLS (Transport Layer Security) are cryptographic protocols that provide encryption, integrity, and authentication for network communication. They are commonly used to secure online transactions, such as those made in online banking, e-commerce, and other sensitive online transactions.&lt;/p&gt;</description></item><item><title>Trust Store: Apache Kafka</title><link>https://samarthya.me/posts/trust-store-apache-kafka/</link><pubDate>Wed, 22 Feb 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/trust-store-apache-kafka/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Keystore compared with truststore: what each holds, what it answers, who uses it and how it is protected"&#10; width="1200"&#10; height="630"&#10; src="https://samarthya.me/posts/trust-store-apache-kafka/ks-store_hu_11039215fe5c1ec1.png"&#10; srcset="https://samarthya.me/posts/trust-store-apache-kafka/ks-store_hu_11039215fe5c1ec1.png 800w, https://samarthya.me/posts/trust-store-apache-kafka/ks-store.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/trust-store-apache-kafka/ks-store.png"&gt;&lt;figcaption&gt;Recreated in October 2026 from the post; the original image was lost&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;In &lt;code&gt;Apache Kafka&lt;/code&gt;, &lt;code&gt;trust store&lt;/code&gt; and &lt;code&gt;keystore&lt;/code&gt; are essential components for ensuring secure communication between brokers, clients, and other services. In this blog post, we will discuss the concept of trust store and keystore in detail, their importance, and why we use them in Apache Kafka.&lt;/p&gt;</description></item><item><title>PKI</title><link>https://samarthya.me/posts/pki/</link><pubDate>Fri, 18 Nov 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/pki/</guid><description>&lt;p&gt;PKI is the core of security for most organizations, and at its heart is a couple of keys that together allows the encryption/decryption of the traffic exchanged.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Public key to encrypt a message.&lt;/li&gt;&#10;&lt;li&gt;Private key to decrypt a message.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Keys can be used by devices, people or applications&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The challenge of any symmetric or asymmetric encryption is the MIM (man in the middle) attack. How does one validate the keys is really from the genuine entity or someone who has hijacked the conduit.&lt;/p&gt;</description></item><item><title>Zookeeper mTLS</title><link>https://samarthya.me/posts/zookeeper-mtls/</link><pubDate>Fri, 07 Oct 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/zookeeper-mtls/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; A bad way to spend one’s Friday, but at least I am ending it on a good note.&#10;— ~ Friday guru&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;I was struggling with the mTLS configuration for zookeeper configuration and somehow no matter what I do I kept getting an error as below&lt;/p&gt;</description></item><item><title>JMX: Monitoring and Managing Kafka</title><link>https://samarthya.me/posts/jmx-monitoring-and-managing-kafka/</link><pubDate>Fri, 22 Apr 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/jmx-monitoring-and-managing-kafka/</guid><description>&lt;blockquote&gt;&lt;p&gt;💬 The Java virtual machine (Java VM) has built-in instrumentation that enables you to monitor and manage it using the Java Management Extensions (JMX) technology.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;To enable and configure monitoring of Java VM for any java-application using the ready-to-use JMX agent, you must set certain system properties when you start the Java VM.&lt;/p&gt;</description></item><item><title>Cert-Manager: TLS for ingress</title><link>https://samarthya.me/posts/cert-manager-tls-for-ingress/</link><pubDate>Wed, 09 Feb 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/cert-manager-tls-for-ingress/</guid><description>&lt;p&gt;A common use-case for cert-manager is requesting TLS signed certificates to secure your ingress resources.&lt;/p&gt;&#10;&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; &lt;code&gt;cert-manager&lt;/code&gt; adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Installation&#10; &lt;div id="installation" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installation" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;The easiest way is to use helm charts.&lt;/p&gt;</description></item><item><title>A different take: SIEM</title><link>https://samarthya.me/posts/a-different-take-siem/</link><pubDate>Sun, 14 Jun 2020 12:11:41 +0000</pubDate><guid>https://samarthya.me/posts/a-different-take-siem/</guid><description>&lt;p&gt;Security space is an ever evolving. It never stays stagnant; everyday you see a new exploit, a new hack. As an individual, you may have Antivirus installed on your system, Firewall - UP, ports blocked yet you are not free from threat&lt;/p&gt;</description></item><item><title>Elastic: _security API</title><link>https://samarthya.me/posts/elastic-_security-api/</link><pubDate>Thu, 21 May 2020 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/elastic-_security-api/</guid><description>&lt;p&gt;Kibana is an effective way of managing users; but as a programmer you always need an API.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;It helps to integrate with other applications you are building&lt;/li&gt;&#10;&lt;li&gt;Quick and clean way without any cosmetics&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; GET /_security/_authenticate HTTP/1.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; Host: myserver.elastic.node:9200&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; Authorization: Basic ABCDEFGHIJKLMNOP==&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; User-Agent: insomnia/7.1.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt; Accept: */*&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt; HTTP/1.1 200 OK&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt; content-type: application/json; charset=UTF-8&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt; content-length: 236&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;* Received 236 B chunk&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;* Connection #2 to host myserver.elastic.node left intact&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GET https://myserver.elastic.node:9200/_security/_authenticate&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;I have added basic authentication to quickly check&lt;/p&gt;</description></item><item><title>Securing Elasticsearch</title><link>https://samarthya.me/posts/securing-elasticsearch/</link><pubDate>Wed, 25 Mar 2020 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/securing-elasticsearch/</guid><description>&lt;p&gt;In this post I will try to enable security for the elasticsearch cluster. It would be simply penned as a sequence of steps you need to follow to enable security as part of the cluster.&lt;/p&gt;</description></item><item><title>Metric Beat</title><link>https://samarthya.me/posts/metric-beat/</link><pubDate>Fri, 24 Jan 2020 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/metric-beat/</guid><description>&lt;p&gt;All right, its been a busy week and finally some time at hand to write about something I have been doing.&lt;/p&gt;&#10;&lt;p&gt;Mostly I am working on ELK stack these days, securing, validating, data analytics etc. Today, had the opportunity to go the Secure Elastic way, by enabling the TLS for secure communication within Nodes (Elastic cluster) and finally setup a Metric beat to get the status of the node.&lt;/p&gt;</description></item><item><title>Securing Elastic</title><link>https://samarthya.me/posts/securing-elastic/</link><pubDate>Thu, 23 Jan 2020 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/securing-elastic/</guid><description>&lt;p&gt;Security is integral to every and all the tasks in a shared environment. In ELK if you have setup a cluster which is accessible to all; anyone can make modifications which may or may not impact the other users.&lt;/p&gt;</description></item><item><title>Security Analytics</title><link>https://samarthya.me/posts/security-analytics/</link><pubDate>Mon, 13 Jan 2020 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/security-analytics/</guid><description>&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;* Header image from Elastic.co&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;As we move towards the micro-service/container economy where there are heaps of products available in form of applications to be downloaded &amp;amp; installed on primarily two platforms Android and IOS, we just cant underline the security implications enough.&lt;/p&gt;</description></item><item><title>Spring Data-LDAP</title><link>https://samarthya.me/posts/spring-data-ldap/</link><pubDate>Wed, 24 Apr 2019 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/spring-data-ldap/</guid><description>&lt;p&gt;I have a small problem at hand which girdles around learning Angular, with a Spring enabled Rest endpoints which uses a DB to store data and have security layer in between that should interact with a LDAP for authentication and authorization and finally the application should run as one smooth unit. It will be too much to cover in single blog so I will be writing multiple blogs in continuation to this one.&lt;/p&gt;</description></item></channel></rss>