ממשקי Safe Browsing API מאפשרים לאפליקציות לקוח לבצע בדיקות של כתובות URL בזמן אמת או על סמך רשימות, מול רשימות של Google שמתעדכנות באופן שוטף וכוללות משאבי אינטרנט לא בטוחים. דוגמאות למשאבי אינטרנט לא בטוחים הם אתרים של הנדסה חברתית (פישינג ואתרים מטעים) ואתרים שמארחים תוכנות זדוניות או תוכנות לא רצויות. כל כתובת URL שנמצאת ברשימה של הגלישה הבטוחה נחשבת ללא בטוחה.
כדי לקבוע אם כתובת URL מופיעה באחת מרשימות הגלישה הבטוחה, לקוחות יכולים להשתמש ב-urls.search או ב-hashes.search.
מה חדש?
עדכניות הנתונים
באופן מסורתי, לקוחות של גלישה בטוחה מורידים מעת לעת רשימות של איומים שמשמשות להתאמה לאיומים פוטנציאליים. עם הזמן, נפחי האיומים והמהירות שלהם גדלו, ולכן רשימות האיומים המקומיות האלה הפכו לפחות יעילות נגד איומים מודרניים.
כדי לצמצם את הפער הזה, אנחנו מציגים את האפשרות לשנות את הפרוטוקולים כך שיהיו מסומנים כברירת מחדל במקום הפרוטוקול מאושר כברירת מחדל שהיה זמין קודם בגרסה 4. הדבר נעשה על ידי הוספת האפשרות להוריד רשימה של אתרים שסביר להניח שהם לא מזיקים, שנקראת 'מטמון גלובלי'. אם כתובת URL לא נמצאת במטמון הגלובלי, הלקוח צריך לבצע בדיקה באמצעות ה-API כדי לקבוע אם כתובת ה-URL היא איום.
היכולת לבצע בדיקות כברירת מחדל, בנוסף לשיפור הרעננות של הנתונים בשירות, תספק הגנה מהירה יותר מפני איומים חדשים, כמעט בזמן אמת.
פרטיות של כתובת IP
Safe Browsing API משתמש בכתובות ה-IP רק לצרכים חיוניים של רשתות ולמטרות הגנה מפני התקפות מניעת שירות (DoS).
השקנו ממשק API נלווה שנקרא Safe Browsing Oblivious HTTP Gateway API כדי לספק ערבויות נוספות לפרטיות. השיטה הזו משתמשת ב-Oblivious HTTP כדי להסתיר את כתובות ה-IP של משתמשי הקצה מ-Google. השיטה הזו פועלת כך שצד שלישי שלא משתף פעולה עם Google מטפל בגרסה מוצפנת של בקשת המשתמש, ואז מעביר אותה ל-Google. לכן, לצד השלישי יש גישה רק לכתובות ה-IP, ול-Google יש גישה רק לתוכן הבקשה. הצד השלישי מפעיל ממסר Oblivious HTTP (כמו השירות הזה של Fastly), ו-Google מפעילה שער Oblivious HTTP. זהו API אופציונלי נלווה. כשמשתמשים בו בשילוב עם הגלישה הבטוחה של Google, כתובות ה-IP של משתמשי הקצה לא נשלחות יותר אל Google.
פרטים נוספים זמינים במסמכי העזרה בנושא Safe Browsing Oblivious HTTP Gateway API.
שיטות חיפוש
במאמר הזה נסביר על השיטות השונות שזמינות לביצוע בדיקות בזמן אמת של כתובות URL.
urls.search
מאפשר לאפליקציות לקוח לשלוח כתובות URL לשירות 'גלישה בטוחה' כדי לבדוק אם יש איומים שמשויכים לכתובות ה-URL.
יתרונות
- בדיקות פשוטות של כתובות URL: אתם שולחים בקשה עם כתובות ה-URL בפועל, והשרת מגיב עם כתובות ה-URL והאיומים שמשויכים אליהן (אם יש כאלה).
חסרונות
- אין סודיות של כתובת ה-URL: הבקשה מכילה את כתובות ה-URL הגולמיות שנבדקות.
אם היתרונות והחסרונות מתאימים לדרישות שלכם, כדאי להשתמש ב-urls.search כי הוא פשוט לשימוש.
חשוב לעיין בתנאים ובהגבלות של השימוש בשיטה, כי הם שונים מאלה של hashes.search.
hashes.search
מאפשר לאפליקציות לקוח לבדוק אם יש איומים מוכרים בקבוצה של כתובות URL בלי לחשוף את כתובות ה-URL בפועל לשירות. כדי לעשות זאת, מספקים רק את תחילית הגיבוב של כתובת ה-URL. התשובה תכיל גיבובים מלאים של איומים מוכרים עם קידומת הגיבוב של הרסיס.
יתרונות
- סודיות כתובת ה-URL: בבקשה מופיעה רק קידומת הגיבוב של כתובת ה-URL, באורך 4 בייט.
- תאימות: מכיוון שהלקוח מטפל בגיבוב ובקנוניזציה של כתובות URL, השיטה הזו משתלבת בצורה חלקה עם מצבים שמשתמשים במסד נתונים מקומי, כמו מצב בזמן אמת ומצב רשימה מקומית.
חסרונות
- בדיקות מורכבות של כתובות URL: כדי לשלוח בקשות לשיטה הזו ולהשוות אותן לעותקים המקומיים של רשימות הכתובות הלא בטוחות או למטמון הגלובלי, צריך לדעת איך להפוך כתובות URL לקנוניות, ליצור ביטויי סיומת או קידומת ולחשב גיבובי SHA256.
אם חשוב לכם לתת עדיפות לסודיות של כתובות URL ואתם מעוניינים להשתמש במצב בזמן אמת או במצב רשימה מקומית, מומלץ להשתמש ב-hashes.search.
HashList אמצעי התשלום
השיטות האלה מאפשרות ללקוחות להוריד ולאחסן גרסאות עם גיבוב של הרשימות הלא בטוחות ושל המטמון הגלובלי. הלקוחות יכולים להשתמש במידע הזה כדי להחליט אם לבצע חיפוש בזמן אמת של כתובות ה-URL הרלוונטיות.
השיטות האלה חיוניות להפעלה של מצב בזמן אמת ושל מצב רשימה מקומית.
מידע נוסף על השימוש בשיטות האלה זמין בדף מסד נתונים מקומי.
דוגמאות לבקשות
בקטע הזה מפורטות כמה דוגמאות לשימוש ישיר ב-HTTP API כדי לגשת לגלישה הבטוחה. באופן כללי, מומלץ להשתמש בקישור שפה שנוצר כי הוא יטפל באופן אוטומטי בקידוד ובפענוח בצורה נוחה. אפשר לעיין במסמכי התיעוד של הקישור הזה.
דוגמה לבקשת HTTP באמצעות urls.search:
GET https://safebrowsing.googleapis.com/v5alpha1/urls:search?key=INSERT_YOUR_API_KEY_HERE&urls=testsafebrowsing.appspot.com/
דוגמה לבקשת HTTP באמצעות hashes.search:
GET https://safebrowsing.googleapis.com/v5/hashes:search?key=INSERT_YOUR_API_KEY_HERE&hashPrefixes=WwuJdQ
דוגמה לבקשת HTTP באמצעות hashLists.batchGet:
GET https://safebrowsing.googleapis.com/v5/hashLists:batchGet?key=INSERT_YOUR_API_KEY_HERE&names=se&names=mw-4b
כל גופי התגובה הם מטען ייעודי (payload) בפורמט protocol-buffer שאפשר לפענח.