<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security</title><link>https://blog.ast.moe/en/tags/security/</link><description>Recent posts: Gorimuchu</description><generator>Hugo</generator><item><title>Integrating Jev into Izanagi’s behavioral analysis</title><link>https://blog.ast.moe/en/blog/2026-10-09/</link><pubDate>Fri, 09 Oct 2026 10:03:32 +0900</pubDate><guid>https://blog.ast.moe/en/blog/2026-10-09/</guid><description>&lt;p&gt;In the previous article (&lt;a href="https://blog.ast.moe/en/blog/2026-10-08-3/"&gt;source&lt;/a&gt;), we introduced Izanagi, which isolates and runs development commands while recording file accesses and network communications. This time, we discuss the addition of behavior analysis using Jev.&lt;/p&gt;
&lt;p&gt;Existing detection rules issue warnings based on a single action—such as an attempt to open a secret file, a connection to an address outside the allowed list, or the execution of an unexpected command. In addition, we have made it possible to link multiple actions together in chronological order.&lt;/p&gt;</description></item><item><title>What can be done with Izanagi</title><link>https://blog.ast.moe/en/blog/2026-10-08-3/</link><pubDate>Thu, 08 Oct 2026 22:24:12 +0900</pubDate><guid>https://blog.ast.moe/en/blog/2026-10-08-3/</guid><description>&lt;p&gt;When you run &lt;code&gt;npm install&lt;/code&gt;, it not only downloads the package but may also execute scripts that the package provides. If you run that code in your regular development environment, you can access files readable by the executing user and the environment variables passed to the process.&lt;/p&gt;
&lt;p&gt;To isolate such development commands and track what they access, we have built Izanagi in Rust (&lt;a href="https://github.com/ieee0824/izanagi"&gt;source&lt;/a&gt;). It records file accesses, network communications, and child‑process launches so you can examine the behavior of the executed code.&lt;/p&gt;</description></item><item><title>I investigated how the YubiKey works.</title><link>https://blog.ast.moe/en/blog/2026-10-07/</link><pubDate>Thu, 08 Oct 2026 06:58:01 +0900</pubDate><guid>https://blog.ast.moe/en/blog/2026-10-07/</guid><description>&lt;p&gt;I was just wondering how a YubiKey actually performs authentication.&lt;/p&gt;
&lt;p&gt;I started using the YubiKey 5C NFC in 2023, and later I also bought a USB‑A model. At the time I introduced it to protect my 1Password account, planning to register one key for everyday carry and another as a spare kept at home. (&lt;a href="https://blog.ast.moe/blog/2023-01-27/"&gt;source&lt;/a&gt;) (&lt;a href="https://blog.ast.moe/blog/2023-03-07/"&gt;source&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You plug it into a USB port and touch it when needed. With a smartphone you use NFC. The user interaction is minimal, but I’ve never taken the time to understand exactly what’s happening behind the scenes.&lt;/p&gt;</description></item><item><title>Fixed the origin‑boundary bypass that was present in the internal host function of Omoikane.</title><link>https://blog.ast.moe/en/blog/2026-09-26/</link><pubDate>Sat, 26 Sep 2026 07:06:58 +0900</pubDate><guid>https://blog.ast.moe/en/blog/2026-09-26/</guid><description>&lt;p&gt;During the development of Omoikane, I happened to notice that the internal &lt;code&gt;__omoikane_*&lt;/code&gt; function was visible from the page’s JavaScript. By examining the code, I confirmed through static analysis that passing a different Document or Node ID could create a path that reaches the DOM, cookies, or storage of a cross‑origin document without going through the same‑origin policy. I did not create a proof‑of‑concept that actually reproduced the read/write behavior before the fix. After the fix, I verified in regression tests that cross‑origin access is properly blocked.&lt;/p&gt;</description></item></channel></rss>