webアプリと脆弱性の関係性とは?脆弱性を放置するとこんな攻撃を受ける可能性がある!

2020.02.07

Webセキュリティ

日常的にインターネットを利用し、動画を見たりメールを送ったり、SNSを利用したりしている方もいるかもしれません。その時に気になるのがセキュリティに関してではないでしょうか。ウィルスに感染して個人情報が漏れてしまうなどのトラブルもあるため、インターネットを利用する時にセキュリティに関する知識を持っておくことは大切です。今回はwebアプリケーションの脆弱性や、それを狙った攻撃方法について詳しく解説します。

目次

webアプリケーションの脆弱性を完全に取り除くのは難しい

インターネットが普及して、様々なwebサービスが誕生しました。その中でも特に多くなっているのがwebアプリケーションです。webアプリケーションというと、馴染みがない方もいるかもしれませんが、色々な動画が投稿される人気の動画サイトや、web上で無料で通話ができるアプリ、ブラウザ上でメールのやり取りができるメールソフトなど、全てがWebアプリケーションです。基本的にはインターネットを通して利用する、ブラウザ上で動作するようなものがwebアプリケーションなので、普段から知らずに利用している方も多いでしょう。スマホやパソコンにインストールして使うアプリケーションもありますが、これはネイティブアプリと呼ばれるものです。インストールさえしてしまえば、インターネットに繋がなくても利用できるアプリケーションなので、webアプリケーションとは区別されます。

生活に欠かせないものとなっているwebアプリケーションですが、利用する時に注意したいのが脆弱性です。脆弱性というのは、アプリケーション内やシステム上に存在する弱点のことで、脆弱性があるとサイバー攻撃などを受けやすくなってしまいます。脆弱性を完全になくしてアプリケーションの開発ができればよいのですが、脆弱性を全て排除するのはなかなか難しいことです。アプリの開発者がどんなに注意しても、開発の工程で脆弱性を含んでしまうことは珍しくありません。webアプリケーションは限られた時間で開発されていることも多く、その中で全く弱点のないアプリを作り世に送り出すのはかなり難しいことです。webアプリケーションを利用する時は、少なからず脆弱性があることを覚悟し、トラブルが起こらないように自分で対策をしながら使う必要があるでしょう。

webアプリの脆弱性を狙った攻撃はたくさんある

webアプリケーションの脆弱性を狙い、様々な手口で個人情報を盗み取ったり、ウィルスに感染させたりする攻撃が多くなっています。こういった攻撃から身を守るためには、どのような手口で攻撃が行われるのかを知っておく必要があるでしょう。ここからは、webアプリケーションの脆弱性を狙った、代表的な手口について詳しく解説していきます。

SQLインジェクションを利用した攻撃

SQLインジェクションは、Webアプリケーション上の脆弱性を利用して、データベースにあるシステムを不正に操作する攻撃のことです。データの改ざんを行ったり、不正に情報を入手する手口の1つで、この被害を受けると個人情報の流出や、プログラムの不正な書き換えなどのトラブルが起こります。この攻撃を防ぐためには、SQL文を組み立てる時に文字列の連結を行わないようにする、プレースホルダを使用する、データベースに接続する時に文字エンコーディングを指定するといった対策が有効的です。

クロスサイトスクリプティングによる攻撃

クロスサイトスクリプティングはXSSとも呼ばれるもので、掲示板やSNSなどのwebアプリケーションで、サイト上の脆弱性を利用した攻撃方法です。web画面上に不正なスクリプトを埋め込むことで、そこにアクセスしたユーザーのブラウザ上で様々なプログラムを実行します。ページを書き換えたり、外部サイトへ飛ばしたりすることが可能なため、なりすましやフィッシング詐欺の手口として利用されることが多いです。こまめに入力されたデータをチェックする、入力値を制限して不正なスクリプトを入力されないようにするなどの対策を行うとよいです。

強制ブラウズによって情報を盗み取る

本来アクセスすることのできないファイルやディレクトリに直接アクセスする、強制ブラウズという攻撃方法があります。通常ホームページを見る時は、リンクを辿って様々なページにアクセスすることが多いです。しかし、この方法はリンクを辿るのではなく、webアプリケーション上にある特定のページに直接アクセスします。本来は公開されていないファイルやディレクトリにアクセスし、ブラウザ上に表示させることで様々な情報を得る攻撃です。サーバー内にある内部情報や、個人情報を取得されてしまう危険性があるので注意しましょう。この攻撃を防ぐには、ブラウザでアクセスできるドキュメントルート上に重要なファイルを置かない、不要なファイルは全て削除しておくなどの対策が必要です。

サーバー攻撃の手口として利用されることが多いOSコマンドインジェクション

webアプリケーションの脆弱性を利用し、不正なOSコマンドの実行を行うことで攻撃を行うのがOSコマンドインジェクションです。特定のOSコマンドを含むリクエストをサイトに送信し、任意のOSコマンドを実行させ他のサイトへの攻撃を行ったり、ウィルスを感染させたりします。これによってwebアプリケーション上のファイルの改ざんや削除、不正なシステム操作、ウィルスやマルウェアに感染するなどの被害が発生します。サイトが乗っ取られて、他のサイトへの攻撃に利用されてしまうこともあるので注意してください。webアプリケーションを作る時に、外部プログラムを呼び出すプログラムを書かないなどの対策が必要になるでしょう。

特殊文字列を送信しファイルを盗み取るディレクトリトラバーサル

ディレクトリトラバーサルは、パストラバーサルとも呼ばれる攻撃方法です。webアプリケーションの中には、外部からパラメータの指定を受け付けるものがありますが、その時に起こる脆弱性を狙い特殊な文字列を送信して攻撃を行います。ディレクトリトラバーサルによる攻撃を受けると、本来はアクセスできないディレクトリやファイルに到達されてしまい、その中の情報を取得されてしまいます。パスワードを取得されシステムを乗っ取られたり、個人情報や社内の重要な情報を搾取されたりすることもあります。ファイル名に含まれるディレクトリ情報を削除する、外部から直接ファイル名を指定しないなどの対策が有効です。

脆弱性を利用し乗っ取りを行うバッファオーバーフロー

コンピューターには許容量があり、それを超えたデータが送られてくると誤作動を起こしてしまいます。それを狙った手口がバッファオーバーフローです。本来想定されている以上の入力データを送り込みwebアプリケーションをオーバーフローさせ、誤作動を引き起こしたり溢れ出たデータを実行させたりすることで、システムの乗っ取りやサーバー攻撃を行います。リターンアドレスを書き換えるスタック領域型や例外ハンドラアドレスなどを書き換えるヒープ領域型など、攻撃方法にはいくつか種類があります。この攻撃を防ぐためには、脆弱性が露呈しないようにセキュリティを強化することが大切です。セキュリティソフトを導入し常に最新の状態を保つ、アプリケーションの修正パッチを導入するなどの対策をしておきましょう。またプログラムにチェック処理を加えて、バッファ領域を超えないようにしておくのも1つの対策です。

脆弱性を利用した手口を理解して適切な対策を行うことが大切

webアプリケーションは便利なもので、多くの人に利用されています。しかし、どのようなwebアプリケーションにも少なからず脆弱性があるため、第三者から攻撃を受けてしまうリスクはゼロではありません。どのような手口で攻撃されてしまうのかを知り、攻撃方法に合わせて適切な対策を行うことが重要です。今回紹介した情報を参考に、安全にwebアプリケーションを使うにはどうすればよいのかじっくり考えてみてください。

サイバー攻撃を可視化・遮断する「攻撃遮断くん」

クラウド型WAF 攻撃遮断くん Web Application Firewall
https://www.shadan-kun.com/

 

サイバーセキュリティクラウドが提供する「攻撃遮断くん」はWebサイト・Webサーバへのサイバー攻撃を可視化し、遮断するセキュリティサービスです。
ブルートフォースアタック、クロスサイトスクリプティング、Webスキャンと言ったサイバー攻撃をリアルタイムで検知・遮断しています。
ユーザーごとに提供される管理画面で、契約したWebサーバへの攻撃の情報を確認することができます。

  • DDoS攻撃対策|導入社数、導入サイト数No.1|選ばれ続ける理由とは?クラウド型WAFでWebセキュリティ対策|今すぐ無料でダウンロード
  • 累計12,000サイトの導入実績 多数の事例から、導入までの経緯と抱えていた課題の解決方法をご紹介