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

進化する事業とデータ構造 ~Cloudbaseの場合~

tockn
March 13, 2024

進化する事業とデータ構造 ~Cloudbaseの場合~

tockn

March 13, 2024
Tweet

More Decks by tockn

Other Decks in Technology

Transcript

  1. © Cloudbase Inc. All rights reserved 3 00 / はじめに


    目次
 1. 自己紹介&事業紹介
 2. 事業の進化とデータ構造の変化
 3. どのようにマイグレーションしたか
 4. どう設計しておけばよかった?
 5. まとめ

  2. 自己&事業紹介 
 自己紹介
 5 © Cloudbase Inc. All rights reserved

    佐藤 琢斗(tockn)
 ・20新卒で株式会社ディー・エヌ・エー
  ・ライブ配信サービスの開発、立ち上げに携わる
 ・22年8月にCloudbase株式会社へJOIN
  ・初期のスキャナ、アプリケーションを開発
  ・現在はアプリケーションチームのエンジニア
 tockn_s
 tockn

  3. 事業の進化とデータ構造の変化 
 コンテナスキャンのデータ構造v1
 ・クラウド上のコンテナイメージをスキャンし、脆弱性を検出
 ・スキャン結果のデータ構造
  ・スキャン対象のコンテナリポジトリ&イメージと、それに紐づく脆弱性を表したテーブル設計
 14 © Cloudbase Inc.

    All rights reserved コンテナイメージテーブル 
 
 イメージ1, リポジトリ1
 イメージ2, リポジトリ1
 ︙
 コンテナイメージの検出脆弱性テーブル 
 
 イメージ1, CVE-2021-44228
 イメージ1, CVE-2022-22965
 イメージ2, CVE-2021-44228
 ︙
 ⚠ かなり抽象的なイメージです 
 コンテナリポジトリテーブル 
 
 リポジトリ1, name-1,
 リポジトリ2, name-2
 ︙

  4. 事業の進化とデータ構造の変化 
 VMスキャンのデータ構造v1
 ・Amazon EC2などのVMに潜む脆弱性を検出
 ・スキャン結果のデータ構造
  ・スキャン対象のVMと、それに紐づく脆弱性を表したテーブル設計
 17 © Cloudbase

    Inc. All rights reserved VMテーブル
 
 VM1, hoge-server
 VM2, fuga-server
 ︙
 VMの検出脆弱性テーブル 
 
 VM1, CVE-2021-44228
 VM1, CVE-2022-22965
 VM2, CVE-2021-44228
 ︙
 ⚠ かなり抽象的なイメージです 

  5. 事業の進化とデータ構造の変化 
 Functionスキャンのデータ構造????
 ・AWS LambdaなどのFunctionに潜む脆弱性スキャン
 ・スキャン結果のデータ構造????
  ・スキャン対象のFunctionと、それに紐づく脆弱性を表したテーブル設計…????
 21 © Cloudbase

    Inc. All rights reserved Functionテーブル???
 
 Function1, hoge-function
 Function2, fuga-function
 ︙
 Functionの検出脆弱性テーブル??? 
 
 Function1, CVE-2021-44228
 Function1, CVE-2022-22965
 Function2, CVE-2021-44228
 ︙
 ⚠ かなり抽象的なイメージです ??

  6. 事業の進化とデータ構造の変化 
 Functionスキャン…?ちょっと待った!
 ・スキャンの種類毎にデータが独立
 ・冗長!横断検索もできない!
 23 © Cloudbase Inc. All

    rights reserved コンテナイメージテーブル 
 
 イメージ1, リポジトリ1,
 イメージ2, リポジトリ2
 ︙
 コンテナイメージの検出脆弱性テーブル
 
 イメージ1, CVE-2021-44228
 イメージ1, CVE-2022-22965
 イメージ2, CVE-2021-44228
 ︙
 VMテーブル
 
 VM1, hoge-server,
 VM2, fuga-server
 ︙
 VMの検出脆弱性テーブル 
 
 VM1, CVE-2021-44228
 VM1, CVE-2022-22965
 VM2, CVE-2021-44228
 ︙
 Functionテーブル
 
 Function1, hoge-function,
 Function2, fuga-function
 ︙
 Functionの検出脆弱性テーブル 
 
 Function1, CVE-2021-44228
 Function1, CVE-2022-22965
 Function2, CVE-2021-44228
 ︙
 ⚠ かなり抽象的なイメージです 

  7. 事業の進化とデータ構造の変化 
 Functionスキャン…?ちょっと待った!
 ・スキャンの種類毎にデータが独立
 ・冗長!横断検索もできない!
 
 データ構造を変えよう!
 24 © Cloudbase

    Inc. All rights reserved コンテナイメージテーブル 
 
 イメージ1, リポジトリ1,
 イメージ2, リポジトリ2
 ︙
 コンテナイメージの検出脆弱性テーブル
 
 イメージ1, CVE-2021-44228
 イメージ1, CVE-2022-22965
 イメージ2, CVE-2021-44228
 ︙
 VMテーブル
 
 VM1, hoge-server,
 VM2, fuga-server
 ︙
 VMの検出脆弱性テーブル 
 
 VM1, CVE-2021-44228
 VM1, CVE-2022-22965
 VM2, CVE-2021-44228
 ︙
 Functionテーブル
 
 Function1, hoge-function,
 Function2, fuga-function
 ︙
 Functionの検出脆弱性テーブル 
 
 Function1, CVE-2021-44228
 Function1, CVE-2022-22965
 Function2, CVE-2021-44228
 ︙
 ⚠ かなり抽象的なイメージです 

  8. 事業の進化とデータ構造の変化 
 データ構造を変更
 ・脆弱性スキャン対象のリソースを表す抽象的なテーブル
  ・脆弱性検出結果はその抽象リソーステーブルに紐づける
  ・要はCTI (Class Table Inheritance)
 ・扱いやすく、横断検索も可能に


    25 © Cloudbase Inc. All rights reserved ⚠ かなり抽象的なイメージです 
 脆弱性スキャン対象リソーステーブル 
 id , type
 リソース1, コンテナ
 リソース2, コンテナ
 リソース3, VM
 リソース4, VM
 リソース5, Function
 リソース6, Function
 ︙
 検出脆弱性テーブル 
 
 id-1, CVE-2021-44228
 id-2, CVE-2022-22965
 id-3, CVE-2021-44228
 ︙
 コンテナイメージテーブル 
 
 リソース1, リポジトリ1,
 リソース2, リポジトリ2
 ︙
 VMテーブル
 
 リソース3, hoge-server,
 リソース4, fuga-server
 ︙
 Functionテーブル
 
 リソース5, hoge-function,
 リソース6, fuga-function
 ︙

  9. どのようにマイグレーションしたか? 
 整合性を確かめたい
 データのパターンが膨大
 ・クラウドプロバイダ
 ・対象サービス
 ・検出項目
 ・脆弱性
 31 ©

    Cloudbase Inc. All rights reserved AWS
 Google Cloud
 Azure
 CVE-2021-44228
 CVE-2022-22965
 GCE
 ECS
 ECR
 GCR
 EC2
 Key Vault
 Windows
 Ubuntu
 Amazon Linux
 RHEL
 S3
 IAM
 検出対象・環境は多岐に渡る
 CVE-2023-44487
 SSHポート解放
 ストレージ公開

  10. どのようにマイグレーションしたか? 
 整合性を確かめたい
 データのパターンが膨大
 ・クラウドプロバイダ
 ・対象サービス
 ・検出項目
 ・脆弱性
 32 ©

    Cloudbase Inc. All rights reserved AWS
 Google Cloud
 Azure
 CVE-2021-44228
 CVE-2022-22965
 GCE
 ECS
 ECR
 GCR
 EC2
 Key Vault
 Windows
 Ubuntu
 Amazon Linux
 RHEL
 S3
 IAM
 検出対象・環境は多岐に渡る
 CVE-2023-44487
 → 事前に検証データを用意するのは難しい
 SSHポート解放
 ストレージ公開