search
LoginSignup
0

posted at

【Web】セキュリティと認証について図を使って説明してみた

Webシステムのセキュリティ

  • 気密性:アクセスを認められたものだけがその情報にアクセスできる状態を確保すること
  • 完全性:情報が破壊・改ざん・消去されていない状態を確保すること
  • 可用性:必要なときはいつでも情報にアクセスできる状態を確保すること

p137-1.png

  • リスク:何らかの損失が発生する可能性
  • 脅威:リスクを現実化させる要因
  • 脆弱性:脅威に対する弱み
    p137-2.png

パスワードクラッキング、DoS攻撃

  • パスワードクラッキング:個人情報をねらい、IDとパスワードによる認証を行う会員制のWebサイトからユーザーのパスワードを抜き出そうとする攻撃。

    • 辞書攻撃:よくパスワードに使われる単語をまとめたファイルを用意しておき、それを使ってログインを次々と試すことでパスワードを当てる攻撃。
    • ブルートフォース攻撃:パスワードに使われる文字の全組み合わせをしらみつぶしに試す方法。
      p139-1.png
  • DoS攻撃:短期間にサーバーが処理しきれないような大量のアクセスを行うことで、サービス停止に陥らせる攻撃。

    • SYN Flood攻撃:TCPのやりとりにおけるSYNパケットだけを大量に送りつけ、サーバーを接続待ち状態にさせることで別のユーザーからの新たな接続を確立できなくする攻撃。
    • F5攻撃:繰り返しアクセスし続けることで、リクエストへの反応ができないレベルまでWebサーバーの負荷を高める攻撃。
      p139-2.png

Webシステムの特徴を利用した攻撃

  • セッションハイジャック:何らかの手段で第三者がCookieの中身やセッションIDを取得できれば、ユーザーIDやパスワードを知らなくてもその情報を使ってログイン済みのユーザーとしてそのシステムを利用できるようになり、容易に個人情報を取得できてしまう。
    p141-1.png

  • ディレクトリトラバーサル:URLでファイルを指定する際に、指定方法を利用して、Webで公開されていないディレクトリにアクセスすることでWebサーバー自体のログインパスワードを取得し、Webサーバーへ不正にログインするなどの攻撃につなげること。
    p141-2.png

Webアプリケーションの脆弱性を狙う攻撃

  • クロスサイトスクリプティング:掲示板サイトのような、ユーザーの入力内容を表示するタイプのWebサイトの脆弱性をつく攻撃。
    p143-1.png

  • クロスサイトリクエストフォージェリ:攻撃者が用意した「ログインが必要なサイトに対して操作を行う」リンクにユーザーがアクセスすることで被害を受ける攻撃。
    p143-2.png

  • SQLインジェクション:送信する情報にDBが解釈できる内容を混ぜ込むことで、DBに意図しない動作を行わせる攻撃。
    p143-3.png

Webシステムの脆弱性

− Webシステムにおける脆弱性は随所にある。
p145-1.png

セキュリティホール:ソフトウェアの欠陥により、権限がないと本来できないはずの操作が権限を持たないユーザーにも実行できてしまったり、見えるべきでない情報が第三者に見えてしまうような不具合
p145-2.png

  • ゼロデイ攻撃:発見されたセキュリティホールに対する修正プログラムが開発される前に、そのセキュリティホールを利用した攻撃を仕掛けること。
    p145-3.png

ファイアーウォール

  • サービスに必要な通信だけを許可し、それ以外の通信を拒否するようにする。インターネットと内部ネットワークの間に設置し、送受信されるデータを監視して通信の許可・拒否を行うもの。
    p147-1.png

  • パケットフィルタ型:送受信されるデータ(パケット)のIPアドレスとポート番号をチェックし、通信の許可/拒否の判断を行う。

    • 社内ユーザー向けWebシステムの場合
      p147-2.png

    • 不特定多数ユーザー向けWebシステムの場合
      p147-3.png

IDS、IPS

  • ファイアーウォールで防ぎきれない攻撃を防ぐ手段にIDSIPSがある。両方とも、ネットワーク上を流れる通信を監視し、不正アクセスと見られる通信や普段と異なる異常な通信を検知する装置。
    p149-1.png

  • IDS:異常があったことをシステム管理者にメールなどで通知する。

  • IPS:通知だけでなく、即座に該当する通信の遮断を行う。
    p149-2.png

  • IDS、IPSの不正アクセスの検知方法には「シグネチャ型」と「アノマリー型」の2つの方法がある。

    • シグネチャ型(不正検知型):監視対象の通信とシグネチャ(既知の攻撃手法による通信パターンが登録されたデータベース)を比較し、シグネチャに登録されたパターンと一致する通信を不正アクセスと判断する。
    • シグネチャ型(不正検知型):普段の通信とは大きく異なる通信や、通常は発生しないような通信を不正アクセスと判断する検知方法。
      p149-3.png

WAF

  • IDS、IPSで防げる攻撃・防げない攻撃
    p151-1.png

  • WAF:やりとりされるパケットの中身を見て悪意のあるデータが含まれていないかをチェックする。

  • ブラックリスト:遮断するデータのパターン

  • ホワイトリスト:正常なデータのパターン
    p151-2.png

暗号化

  • 元のデータ(平文)を暗号化の手段(暗号化アルゴリズム)で第三者が読み取れないデータ(暗号文)にすること。
    p153-1.png

  • 受けとった暗号文を利用するために平文に戻すことを復号という。

p153-2.png

  • ハッシュ化:ハッシュ関数と呼ばれる計算式によって任意の長さの文字列を固定長の文字列(ハッシュ値)に変換すること。
    p153-3.png

公開鍵証明書

p155-1.png

  • 重要な情報の送信の前には相手が本物かどうかを確かめる必要があるので、公開鍵証明書(SSL証明書)を用いる。

  • 役割は2つ。

    • HTTPS通信に使うための公開鍵の持ち主が誰なのかを証明すること。
    • 公開鍵の持ち主が実在することを証明すること(実在証明)
      p155-2.png
  • 自己証明書は「暗号化通信できること」だけを保証する。信頼できる証明書でないため警告が出るが、公開鍵を使った暗号化通信を行うことは可能。
    p155-3.png

認証

  • 本人確認処理
    p157-1.png

  • 認証の仕組みを提供するサービスが登場。
    p157-2.png

  • 認証API:認証処理を提供する側は、処理の仕組みをAPIとして提供する

  • OpenID:認証APIの問題を解決するため、認証処理を標準化したプロトコル
    p157-3.png

認可

  • 認証によって確認した結果より、ユーザーごとの権限に従って利用できるサービスの許可
    p159-1.png

  • サイトまたいだ認可が必要な場合
    p159-2.png

  • OAuth:サイトまたいだ認可を行うプロトコル。クライアントとなるサイトがリソースオーナーの許可を受け、リソースサーバーのサイトのサービスを利用する。

    • リソース:利用したいサービス、サービスを提供するサーバーがリソースサーバー、そのユーザーがリソースオーナー、許可を受けてリソースを利用するWebサイトやアプリをクライアントと呼ぶ。
    • トークン:リソースを利用する時の合言葉
      p159-3.png
  • OpenID Connect:OAuth2.0をベースに認証機能が追加されたプロトコル。認証・認可機能を実現できる。

CAPTCHA

  • プログラムを用いたWebサービスの悪用を防ぐために考案されたもの。人間では容易にできるが、プログラムでは困難処理。
    p161-1.png
  • CAPTCHAを用いた不正防止
    p161-2 .png

参考:Web技術の基本

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0