SlideShare a Scribd company logo
1 of 28
ここが変だよ、
   グローバルスタンダードの脆弱性対策
            ~入力値の考え方~




                  2012年3月27日
                      徳丸 浩
OWASP Japan 1st Local Chapter
Meeting まことにおめでとうございます




                                2
OWASPと言えば・・・



OWASP TOP 10


                  3
OWASP TOP 10とは



また上野宣か




  http://www.atmarkit.co.jp/fsecurity/column/ueno/47.html より引用   4
OWASP Top 10 2004
A1: Unvalidated Input
A2: Broken Access Control
A3: Broken Authentication and Session Management
A4: Cross Site Scripting
A5: Buffer Overflow
A6: Injection Flaws
A7: Improper Error Handling
A8: Insecure Storage
A9: Application Denial of Service
A10: Insecure Configuration Management

      https://www.owasp.org/index.php/Top_10_2004 参照   5
PCI DSSでも
6.5 すべての Webアプリケーションは「Open Web Application Security
    Project」ガイドラインなどの安全なコーディング・ガイドラインに基づい
    て開発する。コーディングの脆弱性を特定するために、カスタム・アプ
    リケーション・コードを見直す。次に示すような、ソフトウェア開発プロ
    セスにおける共通のコーディング脆弱性の防止に努める。
6.5.1 入力データの未検証(Unvalidated input)
6.5.2 アクセス制御の不徹底(例えば、ユーザーIDの悪用)
6.5.3 認証・セッション管理の不徹底(アカウント信用証明とセッション・クッキーの使用)
6.5.4 XSS(cross-site scripting)攻撃
6.5.5 バッファ・オーバーフロー
6.5.6 入力不正(例えば、SQL=structured query languageインジェクション)
6.5.7 不適切なエラー処理
6.5.8 安全でない保管
6.5.9 サービスの拒否。
6.5.10 信頼できない設定管理

  PCI DSS v1.1 日本語訳 https://www.pcisecuritystandards.org/security_standards/documents.php より引用   6
「入力データの未検証」ってなんだ?




                    7
CWEに聞いてみよう




             8
CWEとは
 共通脆弱性タイプ一覧CWE(Common Weakness Enumeration)は、ソフトウェアにおけ
るセキュリティ上の弱点(脆弱性)の種類を識別するための共通の基準を目指しています。
 1999年頃から米国政府の支援を受けた非営利団体のMITREが中心となり仕様策定が行
われ、2006年3月に最初の原案が公開されました。その後、40を超えるベンダーや研究機
関が協力して仕様改善や内容拡充が行われ、2008年9月9日にCWEバージョン1.0が公開
されました。
 CWEでは、SQLインジェクション、クロスサイト・スクリプティング、バッファオーバーフロー
など、多種多様にわたるソフトウェアの脆弱性を識別するための、脆弱性の種類(脆弱性タ
イプ)の一覧を体系化して提供しています。CWEを用いると、ソフトウェア開発者やセキュリ
ティ専門家などに次のようなメリットがあります。
1. ソフトウェアのアーキテクチャ、デザイン、コードに内在する脆弱性に関して、共通の言葉
   で議論できるようになる。
2. 脆弱性検査ツールなど、ソフトウェアのセキュリティを向上させるための、ツールの標準
   の評価尺度として使用できる。
3. 脆弱性の原因を認識し、脆弱性の低減を行い、再発を防止するための共通の基準として
   活用できる。
 現在、CWEは、NISTのNVD、OWASPのTop Ten Projectや、いくつかのセキュリティベ
ンダーなどで実際に活用されています。
                          http://www.ipa.go.jp/security/vuln/CWE.html より引用   9
http://www.ipa.go.jp/security/vuln/CWE.html より引用 10
http://cwe.mitre.org/data/definitions/20.html より引用




http://jvndb.jvn.jp/ja/cwe/CWE-20.html より引用           11
CWE-20範囲広すぎwww




       http://www.ipa.go.jp/security/vuln/CWE.html より引用 12
そもそも入力値検証でよいのか?




                  13
米国の書籍の解説例




            14
バリデーション至上主義な説解説例1
   ホワイトリストフィルタのルールは、甘過ぎても厳格過ぎても困ります。厳格すぎるパターンは、攻
  撃者としては付け入る隙を見つけにくくなるため、アプリケーションのセキュリティという観点からは
  容認されます。しかし利便性の観点からは、問題となります。正当なユーザーの実在する電子メー
  ルアドレスが拒否された場合、そのユーザーはサイトを利用できなくなり、大きな損害を被るおそれ
  があります。
   試行錯誤の末、電子メールアドレスについては、次のようなルールに落ち着きます。
  • アドレスの名前部分は英数字を基本とし、オプションとしてハイフンとピリオドも使用できる。ハイ
    フンまたはピリオドの次には、英数字が続かなければならない
  • 名前部分の次には、@記号が続かなければならない
  • @記号の次には、アドレスのドメイン部分が続かなければならない。この部分は、最低でも1つ、
    最高で3つのテキストブロックで構成される必要がある。各テキストブロックは、英数字を基本都
    市、オプションでハイフンも使用でき、最後がピリオドで終わる。ハイフンの次には英数字が続か
    なければならない。
  • アドレスの最後には.com、.net、.orgなどの有効なトップレベルドメインが、1つだけ置かれなけ
    ればならない
  やれやれ、電子メールアドレスのように単純に思えるものでも、ずいぶん複雑なルールとなりました。
  【略】


Billy Hoffman、Bryan Sullivan著、GIJOE監訳、渡邉 了介訳「Ajaxセキュリティ」、毎日コミュニケーションズ、2008年、P112より引用   15
バリデーション至上主義な説解説例1
   ホワイトリストフィルタのルールは、甘過ぎても厳格過ぎても困ります。厳格すぎるパターンは、攻
  撃者としては付け入る隙を見つけにくくなるため、アプリケーションのセキュリティという観点からは
  容認されます。しかし利便性の観点からは、問題となります。正当なユーザーの実在する電子メー
  ルアドレスが拒否された場合、そのユーザーはサイトを利用できなくなり、大きな損害を被るおそれ
  があります。
   試行錯誤の末、電子メールアドレスについては、次のようなルールに落ち着きます。
  • アドレスの名前部分は英数字を基本とし、オプションとしてハイフンとピリオドも使用できる。ハイ
    フンまたはピリオドの次には、英数字が続かなければならない
  • 名前部分の次には、@記号が続かなければならない
  • @記号の次には、アドレスのドメイン部分が続かなければならない。この部分は、最低でも1つ、
    最高で3つのテキストブロックで構成される必要がある。各テキストブロックは、英数字を基本都
    市、オプションでハイフンも使用でき、最後がピリオドで終わる。ハイフンの次には英数字が続か
    なければならない。                 RFC
                                    5322
  • アドレスの最後には.com、.net、.orgなどの有効なトップレベルドメインが、1つだけ置かれなけ
    ればならない                          適合
  やれやれ、電子メールアドレスのように単純に思えるものでも、ずいぶん複雑なルールとなりました。
  【略】


Billy Hoffman、Bryan Sullivan著、GIJOE監訳、渡邉 了介訳「Ajaxセキュリティ」、毎日コミュニケーションズ、2008年、P112より引用   16
バリデーション至上主義な説解説例2



                             ???



                                                   これは無意味




Billy Hoffman、Bryan Sullivan著、GIJOE監訳、渡邉 了介訳「Ajaxセキュリティ」、毎日コミュニケーションズ、2008年、P113より引用



• このような方法では効果が薄いだけではなく、ケースバイケーズで正しい方
  法を考えなければならない点が問題
• 脆弱性対策は、もっと機械的に適用できるものでないと実用的でない


                                                                                   17
バリデーションで対応できる脆弱性は?
脆弱性パターン名                   対応
クロスサイト・スクリプティング            △
SQLインジェクション(文字列)           △
SQLインジェクション(数値)            ○
クロスサイト・リクエストフォージェリ         ×
推測可能なセッションID               ×
URL埋め込みのセッションID            ×
セッションIDの固定化                ×
オープンリダイレクタ                 ○
HTTPヘッダ・インジェクション(Cookie)   △
HTTPヘッダ・インジェクション(リダイレクト)   ○
メールヘッダ・インジェクション            ○
ディレクトリ・トラバーサル              ○    凡例
OSコマンド・インジェクション            △    ○:対応可
                                △:仕様次第
ファイルインクルード攻撃               ○    ×:対応不可
evalインジェクション               △        18
いったんまとめ
• Validationは、米国(および、“グローバルスタンダード”)では
  セキュリティ施策として極めて重要視されている
• Validationを「セキュリティ施策」と見る場合、メリットは、「多く
  の脆弱性に効き目がある」という「万能性」
• 同じく、デメリットは、「根本的解決でない」こと
 – 「入力値」に着目すると、「セカンドオーダーSQLインジェクション」の
   ような本質的でないものにも注意が必要になる
 – 続きは
いったんまとめ
• Validationは、米国(および、“グローバルスタンダード”)では
  セキュリティ施策として極めて重要視されている
• Validationを「セキュリティ施策」と見る場合、メリットは、「多く
  の脆弱性に効き目がある」という「万能性」
• 同じく、デメリットは、「根本的解決でない」こと
 – 「入力値」に着目すると、「セカンドオーダーSQLインジェクション」の
   ような本質的でないものにも注意が必要になる
 – 続きは




                               また上野宣か
                                                                     20
      http://www.atmarkit.co.jp/fsecurity/column/ueno/42.html より引用
いや、待て
“アメリカ人”を一括りにするな




                  21
違う意見の人もいるはず…




               22
OWASP Top 10 2007
A1: Cross Site Scripting (XSS)
A2: Injection Flaws
A3: Malicious File Execution
A4: Insecure Direct Object Reference
A5: Cross Site Request Forgery (CSRF)
A6: Information Leakage and Improper Error Handling
A7: Broken Authentication and Session Management
A8: Insecure Cryptographic Storage
A9: Insecure Communications        Validation
A10: Failure to Restrict URL Access消えている

                                                      23
    https://www.owasp.org/index.php/Top_10_2007 参照
OWASP Top 10 2010
A1: Injection
A2: Cross-Site Scripting (XSS)
A3: Broken Authentication and Session Management
A4: Insecure Direct Object References
A5: Cross-Site Request Forgery (CSRF)
A6: Security Misconfiguration
                                                 Validation
A7: Insecure Cryptographic Storage
                                                 ないよ
A8: Failure to Restrict URL Access
A9: Insufficient Transport Layer Protection
A10: Unvalidated Redirects and Forwards

                                                              24
    https://www.owasp.org/index.php/Top_10_2010 参照
CWE-20の補足を読むと…




      http://cwe.mitre.org/data/definitions/20.html より引用




         http://jvndb.jvn.jp/ja/cwe/CWE-20.html より引用

                                                       25
お前とはうまい酒が飲めそうだ




                 26
まとめ
• OWASP Top 10 2004はかなり変だった
 – 2007, 2010 はかなり良くなったが、ツッコミどころはアリ
• 皆さん、バリデーションはちゃんとしましょうね
 – それが「セキュリティ対策」かどうかは、“どうでもいい”
• バリデーションの“万能性”に惑わされずに、脆弱性対処を淡々
  とやりましょう
 – それが漏れのない近道
• 米国でも似たような意見を持っている人は多いと予想
 – 私がまだ知らないだけで…まだ見ぬ同士よ!
• 相手が米国人だろうが有名人だろうが、言うべきことは言うぜ
 – OWASP Japanの存在感を!
 – 皆でOWASP Japanを盛り上げよう
                                      27
Thank you!


             28

More Related Content

What's hot

今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)Sen Ueno
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWSzaki4649
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達zaki4649
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
コンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについてコンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについてYASUKAZU NAGATOMI
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本kazuki kumagai
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
徳丸本ができるまで
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまでHiroshi Tokumaru
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証についてTakeo Noda
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクションzaki4649
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線MeetupMasatoshi Tada
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Yahoo!デベロッパーネットワーク
 
Real World Azure RBAC
Real World Azure RBACReal World Azure RBAC
Real World Azure RBACToru Makabe
 
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよMasakazu Ikeda
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 

What's hot (20)

今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
コンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについてコンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについて
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
徳丸本ができるまで
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまで
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクション
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
 
[AVTOKYO 2017] What is red team?
[AVTOKYO 2017] What is red team?[AVTOKYO 2017] What is red team?
[AVTOKYO 2017] What is red team?
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
 
Real World Azure RBAC
Real World Azure RBACReal World Azure RBAC
Real World Azure RBAC
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 

Similar to ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~

ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?Yasuo Ohgaki
 
OWASP Top 10 2017 RC1について
OWASP Top 10 2017 RC1についてOWASP Top 10 2017 RC1について
OWASP Top 10 2017 RC1についてDaiki Ichinose
 
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)Yuya Takeyama
 
第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティーhakoika-itwg
 
Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824Masakazu Ikeda
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014Hiroshi Tokumaru
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはRiotaro OKADA
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかSen Ueno
 
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門Hiroshi Tokumaru
 
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes [CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes CODE BLUE
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発Junji Imaoka
 
The Shift Left Path and OWASP
The Shift Left Path and OWASPThe Shift Left Path and OWASP
The Shift Left Path and OWASPRiotaro OKADA
 
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010Hiroshi Tokumaru
 
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)Sen Ueno
 
AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)Yuto Ichikawa
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所真吾 吉田
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsyoshinori matsumoto
 
Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Yurika Kakiuchi
 
クラウド移行で解決されるセキュリティとリスク 公開用
クラウド移行で解決されるセキュリティとリスク 公開用クラウド移行で解決されるセキュリティとリスク 公開用
クラウド移行で解決されるセキュリティとリスク 公開用Lumin Hacker
 

Similar to ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ (20)

ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?
 
OWASP Top 10 2017 RC1について
OWASP Top 10 2017 RC1についてOWASP Top 10 2017 RC1について
OWASP Top 10 2017 RC1について
 
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
 
第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー
 
Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するには
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
 
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
 
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes [CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発
 
The Shift Left Path and OWASP
The Shift Left Path and OWASPThe Shift Left Path and OWASP
The Shift Left Path and OWASP
 
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
 
AWS Black Belt Online Seminar 2017 AWS WAF
AWS Black Belt Online Seminar 2017 AWS WAFAWS Black Belt Online Seminar 2017 AWS WAF
AWS Black Belt Online Seminar 2017 AWS WAF
 
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
 
AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTips
 
Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策
 
クラウド移行で解決されるセキュリティとリスク 公開用
クラウド移行で解決されるセキュリティとリスク 公開用クラウド移行で解決されるセキュリティとリスク 公開用
クラウド移行で解決されるセキュリティとリスク 公開用
 

More from Hiroshi Tokumaru

SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説するウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説するHiroshi Tokumaru
 
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証するHiroshi Tokumaru
 
SQLインジェクション再考
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考Hiroshi Tokumaru
 
徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入するHiroshi Tokumaru
 
introduction to unsafe deserialization part1
introduction to unsafe deserialization part1introduction to unsafe deserialization part1
introduction to unsafe deserialization part1Hiroshi Tokumaru
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方Hiroshi Tokumaru
 
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)Hiroshi Tokumaru
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Hiroshi Tokumaru
 
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018Hiroshi Tokumaru
 
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようHiroshi Tokumaru
 
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座Hiroshi Tokumaru
 
ウェブセキュリティの常識
ウェブセキュリティの常識ウェブセキュリティの常識
ウェブセキュリティの常識Hiroshi Tokumaru
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則Hiroshi Tokumaru
 
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門Hiroshi Tokumaru
 
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かりウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かりHiroshi Tokumaru
 
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くHiroshi Tokumaru
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016Hiroshi Tokumaru
 
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうCMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうHiroshi Tokumaru
 

More from Hiroshi Tokumaru (20)

SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説するウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
 
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
 
SQLインジェクション再考
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考
 
徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する
 
introduction to unsafe deserialization part1
introduction to unsafe deserialization part1introduction to unsafe deserialization part1
introduction to unsafe deserialization part1
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
 
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
 
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
 
秀スクリプトの話
秀スクリプトの話秀スクリプトの話
秀スクリプトの話
 
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
 
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
 
ウェブセキュリティの常識
ウェブセキュリティの常識ウェブセキュリティの常識
ウェブセキュリティの常識
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
 
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かりウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
 
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
 
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうCMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~

  • 1. ここが変だよ、 グローバルスタンダードの脆弱性対策 ~入力値の考え方~ 2012年3月27日 徳丸 浩
  • 2. OWASP Japan 1st Local Chapter Meeting まことにおめでとうございます 2
  • 4. OWASP TOP 10とは また上野宣か http://www.atmarkit.co.jp/fsecurity/column/ueno/47.html より引用 4
  • 5. OWASP Top 10 2004 A1: Unvalidated Input A2: Broken Access Control A3: Broken Authentication and Session Management A4: Cross Site Scripting A5: Buffer Overflow A6: Injection Flaws A7: Improper Error Handling A8: Insecure Storage A9: Application Denial of Service A10: Insecure Configuration Management https://www.owasp.org/index.php/Top_10_2004 参照 5
  • 6. PCI DSSでも 6.5 すべての Webアプリケーションは「Open Web Application Security Project」ガイドラインなどの安全なコーディング・ガイドラインに基づい て開発する。コーディングの脆弱性を特定するために、カスタム・アプ リケーション・コードを見直す。次に示すような、ソフトウェア開発プロ セスにおける共通のコーディング脆弱性の防止に努める。 6.5.1 入力データの未検証(Unvalidated input) 6.5.2 アクセス制御の不徹底(例えば、ユーザーIDの悪用) 6.5.3 認証・セッション管理の不徹底(アカウント信用証明とセッション・クッキーの使用) 6.5.4 XSS(cross-site scripting)攻撃 6.5.5 バッファ・オーバーフロー 6.5.6 入力不正(例えば、SQL=structured query languageインジェクション) 6.5.7 不適切なエラー処理 6.5.8 安全でない保管 6.5.9 サービスの拒否。 6.5.10 信頼できない設定管理 PCI DSS v1.1 日本語訳 https://www.pcisecuritystandards.org/security_standards/documents.php より引用 6
  • 9. CWEとは 共通脆弱性タイプ一覧CWE(Common Weakness Enumeration)は、ソフトウェアにおけ るセキュリティ上の弱点(脆弱性)の種類を識別するための共通の基準を目指しています。 1999年頃から米国政府の支援を受けた非営利団体のMITREが中心となり仕様策定が行 われ、2006年3月に最初の原案が公開されました。その後、40を超えるベンダーや研究機 関が協力して仕様改善や内容拡充が行われ、2008年9月9日にCWEバージョン1.0が公開 されました。 CWEでは、SQLインジェクション、クロスサイト・スクリプティング、バッファオーバーフロー など、多種多様にわたるソフトウェアの脆弱性を識別するための、脆弱性の種類(脆弱性タ イプ)の一覧を体系化して提供しています。CWEを用いると、ソフトウェア開発者やセキュリ ティ専門家などに次のようなメリットがあります。 1. ソフトウェアのアーキテクチャ、デザイン、コードに内在する脆弱性に関して、共通の言葉 で議論できるようになる。 2. 脆弱性検査ツールなど、ソフトウェアのセキュリティを向上させるための、ツールの標準 の評価尺度として使用できる。 3. 脆弱性の原因を認識し、脆弱性の低減を行い、再発を防止するための共通の基準として 活用できる。 現在、CWEは、NISTのNVD、OWASPのTop Ten Projectや、いくつかのセキュリティベ ンダーなどで実際に活用されています。 http://www.ipa.go.jp/security/vuln/CWE.html より引用 9
  • 12. CWE-20範囲広すぎwww http://www.ipa.go.jp/security/vuln/CWE.html より引用 12
  • 15. バリデーション至上主義な説解説例1 ホワイトリストフィルタのルールは、甘過ぎても厳格過ぎても困ります。厳格すぎるパターンは、攻 撃者としては付け入る隙を見つけにくくなるため、アプリケーションのセキュリティという観点からは 容認されます。しかし利便性の観点からは、問題となります。正当なユーザーの実在する電子メー ルアドレスが拒否された場合、そのユーザーはサイトを利用できなくなり、大きな損害を被るおそれ があります。 試行錯誤の末、電子メールアドレスについては、次のようなルールに落ち着きます。 • アドレスの名前部分は英数字を基本とし、オプションとしてハイフンとピリオドも使用できる。ハイ フンまたはピリオドの次には、英数字が続かなければならない • 名前部分の次には、@記号が続かなければならない • @記号の次には、アドレスのドメイン部分が続かなければならない。この部分は、最低でも1つ、 最高で3つのテキストブロックで構成される必要がある。各テキストブロックは、英数字を基本都 市、オプションでハイフンも使用でき、最後がピリオドで終わる。ハイフンの次には英数字が続か なければならない。 • アドレスの最後には.com、.net、.orgなどの有効なトップレベルドメインが、1つだけ置かれなけ ればならない やれやれ、電子メールアドレスのように単純に思えるものでも、ずいぶん複雑なルールとなりました。 【略】 Billy Hoffman、Bryan Sullivan著、GIJOE監訳、渡邉 了介訳「Ajaxセキュリティ」、毎日コミュニケーションズ、2008年、P112より引用 15
  • 16. バリデーション至上主義な説解説例1 ホワイトリストフィルタのルールは、甘過ぎても厳格過ぎても困ります。厳格すぎるパターンは、攻 撃者としては付け入る隙を見つけにくくなるため、アプリケーションのセキュリティという観点からは 容認されます。しかし利便性の観点からは、問題となります。正当なユーザーの実在する電子メー ルアドレスが拒否された場合、そのユーザーはサイトを利用できなくなり、大きな損害を被るおそれ があります。 試行錯誤の末、電子メールアドレスについては、次のようなルールに落ち着きます。 • アドレスの名前部分は英数字を基本とし、オプションとしてハイフンとピリオドも使用できる。ハイ フンまたはピリオドの次には、英数字が続かなければならない • 名前部分の次には、@記号が続かなければならない • @記号の次には、アドレスのドメイン部分が続かなければならない。この部分は、最低でも1つ、 最高で3つのテキストブロックで構成される必要がある。各テキストブロックは、英数字を基本都 市、オプションでハイフンも使用でき、最後がピリオドで終わる。ハイフンの次には英数字が続か なければならない。 RFC 5322 • アドレスの最後には.com、.net、.orgなどの有効なトップレベルドメインが、1つだけ置かれなけ ればならない 適合 やれやれ、電子メールアドレスのように単純に思えるものでも、ずいぶん複雑なルールとなりました。 【略】 Billy Hoffman、Bryan Sullivan著、GIJOE監訳、渡邉 了介訳「Ajaxセキュリティ」、毎日コミュニケーションズ、2008年、P112より引用 16
  • 17. バリデーション至上主義な説解説例2 ??? これは無意味 Billy Hoffman、Bryan Sullivan著、GIJOE監訳、渡邉 了介訳「Ajaxセキュリティ」、毎日コミュニケーションズ、2008年、P113より引用 • このような方法では効果が薄いだけではなく、ケースバイケーズで正しい方 法を考えなければならない点が問題 • 脆弱性対策は、もっと機械的に適用できるものでないと実用的でない 17
  • 18. バリデーションで対応できる脆弱性は? 脆弱性パターン名 対応 クロスサイト・スクリプティング △ SQLインジェクション(文字列) △ SQLインジェクション(数値) ○ クロスサイト・リクエストフォージェリ × 推測可能なセッションID × URL埋め込みのセッションID × セッションIDの固定化 × オープンリダイレクタ ○ HTTPヘッダ・インジェクション(Cookie) △ HTTPヘッダ・インジェクション(リダイレクト) ○ メールヘッダ・インジェクション ○ ディレクトリ・トラバーサル ○ 凡例 OSコマンド・インジェクション △ ○:対応可 △:仕様次第 ファイルインクルード攻撃 ○ ×:対応不可 evalインジェクション △ 18
  • 19. いったんまとめ • Validationは、米国(および、“グローバルスタンダード”)では セキュリティ施策として極めて重要視されている • Validationを「セキュリティ施策」と見る場合、メリットは、「多く の脆弱性に効き目がある」という「万能性」 • 同じく、デメリットは、「根本的解決でない」こと – 「入力値」に着目すると、「セカンドオーダーSQLインジェクション」の ような本質的でないものにも注意が必要になる – 続きは
  • 20. いったんまとめ • Validationは、米国(および、“グローバルスタンダード”)では セキュリティ施策として極めて重要視されている • Validationを「セキュリティ施策」と見る場合、メリットは、「多く の脆弱性に効き目がある」という「万能性」 • 同じく、デメリットは、「根本的解決でない」こと – 「入力値」に着目すると、「セカンドオーダーSQLインジェクション」の ような本質的でないものにも注意が必要になる – 続きは また上野宣か 20 http://www.atmarkit.co.jp/fsecurity/column/ueno/42.html より引用
  • 23. OWASP Top 10 2007 A1: Cross Site Scripting (XSS) A2: Injection Flaws A3: Malicious File Execution A4: Insecure Direct Object Reference A5: Cross Site Request Forgery (CSRF) A6: Information Leakage and Improper Error Handling A7: Broken Authentication and Session Management A8: Insecure Cryptographic Storage A9: Insecure Communications Validation A10: Failure to Restrict URL Access消えている 23 https://www.owasp.org/index.php/Top_10_2007 参照
  • 24. OWASP Top 10 2010 A1: Injection A2: Cross-Site Scripting (XSS) A3: Broken Authentication and Session Management A4: Insecure Direct Object References A5: Cross-Site Request Forgery (CSRF) A6: Security Misconfiguration Validation A7: Insecure Cryptographic Storage ないよ A8: Failure to Restrict URL Access A9: Insufficient Transport Layer Protection A10: Unvalidated Redirects and Forwards 24 https://www.owasp.org/index.php/Top_10_2010 参照
  • 25. CWE-20の補足を読むと… http://cwe.mitre.org/data/definitions/20.html より引用 http://jvndb.jvn.jp/ja/cwe/CWE-20.html より引用 25
  • 27. まとめ • OWASP Top 10 2004はかなり変だった – 2007, 2010 はかなり良くなったが、ツッコミどころはアリ • 皆さん、バリデーションはちゃんとしましょうね – それが「セキュリティ対策」かどうかは、“どうでもいい” • バリデーションの“万能性”に惑わされずに、脆弱性対処を淡々 とやりましょう – それが漏れのない近道 • 米国でも似たような意見を持っている人は多いと予想 – 私がまだ知らないだけで…まだ見ぬ同士よ! • 相手が米国人だろうが有名人だろうが、言うべきことは言うぜ – OWASP Japanの存在感を! – 皆でOWASP Japanを盛り上げよう 27