Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
カジュアルに
セキュリティテスト
はじめよう
2016-07-16
Aki@nekoruri
Xtone ピザ会
qpstudy 2016.07
とは言ったけど
• まあ人として普通SQLインジェクション対策とかはしてるよね。
• 「ふつーPrepared Statementだし」
• 「ふつーORMだし」
• 「ふつーNoSQLだし」?
動的クエリからは逃げられない
• テーブル名
• 時系列データ
• カラム名
• 検索条件
• ソート条件
• IN句
• 数が変わる
• 複雑な複合クエリの高速化
人はミスをする
• どのORM/DBライブラリでも両方を用意している
• パラメータ化される変数
• パラメータ化されず展開される変数
人はミスをする
• どのORM/DBライブラリでも両方を用意している
• パラメータ化される変数
• パラメータ化されず展開される変数
• MyBatis3の場合
• #{absolutelySafeValue} ──── パラメータ化
• $...
人はミスをする
• どのORM/DBライブラリでも両方を用意している
• パラメータ化される変数
• パラメータ化されず展開される変数
• MyBatis3の場合
• #{absolutelySafeValue} ──── パラメータ化
• $...
それテストできるよ
• まあ人として普通テスト書いてるよね。
• 自動テストしよう
• 自動CIしよう
「うっかり」から人類を守る4文字
• 以下の4文字をテストデータの末尾に入れるだけ!かんたん!
'";
Special thanks to securitytesting slack #sqli members.
テストデータにこの4文字を入れる事で
• 基本的に例外でこけます。
• 例外に落ちなくても結果が変わってテストがこけます。
• 手間はほとんど掛かりません。
どうせテストデータなんてコピペでしょ?
• 考えることが減りストレスも減って健康になり...
テストデータにこの4文字を入れる事で
• 基本的に例外でこけます。
• 例外に落ちなくても結果が変わってテストがこけます。
• 手間はほとんど掛かりません。 ← 重要
どうせテストデータなんてコピペでしょ?
• 考えることが減りストレスも減って...
世の中SQLインジェクションだけじゃない
• はい
セキュリティテストCI
• サービスの力を借りる
• VAddy
http://vaddy.net/ja/
• Walti
https://walti.io/
• 自前できちんとセキュリティテスト
• Selenium等のエンドツーエンドテスト...
まとめ
• テストデータの末尾に以下の4文字を入れよう
• カジュアルに外部サービスや診断ツールも使おう
'";
カジュアルにセキュリティテストはじめよう #qpstudy
カジュアルにセキュリティテストはじめよう #qpstudy
Upcoming SlideShare
Loading in …5
×

カジュアルに セキュリティテスト はじめよう #qpstudy

1,293 views

Published on

カジュアルに セキュリティテスト はじめよう
2016-07-16 #qpstudy 2016.07

内容は以下と同じです。
http://www.slideshare.net/nekoruri/20160520-casual-securitytest-ci

Published in: Technology
  • Be the first to comment

  • Be the first to like this

カジュアルに セキュリティテスト はじめよう #qpstudy

  1. 1. カジュアルに セキュリティテスト はじめよう 2016-07-16 Aki@nekoruri Xtone ピザ会 qpstudy 2016.07
  2. 2. とは言ったけど • まあ人として普通SQLインジェクション対策とかはしてるよね。 • 「ふつーPrepared Statementだし」 • 「ふつーORMだし」 • 「ふつーNoSQLだし」?
  3. 3. 動的クエリからは逃げられない • テーブル名 • 時系列データ • カラム名 • 検索条件 • ソート条件 • IN句 • 数が変わる • 複雑な複合クエリの高速化
  4. 4. 人はミスをする • どのORM/DBライブラリでも両方を用意している • パラメータ化される変数 • パラメータ化されず展開される変数
  5. 5. 人はミスをする • どのORM/DBライブラリでも両方を用意している • パラメータ化される変数 • パラメータ化されず展開される変数 • MyBatis3の場合 • #{absolutelySafeValue} ──── パラメータ化 • ${absolutelySafeValue} ──── 直接展開
  6. 6. 人はミスをする • どのORM/DBライブラリでも両方を用意している • パラメータ化される変数 • パラメータ化されず展開される変数 • MyBatis3の場合 • #{absolutelySafeValue} ──── パラメータ化 • ${absolutelySafeValue} ──── 直接展開 • どっちがどっちかわかるかぼけー!(ノ`Д´)ノ彡┻━┻
  7. 7. それテストできるよ • まあ人として普通テスト書いてるよね。 • 自動テストしよう • 自動CIしよう
  8. 8. 「うっかり」から人類を守る4文字 • 以下の4文字をテストデータの末尾に入れるだけ!かんたん! '"; Special thanks to securitytesting slack #sqli members.
  9. 9. テストデータにこの4文字を入れる事で • 基本的に例外でこけます。 • 例外に落ちなくても結果が変わってテストがこけます。 • 手間はほとんど掛かりません。 どうせテストデータなんてコピペでしょ? • 考えることが減りストレスも減って健康になります。
  10. 10. テストデータにこの4文字を入れる事で • 基本的に例外でこけます。 • 例外に落ちなくても結果が変わってテストがこけます。 • 手間はほとんど掛かりません。 ← 重要 どうせテストデータなんてコピペでしょ? • 考えることが減りストレスも減って健康になります。
  11. 11. 世の中SQLインジェクションだけじゃない • はい
  12. 12. セキュリティテストCI • サービスの力を借りる • VAddy http://vaddy.net/ja/ • Walti https://walti.io/ • 自前できちんとセキュリティテスト • Selenium等のエンドツーエンドテスト書いていれば、 OWASP ZAP等のProxyを挟んで脆弱性診断 • Selenium と OWASP ZAP を使った自動脆弱性検査への道 http://www.pupha.net/archives/2467/ ※今自分のところでできているとは言っていない
  13. 13. まとめ • テストデータの末尾に以下の4文字を入れよう • カジュアルに外部サービスや診断ツールも使おう '";

×