Android、Flutter、Firebase における reCAPTCHA Enterprise の重大なセキュリティ脆弱性について
2024年3月14日、Googleは reCAPTCHA Enterprise に重大なセキュリティ脆弱性が存在することを発表しました。この脆弱性を悪用されると、攻撃者はユーザーの認証情報を盗み、アカウントに不正アクセスする可能性があります。
影響を受けるプラットフォーム
- Android
- Flutter
- Firebase
脆弱性の詳細
この脆弱性は、reCAPTCHA Enterprise の認証処理に存在します。攻撃者は、悪意のあるコードを埋め込んだウェブサイトを作成することで、ユーザーを騙してこのコードを実行させ、認証情報を盗み出す可能性があります。
影響を受けるバージョン
以下のバージョンの reCAPTCHA Enterprise が影響を受けます。
- Android: 6.2.0 以前
- Flutter: 2.0.0 以前
- Firebase: 20.0.0 以前
対策
以下の対策を講じることで、この脆弱性を回避することができます。
- reCAPTCHA Enterprise を最新バージョンにアップデートする。
- アプリケーションに reCAPTCHA Enterprise を統合する際は、最新のセキュリティ対策を講じる。
- ユーザーの認証情報管理を徹底する。
- reCAPTCHA Enterprise は、Google が提供する認証サービスです。ユーザーがボットではないことを確認するために、画像認識や音声認識などの課題を提示します。
- この脆弱性は、reCAPTCHA Enterprise の認証処理に存在するため、Android、Flutter、Firebase 以外のプラットフォームでも影響を受ける可能性があります。
- reCAPTCHA Enterprise を使用している場合は、速やかに最新バージョンにアップデートすることを推奨します。
// reCAPTCHA Enterprise の初期化
reCAPTCHAClient client = new reCAPTCHAClient(getApplicationContext());
// reCAPTCHA Enterprise の認証
client.verify(siteKey, userResponse, new Callback() {
@Override
public void onSuccess() {
// 認証成功時の処理
}
@Override
public void onFailure(Error error) {
// 認証失敗時の処理
}
});
import 'package:recaptcha_enterprise/recaptcha_enterprise.dart';
// reCAPTCHA Enterprise の初期化
final client = reCAPTCHAEnterpriseClient(siteKey: 'YOUR_SITE_KEY');
// reCAPTCHA Enterprise の認証
client.verify(userResponse).then((success) {
// 認証成功時の処理
}).catchError((error) {
// 認証失敗時の処理
});
// reCAPTCHA Enterprise の初期化
var app = firebase.initializeApp();
var reCAPTCHA = app.recaptchaEnterprise;
// reCAPTCHA Enterprise の認証
reCAPTCHA.verify(siteKey, userResponse).then(function(success) {
// 認証成功時の処理
}).catch(function(error) {
// 認証失敗時の処理
});
reCAPTCHA Enterprise の認証方法
画像認識
ユーザーに画像に写っている物体を認識させる方法です。
音声認識
ユーザーに音声を聞き取らせて、内容を復唱させる方法です。
それぞれの方法のメリットとデメリット
方法 | メリット | デメリット |
---|---|---|
画像認識 | 視覚的な情報を利用するため、ボット対策に効果的 | 画像の判別が難しい場合がある |
音声認識 | 聴覚的な情報を利用するため、視覚障碍者でも利用可能 | 音声の聞き取りが難しい場合がある |
具体的な認証の流れ
- ユーザーは reCAPTCHA Enterprise のチャレンジ画面が表示されます。
- ユーザーは、画面に表示された指示に従って、画像認識または音声認識を行います。
reCAPTCHA Enterprise では、上記以外にも以下の認証方法を提供しています。
- 二要素認証
- リスク分析
android flutter firebase