組織のDevOpsセキュリティチェックリストを実行するための5つの簡単なステップ

avatar

 2019.10.23  Japanブログ編集部

深刻なコンテナベース(runc)のエクスプロイトが発見されたことで、インターネットユーザーに震撼が走りました。CVE-2019-5736の脆弱性は、「ユーザーによる簡単な操作」によって悪用可能になります。その後、攻撃者はホスト上でroot権限でコードを実行できるようになります。

これは確かに恐ろしいことです。しかしさらに恐ろしいのは、ドアをロックするという単純なルールが守られないために、ユーザーがその簡単な操作を実行しやすくなったということです。誰でもアクセス可能なコンテナ化された環境において、認証を必要としないケースが増えていることが調査で明らかになっています。つまり、誰でも制御権を手に入れて、rootレベルのアクセスに必要となる悪質なコンテナを展開できることを意味します。

デジタル経済の成功には(デリバリーとデプロイメントの)スピードが重要です。そのため、市場投入までにセキュリティゲートを省略してしまうことがよくあります。しかし、スピードのためにセキュリティを犠牲にすれば、成功は簡単に災害へと変わってしまいます

幸いなことに、スピードを犠牲にすることなくセキュリティを向上させるために実行できる簡単なステップがいくつもあります。被害者になって世間を賑わすことを避けるために真剣に考慮すべき5つの簡単なステップを次に紹介します。

1.コンポーネントをローカルでホストする

一般的なアプリの80~90%はサードパーティ製のコンポーネントで構成されていることが調査で明らかになっています。これらのコンポーネントが実行時に外部サイトからロードされ、既存のソースコード分析スキャンの対象外となるケースが非常に多くなっています。runcの脆弱性悪用の方法としては、コンテナに細工し、その後それがpullされ、アプリケーションで使用されるというやり方があります。

サードパーティのソースからロードされたUXコンポーネントにも同様のことが言えます。改ざんのリスクを軽減するために、可能な限りサードパーティ製のコンポーネントを自分のサイトでホストするようにしましょう。それほど心配することはないとお考えの方は、2018年に明らかになったESLintパッケージの侵害に関する記事を一読されることをお勧めします。

2.コンポーネントをスキャンする

サードパーティ製のコンポーネントには脆弱性が内在していることがあります。それがアプリに組み込まれるならば、セキュリティプロセスにも組み込む必要があります。ステップ1を実践しているならば、CI/CDパイプライン内でこれらのコンポーネントを簡単にスキャンに含めることができるでしょう。コンポーネントの脆弱性スキャンを行う際には、どこで実行されるかに関係なく、すべてのコードをスキャンして潜在的なリスクをチェックすることを忘れないでください。

3.ドアをロックする

これは、攻撃者が御社の環境を簡単に制御できないようにするためのシンプルかつ効果的な手段です。Web、アプリ、データベース、ミドルウェアサーバー、コンテナオーケストレーション環境のいずれの場合も、管理コンソールへのアクセスには認証情報を必ず要求するようにしましょう。

これには、あなたが使用する公開リポジトリも含まれます。認証情報の使用が重要なのは、最近ヘッドラインを賑わせているコンテナだけではありません。多くの侵害は、クラウドコンソールやストレージバケットのセキュリティ不備に起因しています。

4.キーを隠す

ドアをロックしたら、キーをドアマットの上に置いておかないようにしましょう。機密データの管理を正しく行うのは難しいことです。しかし、アプリケーションとオペレーションを不正アクセスから防御するためには必要です。認証情報や他の機密データ(キーや証明書)をリポジトリに保存するファイルにハードコーディングしてはいけません。また、リポジトリをキー管理のための保存場所として使用しないようにしましょう。

機密情報の扱いに関する注意を怠ると何が起きるかを知りたい方は、Uberのインシデントに関する記事をご覧ください。

5.APIを保護対象に含める

APIはユーザーの入力を取得します。つまり、セキュリティルールゼロ「ユーザーの入力を信じるなかれ」に当てはまります。内部のアプリケーションやマイクロサービスにデータを渡すためだけにAPIを使用しないようにしましょう。APIにもアプリケーションと同様にスキャンを行いセキュリティを確保してください。APIが関係する数々の有名な侵害インシデントについては、Forbesのこちらの記事をご一読ください

アプリケーションとその実行環境のセキュリティを確保するためにできること、そしてしなければいけないことはまだたくさんあります。しかし、それらの多くは、これら5つのシンプルなステップに従わない限り効果が期待できません。なぜならば、それらのステップはCI/CDパイプライン全体に及ぶため、DevOpsチームを参画させたうえで、これらのステップをセキュリティチェックリストに追加することが重要です。

執筆者について:Lori MacVittie氏は、ネットワーク/アプリケーション用の幅広いセキュリティソリューションを含むF5の全ポートフォリオのエバンジェリズムを担当しています。F5に入社する前は、Network Computing Magazine社で受賞歴のあるテクノロジーエディターとして、アプリケーションとセキュリティに焦点を当てた活動を行っていました。彼女はグリーンベイのウィスコンシン大学でコンピューター・情報科学の学位を取得し、ノバサウスイースタン大学ではコンピュータサイエンスの博士号を取得しています。

編集者注:ゲスト執筆者による本記事の意見は、筆者自身の意見であり、必ずしもTripwire Inc.の意見を反映するものではありません。


トリップワイヤ・ジャパンでは脆弱性管理、法規制遵守、インシデント対応やサイバーセキュリティに関する有益な情報をお届けしております。すべてのカタログ、セキュリティに関する情報はこちらからダウンロードいただけます。Tripwireセキュリティ リソース

 

New Call-to-action

RECOMMEND関連記事


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