システムを悪用したトラブルを回避するため、欠かすことができないのが脆弱性への対応です。脆弱性の正確な把握に役立つ「脆弱性診断(セキュリティ診断)」について、その基本をわかりやすく紹介します。
システムに潜む問題を探し出す、脆弱性診断とは?
ITツールのソフトウェアに存在する脆弱性(バグや仕様上の問題)は、情報の漏洩やシステムの改ざんなどのトラブルを引き起こす可能性のある危険な存在です。OSの定番Windowsでも脆弱性修正のための追加プログラムが定期的に配布されるなど、脆弱性の問題はすべてのシステムにおいて他人事ではありません。
そんなトラブルの元を把握するための手段の1つに「脆弱性診断」があります。攻撃者の視点で疑似攻撃を仕掛けるなどさまざまな手法を用い、システムに潜む脆弱性やセキュリティの問題点を検出できます。
webアプリ/サイトの脆弱性診断の目的はトラブルの未然防止
インターネットは今や多くのビジネスにおいて当たり前のように利用され、利用者の数はもちろん、その年代や属性も広がりをみせています。しかしその普及に伴い、脆弱性を狙った事件が増加しているのも現実です。
こうした背景により、自社のビジネスの安全を危惧する企業から、そのサービスを利用する末端のユーザーまで、セキュリティへの関心や意識は日々高まっています。セキュリティ対策を怠ったことによりトラブルが生じた場合、システムやサービスの提供者の信用度に対するダメージは世論の関心に比例して大きくなり、その回復も困難な時代であるということです。
脆弱性に起因するトラブルと、その結果引き起こされるさまざまな悪影響を回避することこそ、脆弱性診断を行う最大の目的です。また、脆弱性を正しく把握することで、必要な箇所を絞り込んだ対策が可能になり、セキュリティ対策のコストや人材を無駄なく活用できるというメリットもあります。
webアプリ/サイトの脆弱性の種類と主な被害とは
webアプリケーションやwebサイトの脆弱性には多くの種類があります。一般的なものをいくつかチェックしてみましょう。さまざまな場所で問題を引き起こす可能性があることがわかります。
◆SQLインジェクション
WebアプリケーションにおけるSQL文(利用者の入力情報から作られるデータベースへの命令文)の組み立て方法に問題があると、データベースを不正に利用される危険性があります。このSQLインジェクションの脆弱性の主な脅威は、データベースの改ざんや情報の漏洩、不正ログインによる操作などです。
◆XSS(クロスサイト・スクリプティング)
web上のアンケートや掲示板など、ユーザーが入力した内容をWebページに表示するサイトで、Webページへの情報の出力処理に問題があると、悪意を持ったスクリプトを埋め込まれる危険性があります。このXSSの脆弱性は、スクリプトにより偽のwebページを表示することで、それを信じた利用者から情報をだまし取る、偽の情報を拡散させるなどの被害が想定されます。
◆CSRF(クロスサイト・リクエスト・フォージェリ)
例えばSNSなどサービスの利用に際しログインが必要なwebサイトで、利用者の意図したリクエストか否かを識別する仕組みがない場合、悪意のあるリクエストを受け入れさせ、一般の利用者に対し不利益をもたらす仕組みをサイトに仕掛けることができます。このCSRFの脆弱性により、非公開のつもりで書き込んだ情報が公開される、意図しない商品が購入されるなどの被害が生じてしまいます。
◆OSコマンド・インジェクション
OSコマンド・インジェクションがあると、閲覧者がデータの入力などを行えるwebサイトにおいて、OSに対するコマンドの不正な埋め込みや実行が行われる恐れがあります。サーバー内の情報の改ざんや漏洩に加え、不正なプログラムのダウンロードや他のシステムへの攻撃の踏台に使われる危険性もあります。
◆セッション管理の不備
ショッピングサイトなどで多く使われている「セッションID」(利用者識別のための情報)の発行や管理に問題があると、それを悪用し、不正アクセスされる危険性がります。なりすましによる不正な買い物、ログインした人のみが利用可能な情報の悪用、改ざんなどの恐れが生じます。
脆弱性診断の種類の基本を押さえよう
脆弱性診断は、大きく分けて「ブラックボックス型」と「ホワイトボックス型」の2種類があります。それぞれの特徴を押さえておきましょう。
◆ブラックボックス型
悪意を持つ攻撃者を想定し、システムに対して実際に攻撃や侵入を仕掛けることで、どのような攻撃でどういった被害が生じるかを調べるのがブラックボックス型です。このときテストする側に与えられるのは、IPアドレスなど必要最小限の情報のみで、実際の攻撃者と同じ条件でテストするのが一般的です。
◆ホワイトボックス型
ホワイトボックス型は、診断するシステムのプログラム内部を理解した状態、また管理者権限を持つ状態で動作をテストする方法です。システムの設計書や仕様書、ソースコードなど、詳細な情報を踏まえた上で、システムが予定通りの動作をするかを確認することで、不具合の箇所などが素早く把握できます。
まとめ
脆弱性の把握とその対策を続けることは、システムの安全を確保する上で不可欠です。脆弱性診断の精度を高め、システム運営のトラブル回避につなげましょう。
◆脆弱性診断(セキュリティ診断)はお任せください
弊社が提供する「セキュリティ診断サービス」は、高い技術レベルの専門家が擬似攻撃を仕掛けるなど、貴社webアプリケーションやプラットフォーム、スマートフォンアプリ、データベース、システムの脆弱性やセキュリティにおける問題点を、 さまざまな観点・手法から診断するサービスです。詳しくはセキュリティ診断サービスをご覧ください。
【参考文URL】:
https://www.ipa.go.jp/files/000017316.pdf,(参照 2017年7月25日)
https://www.ipa.go.jp/security/index.html ,(参照 2017年7月25日)
https://www.lac.co.jp/service/consulting/evaluation_info.html,(参照 2017年7月25日)
https://va.rs.jmc.ne.jp/va-howto/,(参照 2017年7月25日)
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c102.html,(参照 2017年7月25日)
https://boxil.jp/mag/a2504/,(参照 2017年7月25日)