Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 6.3.0 #41

Merged
merged 6 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,47 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

# [6.3.0] - 2024-09-25

- Android SDK version: 11.1.0
- iOS SDK version: 6.6.0

### Cordova

#### Changed

- Improved error messages when validation of the freeRASP configuration fails

### Android

#### Added

- Added the auditing of the internal execution for the future check optimization and overall security improvements.

#### Fixed

- Fixed native crashes (SEGFAULT errors) in `ifpip` method
- Fixed collision for command line tools (like ping) invoked without absolute path

#### Changed

- ❗️Breaking: Changed the way TalsecConfig is created, we introduced a Builder pattern to make the process more streamlined and readable
- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0
- Refactored fetching the list of installed applications for root and hook detection.

### iOS

#### Added

- [Dopamine](https://github.com/opa334/Dopamine) jailbreak detection.
- Enhanced and accelerated the data collection logic

#### Changed

- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0

## [6.2.1] - 2024-07-02

### Cordova
Expand Down
17 changes: 12 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

freeRASP for Cordova is a mobile in-app protection and security monitoring plugin. It aims to cover the main aspects of RASP (Runtime App Self Protection) and application shielding.

:loudspeaker: The official documentation has been moved to a new location. You can now find it [here](https://docs.talsec.app/freerasp). :loudspeaker:
:loudspeaker: The official documentation has been moved to a new location. You can now find it [here](https://docs.talsec.app/docs-and-articles-portal). :loudspeaker:

# Overview

Expand Down Expand Up @@ -45,22 +45,25 @@ Learn more about commercial features at [https://talsec.app](https://talsec.app)

Learn more about freemium freeRASP features at [GitHub main repository](https://github.com/talsec/Free-RASP-Community).

# :book: Discover Official Documentation
Visit the [GitBook page](https://docs.talsec.app/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.
# :book: Discover the Official freeRASP Documentation

Visit the [GitBook page](https://docs.talsec.app/freerasp) for comprehensive and up-to-date guides, tutorials, and technical documentation specifically for freeRASP. 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.

## :link: Integration Guide

For integrating freeRASP on the Cordova platform, be sure to follow all the steps in the [Integration Guide](https://docs.talsec.app/freerasp/integration). This guide provides detailed instructions to help you achieve a smooth and efficient integration.

Be sure to bookmark it and stay informed! :books: :sparkles:.

## :scroll: Reference to Legacy Documentation

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.
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-Cordova/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.

# :rocket: What's New and Changelog
Stay informed and make the most of freeRASP by checking out [What's New and Changelog](https://docs.talsec.app/freerasp/whats-new-and-changelog)! Here, you’ll discover the latest features, enhancements, and bug fixes we’ve implemented to improve your experience across all platforms, including Android, iOS, Flutter, React Native, Capacitor, and Cordova.

Stay informed and make the most of freeRASP by checking out [What's New and Changelog](https://docs.talsec.app/freerasp/whats-new-and-changelog)! Here, you’ll discover the latest features, enhancements, and bug fixes we’ve implemented to improve your experience across all platforms, including Android, iOS, Flutter, React Native, Capacitor, and Cordova.

Don’t miss out on any updates and explore the changelog to see how we’re continually making freeRASP better for you!

Expand All @@ -69,3 +72,7 @@ Don’t miss out on any updates and explore the changelog to see how we’re con
If you have any ideas for improvements, feel free to [raise an issue](https://github.com/talsec/Free-RASP-Cordova/issues) and mark it with an **enhancement** label. We track these enhancements using [GitHub Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) to keep tasks organized and connected to relevant issues or pull requests.

You can check out the project board [here](https://github.com/orgs/talsec/projects/2).

# :page_facing_up: License

This project is provided as freemium software, i.e. there is a fair usage policy that imposes some limitations on the free usage. The SDK software consists of open-source and binary parts, which is the property of Talsec. The open-source part is licensed under the MIT License - see the LICENSE file for details.
258 changes: 129 additions & 129 deletions hello/www/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,144 +23,144 @@
// See https://cordova.apache.org/docs/en/latest/cordova/events/events.html#deviceready
document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady () {
// Cordova is now initialized. Have fun!
console.log(`Running cordova-${cordova.platformId}@${cordova.version}`);
function onDeviceReady() {
// Cordova is now initialized. Have fun!
console.log(`Running cordova-${cordova.platformId}@${cordova.version}`);

const checks = {
appIntegrity: 'App Integrity',
privilegedAccess: 'Privileged Access',
debug: 'Debug',
hooks: 'Hooks',
passcode: 'Passcode',
simulator: 'Simulator',
secureHardwareNotAvailable: 'Secure Hardware Not Available',
systemVPN: 'System VPN',
deviceBinding: 'Device binding',
unofficialStore: 'Unofficial Store'
};
const checks = {
appIntegrity: 'App Integrity',
privilegedAccess: 'Privileged Access',
debug: 'Debug',
hooks: 'Hooks',
passcode: 'Passcode',
simulator: 'Simulator',
secureHardwareNotAvailable: 'Secure Hardware Not Available',
systemVPN: 'System VPN',
deviceBinding: 'Device binding',
unofficialStore: 'Unofficial Store',
};

if (cordova.platformId === 'ios') {
checks.deviceID = 'Device ID';
} else {
checks.obfuscationIssues = 'Obfuscation Issues';
checks.devMode = 'Developer Mode';
}
if (cordova.platformId === 'ios') {
checks.deviceID = 'Device ID';
} else {
checks.obfuscationIssues = 'Obfuscation Issues';
checks.devMode = 'Developer Mode';
}

Object.entries(checks).forEach(([check, msg]) => {
const newElem = Object.assign(document.createElement('div'), {
id: check,
innerHTML: `<p class="event received">${msg}</p>`
});
document.getElementById('parent').appendChild(newElem);
setDefaultThreatStyle(check);
Object.entries(checks).forEach(([check, msg]) => {
const newElem = Object.assign(document.createElement('div'), {
id: check,
innerHTML: `<p class="event received">${msg}</p>`,
});
document.getElementById('parent').appendChild(newElem);
setDefaultThreatStyle(check);
});

const config = {
androidConfig: {
packageName: 'com.example.helloapp',
certificateHashes: ['your_signing_certificate_hash_base64']
// supportedAlternativeStores: ['storeOne', 'storeTwo'],
},
iosConfig: {
appBundleIds: 'com.example.helloapp',
appTeamId: 'your_team_ID'
},
watcherMail: 'your_email_address@example.com',
isProd: true
};
const config = {
androidConfig: {
packageName: 'com.example.helloapp',
certificateHashes: ['AKoRuyLMM91E7lX/Zqp3u4jMmd0A7hH/Iqozu0TMVd0='],
// supportedAlternativeStores: ['storeOne', 'storeTwo'],
},
iosConfig: {
appBundleIds: 'com.example.helloapp',
appTeamId: 'your_team_ID',
},
watcherMail: 'your_email_address@example.com',
isProd: true,
};

const actions = {
// Android & iOS
privilegedAccess: () => {
console.log('privilegedAccess');
changeThreatStyle('privilegedAccess');
},
// Android & iOS
debug: () => {
console.log('debug');
changeThreatStyle('debug');
},
// Android & iOS
simulator: () => {
console.log('simulator');
changeThreatStyle('simulator');
},
// Android & iOS
appIntegrity: () => {
console.log('appIntegrity');
changeThreatStyle('appIntegrity');
},
// Android & iOS
unofficialStore: () => {
console.log('unofficialStore');
changeThreatStyle('unofficialStore');
},
// Android & iOS
hooks: () => {
console.log('hooks');
changeThreatStyle('hooks');
},
// Android & iOS
deviceBinding: () => {
console.log('deviceBinding');
changeThreatStyle('deviceBinding');
},
// Android & iOS
secureHardwareNotAvailable: () => {
console.log('secureHardwareNotAvailable');
changeThreatStyle('secureHardwareNotAvailable');
},
// Android & iOS
systemVPN: () => {
console.log('systemVPN');
changeThreatStyle('systemVPN');
},
// Android & iOS
passcode: () => {
console.log('passcode');
changeThreatStyle('passcode');
},
// iOS only
deviceID: () => {
console.log('deviceID');
changeThreatStyle('deviceID');
},
// Android only
overlay: () => {
console.log('overlay');
changeThreatStyle('overlay');
},
// Android only
obfuscationIssues: () => {
console.log('obfuscationIssues');
changeThreatStyle('obfuscationIssues');
},
// Android only
devMode: () => {
console.log('devMode');
changeThreatStyle('devMode');
}
};
const actions = {
// Android & iOS
privilegedAccess: () => {
console.log('privilegedAccess');
changeThreatStyle('privilegedAccess');
},
// Android & iOS
debug: () => {
console.log('debug');
changeThreatStyle('debug');
},
// Android & iOS
simulator: () => {
console.log('simulator');
changeThreatStyle('simulator');
},
// Android & iOS
appIntegrity: () => {
console.log('appIntegrity');
changeThreatStyle('appIntegrity');
},
// Android & iOS
unofficialStore: () => {
console.log('unofficialStore');
changeThreatStyle('unofficialStore');
},
// Android & iOS
hooks: () => {
console.log('hooks');
changeThreatStyle('hooks');
},
// Android & iOS
deviceBinding: () => {
console.log('deviceBinding');
changeThreatStyle('deviceBinding');
},
// Android & iOS
secureHardwareNotAvailable: () => {
console.log('secureHardwareNotAvailable');
changeThreatStyle('secureHardwareNotAvailable');
},
// Android & iOS
systemVPN: () => {
console.log('systemVPN');
changeThreatStyle('systemVPN');
},
// Android & iOS
passcode: () => {
console.log('passcode');
changeThreatStyle('passcode');
},
// iOS only
deviceID: () => {
console.log('deviceID');
changeThreatStyle('deviceID');
},
// Android only
overlay: () => {
console.log('overlay');
changeThreatStyle('overlay');
},
// Android only
obfuscationIssues: () => {
console.log('obfuscationIssues');
changeThreatStyle('obfuscationIssues');
},
// Android only
devMode: () => {
console.log('devMode');
changeThreatStyle('devMode');
},
};

talsec
.start(config, actions)
.then(() => {
console.log('Talsec initialized.');
})
.catch((error) => {
console.log('Error during Talsec initialization: ', error);
});
talsec
.start(config, actions)
.then(() => {
console.log('freeRASP initialized.');
})
.catch((error) => {
console.log('Error during freeRASP initialization: ', error);
});
}

function changeThreatStyle (threatType) {
document.getElementById(threatType).style.backgroundColor = 'red';
function changeThreatStyle(threatType) {
document.getElementById(threatType).style.backgroundColor = 'red';
}

function setDefaultThreatStyle (threatType) {
document.getElementById(threatType).style.backgroundColor = 'green';
document.getElementById(threatType).style.borderRadius = '4px';
document.getElementById(threatType).style.margin = '4px 10px';
document.getElementById(threatType).style.padding = '2px 0px';
document.getElementById(threatType).style.textAlign = 'center';
function setDefaultThreatStyle(threatType) {
document.getElementById(threatType).style.backgroundColor = 'green';
document.getElementById(threatType).style.borderRadius = '4px';
document.getElementById(threatType).style.margin = '4px 10px';
document.getElementById(threatType).style.padding = '2px 0px';
document.getElementById(threatType).style.textAlign = 'center';
}
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cordova-talsec-plugin-freerasp",
"version": "6.2.1",
"version": "6.3.0",
"description": "Cordova plugin for improving app security and threat monitoring on Android and iOS mobile devices.",
"cordova": {
"id": "cordova-talsec-plugin-freerasp",
Expand Down Expand Up @@ -73,6 +73,9 @@
]
}
},
"prettier": {
"singleQuote": true
},
"eslintIgnore": [
"node_modules/"
]
Expand Down
Loading
Loading