多要素認証とは?多層的な本人確認
多要素認証 (MFA) は、アイデンティティを証明するために2種類以上の独立した証拠を要求するため、盗まれたパスワードだけでは不十分になります。
多要素認証、すなわちMFAは、複数の要素を要求することでログインを強化します。パスワードはあなたが知っているものであり、MFAはあなたが持っているものやあなた自身であるものを追加します。各要素が独立しているため、一つを盗んだ攻撃者でも侵入できません。エンジニアリングチームにとって、ソースホストやクラウドアカウントにおけるMFAは基本的な防御です。
要素の種類
- 知識: パスワードまたはPIN。
- 所持: 電話、認証アプリ、またはハードウェアセキュリティキー。
- 生体: 指紋、顔、その他の生体情報。
MFAが機能する理由
ほとんどの攻撃は、盗まれたりフィッシングで奪われたりしたパスワードから始まります。2つ目の独立した要素を要求することでその経路を断ち切ります。攻撃者はあなたの電話やハードウェアキーも必要になるからです。これが成り立つには、要素が本当に独立している必要があります。
強い要素と弱い要素
すべての2つ目の要素が同等というわけではありません。SMSコードは傍受されたりSIM-swapされたりする可能性があります。認証アプリのコードはより優れています。FIDO2を使うハードウェアセキュリティキーは、本物のサイトに紐づいているためフィッシングに耐性があります。重要な場面では、利用可能な最も強力な要素を選びましょう。
MFAとCI/CD
MFAは、パイプラインを制御する人間のアカウントを保護します。ソースホスト、クラウドコンソール、CI/CDプラットフォーム、そしてアイデンティティプロバイダーです。MFAは対話的であるため、パイプラインが使用する自動化されたトークンではなく、ログインを守ります。それらは代わりにスコープ付けと短い有効期間に依存します。
MFAが届かない場所
無人で実行されるパイプラインはMFAのプロンプトに応答できません。まさにそのため、マシン認証は対話的なMFAではなく、スコープ付きトークンとOIDCを使用します。この境界を知ることで、MFAが適さない自動化に無理やり組み込もうとするのを避けられます。
人間側の保護
開発者や管理者のアカウントの侵害がパイプラインを汚染しうるため、CIに触れられるすべてのアカウントにMFA (理想的にはフィッシング耐性のあるもの) を強制することは、チームが適用できる最も効果の高い制御の一つです。
重要なポイント
- MFAは2つ以上の独立した要素を要求するため、盗まれたパスワードだけでは不十分です。
- ハードウェアセキュリティキー (FIDO2) は最も強力でフィッシング耐性のある要素です。
- MFAは人間のログインを守ります。パイプラインは対話的なMFAではなく、スコープ付きトークンに依存します。