SCW图标
英雄背景无分隔线
博客

コーダーがセキュリティインフラストラクチャを征服するコードシリーズ:欠けている機能レベルのアクセス制御

马蒂亚斯·马杜博士
出版日期: 2020 年 5 月 11 日
最后更新于 2026年3月10日

次回のInfrastructure as Codeシリーズの記事では、皆さんのような開発者が組織内に安全なインフラストラクチャを導入する際に、まったく新しいレベルのセキュリティ意識へと導きます。

ところで、前回のブログで取り上げたセキュリティ設定ミスの課題にどう対処しましたか?足りない機能レベルのアクセス制御の脆弱性に今すぐ取り組みたいなら、プラットフォームに進んでください。

(上記のリンクからKubernetesチャレンジに移動できますが、プラットフォームにアクセスしたら、ドロップダウンを使用してAnsible、CloudFormation、Terraform、Dockerから選択することもできます。選択はあなた次第です。)

現在導入されているほとんどすべてのアプリケーションには、要求された機能を実行する権限がユーザーに付与されているかどうかを確認する、何らかのアクセス制御メカニズムがあります。これは、アプリケーションを作成するときの機能性だけでなく、優れたセキュリティの基礎でもあります。実際、さまざまな権限を持つユーザーがプログラムを使用できるようにするには、すべての Web アプリケーションにアクセス制御が必要です。

ただし、アクセス制御の同じ検証機能がインフラストラクチャレベルで実行されなかったり、誤って構成されたりすると、問題が発生する可能性があります。インフラストラクチャーレベルのアクセス制御が完璧な順序でなければ、企業全体がハッカーにさらされ、ハッカーはその脆弱性を不正なスヌーピングや全面攻撃の入り口として利用する可能性があります。

実際、機能アクセス制御の脆弱性が見つからない、または誤って構成されている脆弱性を悪用することは非常に簡単です。攻撃者は過度に熟練している必要すらありません。必要なのは、そのアプリケーションをサポートしているフレームワークの中で、どのコマンドが関数を実行するのかを知ることだけです。もしそうなら、それは試行錯誤の問題です。許可されてはいけないリクエストを継続的に送信する可能性があり、成功するとすぐに、対象となるWebサイト、アプリケーション、サーバー、さらにはネットワーク全体が公開される可能性があります。

ミッシング・ファンクション・レベル・アクセス・コントロール・エクスプロイトの仕組み

機能レベルのアクセス制御が組織に浸透する方法はいくつかあります。たとえば、機能レベルのアクセスはアプリケーションに任せて、基盤となるインフラストラクチャでは検証されない場合があります。あるいは、インフラストラクチャーレベルのアクセス制御が誤って設定されている可能性もあります。管理者が、権限のないユーザーにはインフラストラクチャーのリソースへのアクセス方法がわからないと考え、上位レベルのユーザーだけが見ることができるはずの「セキュリティ・バイ・セキュリティー (Security by Obscurity)」モデルを使用することがありますが、これはほとんど機能しません。

あいまいさによるセキュリティの例として、次の URL は攻撃を受けやすい可能性があります。

http://companywebsite.com/app/NormalUserHomepage

認証されたユーザーが強制URLブラウズと呼ばれる手法を使用すると、管理者にのみ表示されるページにアクセスしようとする可能性があります。例としては、次のようなものが考えられます。

http://companywebsite.com/app/AdminPages

サーバー側での検証が行われていない場合は、管理ページが表示され (その名前がリクエストと一致する場合)、管理者が新しいページから行う追加機能にアクセスできるようになります。サーバーが攻撃者に「ページが見つかりません」というエラーを返した場合、攻撃者は管理ページに付けられた名前がわかるまで試行を続けることができます。

攻撃者の場合、悪用 機能レベルのアクセス制御がない 同様のプロセスです。権限のないページを閲覧しようとする代わりに、関数リクエストを送信します。たとえば、管理者権限を持つ新しいユーザーを作成しようとするかもしれません。そのため、フレームワークによっては次のようなリクエストになります。

投稿/アクション/ユーザー名作成=ハッカー&pw=パスワード&ロール=管理者

機能レベルのアクセス制御が存在しない場合、上記の例は成功し、新しい管理者アカウントが作成されます。攻撃者が新しい管理者としてログインし直すと、そのネットワークまたはサーバー上の他の管理者と同じアクセス権と権限を持つことになります。

機能レベルのアクセス制御が欠けている場合の修正

機能レベルのアクセス制御に欠けている脆弱性は、攻撃者が簡単に悪用できるため、脆弱性を発見、修正、防止することが重要です。ありがたいことに、ある程度のノウハウと基本的なインフラストラクチャがあれば、これはそれほど難しくありません。 コードセキュリティトレーニング

主な保護策は、インフラストラクチャレベルでロールベースの認証を実装することです。アプリケーションがその機能を処理することを決して信頼しないでください。たとえそうであっても、インフラストラクチャー側の承認があれば、見落としがないことが保証されます。認証は、組織のルーチンに組み込まれ、すべての新しいアプリケーションに適用される一元的な場所 (AWS IAM、Azure IAM など) から行うのが理想的です。これらの承認プロセスは、フレームワーク自体から行うことも、いくつもの使いやすい外部モジュールから行うこともできます。

最後に、組織は最小権限の概念を採用する必要があります。デフォルトではすべてのアクションと機能を拒否し、承認プロセスを使用して有効なユーザーに必要な操作を行う権限を与える必要があります。ユーザーには、必要な機能を実行するのに十分な権限のみを、必要な期間だけ付与する必要があります。

機能レベルのアクセス制御が欠けていると、壊滅的な打撃を受ける可能性があります。しかしありがたいことに、優れたインフラストラクチャレベルの認証方法を組織に組み込むことで、この問題の発生を簡単に防ぐことができます。

アクセス制御のバグを実際に発見する準備はできていると思いますか?次の Docker コードスニペットを比較してください。1 つは脆弱で、もう 1 つは安全です。


傷つきやすい:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザールート
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

安全:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザーなし
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

詳細を学び、自分自身に挑戦してください

をチェックしてください セキュア・コード・ウォリアー この脆弱性や、他のセキュリティ上の欠陥や脆弱性による被害から組織や顧客を保護する方法について、さらに詳しく知るためのブログページをご覧ください。

また、以前に見逃した場合でも、 IaC ゲーミフィケーションセキュリティチャレンジを試してみる Secure Code Warriorプラットフォームで、すべてのサイバーセキュリティスキルを磨き、最新の状態に保ちましょう。

次章をお楽しみに!

显示资源
显示资源

インフラストラクチャレベルのアクセス制御が完璧な順序でなければ、企業全体が攻撃者に危険にさらされ、攻撃者はこの脆弱性を不正なスヌーピングや全面攻撃のゲートウェイとして利用する可能性があります。

您还有兴趣吗?

马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。

预约演示
分享:
领英品牌社交x 标志
著者
马蒂亚斯·马杜博士
2020年5月11日发布

马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。

马蒂亚斯是一位拥有15年以上软件安全实践经验的研究员兼开发者。他曾为Fortify Software、其创立的Sensei Security等企业开发解决方案。在职业生涯中,马蒂亚斯主导了多个应用安全研究项目,这些项目最终转化为商用产品,并获得了10余项专利。在离开办公桌时,马蒂亚斯担任高级应用安全培训课程讲师,并定期在RSA大会、黑帽大会、DefCon、BSIMM、OWASP应用安全大会、BruCon等全球性会议上发表演讲。

马蒂亚斯在根特大学获得计算机工程博士学位,期间学习了通过程序混淆技术隐藏应用程序内部运作机制的应用程序安全技术。

分享:
领英品牌社交x 标志

次回のInfrastructure as Codeシリーズの記事では、皆さんのような開発者が組織内に安全なインフラストラクチャを導入する際に、まったく新しいレベルのセキュリティ意識へと導きます。

ところで、前回のブログで取り上げたセキュリティ設定ミスの課題にどう対処しましたか?足りない機能レベルのアクセス制御の脆弱性に今すぐ取り組みたいなら、プラットフォームに進んでください。

(上記のリンクからKubernetesチャレンジに移動できますが、プラットフォームにアクセスしたら、ドロップダウンを使用してAnsible、CloudFormation、Terraform、Dockerから選択することもできます。選択はあなた次第です。)

現在導入されているほとんどすべてのアプリケーションには、要求された機能を実行する権限がユーザーに付与されているかどうかを確認する、何らかのアクセス制御メカニズムがあります。これは、アプリケーションを作成するときの機能性だけでなく、優れたセキュリティの基礎でもあります。実際、さまざまな権限を持つユーザーがプログラムを使用できるようにするには、すべての Web アプリケーションにアクセス制御が必要です。

ただし、アクセス制御の同じ検証機能がインフラストラクチャレベルで実行されなかったり、誤って構成されたりすると、問題が発生する可能性があります。インフラストラクチャーレベルのアクセス制御が完璧な順序でなければ、企業全体がハッカーにさらされ、ハッカーはその脆弱性を不正なスヌーピングや全面攻撃の入り口として利用する可能性があります。

実際、機能アクセス制御の脆弱性が見つからない、または誤って構成されている脆弱性を悪用することは非常に簡単です。攻撃者は過度に熟練している必要すらありません。必要なのは、そのアプリケーションをサポートしているフレームワークの中で、どのコマンドが関数を実行するのかを知ることだけです。もしそうなら、それは試行錯誤の問題です。許可されてはいけないリクエストを継続的に送信する可能性があり、成功するとすぐに、対象となるWebサイト、アプリケーション、サーバー、さらにはネットワーク全体が公開される可能性があります。

ミッシング・ファンクション・レベル・アクセス・コントロール・エクスプロイトの仕組み

機能レベルのアクセス制御が組織に浸透する方法はいくつかあります。たとえば、機能レベルのアクセスはアプリケーションに任せて、基盤となるインフラストラクチャでは検証されない場合があります。あるいは、インフラストラクチャーレベルのアクセス制御が誤って設定されている可能性もあります。管理者が、権限のないユーザーにはインフラストラクチャーのリソースへのアクセス方法がわからないと考え、上位レベルのユーザーだけが見ることができるはずの「セキュリティ・バイ・セキュリティー (Security by Obscurity)」モデルを使用することがありますが、これはほとんど機能しません。

あいまいさによるセキュリティの例として、次の URL は攻撃を受けやすい可能性があります。

http://companywebsite.com/app/NormalUserHomepage

認証されたユーザーが強制URLブラウズと呼ばれる手法を使用すると、管理者にのみ表示されるページにアクセスしようとする可能性があります。例としては、次のようなものが考えられます。

http://companywebsite.com/app/AdminPages

サーバー側での検証が行われていない場合は、管理ページが表示され (その名前がリクエストと一致する場合)、管理者が新しいページから行う追加機能にアクセスできるようになります。サーバーが攻撃者に「ページが見つかりません」というエラーを返した場合、攻撃者は管理ページに付けられた名前がわかるまで試行を続けることができます。

攻撃者の場合、悪用 機能レベルのアクセス制御がない 同様のプロセスです。権限のないページを閲覧しようとする代わりに、関数リクエストを送信します。たとえば、管理者権限を持つ新しいユーザーを作成しようとするかもしれません。そのため、フレームワークによっては次のようなリクエストになります。

投稿/アクション/ユーザー名作成=ハッカー&pw=パスワード&ロール=管理者

機能レベルのアクセス制御が存在しない場合、上記の例は成功し、新しい管理者アカウントが作成されます。攻撃者が新しい管理者としてログインし直すと、そのネットワークまたはサーバー上の他の管理者と同じアクセス権と権限を持つことになります。

機能レベルのアクセス制御が欠けている場合の修正

機能レベルのアクセス制御に欠けている脆弱性は、攻撃者が簡単に悪用できるため、脆弱性を発見、修正、防止することが重要です。ありがたいことに、ある程度のノウハウと基本的なインフラストラクチャがあれば、これはそれほど難しくありません。 コードセキュリティトレーニング

主な保護策は、インフラストラクチャレベルでロールベースの認証を実装することです。アプリケーションがその機能を処理することを決して信頼しないでください。たとえそうであっても、インフラストラクチャー側の承認があれば、見落としがないことが保証されます。認証は、組織のルーチンに組み込まれ、すべての新しいアプリケーションに適用される一元的な場所 (AWS IAM、Azure IAM など) から行うのが理想的です。これらの承認プロセスは、フレームワーク自体から行うことも、いくつもの使いやすい外部モジュールから行うこともできます。

最後に、組織は最小権限の概念を採用する必要があります。デフォルトではすべてのアクションと機能を拒否し、承認プロセスを使用して有効なユーザーに必要な操作を行う権限を与える必要があります。ユーザーには、必要な機能を実行するのに十分な権限のみを、必要な期間だけ付与する必要があります。

機能レベルのアクセス制御が欠けていると、壊滅的な打撃を受ける可能性があります。しかしありがたいことに、優れたインフラストラクチャレベルの認証方法を組織に組み込むことで、この問題の発生を簡単に防ぐことができます。

アクセス制御のバグを実際に発見する準備はできていると思いますか?次の Docker コードスニペットを比較してください。1 つは脆弱で、もう 1 つは安全です。


傷つきやすい:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザールート
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

安全:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザーなし
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

詳細を学び、自分自身に挑戦してください

をチェックしてください セキュア・コード・ウォリアー この脆弱性や、他のセキュリティ上の欠陥や脆弱性による被害から組織や顧客を保護する方法について、さらに詳しく知るためのブログページをご覧ください。

また、以前に見逃した場合でも、 IaC ゲーミフィケーションセキュリティチャレンジを試してみる Secure Code Warriorプラットフォームで、すべてのサイバーセキュリティスキルを磨き、最新の状態に保ちましょう。

次章をお楽しみに!

显示资源
显示资源

要下载报告,请填写以下表格。

恳请允许我们向您发送有关本公司产品及/或相关安全编码主题的信息。我们始终以高度谨慎的态度处理您的个人信息,绝不会出于营销目的将其出售给其他公司。

送信
scw 成功图标
SCW 错误图标
要提交表单,请启用“Analytics”Cookie。设置完成后,您可以再次将其禁用。

次回のInfrastructure as Codeシリーズの記事では、皆さんのような開発者が組織内に安全なインフラストラクチャを導入する際に、まったく新しいレベルのセキュリティ意識へと導きます。

ところで、前回のブログで取り上げたセキュリティ設定ミスの課題にどう対処しましたか?足りない機能レベルのアクセス制御の脆弱性に今すぐ取り組みたいなら、プラットフォームに進んでください。

(上記のリンクからKubernetesチャレンジに移動できますが、プラットフォームにアクセスしたら、ドロップダウンを使用してAnsible、CloudFormation、Terraform、Dockerから選択することもできます。選択はあなた次第です。)

現在導入されているほとんどすべてのアプリケーションには、要求された機能を実行する権限がユーザーに付与されているかどうかを確認する、何らかのアクセス制御メカニズムがあります。これは、アプリケーションを作成するときの機能性だけでなく、優れたセキュリティの基礎でもあります。実際、さまざまな権限を持つユーザーがプログラムを使用できるようにするには、すべての Web アプリケーションにアクセス制御が必要です。

ただし、アクセス制御の同じ検証機能がインフラストラクチャレベルで実行されなかったり、誤って構成されたりすると、問題が発生する可能性があります。インフラストラクチャーレベルのアクセス制御が完璧な順序でなければ、企業全体がハッカーにさらされ、ハッカーはその脆弱性を不正なスヌーピングや全面攻撃の入り口として利用する可能性があります。

実際、機能アクセス制御の脆弱性が見つからない、または誤って構成されている脆弱性を悪用することは非常に簡単です。攻撃者は過度に熟練している必要すらありません。必要なのは、そのアプリケーションをサポートしているフレームワークの中で、どのコマンドが関数を実行するのかを知ることだけです。もしそうなら、それは試行錯誤の問題です。許可されてはいけないリクエストを継続的に送信する可能性があり、成功するとすぐに、対象となるWebサイト、アプリケーション、サーバー、さらにはネットワーク全体が公開される可能性があります。

ミッシング・ファンクション・レベル・アクセス・コントロール・エクスプロイトの仕組み

機能レベルのアクセス制御が組織に浸透する方法はいくつかあります。たとえば、機能レベルのアクセスはアプリケーションに任せて、基盤となるインフラストラクチャでは検証されない場合があります。あるいは、インフラストラクチャーレベルのアクセス制御が誤って設定されている可能性もあります。管理者が、権限のないユーザーにはインフラストラクチャーのリソースへのアクセス方法がわからないと考え、上位レベルのユーザーだけが見ることができるはずの「セキュリティ・バイ・セキュリティー (Security by Obscurity)」モデルを使用することがありますが、これはほとんど機能しません。

あいまいさによるセキュリティの例として、次の URL は攻撃を受けやすい可能性があります。

http://companywebsite.com/app/NormalUserHomepage

認証されたユーザーが強制URLブラウズと呼ばれる手法を使用すると、管理者にのみ表示されるページにアクセスしようとする可能性があります。例としては、次のようなものが考えられます。

http://companywebsite.com/app/AdminPages

サーバー側での検証が行われていない場合は、管理ページが表示され (その名前がリクエストと一致する場合)、管理者が新しいページから行う追加機能にアクセスできるようになります。サーバーが攻撃者に「ページが見つかりません」というエラーを返した場合、攻撃者は管理ページに付けられた名前がわかるまで試行を続けることができます。

攻撃者の場合、悪用 機能レベルのアクセス制御がない 同様のプロセスです。権限のないページを閲覧しようとする代わりに、関数リクエストを送信します。たとえば、管理者権限を持つ新しいユーザーを作成しようとするかもしれません。そのため、フレームワークによっては次のようなリクエストになります。

投稿/アクション/ユーザー名作成=ハッカー&pw=パスワード&ロール=管理者

機能レベルのアクセス制御が存在しない場合、上記の例は成功し、新しい管理者アカウントが作成されます。攻撃者が新しい管理者としてログインし直すと、そのネットワークまたはサーバー上の他の管理者と同じアクセス権と権限を持つことになります。

機能レベルのアクセス制御が欠けている場合の修正

機能レベルのアクセス制御に欠けている脆弱性は、攻撃者が簡単に悪用できるため、脆弱性を発見、修正、防止することが重要です。ありがたいことに、ある程度のノウハウと基本的なインフラストラクチャがあれば、これはそれほど難しくありません。 コードセキュリティトレーニング

主な保護策は、インフラストラクチャレベルでロールベースの認証を実装することです。アプリケーションがその機能を処理することを決して信頼しないでください。たとえそうであっても、インフラストラクチャー側の承認があれば、見落としがないことが保証されます。認証は、組織のルーチンに組み込まれ、すべての新しいアプリケーションに適用される一元的な場所 (AWS IAM、Azure IAM など) から行うのが理想的です。これらの承認プロセスは、フレームワーク自体から行うことも、いくつもの使いやすい外部モジュールから行うこともできます。

最後に、組織は最小権限の概念を採用する必要があります。デフォルトではすべてのアクションと機能を拒否し、承認プロセスを使用して有効なユーザーに必要な操作を行う権限を与える必要があります。ユーザーには、必要な機能を実行するのに十分な権限のみを、必要な期間だけ付与する必要があります。

機能レベルのアクセス制御が欠けていると、壊滅的な打撃を受ける可能性があります。しかしありがたいことに、優れたインフラストラクチャレベルの認証方法を組織に組み込むことで、この問題の発生を簡単に防ぐことができます。

アクセス制御のバグを実際に発見する準備はできていると思いますか?次の Docker コードスニペットを比較してください。1 つは脆弱で、もう 1 つは安全です。


傷つきやすい:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザールート
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

安全:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザーなし
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

詳細を学び、自分自身に挑戦してください

をチェックしてください セキュア・コード・ウォリアー この脆弱性や、他のセキュリティ上の欠陥や脆弱性による被害から組織や顧客を保護する方法について、さらに詳しく知るためのブログページをご覧ください。

また、以前に見逃した場合でも、 IaC ゲーミフィケーションセキュリティチャレンジを試してみる Secure Code Warriorプラットフォームで、すべてのサイバーセキュリティスキルを磨き、最新の状態に保ちましょう。

次章をお楽しみに!

观看在线研讨会
开始吧
了解更多

请点击以下链接下载此资源的PDF文件。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。

显示报告预约演示
下载PDF文件
显示资源
分享:
领英品牌社交x 标志
您还有兴趣吗?

分享:
领英品牌社交x 标志
著者
马蒂亚斯·马杜博士
2020年5月11日发布

马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。

马蒂亚斯是一位拥有15年以上软件安全实践经验的研究员兼开发者。他曾为Fortify Software、其创立的Sensei Security等企业开发解决方案。在职业生涯中,马蒂亚斯主导了多个应用安全研究项目,这些项目最终转化为商用产品,并获得了10余项专利。在离开办公桌时,马蒂亚斯担任高级应用安全培训课程讲师,并定期在RSA大会、黑帽大会、DefCon、BSIMM、OWASP应用安全大会、BruCon等全球性会议上发表演讲。

马蒂亚斯在根特大学获得计算机工程博士学位,期间学习了通过程序混淆技术隐藏应用程序内部运作机制的应用程序安全技术。

分享:
领英品牌社交x 标志

次回のInfrastructure as Codeシリーズの記事では、皆さんのような開発者が組織内に安全なインフラストラクチャを導入する際に、まったく新しいレベルのセキュリティ意識へと導きます。

ところで、前回のブログで取り上げたセキュリティ設定ミスの課題にどう対処しましたか?足りない機能レベルのアクセス制御の脆弱性に今すぐ取り組みたいなら、プラットフォームに進んでください。

(上記のリンクからKubernetesチャレンジに移動できますが、プラットフォームにアクセスしたら、ドロップダウンを使用してAnsible、CloudFormation、Terraform、Dockerから選択することもできます。選択はあなた次第です。)

現在導入されているほとんどすべてのアプリケーションには、要求された機能を実行する権限がユーザーに付与されているかどうかを確認する、何らかのアクセス制御メカニズムがあります。これは、アプリケーションを作成するときの機能性だけでなく、優れたセキュリティの基礎でもあります。実際、さまざまな権限を持つユーザーがプログラムを使用できるようにするには、すべての Web アプリケーションにアクセス制御が必要です。

ただし、アクセス制御の同じ検証機能がインフラストラクチャレベルで実行されなかったり、誤って構成されたりすると、問題が発生する可能性があります。インフラストラクチャーレベルのアクセス制御が完璧な順序でなければ、企業全体がハッカーにさらされ、ハッカーはその脆弱性を不正なスヌーピングや全面攻撃の入り口として利用する可能性があります。

実際、機能アクセス制御の脆弱性が見つからない、または誤って構成されている脆弱性を悪用することは非常に簡単です。攻撃者は過度に熟練している必要すらありません。必要なのは、そのアプリケーションをサポートしているフレームワークの中で、どのコマンドが関数を実行するのかを知ることだけです。もしそうなら、それは試行錯誤の問題です。許可されてはいけないリクエストを継続的に送信する可能性があり、成功するとすぐに、対象となるWebサイト、アプリケーション、サーバー、さらにはネットワーク全体が公開される可能性があります。

ミッシング・ファンクション・レベル・アクセス・コントロール・エクスプロイトの仕組み

機能レベルのアクセス制御が組織に浸透する方法はいくつかあります。たとえば、機能レベルのアクセスはアプリケーションに任せて、基盤となるインフラストラクチャでは検証されない場合があります。あるいは、インフラストラクチャーレベルのアクセス制御が誤って設定されている可能性もあります。管理者が、権限のないユーザーにはインフラストラクチャーのリソースへのアクセス方法がわからないと考え、上位レベルのユーザーだけが見ることができるはずの「セキュリティ・バイ・セキュリティー (Security by Obscurity)」モデルを使用することがありますが、これはほとんど機能しません。

あいまいさによるセキュリティの例として、次の URL は攻撃を受けやすい可能性があります。

http://companywebsite.com/app/NormalUserHomepage

認証されたユーザーが強制URLブラウズと呼ばれる手法を使用すると、管理者にのみ表示されるページにアクセスしようとする可能性があります。例としては、次のようなものが考えられます。

http://companywebsite.com/app/AdminPages

サーバー側での検証が行われていない場合は、管理ページが表示され (その名前がリクエストと一致する場合)、管理者が新しいページから行う追加機能にアクセスできるようになります。サーバーが攻撃者に「ページが見つかりません」というエラーを返した場合、攻撃者は管理ページに付けられた名前がわかるまで試行を続けることができます。

攻撃者の場合、悪用 機能レベルのアクセス制御がない 同様のプロセスです。権限のないページを閲覧しようとする代わりに、関数リクエストを送信します。たとえば、管理者権限を持つ新しいユーザーを作成しようとするかもしれません。そのため、フレームワークによっては次のようなリクエストになります。

投稿/アクション/ユーザー名作成=ハッカー&pw=パスワード&ロール=管理者

機能レベルのアクセス制御が存在しない場合、上記の例は成功し、新しい管理者アカウントが作成されます。攻撃者が新しい管理者としてログインし直すと、そのネットワークまたはサーバー上の他の管理者と同じアクセス権と権限を持つことになります。

機能レベルのアクセス制御が欠けている場合の修正

機能レベルのアクセス制御に欠けている脆弱性は、攻撃者が簡単に悪用できるため、脆弱性を発見、修正、防止することが重要です。ありがたいことに、ある程度のノウハウと基本的なインフラストラクチャがあれば、これはそれほど難しくありません。 コードセキュリティトレーニング

主な保護策は、インフラストラクチャレベルでロールベースの認証を実装することです。アプリケーションがその機能を処理することを決して信頼しないでください。たとえそうであっても、インフラストラクチャー側の承認があれば、見落としがないことが保証されます。認証は、組織のルーチンに組み込まれ、すべての新しいアプリケーションに適用される一元的な場所 (AWS IAM、Azure IAM など) から行うのが理想的です。これらの承認プロセスは、フレームワーク自体から行うことも、いくつもの使いやすい外部モジュールから行うこともできます。

最後に、組織は最小権限の概念を採用する必要があります。デフォルトではすべてのアクションと機能を拒否し、承認プロセスを使用して有効なユーザーに必要な操作を行う権限を与える必要があります。ユーザーには、必要な機能を実行するのに十分な権限のみを、必要な期間だけ付与する必要があります。

機能レベルのアクセス制御が欠けていると、壊滅的な打撃を受ける可能性があります。しかしありがたいことに、優れたインフラストラクチャレベルの認証方法を組織に組み込むことで、この問題の発生を簡単に防ぐことができます。

アクセス制御のバグを実際に発見する準備はできていると思いますか?次の Docker コードスニペットを比較してください。1 つは脆弱で、もう 1 つは安全です。


傷つきやすい:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザールート
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

安全:

quay.io/prometheus/busybox から:最新
引数バージョン=0.12.1
ARG ファイル名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$version/$filename.tar.gz &\
tar-xvf $ファイル名.tar.gz &&\
mv $ファイル名/MySQLD_Exporter /bin/mysqld_exporter
.my.cnf /home/.my.cnf をコピー
コピー。/scripts/entrypoint.sh ~/entrypoint.sh
ユーザーなし
9104を公開します
エントリポイント [「sh」, "~/entrypoint.sh"]
CMD [「/bin/mysqld_exporter」]

詳細を学び、自分自身に挑戦してください

をチェックしてください セキュア・コード・ウォリアー この脆弱性や、他のセキュリティ上の欠陥や脆弱性による被害から組織や顧客を保護する方法について、さらに詳しく知るためのブログページをご覧ください。

また、以前に見逃した場合でも、 IaC ゲーミフィケーションセキュリティチャレンジを試してみる Secure Code Warriorプラットフォームで、すべてのサイバーセキュリティスキルを磨き、最新の状態に保ちましょう。

次章をお楽しみに!

目录

下载PDF文件
显示资源
您还有兴趣吗?

马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。

预约演示[下载]
分享:
领英品牌社交x 标志
资源中心

开始所需的资源

其他投稿
资源中心

开始所需的资源

其他投稿