CISA Introduces Secure-by-design and Secure-by-default Development Principles
2023/04/14 SecurityWeek — CISA は、サイバー・セキュリティ製品を開発する際の、Security-by-Design および Security-by-Default の原則を公表した。2023年3月1日に発表された、Pillar Three of the National Cybersecurity Strategy published の三本目の柱は、Shape market forces to drive security and resilience (セキュリティとレジリエンスを推進するために市場の力を形作る) と題されている。このセクションの中では、2つのポイントが明確にされている。第一に、セキュリティの責任を、セキュリティ製品の使用から開発へとシフトさせることである。第二に、このシフトを促すために、連邦政府の調達力を利用することである。

この2点は、2023年2月27日にカーネギーメロン大学で行われた、CISA Director である Jen Easterly のスピーチで予告されていた。彼女は、現状について、安全ではないことが常態化しているため、よりリスクの低い製品を使用する責任が、ユーザーにあると指摘した。彼女は、この状況を変えなければならないと述べている。
そのためには、Security-by-Design と Security-by-Default の原則に基づいて製品を構築する必要であり、それを推進するための政府からのインセンティブとして、規制と調達権があると指摘した。
2023年4月13日に CISA は、それらの目的を達成するために開発者が採用できる、一連の原則 (PDF) を公表している。この原則は、CISA/NSA/FBI および、そしてオーストラリア/カナダ/英国などのセキュリティ機関の協力により作成された。
Security-by-Design の原則は、すべての侵害を防ぐことはできず、開発コストが増加する可能性が高いことを認めているが、国家のサイバー・セキュリティを向上させ、継続的なメンテナンスとパッチ適用における、開発者のコストを削減できるとも述べている。
Security-by-Design 原則のトップは、メモリ・セキュアなプログラミング言語の使用である。先日の講演で Easterly は、既知の脆弱性の約 3分の2は、メモリーセーフの問題に起因しているとコメントしている。Easterly は、「C 言語や C++ などの特定のプログラミング言語には、こうした脆弱性をソフトウェアに持ち込むのを防ぐ仕組みがない。Rust/Go/Python/Java のようなメモリ・セキュアなプログラミング言語に切り替えることで、これらの脆弱性を排除できる。この原則では、C# と Swift も、メモリセーフリストに追加している」と述べている。
その他の原則として挙げられたものには、安全なハードウェア基盤の使用/安全なソフトウェア・コンポーネントおよび、SQL インジェクション攻撃を回避するためのパラメータ化されたクエリや、SAST/DAST テストなどがある。それらも、コードレビュー/SBOM/脆弱性開示プログラムなどによりサポートされるべきだ。
Security-by-Default とは、安全性を確保をユーザーに委ねる製品ではなく、誰もが直ちに使えるセキュアな製品を提供することを指す。この原則では、攻撃者がロードマップとして利用できる Hardening Guides を、Loosening Guides に逆転させるべきだと指摘している。それは、ユーザーが行うべき変更を説明する一方で、結果として生じるセキュリティリスクも列挙するものでもある。
具体的に言うと、デフォルト・パスワードの排除/MFA の義務化/最新のオープン・スタンダードによるシングルサインオン/安全なロギングなどの要素を含む、Security-by-Default の原則に従うことで実現できるものである。
CISA は、「組織の最重要な製品に、それらのアイデアを優先的に取り入れるための、書面によるロードマップの提供と、幹部へのサポートを充実させることが、安全なソフトウェア開発慣行へと移行するための、最初のステップであると考えている」と述べている。
しかし、これらの原則の積極的な採用は、開発者だけの責任ではない。ユーザーに対して要求されるのは、Security-by-Design と Security-by-Default の製品を、購入したいと主張することである。CISA は、「IT 部門は、Security-by-Design と Security-by-Default の実践の重要性を強調するための、購買基準を策定する権限を与えられるべきである。さらに、IT 部門は、購買決定において、それらの基準を実施する際に、経営陣の支援を受ける必要がある」と述べている。
CISA が、一連の原則を策定した目的は、犯罪者の増加や危険性を増している敵対国からの脅威に対して、国家全体のサイバー・セキュリティを向上させようとする、試みに他ならない。Easterly は、連邦政府が考えているインセンティブとして、規制と購買力という2点を挙げている。すでに政府は、購買力を行使し、開発者による遵守を促し始めたことを明らかにしている。
CISA の原則を理解/利用する開発者には、2つの重要な理由が生じる。第一に、それは正しいことである。第二に、連邦政府への販売を望むなら、それが不可欠になることだ。
CISA が、Security-by-Design と Security-by-Default という、2つの原則を規定し、それに合致するものは、積極的に政府調達すると発表しました。Security-by-Design のトップにくるのは、メモリ・セキュアなプログラミング言語の使用でああり、C/C++ は NG で、Rust/Go/Python/Java は OK という決め事です。Security-by-Default の方では、デフォルト・パスワードの排除/MFA の義務化/最新のオープン・スタンダードによるシングルサインオン/安全なロギングなどが挙げられています。これは、百利あって一害なしなので、日本でも始めれば良いと思ってしまいます。よろしければ、CISA ページも、ご参照ください。

You must be logged in to post a comment.