Not: Bu dokümanlar hâlâ geliştirme aşamasındadır. Yakın gelecekte iyileştirmeler bekliyoruz.
Google Güvenli Tarama 5.0, Google Güvenli Tarama 4.0'ın gelişmiş halidir. 5. sürümde yapılan iki önemli değişiklik, verilerin güncelliği ve IP gizliliğidir. Ayrıca API yüzeyi, esnekliği ve verimliliği artırmak ve şişmeyi azaltmak için iyileştirildi. Ayrıca Google Güvenli Tarama 5. sürümü, 4. sürümden geçişi kolaylaştırmak için tasarlanmıştır.
Google şu anda hem 4. sürümü hem de 5. sürümü sunmaktadır ve her ikisi de üretime hazır olarak kabul edilir. 4. veya 5. sürümü kullanabilirsiniz. 4. sürümün kullanımdan kaldırılmasına ilişkin bir tarih henüz açıklanmadı. Bu tarih açıklanırsa en az bir yıl önceden bildirimde bulunacağız. Bu sayfada v5 ve v4'ten v5'e taşıma kılavuzu açıklanmaktadır. v4 dokümanlarının tamamı kullanılabilir durumdadır.
Verilerin Güncelliği
5. sürümde, gerçek zamanlı koruma olarak bilinen bir çalışma modu sunuyoruz. Bu sayede, yukarıdaki veri güncelliği sorununun önüne geçilir. 4. sürümde istemcilerin yerel bir veritabanı indirip sürdürmesi, yerel olarak indirilen tehdit listelerine karşı kontroller yapması ve ardından kısmi bir önek eşleşmesi olduğunda karma değerin tamamını indirme isteği göndermesi beklenir. 5. sürümde istemcilerin tehdit listeleri içeren yerel bir veritabanı indirip sürdürmeye devam etmesi gerekir. Ancak istemcilerin artık iyi huylu olabilecek sitelerin listesini (Küresel Önbelleğe alma olarak adlandırılır) indirmesi, hem bu Küresel Önbelleğe alma için hem de yerel bir tehdit listesi kontrolü gerçekleştirmesi ve son olarak, tehdit listeleri için kısmi bir ön ek eşleşmesi olduğunda veya Küresel Önbelleğe alma'da eşleşme olmadığında tam karmaları indirme isteği göndermesi de beklenir. (İstemcinin gerektirdiği yerel işleme hakkında ayrıntılı bilgi için lütfen aşağıdaki prosedüre bakın.) Bu, varsayılan olarak izin ver seçeneğinin varsayılan olarak kontrol et seçeneğine kaydırılmasını temsil eder. Bu da web'deki tehditlerin daha hızlı yayılması göz önüne alındığında korumayı iyileştirebilir. Diğer bir deyişle, bu protokol gerçek zamanlıya yakın koruma sağlamak için tasarlanmıştır: Müşterilerin daha güncel Google Güvenli Tarama verilerinden yararlanmasını hedefliyoruz.
IP Gizliliği
Google Güvenli Tarama (v4 veya v5), istek yayınlama sürecinde kullanıcının kimliğiyle ilişkili hiçbir şeyi işlemez. Gönderilen çerezler yok sayılır. İsteklerin kaynak IP adresleri Google tarafından bilinir ancak Google, IP adreslerini yalnızca temel ağ bağlantısı ihtiyaçları (ör. yanıt göndermek için) ve DoS saldırılarına karşı koruma amacıyla kullanır.
5. sürümle birlikte, Güvenli Tarama Oblivious HTTP Gateway API olarak bilinen bir tamamlayıcı API'yi kullanıma sunuyoruz. Bu yöntem, son kullanıcıların IP adreslerini Google'dan gizlemek için Oblivious HTTP'yi kullanır. Bu yöntem, kullanıcı isteğinin şifrelenmiş bir sürümünü işleyen ve ardından bunu Google'a ileten, birlikte çalışmayan bir üçüncü tarafla çalışır. Böylece üçüncü taraf yalnızca IP adreslerine, Google ise yalnızca isteğin içeriğine erişebilir. Üçüncü taraf, Oblivious HTTP Relay'i (ör. Fastly'nin bu hizmeti) işletirken Google, Oblivious HTTP Gateway'i işletir. Bu, isteğe bağlı bir tamamlayıcı API'dir. Google Güvenli Tarama ile birlikte kullanıldığında son kullanıcıların IP adresleri artık Google'a gönderilmez.
Çalışma modları
Google Güvenli Tarama v5, istemcilerin üç çalışma modundan birini seçmesine olanak tanır.
Gerçek Zamanlı Mod
İstemciler, Google Güvenli Tarama v5'i gerçek zamanlı modda kullanmayı seçtiğinde yerel veritabanlarında şunları tutar: (i) ana makine soneki/yol ön ekiyle URL ifadelerinin SHA256 karmaları olarak biçimlendirilmiş, muhtemelen zararsız sitelerin küresel önbelleği, (ii) ana makine soneki/yol ön ekiyle URL ifadelerinin SHA256 karma ön ekleriyle biçimlendirilmiş bir dizi tehdit listesi. Genel olarak, istemci belirli bir URL'yi kontrol etmek istediğinde Global Önbellek kullanılarak yerel bir kontrol gerçekleştirilir. Bu kontrol geçerse yerel tehdit listeleri kontrolü gerçekleştirilir. Aksi takdirde istemci, aşağıda ayrıntılı olarak açıklandığı gibi gerçek zamanlı karma oluşturma kontrolüne devam eder.
İstemci, yerel veritabanının yanı sıra yerel bir önbelleğe de sahiptir. Bu tür bir yerel önbelleğin kalıcı depolama alanında olması gerekmez ve bellek baskısı durumunda temizlenebilir.
İşlemin ayrıntılı açıklamasını aşağıda bulabilirsiniz.
Yerel Liste Modu
İstemciler bu modda Google Safe Browsing v5'i kullanmayı seçtiğinde istemci davranışı, v5'in iyileştirilmiş API yüzeyini kullanması dışında v4 Update API'ye benzer. İstemciler, yerel veritabanlarında ana makine soneki/yol ön eki URL ifadelerinin SHA256 karma ön ekleri olarak biçimlendirilmiş bir dizi tehdit listesi tutar. İstemci belirli bir URL'yi kontrol etmek istediğinde yerel tehdit listesi kullanılarak bir kontrol gerçekleştirilir. Müşteri, yalnızca eşleşme varsa kontrole devam etmek için sunucuya bağlanır.
Yukarıda olduğu gibi, istemci de kalıcı depolama alanında olması gerekmeyen yerel bir önbelleğe sahiptir.
Depolama alanı gerektirmeyen anlık mod
İstemciler, Google Güvenli Tarama v5'i depolama alanı olmayan gerçek zamanlı modda kullanmayı seçtiğinde istemcinin kalıcı yerel veritabanı tutması gerekmez. Ancak istemcinin yerel bir önbelleğe sahip olması beklenir. Bu tür bir yerel önbelleğin kalıcı depolama alanında olması gerekmez ve bellek baskısı durumunda temizlenebilir.
İstemci belirli bir URL'yi kontrol etmek istediğinde her zaman kontrol yapmak için sunucuya bağlanır. Bu mod, v4 Lookup API istemcilerinin uygulayabileceğine benzer.
Gerçek Zamanlı Mod'a kıyasla bu mod daha fazla ağ bant genişliği kullanabilir ancak istemcinin kalıcı yerel durumu koruması sakıncalıysa daha uygun olabilir.
Gerçek Zamanlı URL Kontrolü Prosedürü
Bu prosedür, istemci gerçek zamanlı çalışma modunu seçtiğinde kullanılır.
Bu prosedür tek bir URL (u
) alır ve SAFE
, UNSAFE
veya UNSURE
döndürür. SAFE
döndürülürse URL, Google Güvenli Tarama tarafından güvenli kabul edilir. UNSAFE
döndürülürse URL, Google Güvenli Tarama tarafından güvenli olmayabilir olarak değerlendirilir ve uygun işlemler yapılmalıdır (ör. son kullanıcıya uyarı gösterme, alınan bir mesajı spam klasörüne taşıma veya devam etmeden önce kullanıcıdan ek onay isteme). UNSURE
döndürülürse sonrasında aşağıdaki yerel kontrol prosedürü kullanılmalıdır.
expressions
,u
URL'si tarafından oluşturulan son ek/ön ek ifadelerinin listesi olsun.expressionHashes
, öğelerininexpressions
'teki her ifadenin SHA256 karma oluşturma işlemiyle elde edilen karmaları olduğu bir liste olsun.expressionHashes
'daki herhash
için:hash
, genel önbellekte bulunabilirseUNSURE
döndürülür.
expressionHashPrefixes
, öğelerininexpressionHashes
'daki her karma değerin ilk 4 baytı olduğu bir liste olsun.expressionHashPrefixes
'daki herexpressionHashPrefix
için:- Yerel önbellekte
expressionHashPrefix
değerini arayın. - Önbelleğe alınan giriş bulunursa:
- Geçerli zamanın, geçerlilik bitiş süresinden büyük olup olmadığını belirleme.
- Daha büyükse:
- Bulunan önbelleğe alınmış girişi yerel önbellekten kaldırın.
- Döngüye devam edin.
- Daha büyük değilse:
- Bu
expressionHashPrefix
,expressionHashPrefixes
hesabından kaldırılsın mı? expressionHashes
içindeki ilgili tam karma değerinin önbelleğe alınmış girişte bulunup bulunmadığını kontrol edin.- Bulunursa
UNSAFE
değerini döndürür. - Bulunmazsa döngüye devam edin.
- Bu
- Önbelleğe alınmış giriş bulunamazsa döngüye devam edin.
- Yerel önbellekte
- RPC SearchHashes'i veya hashes.search REST yöntemini kullanarak
expressionHashPrefixes
'ü Google Güvenli Tarama v5 sunucusuna gönderin. Bir hata oluştuysa (ağ hataları, HTTP hataları vb. dahil)UNSURE
döndürün. Aksi takdirde, yanıt, SB sunucusundan alınanresponse
olsun. Bu, tehdidin doğasını (sosyal mühendislik, kötü amaçlı yazılım vb.) tanımlayan bazı yardımcı bilgilerle birlikte tam karmaların bir listesi ve önbelleğin geçerlilik bitiş süresiexpiration
'dir. response
'daki herfullHash
için:fullHash
öğesiniexpiration
ile birlikte yerel önbelleğe ekleyin.
response
'daki herfullHash
için:isFound
,expressionHashes
içindefullHash
bulma sonucu olsun.isFound
yanlışsa döngüye devam edin.isFound
doğruysaUNSAFE
döndürülür.
- Dönüş
SAFE
.
Bu protokol, istemcinin expressionHashPrefixes
öğesini sunucuya ne zaman göndereceğini belirtse de kasıtlı olarak bu öğelerin nasıl gönderileceğini tam olarak belirtmez. Örneğin, istemcinin tüm expressionHashPrefixes
öğelerini tek bir istekle göndermesi kabul edilebilir. İstemcinin, expressionHashPrefixes
'teki her ön eki ayrı isteklerle (belki de paralel olarak) göndermesi de kabul edilebilir. Tek bir istekte gönderilen karma öneklerinin sayısı 30'u aşmadığı sürece istemcinin expressionHashPrefixes
'teki karma önekleriyle birlikte alakasız veya rastgele oluşturulmuş karma önekleri göndermesi de kabul edilir.
Yerel Tehdit Listesi URL Kontrol Prosedürü
Bu prosedür, istemci yerel liste çalışma modunu seçtiğinde kullanılır. Ayrıca, istemci yukarıdaki RealTimeCheck prosedürü UNSURE
değerini döndürdüğünde de kullanılır.
Bu prosedür tek bir URL (u
) alır ve SAFE
veya UNSAFE
döndürür.
expressions
,u
URL'si tarafından oluşturulan son ek/ön ek ifadelerinin listesi olsun.expressionHashes
, öğelerininexpressions
'teki her ifadenin SHA256 karma oluşturma işlemiyle elde edilen karmaları olduğu bir liste olsun.expressionHashPrefixes
, öğelerininexpressionHashes
'daki her karma değerin ilk 4 baytı olduğu bir liste olsun.expressionHashPrefixes
'daki herexpressionHashPrefix
için:- Yerel önbellekte
expressionHashPrefix
değerini arayın. - Önbelleğe alınan giriş bulunursa:
- Geçerli zamanın, geçerlilik bitiş süresinden büyük olup olmadığını belirleme.
- Daha büyükse:
- Bulunan önbelleğe alınmış girişi yerel önbellekten kaldırın.
- Döngüye devam edin.
- Daha büyük değilse:
- Bu
expressionHashPrefix
,expressionHashPrefixes
hesabından kaldırılsın mı? expressionHashes
içindeki ilgili tam karma değerinin önbelleğe alınmış girişte bulunup bulunmadığını kontrol edin.- Bulunursa
UNSAFE
değerini döndürür. - Bulunmazsa döngüye devam edin.
- Bu
- Önbelleğe alınmış giriş bulunamazsa döngüye devam edin.
- Yerel önbellekte
expressionHashPrefixes
'daki herexpressionHashPrefix
için:- Yerel tehdit listesi veritabanında
expressionHashPrefix
'yi arayın. expressionHashPrefix
yerel tehdit listesi veritabanında bulunamazsaexpressionHashPrefixes
'dan kaldırın.
- Yerel tehdit listesi veritabanında
- RPC SearchHashes'i veya hashes.search REST yöntemini kullanarak
expressionHashPrefixes
'ü Google Güvenli Tarama v5 sunucusuna gönderin. Bir hata oluştuysa (ağ hataları, HTTP hataları vb. dahil)SAFE
döndürün. Aksi takdirde, yanıt, SB sunucusundan alınanresponse
olsun. Bu, tehdidin doğasını (sosyal mühendislik, kötü amaçlı yazılım vb.) tanımlayan bazı yardımcı bilgilerle birlikte tam karmaların bir listesi ve önbelleğin geçerlilik bitiş süresiexpiration
'dir. response
'daki herfullHash
için:fullHash
öğesiniexpiration
ile birlikte yerel önbelleğe ekleyin.
response
'daki herfullHash
için:isFound
,expressionHashes
içindefullHash
bulma sonucu olsun.isFound
yanlışsa döngüye devam edin.isFound
doğruysaUNSAFE
döndürülür.
- Dönüş
SAFE
.
Yerel veritabanı olmadan gerçek zamanlı URL kontrol prosedürü
Bu prosedür, istemci depolama alanı içermeyen gerçek zamanlı çalışma modunu seçtiğinde kullanılır.
Bu prosedür tek bir URL (u
) alır ve SAFE
veya UNSAFE
döndürür.
expressions
,u
URL'si tarafından oluşturulan son ek/ön ek ifadelerinin listesi olsun.expressionHashes
, öğelerininexpressions
'teki her ifadenin SHA256 karma oluşturma işlemiyle elde edilen karmaları olduğu bir liste olsun.expressionHashPrefixes
, öğelerininexpressionHashes
'daki her karma değerin ilk 4 baytı olduğu bir liste olsun.expressionHashPrefixes
'daki herexpressionHashPrefix
için:- Yerel önbellekte
expressionHashPrefix
değerini arayın. - Önbelleğe alınan giriş bulunursa:
- Geçerli zamanın, geçerlilik bitiş süresinden büyük olup olmadığını belirleme.
- Daha büyükse:
- Bulunan önbelleğe alınmış girişi yerel önbellekten kaldırın.
- Döngüye devam edin.
- Daha büyük değilse:
- Bu
expressionHashPrefix
,expressionHashPrefixes
hesabından kaldırılsın mı? expressionHashes
içindeki ilgili tam karma değerinin önbelleğe alınmış girişte bulunup bulunmadığını kontrol edin.- Bulunursa
UNSAFE
değerini döndürür. - Bulunmazsa döngüye devam edin.
- Bu
- Önbelleğe alınmış giriş bulunamazsa döngüye devam edin.
- Yerel önbellekte
- RPC SearchHashes'i veya hashes.search REST yöntemini kullanarak
expressionHashPrefixes
'ü Google Güvenli Tarama v5 sunucusuna gönderin. Bir hata oluştuysa (ağ hataları, HTTP hataları vb. dahil)SAFE
döndürün. Aksi takdirde, yanıt, SB sunucusundan alınanresponse
olsun. Bu, tehdidin doğasını (sosyal mühendislik, kötü amaçlı yazılım vb.) tanımlayan bazı yardımcı bilgilerle birlikte tam karmaların bir listesi ve önbelleğin geçerlilik bitiş süresiexpiration
'dir. response
'daki herfullHash
için:fullHash
öğesiniexpiration
ile birlikte yerel önbelleğe ekleyin.
response
'daki herfullHash
için:isFound
,expressionHashes
içindefullHash
bulma sonucu olsun.isFound
yanlışsa döngüye devam edin.isFound
doğruysaUNSAFE
döndürülür.
- Dönüş
SAFE
.
Gerçek Zamanlı URL Kontrol Prosedürü'nde olduğu gibi bu prosedürde de karma ön eklerinin sunucuya nasıl gönderileceği tam olarak belirtilmez. Örneğin, istemcinin tüm expressionHashPrefixes
öğelerini tek bir istekle göndermesi kabul edilebilir. İstemcinin, expressionHashPrefixes
'teki her ön eki ayrı isteklerle (belki de paralel olarak) göndermesi de kabul edilebilir. Tek bir istekte gönderilen karma öneklerinin sayısı 30'u aşmadığı sürece istemcinin expressionHashPrefixes
'teki karma önekleriyle birlikte alakasız veya rastgele oluşturulmuş karma önekleri göndermesi de kabul edilir.
Örnek İstekler
Bu bölümde, Google Güvenli Tarama'ya erişmek için HTTP API'nin doğrudan kullanılmasıyla ilgili bazı örnekler verilmiştir. Kodlamayı ve kod çözmeyi uygun bir şekilde otomatik olarak ele alacağı için genellikle oluşturulmuş bir dil bağlaması kullanılması önerilir. Lütfen ilgili bağlama ait dokümanları inceleyin.
hashes.search yönteminin kullanıldığı örnek bir HTTP isteği:
GET https://safebrowsing.googleapis.com/v5/hashes:search?key=INSERT_YOUR_API_KEY_HERE&hashPrefixes=WwuJdQ
Yanıt gövdesi, kodunu çözebileceğiniz protokol arabelleği biçimli bir yüktür.
hashLists.batchGet yönteminin kullanıldığı örnek bir HTTP isteği aşağıda verilmiştir:
GET https://safebrowsing.googleapis.com/v5alpha1/hashLists:batchGet?key=INSERT_YOUR_API_KEY_HERE&names=se&names=mw-4b
Yanıt gövdesi, yine kodunu çözebileceğiniz protokol arabelleği biçimli bir yüktür.