SDK
Mobil
Mobile Threat SDK

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.

PlatformPaketSürüm
Flutterlunixi_mobile_threat_sdk0.1.0
React Native@lunixi/mobile-threat-react-native0.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 · deny

step_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:

AlanZorunluAnlamı
merchantId · sessionIdevetKiracı ve oturum
subjectType · subjectIdevetNeyi değerlendiriyorsunuz (müşteri, cihaz…)
sdkVersionevetKöprü paketinin sürümü
traceId · customerId · paymentId · entryPointhayırKorelasyon 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:

AlanNe garanti eder
sessionBoundYalnız bu oturumda geçerli
deviceBoundYalnız bu cihazda geçerli
challengeBoundYalnız bu challenge için geçerli
bindingStrengthBağın gücü
expiresAtGeç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_surface

Tazelik

Telemetri eskiyebilir; durumu ayrıca döner:

fresh · aging · stale · degraded
⚠️

Bayat 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

MetotNe 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