Receber por email
← Voltar para o catálogo

Mobile iOS Whitebox Audit

Use this skill when the user is auditing an iOS application — directory contains `.ipa`, `Info.plist`, `*.swift`, `*.m`, `*.mm`, or an `xcodeproj`. Also activates when the conversation mentions WKWebView, NSURLSession, Keychain, App Transport Security, or any `com.apple.*` / `bundleidentifier`-style iOS package name.

22estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add allsmog/vuln-scout

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/mobile-ios-whitebox-audit/svg)](https://www.skillteca.com.br/skills/mobile-ios-whitebox-audit)

Skills relacionadas

Ver todas de Segurança →

Alerta por categoria

Receba novas skills de Segurança toda segunda

1 email curto, só com as skills novas de Segurança. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Mobile iOS Whitebox Audit

When this skill applies

The user is reviewing an iOS target. Signals to look for:

  • The target directory has an Info.plist, .swift, .m, .mm, or .xcodeproj.
  • The conversation mentions WKWebView, NSURLSession, Keychain, ATS, KeychainAccess, ObjC runtime.
  • A previous run produced .claude/findings.json entries whose type starts with ios-*.

Triage anchors

| Type | What to verify | |---|---| | ios-ats-arbitrary-loads | The Info.plist has NSAllowsArbitraryLoads=true. Confirm whether any specific exempt domain is actually needed; otherwise this disables ATS for the entire app. | | ios-ats-partial-exemption | NSAllowsLocalNetworking / NSAllowsArbitraryLoadsForMedia widens trust. Inventory which hosts the app actually needs over HTTP. | | ios-keychain-accessible-always | kSecAttrAccessibleAlways / kSecAttrAccessibleAlwaysThisDeviceOnly lets locked-device attackers read the item. Switch to kSecAttrAccessibleWhenUnlockedThisDeviceOnly or kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly. | | ios-trust-all-ssl | URLSessionDelegate.urlSession(_:didReceive:completionHandler:) returns .useCredential, URLCredential(trust: serverTrust) without SecTrustEvaluate. Catastrophic — replace with explicit pinning. | | ios-uiwebview-deprecated | UIWebView is deprecated since iOS 12 and has known issues. Migrate to WKWebView. | | ios-webview-html-concat | loadHTMLString receives an interpolated/concatenated string. If any value originates from a network response or pasteboard, it renders attacker HTML/JS in the app origin. | | ios-webview-evaljs-concat | evaluateJavaScript builds the JS payload via Swift interpolation. Any escape from a string literal executes attacker JS in the WebView. |

Workflow: prefer /vuln-scout:mobile-audit

For iOS targets that include both source and bundle resources, point /vuln-scout:mobile-audit at the project root. The driver discovers */Info.plist and Swift/ObjC sources under src/, Sources/, or Application/.

If you have an extracted IPA, point the driver at the unzipped Payload folder. The Info.plist will be at Payload/AppName.app/Info.plist.

Cross-platform parallels

Many of the high-signal Android detectors have an iOS analog. When you see a chain on Android, consider whether the iOS app has the same one:

| Android | iOS analog | |---|---| | mobile-webview-js-injection | ios-webview-evaljs-concat | | mobile-nsc-narrow-pinning | ios-ats-partial-exemption, ios-trust-all-ssl | | mobile-shared-prefs-sensitive | ios-keychain-accessible-always, NSUserDefaults misuse | | mobile-insecure-tls | ios-trust-all-ssl |

See also [[mobile-android]] for the Android counterpart.

Compartilhar X LinkedIn