Je vais vous présenter un projet infosec sur lequel je travaille depuis plusieurs mois : Saucs.com.
Cette plateforme web vous permet de manager vos alertes de sécurité en vous abonnant à différents produits et vendeurs. Dès lors qu’une nouvelle vulnérabilité est détectée, une alerte est créée et un rapport vous est envoyé par mail.
Vous pouvez également rechercher les vulnérabilités par produit ou plus globalement par vendeur :
Saucs se repose sur les bases maintenues par le MITRE et le NVD pour se synchroniser :
- CVE (Common Vulnerability Enumeration),
- CPE (Common Platform Enumeration),
- CWE (Common Weakness Enumeration),
- CVSS (Common Vulnerability Scoring System).
Ces bases contiennent des données organisées permettant de classifier les vulnérabilités relatives à des produits. Saucs utilise par exemple les CPE afin de fournir une liste de vendeurs et de produits auxquels s’abonner :
Concrètement les données fournies par le NVD sont parsées régulièrement et des tâches Celery analysent les abonnements des utilisateurs pour envoyer les notifications. Il peut s’agir d’une nouvelle CVE, mais également de la modification d’une CVE existante : nouvelle référence, changement du score CVSS, etc.
J’ai débuté ce projet seul : c’est une idée que j’avais en tête depuis pas mal de temps, et en tant que dev Python aucun problème pour créer le site et les robots. Mais ceux qui administrent leur propre site le savent, un site web ce n’est pas que du dev :)
J’ai donc rapidement été rejoint par Laurent pour prendre en charge la partie administration : il gère entre autres les serveurs web, les mails, le load balancing, le scaling automatique, l’architecture master/slave des databases, leur réplication, etc. Il fera d’ailleurs prochainement un article sur le blog de Saucs afin d’expliquer comment bootstraper rapidement une architecture HA et fault tolerant.
Côté dev le site est entièrement codé en Python, grâce au framework Flask. Les tâches asynchrones (comme le parsing des CVE, la création des reports, l’envoie de mail, la mise en cache) sont prises en charge par Celery.
Je ne rentre pas plus en détail pour le moment sur ces aspects techniques puisque des articles dédiés seront mis en ligne sur le blog officiel de Saucs. Nous aimerions décrire les changements qui interviendront sur l’architecture de la plateforme au fur et à mesure que celle-ci grandira.
En parlant de ça, nous avons lancé le site il y a 3 semaines pour tâter le terrain et savoir si ce genre d’outil pouvait être utile à d’autres personne. Une semaine après l’envoi d’un premier Tweet nous étions déjà à 500 utilisateurs! Nous avons reçus beaucoup de feedbacks, notamment des demandes sur l’ajout d’autres sources ainsi qu’un système de filtres d’alertes.
C’est donc ce que nous allons faire dans les semaines à venir, à commencer par le système de Report qui a été lancé ce week-end :
Au niveau des fonctionnalités à venir, nous avons énormément d’idées :
- filtrer les types de notifications,
- ajout de nouvelles sources (DSA par exemple),
- intégration de sources externes pour les notifications (Slack, Mattermost…),
- discussions au sein de chaque CVE,
- API / SDK,
- applications mobiles,
- etc.
Bref comme vous le voyez nous avons pas mal d’idées, et nous pensons que Saucs peut avoir un réel intérêt pour les particuliers comme pour les entreprises.
N’hésitez pas à nous contacter sur Twitter (Laurent ou moi) , tout feedback est le bienvenu :)