yamory Blog

Web アプリケーションのセキュリティとは

近年 Web アプリケーション(Web アプリ)によるサービスがフィンテックやインシュアテック等様々な分野で広がりを見せています。

一方で、サービスの広がりに伴い個人情報等重要な情報が Web アプリ内に蓄積されていき、Web アプリの脆弱性を狙ったサイバー攻撃も増加の傾向にあり、中には大量の個人情報が流出してしまう等の大きな被害が出た例も存在します。

Web アプリを開発/運用する企業はこういった攻撃からお客様の情報を守る必要がありますが、多様化する攻撃に対し、一体何をすればよいのでしょうか。

本日は Web アプリの脆弱性を狙った攻撃の実態とその対策についてご紹介します。

Web アプリケーションとは

Web アプリケーションとは Web ブラウザ上で機能しているアプリケーションのことを指します。

例えば皆さんが良く使うメールやインターネットバンキング、オンラインストレージ等も Web アプリと呼ばれるものです。

AWS、Azure をはじめとしたクラウドの普及によりサーバやインフラ構築のコストが大幅に減ったこと、便利なオープンソースソフトウェア(OSS)の利用拡大などを背景に、近年多くのサービスが Web アプリとして展開されてきています。

特に OSS の近年の普及は Web アプリケーションの開発に大きく貢献しており、アプリの大半がオープンソースで作られていることもあります。

米 Synopsys 傘下の Black Duck Software は、企業や組織における OSS の利用状況について調査した結果を「2018 Open Source Security and Risk Analysis」として発表しました。

その中には検査したアプリケーションの 96% にオープンソースのコンポーネントが存在し、アプリケーションあたり平均して 257 個のコンポーネントが含まれているという報告が含まれておりました。

IT のシステムのレイヤー構造と OSS の関係

Web アプリケーションに潜む脆弱性

そんな Web アプリケーションですが、合わせて脆弱性という言葉もよく聞くのではないかと思います。
脆弱性とは”安全性上の弱点”を指す言葉です。

コンピュータの OS やソフトウェアにおいて、プログラムの不具合や設計上のミスが原因となって発生した情報セキュリティ上の欠陥のことを言います。

これを Web アプリケーションの脆弱性に当てはめると、プログラム上のバグや、想定外のオペレーションによって引き起こされる不具合となります。
攻撃者はこの脆弱性を意図的に利用し、不具合や想定しない動作を引き起こすことで攻撃してきます。

利用するユーザーからすると脆弱性への対策のしようがないので、提供する企業は脆弱性をなくす開発や脆弱性を突いた攻撃を防ぐ手段を講じなければなりません。
しかしここで問題になってくるのがアプリを構成する多数の OSS です。

OSS とは、ソースコードを無償で公開し、誰でも自由に改良・再配布ができるようにしたソフトウェアのことであり、多くの開発者が様々な OSS を利用しています。

無償で公開されているのですから、公開している側は誰が利用しているかはわかりません。
利用だけでなく様々な人が改良も行うため、その過程で OSS の欠陥が見つかることも少なくありません。
公開している側は欠陥を改善したバージョンをまた公開しますが、Windows 等有償のOS等と違い、利用者がわからない為、強制的にユーザーにお知らせしたりバージョンアップをかけることができません。

すると利用者は現在使っている OSS のバージョンがいつのまにか古くなっていて、脆弱性があるにも関わらず、最新のバージョンが公開されていることに気づかないことがあります。

また、気づいていても、開発した Web アプリが大きく拡大していく中で、どこに何の OSS がどのバージョンで入っているかまでを正確に把握することは非常に難しく、結果、いつのまにか脆弱性を放置した状態にさらされていることがよくあります。

OSSの普及状況と脆弱性 OSSの依存構造
OSS が大量に含まれているアプリケーションのイメージ

有名な脆弱性として SQL インジェクション、クロスサイトスクリプティングなどが挙げられます。

SQL インジェクションとは、Web アプリの操作・制御に SQL という言語のコマンドを使うアプリに対し、特定の SQL 文を実行させることによりデータべ-スを不正に操作される脆弱性のことを指します。
データベースを不正に操作されるのですから、個人情報ファイルが大量に流出するといった被害も出てしまう脆弱性です。

クロスサイトスクリプティングは書き込みのできる掲示板のような入力フォームのあるWebサイトにおいて、特定のスクリプトを埋め込むことでそのサイトにアクセスしたユーザーの個人情報が盗まれたりする脆弱性です。
クッキー情報やパスワードが不正に利用され、不正ログインからクレジットカード情報の流出にまで至るケースも存在します。

Web アプリケーションを狙った攻撃

このような状況を狙って、無差別なサイバー攻撃が行われることがあります。

OSS を使ったWebアプリは大量にあるので、その脆弱性を突いた攻撃を様々なアプリに対して行い、どれかひとつからでも情報を抜き出せたりすれば攻撃者としては成功になるからです。

上記 SQL インジェクションなどを突いて個人情報を狙う攻撃もあれば、サービスを乗っ取って Web サイトを改ざんする等愉快犯による攻撃もあります。

特にオリンピックやサッカーワールドカップなど世界的なイベントの際には特設サイト等が急増し、それらを狙った攻撃も大きく増加します。
2020 年のオリンピックを控えたこの時期、Webアプリケーションを開発する開発者はもちろん、サイトを運営する企業も脆弱性に注意を払う必要があります。

具体的なリスク: 脆弱性の中でも脆弱なコンポーネント利用の割合は高く、また悪用までの平均日数は修正にかかる日数よりも大幅に短い
被害事例

Web アプリケーションのセキュリティ対策

では一体、サービスを提供する会社はどのような対策方法を取ればいいのでしょうか?

そのひとつに WAF(Web アプリケーションファイアウォール)があります。
個人情報などの検出パターンにより攻撃を検知することが可能になり、情報が悪意ある人に送信されてしまうようなことを防ぐことが出来ます。

しかしこれは Web アプリケーションの脆弱性を解消する根本的な解決策ではありません。

そこで Web アプリケーションの大半を構成する OSS の脆弱性を管理することが重要になります。
一般に Web アプリケーションに使用される OSS はさらに数百から数千の OSS に依存しており、管理と一口に言ってもセキュリティ担当者やセキュリティコンサルタント会社による脆弱性診断だけではすべてを見切ることはとても困難です。

そこで、脆弱性管理ツールの導入が必要になっています。

OSS 脆弱性管理ツール yamory は Web アプリケーションに使われる OSS の一覧を作成し、脆弱性の有無、さらには攻撃用コードが流通していないかまで確認し、本当に危険な OSS の脆弱性とその対応方法がわかるツールです。

yamoryの強み
yamoryの詳細はこちら

まずは 30 日間の無料トライアルで yamory を利用し、自社の脆弱性を見える化してみませんか。

オープンソース脆弱性管理ツール yamory

  • 利用中のOSSを抽出し
    脆弱性を自動スキャン
  • 脆弱性への対応優先度を自動で分類
  • 組織規模に合わせたプランを選択可能

フリー

¥0

個人向け

1チームまでの開発チーム作成

yamory を使いはじめる

プロ

有料料金はお問い合わせください

中〜大規模組織向け

無制限の開発チーム作成

開発チームを俯瞰できるセキュリティチーム機能

危険な脆弱性の Slack 連携通知機能

Jira Cloud と連携

シングル・サインオン(SSO)連携*

* SSO 連携は無料トライアルではご利用できません。プロプラン契約後からご利用できます。

30日間の無料トライアルを開始