狙われるWebアプリケーション、何が起こるのか:守りが薄いWebアプリケーション(1)(2/2 ページ)
当連載ではWebアプリケーションのセキュリティがどのような状況にあり、どのような攻撃や防御策があるのかを紹介していく。第1回はWebアプリケーションがどのように狙われているのか、概要を紹介する。Webアプリケーションに向けた攻撃は数多く、規模も大きい。主に4つの部分が攻撃にさらされており、被害の内容は異なる。
Webベースのアプリケーションが抱える脆弱性――攻撃と被害の例
次にアタックサーフェスとなる各コンポーネントへの攻撃と、その被害の例を順に見ていこう。
まず「Webサーバ」を対象とした攻撃では、Webサーバで使用しているOSやソフトウェア、ミドルウェアの脆弱性が主な攻撃対象になる。脆弱性の内容にもよるものの、情報漏えいやWeb改ざんが直接の被害として起きる場合が多い。
この他、Webサーバの設定ミスを脆弱性として悪用されるケースがある。例えば、不要なアカウントの有効化や、強度の低いパスワードの利用、デフォルトで設定されている管理者権限ユーザーをそのまま利用するといった管理者用アクセスの不適切な設定だ。もしも管理者用のアカウントを乗っ取られたとすれば、改ざんにとどまらず、バックドアやマルウェアを仕掛けられたり、DDoSを他のサイトに仕掛ける踏み台として利用されたり、気付いたら仮想通貨のマイニングに利用されていたり……といった被害が起こり得る。
サーバサイドの「アプリケーションのロジック」「データベース」「Webブラウザ(クライアント)」が攻撃対象となった場合は何が起きるだろうか?
多くの場合、攻撃は作成した独自のアプリケーションの脆弱性を悪用したものになる。「アプリケーションのロジック」をターゲットとした攻撃は多岐にわたるため、今回は詳細に扱うことができない。そこで、イメージをつかみやすい幾つかの例を挙げる。
例えば、クライアントから送信するHTTPリクエストの内容を改ざんして、アプリケーションロジックに意図しないパラメーターの値を渡そうとする攻撃がある。仮にECサイトで受け取るパラメーターの処理に脆弱性があった場合、パラメーターの改ざんにより、ユーザーの資格情報や権限、価格、製品の数量などを、ECサイトの提供者側の意図に反して変更できてしまう。例えば、商品1つ当たりの金額で10個の商品を横取りされるだろう。Webベースで通信を行っているゲームの場合にはチート行為に利用される可能性もある(※2)。
※2 チートとは、ゲームデータを改ざんして不正にゲームを有利に進めようとする行為をいう。
Webブラウザにとって危険なクロスサイトスクリプティング攻撃
「Webブラウザ」を対象とした攻撃の代表的な例が、クロスサイトスクリプティング(XSS)だ。XSSとは、攻撃者が標的とするWebブラウザ上で任意のスクリプトを挿入した後、実行させる攻撃である。サーバサイドのアプリケーションの脆弱性に起因して引き起こされるものの、あくまでも攻撃の対象(不正な処理の実行環境)となるのはWebを閲覧したクライアント側のWebブラウザである。
XSSで実行できる攻撃内容は幅広い。ほぼWebブラウザの中でJavaScriptができること全てと言ってよい。例えば、Webブラウザ上でレンダリングされたフォームに入力された情報の搾取やセッションIDの搾取、Webページを別のものに見せる、悪意のあるページにリダイレクトするなどといったことができてしまう。
「データベース」が対象となる代表的な攻撃は、SQLインジェクション(SQLi)である。アカマイがまとめているセキュリティレポートでは、Webアプリケーション攻撃手法(ベクトル)の中で、SQLiが最も多く検知されている。
SQLiは、アプリケーションの脆弱性によってWeb開発者の想定しないSQLクエリがWebアプリケーションからデータベースに発行されてしまう攻撃である。SQLiが起こると、アプリケーションへのログイン時に正しいユーザーIDやパスワードを知らなくても認証を回避できたり(認証バイパス)、データベースに格納されている情報を抜き出したり(情報漏えい)、データベースの中身の変更や削除(改ざん)を実行したりできてしまう。
今回は、インターネット上に常に存在する不正なトラフィックの実態や、Webアプリケーションの実行の流れに沿って、発生しうる攻撃と被害について簡単に触れた。日常的に起きている攻撃から、Webアプリケーションを保護するためには、複雑に構成されたパズルを整理して解いていく必要がありそうだ。このようなイメージが思い浮かんだのではないだろうか。
脅威に立ち向かい、提供するWebベースのアプリケーションやサービスを守るためには、まず攻撃の方法やその手順を知り、整理して理解することも重要な要素である。そこで次回は、WebベースのシステムがWebアプリケーション攻撃を受けるまでにたどるプロセスについて解説をしていこう。
筆者紹介
今井雅晴(いまい まさはる)
アカマイ・テクノロジーズ合同会社 ソリューション・エンジニア。国内で電気・電子工学専攻の修士課程を終了後、独立系SIerでセキュリティエンジニアとして従事。大規模インシデント後のセキュリティ対応などセキュリティ面で多くの企業を支援。その後、テクニカルコンサルタントとして大手金融機関向けのセキュリティ対策の支援、CEH(Certified Ethical Hacker)プログラムのインストラクターを経て2017年から現職。
Copyright © ITmedia, Inc. All Rights Reserved.