見出し画像

WEBセキュリティについて掘り下げ

引き続き「HTML5プロフェッショナル認定試験」対策を兼ねた、多くを引用した個人の勉強ノートです。参考まで。どんどん追記予定。
今まで結構何となく知っているくらいだった、WEBセキュリティ関連の分野を掘り下げていきます。

SSL/TSLとは

SSLとはSecure Sockets Layerの略で、二者間で送受信しているデータを暗号化する通信手順。TLSはTransport Layer Securityの略で、SSLの後継として標準化したもの。いわゆるバージョン違いとして認識されています。

SSL stands for Secure Sockets Layer and, in short, it's the standard technology for keeping an internet connection secure and safeguarding any sensitive data that is being sent between two systems, preventing criminals from reading and modifying any information transferred, including potential personal details.
TLS (Transport Layer Security) is just an updated, more secure, version of SSL.

仕組みを簡略すると以下の通りです。サーバーとクライアントで共通の鍵を用いる「共通暗号方式」を実現するべく、暗号化する鍵(公開鍵)と解読する鍵(秘密鍵)使う「公開鍵暗号方式」を組み合わせます。

コメント 2020-05-31 222237

①認証局(CA)によって発行された証明書によって運営元の存在を証明
②その証明書に紐づいた公開鍵をクライアントに送信、クライアントは公開鍵を使って共通鍵を暗号化。サーバーへ返送。
③サーバーはその共通鍵を秘密鍵で解読。
④これで双方が安全に共通鍵を取得できたので、暗号化してデータ通信。

WEBサイトへの攻撃手法

■ SQLインジェクション

データベースに問い合わせる命令文(リクエスト)の中に不適切な文字列を含め、データベースを不正利用し情報漏洩や改ざんを起こす。

SQLインジェクションとは、 操作にSQLと呼ばれる言語を用いるタイプのデータベースを使用するアプリケーションに対し、 その入力に本来入力としては使われることが想定されていないSQL文を挿入すること(injection - インジェクション)で、 データベースに不正な操作を加える攻撃方法のことです。

■ クロスサイト・スクリプティング(XSS)

罠が仕掛けられたサイトでスクリプトを実行させることにより、偽サイト等へ誘導。ID/ PWの抜き取りや、クッキーに保存されている情報が漏洩する危険がある。

クロスサイトスクリプティング(XSS)とは、攻撃対象のウェブサイトに、脆弱性がある掲示板のようなウェブアプリケーションが掲載されている場合に、悪意のある第三者がそこへ罠を仕掛け、サイト訪問者の個人情報を盗むなどの被害をもたらす攻撃です。

対策として、スクリプトを埋め込ませないために入力値のチェック、特殊文字のエスケープ処理(文字実態参照等)、スクリプトを生成させない等の他、スクリプトからアクセスできないようにするためHTTPクッキーに「HttpOnly」属性を設定することでHTTP通信以外のアクセスを遮断する対策があります。

■ クロスサイトリクエストフォージェリ(CSRF)

罠を仕掛けたサイトにアクセスした場合、脆弱なWEBアプリケーションに特定の機能を実行するリクエストを勝手に送信し、意図しない動作(PW変更)などをさせる危険性がある。

クロスサイトリクエストフォージェリ(CSRF)とは、閲覧者が意図しない間に別のWebサイトに、サーバが本来拒否すべきHTTPリクエストを送信させ実行させる攻撃手法のことを指す。

■ ディレクトリ・トラバーサル

トラバーサル(traversal)の通り、ディレクトリを「横切り」公開を意図してないデータにアクセスされ、漏洩や改ざんの危険があること。

ディレクトリトラバーサルとは本来、アクセスして欲しくないファイルやディレクトリの位置を、相対パス指定などでプログラムに表示させて、不正なアクセスをする攻撃手法です。

■ HTTPヘッダ・インジェクション

不正な情報入力によりHTTPヘッダを入力しクライアントに意図しないページに移動させたり、不正なcookieをセットし、なりすましや上述のXSSを引き起こす危険性がある。

HTTPを使って通信するシステムにおいて、動的にHTTPヘッダを生成する機能の不備を突いてヘッダ行を挿入することで不正な動作を行なわせる攻撃手法のこと。

■ セッション・ハイジャック

セッションIDをブラウザがクッキーに保存することで、本来ステートレス(状態を保持しない)HTTP通信において、サーバーが状態(同一の通信であること)を管理することができます。

セッションとは、コンピュータネットワークでは、接続を確立してから切断するまでの一連の通信のこと。HTTPのサイトでは、セッションにIDを振ることで同一のセッションを管理することができる。

このIDがジャックされ、なりすまし等不正アクセスによる攻撃をセッションハイジャックといいます。

以上です!何かすこしでも役に立てば嬉しいです。
コメントもお待ちしてます。

この記事が気に入ったらサポートをしてみませんか?