01Overview
SAP Ariba SSPM Security Scanner is a zero-dependency, offline SaaS Security Posture Management (SSPM) tool that assesses the security configuration of SAP Ariba procurement environments. Instead of connecting to a live tenant, it ingests JSON/CSV configuration exports (users, groups, SSO, MFA, API clients, approval workflows, payment controls, supplier settings, audit config and more) and evaluates them for misconfigurations, access risk, compliance gaps and drift from a security baseline.
Modeled on commercial SSPM platforms such as AppOmni, Obsidian, Adaptive Shield and Nudge Security, the scanner covers the full SaaS security spectrum for procurement: identity security, authentication and SSO, API and integration risk, procurement and workflow controls (SoD, three-way match, auto-approve thresholds), data protection and PII classification, supplier/third-party risk, audit logging, network exposure, alerting and configuration drift. Each finding carries a severity, affected-item list, remediation guidance and framework references.
It is aimed at procurement security teams, SAP GRC and internal-audit functions, and cloud/SSPM assessors who need to review an Ariba tenant's posture without live API credentials or agents. Because it is pure Python 3.8+ standard library with no external packages, it runs in air-gapped and change-controlled environments and slots cleanly into audit workflows.
The scanner is notable for pairing procurement-specific risk logic (maverick spend, competitive-bidding controls, supplier bank-detail verification as a BEC/invoice-fraud vector, Segregation-of-Duties conflicts across the req-to-pay lifecycle) with a polished, self-contained interactive HTML dashboard that computes a weighted risk score and lets assessors filter and drill into every finding.
02Key Capabilities
Offline, credential-free assessment
Analyzes exported JSON/CSV configuration files with no live SAP Ariba API access, so it runs safely in air-gapped and change-controlled environments.
Zero third-party dependencies
Built entirely on the Python 3.8+ standard library, making it trivial to vet, deploy, and run inside restricted enterprise networks.
10 SSPM audit modules
Covers identity, authentication/SSO, API/integration, procurement controls, data protection, supplier security, audit, network, notification, and configuration drift.
Segregation-of-Duties detection
Flags users holding conflicting roles across the req-to-pay lifecycle (create+approve requisitions/POs, reconcile+pay invoices, manage suppliers+contracts).
Procurement fraud controls
Checks three-way match, duplicate-payment detection, auto-approve thresholds, competitive bidding, maverick spend, and supplier bank-detail verification against BEC fraud.
PII auto-classification
Scans custom field names for 13 PII patterns (SSN, Tax ID, IBAN, bank account, passport, DOB, etc.) and flags unclassified sensitive fields.
Configuration drift detection
Compares live config against a JSON security baseline and reports any critical settings that are disabled or have drifted from expected values.
Weighted risk scoring
Aggregates findings into a 0-100 severity-weighted risk score with Critical/High/Medium/Low banding shown on the report dashboard.
Interactive HTML report
Generates a self-contained dark-themed dashboard with a risk ring, severity cards, per-category bars, filtering, and collapsible finding detail plus remediation.
Flexible module and severity scoping
Run all modules or a targeted subset (e.g. iam auth procurement) and filter output by minimum severity for focused assessments.
Resilient data loader
Accepts alternate file names, tolerates BOM/whitespace, normalizes CSV headers, and gracefully reports which config files were found or missing.
Built-in sample data generator
Ships a generator that produces 23 demo config files seeded with deliberate misconfigurations for instant demonstration and testing.
03Architecture
A CLI orchestrator (ariba_scanner.py) loads all configuration exports through a single DataLoader, then dispatches to ten pluggable auditor classes that share a BaseAuditor contract. Each auditor emits structured findings (check_id, severity, affected items, remediation, references), which are aggregated, severity-filtered, and rendered into a self-contained interactive HTML dashboard.
04Project Structure
ariba_scanner.pyMain CLI entry point wiring the module map, argument parsing, and scan pipeline.generate_sample_data.pyGenerator that writes 23 demo config files seeded with deliberate security issues.modules/base.pyDataLoader and BaseAuditor: file resolution, CSV/JSON parsing, and the finding factory.modules/identity_access.pyIdentity & Access auditor with the 8 IAM checks and the SoD conflict matrix.modules/core_modules.pyAuthentication/SSO, API/Integration, Procurement, and Data Protection auditors.modules/extended_modules.pySupplier, Audit & Compliance, Network, Notification, and Configuration Drift auditors.modules/report_generator.pyInteractive HTML dashboard generator with risk scoring and severity/category views.sample_data/23 example JSON/CSV exports plus a prebuilt sample_report.html for demonstration.docs/banner.svgProject banner asset used in the README.README.mdOverview, module table, data-export guide, and quick-start usage.CONTRIBUTING.mdContribution guidelines for the project.LICENSEMIT license.05Security Controls
06Technology Stack
- Language
- Python 3.8+
- Dependencies
- None — standard library only (argparse, json, csv, datetime, pathlib, html)
- Input formats
- JSON and CSV configuration exports
- Reporting
- Self-contained interactive HTML dashboard (inline CSS/JS), JSON fallback
- Architecture
- Pluggable BaseAuditor modules dispatched via a CLI module map
- License
- MIT
07Quick Start
$ git clone https://github.com/Krishcalin/SAP-Ariba-Security-Scanner.git && cd SAP-Ariba-Security-Scanner $ python generate_sample_data.py # create 23 demo config files with seeded issues $ python ariba_scanner.py --data-dir ./sample_data --output report.html $ python ariba_scanner.py --data-dir ./exports --modules iam auth procurement $ python ariba_scanner.py --data-dir ./exports --severity HIGH $ python ariba_scanner.py --data-dir ./exports --config baseline.json # drift detection
08Compliance & Frameworks
09Integrations & Outputs
Explore SAP Ariba SSPM Scanner
Full source, documentation, and deployment guides live on GitHub.