Odysec
Services

Services overview

From free tools to consulting engagements, every service follows the same set of principles: you run it yourself, the source code is readable, nothing is installed and nothing is left behind. Prices are published in full on the pricing page; online ordering requires no contact with us at any step.

View a full sample report → (in Chinese)

The self-service interface and generated reports are currently available in Traditional Chinese only. If you need service in English, contact us before ordering.
Free tools — 01

Free tools

No registration, no order code, available any time. These are not trial versions — they are fully functional. Since they never touch your hosts, we have no reason to charge for them.

Config reviewFREE

Upload the contents of sshd_config, nginx.conf, docker-compose.yml, Dockerfile, a Kubernetes manifest or sysctl.conf and get hardening advice immediately. We do not store your files.

The rules come from real operational experience: configurations that actually cause incidents, and settings that look complete but are silently ineffective.

Start a config review →

Email security checkFREE

Enter a domain to find out whether others can send mail impersonating it: we check whether SPF / DKIM / DMARC are actually in effect — in particular the cases where they are configured but silently failing.

Only public DNS records are queried. We never connect to your servers, and no credentials are required.

Start an email check →

Microsoft 365 tenant configuration reviewFREE

We review the tenant settings attackers actually exploit, not a best-practice checklist: whether legacy authentication can still bypass MFA, whether external auto-forwarding exists, how third-party app consent is controlled, whether unified audit logging is on, and the number and MFA status of admin accounts.

We have no access to your tenant. You run a read-only PowerShell script on your own tenant (complete, readable, unobfuscated source — every call is a Get-*), then decide whether to upload the resulting JSON. No OAuth admin consent, no app registration, and we hold no tokens — nor do we keep your file.

If an item cannot be collected because a module is missing or permissions are insufficient, the report marks it "cannot determine" rather than treating it as a pass. Not collected is not the same as no problem — most automated checkers simply skip what they cannot read, which then looks identical to "checked, no issues".

Start a tenant review → (in Chinese)

How it works — 03

How the self-service check works

customer@your-server — bash
# 1. Download and verify the hash — confirm you have the version we published
$ curl -O https://check.odysec.org/download
$ sha256sum odysec-check.py

# 2. Review the source before running — this program requires root
$ less odysec-check.py

# 3. Run the collection (fully offline; connects to nothing)
$ sudo python3 odysec-check.py --token ODY-XXXX-XXXX
Done (18.9s)
Result file: odysec-your-server-20260727.json

# 4. Inspect the contents, then upload only if you are comfortable with them
$ curl -X POST https://check.odysec.org/api/upload \
     -H "X-Odysec-Token: ODY-XXXX-XXXX" --data-binary @odysec-*.json
{"ok": true, "report_url": "https://check.odysec.org/r/..."}
$ 

What the collector does

  • Verifies whether system binaries have been replaced
  • Enumerates every boot-time persistence location
  • Checks running processes for anomalous traits
  • Inventories SUID binaries and listening ports
  • Reviews local accounts and kernel modules

What the collector never does

  • Connect to anything (collection is fully offline)
  • Modify any file or setting on your system
  • Read your documents, mail, databases or business data
  • Stay resident or install any component
  • Leave anything behind