Mobile Threat SDK
Mobil uygulamanızdaki bir işlemin o an hangi cihazda gerçekleştiğini ölçer: cihaz jailbreak'li mi, emülatörde mi, ekranı biri uzaktan mı görüyor, uygulama yeniden paketlenmiş mi. Sonucu tipli bir karara çevirir.
İki köprü paketi vardır; ikisi de aynı yüzeyi sunar.
| Platform | Paket | Sürüm |
|---|---|---|
| Flutter | lunixi_mobile_threat_sdk | 0.1.0 |
| React Native | @lunixi/mobile-threat-react-native | 0.1.0 |
Köprü paketi ≠ toplayıcı. Dart/TypeScript katmanı orkestrasyon yapar; asıl tehdit ve duruş toplayıcıları native modüllerdedir (Android + iOS). Bu bilinçlidir — güvenlik ölçümü JavaScript katmanında yapılırsa o katmanı ele geçiren onu da atlatır.
Karar değerleri
allow · step_up · review · denystep_up, işlemi ek doğrulamaya yükseltmeniz gerektiği anlamına gelir — cihaz reddedilecek kadar kötü değil ama olduğu gibi geçirilecek kadar da temiz değil.
Temel akış
import { LunixiMobileThreat } from '@lunixi/mobile-threat-react-native';
// Telemetriyi toplayın ve tek çağrıda değerlendirin
const verdict = await LunixiMobileThreat.collectAndEvaluate(session);
if (verdict.status === 'deny') {
// işlemi durdurun
} else if (verdict.status === 'step_up') {
// ek doğrulama isteyin
}collectTelemetry ve evaluateMobileThreat'i ayrı ayrı da çağırabilirsiniz; collectAndEvaluate ikisini birleştiren kolaylıktır.
Oturum bağlamı
Değerlendirme bir oturum bağlamı ister:
| Alan | Zorunlu | Anlamı |
|---|---|---|
merchantId · sessionId | evet | Kiracı ve oturum |
subjectType · subjectId | evet | Neyi değerlendiriyorsunuz (müşteri, cihaz…) |
sdkVersion | evet | Köprü paketinin sürümü |
traceId · customerId · paymentId · entryPoint | hayır | Korelasyon ve bağlam |
Güvenilir işlem token'ı
Yüksek riskli bir işlemi (para transferi, alıcı ekleme) cihaza kriptografik olarak bağlamak için kullanılır.
const token = await LunixiMobileThreat.requestTrustedActionToken({
actionType: 'transfer',
sessionId,
challengeNonce,
amount: '250000',
currency: 'TRY',
beneficiaryHash,
});Dönen token'ın bağları açıkça görünür:
| Alan | Ne garanti eder |
|---|---|
sessionBound | Yalnız bu oturumda geçerli |
deviceBound | Yalnız bu cihazda geçerli |
challengeBound | Yalnız bu challenge için geçerli |
bindingStrength | Bağın gücü |
expiresAt | Geçerlilik sonu |
Token tek kullanımlıktır. Tüketim sonucu alreadyConsumed alanı taşır — aynı token ikinci kez sunulursa bunu görürsünüz. Tekrar saldırısını bu alanla yakalarsınız.
Tehdit aileleri
Toplanan sinyaller 17 aileye ayrılır:
jailbreak · emulator · frida · hook · clone · reset · mitm · repackaged · attestation_missing · attestation_stale · overlay · remote_control · social_engineering · beneficiary_abuse · integrity · network · policy
overlay, remote_control ve social_engineering ailelerinin varlığı kayda değer: bunlar cihazın bozulmuş olmasını değil, kullanıcının o an yönlendiriliyor olmasını hedefler — uzaktan erişim uygulamasıyla yürütülen dolandırıcılığın klasik deseni.
Sınıflandırma
Aileler tek bir yüzey sınıfına indirgenir:
trusted_surface · suspicious_surface · integrity_elevated · compromised_surfaceTazelik
Telemetri eskiyebilir; durumu ayrıca döner:
fresh · aging · stale · degradedBayat telemetri "temiz" demek değildir. stale ya da degraded gördüğünüzde bunu allow gibi işlemeyin — ölçümün ne kadar güncel olduğu, ölçümün kendisi kadar önemlidir.
Diğer yetenekler
| Metot | Ne yapar |
|---|---|
collectLocalSignals() | Sunucuya gitmeden yerel sinyalleri okur |
enableSecureJourneyMode(secureScreen) | Hassas ekranlarda ekran görüntüsü/kayıt korumasını açar |
emitTimelineEvent(...) | Kendi olayınızı zaman çizelgesine ekler |
collectPosTelemetry(...) · evaluatePosThreat(...) | POS cihazları için ayrı yüzey |
simulateMobileThreat(...) | Entegrasyonunuzu test etmek için senaryo simülasyonu |
fetchReplayDecision(...) · fetchTraceDecisions(...) | Geçmiş kararı geri okuma |
getPlatformDiagnostics() | Köprünün ve native modülün durumu |
Sunucu tarafı
SDK, gateway'in /api/v1/identity/mobile-threat/* uçlarına konuşur. Sunucu sözleşmesi, karar kayıtları ve panel tarafı için: Mobile Threat
Bilmeniz gerekenler
Karar istemcide verilmez. SDK kanıt üretir ve tipli bir verdict taşır; nihai karar sunucudadır. Tamamen ele geçirilmiş bir cihaz bile "temiz" sonucunu taklit edemez — çünkü sonucu üreten taraf o değil.
Native toplayıcılar olmadan köprü paketi tek başına anlamlı ölçüm yapmaz. Android ve iOS modüllerinin kurulu olduğundan emin olun; getPlatformDiagnostics() bunu doğrulamak içindir.
İlgili
- SDK Genel Bakış — web ve mobil ailelerin ortak modeli
- Mobile Threat — sunucu sözleşmesi ve karar kayıtları