1つの視点で診れば、必ず抜けが出る。sec-audit は 6 つの異なる視点でソースコードを多角的に監査し、単独の視点では見えない脆弱性まで拾い切ります。見つけた脆弱性には 再現コード(PoC) と 回帰テスト を添付し、どこまで診たかをレポートで明示します。監査は当社が実施し、御社と協働で、当社の手法でベストを尽くして洗い出します。
脆弱性診断を受けても、現場にはこんな不安が残りがちです。
レポートに載るのは「見つかったもの」だけ。見ていない箇所・残っているリスクが分からず、安心の根拠にならない。
自動スキャナも1回のAI監査も、得意な観点しか拾えない。認可漏れ・業務ロジック・設定の穴は視点を変えないと見えない。
「XSSの可能性あり」と言われても、再現手順もPoCも無ければ、開発チームは着手も検証もできない。
重大度の付け方に一貫性がなく、どれから直すべきかが判断できない。経営層への説明もしづらい。
修正しても回帰テストが無ければ、次のリリースで同じ穴が復活する。恒久対策にならない。
担当者の経験値で結果が変わる。同じコードでも、いつ・誰が診るかで見つかるものが違う。
脆弱性は種類ごとに「見えやすい角度」が違います。データフローを追う視点でしか見えない穴、業務フローを辿らないと気づけない認可漏れ、設定・依存関係を洗わないと出てこないリスク。1つの視点に固定すると、その視点の死角がまるごと抜けます。
sec-audit はコードベースを、意図的に視点の異なる 6 つのレンズで独立に監査します。各レンズの発見を突き合わせて重複を統合し、1つの優越版リストにまとめます。
入力(信頼できない値)から危険な処理まで、データの流れを追跡。
信頼境界ごとに、なりすまし・改ざん・情報漏洩などの脅威を当てる。
OWASP ASVS の検証要件を章ごとに判定し、網羅チェックの台帳を作る。
SQL実行・コマンド実行・ファイル操作・外部通信など、危険な処理を種類別に総ざらい。
ログイン・権限・課金など、業務の流れに沿って認可漏れやなりすましを検出。
OWASP Top 10 全般を横断で確認するベースラインの視点。
多くの診断は「見つかったもの」しか示しません。sec-audit は、国際基準の主要項目をどこまで確認できたか、まだ確認しきれていない領域はどこか、までをレポートに明記します。安心の根拠を、数と証拠で示すためです。
OWASP ASVS の検証要件を一つずつ「合格/不合格/該当なし」で判定。何を見て、どこが健全だったかが台帳で残ります。
静的解析では確認しきれない箇所(実行時設定・実際の値など)を「確認できていない領域」として正直に明示し、次の一手(動的検証)を提案します。
修正後に再診断すれば、網羅度と残存リスクの改善を数値で比較できます。継続的な品質ゲートとして使えます。
以下は、ある Web アプリを実際に診断した結果の抜粋です。対象・固有情報はすべて匿名化しています
ソースコードを 6 視点で多角監査。単一視点の監査では 10 件前後の見込みに対し、30 件の脆弱性を発見しました。
| 重大度 | 件数 | 代表的な問題 |
|---|---|---|
| CRITICAL | 1 | 認証が実質無効化されていた保護エンドポイント群 |
| HIGH | 13 | SSRF、XSS(×3)、機密情報の平文保存、過剰なCORS、未認証ファイルアクセス(×3)、依存関係の既知脆弱性、サービス不能(×2)ほか |
| MEDIUM | 12 | パストラバーサル、アカウントロックアウト未実装、入力の未検証、ログ改ざん、アップロードサイズ無制限ほか |
| LOW | 4 | タイミング差による情報推測、エラー情報の過剰開示、外部リソースの完全性未検証ほか |
30 件すべてに同じ粒度のレポートを付けます。以下はその代表 5 件(すべて匿名化済み)。各件に 該当コード・修正案・再現コード(PoC)・回帰テストが付きます。
認証装飾(デコレータ)の記述順が誤っており、5 つの「認証必須」エンドポイントに認証が実際には一切適用されていない状態でした。未認証の攻撃者が、本来保護されているはずのファイルのアップロード・取得を自由に実行できます。
影響: 機密ファイルの窃取・任意ファイル投入(保存型 XSS の起点にもなり得る)。 修正: 該当 5 箇所の順序を入れ替えるだけ(5 行で即時対応可能)。
# Before(脆弱): 認証装飾が route より上 → 実際には未適用 @login_required @app.route('/files/<name>') def download(name): ... # After(修正): 順序を入れ替えるだけ @app.route('/files/<name>') @login_required def download(name): ...
URL 取り込み機能が、受け取った URL をスキーム検証・ホスト制限・タイムアウトなしで取得します。認証済みユーザーが内部サービスやクラウドのメタデータ(IAM 認証情報)へ到達でき、内部 API のスキャンや認証情報の窃取が可能です。
影響: 内部 API・クラウド認証情報の漏洩。 修正: スキーム/内部 IP を弾く検証を追加し、リダイレクト禁止・タイムアウトを設定。
def is_safe_fetch_url(url): p = urlparse(url) if p.scheme not in {'http','https'}: return False ip = ipaddress.ip_address(socket.gethostbyname(p.hostname)) if ip.is_private or ip.is_loopback or ip.is_link_local: return False # 内部/クラウドメタデータを遮断 return True resp = requests.get(url, allow_redirects=False, timeout=10)
Markdown → HTML 描画のサニタイズが不完全で、閲覧者のブラウザで任意コードが実行され得ます。完全一致の <script> しか除去しないため <img onerror=…> がすり抜けます。バンドル済みの DOMPurify が使われていませんでした。
影響: セッション Cookie の窃取・なりすまし。 修正: 同梱済みの DOMPurify で描画前にサニタイズ。
// 脆弱: 完全一致の <script> だけ除去 → onerror 属性はすり抜ける html = html.replace(/<script>/gi, '').replace(/<\/script>/gi, ''); // 修正: 同梱済みの DOMPurify を使用 return DOMPurify.sanitize(html, { FORBID_ATTR: ['onerror','onload','onclick'], FORBID_TAGS: ['script','iframe','object'] });
設定ファイルにセッション鍵・外部 API キー・メール認証情報・利用者パスワードが平文で保存されていました。このファイルがリポジトリやバックアップに含まれる、または設定ミスで公開されるだけで、全認証情報が一括漏洩します。
影響: セッション偽造・外部サービスの乗っ取り・課金の悪用。 修正: 環境変数/シークレットマネージャへ移行し、設定ファイルを除外管理。
# config.yaml — 平文で保存されていた機密(値は伏せています) secret_key: "***" # セッション偽造が可能 ai_api_key_a: "***" # 外部AIサービスの課金消費 ai_api_key_b: "***" mail_app_password: "***" # メール送受信の乗っ取り users.*.password: "***" # 利用者認証情報 # 修正: 環境変数へ移行し、設定ファイルはバージョン管理から除外 app.secret_key = os.environ["APP_SECRET_KEY"]
重い一括処理エンドポイントに認証もレート制限もなく、未認証の攻撃者が繰り返し呼ぶだけで処理スレッドが無制限に起動し、CPU・メモリ・ファイルハンドルが枯渇してサービスが停止します。
影響: サービス全停止(可用性の喪失)。 修正: 認証・レート制限・多重起動ガードを追加。
# 脆弱: 認証なし・レート制限なし・スレッド上限なし @app.route('/bulk-extract') # ← 認証・レート制限なし def bulk_extract(): threading.Thread(target=extract_all).start() # 無制限起動 # 修正: 認証+レート制限+多重起動ガード @app.route('/bulk-extract') @login_required @limiter.limit("2 per minute") def bulk_extract(): ...
技術レポートに加え、ビジネスリスク(データ漏洩・サービス不能・認証侵害)と「今週やるべき対応」を非技術者にも伝わる言葉でまとめた 1 ページを添付します。
「見つけて終わり」にしません。開発チームがそのまま直せて、再発を防げるところまでを一式でお渡しします。
重大度・CVSS スコア・修正優先度つきの一覧。優越版の統合リスト。
1 脆弱性 = 1 ファイル。CWE 分類・再現手順・コード証跡・修正案(Before/After)を収録。
実際に脆弱性を発火させる再現スクリプト。攻撃が成立することを具体的に示す。
脆弱コードで失敗し、修正後に通るテスト。CI に組み込めば再発を機械的に防げる。
国際基準のどこまでを確認したか、残る領域はどこか。安心の根拠を示す。
ビジネスリスクと対応ロードマップを 1 ページに。意思決定と説明に使える。
単独のスキャナや 1 回のレビューでは埋められない「網羅の可視化」と「動ける証拠」を、両立させています。
| 観点 | 手動ペンテスト | 自動スキャナ (SAST/DAST) | 単発のAI監査 | sec-audit |
|---|---|---|---|---|
| 複数視点での多角監査 | 担当者依存 | ✕ | ✕ | ✔ |
| どこまで診たかの可視化 | △ | ✕ | ✕ | ✔ |
| 再現コード(PoC)添付 | ✔ | ✕ | まれ | ✔ |
| 回帰テスト添付 | ✕ | ✕ | ✕ | ✔ |
| 国際標準準拠(ASVS/CWE/CVSS) | 担当者依存 | △ | △ | ✔ |
| 結果の再現性・一貫性 | 低 | 高 | 中 | 高 |
| コスト・スピード | 高コスト | 速い | 速い | 速い |
「独自基準だから安心」ではなく、世界で使われている標準に沿って診断・分類・採点します。だから結果を第三者にも説明できます。
Web アプリのセキュリティ検証要件のデファクト標準。何を満たすべきかの合否基準として使用。
脆弱性の種類を標準タクソノミー(MITRE CWE)で分類。共通の語彙で整理。
再現可能・説明可能な重大度スコアリング。優先順位づけの根拠を明確化。
本番公開前に、網羅の証跡つきで脆弱性を洗い出す。安心してローンチできる。
買収・出資先のコード資産のセキュリティ健全性を、標準準拠のレポートで評価。
四半期ごとに再診断し、網羅度と残存リスクの改善を数値で追う。
回帰テストを CI に組み込み、同じ脆弱性の再発を機械的にブロック。
受け入れ前に第三者視点でコードを多角監査し、指摘を具体的な証拠つきで返す。
事故後に類似の穴が他に無いかを、視点を変えて総ざらいする。
お預かりしたコードを案件ごとに隔離した環境で当社が解析します(NDA・作業後削除)。診断は原則として静的解析(コードを読む)で完結し、外部への送信は行いません。
静的解析では確認しきれない箇所(実行時設定・実際の値など)は「確認できていない領域」として明示。過大にも過小にも見せません。残存リスクゼロを保証するものではなく、当社の多角監査で網羅性を高め、その到達度を数値でお示しします。
裏取りが取れていない指摘には「確度:低」と明記。推測を確定のように書きません。
標準に沿った手順で診断するため、いつ実施しても一貫した観点で網羅します。
設計思想・評価手法・実証データを含み、第三者が方法論を検証できる形で記述しています。sec-audit の多角監査は、この研究成果に基づいています。
VSAT: Measurable-Completeness Multi-Lens LLM Auditing for Web Application Vulnerabilities
Hirashima, Daishiro(Toyo System Co., Ltd.) ・ Preprint ・ 2026 ・ DOI: 10.5281/zenodo.21402202
複数の異なる視点(レンズ)で同一コードベースを監査し、その発見の重なり構造から「どこまで見つけ切れたか」を統計的に測る手法を定式化しました。ベンチマーク 3 アプリでの評価で、カテゴリ再現率 94.7〜100%、単一パス監査に対し 2.4〜3.4 倍の脆弱性発見を達成しています。
主要な Web アプリのスタック(各種サーバーサイド言語・フレームワーク、フロントエンド)に対応します。対象の構成に応じて、どの視点を重点的に当てるかを調整します。詳細はお問い合わせください。
ペンテストは主に「稼働中のサービスを外から攻撃して試す」手法です。sec-audit は「ソースコードを複数視点で読み解く」手法で、網羅の可視化と、修正に直結する再現コード・回帰テストの提供が強みです。両者は補完関係にあり、重大な指摘の修正後に動的なペンテストで裏取りする流れを推奨しています。
基本はソースコードの静的解析です。稼働中の URL をご提供いただける場合は、一部の再現コードを実環境で発火させる検証も検討中です。
いいえ。網羅性は「まだ確認しきれていない領域がどれだけ残るか」を正直に示す指標で、攻撃面が多様なアプリほど自然に余白が大きくなります。危険度そのものではなく、「どこまで見たか/次に何を見るべきか」を判断するための地図とお考えください。
はい。コードは案件ごとに隔離した環境で扱い、成果物の取り扱いも含めて機密保持を前提に運用します。具体的な条件はお問い合わせ時にご説明します。
小規模なアプリから大規模なコードベースまで対応します。規模に応じて重点スコープを設定し、限られた時間で最大の網羅を得られるよう調整します。
取り組みの範囲・期間に応じたお見積もり(準委任)です。対象コードの規模やスコープをうかがって算出します。まずはお問い合わせください。
準委任(専門サービスの提供)です。当社の知見と AI を用い、善管注意義務をもって御社に伴走し、ヒアリングを重ねながらご一緒に診断を進めます。特定の成果物の完成を保証する請負契約ではなく、取り組みの過程で生まれるレポート等を随時お渡しします。
成果物を一方的に納めるのではなく、御社に教えていただきながら、ご一緒に診断を進めます。当社は善管注意義務のもとで専門サービスを提供します(請負ではありません)。
まずは無料でご相談ください。対象・目的をうかがい、最適な診断範囲をご提案します。
お問い合わせ・無料相談