WEBアプリケーション
  セキュリティー
  株式会社 ミュートネット
     竹原 広佑
本日の予定


19:00   〜   19:10   自社・自己紹介な
ど
19:10   〜   19:50 WEBセキュリティ
19:50   〜   20:00 休憩
20:00   〜   20:30 WEBセキュリティ
20:30   〜   20:40 まとめ
20:40   〜   後片付け(終了)
本日の勉強会内容の
       対象者目安

・対象
 1.Webアプリケーションを作ったことがない。
 2.セキュリティについて何も知らない。
 3.セキュリティについての基本は幾つか知ってはいるが、
    意識したことは無い。

・非対象
 4.セキュリティの基礎についてしっかりと把握し、意識して
   コードを書いている。
 5.セキュリティについての最新動向もしっかりと学習し
   開発に生かしている。
WEBセキュリティー1
はじめに


『WEBアプリケーションの数が近年急増』

【背景】

様々なデバイスの普及(スマホ、タブレット等)

クラウド関連の成長
Webアプリケーション数と
    脆弱性報告数




出典元 IPA
(http://www.ipa.go.jp/security/vuln/report/vuln2012q3.html)
グラフ(1)


ソフトウェアに対してウェブサイト
 の脆弱性報告が非常に多い!

2008年後期に急増(titterなどの
 WEB関連のサービスが流行り始める)
グラフ(2)


グラフはユーザからの報告を
受けた把握できている数

実際にはwebサイトの約4割
が脆弱性を抱えている
 出典元 IT pro
 (http://itpro.nikkeibp.co.jp/article/NEWS/20120705/407596/)
グラフ(3)


IPA調べでは2012年3Q度の1営業日に対する
報告数はなんと。。




   3.96 件/日!!
脆弱性とは
脆弱性の種類(1)


ここで脆弱性として代表的な物をご紹介!
Cross Site Scripting(クロスサイトスクリプティング)
Parameter Manipulation(パラメータ改ざん)
Backdoor & Debug Options(バックドアとデバッグオプ
ション)
Forceful Browsing(強制的ブラウズ)
Path Traversal(パスの乗り越え)
SQL Injection(SQLの挿入)
OS Command Injection(OSコマンドの挿入)
Client Side Comment(クライアント側コメント)etc
Cross Site Scripting
(クロスサイトスクリプティング)



第三者が通常のサイト利用者に対して
自由にスクリプトを実行させる事がで
きる。

これにより、ユーザしか知り得ない情
報
(IDやパスなど)を不正に取得するこ
とが
Parameter Manipulation(パラメータ改ざん)
Path Traversal/Directory Traversal(パスの乗り越え)
        Forceful Browsing(強制的ブラウズ)



上記の3つに共通な部分はURLの文字列変更による攻撃

例)
http://○○○.com/○○○.php?userid=219
http://○○○.com/phpmyadmin
http://○○○.com/(インデックスページの表示)

上記の様なURLの場合、useridの部分を220や221に
変える事で別ユーザとしてアクセスできそう
Backdoor & Debug Options
   (バックドアとデバッグオプション)
         Client Side Comment
     (クライアント側コメント)



上記の2つは主に開発中に開発者のミスで生まれる
脆弱性。

開発中に仕込んでいた、本来踏むべき手順を無視
し、実行できるルートを削除し忘れていたため、本
来ならば起こり得ない事象を生む。

HTMLコメントは、攻撃者の格好のヒントになってし
まう恐れも。。。
SQL Injection / Second Order Injection(SQLの挿
                      入)
 OS Command Injection(OSコマンドの挿入)



SQLやOSコマンドを入力欄に入力し、本来で
あればエスケープすべきSQL文をしていない
それらの文字列がサーバによってコマンド
として実行されてしまう現象。
     例)
     ログイン画面、パスワード入力欄などに
     SQLを
     書きサーバに送信
脆弱性の割合




出典元 IPA
 (http://www.ipa.go.jp/security/vuln/report/vuln2012q3.html)
脆弱性まとめ


  脆弱性の中で特に代表的なもの
         それが
クロスサイトスクリプティング(XSS)
          と
    SQLインジェクション
         です!
XSSとSQLインジェクション
        詳細
XSS(クロスサイトスクリプティング)
         詳細(1)


ここでスクリプトを
  送り込む




                正規のWEBページ




   偽の関連サイト 等
   (悪意のある第三者)               一般ユーザ
余談
  クロスサイトリクエストフォー
       ジェリ
 リダイレクト




              正規のWEBページ




予めサーバに送信される情報を作成
   (悪意のある第三者)             一般ユーザ
XSS詳細(2)



 対策としてしっかりと
サニタイジング(無害化)
    しよう!
サニタイズとは?


Webサイトの入力フォームへの入力
データから、HTMLタグ、JavaScript、
SQL文などを検出し、それらを他の文
字列に置き換えること。
※エスケープなど無害化行為の総称
PHPでの対策


      出力時、
htmlspecialchars関数で
  簡単に出来ます!
XSS(クロスサイトスクリプティン
        グ)
      詳細(1)より

ここでスクリプトを
 無害化できる




                 正規のWEBページ




    偽の関連サイト 等
    (悪意のある第三者)               一般ユーザ
SQLインジェクション
            詳細(1)


  SQLインジェクション例)
             ID




ここの値を
$SQL = “Select * from user where id = ‘”.$id. ”’”;
        なんて形でやっていると・・・・
SQLインジェクション
           詳細(2)


  SQLインジェクション例)
               ID     A‘ or ‘A’ = ‘A’


          と入力されると展開後の文字列は

Select * from user where id = ‘A’ or ‘A’ = ‘A’;

     となり入力情報が
   なんであっても通ってしまう
SQLインジェクション
     詳細(3)



 前述のような形なら

まだ幾らかマシです!!
SQLインジェクション
       詳細(4)


SQLは;(セミコロン)で区切ることが出来るので
       ID    ‘;delete from user


            と入力されると

  後ろに続くdelete文が実行されま
  す!!
こんな事されたらもう・・・・
SQLインジェクション
     (5)


  対策として(;や‘は)
   エスケープすること!
特殊文字として認識させないように
  文字列として内部で扱う
また、入力時の禁止文字列としての
   対応も対策のひとつ!
SQLインジェクション
     (6)


エスケープ処理もきちんとしたし、
    これで一安心!!




ではないんです!
セカンドオーダインジェクション
      (1)



    大層な名前ですが
SQLインジェクションと本質
       は
     同じです!
セカンドオーダインジェクション
      (2)


  例として例えば以下の様な
    形でユーザ登録できる
 webアプリがあったとします。

    ID : admin’--
    pass : password
セカンドオーダインジェクション
      (3)

 もし、このWEBアプリがパスを変更できる
   としたら流れるクエリはこんな形

Update user set pass = ‘pass’ where id = ‘admin’—’;

  SQLは-をコメントとしているので、上記の
      SQLではadminのアカウントの
     パスワードが変更されてしまう。
セカンドオーダインジェクション
      (4)



  外部入力時のみではなく
  読み出しの値に対しても
 エスケープ処理を忘れずに!
(全てのクエリに対してエスケープは必須で
         す)
現在では・・


現在では、これらのサニタイジングを自動で(意識
せず)やってくれるフレームワークが多数存在して
         います。


しかし、それらのものにも脆弱性が存在しうるた
め、日々の最新アップデートは常に確認しておくべ
          き!
セキュリティーまとめ


   XSSはHTML出力時、サニタイジングを!
SQLインジェクションは、SQL生成時全ての場合に
        おいてエスケープ処理を!

昨今の開発ではフレームワークを使用している為、
  脆弱性を生むような自体は避けられてはいる。
 が、バージョンアップなどの動向については常に
      チェックするよう心がける。

More Related Content

PPTX
Webセキュリティ入門(xss)
PDF
(A7)cross site scripting
PDF
とある診断員とSQLインジェクション
PPTX
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
PDF
すぐできるWeb制作時のセキュリティTips
PDF
20190208 脆弱性と共生するには
PDF
とある診断員と色々厄介な脆弱性達
PPTX
サーバを作ってみた (4)
Webセキュリティ入門(xss)
(A7)cross site scripting
とある診断員とSQLインジェクション
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
すぐできるWeb制作時のセキュリティTips
20190208 脆弱性と共生するには
とある診断員と色々厄介な脆弱性達
サーバを作ってみた (4)

What's hot (17)

PPTX
Not CVE-2013-xxxx
PPTX
Djangoのセキュリティとその実装
PDF
owasp_evening_okinawa_7_owasp_top_10-2017_injection
PPTX
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
PDF
flaws.cloudに挑戦しよう!
PDF
Vue.js で XSS
PPTX
徳丸本に載っていないWebアプリケーションセキュリティ
PDF
体系的に学ばないXSSの話
PPTX
Owasp top10 HandsOn
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
PPTX
安全なPHPアプリケーションの作り方2014
PDF
XSS再入門
PPT
Iss seminar 2010709#1-upload
PDF
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
PPTX
Railsエンジニアのためのウェブセキュリティ入門
PPTX
WordPressとリスク管理 at 第42回 WordBench大阪
PDF
Swift愛好会vol37
Not CVE-2013-xxxx
Djangoのセキュリティとその実装
owasp_evening_okinawa_7_owasp_top_10-2017_injection
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
flaws.cloudに挑戦しよう!
Vue.js で XSS
徳丸本に載っていないWebアプリケーションセキュリティ
体系的に学ばないXSSの話
Owasp top10 HandsOn
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
安全なPHPアプリケーションの作り方2014
XSS再入門
Iss seminar 2010709#1-upload
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Railsエンジニアのためのウェブセキュリティ入門
WordPressとリスク管理 at 第42回 WordBench大阪
Swift愛好会vol37
Ad

Viewers also liked (20)

PDF
第2回勉強会 オブジェクト指向
PDF
バージョン管理#01 -Subversion編-
PDF
第3回勉強会 オブジェクト指向
PDF
Webアプリケーションのセキュリティ
PDF
第2回 モデリング勉強会
PPTX
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
PDF
06 オブジェクト指向の基礎
PDF
Version管理 1
PPT
オブジェクト指向最強
PPTX
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
PDF
だいたい30分で分かるオブジェクト指向
PDF
20120602 JavaOO道場 オブジェクト指向概論
PDF
第6回勉強会 はじめてのデータベース
PDF
超簡単!TELNETの話
PDF
CCNAセミナー資料
PDF
ドラえもんの世界をオブジェクト指向で
PPT
サーバ/インフラ構築入門(1)
PDF
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
PDF
デジタルメディア創作部勉強会「オブジェクト指向入門1」
PDF
ガロアの20年 #math_cafe
第2回勉強会 オブジェクト指向
バージョン管理#01 -Subversion編-
第3回勉強会 オブジェクト指向
Webアプリケーションのセキュリティ
第2回 モデリング勉強会
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
06 オブジェクト指向の基礎
Version管理 1
オブジェクト指向最強
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
だいたい30分で分かるオブジェクト指向
20120602 JavaOO道場 オブジェクト指向概論
第6回勉強会 はじめてのデータベース
超簡単!TELNETの話
CCNAセミナー資料
ドラえもんの世界をオブジェクト指向で
サーバ/インフラ構築入門(1)
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
ガロアの20年 #math_cafe
Ad

Similar to 第9回勉強会 Webセキュリティー (20)

PPTX
Webアプリケーション脆弱性体験ハンズオン
ODP
ライブコーディングとデモで理解するWebセキュリティの基礎
PPTX
ウェブセキュリティの常識
PPT
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
PDF
今日こそわかる、安全なWebアプリの作り方2010
PPTX
Browser andsecurity2015
PPT
セキュアプログラミング講座
PDF
徳丸本ができるまで
PPTX
Webアプリのセキュリティ対策入門(仮)
PDF
libinjection : SQLi から XSS へ by ニック・ガルブレス
PPTX
Webアプリって奥が深いんです
PPTX
Phpcon2015
PDF
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
PDF
最低限知っておきたい Webセキュリティーについて@MT関西
PDF
SQLインジェクション総”習”編
PDF
ウェブセキュリティ
PDF
ウェブアプリケーションセキュリティ超入門
PDF
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
PPTX
HTML5 Web アプリケーションのセキュリティ
PDF
XSSについて調べたこと
Webアプリケーション脆弱性体験ハンズオン
ライブコーディングとデモで理解するWebセキュリティの基礎
ウェブセキュリティの常識
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
今日こそわかる、安全なWebアプリの作り方2010
Browser andsecurity2015
セキュアプログラミング講座
徳丸本ができるまで
Webアプリのセキュリティ対策入門(仮)
libinjection : SQLi から XSS へ by ニック・ガルブレス
Webアプリって奥が深いんです
Phpcon2015
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
最低限知っておきたい Webセキュリティーについて@MT関西
SQLインジェクション総”習”編
ウェブセキュリティ
ウェブアプリケーションセキュリティ超入門
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
HTML5 Web アプリケーションのセキュリティ
XSSについて調べたこと

第9回勉強会 Webセキュリティー