πŸš€ 8.9 Released! β†’ ⚑️ New Node-API Engine Preview, πŸ“² ns widget ios, πŸ’… Tailwind v4 and more...
Read Announcement

View on GitHub

@nativescript/ios-security ​

Contents ​

Intro ​

πŸ”’ IOSSecuritySuite for NativeScript.

🌏 iOS Security Suite is an advanced and easy-to-use platform security & anti-tampering library. If you are developing for iOS and you want to protect your app according to the OWASP MASVS standard, chapter v8, then this library could save you a lot of time. πŸš€ What ISS detects:

  • Jailbreak (even the iOS 11+ with brand new indicators! πŸ”₯)
  • Attached debugger πŸ‘¨πŸ»β€πŸš€
  • If an app was run in an emulator πŸ‘½
  • Common reverse engineering tools running on the device πŸ”­

Installation ​

To install the plugin, run the following command in your app's root folder:

cli
npm install @nativescript/ios-security

Prerequisites ​

Specify the URLs to be queried ​

In the jailbreak detection module, there is a check that uses the canOpenURL(_πŸ˜ƒ method and it requires specifying the URLs that will be queried.

Specify those URLs in the App_Resources/iOS/Info.plist file as follows:

xml
<key>LSApplicationQueriesSchemes</key>
<array>
 <string>cydia</string>
 <string>undecimus</string>
 <string>sileo</string>
 <string>zbra</string>
 <string>filza</string>
 <string>activator</string>
</array>

Use @nativescript/ios-security ​

The following sections describe how to use @nativescript/ios-security.

Detect jailbreaking ​

For a simple check of whether the device is jailbroken, use the amIJailbroken() method.

ts
constisJailBroken:boolean= IOSSecurity.amIJailbroken()
if (isJailBroken) {
 console.log('This device is jailbroken')
} else {
 console.log('This device is not jailbroken')
}

Detect bebugger attachment ​

To detect if a debugger is attached to the app, use the amIDebugged() method.

ts
constamIDebugged:boolean= IOSSecurity.amIDebugged()

Prevent debugger attachment ​

To prevent the debugger from being attached to the app, call the denyDebugger() method.

ts
IOSSecurity.denyDebugger()

Emulator detection ​

To detect if the app is being run on an emulator, call the amIRunInEmulator() method.

ts
construnInEmulator:boolean= IOSSecurity.amIRunInEmulator()

Detect the use of reverse engineering tools ​

To detect if a common reverse engineering tool is being used on the app, call the amIReverseEngineered() method.

ts
constamIReverseEngineered:boolean= IOSSecurity.amIReverseEngineered()

System proxy detection ​

To detect if the user is using a proxy, call the amIProxied() method.

ts
constamIProxied:boolean= IOSSecurity.amIProxied()

Runtime Hooks Detection ​

To detect if a hook is placed in the application's code, call the amIRuntimeHookedWithDyldWhiteListDetectionClassSelectorIsClassMethod() method.

ts
let amIRuntimeHooked:boolean= IOSSecurity.amIRuntimeHookedWithDyldWhiteListDetectionClassSelectorIsClassMethod(dyldWhiteList: NSArray<string>| string[], detectionClass: typeof NSObject, selector: string, isClassMethod: boolean)

App tampering detection ​

To detect if an app has been tampered with, call the amITampered() method.

ts
let amITampered:NSArray<any> = IOSSecurity.amITampered(checks: NSArray<any>| any[])

License ​

Apache License Version 2.0

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /