― アプリを“踏み台”にさせないための攻撃パターンと最新防御アプローチ ―
今回はアプリケーションのセキュリティについて考えたい。
ビジネスアジリティ向上のためにアプリケーション内製化が浸透しているが、アプリケーションのセキュリティ対策を検討するにあたり、どのようなセキュリティ侵害があり、何が必要になるのかを考えてみたい。IPA「情報セキュリティ10大脅威2025組織向けの脅威の順位」 によると、「サプライチェーンや委託先を狙った攻撃」が「ランサム攻撃」に次いで2位にランクインしており、国内でも関心が高まっている。アプリケーションレイヤーへの攻撃は、これまでのセキュリティシステム (ネットワーク, 境界, データ, エンドポイント等) では防ぐことができない。また、開発者の立場に立つと、リリース高速化を重要視するあまり、セキュリティ面は後回しになりがちになるというのが実態である。
ここではCyber Kill Chainの文脈に沿って、攻撃手法と対策について検討したい。
パターン1:ユーザー入力を利用したインジェクション攻撃
攻撃者がWebやアプリケーションに不正な文字列やスクリプトなどの入力を行い、不正実行を行う。
例)SQL Injection: 認証回避、データの窃取・改ざん・削除
クロスサイトスクリプティング: Cookieやセッション情報の盗み取り、偽ページ表示
コマンドインジェクション: システム制御、情報窃取、マルウェア設置 「脆弱性そのものを潰す」ことで攻撃を阻止することが必要となる。
パターン2:ファイルアップロード機能からの感染
アプリケーションに脆弱なアップロード機能があると、アプリ経由でシステム内部に悪性ファイル侵入を許してしまう。
コードの脆弱なアップロード実装そのものを発見・修正することで、“アプリ側の実装の穴” を潰し悪性ファイルの侵入経路を閉じる。
パターン3:依存ライブラリやOSSコンポーネントからの感染
アプリケーション開発効率を高め品質向上のために、OSSや外部ライブラリなどのコンポーネントを利用することは一般的ではあるが、これらについてもセキュリティの意識を向ける必要がある。脆弱な依存ライブラリを突いてエクスプロイトコードをアプリに取り込ませる。脆弱性は公開されると、瞬く間に攻撃コードが出回り、大量攻撃へとつながってしまうため、迅速な対応が必要だ。アプリの安全性は、利用するOSSやライブラリの安全性に依存するとも言える。 例えば、Log4j, OpenSSL, Apache Strutsなどに弱性が発見され、深刻な被害を引き起こしたことは記憶に新しい。
パターン4:CI/CD環境を悪用した不正コード混入攻撃
パターン4は外部コンポーネントではなく、企業内部の開発者やCI/CDパイプラインそのものが侵害され、ソースコードやビルドプロセスが汚染される攻撃である。この攻撃は、最終的に正規アップデートの形で攻撃コードが企業内部や顧客環境に配布されるという点に特異性がある。数年前に大きな影響を与えたSolarWinds事件がまさにこのパターンだ。
開発環境自体はこれまでのブログに記載した手法でセキュリティを担保する必要があるが、ここで重要になるのは “混入した不正コード” をリリース前に検出できるアプリケーションのセキュリティ対策を開発プロセス全体に組み込むことだ。
Cyber Kill ChainのDelivery段階において、アプリケーションが攻撃の踏み台にならないようにするためには、アプリケーションに対するセキュリティ対策が欠かせないことは繰り返し述べてきたとおりだ。
ここまで紹介した攻撃手法への対策とその要素技術、OpenTextアプリケーションセキュリティソリューション(Fortify)でどのように対応できるかも併せて掘り下げてみたい。
SAST (Static Application Security Testing)
ソースコードを静的に解析し、実行前に脆弱性を発見する技術。
OpenText SASTは、SQL Injection, コマンドインジェクション, パラメータ未検証などの欠陥を開発段階で自動的に検出する。早期対応により修正コストを大幅に低減できる。また、CI/CD統合も可能である。
主な適用領域:
Webアプリ/業務システム
内部システム・SaaS開発
開発初期のコード品質向上
DAST (Dynamic Application Security Testing)
実行中のアプリケーションに疑似攻撃を行い、外部視点で脆弱性を見つける技術。
OpenText DASTは、実際に攻撃者が使うテクニックでWebアプリやAPIをテストし、XSS, 認証不備, API脆弱性などを検出する。ステージングや本番に近い環境で動きの異常を捉えることが可能だ。
主な適用領域:
Webサービス/API
ステージング〜本番環境のセキュリティ検証
SCA (Software Composition Analysis)
OSSライブラリや依存関係の脆弱性・ライセンス問題を自動で検出する技術。
OpenText Core SCAは、Log4jのようにライブラリ内に潜む重大リスクを早期に可視化する。トランジティブ依存(間接依存)まで解析するため、サプライチェーン経由の侵害にも効果的だ。
主な適用領域:
OSS を利用するすべてのアプリ
サプライチェーン攻撃対策
MAST (Mobile Application Security Testing)
モバイルアプリ(iOS/Android)のバイナリ解析と動的検査を行う技術。
OpenText MASTは、モバイルアプリ特有の脆弱性(暗号化の欠陥, 証明書ピニング回避, ローカル保存データの保護不備など)を検出する。クライアント・通信・バックエンドAPIの三層をまとめて評価できることが強みだ。
主な適用領域:
スマホアプリ全般
金融/EC/業務用アプリ
SBOM管理 (Software Bill of Materials: ソフトウェア部品表)
ソフトウェアに含まれるすべての “部品” をリスト化し、脆弱性やライセンスリスクを管理する機能。
OpenTextのSBOM管理は、CycloneDX/SPDX形式に対応し、どのアプリにどのライブラリが含まれているかを可視化する。ゼロデイ発生時に「どのアプリが影響を受けるか」を即座に把握でき、NISTやEU規制にも対応できる。
主な適用領域:
OSS・外部ライブラリを利用するすべてのアプリ
規制・監査対応(NIST, EU CRA)
さらにAI/LLMによるSAST機能強化を支援するOpenText Application Security Aviatorをリリースした。
脆弱性に関する解説を生成, 誤検知削減, リスク優先付け, 自動修復まで対応し、従来は多大なコストがかかっていたアプリケーションセキュリティ運用を大幅に効率化できる。
これにより、Deliveryフェーズにおけるエクスプロイト混入や脆弱性悪用を未然に防ぎ、「安全なアプリをリリースする」体制を企業規模で実現できる。
ソフトウェアの開発フェーズが進むほど、手戻り時の修正コストは指数関数的に高くなる。強靭な環境を実現するとともにコストメリットについても考えて欲しい。
また、OpenText(Fortify)はアプリケーションセキュリティを20年以上提供しているまさに老舗であり、フルスタックを提供している稀有なベンダーである。オンプレ・SaaSの両方に対応し、金融・公共・製造など大規模組織での採用実績が多く、日本語ローカライズ・国内サポートが強いのも魅力だ。サプライチェーンに乗って取引先や関連企業へのサイバー攻撃に加担する前に、アプリケーションセキュリティについて考えて欲しい。
次回はCyber Kill Chainの5.インストール(Installation)以降について解説していきたい。
———————————————————————————
【参考情報】
ランサムウェア対策 手順別ガイド①― Cyber Kill Chainで読み解く攻撃プロセスと防御策(アサヒGHD事例より)―