Slide 1

Slide 1 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 開発チームとともに進める インフラセキュリティの継続的な改善 株式会社アンドパッド 開発本部 SRE 吉澤 政洋 2024/07/02 SRE Lounge #17

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

アンドパッドの紹介

Slide 5

Slide 5 text

現場の効率化から経営改善まで一元管理できる 建設DX プロジェクト管理サービス

Slide 6

Slide 6 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 建設業界の市場規模と課題 6 市場規模 建設業界 日本全体 市場規模 50兆円 (日本で2番目) 500兆円 事業者数 50万業者 (3年連続増加) 386万業者 従業者数 500万人 6800万人 課題 社会の課題 ● 人材不足 ● 低生産性 現場の課題 ● 長時間残業 ● 低粗利率

Slide 7

Slide 7 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. ANDPADとは 7

Slide 8

Slide 8 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 建設業界特化型のVertical SaaS 8

Slide 9

Slide 9 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 次々と新プロダクトをリリース 9

Slide 10

Slide 10 text

アンドパッドの開発体制と SREチーム

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

インフラセキュリティの 継続的な改善に関する取り組み

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

事例1. 継続的なセキュリティ診断の導入

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWS Security Hub導入後 20

Slide 21

Slide 21 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. Slackに通知される検出結果の例 21

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 開発チームのためのドキュメント整備 ● Security Hubの検出結果の確認・対応方法の手順書 ● 現在の設定を確認できるコントロール一覧 ● 通知の多いリソース(S3バケットなど)に関する推奨設定 25

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

事例2. ウイルススキャンシステムのリプレース および運用改善

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. Antivirus for Amazon S3 ● AWS Marketplace上で購入し、自分の所有するAWSアカウント内にインストー ルして利用するソフトウェア ● Antivirus for Amazon S3の動作に必要なAWSサービス(ECSなど)の利用費に 加えて、スキャンしたファイルの合計サイズに応じたライセンス費が必要 32

Slide 33

Slide 33 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. リプレース後のウイルススキャンシステム 33

Slide 34

Slide 34 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. システム面の詳細は過去のブログ記事を参照 ブログ記事:アンチウイルスソフト Antivirus for Amazon S3 を本番環境に導入してみてわかったメリット・デメリット https://tech.andpad.co.jp/entry/2024/04/04/100000 34

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 開発チームのためのドキュメント整備 ● スキャン対象のS3バケットおよびパス一覧の自動生成 ● スキャン対象の定期的な棚卸しのためのシートの自動生成 37

Slide 38

Slide 38 text

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チーム 開発チーム 設定の 確認

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

まとめ

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. We are hiring! 45 https://engineer.andpad.co.jp/ 技術スタックや募集ポジションを 掲載してます!