yomii

Security Scanner


yomii

SPAビルド成果物を静的解析し、本番環境に出てはいけない
セキュリティリスクを検出するCLIツール

Scroll

For the AI Era

誰でも作れる時代、
誰でも狙われる時代。

AIが生み出すコードの死角

  • 動くけど、何が埋まっているかわからない
  • 環境変数の展開ミスで本番キーがハードコード
  • ビルド設定ミスでソースマップが残存
  • サードパーティライブラリに潜むシークレット

作るのはAI。
守るのはyomii。

ビルド後の最終成果物をスキャン。
攻撃者より先に、穴を見つける。

バイブコーディング時代の、最後の砦。

WHY BUILD ARTIFACTS?

なぜビルド成果物を解析するのか

対象
ツール例
タイミング
ソースコード
ESLint, SonarQube
開発中・PR
git履歴
gitleaks, trufflehog
コミット時
依存関係
npm audit, Snyk
インストール時
ビルド成果物
yomii
デプロイ直前

ソース解析だけでは不十分な理由

01

ソースにはないがビルド時に埋め込まれる(環境変数のミス)

02

ソースマップが残る(ビルド設定ミス)

03

最終成果物の確認(本番デプロイ直前)

04

サードパーティのビルド済みコード(自分で書いてない部分)

本番に出る直前の、最後の砦。

あなたのSPAには
何が隠れていますか?

ビルドされたSPAには、意図せず機密情報が含まれていることがあります。
APIキー、ソースマップ、認証トークン...

!

ハードコードされたAPIキー

  • 不正利用
  • 高額請求
  • データ漏洩
!

残存するソースマップ

  • ソースコード流出
  • ビジネスロジック露出
!

安全でない認証実装

  • アカウント乗っ取り
  • 不正アクセス
!

汚染されたnpmパッケージ

  • 認証情報の外部送信
  • バックドア設置
  • サプライチェーン攻撃

DETECTION

yomiiが検出するセキュリティリスク

API Keys & Tokens

AWS, GCP, Stripe, OpenAI等、主要サービスのAPIキー・トークンパターンを検出

AWS Google Cloud Stripe OpenAI GitHub Slack

Source Maps

.mapファイル、sourceMappingURL参照の残存を検出。ソースコード漏洩を防止

Auth Flows

JWTのlocalStorage保存など、セキュリティベストプラクティスに反する認証実装を検出

Bundle Analysis

バンドルサイズ・初期ロード時間を推定。パフォーマンス最適化のインサイトを提供

HOW IT WORKS

シンプルなCLIコマンドで即座にスキャン

01

インストール

npm install -g spa-scan
02

スキャン実行

spa-scan ./dist
03

レポート出力

spa-scan ./dist -o ./result
Terminal
$ spa-scan ./dist

========================================
SPA Security Scan Report
========================================

🔴 CRITICAL: 2件
🟠 HIGH: 3件
🟡 MEDIUM: 1件
🟢 LOW: 0件

----------------------------------------

[トークン露出]
  🔴 CRITICAL: 2件
  🟠 HIGH: 3件

[ソースマップ]
  🟡 MEDIUM: 1件

----------------------------------------
※ 詳細表示: --verbose オプションを使用

Scanned: 42 ファイルをスキャンしました
Path: ./dist

Exit code: 1 (CRITICAL/HIGH検出)

CI/CD INTEGRATION

パイプラインに組み込んでセキュリティチェックを自動化

0

問題なし

MEDIUM以下の検出のみ。パイプライン続行

1

CRITICAL/HIGH検出

パイプライン自動停止。デプロイをブロック

Build
yomii scan
Deploy

PRICING

Free

無料

  • 30日間トライアル
  • MVP機能
  • 概要レポート表示
  • CLI基本機能
始める

CONTACT

yomiiの導入・ご相談はこちら