WebサイトやWebサービスといったWebシステムを利用する機会が増加し、セキュリティリスクは年々大きくなっています。自社のWebシステムは、十分なセキュリティ対策が取られているでしょうか。有効なセキュリティ対策を講じるためには、Webセキュリティとは何か、基本的な概念を理解した上で主な攻撃手法および対策ポイントを理解することが重要です。
今回は、Webシステムのセキュリティでポイントとなる「脆弱性」の概念や、セキュリティ攻撃の事例と対策についてご紹介します。
- もくじ
1.Webセキュリティを理解すること
Webセキュリティとは、第三者からの意図的なWebサイトへの攻撃による被害を防止するための仕組みを意味します。
Webシステムの利用機会が増え、顧客情報や金融情報などの機密性の高い情報を扱う機会も多くなっています。
十分なセキュリティ対策を講じてこなかったため、運営しているサイトを乗っ取られる、Webサービスを利用しているユーザーの個人情報が盗まれるなどの被害が出ており、状況によっては、運営側に責任があるとされて損害賠償に発展する事態も考えられます。
個人・法人問わずWebシステムを利用する場合、Webセキュリティに関するリスクを鑑みて対策を講じる責任があると言えるでしょう。
2.脆弱性とはセキュリティ上の「欠陥」
Webセキュリティにおいて重要なのは「脆弱性」という概念です。(脆弱性は別名「セキュリティホール」とも呼ばれます。)脆弱性はWebサイトやシステムの構造上の欠陥や設計ミスを意味しており、この脆弱性が原因でセキュリティ事故になる例がほとんどです。
Webシステムは全て人間が設計・構築しているため、どこかに必ず欠陥があります。ハッカーは、その弱点を突いてWebシステム上に保管された顧客の個人情報やシステム内部の機密情報などを盗んだり、悪意のあるサイトの改ざんを行ったりするのです。
国立研究開発法人情報通信研究機構(NICT)の「NICTER観測レポート2017」によると、2017年はサイバー攻撃件数が過去最高の約1,504億件(前年比約1.2倍)に及び、IoT関連機器を狙ったセキュリティ攻撃が増加傾向にあります。近年で特に多かったものは、通信機器の小さな脆弱性を突いたもので、その手法も高度化しています。
セキュリティの欠陥は、システムの構造やOS、ネットワークなど多くの場所に潜んでおり、システムにある脆弱性を全て検知することはきわめて困難です。脆弱性を狙った攻撃からシステムを守るためには、日頃からセキュリティ対策を意識し、脆弱性の検知と改善活動を定着させることが欠かせません。
3.脆弱性を狙った主要な攻撃方法
Webシステムの脆弱性を狙った攻撃例はさまざまですが、攻撃方法はいくつかのパターンに大別されるため、これらの知識を持っておくことが重要です。中でも代表的なものを3つご紹介します。
【1】SQLインジェクション
WebサイトやWebアプリケーションは、入出力するデータをデータベースで管理しており、「SQL言語」と呼ばれる言語でそのデータベースを操作しています。SQLインジェクションとは、データベースを外部の人間が悪意を持って動かそうとして、SQLの注入(インジェクション)を行い、Webサイトやアプリに意図しない動作をさせる手法です。
例えば、入力した内容をデータベースに登録することを要求するSQLを改ざんし、データベースに保管する顧客情報を出力する内容に書き換えてしまうことが可能です。
【2】XSS(クロス・サイト・スクリプティング)
Webページの更新では、一般的にFTPソフトなどを使ってサーバーにアクセスしてファイルをアップロードする必要があります。しかし、XSSの手口においてはサーバーにログインすることなく、ページ上の情報を書き換えたり、Cookieの情報を取得できたりします。
似たような手法として「CSRF/XSRF(クロス・サイト・リクエスト・フォージェリ)」という手法もあります。どちらもWebページのユーザーになりすましてWebサイトやアプリを操作してしまう点で共通していますが、XSSではJavascriptなどを利用し、ブラウザ上でスクリプトが動作するのに対して、CSRFではサーバー側で攻撃用の「リクエスト」が動作するという点で異なります。
【3】ブルートフォースアタック
ブルートフォースアタック(brute-force attack)は、パスワードなどを大量に自動生成し、ログインできるまで総当たりで試して攻撃する手法です。原始的で非効率的な方法と言われていますが、桁数が短いものや数字のみで構成されているような単純なものの場合、この手法で破られる可能性があります。特に専門的な技術を利用した手法でない上、総当たりする単純作業をコンピュータで行う事で非常に簡単にできてしまいます。
4.サーバーにおけるセキュリティ対策
脆弱性を狙った攻撃は、既に対策方法が明確な手口がみられます。今回は、Webサイトやアプリケーションなどで狙われがちなサーバー攻撃への代表的な対策をご紹介します。
4-1 ファイアウォール
ファイアウォールは、IPアドレスやポート番号など、通信時の送信先・送信元の情報を元に、アクセス許可するかどうかを判断する仕組みで、ネットワークレベルでの不正アクセスからサイトやアプリケーションを保護することができます。
4-2 IDS(Intrusion Detection System)/ IPS(Intrusion Protection System)
OSやミドルウェアレベルでシステムを保護する役割を持った仕組みです。
IDS(不正侵入検知システム)は、通信を監視し、異常があった場合に管理者に連絡することで被害拡大を防ぎます。ネットワークの通信パケットを監視するネットワーク型と、サーバー上の受信データ・ログを監視するホスト型の2種類があり、目的によって2種類を併用したり、ファイアウォールと組み合わせたりして活用します。
IPS(不正侵入防止システム)は、不正アクセスの通知のみならず通信を遮断することも可能です。
4-3 WAF(Webアプリケーションファイアウォール)
WAFとは、ネットワークを介した攻撃を防ぐ、Webアプリケーションに特化したセキュリティ対策です。ファイアウォールやIPSでは防ぎきれなかった不正アクセスを判別し、Webアプリケーションを保護できる強みがあります。
WAFは通信の中身までチェックすることができるため、Webアプリケーションの脆弱性を狙った攻撃に最も効果があると言われている対策です。
おわりに
今回は、Webセキュリティに関する基本的な概念と、脆弱性を中心としたセキュリティ攻撃およびその対策についてご紹介してきました。Webセキュリティは、実際の被害が起こるまで軽視されがちな観点ではありますが、Webシステムに潜む脆弱性を検知・対策していなければ甚大な被害につながる可能性もあります。サーバーのセキュリティを強化して、脆弱性の検知とセキュリティ事故の予防に努めましょう。