Migration From V4

Google Güvenli Tarama v5'in v4'e (özellikle v4 Güncelleme API'si) kıyasla önemli bir iyileştirmesi, verilerin güncelliği ve kapsamıdır. Koruma büyük ölçüde istemci tarafından tutulan yerel veritabanına bağlı olduğundan, yerel veritabanı güncellemesinin gecikmesi ve boyutu, korumanın kaçırılmasının temel nedenidir. v4'te, istemcinin tehdit listelerinin en güncel sürümünü alması genellikle 20 ila 50 dakika sürer. Maalesef kimlik avı saldırıları hızla yayılıyor. 2021 itibarıyla, saldırı gerçekleştiren sitelerin% 60'ı 10 dakikadan kısa süre içinde yayılıyor. Analizimiz, eksik kimlik avı korumasının yaklaşık% 25-30'unun bu tür veri eskimesinden kaynaklandığını gösteriyor. Ayrıca, bazı cihazlar Google Güvenli Tarama tehdit listelerinin tamamını yönetebilecek donanıma sahip değildir. Bu listeler zaman içinde büyümeye devam etmektedir.

Şu anda v4 Update API'yi kullanıyorsanız yerel veritabanını sıfırlamanız veya silmeniz gerekmeden v4'ten v5'e sorunsuz bir şekilde geçiş yapabilirsiniz. Bu bölümde, bu işlemin nasıl yapılacağı açıklanmaktadır.

Dönüştürme Listesi Güncellemeleri

Listelerin tehdit türü, platform türü ve tehdit girişi türü üçlüsüyle tanımlandığı V4'ten farklı olarak, V5'te listeler yalnızca adla tanımlanır. Bu, birden fazla v5 listesinin aynı tehdit türünü paylaşabileceği durumlarda esneklik sağlar. Platform türleri ve tehdit girişi türleri v5'te kaldırıldı.

v4'te listeleri indirmek için threatListUpdates.fetch yöntemi kullanılır. V5'te hashLists.batchGet yöntemine geçilir.

İstek üzerinde aşağıdaki değişiklikler yapılmalıdır:

  1. v4 ClientInfo nesnesini tamamen kaldırın. İstemcinin kimliğini özel bir alan kullanarak sağlamak yerine, iyi bilinen User-Agent üst bilgisini kullanmanız yeterlidir. Bu başlıkta istemci tanımlamasının sağlanması için belirlenmiş bir biçim olmasa da orijinal istemci kimliğini ve istemci sürümünü boşluk karakteri veya eğik çizgi karakteriyle ayırarak eklemenizi öneririz.
  2. Her v4 ListUpdateRequest nesnesi için:
    • Kullanılabilir listelerden ilgili v5 liste adını bulun ve bu adı v5 isteğinde belirtin.
    • threat_entry_type veya platform_type gibi gereksiz alanları kaldırın.
    • V4'teki state alanı, V5'teki versions alanı ile doğrudan uyumludur. v4'te state alanı kullanılarak sunucuya gönderilen aynı bayt dizesi, v5'te versions alanı kullanılarak kolayca gönderilebilir.
    • V5, v4 kısıtlamaları için SizeConstraints adlı basitleştirilmiş bir sürümü kullanır. region gibi ek alanlar bırakılmalıdır.

Yanıt aşağıdaki şekilde değiştirilmelidir:

  1. V4 enum ResponseType, partial_update adlı bir boolean alanıyla değiştirilir.
  2. minimum_wait_duration alanı artık sıfır olabilir veya atlanabilir. Bu durumda, istemciden hemen başka bir istekte bulunması istenir. Bu durum yalnızca istemci, SizeConstraints içinde maksimum veritabanı boyutundan daha küçük bir maksimum güncelleme boyutu kısıtlaması belirttiğinde meydana gelir.
  3. 32 bit tam sayılar için Rice kod çözme algoritmasının ayarlanması gerekir. Aradaki fark, kodlanmış verilerin farklı bir endianness ile kodlanmış olmasıdır. Hem v4 hem de v5'te 32 bit karma önekleri sözlük sırasına göre sıralanır. Ancak v4'te bu önekler sıralandığında little endian olarak kabul edilirken v5'te sıralandığında big endian olarak kabul edilir. Bu, sözlükbilimsel sıralama, büyük endian ile sayısal sıralamayla aynı olduğundan istemcinin herhangi bir sıralama yapması gerekmediği anlamına gelir. v4'ün Chromium uygulamasında bu tür bir örneği burada bulabilirsiniz. Bu tür sıralamalar kaldırılabilir.
  4. Rice kod çözme algoritması, diğer karma uzunlukları için de uygulanmalıdır.

Karma Arama Dönüştürme

v4'te tam karma oluşturmak için fullHashes.find yöntemi kullanılırdı. v5'teki eşdeğer yöntem the hashes.search method'dur.

İstek üzerinde aşağıdaki değişiklikler yapılmalıdır:

  1. Kodu, yalnızca tam olarak 4 bayt uzunluğunda olan karma öneklerini gönderecek şekilde yapılandırın.
  2. v4 ClientInfo nesnelerini tamamen kaldırın. İstemcinin kimliğini özel bir alan kullanarak sağlamak yerine, iyi bilinen User-Agent üst bilgisini kullanmanız yeterlidir. Bu başlıkta istemci tanımlamasının sağlanması için belirlenmiş bir biçim olmasa da orijinal istemci kimliğini ve istemci sürümünü boşluk karakteri veya eğik çizgi karakteriyle ayırarak eklemenizi öneririz.
  3. client_states alanını kaldırın. Artık gerekli değil.
  4. Artık threat_types ve benzer alanları eklemeniz gerekmez.

Yanıt aşağıdaki şekilde değiştirilmelidir:

  1. minimum_wait_duration alanı kaldırıldı. İstemci, gerektiğinde her zaman yeni bir istek gönderebilir.
  2. v4 ThreatMatch nesnesi, FullHash nesnesi olarak basitleştirildi.
  3. Önbelleğe alma işlemi tek bir önbellek süresiyle basitleştirildi. Önbellekle etkileşim kurma prosedürlerini yukarıda bulabilirsiniz.