3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows の防御設定を「確かめて、直して、見張る」常駐ツール Agent Fettle をクローズドβ公開しました

3
Posted at

Norton 360 をやめて Microsoft Defender に戻したときに作った個人用ツールを、製品として作り直しました。

Agent Fettle(エージェント フェトル。in fine fettle = 調子が整っている)。Windows 用、C# / .NET 10、WinForms + WebView2 です。
いまクローズドβでテスターを募集しています(Windows 10 22H2 / 11、64bit)。

og-1200x630.png

何をするか(そして、何ではないか)

先に「ではないもの」から。

  • ウイルス対策ソフトそのものではありません。 マルウェアの検出・駆除は Defender がやります。エンジンは持ち込みません
  • AI エージェントではありません。 ローカル LLM は任意機能で、AI の答えで設定が変わることはありません
  • 「〇〇件の問題を検出しました」とユーザーに不安を煽りません。 スコアも危険度も出しません
  • 外部に何も送りません。 検出結果も設定も PC 内。ネットワークドライバも入れず、ローカルポートも開きません

するのは次の 5 つです。

機能 内容
🛡 防御状態の確認 Defender(リアルタイム保護 / 改ざん防止 / PUA / フォルダーアクセスの制御 / ネットワーク保護 / ASR / 除外)、ファイアウォール、セキュアブート、メモリ整合性、Smart App Control、UAC、SmartScreen、BitLocker、Chrome セーフブラウジング、パスワード管理の 19 項目を 1 時間ごとに記録。推奨から外れた変化だけ通知(同じ件は 1 日 1 回)
🔧 修復 Defender の既定オフ 4 機能の有効化、存在しない PATH エントリ、実体の無い起動項目・サービス、幽霊ネットワークプロファイル、無効化されたアダプタのバインドなど 33 種を検出し、「修復案を見る → 適用する」の 2 クリックで直す。変更前の値をバックアップしてから変える
💾 バックアップ 差分 ZIP + 月次フルの世代管理。保存先はローカル / NAS / パソコン版 Google Drive・OneDrive のフォルダ。開発者向けプリセット(AI ツールの会話履歴、エディタ設定、シェルプロファイル)
🧹 クリーナー / 🚫 ブロックリスト ゴミ箱・一時ファイル・キャッシュ・WU の残骸を種類ごとに選んで削除(Documents / Downloads / Desktop は数えない)。悪性広告ドメインを Chrome / Edge のポリシーで遮断(拡張機能不要)
🤖 ローカル LLM(任意) Qwen2.5 1.5B / 7B が検出結果の解説・修復結果の検証・症状の切り分けを手伝う。存在しない項目名は機械検証層が弾く

01_01.png

なぜ作ったか

開発機に入れていた Norton 360 が「59,104 件の問題」「248 GB の不要ファイル」を起動のたびに出すので実測したら、
不要ファイルの約 90% は自分の Downloads フォルダでした。解約して Defender に戻す過程で分かったのが、

  • Defender のエンジンは AV-TEST で Top Product(Norton 360 と同じ評価)なのに、
  • PUA・フォルダーアクセスの制御・ネットワーク保護・ASR は既定で効いておらず
  • Windows Home には gpedit.msc が無いので PowerShell でしか有効化できず、
  • しかも有効化しても、いつの間にか戻っていても気づく手段が無い

という事実でした。「Windows 標準の防御を使い切る」ための道具が無かったので作った、と言うのが開発に至るまでの経緯です。

Defender の 4 機能の実態と PowerShell での手順は、Zenn に技術記事として別に書いています → Windows Home の Defender、実は「守っていない」設定が 4 つある(gpedit 無しで有効化する)

設計で決めたこと

  • 既定はドライラン。 すべての修復は「何を・どう変えるか」を先に表示し、人のクリックで初めて変える。管理者確認(UAC)は 1 回にまとめる
  • 削除より無効化・リネーム。 消すしかないもの(クリーナー)は、消す一覧を先にファイルに書いてから消す
  • 「未確認」は異常ではない。 読めなかったものを赤くすると誤警告になり、本物の警告への注意が逸らされてしまうので、4 状態(推奨どおり / 推奨と異なる / 未確認 / 該当なし)だけで、色は 1 状態 1 色
  • 結果ファイルが無ければ「不明」。 「やっていないことを『やった』と言わない」をコードの契約にした(昇格ヘルパは JSON を書いて終了し、ファイルが無ければ成功扱いしない)
  • 判定は PowerShell の参照実装と一致テストで固定。 移植で「ついでに改善」して誤検知が復活するのを防ぐ

01_02.png

技術メモ

  • C# / .NET 10、自己完結。UI は WebView2 に HTML/CSS/JS を https://fettle.local/ の仮想ホストで載せ、IPC は postMessageローカルポートは開かない
  • Defender の状態は WMI root\Microsoft\Windows\DefenderMSFT_MpPreference / MSFT_MpComputerStatus、Security Center は root\SecurityCenter2。非昇格で読める
  • 変更は MSFT_MpPreference.Set / レジストリ直書き。昇格が要るものは別 exe(requireAdministrator)に 1 回の UAC でまとめる
  • ライセンスは Ed25519 署名の 1 行(サーバが署名、クライアントは埋め込み公開鍵でオフライン検証)
  • ローカル LLM は別プロセス(LLamaSharp、CPU / Vulkan)。10 分使わなければ落とす。出力は GBNF 文法で JSON に拘束
  • インストーラは Inno Setup、95 MB。コード署名はしていないので SmartScreen の警告が出ます(SHA-256 を公開)。Smart App Control が「オン」の PC では起動できません

クローズドβ

  • 期間 4 週間、5〜10 名。Windows 10 22H2 / 11(Home / Pro)。「他社ウイルス対策あり」「GPU なし」「NAS あり」の方を特に求めています
  • お願い: 導入して常駐を続け、週 1 回 Fettle.Cli.exe selfcheck --mask の出力を送る(ホスト名・ユーザー名は伏せられます)。納得できない判定・修復の結果・文言の分かりにくさを報告
  • 対価: 年間ライセンス(¥2,800 相当)を無償発行。登録確定と同時にメールで届き、正式版でもそのまま使えます
  • 申し込み: https://nobukz-official-website-ves6.vercel.app/beta-tester/agent-fettle
  • 製品の説明(図解あり): https://nobukz-official-website-ves6.vercel.app/products/agent-fettle

正式版の価格は 月 300 円 / 年 2,800 円 / 永久 6,000 円(いずれも一回払い、自動延長なし)の予定です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?