{"id":40943279,"url":"https://github.com/stratosphereips/feel_project","last_synced_at":"2026-01-22T04:37:29.617Z","repository":{"id":89544342,"uuid":"509147494","full_name":"stratosphereips/feel_project","owner":"stratosphereips","description":"Code repository for FEEL project","archived":false,"fork":false,"pushed_at":"2025-01-14T16:37:47.000Z","size":7063,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-05T01:32:34.687Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratosphereips.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-30T16:06:27.000Z","updated_at":"2025-08-27T11:12:46.000Z","dependencies_parsed_at":"2023-11-24T17:25:15.063Z","dependency_job_id":"b3aa89c9-b628-459c-a0ce-55b19f021048","html_url":"https://github.com/stratosphereips/feel_project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stratosphereips/feel_project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Ffeel_project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Ffeel_project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Ffeel_project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Ffeel_project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratosphereips","download_url":"https://codeload.github.com/stratosphereips/feel_project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Ffeel_project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28654885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-01-22T04:37:28.813Z","updated_at":"2026-01-22T04:37:29.604Z","avatar_url":"https://github.com/stratosphereips.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FEEL project\n\nThe feel project aims at researching, developing and implementing a federated learning ML model for intrusion detection systems.\nIt was implemented by Pavel Janata's and published for his thesis \"Decentralized Federated Learning for Network Security\".\n\nThis project is funded by [NlNet NGI Zero Entrust](https://nlnet.nl/project/Iris-P2P/)\n\n# Goal\nDetect malicious SSL/TLS traffic using federated learning.\n\n# How it works\nWe use horizontal cross-device federated learning for detecting malicious activity in encrypted TLS network traffic. Cross-device in this context means, that the clients represent edge computers, monitoring and capturing their traffic. It is horizontal because the clients observe the same set of features, produced by different entities. \n\nThe federated approach allows to distributively train a model using the client’s observations, without having direct access to the data. This enables us to protect the privacy of the data, while still being able to learn from it. In addition, each client also benefits from cooperative training, as they use a global detection model that is averaged from all model updates sent by all the clients. The global model, therefore, had access to a larger and more diverse set of data coming from all clients, possibly leading to better performance and generalization, compared to a model trained only with each client's local data.\n\n\n# Docs\n\nFor more details about how it works you can check the docs at \nhttps://github.com/stratosphereips/StratosphereLinuxIPS/blob/develop/docs/feel_project.md\n\nAnd the thesis of Pavel Janata: [Decentralized Federated Learning for Network Security](https://dspace.cvut.cz/bitstream/handle/10467/107647/F3-DP-2023-Janata-Pavel-Master_Thesis_Pavel_Janata.pdf)\n\n# Docker setup \nYou can build a docker image for the anomaly detection experiment. \nTo build the image, simply run \n\n```bash\nmake build_anomaly_detection_docker\n```\n\nand to run it you can either set environmental variables:\n\n```bash\nmake run_client CLIENT_ID=1 DAY=1\n```\n\nor run it directly:\n\n```bash\ndocker run --network-host --volume \"$(pwd)/data/\":/data stratosphere/feel-ad client --client_id 1 --day 1 --ip_address 127.0.0.1\n```\n\nThis way you can also specify additional arguments such as `--port` or `--seed`\n\nTo run the server use: \n\n```bash\nmake run_server DAY=1\n```\n\nor directly \n```bash\ndocker run --network=host --volume \"$(pwd)/data/\":/data stratosphere/feel-ad server --day 1 --ip_address localhost --load 1 --num_fit_clients=10 --num_evaluate_clients=10\n```\n\n# Related projects\n\nThis project is now a submodule of [StratosphereLinuxIPS](https://github.com/stratosphereips/StratosphereLinuxIPS)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratosphereips%2Ffeel_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratosphereips%2Ffeel_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratosphereips%2Ffeel_project/lists"}