{"id":25239703,"url":"https://github.com/ashr-exe/phishnet-fl","last_synced_at":"2026-04-28T13:38:33.298Z","repository":{"id":275646943,"uuid":"926741933","full_name":"ashr-exe/PhishNet-FL","owner":"ashr-exe","description":"PhishNet-FL is a federated learning system using Flower and TensorFlow to train phishing detection models across distributed clients while preserving data privacy. It leverages UCI’s Phishing Websites Dataset, neural networks, and federated aggregation for decentralized training.","archived":false,"fork":false,"pushed_at":"2025-02-03T19:36:20.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T11:06:43.389Z","etag":null,"topics":["federated-learning","flower","phishing-detection","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashr-exe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-03T19:29:24.000Z","updated_at":"2025-02-05T10:39:22.000Z","dependencies_parsed_at":"2025-02-03T20:41:30.112Z","dependency_job_id":null,"html_url":"https://github.com/ashr-exe/PhishNet-FL","commit_stats":null,"previous_names":["ashr-exe/phishnet-fl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ashr-exe/PhishNet-FL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashr-exe%2FPhishNet-FL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashr-exe%2FPhishNet-FL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashr-exe%2FPhishNet-FL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashr-exe%2FPhishNet-FL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashr-exe","download_url":"https://codeload.github.com/ashr-exe/PhishNet-FL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashr-exe%2FPhishNet-FL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261110613,"owners_count":23111064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["federated-learning","flower","phishing-detection","tensorflow"],"created_at":"2025-02-11T18:59:55.970Z","updated_at":"2026-04-28T13:38:33.225Z","avatar_url":"https://github.com/ashr-exe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **PhishNet-FL: Federated Learning for Phishing Detection**  \n\nPhishNet-FL is a federated learning system designed to detect phishing websites while preserving user data privacy. Using **Flower** for federated learning and **TensorFlow** for deep learning, PhishNet-FL enables multiple clients to collaboratively train a phishing detection model without sharing raw data.  \n\nThis approach enhances security by distributing the learning process while still benefiting from shared knowledge.  \n\n## **🚀 Features**  \n✔ **Federated Learning (FL):** Clients train locally and only share model updates, ensuring data privacy.  \n✔ **Phishing Detection Model:** A neural network trained on the UCI Phishing Websites Dataset.  \n✔ **Decentralized Training:** No need to centralize sensitive data, reducing security risks.  \n✔ **Scalable Architecture:** Supports multiple clients communicating with a central federated server.  \n✔ **Easy Deployment:** Simple client-server setup with minimal dependencies.  \n\n---\n\n## **📂 Repository Structure**  \n```\n/PhishNet-FL\n│── server.py          # Federated learning server\n│── client.py          # Federated learning client\n│── README.txt         # Project documentation\n│── requirements.txt   # Dependencies\n│── .gitignore         # Ignore unnecessary files\n```\n\n---\n\n## **⚡ Installation**  \n\nBefore running the project, install the required dependencies:  \n```bash\npip install -r requirements.txt\n```\n\n---\n\n## **🖥 Running the Server**  \n\nThe **server** manages the federated learning process by coordinating clients and aggregating their updates.  \n\n```bash\npython server.py\n```\n\nYou should see output confirming the server is running and waiting for clients to connect.  \n\n---\n\n## **👨‍💻 Running Clients**  \n\nEach client trains the phishing detection model on its local dataset and communicates updates to the server.  \n\n```bash\npython client.py \u003cclient_id\u003e \u003ctotal_clients\u003e \u003cserver_ip\u003e\n```\n- `\u003cclient_id\u003e` → Unique ID for the client (e.g., 0, 1, 2...)  \n- `\u003ctotal_clients\u003e` → Total number of clients participating in training  \n- `\u003cserver_ip\u003e` → IP address of the federated learning server  \n\nFor example, if you have 3 clients and your server is running on **192.168.1.10**, start each client as follows:  \n\n```bash\npython client.py 0 3 192.168.1.10\npython client.py 1 3 192.168.1.10\npython client.py 2 3 192.168.1.10\n```\n\n---\n\n## **🧪 Model Architecture**  \n\nThe phishing detection model is a deep neural network built using TensorFlow:  \n\n- **Input Layer:** 30 features (preprocessed phishing website attributes)  \n- **Hidden Layers:**  \n  - Dense (64 neurons, ReLU activation)  \n  - Dropout (20%)  \n  - Dense (32 neurons, ReLU activation)  \n  - Dropout (20%)  \n  - Dense (16 neurons, ReLU activation)  \n- **Output Layer:** 1 neuron (Sigmoid activation for binary classification)  \n\n---\n\n## **📊 How Federated Learning Works in PhishNet-FL**  \n\n1️⃣ **Server Initialization:** The federated server starts and waits for clients to connect.  \n2️⃣ **Client Training:** Each client trains a local model on its dataset without sharing raw data.  \n3️⃣ **Model Updates:** Clients send model updates (weights) to the server instead of raw data.  \n4️⃣ **Federated Aggregation:** The server averages the received model updates and improves the global model.  \n5️⃣ **Global Model Distribution:** The updated global model is sent back to clients for the next training round.  \n6️⃣ **Repeat:** The process repeats for multiple rounds until the model converges.  \n\nThis ensures privacy-preserving, decentralized machine learning across multiple devices.  \n\n---\n\n## **📌 Dependencies**  \n\n- `flwr` (Flower for federated learning)  \n- `tensorflow` (Deep learning framework)  \n- `scikit-learn` (Data preprocessing and evaluation)  \n- `ucimlrepo` (Dataset retrieval)  \n- `numpy` (Numerical computations)  \n\n---\n\n## **📚 Future Improvements**  \n🔹 Support for additional datasets and real-time phishing detection.  \n🔹 Advanced privacy-preserving techniques like differential privacy.  \n🔹 More efficient aggregation methods for improved performance.  \n\n---\n\n## **📬 Contact \u0026 Contribution**  \n\n💡 Found a bug? Have a feature request? Feel free to open an issue or contribute!  \n📧 Reach out if you have any questions or need help setting up PhishNet-FL.  \n\nHappy training! 🚀🔐  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashr-exe%2Fphishnet-fl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashr-exe%2Fphishnet-fl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashr-exe%2Fphishnet-fl/lists"}