Slide 1

Slide 1 text

〜AWS初心者向け〜 
 
 ベストプラクティスから学ぶ「AWSセキュリティの高め方」
 クラスメソッド株式会社 カスタマーソリューション部 吉川 晃平
 
 2024/05/28
 
 1

Slide 2

Slide 2 text

2 自己紹介 https://dev.classmethod.jp/author/yoshikawa-kohei/ ● 吉川 晃平 ● クラスメソッド株式会社 ● AWS事業本部カスタマーソリューション部 ○ ソリューションアーキテクト ○ 「セキュアアカウント」サービス運用担当 ● この一年で特に関わったAWSサービス ○ AWS Security Hub

Slide 3

Slide 3 text

3 自己紹介 ● 最近嬉しかったこと ○ 琵琶湖一周(200km)達成 ● 最近の興味 ○ ダイエット ■ 出社して歩数稼ぐ ■ お米縛り生活(5月限定) ○ 麻雀 https://dev.classmethod.jp/author/yoshikawa-kohei/

Slide 4

Slide 4 text

4 先制パンチ まずは脅威例を紹介

Slide 5

Slide 5 text

5 脅威例 ● 攻撃の準備 ○ AWSアカウント認証情報の不正利用 ■ アクセスキーやパスワードの流出からの不正ログインやアクセス ● 攻撃目的 ○ コインマイニング ○ DDoS攻撃利用 ○ S3やRDS等からの機密情報の漏洩

Slide 6

Slide 6 text

6 脅威例 ● 攻撃の準備 ○ AWSアカウント認証情報の不正利用 ■ アクセスキーやパスワードの流出からの不正ログインやアクセス ● 攻撃目的 ○ コインマイニング ○ DDoS攻撃利用 ○ 機密情報の漏洩(S3やRDS等) ➢ AWSアカウント内に重要なシステムがなくても脅威になり得るのが特徴 =つまり全てのアカウントにてセキュリティ対策が必要

Slide 7

Slide 7 text

7 脅威例① 不正ログインからの コインマイニング

Slide 8

Slide 8 text

8 不正ログインからのコインマイニング

Slide 9

Slide 9 text

9 不正ログインからのコインマイニング

Slide 10

Slide 10 text

10 不正ログインからのコインマイニング

Slide 11

Slide 11 text

11 想定被害額 ● 想定被害額 ○ 1時間で数百ドル(500$)と仮定した場合 ○ 単純計算で、1日だと$12000、一ヶ月で$360000 ○ ドル円レート150円で計算すると、一ヶ月の被害額は約5400万円

Slide 12

Slide 12 text

12 脅威例② 意図しないS3バケットへのアクセス

Slide 13

Slide 13 text

13 意図しないS3バケットへのアクセス

Slide 14

Slide 14 text

14 意図しないS3バケットへのアクセス

Slide 15

Slide 15 text

15 攻撃者の動きの一例

Slide 16

Slide 16 text

16 脅しを踏まえての問いかけ AWSアカウント開設後何をする?

Slide 17

Slide 17 text

17 その前に AWS Security Hubというサービスについて

Slide 18

Slide 18 text

18 Security Hubとは ● Security Hubとは ○ CSPM(Cloud Security Posture Management)に相当するサービス ○ 「AWSリソースのセキュリティ設定がベストプラクティスから逸脱 していないか」を自動でチェック ■ S3バケットが公開設定になっていないか ■ アクセスログを有効化しているか ■ セキュリティグループにて不要にポート開けていないか ■ GuardDutyが有効化されているか ■ etc

Slide 19

Slide 19 text

19 Security Hubとは ● 自動チェックは各ルール(コントロール)に沿って実施 ● GuardDuty.1は、GuardDutyの有効化を監視するコントロール

Slide 20

Slide 20 text

20 Security Hubとは ● コントロール例 ○ [GuardDuty.1] GuardDuty を有効にする必要があります ○ [Config.1] AWS Config を有効にする必要があります ○ [CloudTrail.1] CloudTrail を有効にして、少なくとも 1 つのマルチ リージョンの追跡で、読み取りと書き込みの管理イベントを含めた設 定をする必要があります ○ [EC2.7] EBS のデフォルト暗号化を有効にする必要があります ○ [IAM.4] IAM ルートユーザーアクセスキーが存在してはいけません ○ etc

Slide 21

Slide 21 text

21 Security Hubとは ● AWSアカウント内のセキュリティレベルをスコアで表示

Slide 22

Slide 22 text

22 Security Hubとは

Slide 23

Slide 23 text

23 なんでだろう なぜ急にSecurity Hubの紹介を?

Slide 24

Slide 24 text

24 脅しを踏まえての問いかけ AWSアカウント開設後何をする?

Slide 25

Slide 25 text

25 順番に説明します Security Hubの紹介がどう 「AWSアカウント開設後何をする?」 に繋がるのか説明

Slide 26

Slide 26 text

26 Security Hubの表の使い方 ● Security Hubとは(復習) ○ 「AWSリソースのセキュリティ設定がベストプラクティスから逸脱 していないか」を自動でチェックするサービス ○ セキュリティレベルをスコアで表示

Slide 27

Slide 27 text

27 Security Hubの表の使い方 ● Security Hubとは(復習) ○ 「AWSリソースのセキュリティ設定がベストプラクティスから逸脱 していないか」を自動でチェックするサービス ○ セキュリティレベルをスコアで表示 ➢ Security Hubの王道的な表の使い方

Slide 28

Slide 28 text

28 Security Hubの裏の使い方 ● 裏の使い方ではSecurity Hubのドキュメントに注目 ○ ドキュメントには各コントロールの情報が記載

Slide 29

Slide 29 text

29 Security Hubの裏の使い方 ● ドキュメントに記載されているコントロールを参考にAWSアカウントを 設計する ● Security Hubに乗っかった設計をすることで、最初からセキュリティレ ベルの高いAWSアカウントを作り上げることが可能

Slide 30

Slide 30 text

30 Security Hubの裏の使い方 ● ドキュメントに記載されているコントロールを参考にAWSアカウントを 設計する ● Security Hubに乗っかった設計をすることで、最初からセキュリティレ ベルの高いAWSアカウントを作り上げることが可能 ➢ ドキュメント活用に重きを置いた裏の使い方

Slide 31

Slide 31 text

31 結論 Security Hubのコントロールを参考に AWSアカウント開設後すべきことを決める

Slide 32

Slide 32 text

32 ブログ紹介

Slide 33

Slide 33 text

33 最後に少しだけ補足 Security Hubをベースにした設計は参考の立て付けで利用すること ● 各コントロールはそこそこの頻度で追加・廃止される ● 全てのコントロールが対応必須という訳ではない ○ 環境によって対応を変更することがある ○ 代替手段があるため対応が必要ない場合もある ○ etc

Slide 34

Slide 34 text

34 AWSサービスの紹介 AWSサービスの紹介

Slide 35

Slide 35 text

35 AWSで利用すべきサービス ● 必ず利用したい ○ Security Hub ○ GuardDuty(GuardDuty.1) ○ CloudTrail(CloudTrail.1) ○ Config(Config.1) ※()には対応するSecurity Hubコントロールを記載

Slide 36

Slide 36 text

36 GuardDutyとは GuardDutyとは

Slide 37

Slide 37 text

37 GuardDutyとは ● GuardDutyとは ○ アカウント内の各情報(ログ等)を分析し、危険な挙動を検知するサー ビス ● Security Hubとは対になるようなサービス(個人的見解) ○ Security Hub:予防的統制 ■ 危険な設定を監視し、脅威の発生を未然に防ぐ ○ GuardDuty:発見的統制 ■ 発生した脅威をすぐに検知し、被害拡大を防ぐ ○ 参考 ■ https://aws.amazon.com/jp/builders-flash/202302/continu ous-security/

Slide 38

Slide 38 text

38 GuardDutyとは

Slide 39

Slide 39 text

39 GuardDutyとは

Slide 40

Slide 40 text

40 GuardDutyとは

Slide 41

Slide 41 text

41 GuardDutyとは

Slide 42

Slide 42 text

42 先ほどの脅威例の場合 ● VPCフローログを分析しコインマイニング挙動を検知 ● 検出ルール「CryptoCurrency:EC2/BitcoinTool.B」等が検知

Slide 43

Slide 43 text

43 GuardDutyおまけ ● GuardDutyの検知ルールはドキュメントに網羅 ○ https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/gua rdduty_finding-types-active.html ● テスト検知を出す方法もあるので是非やっていただきたい ○ 実際に検知してみることでGuardDutyの理解が進む

Slide 44

Slide 44 text

44 GuardDutyおまけ

Slide 45

Slide 45 text

45 CloudTrailとは CloudTrailとは

Slide 46

Slide 46 text

46 CloudTrailとは ● CloudTrailとは ○ アカウント内の操作(API実行)を記録するサービス ■ EC2インスタンスの起動 ■ アクセスキーを作成 ■ その他AWSサービスに関する操作のほとんど

Slide 47

Slide 47 text

47 CloudTrailとは ● CloudTrailとは ○ アカウント内の操作(API実行)を記録するサービス ■ EC2インスタンスの起動 ■ アクセスキーを作成 ■ その他AWSサービスに関する操作のほとんど AWS内の操作の多くはAPIを通して実行される

Slide 48

Slide 48 text

48 少し質問 CloudTrailはAWSアカウントの 〇〇〇実行を記録する

Slide 49

Slide 49 text

49 答え CloudTrailはAWSアカウントの API実行を記録する

Slide 50

Slide 50 text

50 APIに思いを馳せよう AWSにおけるAPIって?

Slide 51

Slide 51 text

51 AWSにおけるAPIって? AWSにおけるAPIの理解は絶対してほしい

Slide 52

Slide 52 text

52 AWSにおけるAPIって? 普段ユーザーが意識するのは赤枠の部分

Slide 53

Slide 53 text

53 AWSにおけるAPIって?

Slide 54

Slide 54 text

54 AWSにおけるAPIって? ユーザーの操作はマネコンでもCLIの場合でも同じAPIにて実行される

Slide 55

Slide 55 text

55 AWSにおけるAPIって?

Slide 56

Slide 56 text

56 AWSにおけるAPIって? EC2インスタンスを起動をした場合、マネコンやCLI、SDKでも操作手段を 問わず、API「RunInstance」が実行される

Slide 57

Slide 57 text

57 AWSにおけるAPIって? API実行を記録することで、AWSアカウント内でどのような操作を行ったの か確認できる

Slide 58

Slide 58 text

58 復習 CloudTrailはAWSアカウントの API実行を記録する

Slide 59

Slide 59 text

59 CloudTrailのまとめ ● CloudTrailはどういう時に役立つのか ○ 脅威が発生した際に攻撃者がどのような操作を行なったかの調査 ○ 意図しないリソースの作成や削除の調査 ○ etc

Slide 60

Slide 60 text

60 Configとは Configとは

Slide 61

Slide 61 text

61 Configとは 各種AWSリソースの情報を取得するサービス

Slide 62

Slide 62 text

62 Configとは Configが取得した情報をタイムラインにて確認することが可能

Slide 63

Slide 63 text

63 Config使用状況の例 ● どういう時に役に立つのか ○ セキュリティ監査 ○ トラブルシューティング ○ 変更管理 ○ コスト管理 ○ リソース最適化 ○ etc ● 特定時点におけるAWSのパラメータを確認したい場合に使用する ■ その際どのようなAPIが実行されたのかもCloudTrailで確認するこ とが多い

Slide 64

Slide 64 text

64 参考ブログ

Slide 65

Slide 65 text

65 その他サービス その他サービス

Slide 66

Slide 66 text

66 IAM Access Analyzer ● IAM Access Analyzerとは ○ IAMを始めS3やLambdaなど外部のリソースからアクセスできる設定 になっているものを検知してくれるサービス ○ リージョナルサービス ○ 無料

Slide 67

Slide 67 text

67 Detective ● Detectiveとは ○ セキュリティインシデントが発生した際に調査をするためのサービス ○ ログを集約して相関分析と可視化を提供 ○ 料金要素はGuardDutyと似ているが、GuardDutyより料金は高め

Slide 68

Slide 68 text

68 通知機能の実装 ● 目的 ○ Security HubやGuardDuty、IAM Access Analyzerの検知を素早く 気づけるようにするため ● 説明 ○ 目的で挙げたセキュリティサービスは検知を上げてもAWSでしか確 認できず、ユーザーがリアルタイムに気づくためにはメール等で通知 する仕組みが別途必要 ● 関連サービス ○ EventBridge ○ Step Functions ○ SNS

Slide 69

Slide 69 text

69 通知機能の実装

Slide 70

Slide 70 text

70 AWSで設定すべき項目の紹介 AWSで設定すべき項目の紹介

Slide 71

Slide 71 text

71 AWSで設定すべき項目 ● IAM Userのパスワードポリシー強化(IAM.7) ● デフォルトVPCの削除(EC2.2) ● EBSのデフォルト暗号化(EC2.3,EC2.7) ● S3バケットのパブリックアクセスのブロック(S3.1等) ● AMIやEBSのパブリックアクセスのブロック ※()には対応するSecurity Hubコントロールを記載

Slide 72

Slide 72 text

72 IAM Userのパスワードポリシー強化 IAM Userのパスワードポリシー強化

Slide 73

Slide 73 text

73 IAM Userのパスワードポリシー強化 AWSアカウントへのログイン時に必要なパスワードポリシーを強化する

Slide 74

Slide 74 text

74 IAM Userのパスワードポリシー強化

Slide 75

Slide 75 text

75 デフォルトVPCの削除 デフォルトVPCの削除

Slide 76

Slide 76 text

76 デフォルトVPCの削除 ● デフォルトVPCとは ○ AWSアカウントは、発行時点で各リージョンに1つずつデフォルト VPCが存在している ○ デフォルトVPCを使用するメリットは薄く、むしろ意図しない設定に より、リソースを公開してしまう可能性がある非推奨 ○ 1からシステム用のVPCを設計して構築するのがベストプラクティス

Slide 77

Slide 77 text

77 EBSのデフォルト暗号化 EBSのデフォルト暗号化

Slide 78

Slide 78 text

EC2 > EC2ダッシュボード > アカウントの属性から設定 78 EBSのデフォルト暗号化

Slide 79

Slide 79 text

79 EBSのデフォルト暗号化 ● 目的 ○ AWSのデータセンターからストレージが万が一盗まれたり、データ センターに侵入して直接サーバにログインされた場合に、不正利用さ れないため ● 対応後 ○ EC2インスタンスの作成等でEBSボリュームが作成される時、デフォ ルトで暗号化が実施 ● 参考 ○ https://qiita.com/shun0157/items/84e16035f9199ee36480

Slide 80

Slide 80 text

80 S3のパブリックアクセスのブロック化 S3のパブリックアクセスのブロック化

Slide 81

Slide 81 text

S3 > このアカウントのブロックパブリックアクセス設定から設定 81 S3のパブリックアクセスのブロック化

Slide 82

Slide 82 text

82 S3のパブリックアクセスのブロック化 ● 目的 ○ 意図しない設定により、S3バケットの公開を防ぐ ● 対応後 ○ アカウントレベルにて誤ったパブリック公開を防げる

Slide 83

Slide 83 text

83 AMIやEBSのパブリックアクセスのブロック AMIやEBSのパブリックアクセスのブロック

Slide 84

Slide 84 text

EC2 > EC2ダッシュボード > アカウントの属性から設定 84 AMIやEBSのパブリックアクセスのブロック

Slide 85

Slide 85 text

85 AMIやEBSのパブリックアクセスのブロック ● 目的 ○ 意図しないAMIやEBSのパブリックアクセスを防止し、情報漏洩を防 ぐ ● 対応後 ○ 誤ったイメージ公開を防止できる ● 参考ブログ ○ https://dev.classmethod.jp/articles/block-public-sharing-of-a mazon-ebs-snapshots/ ○ https://dev.classmethod.jp/articles/ec2-block-public-ami/

Slide 86

Slide 86 text

86 お疲れ様でした 代表的なサービスや設定の紹介は以上

Slide 87

Slide 87 text

87 やるべきことわかってきた 設計方針見えてきた!

Slide 88

Slide 88 text

88 AWSで利用すべきサービス(再掲) ● 必ず利用したい ○ Security Hub ○ GuardDuty(GuardDuty.1) ○ CloudTrail(CloudTrail.1) ○ Config(Config.1) ※()には対応するSecurity Hubコントロールを記載

Slide 89

Slide 89 text

89 AWSで設定すべき項目 ● IAM Userのパスワードポリシー強化(IAM.7) ● デフォルトVPCの削除(EC2.2) ● EBSのデフォルト暗号化(EC2.3,EC2.7) ● S3バケットのパブリックアクセスのブロック(S3.1等) ● AMIやEBSのパブリックアクセスのブロック ※()には対応するSecurity Hubコントロールを記載

Slide 90

Slide 90 text

90 設計方針は分かったが、、、 ここがまだ辛い

Slide 91

Slide 91 text

91 ここがまだ辛い ● 詳細設計と実装が辛い ● 発生したインシデントの対応が辛い ● 総合的なAWSセキュリティレベルが分からなくて辛い ● 組織におけるAWSの利用方法を統一できなくて辛い

Slide 92

Slide 92 text

92 サービス紹介1 セキュアアカウントの紹介

Slide 93

Slide 93 text

93 セキュアアカウントの紹介 ● 詳細設計と実装が辛い ○ 詳細設計を考えるのが大変 ○ AWSアカウントへの実装が大変(複数リージョンやアカウント)

Slide 94

Slide 94 text

94 セキュアアカウントの紹介 ● セキュアアカウントとは ○ セキュアな設定を自動的に実装するサービス ○ 今回のセミナーで解説した設定の大部分をカバー ○ サービスを有効化するだけで完了 ➢ 設計と実装の手間を省略できる

Slide 95

Slide 95 text

95 セキュアアカウントの構成イメージ

Slide 96

Slide 96 text

96 参考ブログ1

Slide 97

Slide 97 text

97 参考ブログ2

Slide 98

Slide 98 text

98 サービス紹介2 インシデント自動調査の紹介

Slide 99

Slide 99 text

99 インシデント自動調査とは ● 発生したインシデントの対応が辛い ○ GuardDutyでイベント検知したがどう対応したらいいか分からない ○ ユーザーのよくある困りごと ■ 何が起きているのか分からない ■ すぐ対処が必要なのか? ■ どう対応すればいい? ■ 影響がどれくらい? ■ 誰に頼れば良い?

Slide 100

Slide 100 text

100 インシデント自動調査とは ● インシデント自動調査とは ○ GuardDutyで検知したイベントに対する総合的なユーザーへのサ ポート提供サービス ○ 下記をメインとした機能をシームレスに提供 ■ ユーザーに代わり自動で調査 ■ イベント内容の直感的な理解の提示 ■ 優先度と確認ポイントの明示 ■ 検知イベントに対して有人サポートの提供 ■ etc ➢ シームレスなサポートにより早期対応が可能。 ➢ 早期対応が、被害の拡大防止に繋がる

Slide 101

Slide 101 text

101 インシデント自動調査の構成イメージ

Slide 102

Slide 102 text

102 インシデント自動調査の通知例

Slide 103

Slide 103 text

103 最近のアップデート

Slide 104

Slide 104 text

104 サービス紹介3 セキュリティ成熟度モデルの紹介

Slide 105

Slide 105 text

105 セキュリティ成熟度モデルとは ● 総合的なAWSセキュリティレベルが分からなくて辛い ○ 「AWSのセキュリティ対策ちゃんとやってる?」の問いに悩む ■ 全体的なセキュリティ項目とそれぞれの達成度を洗い出せてない

Slide 106

Slide 106 text

106 セキュリティ成熟度モデルとは ● セキュリティ成熟度モデルとは ○ AWSのセキュリティ対策の達成度を定量的に表現するフレームワー ク ○ 「インフラ保護」や「アプリケーションセキュリティ」等、各項目毎 に達成度を表現できる ○ セキュリティレベル(達成度)が低い項目を洗い出すことで、適切なセ キュリティアプローチが可能となる

Slide 107

Slide 107 text

107 セキュリティ成熟度モデルとは

Slide 108

Slide 108 text

108 参考ブログ

Slide 109

Slide 109 text

109 サービス紹介4 Classmethod Cloud Guidebook (CCG)の紹介

Slide 110

Slide 110 text

110 CCGとは ● 組織におけるAWSの利用方法を統一できなくて辛い ○ AWSの利用ガイドラインがないと組織におけるAWSの利用方法を統 一できない ■ ユーザー管理方法 ■ セキュリティ対策 ■ コスト管理 ■ 運用方法 ■ etc

Slide 111

Slide 111 text

111 CCGとは ● CCGとは ○ 組織におけるAWSの利用方法を統一するためのサンプルガイドライ ンを提供することで、ガイドラインを一から作成する手間が省ける ○ 他にもマルチアカウント管理やAWS Security Hubのコントロール等 のナレッジを体系的に見ることが可能

Slide 112

Slide 112 text

112 参考ブログ

Slide 113

Slide 113 text

113 終わりだよ 最後に

Slide 114

Slide 114 text

114 まとめ(話したこと) ● セキュリティの重要性を実感してもらうため脅威の具体例の紹介 ● Security Hubの紹介 ○ 表と裏の使い方 ○ コントロールをベースとしたアカウント設計について ● セキュリティレベル向上のために利用したいサービスや設定の解説 ● 利用したいサービスや設定を理解した上で残っているツラミの紹介 ● サービスやソリューションの紹介

Slide 115

Slide 115 text

115 その他紹介 ● セキュリティの柱 - AWS Well-Architected Framework ○ AWSセキュリティを意識する全エンジニア必読

Slide 116

Slide 116 text

116