💡 【検証環境・個人研究(PoC)に関する注記】
本記事は、筆者個人の自宅検証環境(ホームラボ/仮想環境)において、公開情報およびOSS(オープンソースソフトウェア)を用いて独自に構築・検証した個人研究(PoC)の記録です。特定の企業・団体の実環境や業務上の非公開情報とは一切関係ありません。
はじめに:なぜ情シスの「Excel台帳」は半年で腐るのか?
会社の情報システム部門やインフラ担当者にとって、「社内IT資産の管理」 は永遠の頭痛の種です。
- 「誰がどのPCを使っているか」
- 「いま社内LANに何台の端末がぶら下がっているか」
- 「OSのバージョンやCPU、メモリはどうなっているか」
多くの企業では、これをExcelスプレッドシートで管理しようとします。
しかし、断言します。手動入力のExcel台帳は、100%の確率で半年以内に形骸化して腐ります。
- 社員が増えるたびに手動更新を忘れる
- 気づいたら「野良PC」「私用スマホ」「謎のRaspberry Pi」が勝手にLANに繋がっている(シャドーIT)
- 「棚卸し月間」になると情シスが全フロアを練り歩き、PCの裏のテプラとシリアル番号を目視確認する不毛な人海戦術
かといって、商用の高価な資産管理ソフトを導入しようとすると:
- 「1台あたり月額数百円×全社員分」という重いライセンス費用
- 「そもそもプリンタ、ルーター、Linux、Mac、IoT機器にはエージェントが入らない」 という致命的な壁
にぶち当たります。
この不毛な消耗戦を終わらせるため、「各端末へのソフトウェアインストール(エージェント)を一切行わず、ネットワーク側から自動検知して、オープンソース資産台帳(Snipe-IT)へ全自動登録する仕組み」 を構築しました。
設計思想:エージェントなしで「どこまで深く知るか」の多段アプローチ
相手にエージェントを入れさせない以上、ネットワークプロトコルの特性をフル活用した**「多段階探索(マルチレイヤー・フィンガープリント)」** を行います。
現場で役立つ実装のキモ(コード解説)
1. スマホの「プライベートWi-Fiアドレス(ランダムMAC)」を見破る
最近のiPhoneやAndroid、Windows 11は、プライバシー保護のためにWi-Fi接続時に「ランダムMACアドレス」を使います。
OUI(ベンダーコード)が一致しないため、通常の台帳ツールでは「製造元:不明」としてゴミデータが溜まります。
IEEE規格上、MACアドレスの1バイト目の下位2ビット目が『1』であればローカル管理(ランダム生成)アドレス です。これを判定して「私用端末 / スマホの可能性」をフラグ立てします。
2. mDNS(Zeroconf / Bonjour)でApple端末・プリンタの機種名を一撃特定
Apple製品(Mac, iPhone, iPad)やネットワーク複合機は、LAN内に自分から「私は○○のiPhoneです」「EPSON PX-M791Fです」とmDNSで名乗り出ています。
Pythonの zeroconf ライブラリを使い、このパケットをパッシブに拾うだけで、一切ログインすることなく正確なモデル名が取れます。
3. WinRM経由でWindowsの「確定スペック」を取得
Windows端末に対しては、WinRM(PowerShell)でWMI/CIMを叩くことで、エージェントなしで以下の超詳細スペックを回収します。
- OSキャプション & ビルド番号(例:
Microsoft Windows 11 Pro 22631➔ 確信度100%) - CPU型番、物理メモリ容量、ディスク容量
- インストールされている全アプリケーション一覧(SAM台帳)
世界標準のOSS資産管理「Snipe-IT」へのREST API自動登録
端末の特定が完了したら、世界中で広く使われているオープンソースのIT資産管理システム 「Snipe-IT」 のREST APIへデータを自動同期します。
アーキテクチャ詳細、処理フロー図、中核ロジックのコード抜粋(PoC)、およびパラメータ解説・トラブルシューティング手順は、GitHubリポジトリ(詳細技術リファレンス)にて管理・随時アップデートしています。
設計の全体像や要点スニペットの確認は以下のリンクをご参照ください。
👉 GitHubで詳細技術リファレンス・処理フローを見る (QIITA_ARTICLE_DETAIL_3.md)
実際の効果:人海戦術ゼロ・シャドーIT即時検知
このエージェントレス自動同期を導入した結果:
-
棚卸し工数が「ゼロ」に:
深夜や休日にエクセルと格闘する必要がなくなりました。台帳は常に直近スキャン(1時間おき等)の状態で100%正確です。 -
シャドーITの即時検知:
社員が勝手に持ち込んだ私用タブレットや未許可ルーターがLANに繋がった瞬間、「新規デバイス検知(ランダムMAC)」として台帳に上がり、Slackに通知が飛ぶようになりました。 -
脆弱性診断(第1弾)との相乗効果:
台帳に正確なOSビルドやIPが揃っているため、第1弾のCVEプローブの精度が極限まで跳ね上がりました。
おわりに:台帳は「管理する」のではなく「勝手に揃う」もの
IT資産管理の本質は、「台帳を作ること」ではなく**「現状を常に正確に把握して、セキュリティや更新計画(EoL)に活かすこと」** です。
そのために入力という人間の労力を使っていては本末転倒です。
- 各PCにエージェントを押し付けない
- ネットワークの標準プロトコル(ARP/mDNS/WinRM/SSH)だけで泥臭く集める
- 優れたOSS(Snipe-IT)を背面に構えてAPIで自動化する
この組み合わせこそが、令和の中小企業や情シスが取るべき最もコストパフォーマンスの高い戦い方だと確信しています。
本システムのエージェントレス探索コード(Base版)は、GitHubにオープンソースとして公開しています。
GitHub: ojisan-arsenal
「うちの社内ネットワークでも端末を自動棚卸ししたい」「Snipe-ITの構築やAPI連携で困っている」という方がいらっしゃいましたら、ぜひコメントやDMでお気軽に相談してください!
📚 さらに詳しい本番実装・トラブルシューティングについて
本記事は現場運用のエッセンスを凝縮したサマリー版です。
本番導入に向けた 「深層メカニズム解説」「完全パラメータ表」「現場アンチパターン」「トラブルシューティング対応表」「運用チェックリスト」 は、以下のGitHub完全技術リファレンスにて全網羅して公開しています。
⭐ 全14層・200パターンの自立型インフラ&オンプレAIリファレンスを順次公開予定です。役に立った・面白かったと感じていただけましたら、ぜひリポジトリへの Star (★) をお願いいたします!
👉 GitHub リポジトリ: ojisan-arsenal