Development
PHPとXML eXternal Entity(XXE)対策
2017年版OWASP TOP 10がリリースされました。新しくA4としてXXE、A10としてInsufficient Logging & Monitoringが入りました。今回はXXE対策を紹介ます。XXE対策は簡単です。 XXEは「リクエストのインジェクション」と考えると解りやすく、「リクエストのインジェクション」と理解すれば他の類似攻撃パターン…
実は守れていないローカルネットワーク
ファイアーウォールで守っている、プロキシも使っている、だからインターネットからローカルネットワークは守られている! 半分あたりですが、半分はずれです。よくあるネットワークシステムではローカルネットワークはインターネットから半分くらいしか守っていません。 まだ対策をしていない場合は実施することを強くお勧めします。 クロスサイト攻撃からローカルネットワークを守る…
PostgreSQL 10のICUコレーションを使うと日本語を普通にソートでき、更に文字順序までカスタマイズできる
PostgreSQL 10からICU(International Components for Unicode)のロケール/コレーションがサポートされました。 これまでサポートされてきた、libcのja_JPロケールの貧弱な日本語ソート機能とは比べ物にならないくらい高機能な文字比較をサポートしています。日本語や他の言語での照合順序を柔軟に変更できます。 マト…
実は知られていない?リスク対策の原則?
ISO 31000(リスクマネジメント標準規格)はa)からk)まで、11のリスク管理の原則を定めています。 ITエンジニアであればISO 27000(情報セキュリティマネジメント標準規格)を一度は読んだことがあると思います。少なくとも名前くらいは知っていると思います。リスク管理の基礎/基本を理解していればISO 27000だけでも十分ですが、ちょっと自信がな…
4種類の信頼境界とセキュリティ構造 – 構造設計なしのセキュリティ対策?
セキュリティ対策には設計図があります。少なくともアーキテクチャー図があります。しかし、何故かソフトウェアの場合は設計図もアーキテクチャー図も書けないセキュリティ対策が当たり前になっています。国際情報セキュリティ標準やセキュリティガイドラインを普通に理解すれば解ること、セキュリティ対策の基礎の基礎にも関わらず、です。 これは一般開発者の問題というより、セキュリ…
ソフトウェアセキュリティのアンチパターン
アンチパターンを知ることにより失敗を防ぐ。これはデータベース設計やソフトウェア設計で多く利用されている手法です。今回はソフトウェアセキュリティのアンチパターンを紹介します。 このエントリは不定期にメンテナンスするつもりです。 (さらに…)
ゼロトラストをより細かく分解する
セキュリティを維持する為にはゼロトラスト、何も信頼しない所から始めて信頼できることを検証する、作業が必要です。ゼロトラストは信頼できるモノと信頼できないモノに分ける作業ですが、より細かく考える必要があります。 ※ より細かく考える、とはいっても「細かい事だけ」では合成の誤謬にハマります。全体と詳細、両方をバランスよく「ゼロトラスト」することが大切です。 (さ…
なぜセキュアなシステムが作れないのか?
なぜセキュアなシステムが作れないのか?この問いは なぜバグフリーのシステムが作れないのか?1 と同類の問いです。一定規模を超えると完全にバグ/問題がないシステムを作るのは非常に困難です。どのような状況でも正常に動作する完全にバグ/問題がないシステムは簡単には作れません。しかし、バグ/問題がないシステムが容易に作れないからといって「体系的な対策を行わない」のは…
PHP用入力バリデーションモジュール – validate
ブログで紹介するのを忘れていました。PHP用の入力バリデーションモジュール validateを作りました。 https://github.com/yohgaki/validate-php PHP開発MLでの議論用に作ったので、作りかけと言える状態ですが、一応動作し使えます。 関数名はvalidate()の方が良いのでは?という意見があったので、名前は変更する…