mobile-network-security
Installation
SKILL.md
Mobile Network Security
What Is Broken and Why
Mobile apps fail network security when they allow cleartext HTTP traffic, disable TLS certificate validation, or implement certificate pinning incorrectly. Custom X509TrustManager implementations that accept all certificates (empty checkServerTrusted) are a common developer shortcut that makes the entire TLS layer useless. ATS exceptions in iOS Info.plist or Android Network Security Configuration that allow arbitrary cleartext expose all traffic to MITM. Apps that call onReceivedSslError().proceed() in WebViewClient bypass all certificate errors. Certificate pinning without key backup pins causes production outages, so developers remove pinning — leaving no protection.
Key Signals
- Android:
android:networkSecurityConfigpointing to XML with<domain-config cleartextTrafficPermitted="true"> - Android:
android:usesCleartextTraffic="true"in manifest - iOS:
NSAllowsArbitraryLoads: truein Info.plist ATS section - Custom
X509TrustManagerwith emptycheckServerTrusted()method body HostnameVerifierreturningtruefor all hosts:ALLOW_ALL_HOSTNAME_VERIFIERSSLContext.init(null, arrayOf(trustAllManager), null)- WebViewClient
onReceivedSslErrorcallinghandler.proceed() - TLS 1.0/1.1 explicitly enabled via
SSLParameters.setProtocols() - No
pin-setin Network Security Configuration for sensitive domains - iOS
NSURLSessionDelegatereturning no error for invalid certificates URLSession.sharedwith no custom delegate (no pinning) for high-value endpoints