Skip to main content

AI Security QA for web and mobile: correlates scanner output into real attack paths and one answer — Safe to Deploy, Deploy with Warnings, or Do Not Deploy.

Project description

secscan

Two on-demand security scanners that wrap trusted open-source tools and produce a single, shareable HTML report (plus a JSON sibling for automation):

  • websec — website security (for sites you build and deliver to clients)
  • iossec — iOS app security (source and compiled .ipa)

Each finding, whatever tool produced it, is normalized to one schema and one severity scale (critical → info). If a scanner isn't installed, it's reported as a coverage gap rather than silently skipped — a clean report only ever reflects the checks that actually ran.


Install

cd ~/Developer/secscan
./setup.sh          # fast tier: scanners via brew + pipx, then websec & iossec
./setup.sh --deep   # optional heavy tier: OWASP ZAP + MobSF server
websec --check-tools
iossec --check-tools

The fast tier needs neither Java nor Docker. The deep tier (--deep) adds OWASP ZAP (dynamic web scanning, needs Java) and the full MobSF server (deep iOS analysis, needs Docker). Both activate automatically once present and are skipped otherwise.

New to it? See USAGE.md for a step-by-step guide.


websec — websites

# Live site: TLS/SSL, security headers, nuclei misconfig/exposure checks
websec url https://haircutsbymn.eu

# Source tree: exposed API keys, SAST, vulnerable dependencies
websec source ./client-site

# Both, into one report
websec all --url https://haircutsbymn.eu --source ./client-site --out report.html
Check Tool Looks for
Secrets / API keys gitleaks Hardcoded keys, tokens, credentials
SAST semgrep XSS, injection, OWASP Top 10 patterns
Dependencies osv-scanner Known-vulnerable npm/pip/etc. packages
TLS/SSL testssl.sh Weak protocols/ciphers, cert problems
Headers built-in Missing HSTS/CSP/X-Frame-Options/etc.
Misconfig/exposure nuclei Exposed files, known CVEs, leaked keys in responses
Supabase keys built-in service_role key leaked in client code (critical)
Web server (optional) nikto Server misconfigurations
Dynamic scan (deep) OWASP ZAP Runtime XSS/injection/etc. via spider + active scan

Supabase RLS probe: websec supabase https://xxxx.supabase.co --key <anon-key> tests whether your tables are readable by the public anon key (i.e. Row-Level Security is off). Read-only. See USAGE.md.

⚠️ The URL scanners (nuclei, ZAP) and the Supabase probe reach out to the target. Only run them against properties you own or are contracted to deliver.

iossec — iOS

# Source tree
iossec source ./MyApp

# Compiled app
iossec ipa ./build/MyApp.ipa

# Both
iossec all --ipa ./MyApp.ipa --source ./MyApp
Check Tool Looks for
Static analysis mobsfscan Insecure storage, weak crypto, ATS misuse, unsafe APIs
SAST semgrep Mobile-specific insecure patterns
Flutter/Dart built-in rules Insecure HTTP, disabled TLS validation, secrets in SharedPreferences, unsafe WebView, service_role keys
Secrets / API keys gitleaks Hardcoded keys in source and shipped bundle
Dependencies osv-scanner Vulnerable CocoaPods / SPM packages
Info.plist built-in (plistlib) ATS disabled, file sharing, URL schemes, permissions
Entitlements codesign Debuggable release build (get-task-allow)
Binary hardening otool / lipo PIE/ASLR, stack canary, ARC, encryption, architectures
Deep analysis (deep) MobSF server Full static analysis via MobSF REST API (Docker)

Output

report.html — self-contained (inline CSS), color-coded by severity, collapsible findings, and a scanner-status strip showing what ran / was skipped. report.json — same data, machine-readable, written alongside for run-to-run diffing.

Exit code is 2 when any critical or high finding is present, so you can gate a delivery on a clean scan.

Scope

These are static / on-demand scanners. Runtime iOS analysis (Frida/objection, jailbroken-device instrumentation) and authenticated deep web crawls (full ZAP) are out of scope for the default build but can be added via the optional tiers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secscan_ai-0.1.0.tar.gz (108.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

secscan_ai-0.1.0-py3-none-any.whl (129.1 kB view details)

Uploaded Python 3

File details

Details for the file secscan_ai-0.1.0.tar.gz.

File metadata

  • Download URL: secscan_ai-0.1.0.tar.gz
  • Upload date:
  • Size: 108.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for secscan_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 64464f94b0bfc6a0bd15aac313f506107b4965027483c89b0545a7e6b4f39258
MD5 f411be248ce8cd29cb92f72e61558ec1
BLAKE2b-256 00f1d71381e52afe943306d4af2ba1ef56841a051d3de136e4fbb43999f7a0d5

See more details on using hashes here.

File details

Details for the file secscan_ai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: secscan_ai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 129.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for secscan_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 872b52f8bf33c71e11232edc047eb918ffeea0a56af0aa9f212d6f8b78644352
MD5 18717d84f82607639440f1bd3904617a
BLAKE2b-256 38e871f8904c4a051522e16c09104633dcebedf1aa23fee67da1a58fbfc3b0f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page