Development
アプリケーション仕様?セキュリティ仕様?
アプリケーション仕様なのでセキュリティ仕様ではない、という議論があるようですがこれは正しくありません。 セキュリティ仕様とは「リスクを変化させるモノ全て」です。リスクの変化を低下させるモノなのか、増加させるモノなのかも関係ありません。変化するモノは全てセキュリティ対策です。これはITセキュリティ対策とは上位互換の関係にあるリスク対策の基本概念です。 (さらに…
OWASPに対して失礼な誤解 – 入力バリデーションは重要なセキュリティ対策
OWASPに対して大変失礼な誤解をしている意見を見かけたのでブログに書いておきます。 https://www.slideshare.net/ockeghem/owasp-japan20120327 OWASPは「入力バリデーション」とても重要な「セキュリティ対策」として考えていますが、OWASP的にはセキュリティ対策ではない、少なくとも重要なセキュリティ対策…
正規表現インジェクション
一文字でも意味がある文字があるとインジェクション攻撃が可能な場合が多いです。正規表現も例外ではありません。 (さらに…)
セキュアプログラミング第一位の対策、入力バリデーションはセキュリティ対策ではない?!
セキュアコーディング/セキュアプログラミングにおける最も重要なセキュリティ対策は「入力バリデーション」です。国際標準ではセキュリティ対策か否かは「リスクの変化」によって決り、※多くのセキュリティ専門家が「入力バリデーションをNo1のセキュリティ対策である」と結論づけています。(※ 対策の目的が何か?などの主観に基く評価はセキュリティ対策か否か、を決める指標で…
セキュアなアプリケーションのアーキテクチャ – sandbox化
セキュアなアプリケーションのアーキテクチャの基本は既に書きました。基本は既に書いた通りですが、多少異るアプローチもあります。今回はそれを解説します。タイトルに含まれているsandbox化がキーワードです。 (さらに…)
セキュアなアプリケーションアーキテクチャ
セキュアなアプリケーションには共通したアーキテクチャがあります。基本的には防御的プログラミング(セキュアプログラミング)を行い、防御的プログラミングのテクニックの1つである契約プログラミングを実践したアーキテクチャがセキュアなアーキテクチャです。 アプリケーションのセキュリティ問題のほとんどはインジェクション問題です。インジェクション問題以外にもセキュリティ…
セキュアプログラミング・コーディング”だけ”でセキュアなプログラムが作れない理由
記事を探すことができなかったのですが、少し前に元記事が英語で日本語訳された記事に「セキュアプログラミング・コーディングはハイプ(誇大な宣伝)である」とする記事がありました。これには全く賛同できません。 なぜセキュアプログラミング”だけ”でセキュアなプログラムが作らないのか?理由を考えてみたいと思います。 (さらに…)
PHPのmt_rand関数が壊れている問題
PHPのmt_rand関数のtwistマクロに一文字タイポがあり、修正されたのですが http://git.php.net/?p=php-src.git;a=commitdiff;h=a0724d30817600540946b41e40f4cfc2a0c30f80 でリバートされてしまいました。 追記 PHP 7.1からMT randのコードが修正されていま…
セキュアプログラミングの7つ習慣
セキュアなプログラミングには基本的な考え方があります。それ守ることによりセキュアなプログラムを作ることができます。基本的な考え方を無視または意識しないでセキュアなプログラミングを目指しても遠回りだったり、漏れが生まれたりします。基本的な考え方を無視・意識しないでセキュアなプログラミングを行おうとしても無理があります。 ここで紹介するのは私の考えであり、どこか…