{"id":16383289,"url":"https://github.com/safinsingh/malta","last_synced_at":"2026-06-23T13:01:41.074Z","repository":{"id":55465996,"uuid":"291391842","full_name":"safinsingh/malta","owner":"safinsingh","description":"🔐 A cross-platform vulnerability scoring engine","archived":false,"fork":false,"pushed_at":"2020-12-29T08:30:20.000Z","size":19054,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-21T19:44:24.000Z","etag":null,"topics":["cyberpatriot","cybersecurity","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/safinsingh.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":"2020-08-30T03:18:30.000Z","updated_at":"2020-11-19T05:33:55.000Z","dependencies_parsed_at":"2022-08-15T01:00:45.479Z","dependency_job_id":null,"html_url":"https://github.com/safinsingh/malta","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/safinsingh/malta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safinsingh%2Fmalta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safinsingh%2Fmalta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safinsingh%2Fmalta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safinsingh%2Fmalta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/safinsingh","download_url":"https://codeload.github.com/safinsingh/malta/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safinsingh%2Fmalta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34690771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"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":["cyberpatriot","cybersecurity","rust"],"created_at":"2024-10-11T04:07:53.534Z","updated_at":"2026-06-23T13:01:41.041Z","avatar_url":"https://github.com/safinsingh.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.png\" width=\"40%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/Version-1.0-red.svg\" /\u003e\n  \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-orange.svg\" /\u003e\n  \u003cimg alt=\"Made with Rust\" src=\"https://img.shields.io/badge/Made%20with-Rust-yellow.svg\" /\u003e\n  \u003cimg alt=\"gh-actions\" src=\"https://github.com/safinsingh/malta/workflows/CI/badge.svg\" /\u003e\n  \u003cimg alt=\"PRs Welcome\" src=\"https://img.shields.io/badge/PRs-Welcome-blue.svg\"\u003e\n  \u003cimg alt=\"awesome\" src=\"https://img.shields.io/badge/Awesome-Yes-purple\"\u003e\n  \u003cbr /\u003e\n\u003c/p\u003e\n\n\u003chr\u003e\n\n## ✨ Installation\n\n```sh\ngit clone https://github.com/safinsingh/malta.git\nmake release\n```\n\n## 🔮 In action\n\n![demo](./assets/demo.gif)\n\n## 🔎 How it works\n\n- `helios` is `malta`'s client engine, it finds and scores vulnerabilities specified in a configuration file (see the example helios/conf.yaml).\n- After capturing the secret keys generated by `helios gen-keys`, insert them into `{helios/ares}/src/crypto.rs` in order to encrypt/decrypt your configuration. After writing your configuration, you'll need to re-build the binaries with `cargo build --release`.\n- Notice that in the configuration, you'll need to specify the URL of a Firebase Realtime Database URL. This is where all scoring data will be appended.\n- Once built, you can run `helios encrypt` to encrypt your configuration. You can now safely delete your `config.yaml` and place the encrypted `conf.z` on both your server and client.\n- Now, start `ares` and distribute the scoring engine. Typically, this is done via the distribution of an insecure virtual machine with vulnerabilities preloaded.\n\n\u003e If you allow your Firebase connection to be unauthenticated, make sure to set security rules to only allow the IP of your remote server running `ares`\n\n## 📖 Checks\n\nThe check schema for helios looks like the following:\n\n```yaml\n# Global constants\ntitle: \"Safin's OP Round\"\nremote: \"http://localhost:8000/\"\ndb: \"https://malta-rs.firebaseio.com\"\n\n# Array of vulnerability records\nrecords:\n  # All vulnerabilities must have\n  # a message, identifier, and points.\n  # If the points are negative, it's\n  # counted as a penalty\n  - message: Removed vulnerability\n    identifier: a1b2c3\n    points: -4\n\n    # Array of all checks\n    checks:\n      # Array of REQUIRED sucessful checks,\n      # the following MUST be TRUE for the\n      # check to pass\n      - success:\n          - type: FileContains\n            file: \"/home/safin/Documents/helios/hi.txt\"\n            contains: \"^hello\"\n\n      # Array of REQUIRED sucessful checks,\n      # the following MUST be FALSE for the\n      # check to pass\n      - fail:\n          - type: FileContains\n            file: \"/home/safin/Documents/helios/hi2.txt\"\n            contains: \"^hello\"\n```\n\n`helios` currently supports many checks for both Windows and Unix-like operating systems:\n\n```rust\n// Score a file containing a regular expression.\npub struct FileContains {\n    file: String,\n    contains: String,\n}\n```\n\n```rust\n// Score a command exiting with a certain\n// exit code. If a custom code is not specified,\n// it defaults to 0.\npub struct CommandExitCode {\n    command: String,\n    code: Option\u003ci32\u003e,\n}\n```\n\n```rust\n// Score a command's STDOUT matching a\n// regular expression.\npub struct CommandOutput {\n    command: String,\n    contains: String,\n}\n```\n\n```rust\n// Score a file that exists on the system.\npub struct FileExists {\n    path: String,\n}\n```\n\n```rust\n// Score a user existing on the system.\n// Currently only supports Unix-like operating systems.\npub struct UserExists {\n    user: String,\n}\n```\n\n```rust\n// Score a group existing on the system.\n// Currently only supports Unix-like operating systems.\npub struct GroupExists {\n    group: String,\n}\n```\n\n```rust\n// Score a user existing in a group.\n// Currently only supports Unix-like operating systems.\npub struct UserInGroup {\n    user: String,\n    group: String,\n}\n```\n\n```rust\n// Score the firewall status.\n// Currently only supports Unix-like operating systems.\npub struct Firewall {}\n```\n\n```rust\n// Score a systemd service being active.\n// Currently only supports Unix-like operating systems.\npub struct Service {\n    service: String,\n}\n```\n\n## 👨‍💻 Author\n\nLinkedin: [Safin Singh](https://www.linkedin.com/in/safin-singh-b2630918a/) \u003cbr\u003e\nGitHub: [safinsingh](https://github.com/safinsingh) \u003cbr\u003e\nDribbble: [Safin Singh](https://dribbble.com/safinsingh/) \u003cbr\u003e\nYouTube: [Safin Singh](https://www.youtube.com/channel/UCvb01sUdAgcPAG1j0SLxAtA)\n\n## 🤝 Contributing\n\nContributions, PRs, issues and feature requests are welcome! Feel free to check out my [issues page](https://github.com/safinsingh/malta/issues).\n\n## ❤️ Show your support\n\nGive a ⭐️ if this project helped you!\nHope you enjoy it!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafinsingh%2Fmalta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsafinsingh%2Fmalta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafinsingh%2Fmalta/lists"}