Development
究極のセキュリティ要求事項とは?
前のブログでリスク分析について書きました。リスク分析方法を書く前にセキュリティ要求について書きます。ISO 27000では6つのセキュリティ要素が情報セキュリティに必要であるとしています。 Confidentiality - 機密性Integrity - 完全性Availability - 可用性Reliability - 信頼性Authenticity -…
無視されているリスク分析
炎上プロジェクトの主な原因の1つに、システム要求定義が不明確であること、があります。何を作ったらよいのか、よく分らない状態で作って上手く行くのを願うのは、サイコロを振るのと変りありません。 これと同じことが情報セキュリティ対策でも起きています。 致命的な脆弱性が残っているシステムの主たる原因の1つに、セキュリティ要求定義が不明確、ならまだよいのですがセキュリ…
Railsのリモートコード実行脆弱性、今昔
去年、今年とStruts2、Drupalのリモートコード実行脆弱性が問題になりました。記憶に新しい方も多いと思います。Railsにもリモートコード実行脆弱性が複数レポートされており、Railsユーザーであればよくご存知だと思います。 ざっと思い付く昔の脆弱性から最近の脆弱性まで簡単にまとめてみます。 (さらに…)
PHP用のCookieセッションセーブハンドラー
JWTが凄い使われ方をしているようなので、可能な限りマシなCookieベースのセッションセーブハンドラーを書きました。メリットは サーバー側のリソース(DBやファイルなど)を使わないので簡単にスケールする ことにあります。 しかし、Cookieの保存は大きく分けて3つの問題があります。 ネットワークが不安定だとデータが失われる場合がある(ネットワーク接続の問…
入力データのバリデーションを簡単に 〜 Validate for PHP 0.7.0
基本的にWebアプリへの入力データは全てバリデーションする必要があります。具体的には以下のような構造でバリデーションが必要です。 https://blog.ohgaki.net/there-are-3-types-of-validations Webアプリへの入力データの種類は大抵の場合、数百程度です。Validate for PHPはこれらの入力仕様を定義…
なぜWebセキュリティはここまでダメなのか?
インターネット上に16億件の企業ユーザーのメールアドレスとパスワードが公開されている、とニュースになっています。ほとんどの漏洩元はこれらの企業ではなく、他の一般公開されているWebサービスなどのアカウント情報漏洩※だと考えられています。 この事例から、非常に多くのWebサービスが情報漏洩を伴うセキュリティ問題を抱えているにも関わらず、気がつくことさえも出来て…