はじめに

世の中、生成系AIが浸透してきています。
IT業界においては言わずもがなです。
そんな中、Tenable社からオープンソースで生成系AIを使ってAWSのIAMをレビューしてくれるツールが提供されています。
試してみたいと思います。
https://github.com/tenable/EscalateGPT

やってみる

利用するにはChatGPTのAPIキーが必要です。gpt-4が使われています。
今後、無償ユーザーでも利用可能になるように検討されているとのことですが、2023/8/18現在では$1以上(最小登録が$5からなので実質$5?)の課金が必要です。
https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4

ITエンジニアにとっては必要経費と考えている自分はすでに課金済み。まだの方も外食ランチを1食カップラーメンにすれば大丈夫です!

手元の環境で実行してみました。黒塗りだらけですがご容赦を。
なお、シークレットキーによっては、-aws_secretはダブルクォテーション(”)で囲む必要があります。

おお!何やら検出。

検出事項の確認

今回、3件の検出事項がありました。
いずれに対してもリスクと緩和策も提示してくれています。それぞれについて内容と実態を確認したいと思います。

1点目

"path": "hogehoge:AssumeRole->fugafuga",
"policy": "sts:AssumeRole",
"risk": "User 'hoge' can assume 'hogefuga-role' and gain access to resources that this role has access to, which may include sensitive or restricted data.",
"mitigation": "Limit the scope of the 'sts:AssumeRole' policy for 'hoge' and restrict the access to sensitive resources for 'fugafuga' role."

こちらにについては、実際には問題はないものでした。
検証をかけたアカウントのIAM USerの一つに、Switch Roleで他のAWSアカウントにアクセス権を付与していたものを引っ掛けたようです。
これは意図したものではありましたが、確かに定期的な棚卸しは必要です。

2点目

"path": "hoge-AWSCodeCommitFullAccess->*",
"policy": "AWSCodeCommitFullAccess",
"risk": "User 'hoge' has full access to AWS CodeCommit and can make changes to the code which could potentially be pushed to production environment.",
"mitigation": "Implement a policy to require code reviews before changes are pushed to the production environment and restrict direct push permissions."こ

こちらについてはもっともな指摘でした。
検証環境であることもありますが、hoge ユーザーが自分で単独で全てできてしまう権限になっています。
これは本番環境では好ましくないことも多いと思います。

3点目

"path": "fuga-ReadOnlyAccess->*", 
"policy": "ReadOnlyAccess", 
"risk": "While this user does not have write access, they are able to view all information and may exploit the information to gain additional permissions indirectly. This especially poses a risk if sensitive information isn't adequately protected or encrypted.", 
"mitigation": "Enable Access Control Lists (ACLs) and always encrypt sensitive information, even for fuga users. Ensure Readonly users only have access to what they strictly need."

こちらにについても、実際には問題はないものでした。
が、指摘事項は納得できるものではあります。
ReadOnlyのようなユーザーを置く場合、環境によっては秘匿情報にまでアクセスできてしまい情報漏洩につながる可能性があります。

まとめ

今回発見してくれたものは、目視のレビューでも見つけにくいもののような気がします。
生成系AIの業務利用では必定ですが、100%の正解ではないことは認識が必要です。それでも、気づきのきっかけには非常に強力なツールになりそうです。

今後、生成系AIはもっと多くのツールに組み込まれてくると思います。
セキュリティ業界においては悪用の方にフォーカスされがちですが、こういった有効活用もあるので今後も追っていきたいと思います。