Société de Sécurité Informatique - Audit Firewall Appliances
La sécurité informatique - La sécurité des informations

mail-security-tester, cadre de tests de sécurité de votre serveur de mails



Cadre de tests de sécurité de votre serveur de mails


Un cadre de test pour la sécurité du courrier et les solutions de filtrage.
IMPORTANT: Ne faites rien de mal avec ça ! Les tests de cloud ou de solutions hébergées doivent toujours être approuvés par le fournisseur testé. N'utilisez que vos propres comptes de tests et n'ennuyez personne avec vos mails de tests.

Installation


Le framework de test de sécurité du courrier fonctionne avec Python >= 3.5. Il suffit de tirer ce dépôt et de continuer. Aucune autre dépendance n'est requise.

Utilisation


Le script mail-tester.py exécute les tests. Lisez le message d'aide avec ./mail-tester.py --help et vérifiez la liste des modules de test et d'évasion avec ./mail-tester.py -l pour avoir un aperçu des fonctionnalités et de l'utilisation du script. Quelques conseils:

Développement et Extension


Tests


Les tests propres peuvent être implémentés avec une classe dans l'un des fichiers Python existants ou nouvellement créés dans le répertoire tests /. La classe doit être une sous-classe de MailTestBase située dans le module tests.base de ce projet. Les tests nouvellement implémentés sont détectés automatiquement lorsque la variable de classe active est définie sur True. En outre (si vous envisagez de contribuer à des tests dans le référentiel principal), l'identificateur, le nom et la description des variables de classe doivent être définis de manière appropriée.
Les classes de base suivantes existent avec des méthodes ou des variables de classe destinées à remplacer:
Il est fortement recommandé de définir les sujets des messages générés pour pouvoir reconnaître les tests dans la boîte de réception.

Évasions


Les classes Évasion implémentent des techniques permettant d’éviter la reconnaissance de propriétés de messagerie particulières par des solutions de sécurité de messagerie.
Actuellement, une technique d'évasion qui tente de masquer les pièces jointes de telles solutions par des en-têtes Content-Disposition intentionnellement brisés est implémentée.

Mettre en œuvre de nouvelles évasions

Les évasions sont implémentées par un modèle de classe usine. La classe DeliveryBase instancie une classe de fabrique dérivée de la classe BaseEvasionFactory. Le constructeur d'usine reçoit un drapeau qui indique si l'évasion est activée. L'instance evasion factory est ensuite transmise à la classe de test et stockée dans son attribut evasions qui contient un dict avec les identifiants d'évasion comme clés. A l'intérieur du test, une classe d'évasion (basée sur EvasionBase) est instanciée avec getEvasionGenerator(). Le paramètre constructeur est défini individuellement par technique d'évasion.
Les classes de base suivantes sont utilisées pour implémenter les évasions:
Généralement, la classe evasion doit générer toutes les variantes d'évasion et transmettre la valeur par défaut en tant que scénario de test dédié, tandis que les classes d'évasion par défaut transmettent uniquement l'objet donné ou créent les structures de données requises, comme les en-têtes.

Utiliser des techniques d'évasion dans des cas de test

Les techniques d'évasion sont utilisées dans les cas de test où elles sont applicables. Par exemple. Si une technique d'évasion manipule l'en-tête d'un mail ou d'une pièce jointe, les étapes suivantes doivent être implémentées:

  • 1. Générer l'objet de base (mail ou pièce jointe) sans tenir compte de l'évasion.
  • 2. Instancier la classe d’évasion appropriée en utilisant l’instance de la fabrique d’évasion à partir de self.evasions, exemple : evasion_items = self.evasions["evasion_identifier"].getEvasionGenerator(message)

  • 3. Itérer sur le générateur et céder les cas de test:

  • for evasion_item in evasion_items:
    yield evasion_item

    Utilisation de la technique d'évasion de disposition de contenu
    La technique d'évasion de la disposition du contenu est déjà implémentée dans la structure et doit être utilisée pour tous les scénarios de test qui ciblent la reconnaissance des pièces jointes malveillantes. Le constructeur reçoit une pièce jointe et le nom de fichier voulu. La classe d'évasion donne alors des tuples (nom d'évasion, attachement avec technique d'évasion appliquée) qui peuvent être directement générés par la méthode tests generateAttachments().

    Avertissement


    L'utilisation de ce programme ne peut se faire que dans le cadre légal d'un audit de vulnérabilité, basé sur le consentement mutuel. Il est de la responsabilité de l'utilisateur final de ne pas utiliser ce programme dans un autre cadre. SecuriteInfo.com n'assume aucune responsabilité et n'est pas responsable de toute mauvaise utilisation ou de tout dommage causé par ce programme.

    Téléchargement



    Partager cet article

    Envoyer cet article par Email ! Imprimer cet article ! Exporter cet article en PDF ! Facebook Twitter Google Bookmarks
    
    SecuriteInfo.com est une entreprise française de sécurité informatique. Nous proposons différentes solutions matérielles et prestations de services permettant de sécuriser les données des Systèmes d'Information d'entreprises ou de collectivités. Notre périmètre d'intervention couvre l'intégralité de votre système d'information : Sécurité périmétrique, réseaux, accès distants, VPN, solutions anti-spam et anti-malwares, différents audits réseaux et systèmes, vérification de la politique de sécurité, hébergement sécurisé ...
    Facebook SecuriteInfo.com
    Twitter de SecuriteInfo.com
    Github de SecuriteInfo.com
    Calculs scientifiques distribués contre les maladies, équipe SecuriteInfo.com
    Profil Virustotal de SecuriteInfo.com
    © 2004-2018 - Tous droits réservés - SecuriteInfo.com