Basic vulnerability
Upcoming SlideShare
Loading in...5
×
 

Basic vulnerability

on

  • 556 views

 

Statistics

Views

Total Views
556
Views on SlideShare
551
Embed Views
5

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 5

https://twitter.com 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Basic vulnerability Basic vulnerability Presentation Transcript

  • Basic Vulnerability @kanayannet 1
  • 仕事: Perl,Ruby,HTML,JS...etc 趣味: badminton,kayak,ski 自己紹介 #gunmaweb,#guruby,#tkbjs 名前: 金澤 宏昭 2
  • 日本語に訳すと…基本的な脆弱性 Basic Vulnerability とは.. 3
  • 最近、ID、パスワード漏洩 や サイト改ざん のニュースが多くなっている。 自分の作ったアプリは大丈夫なのか? と心配になり、今回、発表資料を整理する中 で自分の頭の中も整理しよう。 なぜ、話そうと思ったのか? 4
  • 1. サービス内容の抜け道を利用した手口 2. アプリケーションの挙動を利用した手口 3. サーバの抜け穴(設定漏れなど) Web の脆弱性には大きく3種類に分類 されると思います。 5
  • 今回は「1」と「2」について 話していきます。 6
  • ※これから話す「1」は現在、解消 もしくは対処方法があります。 7
  • 「友達の助けを借りる」機能 アカウントをロックされた場合、友人3人に セキュリティコードを取得してもらって入力すれ ば利用を再開できる「友達の助けを借りる」機能 (パスワードのリセットが可能) 1. サービス内容の抜け道を利用した手口 例: FaceBook 8
  • 攻撃者が facebook でなりすましアカウントを利 用して友達申請し、相手が承認してしまうと… 「友達の助けを借りる」機能を利用し、3つのな りすましアカウントに「セキュリティコード」を 取得させて、パスワードの変更し相手のアカウン トを乗っ取る。 1. サービス内容の抜け道を利用した手口 例: FaceBook 9
  • 1.「(偽の)友達の助けを借りる」を利用する 2.「セキュリティコード」を取得する 3. 相手のアカウントのパスワード 1. サービス内容の抜け道を利用した手口 例: FaceBook(まとめ) 10
  • 攻撃者がAmazonに連絡し、アカウントに新しい クレジットカード番号を登録したいと伝え、デタ ラメな番号を登録してもらう(氏名、請求書送付先 住所、メールアドレスをamazonは聞いてくるの で答える)。 1. サービス内容の抜け道を利用した手口 例:AMAZON 11
  • 一度電話を切って、その後、再度amazonに連絡 を行い、「アカウントにログインできなくなっ た」旨を伝える。 今度は氏名、請求書送付先住所、クレジットカー ド番号を聞かれるので、先ほどのクレジットカー ド番号を答える。これで指定した新しいメールア ドレスをアカウントに追加して貰える。 あとは…ご想像の通り。 1. サービス内容の抜け道を利用した手口 例:AMAZON 12
  • 1. Amazonに連絡し、アカウントに新しいクレジ ットカード番号を追加する 2. 再度連絡し新しいメールアドレスをアカウント に追加させる(「1」 のクレジットカード番号で追 加可能) 3. 新しいメールアドレスを使い..パスワード変更 や注文など出来てしまう。 1. サービス内容の抜け道を利用した手口 例:AMAZON(まとめ) 13
  • 1. サービス内容の抜け道を利用した手口 「ここまで確認を取れば教えても大丈夫だろう。」 という安易な考えでサービスを作ってしまうと陥り やすい抜け道なのかもしれません。 14
  • 2. アプリケーションの挙動を利用した手口 15
  • サイト間を横断して悪意のあるスク リプトを注入させる行為 2. アプリケーションの挙動を利用した手口 例:クロスサイトスクリプティング 16
  • 2. アプリケーションの挙動を利用した手口 例:クロスサイトスクリプティング <?php $target = $_POST[ target ]; ?> 検索ワード: <php? echo $target; ?> Form の入力を受け取る script(php) 17
  • 2. アプリケーションの挙動を利用した手口 例:クロスサイトスクリプティング 検査方法: 入力フォームに 「<script>alert('注意!!');</script>」 と打ちブラウザ上に警告ダイアログ が表示されたらアウト 18
  • 2. アプリケーションの挙動を利用した手口 例:クロスサイトスクリプティング alert ダイアログなら被害はないが、 任意のページに遷移させる location.href や cookie の値を ajax + jsonp で外部サイト に飛ばされたら... 19
  • 2. アプリケーションの挙動を利用した手口 例:injection 閲覧者からのデータの入力を利用し、プログ ラムに与えるパラメータにOS や SQLに対す る命令文を紛れ込ませて不正に操作する 20
  • 2. アプリケーションの挙動を利用した手口 例:OS injection $target = $_POST[ target ]; system( tar zcvf ./user/$target ); $target に 「¦rm -rf *」と入れると php の実行権限で消せるファイルやディレクトリを 消されてしまう。 21
  • 2. アプリケーションの挙動を利用した手口 例:SQL injection SELECT uid FROM user WHERE uid = ‘$uid’ AND password = ‘$password’ $uid = “kanazawa”; $password = “’ OR ‘A’=‘A”; と入れると次ページのSQL が実行 22
  • 2. アプリケーションの挙動を利用した手口 例:SQL injection SELECT uid FROM user WHERE uid = ’kanazawa’ AND password = ‘’ or ’A’ = ‘A’ パスワードが違ってもログイン 出来てしまう。 23
  • 2. アプリケーションの挙動を利用した手口 例:クロスサイトリクエストフォージェリ Webサイトにスクリプトやリダイレクト を仕込むことによって、閲覧者に意図せ ず別のWebサイト上で何らかの操作(書き 込み や 買い物)を行わせる攻撃手法。 24
  • 2. アプリケーションの挙動を利用した手口 例:クロスサイトリクエストフォージェリ 1. 攻撃者が用意したサーバに 外部サイト(ユーザ が利用する)へ自動的に飛ばすように仕掛けておく 2. 「1」の仕掛けの中に 買い物 や 書き込み時 の引数と同じものを付けておく 3. あとはユーザが攻撃者が用意したサイトに来る のを待つ 25
  • 2. アプリケーションの挙動を利用した手口 例:クロスサイトリクエストフォージェリ 防ぐには外部サイトからの遷移を防ぐようアプリ ケーション側でガードさせたり、ログイン済みで あったとしても、必ずパスワード入力させたりす る必要がある。 26
  • 2. アプリケーションの挙動を利用した手口 例:ブルートフォースアタック 暗号解読方法のひとつで、可能な組み 合わせを全て試すやり方。 (総当たり攻撃) 27
  • 2. アプリケーションの挙動を利用した手口 例:ブルートフォースアタック 1. 連続でパスワードをミスしたらブロックする 2. パスワードを長く複雑なものにする 3. ランダムの文字画像->入力させる (CAPTCHA) 防御方法 28
  • まとめ どれも、丁寧に作れば防げる手段... だけど、長々と開発していると忘れがち... 29
  • ご清聴ありがとうございました! 30