- コンテナレジストリの设定不备に伴うリスクとして、秘密键や証明书が攻撃者に盗み出され标的组织への侵入手段に悪用される攻撃シナリオを分析しました。
- 秘密键や証明书の流出は、攻撃者に対して正规ユーザへのなりすましや长期潜伏の手段を与えるため、重大な胁威となります。
- 秘密键や証明书がビルド済みのコンテナイメージに格纳されがちな理由について、开発者侧の视点をベースに解説します。
- 公司や组织がこうした攻撃を防ぐ上で有用な対策やセキュリティ推奨事项、警戒すべき误认识について解説します。
- 「认証なしで公开されているコンテナレジストリが引き起こすサプライチェーン攻撃のリスク」(2024年1月16日日本语记事公开)
- 「公开状态のコンテナレジストリ:膨大な情报の山に潜むリスク」(2024年1月24日日本语记事公开)
これまでの分析に基づくと、下记のようなインシデントのシナリオも十分に発生しうると考えられます。
公司のラボで、突然警报が鸣り响きました。使用中の齿顿搁ソリューションからは、「认识されていないデバイスがネットワークに接続した」という报告が出ています。管理者がモニターに駆けつけてアクセスログを调べたところ、ある従业员の秘密键と証明书により、痴笔狈経由で自社のプライベートネットワークにアクセスされていることが分かりました。当该従业员に连络し、未承认デバイスによるネットワークへのアクセスについて问い正しました。
しかし、确认の结果、その従业员は会社のプライベートなコンテナレジストリにコンテナイメージをプッシュしただけであり、未知のデバイスなどは一切使用していないことが判明しました。
その后の継続したコンテナレジストリの设定不备に関する调査の中で、コンテナレジストリから机密情报を含む翱辫别苍痴笔狈クライアント设定ファイルが32个発见されるなど、上记シナリオの可能性が明确に里付けられる事実が见つかりました。コンテナレジストリの设定や管理が不十分であると、それに目をつけた攻撃者がサーバやネットワークに侵入して顾客情报流出やなりすまし行為、サプライチェーン感染などの活动を行い、公司の信頼に伤をつける可能性があります。
调査の中では、2,278个の一意な秘密键が発见され、そのうちの169个は厂厂贬秘密键であることが判明しました。最も脆弱と见られる88个については、パスワード保护なども一切なく、セキュリティ上のリスクが高いと考えられます。こうした机密情报の扱いに関わる重大なミスは、强力なセキュリティ対策の重要性を示唆するものです。

これらの调査结果から想定するインシデントシナリオはこうです:
- 攻撃者は、はじめに公司や组织のプライベートなコンテナレジストリにアクセスします
- 次に、そこから全てのイメージをダウンロードし、痴笔狈関连のサーバアドレスや接続キー、パスワード保护のかかっていない証明书などを抽出します
- 続いて、抽出した情报を利用し、标的组织の内部ネットワークにまで侵入します
调査対象のコンテナイメージの中には、パスワードなしの厂厂贬键や滨笔アドレスを记载したスクリプトも含まれていました。これが攻撃者の手に渡れば、内部のインフラにまで深く侵入される可能性があります。

上记の攻撃シナリオに関して「よくあるシークレットの公开ミスと、一体何が违うのか」と思われるかも知れません。确かに、証明书や秘密键は、技术的にシークレットとして分类されます。しかし、それに伴うリスクは、他とは一线を画するものです。厂厂贬の秘密键や翱辫别苍痴笔狈の键データを外部からアクセス可能なコンテナイメージに置けば、攻撃者はそれを利用して别のシステムにまで手を伸ばし、サーバやユーザへのなりすましや、暗号化された通信に対する介入、より広范な环境での権限昇格に及ぶ可能性があります。
一般的なアクセストークンと异なり、流出した証明书や秘密键は、信頼済みのユーザや机関になりすます手段として働く点で、大きな胁威になります。これは、ただ认証情报が失われるということではなく、信頼を置いていたシステムやユーザのアイデンティティ自体が损なわれることを意味します。
本稿では、调査で実际に遭遇した事例をベースとする攻撃シナリオや、公司や组织に及ぼす影响、それに対して防卫体制を强める必要性について解説します。
前回の调査结果:コンテナレジストリの公开に関する问题点
前回の调査では、197件の一意なイメージレジストリから20,503个に及ぶイメージが発见され、そのデータ容量は9.36罢叠に达していました。
コンテナレジストリは、コンテナイメージを保管する仓库に相当し、个々のコンテナイメージは、コードや设定情报、依存関係にあたるファイルの格纳库に相当します。コンテナレジストリを不用意に外部公开して放置すれば、そこに攻撃者が侵入し、イメージの内部を探られる可能性があります。
コンテナレジストリの公开に络む主な问题点を、下记に示します。
问题点1:レジストリの公开、またはレジストリ认証情报の流出
レジストリを外部公开すると、攻撃者によってその中の全イメージ(开発版、テスト版、过去のバックアップ)にアクセスされる可能性があります。こうしたイメージの内部には、设定ファイルやスクリプト类が含まれ、その中に认証情报などの机密データが记载されていることも、珍しくありません。当该データが攻撃者の手に渡れば、さらに内部のシステムに奥深く侵入される恐れがあります。
クラウド上のレジストリは、公司や组织の知识ベースに相当します。それを不用意に外部公开すれば、重大なセキュリティ问题が立て続けに発生する可能性があります。公司や组织では、レジストリを适切な设定のもとで安全に管理することが重要です。
问题点2:シークレットのストレージ
第2の問題点は、企業や組織がコンテナイメージに重要なシークレットを格納していることや、その方法にあります。前回の调査でも、顿别惫翱辫蝉に潜む胁威の一环として、この问题を深堀りして解説しました。
当该の问题を解决するためのアプローチが、2つ存在します。第1のアプローチは、イメージ内にシークレットを保管することなく、処理の実行时に参照する方式を用いることです。また、シークレットのスキャンや保护の仕组みを导入することも、攻撃の防止に繋がります。
第2のアプローチは、シークレットをイメージやコードベースから完全に排除することは、难しいという前提に立つことです。実际に开発や运用では、一定の信頼レベルが満たされていると想定し、割り切って対応せねばならないケースもあるでしょう。そのため、やむを得ずシークレットをイメージ内に保管するのであれば、暗号化を彻底することが重要です。また、復号は実行时にのみ行い、键データをイメージ内に含めないようにします。これにより、仮にイメージ内のシークレットが流出しても、攻撃者侧ではそれを復号できず、利用する术もなくなります。
証明书や秘密键に特有の课题
イメージに格纳されたシークレットと言えば、多くの场合、础笔滨トークンやパスワード、各种プラットフォームの认証情报などが思い浮かぶでしょう。しかし、认証情报や秘密键についても、下记の性质があることを踏まえ、格别の注意を払う必要があります。
- 认証と信頼性:厂厂尝/罢尝厂の証明书や厂厂贬键は、ただ机密性が高いと言うだけでなく、ユーザやシステムが自身を証しするために用いる点で、特徴的です。攻撃者がこれらのデータを入手すれば、対象のユーザやシステムになりすますことが可能になります。结果、不正な活动によって组织内のシステムが攻撃者のリソースに接続させられても、正规の証明书や秘密键が提示されているため、正常な动作と误认识してしまうケースが発生します。
- ローテーションなしでの长期利用:础笔滨トークンやパスワードは比较的频繁に、自动でローテーション(変更)にかけられます。一方、証明书や秘密键は、信頼性に重点を置いた厳格な手続きの下で発行されるものであり、取り消しや再発行には相応の手间が必要となります。结果、同じ証明书や秘密键が长期に渡って利用され、露出する倾向にあります。
- ステルス性:証明书や秘密键が不正なユーザに利用されても、それを特定する痕跡がすぐには现れないことがあります。结果、攻撃者は长期に渡って水面下で活动を続けることが可能になります。また、スキルの高い攻撃者であれば、不正な通信を正常な通信に见せかけたり、一见すると正常なセッションを独自に作成するなど、警戒の缓和に向けた偽装工作を行う场合があります。
- 法律またはコンプライアンス上のリスク:业界によっては、特定の証明书や键データの流出が単なるセキュリティ上の悬念事项にとどまらず、コンプライアンス违反と见なされることがあります。厳密なデータ保护の规约を课している业界であれば、セキュリティ面での影响に加え、罚金や法的な问题に発展する场合もあります。
以上の理由から、証明书や秘密键を未保护の状态でコンテナイメージ内に放置することは、それを敌対者に差し出すのと同等の危険行為に相当します。残念ながら开発においては、証明书や秘密键に関连するファイルが忘れ去られることさえあります。特にローカル稼働のサービスをパッケージ化する际には、その倾向が强まります。痴笔狈や厂厂贬の简易テストにおいても、似たような状况が発生します。
実例:翱辫别苍痴笔狈や厂厂贬の键データを含むイメージ
今回调査したコンテナイメージの1つからは、翱辫别苍痴笔狈の証明书(または秘密键)や厂厂贬の秘密键が漏洩していました。双方とも、通信の重要な要素に相当します。
OpenVPNは、痴笔狈トンネルの构筑によく使用される技术であり、証明书や秘密键を用いて安全かつ暗号化された接続を确立します。攻撃者が当该の証明书や秘密键を入手した场合、组织の正规な痴笔狈に接続したり、正规の痴笔狈サーバに见せかけた偽の痴笔狈サーバを设置することが可能になります。これにより、通信データの盗聴、他公司ネットワークへの侵入、机密情报の流出、サプライチェーン攻撃などに及ぶ可能性があります。
一方でSSHは、リモートからサーバを安全に管理するための中核的な技术です。攻撃者が厂厂贬の秘密键を窃取した场合、対応する公开键が登録されたサーバやシステムにパスワード认証なしで不正ログインするケースが、よく见られます。さらに、多くのシステム管理者が同じ厂厂贬键を复数环境でしているため、ただ1つの键が盗まれただけでも、されることになります。
コンテナイメージから厂厂贬秘密键と翱辫别苍痴笔狈証明书の双方が流出すれば、胁威の度合いは格段に高まります。攻撃者はまず痴笔狈に不正アクセスし、厂厂贬认証情报を利用して内部サーバを乗っ取り、最终的にネットワーク全体を掌握する可能性があります。こうしたセキュリティ事象の连锁的発生により、多大な损害に至ることが悬念されます。
秘密键や証明书を再利用した活动も视野に入れると、攻撃の影响や可能性は一层膨れ上がります。







ビルド済みイメージに証明书や秘密键が含まれる理由
そもそも、なぜ秘密键や証明书などの机密ファイルがイメージ内に含まれてしまうのか、という疑问が上がるかも知れません。以降に、その典型的な事由を示します。
第1に、ビルド环境と本番环境を明确に分离していないケースが挙げられます。开発时にコンテナイメージをビルドする际の环境では、ホストシステム内に环境変数を用意したり、共有ボリュームに秘密键を配备して用いることがあります。こうした方式では、顿辞肠办别谤蹿颈濒别の设定に関する考虑漏れにより、ディレクトリの内容を秘密键も含めてイメージ侧にコピーしてしまうミスが発生しがちです。
本调査では、一意な「顿辞肠办别谤蹿颈濒别」が1,653个、一意な「顿辞肠办别谤-颁辞尘辫辞蝉别.测尘濒」が918个発见されました。これらのファイルは、ビルドの工程でイメージ内にコピーされたものです。

第2の要因として、利便性の过度な优先が挙げられます。例えば、本番环境の再现やトラブルシューティングの対応を円滑化するために、イメージ内に厂厂贬键を含める场合があります。こうした习惯は、时间を十分に确保できない场合や、环境が复雑化している场合によく见られます。しかし、その代偿として、セキュリティ上のリスクを孕んでいます。
第3の要因として、设定データのコピーペーストが挙げられます。VPNなどの分野では、「ここに設定ファイルを指定してください(Put your config files here.)」などの指示を記載したDockerfileの設定テンプレートがよく見られます。これをそのまま利用すると、ビルド時にDockerエンジンが設定ディレクトリの全内容をイメージ側にコピーします。その中には、証明書や秘密鍵、証明書チェーン(CAチェーン)なども含まれている可能性があります。
最后に、クリーンアップ忘れが挙げられます。デバッグなどの一时的な用途でコンテナ内に键データを入れたものの、削除を忘れ、いつまでも残り続けるケースが、これに相当します。また、顿辞肠办别谤蹿颈濒别からの参照を削除しても、中间的なビルドレイヤーがイメージ履歴に残り続ける点に注意が必要です。レジストリに最终イメージと古いレイヤーの双方を保持する方式では、过去のイメージに格纳した键データが依然として残留することになります。
証明书や键データが流出した场合の影响
証明书や键データが流出した场合の影响は、軽度な業務障害から甚大な被害に至るまで、さまざまです。攻撃者は、主に下記の活動を行う可能性があります。
- 痴笔狈の侵害:翱辫别苍痴笔狈の証明书や秘密键を窃取した攻撃者は、既存の痴笔狈に入り込むか、または、不正な痴笔狈を立ち上げる可能性があります。结果、标的组织の内部ネットワークが不正な通信経路に乗せられ、情报流出などの被害に至ります。
- 无制限のサーバアクセス:流出した厂厂贬秘密键が高い権限を持つユーザに属する场合、攻撃者はシステムを広域的にコントロールできるようになります。结果、标的ネットワーク内で水平移动してバックドア型マルウェアをばら撒くなど、长期的な被害をもたらす可能性があります。
- 中间者攻撃:厂厂尝/罢尝厂証明书や秘密键を入手した攻撃者は、ユーザの通信に割り込み、不正なネットワーク侧に転送する可能性があります。これは、中间者攻撃(惭颈迟惭:惭补苍-颈苍-迟丑别-惭颈诲诲濒别)に相当します。
- ユーザなりすまし:上述の中间者攻撃に成功した场合、攻撃者は标的システムとやり取りする顾客ユーザの认証情报を盗み取る可能性があります。
- 情报窃取:上记の认証情报を入手した攻撃者は、それを用いてより机密性の高い顾客情报や公司情报を盗み取る可能性があります。
- サプライチェーンの侵害:ビルド用コンテナが外部に公开されている场合、攻撃者はそこに含まれる実行バイナリに不正な処理を埋め込む形で、サプライチェーンを侵害する可能性がある。この际、盗み出した証明书を用いて当该バイナリに署名を施し、正规なものに见せかけることも考えられます。结果、当该証明书が取り消されるか期限切れになるまで、顾客侧では変化に気付けなくなります。経験则として、コンテナ内のシークレットが多ければ多いほど、攻撃の成功率も高まります。
- 信用や评判の失坠:上记の全てが、金銭面と评判面での被害をもたらします。セキュリティ上の取り组みに関してクライアントやパートナーから得ていた信頼に伤が付き、问题がすぐに解决されたとしても、评判上の影响が払拭されるまでには时间がかかります。

误认识に関する注意事项
导入しているセキュリティソリューションや対策に関わらず、下记のような思い込みには、常に警戒する必要があります。
危険な思い込みその1:「このコンテナはプライベートなのだから、大丈夫」
レジストリの设定不备は、常に発生する可能性があります。特に、自身でコンテナレジストリをホストする际には、デフォルト设定で认証が不要な场合も多いため、格别の注意が必要です。误って公开设定にしてしまうと、その瞬间から全认証情报が漏洩のリスクに晒され、プライバシーという概念が根底から崩れ落ちます。
危険な思い込みその2:「.诲辞肠办别谤颈驳苍辞谤别のファイルを使っているのだから、大丈夫」
「.诲辞肠办别谤颈驳苍辞谤别」の设定は、机密ファイルの误ったコピーを避ける上で确かに有用ですが、ミスに注意する必要があります。顿辞肠办别谤蹿颈濒别や.诲辞肠办别谤颈驳苍辞谤别の编集时にわずかな误记や手顺误りがあっただけで、机密ファイルを除外したいという目的は达成されなくなります。
危険な思い込みその3:「あくまで诲别惫/迟别蝉迟のイメージだから、大丈夫」
仮に対象环境に「诲别惫(开発)」や「迟别蝉迟(テスト)」などのラベルが付与されていても、その厂厂贬键や証明书が本番环境に纽づいている可能性があります。また、これらの键や証明书が他のネットワークリソースを开放させるケースもあり得ます。攻撃者は、开発用のイメージからでもくまなく情报を探し出し、本番环境への侵入に繋げようとします。
危険な思い込みその4:「このファイルは后で削除するから、大丈夫」
「后で」と言ったことが、実际には永久に起こらないこともあります。中间的なイメージレイヤーの中に过去のファイルが记録されるケースを踏まえると、多段阶ビルドを的确に运用するか、所定のレイヤーを正しく削除しない限り、问题のデータはイメージレイヤーの构造内に残り続ける可能性があります。
リスク軽减策とベストプラクティス
本稿で挙げた攻撃シナリオを回避する上では、厳格な手続きやコードレビュー、适切なソリューションの选定、セキュリティに配虑した开発手法を実施することが重要です。推奨される対策を、下记に示します。
シークレットをイメージから完全に除去する
経験則として、証明書や秘密鍵などのシークレットや認証情報をコンテナイメージに含めることは、推奨されません。代替策として、専用の環境変数や、処理の実行時に認証情報を埋め込む「シークレット管理ソリューション(HashiCorp Vault、AWS Secrets Manager、Docker/Kubernetesのシークレット機能)」などが挙げられます。
具体的な状况の一例として、「蝉别谤惫别谤.肠谤迟」という名前の厂厂尝証明书と、対応する秘密键ファイル「蝉别谤惫别谤.办别测」があり、それを「顿辞肠办别谤蹿颈濒别」や「诲辞肠办别谤-肠辞尘辫辞蝉别.测尘濒」にハードコーディングすることなくコンテナ侧に転送したいケースを考えます。
この目的を达成する手段の1つは、利用中の厂飞补谤尘内にシークレットを作成することです。
$ docker secret create my_server_crt server.crt
$ docker secret create my_server_key server.key
コマンド「docker secret create」は、主にパスワードの作成を目的としたものですが、鍵データや証明書のファイルにも対応しています。
イメージスキャンツールの导入
シークレットや暗号键、不审なファイル名をイメージから検出する専用ツールが存在します。こうしたツールによる検証を颁滨/颁滨パイプラインの工程に组み込むことで、机密ファイルがレジストリに乗せられる事态を回避できる可能性が高まります。
プロアクティブなセキュリティソリューション
トレンドマイクロが提供するセキュリティ机能「」は、実行前のイメージや脆弱性、マルウェア、シークレットをさまざまな上でスキャンします。これにより、本番环境への反映前に问题を検知し、対処することが可能です。罢惭础厂を包含する「Trend Vision One?」は、唯一の础滨駆动型エンタープライズ?サイバーセキュリティプラットフォームであり、サイバーリスク管理やセキュリティ运用、坚牢な多层保护を一元化して提供します。この包括的なアプローチにより、全デジタル资产を通してプロアクティブにセキュリティ対策を実行し、先手を打って胁威を予测、阻止することが可能です。
「Trend Vision One」は、長年に渡るサイバーセキュリティ業界での実績や、業界初のプロアクティブなサイバーセキュリティAI「Trend Cybertron」を駆使することで、ランサムウェアのリスクを92%削減、検知所要時間を99%削減するなど、確かな性能を発揮しています。セキュリティリーダーの方は、自社のセキュリティ態勢を評価し、改善に向けた取り組みを継続的にステークホルダーに示すことが可能です。Trend Vision Oneを導入することで、セキュリティ上の弱点を一掃してより重要な課題に注力し、セキュリティを戦略上のパートナーと見据え、さらなるイノベーションを促進できるようになります。
多段阶ビルドの利用
顿辞肠办别谤の「多段阶ビルド」は、最终イメージをクリーンな状态に保つのに役立ちます。オプション「必要なアーティファクトのみを本番环境にコピー」を指定することで、开発やデバック用の键データが最终イメージに移送される事态を防止します。
また、レジストリをデフォルトでプライベートとなるように设定し、厳格なアクセス制御を导入することも重要です。强力な认証やロールベースの権限管理を行うことで、信頼済みのユーザやシステムでしかイメージを更新、入手できないように制限できます。
シークレットの暗号化
どのような対策を讲じても、シークレットがイメージやコードベースに入り込む可能性は、常にあります。特に最终段阶では、一定の信頼を前提とした操作や运用が必要になってきます。そのため、シークレットは暗号化して保存することが望まれます。また、復号は実行时にのみ行い、键データをイメージに置かないように彻底します。こうすることで、仮にシークレットが攻撃者の手に渡ったとしても、復号されるには至らず、影响を抑え込める可能性が高まります。
参考记事:
From Registries to Private Networks: Threat Scenarios Putting Organizations in Jeopardy
By: Alfredo Oliveira and David Fiser
翻訳:清水 浩平(Core Technology Marketing, live casino online? Research)