Security
セキュリティ関連のメモ
CSRF(クロスサイトリクエストフォージェリ)/XSRF
オンラインサービスを利用するユーザーがログイン状態を保持したまま悪意のある第三者の作成したURLなどをクリックした場合などに、本人が意図しない形で情報・リクエストを送信されてしまうことを意味します。
サービス提供者が考えるべき対策の一つに、どこから送られたリクエストなのか。このリクエストはユーザーが送ったものなのかを照合するシステムや、送信元のURLに対する照合、リクエストを送る時のパラメータに対する照合など、必要に合わせて適用し、脆弱性を排除しておくことが求められます。
IPA ISEC リクエスト強要(CSRF)対策
CORS(Cross-Origin Resource Sharing)
ブラウザがオリジン(HTMLを読み込んだサーバのこと)以外のサーバからデータを取得する仕組みです。各社のブラウザには、クロスドメイン通信を拒否する仕組みが実装されています。れは、クロスサイトスクリプティングを防止するためです。
CORS を分かってないから動くコード書いて理解する
なんとなく CORS がわかる...はもう終わりにする。
JSON Web Token
JSON Web Token(JWT)はHTTP認証ヘッダやURIクエリパラメータなどスペースに制約のある環境を意図したコンパクトな表現形式である。JWTの推奨される発音は, 英単語の"jot"と同じである.
JWT draft
Yahooにおける活用事例
JSON Web Tokenを理解する(https://scrapbox.io/fendo181/JWT(JSONWebToken)%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B%E3%80%82)
JWTについて簡単にまとめてみた
Please Stop Using Local Storage
JWTでは、有効期限を短く設定することをお勧めします。WebSocketを使用している場合は、(たとえば)10分の有効期限でJWTを発行し、ユーザーがまだ接続してログインしている場合は8分ごとに自動的に新しいものを再発行することもできます。その後、ユーザーがログアウトするか切断されたとき。最後に発行されたJWTはわずか10分で無効になります(この時点で攻撃者にとってはまったく役に立たなくなります)。
OAuth2.0
OAuth2.0の実装
AES(Advanced Encryption Standard)
共通鍵暗号アルゴリズムである。128ビット、192ビット、256ビットの鍵長が使える。
Wiki(https://ja.wikipedia.org/wiki/AdvancedEncryptionStandard)
XST(Cross-Site Tracing)
Webサーバの HTTP Trace 機能と XSS を組み合わせて、クライアントの情報を盗む。
HTTP TRACEメソッドはHTTPヘッダも含めてすべての情報をクライアントに表示するデバッグの機能。この機能とXSSを組み合わせて、cookie情報やBASIC認証のパスワードなどを盗む。
Tabnabbing / Reverse Tabnabbing
タブナビング(Tabnabbing)とは、Webブラウザーのタブ表示機能を利用したフィッシングの一種で、ブラウザーのアクティブでないタブの中身をユーザーが気づかないうちにSNSや銀行などの偽ログインページに書き変えてしまうという攻撃手法。
ARPスプーフィング
WPADハイジャック
DNSハイジャック
DNSキャッシュポイズニング
BGP経路ハイジャック
#security