{"id":14972640,"url":"https://github.com/armourbird/csf","last_synced_at":"2025-10-26T19:31:39.854Z","repository":{"id":41934513,"uuid":"201126671","full_name":"armourbird/csf","owner":"armourbird","description":"ArmourBird CSF - Container Security Framework","archived":false,"fork":false,"pushed_at":"2022-04-22T22:07:29.000Z","size":99,"stargazers_count":44,"open_issues_count":2,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-31T23:03:06.480Z","etag":null,"topics":["bash","blackhat","django","django-framework","django-rest-framework","docker","docker-security","python","security"],"latest_commit_sha":null,"homepage":"https://twitter.com/ArmourBird","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/armourbird.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-07T20:55:41.000Z","updated_at":"2024-08-12T19:51:46.000Z","dependencies_parsed_at":"2022-08-11T23:01:30.557Z","dependency_job_id":null,"html_url":"https://github.com/armourbird/csf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armourbird%2Fcsf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armourbird%2Fcsf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armourbird%2Fcsf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armourbird%2Fcsf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/armourbird","download_url":"https://codeload.github.com/armourbird/csf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238394323,"owners_count":19464583,"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":["bash","blackhat","django","django-framework","django-rest-framework","docker","docker-security","python","security"],"created_at":"2024-09-24T13:47:15.675Z","updated_at":"2025-10-26T19:31:39.433Z","avatar_url":"https://github.com/armourbird.png","language":"Shell","readme":"# ArmourBird CSF - Container Security Framework \n[![Follow ArmourBird on Twitter](https://img.shields.io/twitter/follow/armourbird.svg?style=social\u0026label=Follow%20%40armourbird)](https://twitter.com/intent/user?screen_name=armourbird \"Follow ArmourBird on Twitter\")  [![BlackHat USA Arsenal 2019](https://github.com/r3ver53r/staticfiles/blob/master/images/bh-usa-2019.svg)](https://www.blackhat.com/us-19/arsenal/schedule/index.html#csf-container-security-framework-17001)\n\n\n**Note:** The CSF Client is under active development and is getting converted into GoLang for better performace and architecture\n\n\n## Table of Contents\n\u003c!--ts--\u003e\n 1. [About](#about)\n 2. [Architecture Diagram](#architecture-diagram)\n 3. [APIs-CSF Server](#apis-csf-server)\n 4. [Installation/Usage](#installationusage)\n 5. [Building Docker Images](#building-docker-images)\n 6. [Sneak Peak](#sneak-peak)\n 7. [To Do](#to-do)\n 8. [Website](#website)\n 9. [Twitter](#twitter)\n 10. [References](#references)\n\u003c!--te--\u003e\n\n## About\n\n**ArmourBird CSF - Container Security Framework** is an extensible, modular, API-first framework build for regular security monitoring of docker installations and containers against CIS and other custom security checks. \n\nArmourBird CSF has a client-server architecture and is thus divided into two components:\n\na) **CSF Client**  \n\n-   This component is responsible for monitoring the docker installations, containers, and images on target machines\n-   In the initial release, it will be checking against Docker CIS benchmark \n-   The checks in the CSF client will be configurable and thus will be expanded in future releases and updates\n- It has been build on top of Docker bench for security\n\nb) **CSF Server**  \n\n-   This will be the receiver agent for the security logs generated by the various distributed CSF clients (installed on multiple physical/virtual machines)\n-   This will also have a UI sub-component for unified management and dashboard-ing of the various vulnerabilities/issues logged by the CSF Clients\n-   This server will also expose APIs that can be used for integrating with other systems\n\n**Important Note**: The tool is currently in beta mode. Hence the debug flag of django (CSF Server) is enabled and the SQLite is used as DB in the same docker container. Hence, spinning up a new docker container will reset the database.\n\n## Architecture Diagram\n![ ArmourBird CSF Architecture Diagram](https://github.com/r3ver53r/staticfiles/blob/master/images/csf_arch.jpeg)\n\n## APIs CSF Server\n\n**Issue APIs**\n\nPOST /issues \n-   For reporting issues from CSF clients\n\nGET /issues/{issueId}\n-   For listing specific issue with {id}\n\nGET /issues\n-   For listing all issues reported by all CSF clients\n\nPUT /issues/{issueId}\n-   For updating a specific issue (like for severity, comments, etc.)\n\nDELETE /issues/{issueId}\n-   For deleting specific issue\n\n**Client APIs**\n\nPOST /clients\n-   For adding a CSF client\n\nGET /clients/{clientId}\n-   For listing specific CSF client\n\nGET /clients/\n-   For listing all the CSF clients\n\nPUT /clients/{clientId}\n-   For updating the CSF client (for e.g. IP addr, etc.)\n\nDELETE /clients/{clientId}\n-   For deleting a CSF client from the network\n\n**Client Group APIs**\n\nPOST /clientGroup\n-   Adding client to a specific group (for e.g. product1, HRNetwork, product2, etc.)\n\nGET /clientGroup/{groupID}\n-   For listing client group details\n\nGET /clientGroup/\n-   For listing all client groups\n\nPUT /clientGroup/{groupID}\n-   For updating client group\n\nDELETE /clientGroup/{groupId}\n-   For deleting client group\n\n## Installation/Usage\n\n**CSF client** run as a docker container on the compute instances running docker installation.  It can be executed using the following command using the docker image hosted on hub.docker.com:\n\n```\ndocker run -it --net host --pid host --userns host --cap-add audit_control \\\n-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \\\n-e CSF_CDN='\u003cTO-UPDATE\u003e' \\\n-v /etc:/etc \\\n-v /usr/bin/docker-containerd:/usr/bin/docker-containerd \\\n-v /usr/bin/docker-runc:/usr/bin/docker-runc \\\n-v /usr/lib/systemd:/usr/lib/systemd \\\n-v /var/lib:/var/lib \\\n-v /var/run/docker.sock:/var/run/docker.sock \\\n--label csf_client \\\n-d armourbird/csf_client\n```\nMake sure to update CSF_CDN environment variable in the above command with the CSF server URL. Once the container is executed, it will start sending issue logs to the CSF server on constant intervals.\n\n**CSF server** can run as a docker container or natively on a web server on which various CSF clients will be sending data. You can run it on your server using the following command using the docker image hosted on hub.docker.com\n\n```\ndocker run -p 80:8000 -d armourbird/csf_server\n```\n\nBrowse the CSF server via the following links\n\n - Dashboard: http://\u003c your-domain \u003e/dashboard/\n - APIs: http://\u003c your-domain \u003e/api/\n\n\n\n## Building Docker Images\nBuilding docker image for CSF Client\n```\ngit clone git@github.com:armourbird/csf.git\ncd csf_client\ndocker build . -t csf_client\n```\nBuilding docker image for CSF Server\n```\ngit clone git@github.com:armourbird/csf.git\ncd csf_server\ndocker build . -t csf_server\n```\n\n## Sneak Peak\n**Dashboard**\n\u003cimg src=\"https://github.com/r3ver53r/staticfiles/blob/master/images/csf_dashboard.png\" width=\"100%\"\u003e\n\n**API View**\n\u003cimg src=\"https://public.adobecc.com/files/1AAXTW0OBT05YB4DKYFG0ATW1ZKFFF\" width=\"100%\"\u003e\n\n## To Do\n- [ ] Integrate non-development web server and database\n- [ ] Add API key support to CSF Server\n- [ ] Add further checks in CSF Client\n- [ ] Add create/update/delete functionality for Client Groups\n- [ ] Add update/delete functionality for Clients\n- [ ] Improve dashboard UI\n\n## Website\nhttps://www.armourbird.com/\n\n## Twitter\n[http://twitter.com/ArmourBird](http://twitter.com/ArmourBird)\n\n## References\n[https://www.cisecurity.org/cis-benchmarks](https://www.cisecurity.org/cis-benchmarks)\n[https://github.com/docker/docker-bench-security](https://github.com/docker/docker-bench-security)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmourbird%2Fcsf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farmourbird%2Fcsf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmourbird%2Fcsf/lists"}