CISコントロール18:アプリケーションソフトウェアセキュリティ

avatar

 2018.05.10  Japanブログ編集部

今回は、サイバーセキュリティに関する非営利組織「Center for Internet Security, CIS」がとりまとめた「CIS クリティカルセキュリティ コントロール トップ20 CIS top 20 Critical Security Controls)」の第7版から、「コントロール18 アプリケーションソフトウェアセキュリティ」を見ていきます。そして必須要件として挙げられている11のサブコントロール項目を確認し、その上で気づいた点をシェアしていきます。

 

「コントロール 18」のキーポイント

  • リスクを理解すること:コントロール18での追加された特筆すべき追加点の一番目は、社内で開発されたコード上で静的、動的両方のコード解析ユーティリティを走らせなくてはならない、ということです。二つ目は、特に外部関係者等が、脆弱性を会社に報告出来るようにするということです。これらはいずれも、これまで長い間ずっと潜んでいたビジネスに対する脆弱性を見つけるきっかけになるかもしれません。
  • セキュリティの多層構造の重要性:これはコントロール18でなんども繰り返されていることです。開発担当者がセキュアなコードを書くトレーニングをするところから始め、書いたコードをテストし、そのコードの周辺環境を強固にし、そしてそのコードの前でセキュリティ・ツールをインストールします。目標は複数のセキュリティのレイヤーを作り、攻撃が始まる前に防止することです。


コントロール 18:必須要件リスト(11のサブコントロール)

1.セキュアコーディングの実施を確立する

内容プログラミング言語と使用された開発環境に適合したセキュアコーディングの実施を確立します。

留意点セキュアコーディングの第一歩は、良い前例に倣うことです。OWSPにはセキュアなソフトウェア開発のライフサイクルにとってのすばらしい模範がいくつもあります。さらに、開発者がISC2CSSLPCertified Secure Software Lifecycle Professional )資格取得に向けて学習するのもよいでしょう。

 

2.社内開発ソフトウェアに明示的なエラーチェックを確実に実行する

内容自社開発ソフトウェアの場合、すべての入力(サイズ、データ型、許容される範囲またはフォーマットを含む)に関する明示的なエラーチェックが実行され、文書化されていることを確認します。

留意点ソフトウェアに対する攻撃は、サニタイズされていないユーザが入力する際に、あるいはエラーを正しく処理しなかった際に起こりがちです。どちらもソフトウェアとその背後のオペレーティングシステムのセキュリティに壊滅的な影響を与える可能性があります。サブコントロール7以下に従えば、ソースコードの中にうっかり忘れられているこれらを発見する助けになります。

 

3.使用しているソフトウェアのバージョンが今でもサポートされているか確認する

内容外部から入手したすべてのソフトウェアについて、使用されているバージョンが開発者によってサポートされているか、または開発者のセキュリティー勧告に基づいて適切にセキュリティ強化が行われているかを確認します。

留意点これはコントロール2.2と同様です。大企業で使用される複雑なソフトウェアは、遅かれ早かれ必ず脆弱性が見つかるものです。ソフトウェアのセキュリティをアップデートすれば、あなたのネットワークが不必要に無防備な状態にならないよう保証できます。ビジネス上では、Windows XPのようにサポートされていないソフトウェアが必要とされる場合もあります。そういった場合には、ご自身でビジネスに影響するリスクを減らすためのコントロールを行わなくてはなりません。

 

4.更新されていて、かつ信頼できるサードパーティーのコンポーネントのみを使用すること

内容組織によるソフトウェア開発では、更新されていて、かつ信頼できるサードパーティーのコンポーネントのみを使用します。

留意点ソフトウェアが今でもサポートされているか確認することと、実際にソフトウェアアップデートをインストールしたかを確認することは、全く違うことです。コントロール3.5に似ていますが、ソフトウェアのサポートのために、早急にアップデートをインストールしなくてはなりません。

 

5.標準化され、広く検証されている暗号化アルゴリズムのみを使用すること

内容標準化され大規模に見直されている暗号化アルゴリズムのみを使用します。

注意点数学者が何度も検証してきた数多くの暗号化アルゴリズムがあるのです。それにもかかわらず専用の暗号アルゴリズムを作るのは、アルゴリズムの欠陥や不適切な暗号化によって、機密データが任意に復号化されるリスクを不必要に招くことになります。

 

 6. ソフトウェア開発担当者がセキュアコーディングのトレーニングを受けること

内容すべてのソフトウェア開発担当者が、特定の開発環境とタスク向けのセキュアなコードを書くため、トレーニングを受講しなければなりません。

留意点品質保証(QA)検証を通じて、または顧客から脆弱性を知らされてから対応するより、セキュアコードを一から書くほうが簡単で費用もかかりません。ソースコードの脆弱性の発見と修復のコストを減らすためには、トレーニングが不可欠です。

 

 7.静的及び動的コード分析ツールを適用する

内容社内開発されたソフトウェアでセキュアコーディングが着実に実施されているかを確認するために、静的、動的コード分析ツールを適用します。

留意点人間なら間違えることがありますので、誤りがないかを検査することは重要です。静的、動的両コード分析ツールにはそれぞれ利点と欠点があります。あなたのコードにはどちらが適しているか確認するために、両方で検査しましょう。

 

8. ソフトウェアの脆弱性に関する報告の授受のプロセスを確立すること

内容外部の組織があなたのセキュリティグループにコンタクトをとる手段を含めて、ソフトウェアの脆弱性に関する報告の授受のプロセスを確立します。

留意点セキュリティの脆弱性はすべてQAチームが見つけてくれるだろうと頼ってはいけません。たとえあなたの組織がソフトウェアを開発していなくても、組織のウェブサイトが世界中から攻撃を受けるきっかけになりそうなバグだらけかもしれません。セキュリティ問題について、誰もが会社に問題提起できる手続きを策定し、文書化し、公開しましょう。

 

9. 本番環境と非本番環境を分けること

内容:本番環境と非本番環境それぞれに別個の環境を維持します。監視下にない状況で開発者がで本番環境へアクセスできないようにします。

留意点:開発者がコードを書き、QAがコードをテストし、運用者が本番環境でコードを動かすことが理想です。小規模な組織の場合は、本番環境にコードを入れ込むことが出来る人であれば誰でも、作業中のすべてのアクションが監視されていなくてはなりません。

 

10. Webアプリケーションファイアーウォール (WAFS)を設置する

内容:一般的なWebアプリケーション攻撃に対して、Webアプリケーションを通過するすべてのトラフィックを検査するWebアプリケーションファイアーウォール(WAFs)を導入することによって、Webアプリケーションを保護します。Webベースではないアプリケーションでは、そのようなアプリケーションタイプ用のツールが使用可能な場合は、特定のアプリケーションファイアウォールを導入する必要があります。トラフィックが暗号化されている場合は、デバイスを暗号化の背後に配置するか、または分析の前にトラフィックを復号化できる必要があります。いずれのオプションも適切ではない場合は、ホストベースのWebアプリケーションファイアウォールを導入する必要があります。

留意点Webアプリケーションファイアウォールを設置することで、第7版のいくつかのサブコントロールを一つのサブコントロールに結合します。より高度な見方をすることによって、特定の脆弱性をもつコントロールを排除し、ツールを用いた攻撃に対してより広い範囲の保護ができます。ある金曜の午後に開発者が入力のサニタイズのバグを見過ごしたとしても、WAFsは信じられないほど強力に保護してくれます。

 

11. データベースには標準の強化設定テンプレートを使用すること

内容:データベースを使用するアプリケーションについては、標準の強化設定テンプレートを使用します。重要なビジネスプロセスの一部であるシステムもすべてテストする必要があります。

留意点:コントロール5と同様に、可能なものにはすべてCISかDISAの強化ガイドを用いると、攻撃範囲をなるべく減らすために役立ちます。

CISコントロール19: インシデントレスポンスと管理

CISコントロール20: ペネトレーションテストとレッドチームの訓練

CISがクリティカル セキュリティーコントロール トップ20を改訂 

By Travis Smith

About Travis Smith

Travis Smith is a Principal Security Researcher at Tripwire. He has over 10 years experience in security, holds an MBA with a concentration in information security, and multiple certifications including CISSP, GIAC and GPEN. Travis specializes in integrating various technologies and processes, with a passion for forensics and security analytics with the goal of helping customers identify and mitigate real threats.

SANS:基本への回帰

RECOMMEND関連記事


この記事が気に入ったらいいねしよう!