Skip to content

PhishDetector - Realtime detection of phishing sites using Machine Learning | NUST FYP 2023

License

Notifications You must be signed in to change notification settings

itxtalal/phishdetector-fyp

Repository files navigation


Logo

PhishDetector

Real-time Detection of phishing websites using ML

Explore the docs »

View Demo . Report Bug . Request Feature

Downloads Contributors Stargazers Issues License

Table Of Contents

About The Project

This project aims to develop a comprehensive solution for phishing site detection and protection. It includes the development of a browser extension, an admin dashboard, a demo marketing page, API endpoints, a machine learning model, and integration with cloud hosting services.

Features

  • Browser Extension: Developed using React and Typescript, the browser extension provides real-time protection against phishing attacks. It utilizes advanced machine learning algorithms to detect malicious URLs and alerts users.

  • Admin Dashboard: The admin dashboard, built with React and Typescript, offers analytics and management functionalities. It includes charts and data visualizations to provide insights into detected phishing sites.

  • Demo Marketing Page: A demo marketing page is developed to showcase the features of the anti-phishing tool. It provides information about the project and its capabilities.

  • API Endpoints: API endpoints are implemented using Python and FastAPI. They facilitate communication between the browser extension and the backend system, allowing for real-time reporting and retrieval of information on phishing sites.

  • Machine Learning Model: A machine learning model is developed to detect phishing sites. It leverages features such as URL structure, content, and metadata to accurately identify potential threats.

  • Cloud Integration: The project is integrated with cloud hosting services such as Google Cloud Platform (GCP) for hosting and scalability. Nginx is used for load balancing, ensuring efficient handling of a large number of requests.

Built With

This project was built using the following major frameworks:

  • React: A JavaScript library for building user interfaces.
  • Typescript: A typed superset of JavaScript that compiles to plain JavaScript.
  • FastAPI: A modern, fast (high-performance) web framework for building APIs with Python.
  • PyTorch: A popular machine learning library for building deep learning models.
  • Google Cloud Platform (GCP): A suite of cloud computing services for hosting and scaling applications.
  • Nginx: A web server and reverse proxy server for efficient load balancing.

These frameworks were chosen for their reliability, performance, and extensive community support, ensuring a robust and scalable solution for the project.

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

  • npm
npm install npm@latest -g

Installation

  1. Clone the repo
git clone https://github.com/itxtalal/phishdetector-fyp.git
  1. Install NPM packages
npm install
  1. Install NPM packages for the required module

For Example for browser extensions,

  1. Navigate to the frontend folder
cd frontend
  1. Build the files for your browser
npm run build:<browser>

replace <browser> with a name like chrome

  1. Load the files in the browser extension manually.

  2. Enjoy

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  • If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
  • Please make sure you check your spelling and grammar.
  • Create individual PR for each suggestion.
  • Please also read through the Code Of Conduct before posting your first idea as well.

Creating A Pull Request

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Authors

  • M Talal Jamil - Software Engineer - M Talal Jamil - Worked on Browser Extension
  • Hanif Ali - Software Engineer - Hanif Ali - Worked on ML and API endpoints
  • Fahad Ali - Software Engineer - Fahad Ali - Worked on Admin Dashboard