ブログ

Coders Conquer Security Infrastructure as Codeシリーズ:セキュリティ設定ミス - 不適切な権限設定

June 8, 2020
マティアス・マドゥ博士

現代のサイバーセキュリティに対する脅威は、いたるところに存在し、絶え間なく続いています。その状況は深刻化しており、プログラムのデプロイ後に脅威に対応し続けることはほぼ不可能です。そのため、賢明な組織はInfrastructure as Code(IaC)の概念を取り入れています。これは、開発者がアプリケーションの作成段階からセキュリティ対策に関与する手法です。本シリーズでは、開発者が組織内で安全なInfrastructure as Codeをデプロイするために必要なステップを理解し、セキュリティ対策を万全に整えることを目的としています。

セキュリティ設定ミス、特に不適切な権限設定は、開発者が新しいユーザーを作成したり、タスクを実行するためのツールとしてアプリケーションに権限を付与したりする際に最も頻繁に発生します。例えば、データベースから情報を収集するためにこれを行う場合があります。しかし、新しいユーザーの権限設定が過剰であったり、タスクに対してデフォルトのまま設定されていたりすると、コードに深刻な脆弱性が生じる可能性があります。

本題に入る前に、今のスキルを試してみませんか?不適切な権限設定による脆弱性を見つけて修正してみてください。

結果はいかがでしたか?さらに詳しく掘り下げていきましょう。

ユーザーやアプリケーションにフル権限を与えたり、新しいユーザーが実行すべきことや制限すべき動作を定義しなかったりすることは、新しいコードを素早く実装する最も簡単な方法です。すべてが順調に進めば、アプリケーションはその権限を使って割り当てられたタスクを完了します。しかし危険なのは、攻撃者がこのプロセスを発見し、そのユーザーを乗っ取ることです。特定のアプリケーションの特定の機能のために作成されたユーザーであっても、乗っ取られれば、攻撃者が他のアプリケーションやデータ、さらにはネットワーク全体を危険にさらす可能性があります。

セキュリティ設定ミスはどのように悪用されるのでしょうか?

その危険性を可視化するために、Dockerクラウド環境で一般的なタスクがどのようにコーディングされるかを見てみましょう。開発者がPrometheus MySQL Exporterサービスを使用してデータベースから情報を収集する場合を想定します。これを実現する最も簡単な方法は、Exporterにデータベースへのアクセス権限を付与することです。そのコードは以下のようになるかもしれません。

FROM mysql:latest
   COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
   USER 999
     CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
       GRANT ALL ON *.* TO exporter@%;
   ½   GRANT SELECT ON performance_schema.* TO exporter@%;

これなら確かにExporterはタスクを完了できます。しかし、権限が適切に定義されていないため、実際には何でもできてしまう状態です。もちろん、Exporter自体がプログラムされた動作以外を行うことはありません。しかし、攻撃者がExporterサービスを乗っ取ったらどうなるでしょうか?フル権限が与えられているため、攻撃者はSQLサービスに対してあらゆる種類の不正な操作を実行できてしまいます。

不適切な権限設定の解消とセキュリティ強化

ここでもInfrastructure as Codeの概念が重要になります。アプリケーションの作成段階からセキュリティをコードに組み込んでおけば、サイバーセキュリティの観点からネットワークの基盤は常に強固なものとなります。

先ほどのDockerの例で、開発者がPrometheus MySQL Exporterにデータベースのクエリを許可したい場合、実行すべきタスクを定義することで、より安全に実現できます。良い例を以下に示します。


FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
   CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
   GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
   GRANT SELECT ON performance_schema.* TO exporter@%;

この場合、Prometheus MySQL Exporterサービス用に設定されたMySQLユーザーは、MySQLサービスに対して制限された権限しか持ちません。具体的には、PROCESS権限とREPLICATION CLIENT権限のみが許可されています。これにより、悪意のあるユーザーが乗っ取られたPrometheus MySQL Exporterサービスを悪用することを防げます。

コードレベルで権限を制限することで、ユーザーやアプリケーションが必要最小限の権限のみを持つように保証できます。これはネットワークの保護とInfrastructure as Codeの概念を実践する上で非常に有効です。

この脆弱性に関する詳細や、組織や顧客を他のセキュリティ上の欠陥から守る方法については、Secure Code Warriorのブログページをご覧ください。また、Secure Code Warriorトレーニングプラットフォームのショーケースを試して、サイバーセキュリティスキルを常に最新の状態に保つことも可能です。

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。