Migration From V4

Google Güvenli Tarama v5'in v4'e kıyasla (özellikle v4 Update API) önemli bir iyileştirmesi, verilerin güncelliği ve kapsamıdır. Koruma büyük ölçüde istemci tarafından yönetilen yerel veritabanına bağlı olduğundan, yerel veritabanı güncellemesinin gecikmesi ve boyutu, korumanın atlanmasına en çok katkıda bulunan faktördür. 4. sürümde, tehdit listelerinin en güncel sürümünü edinmek için tipik bir istemcinin 20 ila 50 dakika beklemesi gerekir. 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 bir süre yayında kalıyor. Analizlerimiz, kimlik avı korumasının eksikliğinin yaklaşık% 25-30'unun bu tür eski verilerden kaynaklandığını gösteriyor. Ayrıca bazı cihazlar, zaman içinde büyümeye devam eden Google Güvenli Tarama tehdit listelerinin tamamını yönetmek için gerekli donanıma sahip değildir.

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

Liste güncellemelerini dönüştürme

Listelerin tehdit türü, platform türü ve tehdit girişi türünden oluşan bir tuple ile 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, 5. sürümde kaldırılmıştır.

4. sürümde, listeleri indirmek için threatListUpdates.fetch yöntemi kullanılır. 5. sürümde hashLists.batchGet yöntemine geçilir.

İstekte 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 kullanın. Bu başlıkta istemci kimliğinin belirtilmesi için belirlenmiş bir biçim olmasa da orijinal istemci kimliğini ve istemci sürümünü boşluk veya eğik çizgi karakteriyle ayırarak eklemenizi öneririz.
  2. Her v4 ListUpdateRequest nesnesi için: * Yukarıdaki tabloda ilgili v5 liste adını bulun ve bu adı v5 isteğinde sağlayın.
    • threat_entry_type veya platform_type gibi gereksiz alanları kaldırın.
    • Sürüm 4'teki state alanı, sürüm 5'teki versions alanıyla doğrudan uyumludur. Sürüm 4'te state alanı kullanılarak sunucuya gönderilecek olan aynı bayt dizesi, sürüm 5'te versions alanı kullanılarak kolayca gönderilebilir.
    • Sürüm 4'teki kısıtlamalar için sürüm 5'te SizeConstraints adlı basitleştirilmiş bir sürüm kullanılır. region gibi ek alanlar bırakılmalıdır.

Yanıtta aşağıdaki değişiklikler yapılmalıdır:

  1. V4 enum ResponseType, partial_update adlı bir boole 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 istek göndermesi istenir. Bu durum yalnızca istemci, SizeConstraints içinde maksimum güncelleme boyutu için maksimum veritabanı boyutundan daha küçük bir kısıtlama belirttiğinde ortaya çıkar.
  3. 32 bit tam sayılar için Rice kod çözme algoritmasının ayarlanması gerekir. Aradaki fark, kodlanmış verilerin farklı bir büyüklük sırasıyla kodlanmış olmasıdır. Hem v4 hem de v5'te 32 bit karma önekleri alfabetik olarak sıralanır. Ancak v4'te bu ön ekler sıralanırken küçük endian olarak değerlendirilir. v5'te ise büyük endian olarak değerlendirilir. Bu, alfabetik 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. 4. sürümün Chromium uygulamasında bu tür bir örneği burada bulabilirsiniz. Bu tür sıralama kaldırılabilir.
  4. Rice kod çözme algoritmasının diğer karma uzunlukları için de uygulanması gerekir.

Karma Aramaları Dönüştürme

4. sürümde, tam karma oluşturma işlemlerini almak için fullHashes.find yöntemi kullanılır. 5. sürümdeki eşdeğer yöntem hashes.search yöntemidir.

İstekte aşağıdaki değişiklikler yapılmalıdır:

  1. Kodu, yalnızca tam olarak 4 bayt uzunluğunda karma önekleri 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 kullanın. Bu başlıkta istemci kimliğinin belirtilmesi için belirlenmiş bir biçim olmasa da orijinal istemci kimliğini ve istemci sürümünü boşluk 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ıtta aşağıdaki değişiklikler yapılmalıdır:

  1. minimum_wait_duration alanı kaldırıldı. İstemci, gerektiğinde her zaman yeni bir istek gönderebilir.
  2. v4 ThreatMatch nesnesi, FullHash nesnesine basitleştirildi.
  3. Önbelleğe alma işlemi, tek bir önbellek süresiyle basitleştirildi. Önbellekle etkileşime geçmeyle ilgili yukarıdaki prosedürlere bakın.