Skip to content
AIQGM

Security review & hardening

We test your app, API and cloud setup the way an attacker would, write up what we find in plain language, help your team fix it, then check that the fixes hold.

Start a project

What’s included

Web application penetration testing
The OWASP Top 10, plus the business-logic flaws scanners miss, like changing an order ID and getting someone else's order.
Mobile application assessment
Unpacking the shipped build, checking what it stores on the device, and testing the API calls it makes behind the UI.
API security testing
Authentication, token handling, rate limits, and object-level authorization on every endpoint in scope.
Secure code review
Reading the code paths that handle login, payments, file uploads and permissions, with tooling to cover the rest.
Cloud configuration review
IAM roles, storage buckets, secrets in environment variables, network exposure, and whether anything is logged at all.
Hardening
TLS and headers, least-privilege IAM, MFA on admin access, dependency pinning, backups that can't be deleted by the same credentials.

See it working

review — sample-app 2.3.1
The first ten minutes of a mobile review. Illustrative output from a sample app with planted issues; no device or special access needed.

How it usually runs

  1. 1. Scope and rules

    ~1 week

    What's in scope, test accounts, testing windows, and who to call if something breaks. Agreed in writing before any testing.

  2. 2. Test

    1–3 weeks

    Length depends on scope. Anything critical is reported to you the same day, not saved for the report.

  3. 3. Report and retest

    Readout meeting, then a retest of the fixed findings once your team has shipped them.

What you have at the end

  • A written report: a summary a non-engineer can read, then each finding with severity, steps to reproduce and a specific fix
  • A readout meeting with your engineers to go through the findings
  • A retest once fixes ship, and an updated report showing what was closed

One finding from a report, in the format we use:

S-02 / HighSample format · not client data

Any signed-in user can read any invoice

What we saw
GET /api/v1/invoices/10482 returns the invoice. Changing the ID to 10481 returns another customer’s invoice, including billing address.
Fix
Look the invoice up by id and the session’s account_id. Return 404, not 403, so IDs can’t be probed.
Retest
Included once the fix is deployed.

Tools and platforms

  • Burp Suite
  • OWASP ZAP
  • MobSF
  • Frida
  • Semgrep
  • Nuclei
  • Trivy
  • Prowler

Questions we get

Will testing take our site down?

It shouldn't. We agree on testing windows, avoid destructive tests on production unless you ask for them, and can test against staging instead.

Can you sign our NDA first?

Yes. Send it with your first message and we'll return it before our first meeting.

Tell us what you're working on.

A few paragraphs is plenty. We'll read it, reply by email, and if it looks like a fit, set up a 30-minute Google Meet with an engineer.