Webアプリケーション診断入門 ハンズオン

Burp Suite Comminity Edition を使って、代表的な攻撃をデモサイトにして、攻撃手法と対策方法について学びました。 講義ではXSSとSQLインジェクションを手を動かしてやりました。

Webアプリケーションにおけるセキュリティの重要性

  • HTTPを利用している HTTPプロトコルは前提としてセキュリティを考慮していない
  • ユーザーはブラウザから見えるものが全て
  • ユーザーのITリテラシーには期待できない

セキュリティ団体

  • OWASP 脆弱性対策の団体
  • OWASP Top10 上記の団体がセキュリティ対策で特に気をつけるべき10個の脆弱性について記したもの

脆弱性報告数(ESET調べ)

  • 2016年 64471件
  • 2017年14709件

脆弱性報告が去年の2倍以上に増えている。 エンジニアがセキュリティに注視し始めたため報告件数が増えていると思われる。 今後、ますます増加の一途をたどると予想される。

脆弱性とは

  • 脆弱性 情報漏洩、サイトの改ざん、サービス利用不能
  • 広く知られている脆弱性はフレームワークや言語で対策が行われる場合が多い。
  • よくある脆弱性 ロジックの不備、 XSS

リダイレクトループ

cookieありきでログイン機能を実装しているとリダイレクトループが発生する。

ログイン認証ありのサイトで、cookieにログイン情報を持たせている。認証済みのユーザーのみが閲覧出来るコンテンツにcookieにログイン情報がないユーザーがアクセスした時にログインページへリダイレクトする仕様の場合、そもそもcookieが持てない方法でアクセスした場合にリダイレクトループが発生する。

cookieが持てない

  • メーラーソフト
  • アプリケーションの機能の一部
  • 古いガラケー(2009年以前)

テストツール

  • Burp Suite リバースプロキシ。通信をキャプチャするために使用する。

Burp Suite ハンズオン SQLインジェクション

  • Burp Sutite Comminity Edition を立ち上げて[Next]→[Start Burp]ボタンを押す。
  • 各種設定をする。
    • [Target]→[Scope]タブを選択する。Include Scopeの[Add]ボタンを押して、サイトのIPアドレスを入力する。
    • [Proxy]→[Options]タブを開いて、Intercept Client RequestのリストでAnd URL Is in target scope のチェックをオンにする。
    • Intercept Server ResponseIntercept responses based on the following rules のチェックボックスをオンにする。リストの Or Request Was Interceptedのチェックボックスをオンにする。
    • [Project Option]→[Connection]タブを開き、Out-of-Scope RequestsDrop out of scope requestをオンにする。
  • [proxy]→[intercept]タブを開いておく。
  • webブラウザのproxy設定で、127.0.0.1:8080を設定する。(ハンズオンではFireFoxを使用した。)
  • webブラウザでサイトにアクセスする。
  • webブラウザではレスポンスが返ってこないため、読み込み中になる。これはBurp Suiteがローカルプロキシとなり、リクエストを止めているためである。
  • Burpで[Foward]ボタンを押すと止めたリクエストを返す。

SQLインジェクション

  • 通常のSQL SELECT * FROM db.tbl WHERE name='wakui' AND password='password'
  • 脆弱なSQL SELECT * FROM db.tbl name='wakui'OR'a'='a' AND password='password'

SELECT * FROM db.tbl WHERE name='wakui'||' AND password='password'

OR 演算子は後半の文字列を評価しない

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

  • ターゲット
    webアプリケーションの利用者 他人のWebサイトへ、悪意のあるスクリプトを埋め込む

  • 罠ページへアクセス

  • 悪意のあるスクリプトを含んだECサイトへのリダイレクト
  • 攻撃スクリプを含むリダイレクトでECサイトへ接続する。

罠ページへ誘導する方法

  • サイトに似せた偽サイト
  • SNSのURL
  • メールからの誘導

Burp Suite XSS

  • RequetをInterseptする
  • paramを改ざんしてスクリプトを埋め込む。
  • ブラウザに意図しないコードを紛れ込ませることができる。

【対策】

  • サニタイズをする。
    フレームワークを使うと自動的にサニタイズしてくれる。

セキュリティを更に勉強するためのキーワード

  • SECCON CTF
  • OWASP

感想

セキュリティ入門勉強会ということもあり既に知っていることが多かった。自分の理解が間違っていなかったことが確認できたので参加してよかった。Burp Suite のハンズオンは基本的な使い方を学べた。日本語版はなくとっつきにくいが機能は充実しているので、使えるようになれば幅が広がると思う。セキュリティのプロが使っているツールのため覚える意味はある。