A Simple Flutter app that lets users upload and check if an APK is safe to install or not.
View Demo»
Table of Contents
Before going with the project, lets understand what an APK is? It is an file format that android uses to install apps. In this modern world, many of us install new apps in our mobile to make life easier, but there are few apps that are malicious which may steal the user's precious information or frustates the user by displaying many advertisements and slowing down the network, etc.
There are several types of malwares like:
- VORMS: replicate themselves on the system and slows down network
- SPYWARE: collects information and sends to hacker
- TROJAN HORSE : does malicious operations under the appearance of a desired operation
- RANSOMWARE: a type of encryption grasps control of system, The user has to pay a ransom (price) to the criminals to retrieve data
- KEYLOGGERS: records everything the user types on his/her computer
- ROOTKITS: modifies OS files to create backdoors,... and the list goes on...
This project helps the users as a defense system that works to detect malware samples before they have a chance to infect a vivtim's mobile.
Flask API: https://github.com/naveenvarma600/MalwareAPK
Keras Model: https://github.com/naveenvarma600/DL-model-for-Malicious-APK
This section lists the major frameworks/libraries used to bootstrap this project.
Below are the instructions on how to run the app.
- Clone the mentioned repo which consists of Flask API. (https://github.com/naveenvarma600/MalwareAPK)
git clone https://github.com/naveenvarma600/MalwareAPK
- Host the Flask API on heroku or any other cloud service
- Clone the current repository and then do the changes accordingly as mentioned below
git clone https://github.com/naveenvarma600/AndroShield.git
- In the Malicious_android_app\lib\start_screen.dart file , replace your hosted FLASK API url.
Uri.parse('Your API URL here'));
- Finally run the Malicious_android_app\main.dart file and you can see the output in the connected emulator.
- The Keras Model we are using now, does binary classification only, you can also work on multi-label classification that predicts different malware labels.
- We are currently using the permissions dataset, we can also predict the malware using network traffic data of APK file, please refer a href="#acknowledgments">Acknowledgement Section to know more about this.
- Try adding more front-end features like switching between light and dark themes, About Us and Contact Us pages.
- Multi-language Support
Always make sure to remove unnecessary dependencies.
Naveen Varma - @LinkedIn - naveenvarma600@gmail.com
Project Link: https://github.com/naveenvarma600/AndroShield
I have listed these resources which I found helpful and also included a few of my favorites to kick things off!
- in-depth FLask Guide
- Keras Sequential Model
- BackPropogation Algorithm
- Flutter's Scaffold class
- Reference to common problems while writing Flutter apps
- Deploying Python apps on Heroku
( Below resources help you to get started with the network-traffic data based malware detection )