Skip to content

sandeepsalwan1/PhishKill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PHISHKILL

Shield Your Inbox, Block the Bait!

MIT License last-commit repo-top-language repo-language-count


πŸ”— Table of Contents


πŸ“ Overview

PhishKill is an innovative tool designed to enhance email security by detecting and assessing phishing risks. Utilizing advanced AI technology, it analyzes email content for potential threats, providing users with a risk assessment and practical advice on handling suspicious emails. Ideal for individuals and organizations aiming to bolster their cybersecurity measures, PhishKill offers a user-friendly interface and robust protection against email-based threats.


πŸ‘Ύ Features

Feature Summary
βš™οΈ Architecture
  • Utilizes a web-based interface hosted on Heroku for real-time interaction and feedback.
  • Centralized configuration via tst for secure API key management.
  • Core processing handled by EmailPhishingScript/Main.py using the OpenAI GPT-3.5-turbo model.
πŸ”© Code Quality
  • Modular design with separate scripts for different functionalities within EmailPhishingScript.
  • Use of Python for backend processing and Flask for web application framework.
  • Consistent use of external libraries specified in requirements.txt files.
πŸ“„ Documentation
  • Documentation includes install, usage, and test commands primarily managed through pip.
  • Language distribution indicates primary use of .txt and .py files.
  • Documentation spread across various text files and inline comments in scripts.
πŸ”Œ Integrations
  • Integration with OpenAI's API for email content analysis.
  • Deployment on Heroku cloud platform via Procfile.
  • Utilizes Flask for web application management and routing.
🧩 Modularity
  • Codebase includes distinct components for handling email analysis, user interface, and API interactions.
  • Separate requirements.txt for main project and EmailPhishingScript directory.
  • Template-based approach for user interface in templates/index.html.
πŸ§ͺ Testing
  • Includes a specific script EmailPhishingScript/test.py for testing API connectivity and functionality.
  • Testing primarily focuses on integration with OpenAI services.
  • Use of Python's built-in testing capabilities.
⚑️ Performance
  • Performance optimizations likely focused on API response handling and data processing.
  • Asynchronous operations supported by libraries like aiohttp and anyio.
  • Efficient handling of text and email data formats for quick analysis.
πŸ›‘οΈ Security
  • Uses argon2-cffi for potentially managing secure authentication processes.
  • Secure API key storage and management via tst file.
  • Security assessments for emails include checking links and attachments for phishing threats.

πŸ“ Project Structure

└── PhishKill/
    β”œβ”€β”€ EmailPhishingScript
    β”‚   β”œβ”€β”€ Mail1.txt
    β”‚   β”œβ”€β”€ Mail2.txt
    β”‚   β”œβ”€β”€ Main.py
    β”‚   β”œβ”€β”€ Procfile
    β”‚   β”œβ”€β”€ app.py
    β”‚   β”œβ”€β”€ requirements.txt
    β”‚   β”œβ”€β”€ responseToMail1.txt
    β”‚   β”œβ”€β”€ responseToMail2.txt
    β”‚   β”œβ”€β”€ results.txt
    β”‚   β”œβ”€β”€ templates
    β”‚   └── test.py
    β”œβ”€β”€ LICENSE
    β”œβ”€β”€ README.md
    β”œβ”€β”€ WebsiteLink
    β”œβ”€β”€ requirements.txt
    └── tst

πŸ“‚ Project Index

PHISHKILL/
__root__
WebsiteLink - Provides a critical component of the project's web infrastructure by hosting the main interface on Heroku
- The link directs users to the primary access point where they can interact with the application's features, facilitating user engagement and functionality testing in a live environment
- This setup is essential for real-time user feedback and iterative development.
tst - Stores the API key for the OpenAI service, essential for authenticating and enabling API requests across the application
- It serves as a centralized configuration point, ensuring secure and efficient access to OpenAI functionalities required for the project's operations, such as generating text or processing data inputs
- This setup supports maintainability and scalability within the codebase architecture.
requirements.txt - The `requirements.txt` file serves a crucial role within the overall architecture of the codebase by specifying the exact versions of external libraries and dependencies required for the project
- This file ensures that the environment for the project is consistent and predictable, mitigating issues that may arise from version discrepancies among different development setups
- It lists various Python libraries along with their specific versions, including frameworks for asynchronous operations (`aiohttp`, `anyio`), security components (`argon2-cffi`), and other utilities that support the project's functionality
- By maintaining this file, the project upholds a stable development, testing, and production environment, facilitating seamless collaboration and deployment processes across different systems and platforms.
EmailPhishingScript
Main.py - Main.py serves as the core component of an email phishing detection system, utilizing OpenAI's GPT-3.5-turbo model
- It processes user-inputted email content, evaluates the likelihood of phishing, and records the AI-generated risk assessment and indicators to a results file for review.
results.txt - Analyzes and assesses the risk level of emails for phishing threats
- The script evaluates the content, subject, language, and tone of emails, along with checking for suspicious links or attachments
- It provides a risk probability and advises on caution, enhancing email security within the system.
responseToMail1.txt - Analyzes potential phishing threats in emails by evaluating risk factors such as urgent language, claims of unusual activity, requests for identity verification, and suspicious links
- The analysis concludes with a high likelihood of phishing, aiding in the identification and prevention of email-based security threats within the system.
Mail1.txt - Mail1.txt serves as a phishing simulation template within the EmailPhishingScript project, designed to educate users on recognizing fraudulent emails
- It mimics a security alert from a bank, instructing recipients to verify their account through a deceptive link, thereby highlighting common tactics used by cybercriminals to compromise personal information.
app.py - EmailPhishingScript/app.py serves as the core interface for a web application that assesses email content to determine phishing risks
- Utilizing the OpenAI API, it processes user-submitted emails, evaluates potential phishing indicators, and outputs risk assessments
- The application also records responses for further analysis.
responseToMail2.txt - EmailPhishingScript/responseToMail2.txt evaluates the security risk of a work-related email, assigning a low risk percentage
- It assesses the email's content, tone, sender's credentials, and absence of suspicious requests, concluding minimal phishing indicators
- Users are advised to verify sender details and exercise caution with links and attachments.
Procfile - Specifies the command that a Heroku-based application should execute to start the server, using Python to run the script named app.py
- This setup is crucial for deploying the web application component of the EmailPhishingScript project, ensuring it is accessible and operational on the Heroku cloud platform.
requirements.txt - Requirements.txt in the EmailPhishingScript directory specifies dependencies essential for the project's operation
- It includes Flask for web application framework, python-dotenv for environment variable management, and openai for integrating AI functionalities
- These dependencies ensure the software's compatibility and functionality within the broader codebase architecture.
test.py - EmailPhishingScript/test.py serves as a diagnostic tool within the broader codebase, verifying the operational status of the local development environment
- It utilizes the OpenAI API to execute a simple test interaction, ensuring that the API key is correctly sourced from the environment and that the OpenAI client is properly configured and responsive.
Mail2.txt - EmailPhishingScript/Mail2.txt serves as a simulated phishing email within the security training module
- It mimics a typical workplace communication about an upcoming meeting, complete with details like date, time, and location, crafted to test employee vigilance against phishing attempts in a controlled environment.
templates
index.html - Serves as the primary user interface for the Phish Kill application, providing a web-based platform where users can input and analyze email content for spam indicators
- It features navigation, spam checking functionality, and sections detailing the app's features, about us information, and contact form.

πŸš€ Getting Started

β˜‘οΈ Prerequisites

Before getting started with PhishKill, ensure your runtime environment meets the following requirements:

  • Programming Language: Error detecting primary_language: {'txt': 7, 'py': 3, 'html': 1}
  • Package Manager: Pip

βš™οΈ Installation

Install PhishKill using one of the following methods:

Build from source:

  1. Clone the PhishKill repository:
❯ git clone https://github.com/sandeepsalwan1/PhishKill
  1. Navigate to the project directory:
❯ cd PhishKill
  1. Install the project dependencies:

Using pip Β 

❯ echo 'INSERT-INSTALL-COMMAND-HERE'

πŸ€– Usage

Run PhishKill using the following command: Using pip Β 

❯ echo 'INSERT-RUN-COMMAND-HERE'

πŸ§ͺ Testing

Run the test suite using the following command: Using pip Β 

❯ echo 'INSERT-TEST-COMMAND-HERE'

πŸ“Œ Project Roadmap

  • Task 1: Create end-to-end app.
  • Task 2: More advanced algorithm detection.
  • Task 3: More userfriendly UI.

πŸ”° Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/sandeepsalwan1/PhishKill
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


πŸŽ— License

This project is released under the MIT License. For more details, please refer to the LICENSE file.


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •