Upgrade to Pro — share decks privately, control downloads, hide ads and more …

開発チームとともに進めるインフラセキュリティの継続的な改善

 開発チームとともに進めるインフラセキュリティの継続的な改善

吉澤 政洋 @muziyoshiz
2024 年 7 月 2 日
SRE Lounge #17

アンドパッドの SRE チームは、マルチプロダクト開発を行う複数の開発チームを支援するために、さまざまな取り組みを行っています。この発表では、開発チームとともにインフラセキュリティを継続的に改善していくための、最近の取り組み 2 件(継続的なセキュリティ診断の導入、ウイルススキャンシステムのリプレースおよび運用改善)をご紹介します。

ANDPAD inc

July 03, 2024
Tweet

More Decks by ANDPAD inc

Other Decks in Technology

Transcript

  1. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 自己紹介 吉澤

    政洋 @muziyoshiz • 2023年3月にアンドパッド入社 ◦ サービス運用監視の研究者、ソフトウェア 開発者を経験したのち、2017年8月からSRE • SREコミュニティのスタッフ経験あり ◦ SRE NEXT(2020〜2023)のコアスタッフ ◦ 企業側での採用活動に注力するため、 SRE NEXT 2024はスポンサー参加 • ドキュメンテーションが得意 ◦ 2022年12月のWEB+DB PRESS Vol.132に 「コンテナ化実践ガイド」を寄稿 • 趣味はボルダリング 2
  2. Copyright © 2024 ANDPAD Inc. All Rights Reserved. この発表でお伝えしたいこと •

    アンドパッドSREチームが、マルチプロダクト開発を行う多数の開発チームを 支援するために、いろいろなシステムを準備し、必要に応じてIaC (Infrastructure as Code)のためのコードも書いていること • その具体例として、インフラセキュリティの継続的な改善のために、 発表者(吉澤)が主に進めた事例2件 3
  3. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 建設業界の市場規模と課題 6

    市場規模 建設業界 日本全体 市場規模 50兆円 (日本で2番目) 500兆円 事業者数 50万業者 (3年連続増加) 386万業者 従業者数 500万人 6800万人 課題 社会の課題 • 人材不足 • 低生産性 現場の課題 • 長時間残業 • 低粗利率
  4. Copyright © 2024 ANDPAD Inc. All Rights Reserved. マルチプロダクト、多数の開発チーム •

    インフラは全社統一基準だが、プロジェクト運営は各開発チームに委任 11 SRE Frontend Backend Application QA Frontend Backend QA Frontend Backend Application 開発チームA 開発チームB 開発チームC Frontend Backend 開発チームD
  5. Copyright © 2024 ANDPAD Inc. All Rights Reserved. システム構成 •

    メインはAWS ◦ 要件に応じて、一部のプロダクトはGoogle Cloudのサービス(Firebaseなど)も利用 • サービスはコンテナ化されており、Kubernetesを利用している ◦ コンテナの大半はAmazon EKS上で動作するが、ECS on Fargateも併用 ◦ サービスメッシュはLinkerdを採用 • 2つのEKSクラスタを本番運用している ◦ 歴史の長いモノリスのためのEKSクラスタ ◦ マイクロサービスのためのEKSクラスタ • Rubyの会社と思われがちだが、最近はGoで開発されるプロダクトも多い ◦ 詳細は https://engineer.andpad.co.jp/ を参照のこと 12
  6. Copyright © 2024 ANDPAD Inc. All Rights Reserved. SREチームのミッション •

    ビジネスも組織も急速に拡大 • 現場に責任と裁量を与えて、リスクや不確実性と戦う • カスタマーセントリックにマルチプロダクト開発 13 開発組織が全力疾走するのに安全で丈夫な道が必要 アンドパッドのSREは、その道をつくるチーム
  7. Copyright © 2024 ANDPAD Inc. All Rights Reserved. SREチームの担当業務 •

    プロダクト共通のシステム構築・運用・アップデート ◦ インフラ、監視システムやマイクロサービス基盤など • プロダクトごとのシステム構築支援 • 開発チームと連携したパフォーマンス問題や技術的負債の解決 • システムメンテナンスの取りまとめ • 開発・運用で利用するSaaSやアカウントの管理 • インフラコスト最適化 • インフラセキュリティ対策 14
  8. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 事例紹介 1.

    継続的なセキュリティ診断の導入 ◦ AWS Security Hub 2. ウイルススキャンシステムのリプレースおよび運用改善 ◦ Antivirus for Amazon S3(AWS Marketplace) 16
  9. Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWS Security

    Hubとは • ビルトインされたセキュリティのベストプラクティスに基づき、AWS上の リソースのチェック、およびチェック結果の通知機能を持つサービス • AWSの他サービス(Amazon GuardDutyなど)や他社サービスによる チェック結果を集約する機能も持つ ◦ アンドパッドではこの「ハブ」としての機能はまだ活用していないので、 今回は取り上げない 18
  10. Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWS Security

    Hub導入の背景 • アンドパッドでは開発チームにインフラの構築・管理を一部移譲している ◦ SREチームだけでなく、開発チームやData Platformチームも、TerraformなどのIaC ツールを活用している • 定期的なセキュリティ診断を行っているが、それだけではセキュリティリスク の発見が遅れる可能性がある ◦ セキュリティリスクを早期発見するためにSREチームの事前レビューを必須とする と、SREチームが開発のボトルネックになってしまう 19
  11. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 有効化するコントロールの精査 •

    AWSが提供するコントロール(チェックルール)数は膨大 ◦ 2024-07-02時点で、よく使われるセキュリティ標準「AWS 基礎セキュリティのベス トプラクティス v1.0.0」に含まれるコントロールは255件 • Security Hubの導入前に、関係者への確認を繰り返し、アンドパッドで有効化 する必要があるコントロールを精査 ◦ AWSが推奨する方法以外でセキュリティを担保できていれば、無効化できる ◦ やむを得ない理由があって無視する必要があるリソースも同様に確認 • コントロールの設定は、自作スクリプトによるIaCで管理 22
  12. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 検出結果を通知するシステムの構築 •

    AWSサービスの組み合わせだけで通知可能(Lambda関数の実装などは不要) • 同じ通知を繰り返さないためには、Step Functionsを用いて、一度Slackに通知 した検出結果のワークフローステータスを更新する必要あり 23
  13. Copyright © 2024 ANDPAD Inc. All Rights Reserved. ブログ記事:AWS Security

    Hubコント ロールの有効無効をコード管理するのは 予想のN倍大変だった話 https://tech.andpad.co.jp/entry/202 3/09/26/100000 システム面の詳細は過去の発表を参照 24 プレゼン資料:AWS Security Hubを 「有効化したけど見てない」人に向けた DevSecOpsの実現方法 https://speakerdeck.com/andpad/ka yac-andpad-event-muziyoshiz
  14. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 開発チームのためのドキュメント整備 •

    Security Hubの検出結果の確認・対応方法の手順書 • 現在の設定を確認できるコントロール一覧 • 通知の多いリソース(S3バケットなど)に関する推奨設定 25
  15. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 現在の設定を確認できるコントロール一覧 26

    (注:実際に使用しているものとは異なる、説明用のサンプルです) コントロールの説明 現在の設定(有効/無効) コントロールを 無効化した理由 チェック対象外にしたリ ソースとその理由
  16. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 通知の多いリソースに関する推奨設定 •

    AWSマネジメントコンソールでの設定 方法とTerraformでの設定方法の両方 を解説 ◦ 基本的にはTerraformで設定してほし いが、AWSマネジメントコンソール上 の表示と対比することで、内容を理解 しやすくしている • 推奨設定に違反した場合に発生する Security Hubのコントロールを解説 27
  17. Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWS Security

    Hub導入後の効果 • リソースの作成からセキュリティリスクの発見までの時間を短縮できた • 開発の初期段階でセキュリティリスクに気付けるため、SREチームから開発チー ムへ設定変更を依頼しやすくなった • 開発チームによる自発的な確認はまだ難しく、SREチームからの声掛けが必要。 Slackの通知に改善の余地がある ◦ 改善案1. Lambda関数を実装して、Slack通知にリソースの情報を追加する ▪ 例えば、Slackの通知にはセキュリティグループIDのみが表示され、AWSマネジ メントコンソールに移動するとセキュリティグループ名を確認できる ◦ 改善案2. Slack通知を、そのリソースを担当するチームのみに送信する ▪ いまはすべて1個のチャンネルに通知される ▪ そのチームのチャンネルに通知するか、チームへのメンションを追加したい 28
  18. Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドのウイルス(マルウェア)対策 •

    ユーザーからアップロードされたファイルに対して、S3バケットへのファイル 追加を契機として、スキャンを実行する • マルウェア(ウイルスを含む悪意があるファイル全般)である可能性が高いと 判断した場合は、他のユーザーのマルウェア実行を防ぐため、そのファイルを 削除し、アップロードしたユーザーに連絡する 30
  19. Copyright © 2024 ANDPAD Inc. All Rights Reserved. リプレース前のウイルススキャンシステム •

    Lambda関数でウイルススキャンを実行するOSSをフォークして利用していた。 しかし、以下の理由から、このシステムのリプレースを決定した 31 1. OSSの開発終了 ◦ Lambdaランタイムやウイルススキャンエンジン(ClamAV)のアップグレード に伴う対応を自分たち自身で行う必要が生じた 2. Lambdaの実行コストの増加 ◦ アンドパッドのサービス成長に伴い、扱うファイルの総数や合計サイズが増え た結果、規模に適さないアーキテクチャになった
  20. Copyright © 2024 ANDPAD Inc. All Rights Reserved. Antivirus for

    Amazon S3 • AWS Marketplace上で購入し、自分の所有するAWSアカウント内にインストー ルして利用するソフトウェア • Antivirus for Amazon S3の動作に必要なAWSサービス(ECSなど)の利用費に 加えて、スキャンしたファイルの合計サイズに応じたライセンス費が必要 32
  21. Copyright © 2024 ANDPAD Inc. All Rights Reserved. システム面の詳細は過去のブログ記事を参照 ブログ記事:アンチウイルスソフト

    Antivirus for Amazon S3 を本番環境に導入してみてわかったメリット・デメリット https://tech.andpad.co.jp/entry/2024/04/04/100000 34
  22. Copyright © 2024 ANDPAD Inc. All Rights Reserved. コスト急増の予兆検知 •

    プロダクトの機能追加や、ユーザーの使い方の変化により、ウイルススキャン システムのコストが急増するリスクがある • 開発チームはコスト急増の予兆をなるべく早くつかみ、対策する必要がある 35
  23. Copyright © 2024 ANDPAD Inc. All Rights Reserved. コスト急増の予兆検知のためのアラート •

    各バケットの1日あたりの合計スキャンサイズ ◦ Antivirus for Amazon S3のConsole APIから取得できるメトリクスを、自作の Lambda関数で取得し、CloudWatchのカスタムメトリクスに出力。Datadogのダッ シュボードおよびモニターを設定 ◦ プロダクトの成長に伴う増加予想に基づくしきい値を設定 • AWSリソースのコスト ◦ Antivirus for Amazon S3に関するAWSリソースにコスト管理タグを付与し、AWS Budgetアラームを設定 ◦ プロダクトの成長に伴う増加予想に基づくしきい値を設定 • スキャンを実行するECSタスク数 ◦ ECSタスク数の上限に余裕をもたせたうえで、Datadogモニターを設定 ◦ 上限の70%および100%に対するしきい値を設定 36
  24. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 開発チームのためのドキュメント整備 •

    スキャン対象のS3バケットおよびパス一覧の自動生成 • スキャン対象の定期的な棚卸しのためのシートの自動生成 37
  25. Copyright © 2024 ANDPAD Inc. All Rights Reserved. S3バケット・パス一覧の自動生成 •

    S3の管理画面とAntivirus for Amazon S3の管理画面は全く別のため、開発者に とってはどのS3バケット・パスがスキャン設定済みなのかわかりづらい • 対策として、自動生成したMarkdownをGitHub上で確認できるようにした 38 Antivirus for Amazon S3 API (Console) S3 API 自作 スクリプト S3バケット・パス の取得 スキャン設定 の取得 S3バケット 毎の スキャン設定 主なパス毎の スキャン設定 出力 SREチーム 開発チーム 設定の 確認
  26. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 棚卸し用シートの自動生成 •

    スキャンの過不足をなくすため、定期的に、SREチームから開発チームにスキャ ン設定の棚卸しを依頼する。チーム毎のシートを自動生成し、利便性を高めた 39 S3バケット 毎の スキャン設定 主なパス毎の スキャン設定 チームと S3バケットの 対応表 自作 スクリプト SREチーム 編集 シートの生成に 必要な情報の取得 開発チーム チーム毎の 棚卸し用 シート 出力 棚卸し結果 の記入
  27. Copyright © 2024 ANDPAD Inc. All Rights Reserved. Antivirus for

    Amazon S3導入後の効果 • ウイルススキャンシステムをアップデートしやすい状態になった ◦ CloudFormationでアップデートできる • ライセンス費を含めても、ウイルススキャンシステムのコストを削減できた • リプレース前よりも、開発チームがウイルススキャンシステムの設定を 把握しやすい状態になった • アプリケーションを改善することで、ウイルススキャンを効率化できる部分が 見つかった。今後、開発チームと連携して改善する 40
  28. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 余談:GuardDutyの新機能 •

    2024/06/11に、GuardDuty Malware Protection for Amazon S3 がリリース された ◦ Antivirus for Amazon S3と同様に、S3バケットへのファイル追加をEventBridge経 由で検出してウイルススキャンを実行し、その結果をタグとして付与したり、SNS経 由で外部に通知できる ◦ スキャンしたファイルの合計サイズと、スキャンしたファイルの総数に応じた従量課 金 ◦ マネージドサービスであり、ウイルススキャンの実行基盤(ECSなど)を自分で構築 する必要がないため、試しやすい • 今回紹介した改善は、このGuardDutyの新機能を使う場合にも適用できる 41
  29. Copyright © 2024 ANDPAD Inc. All Rights Reserved. まとめ •

    インフラセキュリティの継続的な改善を、SREチームだけのタスクにせず、 開発チームとともに進めている事例2件を紹介した • いずれも、従来よりも開発チームが参加しやすい状態を作ることはできたが、 開発チームが自走できる状態には達しておらず、改善の余地がある • これらの事例を通して、セキュリティに関する他社SREの事例をもっと学びたい という気持ちが強くなった 43
  30. Copyright © 2024 ANDPAD Inc. All Rights Reserved. SRE NEXT

    2024のブースとスポンサーLTの紹介 • アンドパッドは、8/3(土)〜4(日)に渋谷のAbema Towersで開催される SRE NEXT 2024のゴールドスポンサーです • ブース展示します! アンケート回答者にはノベルティあり • 「アンドパッドのマルチプロダクト 戦略を支えるSRE」というタイトルで スポンサーLTを行います! (発表日は未定) 44
  31. Copyright © 2024 ANDPAD Inc. All Rights Reserved. We are

    hiring! 45 https://engineer.andpad.co.jp/ 技術スタックや募集ポジションを 掲載してます!