13
カジュアルに セキュリティテスト はじめよう 2016-05-20 Aki@nekoruri Xtone ピザ会

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

Embed Size (px)

Citation preview

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

はじめよう2016-05-20

Aki@nekoruri

Xtone ピザ会

とは言ったけど

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

• 「ふつーORMだし」

• 「ふつーNoSQLだし」?

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

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

• カラム名• 検索条件

• ソート条件

• IN句• 数が変わる

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

人はミスをする

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

• パラメータ化されず展開される変数

人はミスをする

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

• パラメータ化されず展開される変数

• MyBatis3の場合• #{absolutelySafeValue} ──── パラメータ化

• ${absolutelySafeValue} ──── 直接展開

• どっちがどっちかわかるかぼけー!(ノ`Д´)ノ彡┻━┻

それテストできるよ

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

• 自動テストしよう

• 自動CIしよう

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

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

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

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

• 基本的に例外でこけます。

• 例外に落ちなくても結果が変わってテストがこけます。

• 手間はほとんど掛かりません。 ← 重要どうせテストデータなんてコピペでしょ?

• 考えることが減りストレスも減って健康になります。

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

• はい

セキュリティテストCI

• サービスの力を借りる• VAddy

http://vaddy.net/ja/

• Waltihttps://walti.io/

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

OWASP ZAP等のProxyを挟んで脆弱性診断

• Selenium と OWASP ZAP を使った自動脆弱性検査への道http://www.pupha.net/archives/2467/

※今自分のところでできているとは言っていない

まとめ

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

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

'"¥;