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件ずつ Immediate な脆弱性を管理

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

yamory を使いはじめる

プロ

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

中〜大規模組織向け

無制限で Immediate な脆弱性を管理

無制限の開発チーム作成

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

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

特定のソフトウェアの脆弱性一覧を表示

特定の脆弱性を含むソフトウェア一覧を表示

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