Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

dev 補講: プロダクトセキュリティ / Product security overview

wa6sn
November 11, 2024

dev 補講: プロダクトセキュリティ / Product security overview

社内向け資料を公開用に編集したものです。
背景情報は https://tech.giftee.co.jp/entry/2024/11/12/101202 をご覧ください。

wa6sn

November 11, 2024
Tweet

More Decks by wa6sn

Other Decks in Technology

Transcript

  1. セキュリティとは ISO 27001 という国際規格では、以下を「情報セキュリティの 3 要素」としています。 機密性 (Confidentiality): 権限をもつ人だけが情報にアクセスできること 完全性

    (Integrity): 情報が正確かつ一貫性をもって保持されていること 可用性 (Availability): 情報が必要なときに利用できること それぞれの頭文字から "CIA" と呼ばれています。これらを守ること全般を「 (情報)セ キュリティ」と呼びます。 さらに 真正性、責任追及性、否認防止、信頼性 を追加したものを重要視することもあ ります。 11
  2. Exercise 1: CIA が維持できていない、とは 機密性、完全性、可用性 が維持されていない例をそれぞれ考えてみましょう あなたは EC サイトを運営しています ユーザは

    EC サイトにログインして、商品を購入することができます ユーザは商品を購入するとき、EC サイトに住所・電話番号を登録しています EC サイトは、ユーザの住所・電話番号を使って、 EC サイトの契約する貸倉庫サービスから商品を配送します 12
  3. 補足: 認証制度 きちんとしたセキュリティ体制を整えていることを証明するもの。 これを取得・維持することで業務や契約が円滑になることも多い。 https://giftee.co.jp/security/ にも記載しています。 ISO 27001 (通称 ISMS)

    自社内の情報資産やリスクの管理が適切になされ、 仕組みが運用されていることを証明するもの。国際規格。 プライバシーマーク (通称 P マーク) 個人情報の適切な取り扱いを行っていることを証明するもの。日本独自の規格。 16
  4. 補足: コーポレートセキュリティの取り組みの例 弊社が取得している認証である ISO 27001・プライバシーマーク、 METI・IPA が提供している サイバーセキュリティ経営ガイドライン、お取引先からの セキュリティチェックなどを参考に、対応すべき事柄を決めています。 具体例

    PC やモバイル端末などの台帳化(管理すべき資産の識別) 様々な SaaS ツールのアカウント管理(最小権限の付与) VPN 環境の整備(リモートアクセス管理) 委託先の台帳化・月次確認(委託先管理) インシデント対応整備(規定整備や訓練など) セキュリティ教育(意識啓発) 18
  5. リスクとは 情報セキュリティにおけるリスク = 資産価値 × 脅威 × 脆弱性 リスク 損害や影響を発生させる可能性

    資産価値 情報資産の価値 脅威 システムや組織に危害を与えるセキュリティ事故の潜在的な原因 悪意のある人間(人為/意図的) 、ケアレスミス(人為/偶発的) 、災害(環境的) 脆弱性 脅威によって利用されるおそれのある弱点 プログラムのバグ、バックアップがない DB、予備電源のないデータセンタ 19
  6. dev として何をすればいいのか? 2/2 "ギークスーツ" で考える アプリケーションの外である、サービス運用 に脆弱性が潜んでいることも 「取引先社員になりすまし、弊社から機微情報を聞きとろうとする」等も、 あり得ない話ではない サービスによって脅威も対策も様々。biz/dev

    お互いの目線で考えることが大事 さらに、攻撃者の目線でも考えてみましょう STRIDE のような、脅威を洗い出し、分類するためのフレームワークがあります 参考: https://www.newton-consulting.co.jp/itilnavi/glossary/stride_model.html 27
  7. まずは知ることから OWASP TOP 10 https://owasp.org/Top10/ja/ IPA 安全なウェブサイトの作り方 https://www.ipa.go.jp/security/vuln/websecurity/about.html IPA 情報セキュリティ10大脅威

    2023 https://www.ipa.go.jp/security/10threats/10threats2023.html AWS Well-Architected Framework Security Pillar https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pillar/welcome.html 『安全なWebアプリケーションの作り方』 (通称・徳丸本) https://wasbook.org/ 28
  8. ギフティにおける、プロダクトセキュリティ施策の例 1. 脆弱性診断 リリース前 or 定期で行われる、第三者による診断 2. 社内ガイドライン 社内における、アプリケーション開発のガイドライン 3.

    インフラにおけるセキュリティガードレールの構築 すべての AWS アカウントに対して行われるセキュリティ対策 構築は Platform Unit ですが、運用は各事業部です 4. セキュアコーディング研修 希望者は KENRO という、 セキュアコーディングの学習サービスを受講できるようにしています 29
  9. (1/5) IAM Identity Center(SSO) IAM は大きな攻撃表面の一つであるため、IAM user ではなく IAM Identity

    Center によって各アカウントにログインすることを推奨しています 退職者の IAM user が AWS アカウントに残り続けることを防ぎます 長命なアクセスキーを管理する負担が軽減されます これ自体は、GitHub リポジトリ上で IaC による管理を行っています ref: <社内ドキュメントのため省略> 35
  10. (2/5) Security Hub, Trusted Advisor 例: Security Hub による、Public Read

    アクセスが有効な S3 バケットの一覧化 37
  11. (3/5) GuardDuty (社内のすべての AWS アカウントで有効化されています) EC2 への SSH Bruteforce, S3

    バケットの Public access block policy の削除など、 AWS に構築されたリソースに対する脅威を検出するサービス いわゆる IDS(Intrusion Detection System)の一種です 38
  12. (3/5) CloudTrail, AWS Config (社内のすべての AWS アカウントで有効化されています) CloudTrail AWS アカウントで行われる

    API 操作をログに記録するサービス AWS アカウントでは、ほぼすべての操作は API 経由で行われる インフラ操作の 証跡 になります AWS Config AWS アカウント内のリソースの設定を評価するサービス 特定時点のリソースの状況を記録しつつ、問題がないかチェックするようなイメージ Security Hub のデータソースでもあります 40
  13. 脅威モデリング? システムを分析して起こりうる脆弱性を見つける、プロアクティブな活動 メルカリさんの事例 , 社内プロダクトの事例 実施の流れ i. モデル図(DFD など)の作成 ii.

    起こりうる課題のブレスト 脅威の幅出しとして STRIDE フレームワークを用いたりする iii. リスク分析 DREAD フレームワーク によるスコア・順位付け iv. 課題への対応 「低減」,「回避」,「保有」,「移転」の検討 47
  14. STRIDE フレームワーク? 脅威を洗い出す方法論 S poofing(なりすまし): 攻撃者は、他のユーザーになりすましできるか? T ampering(改ざん): 攻撃者は、不正にデータの変更ができるか? R

    epudiation(否認): 攻撃者は、自身の行った行動を否認できるか? I nformation disclosure(情報漏えい): 機密情報などにアクセスできるか? D enial of service(サービス利用不可): アプリケーションを停止させられるか? E scalation of privilege(特権の昇格): 管理者権限などを入手できるか? 48
  15. 補足: "Code" プロセスに関連するタスクの例 SAST(Static Application Security Testing, 静的解析) 脆弱性を含んだコードを書いていないかをテストする アプリケーション

    gosec, Brakeman Rails 8 では、Brakeman は 標準で導入される らしい インフラ tfsec, checkov "sast gosec brakeman ... " といったワードで検索すると、この手のまとめが出てきます 49
  16. 補足: "Test" プロセスに関連するタスクの例 DAST(Dynamic Application Security Testing) 実際に動作するアプリケーションに攻撃リクエストを送信する手法 Burp Suite

    や OWASP ZAP を用いたテスト SAST に比べると、継続的に実施するコストは重い (第三者機関による)脆弱性診断 今回の講義で説明したとおりです 50
  17. 補足: "Monitor" プロセスに関連するタスクの例 セキュリティ監視 Security Hub, GuardDuty の棚卸しを行う 実態に即した WAF

    Rule のメンテナンス インシデントレスポンス パッチマネジメント Inspector のようなサービスで、現存するパッケージの把握をする dependabot, renovate で積極的にアップデートしていく 51
  18. セキュリティの要求は体系化されている ISMS を例に挙げたように、セキュリティの要求は、 国や取り扱うデータ等によって規則・基準が存在する 個人情報保護法, GDPR, HIPAA, PCI DSS, ...

    セキュリティチェックシートの項目だって、各々の会社が完全に独自に 定義しているわけではなく、 「考えのよりどころ」があると考えてよいはず 「規格がある」ということを知っている と、何かと有用 各種チェックツールの指摘項目の背景を理解出来る、など 53