常に偵察にさらされるWebアプリケーション、脆弱性が見つかるまで:守りが薄いWebアプリケーション(2)(2/2 ページ)
当連載ではWebアプリケーションのセキュリティが置かれている状況と、サイバー攻撃について具体的なデータを示し、防御策を紹介している。前回はインターネットにはクリーンではないトラフィックが常にまん延していることを実証し、攻撃対象となる領域と、領域ごとの被害例について簡単に整理した。今回は、攻撃者の目線を交えて、Webアプリケーションが攻撃を受けるまでにたどるプロセスに沿って、順に解説していく。
脆弱性調査:ハニーポットが捉えた攻撃者のふるまい
ここで、実際に脆弱性を調査していると思われる(攻撃者の)通信を見てみよう。筆者の所有するハニーポット(※2)で観測したデータを解説に用いる。
※2 ハニーポットとは、攻撃に関するさまざまな情報を収集するために、あえて脆弱性を持たせたシステムをいう。
MySQLの管理者ツールへのアクセス
1つ目の例は、MySQLの管理者ツールへアクセスを試みたものだ。図3では、アクセス試行の日時とアクセス先URIのリストを示している。注目したいのが”phpmyadmin”や”phpMyadmin”という文字を含んだURIである。このphpMyAdminとはPHPで作られたMySQLサーバをWebブラウザで管理するためのクライアントツールを示す。
phpMyAdminのインストール後のデフォルト設定では“/phpmyadmin/index.php”がログイン用のURIとなる。つまり管理ツールへのアクセスを試みていることになる。
さらに図3の、上3つのURIに注目すると、“/phpmyadmin2/”、“/phpmyadmin3/”、“/phpmyadmin4/”という3つのURIに対して立て続けにアクセスしている。“/phpmyadmin/index.php”というデフォルト設定のURLだけでなく、設定を変更したログインURIも探っていることが予想できる。
多くの場合、このような管理者ツールへは、インターネットからアクセスできないよう設定されているはずだが、万が一インターネットに公開されていた場合、そこからデータベースに対する自由なアクセスを許すことになってしまう。
SQLインジェクションの脆弱性
次に挙げる例はSQLインジェクションの脆弱性を調査するようなリクエストだ。
図4の一番下のリクエストではクエリストリング(文字列)で、shopcdというパラメーターに文字列「’ 0=A」を指定している。その他のリクエストでもクエリストリングで指定されたsekceというパラメーターに格納された文字列に特徴がある。「UNION」や「SELECT」といった文字が含まれており、明らかにデータベースを意識したリクエストで、かつMySQLを意識したものだろう。
これは偵察行為だ。エントリーポイントとしてクエリストリングから入力される値が適切に処理されているかどうかを確認している。このリクエストに対するアプリケーションの挙動を見て、脆弱性の有無を探っていると考えられる。
今回は、攻撃者視点から見た、情報収集から攻撃前のアプリケーションの分析まで、実態を交えて解説した。ハニーポットのログデータを通じて、一連の攻撃試行の挙動を具体的に見るとさまざまなことが分かる。利用アプリケーションを特定し、結果に応じて脆弱性の有無を探っていく、という攻撃者のとる初期段階のプロセスを理解してもらえたのではないだろうか。
次回は、これらを踏まえて効果的なWebアプリケーション攻撃への対策について解説していこう。
筆者紹介
今井雅晴(いまい まさはる)
アカマイ・テクノロジーズ合同会社 ソリューション・エンジニア。
国内で電気・電子工学専攻の修士課程を修了後、独立系SIerでセキュリティエンジニアとして従事。大規模インシデント後のセキュリティ対応などセキュリティ面で多くの企業を支援。その後、テクニカルコンサルタントとして大手金融機関向けのセキュリティ対策の支援、CEH(Certified Ethical Hacker)プログラムのインストラクターを経て2017年から現職。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 狙われるWebアプリケーション、何が起こるのか
当連載ではWebアプリケーションのセキュリティがどのような状況にあり、どのような攻撃や防御策があるのかを紹介していく。第1回はWebアプリケーションがどのように狙われているのか、概要を紹介する。Webアプリケーションに向けた攻撃は数多く、規模も大きい。主に4つの部分が攻撃にさらされており、被害の内容は異なる。