0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「知らない入口」は守れない。OSSのアタックサーフェス管理基盤 OASM を作っている話

0
Last updated at Posted at 2026-10-28

書いている私は OASM の開発メンバーです。宣伝っぽくならないよう、「なぜこういうツールが要ると考えているのか」から書きます。

ちょうど一年前の秋のこと

2025年の秋、店頭から特定のビールが減ったり、いつも使っている通販サイトに「現在ご注文を受け付けておりません」と出ていたりしたのを覚えている方も多いと思います。どちらも原因はランサムウェアでした。12

先に書いておくと、被害に遭った企業を責めたいわけではありません。どの会社もそれなりに対策はしていたはずですし、現場の方々が何週間も復旧に追われていた様子は報道からも伝わってきました。攻撃する側は穴をひとつ見つければいい。守る側は全部を守らないといけない。この非対称さは、どこの組織でも変わりません。

それでも、あのニュースで「サイバー攻撃って、自分の生活にも普通に届くんだな」と感じた人は少なくなかったと思います。私もそうでした。

数字で見ると、まだ落ち着いていない

警察庁によると、2025年に報告されたランサムウェア被害は226件。2026年は上半期だけで123件と、半期としては統計を取り始めてから最多です。3

中身を見ていくと、気になる点が二つあります。

ひとつは、被害の多くが中小企業だということ。2026年上半期の123件のうち、79件が中小企業でした。4 「うちは小さいから狙われない」という感覚は、残念ながらもう当てはまらないようです。

もうひとつは侵入経路です。感染経路がわかったケースを見ると、VPN 機器とリモートデスクトップが毎回上位に並びます。2025年上半期は、この二つで判明分の8割以上を占めていました。5

要するに、攻撃者はいきなり高度な手口を使うより、まず**インターネットに向いた「入口」**を探しているわけです。パッチの当たっていない VPN 装置、3389番が開きっぱなしのサーバー、誰も覚えていない検証環境。どれも外から見えるものばかりです。

「このサブドメイン、誰が作ったんですか?」

社内でこんな会話をしたことはないでしょうか。

「この campaign2022.example.co.jp、まだ生きてますけど誰の管理ですか?」
「たぶん3年前のキャンペーンの…担当の人、もう異動してますね」

クラウドなら数分でサーバーが立ちますし、SaaS や CDN は部署ごとに契約できる。検証用の環境がいつの間にか本番ドメインのサブドメインとして公開されている、なんてこともよくあります。便利になった分、「自分たちがインターネットに何をさらしているのか」を正確に把握するのは、本当に難しくなりました。

Excel の資産台帳は、作った日から古くなっていきます。

そして攻撃者は、その台帳を見てくれません。外から DNS を引き、ポートを叩き、レスポンスヘッダからソフトウェアを推測する。見ているのは実際にインターネットから見えている姿です。だったら守る側も、同じ視点で自分たちを定期的に見ておいたほうがいい。

この「外から見た自分たちを、継続的に棚卸しする」取り組みを Attack Surface Management(ASM)と呼びます。

OASM とは

OASM(Open Attack Surface Management)は、私たちが開発している ASM プラットフォームです。コアは OSS(GPL v3)として公開しています。

やっていることは、大きく分けて次の三つです。

  1. 見つける: ドメイン、IP、ポート、サービス、技術スタック、URL、TLS 証明書を洗い出す
  2. 評価する: 見つかった資産にスキャナーをかけ、結果を「追跡できる脆弱性」の形にそろえる
  3. 回し続ける: 資産をグループにまとめ、定期スキャンし、必要な人にだけ通知する

ここからは画面を見ながら紹介していきます。

ダッシュボード

OASM ダッシュボード

ターゲット数・資産数・サービス数のほか、セキュリティスコア、深刻度別の脆弱性、資産の所在地(地図)、TLS 証明書の期限などをまとめて見られます。証明書の期限切れは地味ですが、気づいたときにはサービスが止まっている類のトラブルなので、目に入る場所に置いています。

資産インベントリ

資産一覧

ターゲット(ドメインなど)を登録すると、サブドメイン探索 → ポートスキャン → HTTP プローブ → スクリーンショット、という流れで資産が埋まっていきます。各サービスのスクリーンショットが並ぶので、「この IP、何が動いてたっけ」がひと目でわかります。

技術スタック一覧

個人的に一番使っているのがこの技術スタックの画面です。検出されたフレームワークやミドルウェアごとに、それを使っているサービスの数が出ます。新しい脆弱性情報が出たときに「うちにこの製品、どこかで動いてないか?」をすぐ確認できるのが便利です。

グループとスケジュール

アセットグループ

関連する資産をグループにまとめ、使うスキャンツールと実行スケジュール(cron)を設定できます。「本番系は毎晩、キャンペーンサイト群は週1」のような運用です。もちろん手動で今すぐ実行することもできます。

ジョブレジストリ

各スキャンがどこまで進んだか、どれだけ時間がかかったかも履歴として残ります。

脆弱性の管理

脆弱性一覧

スキャン結果は深刻度・CVE・対象資産・初回/最終検出日・検出したスキャナー・ステータスつきの一覧になります。スキャナーごとにバラバラな出力を、同じ形で追えるのがポイントです。

脆弱性詳細

詳細画面では CVSS や CVE/CWE の参照に加えて、AI による分析レポートも出せます。

スキャナーはコンテナで差し替えられる

OASM 自体はスキャナーを内蔵していません。Nmap、RustScan、Nuclei、OWASP ZAP、Nikto、Trivy、Gitleaks などのツールを、それぞれ独立した Docker イメージ(コネクタ)として動かしています。

ワーカーは gRPC で Core API に参加してジョブを取りに行き、スキャンごとにコンテナを立ち上げて結果を返します。ツールの追加や更新に OASM 本体のリリースは要りません。ワーカーは複数台に分散させることも、1台のホストで複数動かすこともできます。

ツール一覧

AI Studio

AI Studio

ワークスペース内のデータに対して、自然言語で質問したり調査を任せたりできるエージェントです。たとえば「外部に開いているポートを洗い出して、リスクと対処をまとめて」と頼むと、計画を立て、実データを引き、レポートとして返してきます。

AI にコマンドを実行させるのは怖い、という感覚はもっともだと思います。なので、

  • コマンドは API サーバーではなくワーカー上で実行し、agent_sandbox を有効にしたワーカーではセッションごとに隔離されたコンテナに閉じ込める
  • 承認レベルを「毎回確認(Manual)」「計画ごとに確認(Plan)」「自動(Auto)」から選べる

という作りにしています。最初は Manual で、何をしようとしているのかを眺めるところから始めるのがおすすめです。モデルは OpenAI、Anthropic、Gemini、DeepSeek、OpenRouter などから選べ、独自のエンドポイントも指定できます。

通知・連携

  • 通知: Slack / Discord / Telegram / Webhook(イベント種別と深刻度で絞り込み可能)
  • クラウド資産の同期: AWS / Cloudflare / Vercel
  • ソースコード・チケット: GitHub / GitLab のリポジトリ取り込み、新しい脆弱性ごとに Issue 作成
  • MCP サーバー: API キーで、手元の MCP 対応 AI クライアントから OASM のデータを扱える

「新しい Critical が出たときだけ Slack に流す」のように、本当に動くべきときだけ通知が来るようにしておくと、アラート疲れを避けやすいです。

コードを公開している理由

ここは少し強めに言いたいところです。

資産の一覧と脆弱性の一覧を合わせたものは、攻撃者にとってほぼ完璧な地図です。

どこに何があって、どこが弱いのか。そういうデータを扱う道具だからこそ、中で何をしているのかを誰でも確かめられるようにしておきたい。OASM のコードを公開しているのはそのためです。

使い方は組織に合わせて選べます。データの保管場所を社内規程で決めている会社なら、OSS 版を自分たちのインフラでセルフホストできます。運用の手間をかけたくないチーム向けには、マネージド版(Enterprise)を準備しています。詳しくは oasm.io をご覧ください。

試してみる

Docker と Task があれば、ローカルで一式立ち上がります。

git clone https://github.com/oasm-platform/open-asm.git
cd open-asm

cp core-api/example.env core-api/.env
cp console/example.env console/.env
cp worker/.example.env worker/.env

task sync-connectors
task docker-compose

起動したら http://localhost:3000 を開いてください。本番環境向けの構成は oasm-docker とドキュメントにまとめています。

スキャンは必ず、自分たちが管理している資産、または明示的に許可を得た資産に対してだけ行ってください。許可のないスキャンは相手の迷惑になるだけでなく、法的な問題になることもあります。

おわりに

正直に言うと、まだ荒削りなところはありますし、UI も今のところ英語のみです。それでも、「自分たちの入口を、攻撃者より先に知っておく」ための道具として、少しずつ形になってきました。

もしセキュリティ担当がひとりしかいない、あるいは兼任で回している、という組織の方がいたら、ぜひ一度触ってみてほしいです。そういう現場でこそ、手作業の棚卸しを減らせる余地が大きいと思っています。

使ってみた感想や「ここが使いにくい」という声は、GitHub の Issue や Discord で気軽に聞かせてください。役に立ちそうだと思ったら、リポジトリに ⭐ をもらえると開発の励みになります。

  1. アサヒグループホールディングスは2025年9月末にランサムウェア攻撃を受け、受注・出荷システムが停止しました。 ↩

  2. アスクルは2025年10月にランサムウェア攻撃を受け、同社の物流を利用していた無印良品やロフトなどのネット通販にも影響が出ました。The Record ↩

  3. 警察庁「令和7年におけるサイバー空間をめぐる脅威の情勢等について」「令和8年上半期におけるサイバー空間をめぐる脅威の情勢等について」 https://www.npa.go.jp/publications/statistics/cybersecurity/index.html ↩

  4. 内訳は中小企業79件、大企業31件、団体等13件。ScanNetSecurity ↩

  5. 警察庁「令和7年上半期におけるサイバー空間をめぐる脅威の情勢等について」より。最新の令和8年上半期の資料でも、VPN 機器が最多の感染経路とされています。 ↩

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?