⚡

『SkiaHelios』開発記 第1部:思考編 — 三大美徳と自動化への渇望

に公開
2026/07/29

『SkiaHelios』開発記 — Perlの三大美徳が導いた、DFIRツールの高速化と自動化

「怠惰であれ、短気であれ、傲慢であれ。」
— Larry Wall (The Three Virtues of a Programmer)

プログラマにとっての「三大美徳」。

この言葉を、DFIR(Digital Forensics and Incident Response)の現場に適用したとき、それは単なる精神論ではなく、実用的なツール開発の指針となりました。

本記事では、自作のトリアージ/可視化ツール SkiaHelios
https://github.com/schutzz/SkiaHelios
の開発背景にある設計思想と、それを実現するための技術選定(Python, Polars, Rust)について、この「三大美徳」の観点から振り返ります。

背景:手動解析の限界と自動化への渇望

開発のきっかけは、SANS FOR500の学習中に感じた「手動解析の非効率さ」でした。

当初はPythonで書いた小さなスクリプトでしたが、実務レベルの知識が増えるにつれ、扱うデータ量は爆発的に増加しました。

  1. Laziness(怠惰):53万行のCSVと向き合わないために— ルーチンワークの完全自動化

MFT(Master File Table)を解析すると、平気で50万行を超えるレコードが出力されます。

これをExcelで開き、目視で異常を探す作業は、インシデントレスポンスの初動においてあまりに非効率です。しかも、実際の事案ではこれが複数台、数TBの規模になります。

「労力を減らすための労力は惜しまない」 というプログラマ的な怠惰心に従い、私は異常検知ロジックのコード化を進めました。

既知の攻撃パターンや異常値を定義し、フィルタリングを自動化することで、人間は「判断」のみに集中できる環境を目指しました。

  1. Impatience(短気):0.1秒でも速く結果を知るために— PolarsとRustによる高速化

解析対象がMFT、LNK、Prefetch、Registryと増えるにつれ、新たな課題が浮上しました。「処理待ち時間」です。

当初使用していたPandasでは、数GBのデータ処理に分単位の待ち時間が発生していました。

DFIRにおいて、思考の速度とツールの応答速度のギャップは致命的です。仮説検証のサイクルを回そうとするたびに待たされては、思考が分断されてしまいます。

そこで、データ処理基盤を Polars へと移行しました。

行指向から列指向(Apache Arrow)へのパラダイムシフトにより、4GBのデータを約0.6秒で処理できるパフォーマンスを達成。

しかし、さらに複雑な推論やルール検知を実装するには、Pythonだけでは限界が見えています。

現在はコアロジックの Rustライブラリ化 を進めており、「思考した瞬間に結果が出る」レイテンシを目指して最適化を続けています。

  1. Hubris(傲慢):巨人の肩の上で、さらに高く飛ぶために— 既存ツールへのリスペクトと、独自実装への挑戦

Eric Zimmerman氏のEZToolsをはじめ、既存のフォレンジックツールは非常に強力です。

しかし、それらは「正確なパース」に特化しており、出力された膨大なデータをどう料理するかは、依然として解析者のスキルとPCスペックに依存しています。

既存ツールの恩恵を受けつつも、

「現代的なアプローチ(Rust/Polars/AI)を用いれば、もっと効率的なトリアージが可能なのではないか?」

という一種の傲慢さが、独自エンジンの開発を後押ししました。

単にデータを抽出するだけでなく、「現場で即座に意思決定できる形」 に昇華すること。

そして、それをOSSとして公開(MIT License)し、コミュニティに還元すること。

それが、SkiaHeliosの目指す到達点です。

哲学:バイアスなきAI共創

—— 「常識(バイアス)がないから、AIとバイナリに潜れた」

私はIT業界に入ってまだ2年目だ。

ベテランの方々から見れば、経験不足は否めない。だが、開発を通じて、この「歴の浅さ」こそが最大の武器になると確信した。

私には、「解析とはこうあるべき」「低レイヤーの学習は泥臭くあるべき」という古い常識(バイアス)がない。

だからこそ、躊躇なくAIを「検索エンジン」ではなく「相棒(Co-pilot)」として迎え入れることができた。

AI × 低レイヤーの必然性[GitHub - SkiaHelios]
https://github.com/schutzz/SkiaHelios

次回の記事(技術編)では、ツールの心臓部についてさらに深掘りします。

異常検知ロジックの実装(The Core):

単なるログ解析ではなく、膨大なアーティファクトからいかにして「攻撃の痕跡」を自動で浮かび上がらせるか。Polarsを駆使したフィルタリング戦略について。

Mermaidによる「説明力」の強化:

解析結果をただの表で終わらせない。自動生成されたダイアグラムで、インシデントの全容を視覚的にどう伝えるか。

アナリスト(の卵)が挑むRust:

専業プログラマではないフォレンジックアナリストが、どうやって高速化を実現したのか。

「解析」から「報告」まで、思考を一切止めないための技術的なアプローチを共有する予定です。

言い遅れましたが明けましておめでとうございます。

Discussion