Skip to main content

クラウドセキュリティの基本 第3回:開発者の力を引き出す

2022年10月21日

0 分で読めます

「クラウドセキュリティの5つの基本要素」を解説した前回のブログでは、予防とセキュアな設計の価値について取り上げました。リソース間の関係を把握し、開発全体を通じてセキュリティのガードレールを適用することで、攻撃対象領域を大幅に縮小できます。しかし、セキュリティチームがほかの業務で手いっぱいのとき、誰がこのガードレールを適用するのでしょうか。ここで開発者が力を発揮できるはずです。そこで今回は、クラウドセキュリティに欠かせないもう一つの要素、開発者の力を引き出すことについて見ていきましょう。

2013年、Gene Kim、Kevin Behr、George Spaffordの3人は、DevOpsを扱った書籍『The Phoenix Project』を執筆しました。この本の目的はDevOpsを広めることでしたが、彼らの著作は著者たちの想像以上に先見性のあるものでした。特に、クラウドセキュリティに関してはそう言えます。

DevOpsは、IT運用チームをソフトウェア開発ライフサイクル(SDLC)により深く組み込み、チームがより優れたインフラを迅速に構築・デプロイできるようにすることを目指しました。IT運用チームは開発現場のプレッシャーを理解するようになり、さらに重要なこととして、開発者はアプリケーションとインフラをより包括的に捉え、計画・開発することを学びました。

一方で、新しい用語を耳にしたことがあるでしょう。DevSecOpsです。この言葉が生まれた理由はいくつもありますが、とりわけ重要なものがあります。Gene Kimは次のように説明しています。

一般的なテクノロジー企業における開発、運用、情報セキュリティのエンジニアの比率は、100対10対1です。情報セキュリティの人員がこれほど少ない場合、自動化を導入し、開発や運用の日常業務に情報セキュリティを組み込まなければ、情報セキュリティチームにできるのはコンプライアンスチェックだけです。これはセキュリティエンジニアリングとは正反対です。

つまり、この比率からは、多くの企業が最優先しているのはソフトウェアの構築であり、その保護ではないことが分かります。その解決策は、開発者が開発ワークフローにセキュリティエンジニアリングを組み込めるようにすることです。

この記事では、クラウドのリーダーが開発者の力を引き出し、より強固でコスト効率の高いセキュリティ態勢を実現するための3つの原則を紹介します。

1. 可能な限りIaCを活用する

ソフトウェアは世界を席巻しただけでなく、クラウドも席巻しました。

現在、クラウドインフラは100%ソフトウェアで構成できます。実際、クラウドを利用する顧客にとって、クラウドインフラは100%ソフトウェアです。TerraformやAWS CloudFormationなどのIaCツールを使えば、開発者はプログラムによってクラウド環境を構築・管理できます。

以前は、多くのセキュリティ機能と同様に、クラウドセキュリティもサイロ化していました。セキュリティチームは、エンジニアリングチームがプロビジョニングした実行環境をスキャンするため、クラウドセキュリティ態勢管理(CSPM)ツールに頼っていました。その後、セキュリティチームが設定ミスを特定して深刻度に応じて優先順位を付け、DevOpsチームに修正作業を割り当てていました。

しかし、大きな問題が明らかになりました。設定ミスをはじめとするセキュリティ上の問題は、発生後にしか検出できないのです。2017年のIBMの調査では、これがなぜ問題なのかが示されています。「テスト段階で見つかったソフトウェアのバグを修正するコストは、設計段階で同じバグを修正する場合の最大15倍になる可能性があります。」

IaCによって状況は変わります。開発チームがコードでクラウド環境の構成を定義できるようになることで、企業はシフトレフトを実現できます。つまり、クラウドインフラのSDLCにおいて、より早い段階にセキュリティ作業を移せるのです。

これにより、デプロイ前にセキュリティチェックを実施できます。その結果、実行環境での設定ミスやデプロイされるバグが減り、より早い段階でセキュリティ態勢を大幅に強化できます。

2. 開発者向けツールとのインテグレーションを優先する

セキュリティの評判が開発者の間で悪くなることがあるのは、SDLCの最後に付け加えられる一連の作業になりがちで、開発者が多くの手作業を強いられるためです。バグやその他の欠陥は、後の段階になるほど見つけにくくなるだけでなく、特定や修正も困難になります。そのため、時間とコストのかかる手戻りが必要になることも少なくありません。

重要なのは、包括的で関連性の高いインテグレーションを備えたツールを見つけ、それを活用して開発ワークフローにセキュリティ機能を加えることです。目指すのは、開発者の働き方を変えることではありません。開発者がすでに行っている作業にセキュリティを組み込むことです。

セキュリティチェックを開発者向けツール、ソースコードリポジトリ、CI/CDツールチェーンに組み込むことに注力しましょう。また、セキュリティツールを選ぶ際は、利用できるインテグレーションの幅と、その品質の両方を検討してください。どちらも、開発ワークフローにセキュリティを不可欠な要素として組み込むうえで必要です。開発者向けのセキュリティツールは、開発者に使われてこそ価値があります。

3. 開発者に役立つガイダンスを提供する

DevSecOpsは、単に機能を追加するだけのものではありません。開発者がIaCと密接に連携するセキュリティツールを利用できれば、セキュリティエンジニアリングのスキルを継続的に高められます。開発者が力を発揮できる環境を整え、その力を活かすためのツールを提供することで、開発者の能力は組織全体に広がっていきます。

IaCを使えば、開発者はアーキテクチャレベルでセキュアな環境を構築する方法を学べます。また、企業がDevSecOpsのアプローチをクラウドセキュリティプログラムに取り入れれば、エンジニアはコーディング中にセキュリティに関するフィードバックやガイダンスを自動的に得られます。

その結果、開発者は時間とともにセキュリティエンジニアリングのスキルを高め、開発中に持ち込む問題を減らせます。実行環境で問題が発生した場合も、インフラのどこを修正すべきかをより的確に特定できます。

ここで重要なのは、セキュリティチームが開発者にとって社内のツールベンダーとして機能することです。最も効果的なのは、セキュリティチームが開発チームやクラウドエンジニアリングチームと緊密に連携し、それぞれのユースケースやワークフローを理解することです。そのうえで、セキュリティチームは、適切なタイミングで役立つフィードバックと具体的な修正ガイダンスを提供するツールを開発、購入、統合できます。

より早く、より速く、より良く、より強く

設定ミス、バグ、脆弱性は、早い段階で修正できるほど効果的です。

開発チームが10人で、セキュリティ担当者が専任で1人しかいなかったFormHeroは、修復までの時間を短縮するツールを探す中で、この原則が正しいことを実感しました。

創業者兼CEOのRyan Kimberは次のように語ります。「開発者のワークフローで問題に対処せず、QAで問題を見つけて対応することになると、修正に10倍の時間がかかります。」

IaC、緊密に連携するセキュリティツール、自動化された開発者向けガイダンスを活用すれば、クラウドのリーダーはこの10倍の改善を実現し、クラウド環境全体に広げることができます。その結果、より強固でコストを抑えたセキュリティを実現できます。

クラウドセキュリティの基盤を築く準備はできていますか?

詳しくは、クラウドセキュリティの5つの基本に関するホワイトペーパーをダウンロードしてください。

続きを読む

feature customer snowflake
Article

開発初期からセキュリティを確保:Snowflake Cortex Code向けSnyk Studioインテグレーションを発表

Snyk StudioがSnowflake Cortex Codeと連携し、開発中にAI生成コード、依存関係、コンテナの脆弱性をスキャンします。

Article

Miasmaサプライチェーン攻撃:@redhat-cloud-servicesのnpmパッケージで悪意あるコードを確認

Miasmaと呼ばれるサプライチェーンワームが、@redhat-cloud-servicesの数十件のnpmリリースで見つかりました。悪意あるpreinstallフックは認証情報を窃取し、クラウドIDを調査して、他のパッケージを再公開する可能性があります。

Blog

QinglongタスクスケジューラーのRCE脆弱性が悪用され、暗号資産マイニングに利用

Qinglongタスクスケジューリングパネルに存在する2つの認証バイパス脆弱性(CVE-2026-3965、CVE-2026-4047)が実際に悪用され、暗号資産マイニングマルウェアが展開されました。何が起きたのか、攻撃の手口、そしてセルフホスト型アプリケーションの運用者がこのインシデントから学ぶべきことを解説します。