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

15
カカカカカカ カカカカカカカカカ カカカカカ 2016-07-16 Aki@nekoruri Xtone カカカ qpstudy 2016.07

Upload: masahiro-nakayama

Post on 12-Apr-2017

729 views

Category:

Technology


2 download

TRANSCRIPT

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

カジュアルにセキュリティテスト

はじめよう2016-07-16

Aki@nekoruriXtone ピザ会

qpstudy 2016.07

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

とは言ったけど

• まあ人として普通 SQL インジェクション対策とかはしてるよね。• 「ふつー Prepared Statement だし」• 「ふつー ORM だし」• 「ふつー NoSQL だし」?

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

動的クエリからは逃げられない

• テーブル名• 時系列データ

• カラム名• 検索条件• ソート条件

• IN 句• 数が変わる

• 複雑な複合クエリの高速化

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

人はミスをする

• どの ORM/DB ライブラリでも両方を用意している• パラメータ化される変数• パラメータ化されず展開される変数

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

人はミスをする

• どの ORM/DB ライブラリでも両方を用意している• パラメータ化される変数• パラメータ化されず展開される変数

• MyBatis3 の場合• #{absolutelySafeValue} ────  パラメータ化• ${absolutelySafeValue} ────  直接展開

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

人はミスをする

• どの ORM/DB ライブラリでも両方を用意している• パラメータ化される変数• パラメータ化されず展開される変数

• MyBatis3 の場合• #{absolutelySafeValue} ────  パラメータ化• ${absolutelySafeValue} ────  直接展開• どっちがどっちかわかるかぼけー! ( ノ `Д´) ノ彡┻━┻

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

それテストできるよ

• まあ人として普通テスト書いてるよね。• 自動テストしよう• 自動 CI しよう

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

「うっかり」から人類を守る 4 文字

• 以下の 4 文字をテストデータの末尾に入れるだけ!かんたん!

'"\;Special thanks to securitytesting slack #sqli members.

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

テストデータにこの 4 文字を入れる事で

• 基本的に例外でこけます。• 例外に落ちなくても結果が変わってテストがこけます。• 手間はほとんど掛かりません。

どうせテストデータなんてコピペでしょ?• 考えることが減りストレスも減って健康になります。

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

テストデータにこの 4 文字を入れる事で

• 基本的に例外でこけます。• 例外に落ちなくても結果が変わってテストがこけます。• 手間はほとんど掛かりません。 ← 重要

どうせテストデータなんてコピペでしょ?• 考えることが減りストレスも減って健康になります。

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

世の中 SQL インジェクションだけじゃない

• はい

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

セキュリティテスト CI• サービスの力を借りる• VAddy

http://vaddy.net/ja/• Walti

https://walti.io/• 自前できちんとセキュリティテスト• Selenium 等のエンドツーエンドテスト書いていれば、

OWASP ZAP 等の Proxy を挟んで脆弱性診断• Selenium と OWASP ZAP を使った自動脆弱性検査への道

http://www.pupha.net/archives/2467/※ 今自分のところでできているとは言っていない

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

まとめ

• テストデータの末尾に以下の 4 文字を入れよう

• カジュアルに外部サービスや診断ツールも使おう

'"\;