Your mobile app just integrated an advertising SDK promising better fill rates and higher eCPMs. Three months later, you discover it's using method swizzling to intercept user data and potentially siphon attribution revenue. Do you remove it immediately, quarantine it while you investigate, or implement runtime monitoring?
This scenario isn't hypothetical. Snyk disclosed a similar situation with the Mintegral SDK in August and October 2020—excessive data collection, click hijacking, and a backdoor allowing remote code execution on iOS. Mintegral SDK versions 5.5.1 and above contained malicious functionality leading to information leakage.
The decision you face when suspicious SDK behavior surfaces determines whether you protect user data and revenue or create new compliance exposure. Here's how to handle it.
Key Factors That Affect Your Choice
Observed behavior severity: What is the SDK doing? Method swizzling that intercepts pasteboard data or location services differs from swizzling that modifies network calls or executes remote code.
Regulatory scope: Does your app handle payment card data (PCI DSS), health information (HIPAA), or operate in California (CCPA)? The compliance implications of unauthorized data collection vary dramatically.
User base exposure: How many active installations contain this SDK version? A beta release with 500 users creates different risk than a production app with 2 million daily actives.
Attribution fraud indicators: Is the SDK manipulating click attribution to steal revenue from legitimate ad networks? This affects your business model, not just security posture.
Vendor responsiveness: When you reported the behavior, did the SDK vendor acknowledge it, deny it, or go silent? This signals whether remediation is possible.
Path A: Immediate Removal
Choose this path when:
The SDK executes remote code without user consent. Any backdoor functionality—like the remote code execution capability Snyk found in Mintegral—violates Requirement 6.4.3 of PCI DSS v4.0.1 if your app processes payments. You cannot authorize scripts loaded from external sources at runtime.
You detect attribution fraud affecting revenue. If the SDK hijacks clicks to redirect attribution away from legitimate networks, every day it runs costs you money. Pull it now, notify affected ad networks, and document the timeline for potential fraud claims.
The vendor denies malicious behavior despite evidence. When Snyk disclosed the backdoor in October 2020, vendor response mattered. If your SDK vendor dismisses your findings or refuses to provide technical details, you cannot trust future versions.
Compliance deadlines are imminent. If you are three weeks from a SOC 2 Type II audit and the SDK collects data outside your data flow diagrams, removal is faster than remediation and documentation.
Implementation steps:
- Create a feature flag to disable SDK initialization without requiring an app store release.
- Push a server-side config change to turn off the SDK for all users.
- Monitor crash rates and revenue metrics for 48 hours to identify dependencies.
- Submit an app update removing the SDK entirely.
- Document the incident timeline, discovery method, and removal decision for auditors.
Path B: Quarantine and Audit
Choose this path when:
The behavior is excessive but not immediately malicious. Method swizzling that collects device identifiers or network state might violate your privacy policy without constituting a backdoor. You need time to determine intent.
You have contractual obligations with the SDK vendor. Some advertising agreements include minimum integration periods or termination clauses. Legal review might require 30-60 days before you can remove the SDK without penalty.
The SDK provides critical functionality you cannot replace quickly. If this SDK handles video ad rendering and you have no alternative tested and ready, you need a transition period. Quarantine limits damage while you build a replacement.
You need evidence for legal action. If you suspect the SDK vendor violated your MSA or engaged in fraud, you need detailed logs and behavioral analysis before you remove the evidence.
Implementation steps:
- Implement runtime monitoring using a tool like Frida or Objection to observe all method calls the SDK makes.
- Create a proxy layer that intercepts SDK network requests and logs payloads.
- Review all swizzled methods to identify what data the SDK accesses.
- Compare observed behavior against the SDK's documented API and your integration contract.
- Set a 14-day audit deadline—if you cannot determine safety by then, default to Path A.
For method swizzling specifically: examine method_exchangeImplementations calls in the SDK binary. On iOS, use class_getInstanceMethod to identify which system frameworks the SDK targets. If it swizzles UIApplication methods, NSURLSession, or pasteboard access without clear advertising functionality, you have evidence of overreach.
Path C: Sandboxed Monitoring
Choose this path when:
You are evaluating a new SDK before production deployment. Never integrate an advertising SDK directly into your main app on the first release. Create a test harness that simulates your app environment but isolates SDK behavior.
You need to maintain service while investigating. For apps with millions of users, abrupt SDK removal can crater ad revenue. Sandboxing lets you monitor behavior in production while limiting blast radius.
Regulatory requirements demand ongoing third-party monitoring. ISO 27001 Control 5.22 requires monitoring of third-party service delivery. If your certification scope includes mobile apps, you need continuous SDK oversight regardless of initial trust.
Implementation steps:
- Wrap all SDK calls in a facade that logs parameters and return values.
- Implement a content security policy for any web views the SDK creates.
- Use iOS App Transport Security or Android Network Security Config to restrict SDK network access to documented endpoints only.
- Monitor system logs for unexpected permission requests (camera, microphone, location).
- Create alerts for any SDK method that calls
dlopen,NSClassFromString, orRuntime.getRuntime().exec()—these indicate dynamic code loading.
Summary Matrix
| Factor | Immediate Removal | Quarantine & Audit | Sandboxed Monitoring |
|---|---|---|---|
| Timeline | 0-48 hours | 14-30 days | Ongoing |
| Risk tolerance | Zero tolerance for active threats | Medium—can accept temporary exposure | High—willing to monitor known risks |
| Evidence needs | None—behavior is conclusive | Detailed logs for legal/compliance | Baseline for future comparison |
| Revenue impact | Accept short-term loss | Minimize disruption | Maintain full service |
| Compliance posture | Audit-ready immediately | Requires incident documentation | Requires continuous monitoring controls |
| Best for | Remote code execution, fraud | Unclear intent, contractual constraints | Pre-production testing, ongoing oversight |
When Snyk disclosed the Mintegral issues, apps that had implemented Path C monitoring detected the malicious versions immediately. Apps relying on vendor trust discovered the problems months later—if at all.
Your SDK vetting process should default to Path C for all new integrations, escalate to Path B when monitoring detects anomalies, and jump to Path A the moment you confirm malicious intent. The decision tree isn't about paranoia—it's about having a defined response before you need it.



