Context and goal
CyberVeille PME was developed during a CMRPI internship as a lightweight prototype for small businesses. It helps a user assess a suspicious URL without visiting it, keep a local incident history, and optionally notify a security contact.
Architecture
A Streamlit interface calls a central detection service. The service validates the input, checks a local URLhaus index, extracts structural URL features, and uses a locally prepared scikit-learn classifier when its artifacts are available. SQLite stores analyses and alert state. SMTP notifications and AbuseIPDB enrichment are optional.
Engineering decisions
- The application never opens a submitted URL during analysis.
- A URLhaus match is a strong signal; absence from the index is not treated as proof of safety.
- Missing local data or model artifacts produce an unavailable state rather than a fabricated verdict.
- Alerts use configurable thresholds and duplicate suppression, and SMTP failures do not block analysis.
- The public repository omits downloaded datasets, generated models, operational histories, and internal internship documents.
Outcome and limits
The public repository contains the Streamlit MVP, automated tests, and generic response playbooks. The classifier uses URL characteristics rather than page content. Its documented evaluation used a single dataset, so this page does not claim effectiveness against future campaigns or in production.
