Contenu connexe
Similaire à クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】 (20)
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
- 5. 自己紹介 : 森 槙悟(MORI Shingo)
所属
• システム本部 セキュリティ部 セキュリティ技術グループ
経歴
• DeNA新卒 7年目、セキュリティエンジニア 7年目
• ICFPC 2019 世界8位(Rust)
セキュリティ技術グループの業務内容
• 脆弱性診断
• セキュリティ相談対応
• NW診断
• ログ管理
• セキュリティツール作成、チート対策ライブラリ開発など
- 6. 自己紹介 : 森 槙悟(MORI Shingo)
所属
• システム本部 セキュリティ部 セキュリティ技術グループ
経歴
• DeNA新卒 7年目、セキュリティエンジニア 7年目
• ICFPC 2019 世界8位(Rust)
セキュリティ技術グループの業務内容
• 脆弱性診断
• セキュリティ相談対応
• NW診断
• ログ管理
• セキュリティツール作成、チート対策ライブラリ開発など
- 8. DeNAのクラウド利用状況 - 全体管理
主にAWS・GCPを利用
• AWSだけでも250アカウント以上、GCPは600プロジェクト以上
• 月に10個のペースで増加中
• 利用部門数は約60
アカウント作成・キッティングはインフラ部門担当
• アカウント名・利用部門・連絡先などを一元管理
• rootユーザの管理
• 管理用ロールの設定
• フェデレーションを利用したSSO設定の導入
• 監査ログの設定の導入
• コストアラートの導入
- 10. DeNAのクラウド利用状況 - アカウント内
アカウント内は開発者が管理者権限を持つ
• 用途がバラバラなのでインフラで全部対応するのが難しい
• 素早く柔軟な設定を行うのに必要
• 規模が大きいものはインフラ管理の場合も
利用者によってセキュリティレベルに差異が出る
• 専門のエンジニアが居ない部署もある
• 相談・調査を個別にするのは工数やスピードに問題あり
セキュリティガイドを作成
• ガイド通りにやれば社内ポリシーに準拠できる
• スピードを保ったまま必要なセキュリティ設定を確認可能
- 14. 具体的にチェックしたい項目例
• ルートユーザの二要素認証が有効か?
• ルートユーザのアクセスキーが無効化されているか?
• システム用ユーザに利用してない権限が付いてないか?
• システム用ユーザにリソース制限がかかっているか?
• IAMユーザの管理方法は社内規定にしたがっているか?
• IAMユーザに二要素認証・IP制限があるか?
• 利用してないアクセスキーが残ってないか?
• サービスアカウントキーはローテーションされているか?
• 内部用バケットが公開されてないか?
• オブジェクト単位でアクセス権をつけない設定が有効か?
• 公開バケット(S3・GCS)のアクセスログが有効か?
• バケットのデフォルト暗号化が有効か?
• 読み込み・書き込み専用のユーザに過剰な権限が付与されてないか?
• ライフサイクルの設定が短すぎないか?
• ネットワーク設定で不要なポートを開けてないか?
• 本番環境のSSH接続元が踏み台サーバに限定されているか?
• GKEが限定公開クラスタになっているか?
• ELBのアクセスログが有効か?
• ELBの暗号強度は十分か?
• ……
- 26. *正式名称は以下の通りです
EC2 : Amazon EC2
ALB : Application Load Balancer
S3 : Amazon Simple Storage Service
CloudWatch : Amazon CloudWatch
SES : Amazon Simple Email Service
- 27. クラウドの構成 - 権限
AWS
• 監査対象アカウントに監査用ロールを作成
• SecurityAudit のポリシーで必要な権限が大体つく
• 監査元のEC2からクロスアカウントでAssumeRoleする
GCP
• 監査元プロジェクトにサービスアカウントを作成
• 監査対象プロジェクト(または組織レベル) でそのサービスア
カウントに役割をつける
• Security Reviewer の役割で必要な権限が大体つく
• 必要なら各プロジェクトでAPIを有効化する
- 28. 監査ルール実装 - 例1 AWS IAM
ルール
• 使われてないアクセスキーは無効化・削除する事
コマンド
判定
• StatusがActiveかつ、LastUsedDateが一定期間より前だとNG
• 一度も利用してないとLastUsedDateがnullになるので
CreateDateも見る必要がある
aws iam list-users
aws iam list-access-keys --user-name ${ユーザ名}
aws iam get-access-key-last-used --access-key-id ${キーID}
- 29. 監査ルール実装 - 例2 AWS ALB
ルール
• ALBのアクセスログを有効化する事(CLBは別実装)
• 設定ミス防止のためファイルが実在するかも確認する
コマンド
判定
• アクセスログが有効で直近のログが存在すればOK
aws elbv2 describe-load-balancers
aws elbv2 describe-load-balancer-attributes --load-balancer-arn ${arn}
aws s3api list-objects-v2 --bucket ${バケット名} --max-items 1 --prefix
${prefix}AWSLogs/${account_id}/elasticloadbalancing/
${region}/${year}/${month}/${date}/
- 30. 監査ルール実装 - 例3 GCP GCS
ルール
• 公開用のバケット以外はallUsers・allAuthenticatedUsersに権
限を付与しない事
コマンド
判定
• IAM・ACLにallUsers・allAuthenticatedUsersがあるとNG
• そもそも公開用のバケットは理由を書いてNGを抑制する
gsutil ls
gsutil iam get gs://${バケット名}/
gsutil acl get gs://${バケット名}/
gsutil defacl get gs://${バケット名}/
- 31. 監査ルール実装 - 注意点の例
アカウント内で完結しない場合
• ログ出力先が別アカウントなど
• 先に全アカウントのリソース情報を取得し表を作る
複雑なルールは実装が大変
• ファイアウォールやAWSのポリシーなどは頑張る
• 多分しない設定はログだけ出して後で実装
本番データで遅い・エラーになる
• アカウント数が多いので高速化・並列化が必要
• GCPはリソースが無い場合、REST APIが404やnilを返す
• 新機能の利用などで既存のAPIがエラーになる事も稀にある
- 34. 運用 - AWS自動監査 開始
AWS側は全社導入した!
• マニュアル・FAQも準備した!
• 全社に連絡した!
- 35. 運用 - AWS自動監査 開始
AWS側は全社導入した!
• マニュアル・FAQも準備した!
• 全社に連絡した!
あんまり対応してくれない…
• 対応してくれている人もいるが全体から見ると足りない
• 運用歴が長いと1アカウントで数百個NGが出る…
• 一度綺麗にすれば楽だがそこまでが大変
- 36. 運用 - 結局セキュリティ部が見る
危険度が高い項目を集計
• バケットがパブリックになっている
• DBのポートがインターネットに公開されている
• ルートユーザのアクセスキーが有効
• ……
NGを目視確認
• 合計で400件程度
• 明らかに問題ないものは除外していく
• システムの権限で設定を見れるので早い
• 数時間で見終わるのでやる
- 37. 運用 - 残りの対応
トップダウンで対応依頼
• 実際に危ないのが見つかっているのでスムーズ
• 3ヶ月に一回、各マネージャー陣に対応状況を共有
• 8割のアカウントが対応済みに
残りのアカウント管理者にpush
• 数が減ったので人力で一人ずつ連絡
• 現在進行中
- 38. 運用 - セキュリティ監査
ヒアリング項目数が大幅減
• AWS:62%自動化(51/82項目)
• GCP:25%自動化(20/79項目)
情報の正確性・速度が上がった
• アカウント管理者にヒアリングするよりも正確
• 年次のセキュリティ監査を待たずに危険な箇所を把握できる
セキュリティ監査担当者も大喜び
- 40. 今後 - 残課題
全AWSアカウントの対応完了
GCPの自動監査の運用開始
• ルールは実装済み(約20項目)
• 一部プロジェクトで先行導入中
• こちらも全プロジェクト対応済みにする
クラウドセキュリティに関する啓蒙活動
• E-learningなど
別レイヤでのセキュリティの強化
• 今回対象外としたレイヤの監査の自動化
• クラウド環境に対するSOC
• 不正アクセス検知、脅威検出など
- 41. 今後 - 新機能への追従も必要
新機能のチェック
• 公式の発表・ブログ・リリースノート・週刊AWSなどを定期的
に確認する
• 発表会の内容をチェックする
• AWS re:Invent, Google Cloud Nextなど
セキュリティガイド・自動監査の更新
• 公式ドキュメントの確認・動作検証を行ない追加が必要か検討
• 必要ならセキュリティガイドの更新と監査を実装
• 全社に連絡して順次対応してもらう