Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uvasoftware/scanii-cli
Scanii.com command line interface
https://github.com/uvasoftware/scanii-cli
Last synced: 17 days ago
JSON representation
Scanii.com command line interface
- Host: GitHub
- URL: https://github.com/uvasoftware/scanii-cli
- Owner: uvasoftware
- License: apache-2.0
- Created: 2022-04-19T23:01:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-11T15:59:00.000Z (about 2 months ago)
- Last Synced: 2024-11-11T16:41:52.571Z (about 2 months ago)
- Language: Go
- Size: 194 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Scanii CLI
The Scanii CLI helps you build, test, and manage your [Scanii](https://www.scanii.com) integration right from the terminal.
**With the CLI, you can:**
- Interact with the Scanii API, including analyzing files
- Start a local mock server to test your API requests## Installation
The cli is available for macOS, Windows, and Linux. See the [releases page](https://github.com/uvasoftware/scanii-cli/releases)
On MacOS you will need to grant the application permission to run
```shell
xattr -d com.apple.quarantine /path/to/file
```A docker container is also provided for running the cli.
```shell
docker run ghcr.io/uvasoftware/scanii-cli:latest
```
Previous container versions can be found [here](https://github.com/uvasoftware/scanii-cli/pkgs/container/scanii-cli).## Documentation
* You should start by configuring the CLI with your API key. You can do this by running `sc configure` and following the prompts.
* Once configured, you can start the test server by running `sc server` and then start sending requests to it.
* All other commands are available by running `sc help`Here's an example of using the cli to analyze a directory of files:
```shell
./sc files process .
⎻⎻⎻⎻
Using endpoint: localhost:4000 and API key: key
success in 4.421542ms
✔ Credentials worked against http://localhost:4000/v2.2/
Processing directory: .
Found 39 file(s)
Processing files 100% |██████████████████████████████████████████████████████████████████████████| (39/39, 918 it/s)✔ Completed in 150.205125ms
✔ Files with findings: 4, unable to process: 0 and successfully processed: 39
Files with findings:
------
path: cmd/sc/internal/commands/static/eicar.txt
id: fd33128a8da445d3b8308fe6d1588829
checksum/sah1: 3395856ce81f2b7382dee72602f798b642f14140
content type: text/plain; charset=utf-8
content length: 68 B
creation date: 2024-02-08T13:38:02.074502Z
findings: content.malicious.eicar-test-signature
metadata: none
------
------
path: internal/engine/testdata/language.txt
id: 901f13376f584efb8d8ad2bd842751a7
checksum/sah1: d487c8d12efa3d46a461a80e4d82e7994e5b5b1b
content type: text/plain; charset=utf-8
content length: 36 B
creation date: 2024-02-08T13:38:02.080232Z
findings: content.en.language.nsfw.0
metadata: none
------
------
path: cmd/sc/internal/commands/testdata/eicar.txt
id: 23c379d394694a90b3411a6797885e40
checksum/sah1: 3395856ce81f2b7382dee72602f798b642f14140
content type: text/plain; charset=utf-8
content length: 68 B
creation date: 2024-02-08T13:38:02.079376Z
findings: content.malicious.eicar-test-signature
metadata: none
------
------
path: internal/engine/testdata/image.jpg
id: 3dfbee6ec1864c5496fda69aa1033c45
checksum/sah1: 7951a43bbfb08fd742224ada280913d1897b89ab
content type: image/jpeg
content length: 631 B
creation date: 2024-02-08T13:38:02.08033Z
findings: content.image.nsfw.nudity
metadata: none
------```
Running the mock server:
```shell
./sc server
Scanii test server is starting... 🚀
⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻
• Using API Key: key
• Using API Secret: secret
• Engines with 4 known rules
• Mock server started on http://localhost:4000Sample usage → curl -u key:secret http://localhost:4000/v2.2/ping
```#### How the test server works
The test server works by comparing the files sent against a static signature database.The built in signature
[database](https://github.com/uvasoftware/scanii-cli/blob/main/internal/engine/default.json) includes rules for EICAR and other sample files you can use to test your integration.For more sophisticated use cases, you can provide your own configuration to test server with the `--engine` flag.
```shell
./sc server --engine /path/to/your/engine.json
```#### Known Limitations
Mock Server
* Callbacks are not supported in the current version of the mock server
* The engine does not really do any analysis, it simply compares files against a signature database
* Requests that fail to retrieve an external location are not saved