[レポート][Mercari, Inc.]Attacking and Securing CI/CD Pipeline – CODE BLUE 2021 #codeblue_jp

CODE BLUE 2021で行われた「[Mercari, Inc.]Attacking and Securing CI/CD Pipeline」セッションのレポートです。
2021.10.20

CODE BLUE 2021の下記セッションのレポートです。

[Mercari, Inc.]Attacking and Securing CI/CD Pipeline

Dev(Sec)Opsの一般化などにより、CI/CD(継続的インテグレーション/デリバリー)によるアプリケーション開発およびインフラストラクチャーの管理は、現代のアプリケーション開発においてますます一般的なものになっています。その一方、それを支えるCI/CD環境自体のセキュリティに焦点があたることは特に国内においてそこまで多くありません。
2021年、メルカリでもCodeCovを利用したことによるサプライチェーン攻撃により、CI/CD環境への侵入を許し、被害を受けています。
本発表では、直接的なインシデント対応における反省および、以前から進めているCI/CD環境自体のセキュリティ改善により溜まったCI/CD環境への攻撃手法およびセキュア化の知見を、皆様の会社でもセキュリティ改善に利用できるよう共有することを目的にしています。

Presented by :
メルカリ 末澤 裕希 Nikolay Elenkov, Security Engineer

講演資料

レポート

  • CI/CD パイプラインへの攻撃とセキュリティの話
  • 実際にメルカリ社が受けた攻撃も紹介する
  • なぜ CI/CD パイプラインが重要なのか
    • 開発スピードの向上、デプロイ頻度の向上
    • オートメーションで実現
  • CI/CD パイプラインとは何か
    • ソースコードのプッシュからデプロイまでを自動化
    • IaC (Infrastructure as Code) にも利用される
  • マネージド CI/CD ツール
    • Github Action
    • AWS CodePipeline
    • CircleCI など
  • CI/CD の攻撃に対するインパクトは大きい
    • 本番環境との結び付きが強い
    • クレデンシャル情報が存在
      • クレデンシャル情報からAWS等のクラウド環境へ影響が波及する
  • メルカリの DevOps
    • すべてのデプロイは CI/CD パイプラインで実施
    • インフラもすべてコードで管理
    • テストの自動化を行う文化
  • 2021年4月に Codecov Supply-chain Attack
    • メルカリでも CodeCovs を利用していた
    • クレデンシャルが流出してしまい、最終的にソースコードの一部も流出した
  • メルカリのインシデントレスポンス
    • 特定
      • CI/CD 上のクレデンシャルの特定
      • GitHub の調査
      • ログ調査
    • 封じ込め
      • 流出したクレデンシャルの無効化
      • ネットワーク制御の強化
    • 根絶
      • すべてのトークン類の無効化を実施
  • インシデントからの学び(教訓)
    • 一般的なマネージド CI/CD にはリスクがある
    • 静的なクレデンシャルの危険性を痛感
    • サプライチェーンの厳重な管理は必須
  • CI/CD は次の攻撃対象として Hot なターゲットになると思われる
    • 一方で、セキュリティ観点の議論はほとんどされていない
  • そこで、Threat Matrix (驚異マトリクス) を作成した
  • Attack surfaces (攻撃対象領域) の例

  • 攻撃シナリオ1

  • 攻撃シナリオ2

  • 攻撃シナリオ3

  • CI/CD のセキュア化

    • 驚異マトリクスを参考にできる
    • すべての攻撃対象領域を考慮する必要がある
    • 本番環境のレベルのセキュリティを確保する
      • 本番環境にデプロイできるということは、本番環境の一部と考えることができる
  • Mitigations の例

  • セキュリティの原則を振り返ることも重要

    • 常に最小権限
    • 一時的なトークンを利用
    • セキュリティのモニタリング 他多数
  • マネージド CI/CD サービスは利用すべきか?
    • 便利な一方、制限もある
  • 自分達でCI/CDを構築する場合は
    • 商用 CI/CD を利用しつつ、管理サーバだけ自分たちで構築
    • 自分たちで一から構築(OSS利用)
      • オペレーションコストが高い
  • 結論として今は完璧な方法はない
  • 参考資料
    • SLSA (Supply-chain Levels for Software Artifacts)
    • CNCF Software Supply Chain Security Paper
  • まとめ
    • CI/CD は多くの攻撃的側面を持っている
      • しかし、セキュリティの側面はあまり議論されていない
    • 皆さまも利用できる ATT&CK ライクな驚異マトリクスを公開
      • 攻撃的、防御的観点の両方から利用できる
    • CI/CD パイプラインのリスクはサプライチェーンだけではない
      • 攻撃的側面すべてを考慮する必要がある
  • メルカリのセキュリティチームではメンバー募集中!

感想

CI/CD に関するセキュリティの話はあまり聞いたことがなかったので参考になりました。