カテゴリー別アーカイブ: Misc

ISO 27000の入力データ妥当性確認

セキュリティ標準では入力データの妥当性確認(入力バリデーション)が要求されています。具体的な方法はBS 7799(英国のJIS規格のような物、2000年に国際標準化)が作られた時(90年代後半)から記載されており、前の版までのISO 270001にも記載されています。2013年版のISO 27000ではセキュアプログラミングが普及したので具体的な方法などは省略しています。(日本では普及していないような。。)

セキュアプログラミングの基本中の基本がセキュリティ対策ではない、というような意味が全く解らない議論もあるのが現状です。

かなり昔に似たようなことを書いたようにも思いますが、記憶が定かではありません。今でも有効なので改めて(?)ブログにします。

続きを読む

ホワイトリストの作り方

ホワイトリストの考え方/作り方は難しくありません。しかし、間違えていることが少なくないようです。

GoogleがCSP(Content Security Policy – ホワイトリスト型のJavaScriptインジェクション対策)の利用状況を調べたところ以下のような結果が得られました。

we take a closer look at the practical benefits of adopting CSP and identify significant flaws in real-world deployments that result in bypasses in 94.72% of all distinct policies.

なんと、約95%のCSP利用サイトがCSPの保護が無効になるような設定になっていた、としています。

 

続きを読む

セッションデータインジェクション

PHP 5.6.25/7.010以降で修正されたセッションデータインジェクション

  • Fixed bug #72681 (PHP Session Data Injection Vulnerability). (CVE-2016-7125)

の解説です。

この脆弱性を利用するとオブジェクトインジェクションが簡単に行えます。結構深刻な問題ですが、あまり話題にはなっていないように思います。

続きを読む

プライベートサイトを作るならPHPのURL Rewriterを使う

クロスサイト・リクエスト(他のWebサイトから自分のサイトへURLリンクやPOSTでアクセスする)を制限したいWebアプリケーションは結構あります。例えば、ホームルーターの管理ページを作る場合、クロスサイト・リクエストは有用などころか有害です。ホームルーターの管理ページにはクロスサイト・リクエストによる脆弱性が多数報告されています。

PHPの基本機能を使えば、クロスサイト・リクエストを簡単かつ丸ごと拒否することができます。CSRFやXSS1を完全かつ簡単に拒否する仕組みを作れます。

続きを読む

投稿に追記 – ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション

RSSで購読されている方が結構いる(ありがとうございます!)のでエントリに追記したことをお知らせします。

ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜

このエントリの最後に「残存リスク」の項目を追加しました。

思っているより多くの残存リスクがあり、これらも考慮しなければならないことが解ると思います。

 

完全なSQLインジェクション対策

不完全なSQLインジェクション対策だけで、SQLインジェクション対策は万全、と誤解しているケースが少なくないです。

  • プリペアードクエリ/プレイスホルダを使ったSQLインジェクション対策でOK

は誤りです。「とにかくプレイスホルダを使おう」では脆弱性は無くなりません。

続きを読む

ソーシャルメディアフィンガープリントとその対策

ソーシャルメディアフィンガープリントがまた話題になっているようです。ソーシャルメディアフィンガープリントとは何か?およびその対策です。

ソーシャルメディアに限らず、ログインをサポートしているサイトであれば、全て対象です。

続きを読む