← すべての記事 オープンソース

pathbreak-audit: AWS アカウント内の悪用可能な IAM 権限を見つける

pathbreak-audit

要点

  • pathbreak-audit は、ディフェンダー向けの無料オープンソースコマンドラインツールです。AWS アカウントに向けて実行すると、悪用可能な権限や有害な組み合わせを保持する IAM ロールとユーザーを、それぞれの修正方法とともに一覧化します。
  • 読み取り専用で、ローカルで実行されます。読み取るのは IAM だけで、認証情報も検出結果もお使いのマシンの外に出ることはありません。
  • チェック項目は AWS 権限昇格マップ と同じカタログから取得しています。
  • pip install pathbreak-audit でインストールするか、AWS アカウントなしで pathbreak-audit --demo を試してください。
  • これはある時点での、単一アカウントのチェックです。どの経路が成立し、データに到達し、影響範囲で順位付けされるかを示すのが、Pathbreak が加える部分です。

AWS 権限昇格マップ はリファレンスです。攻撃者が管理者権限、データ、あるいは永続化へと進むために使えるすべての AWS 権限と、それぞれの経路を断ち切る変更を掲載しています。マップは、AWS 全般で何が問題になり得るかを教えてくれます。pathbreak-audit は、そうした権限のうちどれが今まさにあなた自身のアカウントに存在しているかを教えてくれます。

何をするのか

pathbreak-audit は、各ロールとユーザーにアタッチされたポリシー(管理ポリシー、インラインポリシー、そしてユーザーがグループから継承するポリシー)を読み取り、各プリンシパルに許可されたアクションを割り出し、それを危険な権限と組み合わせのカタログと照合します。プリンシパルごとに、保持している内容と、それを取り除く最小権限の変更を、マップ上の詳しい解説へのリンクとともに表示します。

検出結果には 2 種類あります。直接悪用可能な権限とは、プリンシパルが権限を昇格させたり、永続化したり、ロギングを改ざんしたりできる単一のアクションです。たとえば、別のユーザーに対する iam:CreateAccessKey です。有害な組み合わせとは、組み合わさったときにのみ危険になる一連の権限です。たとえば iam:PassRole と lambda:CreateFunction の組み合わせで、ポリシーを 1 つずつ確認するレビューでは見落とされがちです。

既定の表示が短い理由

広範な読み取りやすべての権限を片端から警告するツールは、本来解決すべきアラート疲れを自ら生み出してしまいます。そこで既定の表示は、対象が何であれ悪用可能な権限、つまり権限昇格、永続化、ロギングの改ざん、そして破壊に絞っています。広範なデータやシークレットの読み取り、Lambda の呼び出し、ロールの引き受け、セッションアクセスは、到達するリソースが特権を持つ場合にのみ問題になりますが、単一アカウントの静的チェックではそれを知ることができません。そのため、--include-access で明示的に要求しない限り、これらは表示されません。完全な管理者と AWS の既定ロールも既定では除外されるため、一覧は短く、読む価値のあるものに保たれます。

試してみる

AWS アカウントがまったくなくても、出力を確認できます。

pip install pathbreak-audit
pathbreak-audit --demo

自分のアカウントに対して実行するには、IAM への読み取りアクセスを持つ任意の認証情報を使ってください。AWS 管理ポリシーの SecurityAudit または ViewOnlyAccess のどちらでもカバーできます。

pathbreak-audit --profile my-profile

すべてのオプション、出力例、ソースコードは GitHub にあります。

何をしないのか

これは 1 つのアカウントの、ある時点でのチェックです。ポリシーが許可する内容を読み取るため、狭くスコープされた付与でも表示されることがあり、権限が悪用され得ることは伝えますが、それが機微なものまで一直線に連鎖するとまでは伝えません。アカウントをまたいでグラフをたどることはせず、経路が実際の認可に照らして成立するかを検証することもなく、変化を監視することもありません。私たちはそこに意図して線を引いています。

pathbreak-audit は、悪用され得る権限をプリンシパルごとに示します。Pathbreak は、そのうちどれが、あなたの機微なデータに到達する検証済みの経路へと連鎖するかを示し、すべてのアカウントにわたる影響範囲で順位付けし、最も多くの経路を断ち切るひとつの変更を継続的にお渡しします。このツールが役立つなら、それが次のステップです。

よくある質問

pathbreak-audit は本当に無料ですか。

はい。MIT ライセンスのオープンソースで、無料でお使いいただけます。ソースコードは GitHub にあり、PyPI で公開されています。 これは Pathbreak が公開しています。

私の AWS アカウントへの書き込みアクセスは必要ですか。

いいえ。IAM と STS の API に対して読み取り呼び出しを行うだけです。実行するには AWS 管理ポリシーの SecurityAudit または ViewOnlyAccess で十分です。 Pathbreak のフルプラットフォームも、読み取り専用ロールを通じて同じ方法で接続します。

pathbreak-audit は私のデータをどこかに送信しますか。

いいえ。すべてローカルで実行されます。あなたのアカウントに何も書き込まず、外部に何も送信しません。テレメトリーもありません。 共有することを選ばない限り、Pathbreak が出力を目にすることはありません。

pathbreak-audit は Pathbreak とどう違いますか。

pathbreak-audit は、悪用され得る権限を、静的に、単一アカウントで一覧にしたものです。Pathbreak は、そのうちどれが、あなたの機微なデータへの実在する経路へと連鎖するかを検証し、すべてのアカウントにわたる影響範囲で順位付けし、最も多くを断ち切るひとつの変更を継続的に提供します。

関連記事

あなたのアカウントで pathbreak-audit を実行し、それから、検証され、あなたのデータに到達する経路を確認してください。

pathbreak-audit を入手する デモを申し込む