בדף הזה מוסבר איך לזהות ולמנוע השתלטות על חשבונות (ATO) באמצעות Google Cloud Fraud Defense.
התקפות ATO מתרחשות בדרך כלל כשתוקף שולח בקשות להתחבר לנקודות קצה ל-API באמצעות פרטי כניסה שהושגו מפרצה באבטחת מידע, שנקראת גם הדלפת סיסמאות. מתקפה כזו יכולה להצליח גם אם מאגר הסיסמאות מגיע מאתר לא קשור, כי אנשים נוטים להשתמש בסיסמה בשימוש חוזר בכמה חשבונות. סוג כזה של מתקפה לא משפיע על משתמשים ששומרים על היגיינת סיסמאות נכונה, כמו שימוש במנהל סיסמאות.
לפני שמתחילים
הכנת הסביבה ל-Google Cloud Fraud Defense
זיהוי ומניעה של השתלטות על חשבונות (ATO)
בעזרת Fraud Defense, אתם יכולים לזהות ולמנוע השתלטות על חשבונות באמצעות אחת מהאפשרויות הבאות:
שימוש בתיבת הסימון 'אני לא רובוט'
הוספה של תיבת הסימון אני לא רובוט לאתר היא הדרך המהירה והקלה ביותר לספק הגנה מסוימת מפני השתלטות על חשבונות בלי לשלב תכונות נוספות, כמו אימות באמצעות SMS או אימייל. כדי לפרוץ את ההגנה הזו, התוקף צריך להשקיע משאבים, ויכול להיות שהאפשרות הזו תספיק לאתרים מסוימים.
מוסיפים את תיבת הסימון 'אני לא רובוט' לדפי האינטרנט.
הקוד הבא הוא דוגמה חיה לדף כניסה שמוגן על ידי תיבת הסימון:
function onSuccess(token) {
// The token is included in the POST data in the g-recaptcha-response
// parameter. The backend must create an Assessment with the token
// and verify the token is valid.
console.log(token);
}<form id="loginForm" action="?" method="POST">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<div class="g-recaptcha" data-sitekey="reCATCHA_sitekey"
data-action="account_login" data-callback="onSuccess"></div>
</form><script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
כדי להתנסות עם הקוד הזה ב-JSFiddle, לוחצים על הסמל <> בפינה השמאלית העליונה של חלון הקוד.
<html>
<head>
<title>Account Login - Checkbox</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
<script>
function onSuccess(token) {
// The token is included in the POST data in the g-recaptcha-response
// parameter. The backend must create an Assessment with the token
// and verify the token is valid.
console.log(token);
}
</script>
</head>
<body>
<form id="loginForm" action="?" method="POST">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<div class="g-recaptcha" data-sitekey="6LeAkOgUAAAAACcy3uY6N9H9SJMS27n3Zx2OOnYK"
data-action="account_login" data-callback="onSuccess"></div>
</form>
</body>
</html>שימוש בציונים ובאתגרים בהתאמה אישית
כדי להגן מפני השתלטות על חשבונות, השתמשו במפתחות מבוססי-ניקוד של Fraud Defense ובאתגרי אימות רב-שלבי (MFA), כמו אתגרי אימייל ו-SMS שבהם נשלחים למשתמש קודים חד-פעמיים (OTP).
כדי להשתמש במפתחות שמבוססים על ניקוד ובאתגרים בהתאמה אישית, אתם יכולים:
התקנת מפתחות מבוססי-ניקוד כדי לזהות אוטומציה ב-ATO בקנה מידה גדול.
כדי להטמיע מפתחות מבוססי-ניקוד בדפי אינטרנט, קראו את המאמר הטמעת מפתחות מבוססי-ניקוד בדפי אינטרנט.
כדי להתקין מפתחות מבוססי-ניקוד באפליקציות לנייד, קראו את המאמר שילוב Fraud Defense באפליקציות ל-Android או שילוב Fraud Defense באפליקציות ל-iOS.
משתמשים ב-MFA כדי לאמת את הבעלות על החשבון בכניסה או לביצוע פעולות רגישות.
מידע נוסף מופיע במאמר הגדרת אימות רב-שלבי.
בהתאם לתרחיש לדוגמה, אתם יכולים להשתמש ב-MFA לבד או עם מפתחות מבוססי-ניקוד. לדוגמה, יכול להיות שתעדיפו להשתמש באתגרי MFA רק לגבי ציונים מתחת לסף מסוים כדי לצמצם את החיכוך.
בדוגמה הבאה מוצג אופן השילוב של מפתחות מבוססי-ניקוד בתרחיש של התחברות.
function submitForm() {
grecaptcha.enterprise.ready(function() {
grecaptcha.enterprise.execute(
'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) {
document.getElementById("token").value = token;
document.getElementByID("loginForm").submit();
});
});
}<form id="loginForm" action="?" method="POST"> Username: <input type="text" name="username"/><br/> Password: <input type="password" name="password"/><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Login</button> </form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
כדי להתנסות עם הקוד הזה ב-JSFiddle, לוחצים על הסמל <> בפינה השמאלית העליונה של חלון הקוד.
<html>
<head>
<title>Account Login - Score</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
<script>
function submitForm() {
grecaptcha.enterprise.ready(function() {
grecaptcha.enterprise.execute(
'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) {
document.getElementById("token").value = token;
document.getElementByID("loginForm").submit();
});
});
}
</script>
</head>
<body>
<form id="loginForm" action="?" method="POST">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<input type="hidden" id="token" name="recaptcha_token"/>
<button onclick="submitForm()">Login</button>
</form>
</body>
</html>המאמרים הבאים
- מידע על תכונות נוספות להגנה על החשבון זמין במאמר תכונות להגנה על חשבונות משתמשים.