セキュアコーディング論理
データ型とセキュアコーディング
このブログではどのように”データ型”の概念とセキュアコーディングが関連しているのか、Webサーバーアプリを主体に説明します。 セキュアコーディングの基本を理解している必要がありますが、難しくはないです。原則を知っているだけで十分です。セキュアコーディングの10原則は次の通りです。 第1 入力をバリデーションする第2 コンパイラの警告に用心する第3 セキュリテ…
コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則
同じ処理を行うコードの共通化は、基本的には、ベストプラクティスです。しかし、アンチプラクティスとなる場合もあります。 (さらに…)
MITREがCWEを大幅更新 〜 セキュアコーディング対応を強化 〜
CWEはセキュアなソフトウェア開発を行う開発者にとっては欠かせない情報源です。2019年1月3日にCWE (Common Weakness Enumeration - 共通脆弱性タイプ) 3.2が公開されました。大幅更新と言える内容になっています。 この更新を一言で言うと「セキュアコーディング対応の強化」でしょう。 (さらに…)
遅すぎるサニタイズではダメな例
PostgreSQL 11がリリースされました。このリリースでto_number()、to_char()、to_date()、to_timestamp()関数の仕様が変更されました。これらは名前の通り入力を変換する関数です。その際に サニタイズ - ダメな形式のデータを使える/安全なデータ形式に変換する を行います。保存されるデータ形式は、保存可能な形に変換…
ゼロトラストとフェイルファースト
今のプログラムに足りないモノでセキュリティ向上に最も役立つ考え方のトップ2つ挙げなさない、と言われたらどの概念/原則を挙げるでしょうか? 私なら ゼロトラストフェイルファースト を挙げます。 極論すると、この2つ知って実践するだけでセキュアなソフトウェアを作れるようになるからです。この2つだけでは十分ではないですが、これを知って、実践しているだけでも開発者は…
セキュアコーディングは言語を問わず適用できる
セキュアコーディングの基本概念は、言語のタイプを問わず、全てのプログラミング言語と互換性があります。 (さらに…)
アプリとライブラリの「役割と責任」の違い – セキュリティの基礎
アプリケーションとライブラリでは作り方/設計が大きく異なります。この違いを理解していないとセキュアなアプリケーションの構築が困難、というより不可能になります。 (さらに…)
データのコンテクスト – セキュリティの基礎
コンテクストを知る、はデータを安全に扱う為に必須の基礎知識です。 よくある致命的な脆弱性を作る考え方は コンテクストなんてどうでもよい。このAPIを使えば良い。 です。セキュリティ対策ではコンテクストが何であるのか?を正しく理解することが重要です。ここではコンテクストについて紹介します。 (さらに…)