(はせがわ“Short talk of XSS – 短いXSSの話”)
某サイトのXSSの話(会場では伏せられてないが)
alertを使っていない、なぜ?→入力が21文字に限られていたから
XSSで任意のコード動かすには何文字必要?
まともなモノなら22文字あれば→21文字以下にしてみました。
>
→実際には22文字あれば成立できるかな?
単純なJavaScriptだけなら?
→一番短いのは6文字「$(URL)」(但しJQuery使用時に限る)
-----
(徳丸 KDDI新GWの「かんたんログイン」なりすまし問題を振り返る)
敢えてガラケー、攻撃者視点での話です。
かんたんログインの話はどうせ皆さん知ってると思うので割愛(分からない人はググって下さい)。
書籍に載っているような標準的な実装に対してアタックしてみよう。
(キャリアGWのIPアドレスとAgent情報をチェックして入れる/弾くを決める)
DNS Rebinding攻撃でアタックしてみる→当然成功(same origin policyは破られてしまう)
リクエストヘッダの書き換え
(EZブラウザはJavaScriptは動かないがPCSVは実行可能なので)
発売時点で、2010年に発表された手口(X_UO_SUBUNO)は封じられていた…が、X.UO.SUBUNOは攻撃が成立してしまった
多分実装依存だとは思うが、ヘッダが上書きされていた
PCSVの仕様で同期モードでのみ成立、ブラウザのURL欄に攻撃コード(JavaScript)を挿入する形で実施→能動型の攻撃なので、誰でも実施できてしまう
これは脆弱性?
私見だけど脆弱性とは言えない
リクエストヘッダが化けるのはCGI or PHPの問題(仕様)
対策は?
→基本的にいたちごっこなので、使わない事が一番の対策
→ケータイIDも使うのを止めましょう
-----
(赤嶺/クリス モバイルアプリケーションセキュリティ101)
今度はスマホの話。
昨年のスマートデバイスの出荷は、全世界で10億台。2012年度はその倍になるのではないかとの予測。
セキュリティの課題
・デバイスの盗難、紛失リスクが高い
・容易にroot化、脱獄が可能
・プラットフォーム、デバイス毎に機能が異なる
・パッチ、アップデートが困難
・スクリーンが狭い
・キー入力が面倒 など
OWASPモバイルセキュリティプロジェクトの話
1.機密データの識別と保護→暗号化されていないデータはデバイス上ではなく、サーバに置く。デバイス上に置かざるを得ない場合は暗号化する。
2.パスワードクレデンシャルの安全な管理→パスワードの代わりに、デバイス上に安全に保存できるトークンを用いる、ログに記録されていないか確認する、SNSはセキュアチャネルではなく、機密情報は置かない
(iOSにおけるPINコード、KeyChainのクラックのデモを実施)
3.送信時における機密データの保護→通信は暗号化を必須(強制)、その暗号化方式も安全な(信頼性の高い)方式を用いる
4.適切なユーザ認証、認可・セッション管理の実装(iOSアプリにおけるクライアント認証バイパスのデモ)
5.バックエンドAPI(サービス)とプラットフォーム(サーバ)の継続的堅牢化→当然サーバ側も堅牢である必要がある
6.3rd Partyサービス/アプリとのセキュアなデータ連携→使うライブラリ、APIは安心して利用できるモノかを確認する必要がある
7.ユーザデータの収集と利用に対する承諾の収集、保存の注意→個人情報絡みでもあるが、必要でない情報を集めようとするモノは要注意
8.有料リソースに対する権限のないアクセスを防止する対策の実装(Androidアプリにおける有料リソースに対する権限のないアクセスのデモ)
9.モバイルアプリのセキュアなディストリビューション/プロビジョニング
10.コードのランタイムインタプリテーションのエラー確認
-----
(上野/野渡 「OWASPの歩き方」)
サイトには、Webアプリに関する各種資料(ガイドラインとか、チュートリアルとか)が沢山転がっている
有名なのはOWASP Top 10 for (Year)→Webアプリにおける脆弱性のトップ10
ZAP Proxy→昔Parosと呼んでいたモノ(日本語化されています)
Webアブリ脆弱性スキャナ、Paros時代よりレスポンスが良くなったっぽい?
WebScarab→Proxy型のテストツール(日本語版は無いです)
ESAPI→Enterprise Security API
ASVS→セキュリティ評価のための検査標準、コードレビュー方式の要件(日本語版あります)
AntiSamy→HTML/CSSへの出力を安全に行うためのAPI、ポリシーファイルの変更で要件を変更できます
Development Guid→開発、構築、運用まで含めたガイドライン、特に運用部分まであるのは少し嬉しい限り、最新版は英語版のみです
Code Review Guide→コードレビューのガイドライン、代表的な脆弱性に対するサンプルとか対策のベストプラクティスが掲載されています
Testing Guide→Webサイト、アプリ含めたテストのガイドライン、全349Pの大作です、脆弱性別、機能別のテスト方法が載っています(必要なところからつまみ読みするのを推奨)
SAMM→ソフトウェアセキュリティ保障成熟度モデル
Contracting→セキュア・ソフトウェア開発契約付属書
現状
日本語版がないプロジェクトもいくつか、停滞しているのもいくつか
求むボランティア
某サイトのXSSの話(会場では伏せられてないが)
alertを使っていない、なぜ?→入力が21文字に限られていたから
XSSで任意のコード動かすには何文字必要?
まともなモノなら22文字あれば→21文字以下にしてみました。
>
→実際には22文字あれば成立できるかな?
単純なJavaScriptだけなら?
→一番短いのは6文字「$(URL)」(但しJQuery使用時に限る)
-----
(徳丸 KDDI新GWの「かんたんログイン」なりすまし問題を振り返る)
敢えてガラケー、攻撃者視点での話です。
かんたんログインの話はどうせ皆さん知ってると思うので割愛(分からない人はググって下さい)。
書籍に載っているような標準的な実装に対してアタックしてみよう。
(キャリアGWのIPアドレスとAgent情報をチェックして入れる/弾くを決める)
DNS Rebinding攻撃でアタックしてみる→当然成功(same origin policyは破られてしまう)
リクエストヘッダの書き換え
(EZブラウザはJavaScriptは動かないがPCSVは実行可能なので)
発売時点で、2010年に発表された手口(X_UO_SUBUNO)は封じられていた…が、X.UO.SUBUNOは攻撃が成立してしまった
多分実装依存だとは思うが、ヘッダが上書きされていた
PCSVの仕様で同期モードでのみ成立、ブラウザのURL欄に攻撃コード(JavaScript)を挿入する形で実施→能動型の攻撃なので、誰でも実施できてしまう
これは脆弱性?
私見だけど脆弱性とは言えない
リクエストヘッダが化けるのはCGI or PHPの問題(仕様)
対策は?
→基本的にいたちごっこなので、使わない事が一番の対策
→ケータイIDも使うのを止めましょう
-----
(赤嶺/クリス モバイルアプリケーションセキュリティ101)
今度はスマホの話。
昨年のスマートデバイスの出荷は、全世界で10億台。2012年度はその倍になるのではないかとの予測。
セキュリティの課題
・デバイスの盗難、紛失リスクが高い
・容易にroot化、脱獄が可能
・プラットフォーム、デバイス毎に機能が異なる
・パッチ、アップデートが困難
・スクリーンが狭い
・キー入力が面倒 など
OWASPモバイルセキュリティプロジェクトの話
1.機密データの識別と保護→暗号化されていないデータはデバイス上ではなく、サーバに置く。デバイス上に置かざるを得ない場合は暗号化する。
2.パスワードクレデンシャルの安全な管理→パスワードの代わりに、デバイス上に安全に保存できるトークンを用いる、ログに記録されていないか確認する、SNSはセキュアチャネルではなく、機密情報は置かない
(iOSにおけるPINコード、KeyChainのクラックのデモを実施)
3.送信時における機密データの保護→通信は暗号化を必須(強制)、その暗号化方式も安全な(信頼性の高い)方式を用いる
4.適切なユーザ認証、認可・セッション管理の実装(iOSアプリにおけるクライアント認証バイパスのデモ)
5.バックエンドAPI(サービス)とプラットフォーム(サーバ)の継続的堅牢化→当然サーバ側も堅牢である必要がある
6.3rd Partyサービス/アプリとのセキュアなデータ連携→使うライブラリ、APIは安心して利用できるモノかを確認する必要がある
7.ユーザデータの収集と利用に対する承諾の収集、保存の注意→個人情報絡みでもあるが、必要でない情報を集めようとするモノは要注意
8.有料リソースに対する権限のないアクセスを防止する対策の実装(Androidアプリにおける有料リソースに対する権限のないアクセスのデモ)
9.モバイルアプリのセキュアなディストリビューション/プロビジョニング
10.コードのランタイムインタプリテーションのエラー確認
-----
(上野/野渡 「OWASPの歩き方」)
サイトには、Webアプリに関する各種資料(ガイドラインとか、チュートリアルとか)が沢山転がっている
有名なのはOWASP Top 10 for (Year)→Webアプリにおける脆弱性のトップ10
ZAP Proxy→昔Parosと呼んでいたモノ(日本語化されています)
Webアブリ脆弱性スキャナ、Paros時代よりレスポンスが良くなったっぽい?
WebScarab→Proxy型のテストツール(日本語版は無いです)
ESAPI→Enterprise Security API
ASVS→セキュリティ評価のための検査標準、コードレビュー方式の要件(日本語版あります)
AntiSamy→HTML/CSSへの出力を安全に行うためのAPI、ポリシーファイルの変更で要件を変更できます
Development Guid→開発、構築、運用まで含めたガイドライン、特に運用部分まであるのは少し嬉しい限り、最新版は英語版のみです
Code Review Guide→コードレビューのガイドライン、代表的な脆弱性に対するサンプルとか対策のベストプラクティスが掲載されています
Testing Guide→Webサイト、アプリ含めたテストのガイドライン、全349Pの大作です、脆弱性別、機能別のテスト方法が載っています(必要なところからつまみ読みするのを推奨)
SAMM→ソフトウェアセキュリティ保障成熟度モデル
Contracting→セキュア・ソフトウェア開発契約付属書
現状
日本語版がないプロジェクトもいくつか、停滞しているのもいくつか
求むボランティア