Skip to content

Commit 271fe5c

Browse files
authored
Merge pull request #19 from martinzigrai/readme-edit
Readme edit
2 parents 5c6ac35 + bf4b084 commit 271fe5c

File tree

1 file changed

+31
-280
lines changed

1 file changed

+31
-280
lines changed

README.md

Lines changed: 31 additions & 280 deletions
Original file line numberDiff line numberDiff line change
@@ -9,303 +9,54 @@
99

1010
# freeRASP for iOS
1111

12-
FreeRASP for iOS is a lightweight and easy-to-use mobile app protection and security monitoring SDK. It is designed to combat reverse engineering, tampering, or similar attack attempts. FreeRASP covers several attack vectors and enables you to set a response to each threat.
12+
freeRASP for iOS is a mobile in-app protection and security monitoring SDK. It aims to cover the main aspects of RASP (Runtime App Self Protection) and application shielding.
1313

14-
iOS version detects security issues such as:
15-
* App installed on a jailbroken device (e.g., unc0ver, check1rain, ...)
16-
* Runtime manipulations (e.g., Shadow or Frida) or running the app in the simulator
17-
* Tampering with the application
18-
* Attaching a debugger to the application
14+
:loudspeaker: The official documentation has been moved to a new location. You can now find it [here](https://talsec.gitbook.io/freerasp). :loudspeaker:
1915

20-
To learn more about freeRASP features, visit our main GitHub [repository](https://github.com/talsec/Free-RASP-Community).
16+
# Overview
2117

22-
# :notebook_with_decorative_cover: Table of contents
18+
The freeRASP is available for Flutter, Cordova, Android, and iOS developers. We encourage community contributions, investigations of attack cases, joint data research, and other activities aiming to make better app security and app safety for end-users.
2319

24-
- [Usage](#usage)
25-
- [Step 1: Prepare Talsec library](#step-1-prepare-talsec-library)
26-
- [Step 2: Setup the Configuration for your App](#step-2-setup-the-configuration-for-your-app)
27-
- [Debug vs Release version](#debug-vs-release-version)
28-
- [Step 3: Handle detected threats](#step-3-handle-detected-threats)
29-
- [Step 4: App Store User Data policy](#step-4-app-store-user-data-policy)
30-
- [Security Report](#security-report)
31-
- [Talsec Commercial Subscriptions](#money_with_wings-talsec-commercial-subscriptions)
32-
* [Plans comparison](#plans-comparison)
33-
- [About Us](#about-us)
34-
- [License](#license)
20+
freeRASP SDK is designed to combat
3521

36-
# Usage
37-
The installation guide will lead you through the whole implementation, such as adding the SDK to the dependencies, configuring it for your app, handling detected threats. It will also instruct you about required user data policies.
22+
* Reverse engineering attempts
23+
* Re-publishing or tampering with the apps
24+
* Running application in a compromised OS environment
25+
* Malware, fraudsters, and cybercriminal activities
3826

39-
## Step 1: Prepare Talsec library
27+
Key features are the detection and prevention of
4028

41-
- Copy folder `Talsec` into your Application folder
42-
- Drag & drop Talsec folder to your `.xcworkspace`
43-
- Add **TalsecRuntime** framework to **Target > Build Phases > Link Binary With Libraries**
44-
- In the **General > Frameworks, Libraries, and Embedded Content** choose **Embed & Sign**
29+
* Root/Jailbreak (e.g., unc0ver, check1rain)
30+
* Hooking framework (e.g., Frida, Shadow)
31+
* Untrusted installation method
32+
* App/Device (un)binding
4533

46-
Note: In case you are using Carthage, the zipped version of frameworks are included in the Releases.
34+
Additional freeRASP features include low latency, easy integration and a weekly [Security Report](https://talsec.gitbook.io/freerasp/security-report) containing detailed information about detected incidents and potential threats, summarizing the state of your app security.
4735

48-
## Step 2: Setup the Configuration for your App
36+
The commercial version provides a top-notch protection level, extra features, support and maintenance. One of the most valued commercial features is AppiCrypt® - App Integrity Cryptogram.
4937

50-
- In the `AppDelegate` import `TalsecRuntime` and add the following code (e.g., in the `didFinishLaunchingWithOptions` method.:
51-
```swift
52-
let config = TalsecConfig(appBundleIds: ["YOUR_APP_BUNDLE_ID"], appTeamId: "YOUR TEAM ID", watcherMailAddress: "WATCHER EMAIL ADDRESS", isProd: true)
38+
It allows easy to implement API protection and App Integrity verification on the backend to prevent API abuse:
5339

54-
Talsec.start(config: config)
55-
```
56-
The value of watcherMail is automatically used as the target address for your security reports. Mail has a strict form `'[email protected]'`.
40+
* Bruteforce attacks
41+
* Botnets
42+
* Session-hijacking
43+
* DDoS
5744

45+
It is a unified solution that works across all mobile platforms without dependency on external web services (i.e., without extra latency, an additional point of failure, and maintenance costs).
5846

59-
### Debug vs Release version
60-
The Debug version is used to not complicate the development process of the application, e.g. if you would implement killing of the application on the debugger callback. It disables some checks which won't be triggered during the development process:
61-
* Debugging
62-
* Tampering
63-
* Simulator
64-
* Unofficial store
65-
66-
If you want to use the Debug version, set the **isProd** parameter to **false**. Make sure, that you have the Release version in the production (i.e. **isProd** set to **true**)!
67-
68-
## Step 3: Handle detected threats
69-
Anywhere in your project, add the following code as an extension:
70-
```swift
71-
import TalsecRuntime
72-
73-
extension SecurityThreatCenter: SecurityThreatHandler {
74-
public func threatDetected(_ securityThreat: TalsecRuntime.SecurityThreat) {
75-
print("Found incident: \(securityThreat.rawValue)")
76-
}
77-
}
78-
```
79-
If you decide to kill the application from the callback, make sure that you use an appropriate way of killing it. Use the code above for handling these types of threats:
80-
```swift
81-
public enum SecurityThreat: String, Codable, CaseIterable, Equatable {
82-
/// app integrity / repackaging / tampering
83-
case signature = "appIntegrity"
84-
/// jailbreak
85-
case jailbreak = "privilegedAccess"
86-
/// debugger
87-
case debugger = "debug"
88-
/// runtime manipulation / hooks
89-
case runtimeManipulation = "hooks"
90-
/// disabled passcode
91-
case passcode
92-
/// passcode change
93-
case passcodeChange
94-
/// simulator
95-
case simulator
96-
/// missing Secure Enclave
97-
case missingSecureEnclave
98-
/// device binding
99-
case deviceChange = "device binding"
100-
/// changed deviceID
101-
case deviceID
102-
/// unofficial store or Xcode build
103-
case unofficialStore
104-
/// Detected system VPN
105-
case systemVPN
106-
}
107-
```
108-
109-
To learn more about these checks, visit our [wiki](https://github.com/talsec/Free-RASP-Community/wiki/Threat-detection) page that provides an explanation for them.
110-
111-
## Step 4: App Store User Data policy
112-
See the generic info about freeRASP data collection [here](https://github.com/talsec/Free-RASP-Community/tree/master#data-collection-processing-and-gdpr-compliance).
113-
114-
App Store App Privacy Details indicate that applications should inform users of the data that they are collecting and processing, and therefore Apple rejects the apps which do not comply with the policy. To comply with the policy, in the App Privacy section, it is important to check the following:
115-
* Identifiers -> Device ID -> App Functionality
116-
* It is an anonymous device identifier for the App vendor as per: https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor
117-
* Talsec Security SDK can not link the device identifier to the user
118-
* Diagnostics -> Performance Data -> App Functionality, Other Purposes, No for linking to the user
119-
* Diagnostics -> Other diagnostics data -> App Functionality, Other Purposes, No for linking to the user
120-
* Other data -> App Functionality, No for linking to the user
121-
* Security diagnostics data (such as jailbreak)
122-
123-
It is also essential to include the information in the privacy policy of the application, see the [Data Collection, Processing, and GDPR compliance](https://github.com/talsec/Free-RASP-Community/tree/master#data-collection-processing-and-gdpr-compliance).
124-
125-
After installation, please go through this [checklist](https://github.com/talsec/Free-RASP-Community/wiki/Installation-checklist) to avoid potential issues or solve them quickly.
126-
127-
And you're done 🎉! You can open an issue if you get stuck anywhere in the guide or show your appreciation by starring this repository ⭐!
128-
129-
# Security Report
130-
131-
The Security Report is a weekly summary describing the application's security state and characteristics of the devices it runs on in a practical and easy-to-understand way.
132-
133-
The report provides a quick overview of the security incidents, their dynamics, app integrity, and reverse engineering attempts. It contains info about the security of devices, such as OS version or the ratio of devices with screen locks and biometrics. Each visualization also comes with a concise explanation.
134-
135-
To receive Security Reports, fill out the _watcherMail_ field in [Talsec config](#step-2-setup-the-configuration-for-your-app).
136-
137-
![enter image description here](https://raw.githubusercontent.com/talsec/Free-RASP-Community/master/visuals/dashboard.png)
138-
139-
# :money_with_wings: Talsec Commercial Subscriptions
140-
Talsec offers commercial plans on top of freeRASP (Business RASP+):
141-
* No limits of Fair Usage Policy (100K App Downloads)
142-
* No Data Collection from your app
143-
* FinTech grade security, features and SLA (see more in [this post](https://github.com/orgs/talsec/discussions/5))
144-
* Protect APIs and risk scoring by AppiCrypt®
145-
146-
Learn more at [talsec.app](https://talsec.app).
147-
148-
Not to overlook, the one of the most valued commercial features is [AppiCrypt®](https://www.talsec.app/appicrypt) - App Integrity Cryptogram.
149-
150-
It allows easy-to-implement API protection and App Integrity verification on the backend to prevent API abuse:
151-
152-
- Bruteforce attacks
153-
- Botnets
154-
- API abuse by App impersonation
155-
- Session-hijacking
156-
- DDoS
47+
Learn more about commercial features at [https://talsec.app](https://talsec.app).
15748

158-
It is a unified solution that works across all mobile platforms without dependency on external web services (i.e., without extra latency, an additional point of failure, and maintenance costs).
49+
Learn more about freemium freeRASP features at [GitHub main repository](https://github.com/talsec/Free-RASP-Community).
15950

160-
Learn more about commercial features at [talsec.app](https://talsec.app).
16151

162-
**TIP:** You can try freeRASP and then upgrade easily to an enterprise service.
52+
# :rocket: Discover Official Documentation
53+
Visit the [GitBook page](https://talsec.gitbook.io/freerasp) for comprehensive and up-to-date guides, tutorials, and technical documentation. It serves as your go-to resource, offering everything from basic instructions to advanced tips and tricks to help you get the most out of the project.
16354

55+
## :link: Integration Guide
56+
For integrating freeRASP on the iOS platform, be sure to follow all the steps in the [Integration Guide](https://talsec.gitbook.io/freerasp/integration). This guide provides detailed instructions to help you achieve a smooth and efficient integration.
16457

165-
## Plans Comparison
166-
<i>
167-
freeRASP is freemium software i.e. there is a Fair Usage Policy (FUP) that impose some limitations on the free usage. See the FUP section in the table below
168-
</i>
169-
<br/>
170-
<br/>
171-
<table>
172-
<thead>
173-
<tr>
174-
<th></th>
175-
<th>freeRASP</th>
176-
<th>Business RASP+</th>
177-
</tr>
178-
</thead>
179-
<tbody>
180-
<tr>
181-
<td colspan=5><strong>Runtime App Self Protection (RASP, app shielding)</strong></td>
182-
</tr>
183-
<tr>
184-
<td>Advanced root/jailbreak protections (including Magisk)</td>
185-
<td>basic</td>
186-
<td>advanced</td>
187-
</tr>
188-
<tr>
189-
<td>Runtime reverse engineering controls
190-
<ul>
191-
<li>Debugger</li>
192-
<li>Emulator / Simulator</li>
193-
<li>Hooking and reversing frameworks (e.g. Frida, Magisk, XPosed, Cydia Substrate and more)</li>
194-
</ul>
195-
</td>
196-
<td>basic</td>
197-
<td>advanced</td>
198-
</tr>
199-
<tr>
200-
<td>Runtime integrity controls
201-
<ul>
202-
<li>Tampering protection</li>
203-
<li>Repackaging / Cloning protection</li>
204-
<li>Device binding protection</li>
205-
<li>Unofficial store detection</li>
206-
</ul>
207-
</td>
208-
<td>basic</td>
209-
<td>advanced</td>
210-
</tr>
211-
<tr>
212-
<td>Device OS security status check
213-
<ul>
214-
<li>HW security module control</li>
215-
<li>Screen lock control</li>
216-
<li>Google Play Services enabled/disabled</li>
217-
<li>Last security patch update</li>
218-
<li>System VPN control</li>
219-
<li>Developer mode control</li>
220-
</ul>
221-
</td>
222-
<td>yes</td>
223-
<td>yes</td>
224-
</tr>
225-
<tr>
226-
<td>UI protection
227-
<ul>
228-
<li>Overlay protection</li>
229-
<li>Accessibility services misuse protection</li>
230-
</ul>
231-
</td>
232-
<td>no</td>
233-
<td>yes</td>
234-
</tr>
235-
<tr>
236-
<td colspan=5><strong>Hardening suite</strong></td>
237-
</tr>
238-
<tr>
239-
<td>Security hardening suite
240-
<ul>
241-
<li>End-to-end encryption</li>
242-
<li>Strings protection (e.g. API keys)</li>
243-
<li>Dynamic TLS certificate pinning</li>
244-
</ul>
245-
</td>
246-
<td>no</td>
247-
<td>yes</td>
248-
</tr>
249-
<tr>
250-
<td colspan=5><strong>AppiCrypt® - App Integrity Cryptogram</strong></td>
251-
</tr>
252-
<tr>
253-
<td>API protection by mobile client integrity check, online risk scoring, online fraud prevention, client App integrity check. The cryptographic proof of app & device integrity.</td>
254-
<td>no</td>
255-
<td>yes</td>
256-
</tr>
257-
<tr>
258-
<td colspan=5><strong>Security events data collection, Auditing and Monitoring tools</strong></td>
259-
</tr>
260-
<tr>
261-
<td>Threat events data collection from SDK</td>
262-
<td>yes</td>
263-
<td>configurable</td>
264-
</tr>
265-
<tr>
266-
<td>AppSec regular email reporting service</td>
267-
<td>yes (up to 100k devices)</td>
268-
<td>yes</td>
269-
</tr>
270-
<tr>
271-
<td>UI portal for Logging, Data analytics and auditing</td>
272-
<td>no</td>
273-
<td>yes</td>
274-
</tr>
275-
<tr>
276-
<td colspan=5><strong>Support and Maintenance</strong></td>
277-
</tr>
278-
<tr>
279-
<td>SLA</td>
280-
<td>Not committed</td>
281-
<td>yes</td>
282-
</tr>
283-
<tr>
284-
<td>Maintenance updates</td>
285-
<td>Not committed</td>
286-
<td>yes</td>
287-
</tr>
288-
<tr>
289-
<td colspan=5><strong>Fair usage policy</strong></td>
290-
</tr>
291-
<tr>
292-
<td>Mentioning of the App name and logo in the marketing communications of Talsec (e.g. "Trusted by" section on the web).</td>
293-
<td>over 100k downloads</td>
294-
<td>no</td>
295-
</tr>
296-
<tr>
297-
<td>Threat signals data collection to Talsec database for processing and product improvement</td>
298-
<td>yes</td>
299-
<td>no</td>
300-
</tr>
301-
</tbody>
302-
</table>
58+
Be sure to bookmark it and stay informed! :books: :sparkles:.
30359

304-
For further comparison details (and planned features), follow our [discussion](https://github.com/talsec/Free-RASP-Community/discussions/5).
305-
306-
# About Us
307-
Talsec is an academic-based and community-driven mobile security company. We deliver in-App Protection and a User Safety suite for Fintechs. We aim to bridge the gaps between the user's perception of app safety and the strong security requirements of the financial industry.
60+
## Reference to Legacy Documentation
30861

309-
Talsec offers a wide range of security solutions, such as App and API protection SDK, Penetration testing, monitoring services, and the User Safety suite. You can check out offered products at [our web](https://www.talsec.app).
310-
# License
311-
This project is provided as freemium software i.e. there is a fair usage policy that impose some limitations on the free usage. The SDK software consists of opensource and binary part which is property of Talsec. The opensource part is licensed under the MIT License - see the [LICENSE](https://github.com/talsec/Free-RASP-Community/blob/master/LICENSE) file for details.
62+
If you have any suggestions for improvement or notice anything that could be clarified in the new GitBook documentation, please open an issue. Your feedback helps us maintain high-quality resources for all users. For information on older integration methods, you can refer to the [freeRASP wiki](https://github.com/talsec/Free-RASP-iOS/wiki), which includes comprehensive legacy details and guidance. Additionally, the old integration can be found when you checkout to a specific tag. Your input is invaluable in helping us improve our resources and provide even better support for your needs.

0 commit comments

Comments
 (0)