![](https://community.sap.com/html/assets/img_tile-default.png)
Our Kakemono at the MIA
"Create examples of benign and phishing emails in French. Produce an array of python tuples containing a pair of items for each different example. The first item is the phishing email, the second item of the pair is an explanation why that sample belongs to either class. The email message must be a single string, without line breaks. It contains the sender, the subject, and the message text. The message that may contain URLs. Include real URLs related to the legitimate senders of the benign emails. Use malicious URLs for the phishing samples. Include real organisations from France in the samples, like companies, e-commerce websites, S&P 500 companies, and social media. Mind to use very clear split in vocabulary for phishing and for legitimate emails. The explanation starts with the class, and has a single sentence focusing on the email features. Generate at least 20 examples."
examples = [
(
"De: support@paypal.fr\nSujet: Votre compte PayPal a été mis à jour\nCher utilisateur,\nNous vous informons que votre compte PayPal a été mis à jour avec succès. Si vous avez des questions ou des préoccupations, n'hésitez pas à nous contacter.\nCordialement,\nL'équipe PayPal",
"benin",
"Ceci est un exemple d'email inoffensif (benin). Le message provient d'une adresse email légitime (support@paypal.fr) et informe l'utilisateur que son compte PayPal a été mis à jour. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes ou de demandes d'informations sensibles."
),
(
"De: info@votreecole.fr\nSujet: Inscription aux cours de langues\nCher parent,\nNous vous rappelons que les inscriptions aux cours de langues pour la prochaine session sont maintenant ouvertes. Veuillez vous rendre sur notre site web officiel pour plus d'informations et pour inscrire votre enfant.\nCordialement,\nL'équipe de Votre École",
"benin",
"Ceci est un exemple d'email inoffensif (benin). Le message provient d'une adresse email légitime (info@votreecole.fr) et informe les parents des inscriptions aux cours de langues. Le message redirige les destinataires vers le site web officiel de l'école pour obtenir plus d'informations et procéder à l'inscription. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: securite@banquefrance.fr\nSujet: Urgent - Vérification de sécurité requise\nCher client,\nNous avons détecté une activité suspecte sur votre compte bancaire. Pour protéger votre compte et éviter tout accès non autorisé, nous vous demandons de vérifier vos informations de sécurité en cliquant sur le lien suivant : https://www.phishingurl.com\nCordialement,\nBanque de France",
"phishing",
"Ceci est un exemple d'email de phishing. Le message prétend provenir d'une adresse email légitime (securite@banquefrance.fr), mais il contient des caractéristiques typiques de phishing, notamment en signalant une activité suspecte sur le compte bancaire du destinataire et en le redirigeant vers une URL suspecte (https://www.phishingurl.com) au lieu du site officiel de la Banque de France. Le langage utilisé peut sembler alarmant et incite le destinataire à cliquer sur le lien pour fournir des informations sensibles."
),
(
"De: support@impots.gouv.fr\nSujet: Remboursement d'impôts\nCher contribuable,\nNous avons le plaisir de vous informer que vous avez droit à un remboursement d'impôts. Veuillez cliquer sur le lien suivant pour finaliser le processus de remboursement : https://www.phishingurl.com\nCordialement,\nService des Impôts",
"phishing",
"Ceci est un exemple d'email de phishing. Le message prétend provenir d'une adresse email légitime (support@impots.gouv.fr) et informe le destinataire qu'il a droit à un remboursement d'impôts. Cependant, le message contient une demande de cliquer sur un lien suspect (https://www.phishingurl.com) pour finaliser le processus de remboursement, au lieu de fournir des instructions claires ou de rediriger vers le site officiel du service des impôts. Le langage utilisé peut sembler incitatif et cherche à inciter le destinataire à fournir des informations sensibles en cliquant sur le lien."
),
...
]
t5-base
pretrained model. This means it benefits from knowledge gained from vast amounts of data during its pre-training phase. Transfer learning generally results in faster convergence and better generalization. The approach was based on this blog post.tuples
list contains several email samples. Each tuple in the list consists of:# Import necessary libraries
import random
import pandas as pd
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
from transformers import (
AdamW,
T5ForConditionalGeneration,
T5Tokenizer,
get_linear_schedule_with_warmup
)
# Set random seeds for reproducibility
def set_seed(seed):
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
set_seed(42)
# Check for GPU availability and set the device accordingly
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# Initialize the T5 tokenizer and model using pretrained weights from 't5-base'
tokenizer = T5Tokenizer.from_pretrained('t5-base')
t5_model = T5ForConditionalGeneration.from_pretrained('t5-base').to(device)
# Configure the AdamW optimizer with specific parameters
no_decay = ["bias", "LayerNorm.weight"]
optimizer_grouped_parameters = [
{
"params": [p for n, p in t5_model.named_parameters() if not any(nd in n for nd in no_decay)],
"weight_decay": 0.0,
},
{
"params": [p for n, p in t5_model.named_parameters() if any(nd in n for nd in no_decay)],
"weight_decay": 0.0,
},
]
optimizer = AdamW(optimizer_grouped_parameters, lr=3e-4, eps=1e-8)
# Sample email messages for training, each with a message, label, and detailed description
tuples = [
[
(
"De: contact@laposte.fr\nSujet: Votre colis est en route\nCher client,\nVotre colis a été expédié et est en route vers votre adresse de livraison. Vous pouvez suivre l'état de livraison en utilisant le numéro de suivi suivant : 123456789.\nCordialement,\nL'équipe La Poste",
"Inoffensif",
"Inoffensif. Le message informe le destinataire que son colis a été expédié. Le message fournit un numéro de suivi permettant de suivre l'état de la livraison. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes. Le message ne contient aucun lien web."
),
(
"De: support@orange.fr\nSujet: Promotion spéciale pour les abonnés\nCher abonné,\nNous avons le plaisir de vous informer d'une promotion spéciale réservée exclusivement aux abonnés Orange. Veuillez vous rendre sur notre site web pour plus de détails : https://www.orange.fr/promotion\nCordialement,\nL'équipe Orange",
"Inoffensif",
"Inoffensif. Le message informe les abonnés d'Orange d'une promotion spéciale. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: info@airfrance.fr\nSujet: Réservation confirmée - Votre vol AF123\nCher(e) passager(e),\nVotre réservation pour le vol AF123 a été confirmée. Veuillez consulter les détails de votre vol sur notre site web : https://www.airfrance.fr\nCordialement,\nAir France",
"Inoffensif",
"Inoffensif. Le message confirme la réservation d'un vol (AF123) pour le destinataire. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: info@unicef.fr\nSujet: Appel aux dons pour les enfants défavorisés\nCher donateur,\nNous lançons une campagne d'appel aux dons pour soutenir les enfants défavorisés. Votre contribution peut faire une réelle différence dans la vie de ces enfants. Veuillez visiter notre site web pour faire un don : https://www.unicef.fr/don\nMerci pour votre soutien.\nCordialement,\nUNICEF France",
"Inoffensif",
"Inoffensif. Le message fait appel aux dons pour soutenir les enfants défavorisés. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: contact@booking.com\nSujet: Confirmation de réservation\nCher(e) client(e),\nVotre réservation pour l'hôtel XYZ a été confirmée. Veuillez consulter les détails de votre réservation sur notre site web : https://www.booking.com\nCordialement,\nÉquipe Booking.com",
"Inoffensif",
"Inoffensif. Le message confirme la réservation d'un hôtel (XYZ) pour le destinataire. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: support@orange.fr\nSujet: Maintenance du réseau\nCher(e) client(e),\nNous effectuerons une maintenance sur notre réseau. Pendant cette période, vous pouvez rencontrer des interruptions temporaires des services. Nous nous excusons pour les désagréments occasionnés.\nCordialement,\nService client Orange",
"Inoffensif",
"Inoffensif. Le message informe les clients d'Orange sur une maintenance à venir sur leur réseau. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes. Le message ne contient aucun lien web."
),
(
"De: info@lacoste.fr\nSujet: Votre code de réduction exclusif\nCher(e) client(e),\nVoici votre code de réduction exclusif pour votre prochain achat chez Lacoste : CODE123. Utilisez ce code lors de votre commande sur notre site web : https://www.lacoste.fr\nCordialement,\nÉquipe Lacoste",
"Inoffensif",
"Inoffensif. Le message offre un code de réduction exclusif pour les clients de Lacoste. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: support@linkedin.fr\nSujet: Nouvelle demande de connexion\nCher(e) utilisateur/trice,\nVous avez reçu une nouvelle demande de connexion sur LinkedIn. Connectez-vous à votre compte pour accepter ou refuser la demande : https://www.linkedin.fr\nCordialement,\nÉquipe LinkedIn",
"Inoffensif",
"Inoffensif. Le message informe les utilisateurs de LinkedIn qu'ils ont reçu une nouvelle demande de connexion. Le langage utilisé est professionnel et ne présente pas de caractéristiques suspectes."
),
(
"De: support@impots.gouv.fr\nSujet: Remboursement d'impôts\nCher contribuable,\nNous avons le plaisir de vous informer que vous avez droit à un remboursement d'impôts. Veuillez cliquer sur le lien suivant pour finaliser le processus de remboursement : https://tinyurl.com/btdk39c\nCordialement,\nService des Impôts",
"phishing",
"Phishing. Le message informe le destinataire qu'il a droit à un remboursement d'impôts. Cependant, le message contient une demande de cliquer sur un lien suspect (https://tinyurl.com/btdk39c) pour finaliser le processus de remboursement. Le langage utilisé cherche à inciter le destinataire à fournir des informations sensibles en cliquant sur le lien."
),
(
"De: serviceclient@credit-agricole.fr\nSujet: Mise à jour obligatoire de vos informations\nCher client,\nPour des raisons de sécurité, nous vous demandons de mettre à jour vos informations bancaires en cliquant sur le lien suivant : https://www.creditagricole.fr.wpjsvx0ljnxvxd5pnczgk3olpztff9uzs7egwrv1gcepixsc355ujwinqirag9.adityac... de votre coopération.\nCordialement,\nCrédit Agricole",
"phishing",
"Phishing. Le message contient des caractéristiques typiques de phishing en demandant une mise à jour obligatoire des informations bancaires du destinataire via un lien suspect (https://www.creditagricole.fr.wpjsvx0ljnxvxd5pnczgk3olpztff9uzs7egwrv1gcepixsc355ujwinqirag9.adityacalibrationservice.com). Le langage utilisé cherche à inciter le destinataire à fournir des informations sensibles en cliquant sur le lien."
),
(
"De: serviceclient@paypal.fr\nSujet: Avis important concernant votre compte PayPal\nCher(e) client(e),\nNous avons détecté une activité suspecte sur votre compte PayPal. Veuillez vous connecter à votre compte pour plus d'informations : https://vvww.paypal.fr-----vldfgifeq7dua2hckj.net/webscr.php?cmd=_login-run&dispatch=5885d80a13c0db1... client PayPal",
"phishing",
"Phishing. Le message contient des caractéristiques typiques de phishing en indiquant une activité suspecte sur le compte du destinataire et en redirigeant vers une URL suspecte (https://vvww.paypal.fr-----vldfgifeq7dua2hckj.net/webscr.php?cmd=_login-run&dispatch=5885d80a13c0db1f1ff80d546411d7f8a8350c132bc41e0934cfc023d4e8f9e5348f0abb68a0357a8661323d6b2fc2b4348f0abb68a0357a8661323d6b2fc2b4). Le langage utilisé peut sembler urgent et incite le destinataire à se connecter pour plus d'informations."
),
(
"De: securite@caissedepargne.fr\nSujet: Vérification de votre compte\nCher(e) client(e),\nNous procédons à une vérification de sécurité de votre compte Caisse d'Épargne. Veuillez cliquer sur le lien suivant pour continuer : https://www.emailformwizard.com/form.php?id=caisseepargnefr\nCordialement,\nService de sécurité Caisse d'Épargne",
"phishing",
"Phishing. Le message contient des caractéristiques typiques de phishing en indiquant une vérification de sécurité du compte du destinataire et en redirigeant vers une URL suspecte (https://www.emailformwizard.com/form.php?id=caisseepargnefr). Le langage utilisé incite le destinataire à cliquer sur le lien pour fournir des informations sensibles."
),
(
"De: securite@paypal.fr\nSujet: Action requise - Votre compte est suspendu\nCher utilisateur,\nNous avons temporairement suspendu votre compte PayPal en raison d'une activité suspecte. Pour réactiver votre compte, veuillez cliquer sur le lien suivant et confirmer vos informations : https://wmember.paypal.com.cgi.bin.webscr.cmd.flow.session.lohzumu98pjkwkwudgtj3ie6btlub.online77588... de sécurité PayPal",
"phishing",
"Phishing. Le message contient des caractéristiques typiques de phishing en signalant la suspension du compte PayPal du destinataire en raison d'une activité suspecte et en redirigeant vers une URL suspecte (https://member.paypal.com.cgi.bin.webscr.cmd.flow.session.lohzumu98pjkwkwudgtj3ie6btlub.online775885d80a13c0db1f8e263663d3faee8d43b1bb6ca3ufquez.craftycarlos.com/e69373d909ae778218b770b4b62b175a/). Le langage utilisé peut sembler urgent et incite le destinataire à cliquer sur le lien pour fournir des informations sensibles."
),
(
"De: securite@bnp-paribas.fr\nSujet: Votre compte BNP Paribas nécessite une mise à jour\nCher(e) client(e),\nNous avons remarqué une activité inhabituelle sur votre compte BNP Paribas. Veuillez mettre à jour votre compte en suivant ce lien : https://www.bnp-paribas-securite.fr/mise-a-jour\nCordialement,\nService de sécurité BNP Paribas",
"phishing",
"Phishing. Le message contient une URL suspecte (https://www.bnp-paribas-securite.fr/mise-a-jour) qui peut tromper les destinataires en pensant qu'il s'agit du site officiel de BNP Paribas. Le message demande aux destinataires de mettre à jour leur compte en suivant le lien, ce qui est une tactique courante utilisée par les attaquants pour voler des informations sensibles."
),
]
]
# Move the model to the GPU if available
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
t5_model.to(device)
# Set the model to training mode
t5_model.train()
# Training configuration
epochs = 20
max_length=256
# Training loop
for epoch in range(epochs):
print("epoch ", epoch)
for input, label, output in tuples:
# Prefix the input with "classify:" and tokenize both input and output
input_sent = "classify: " + input + " </s>"
output_sent = output + " </s>"
tokenized_inp = tokenizer.encode_plus(input_sent, max_length=max_length, pad_to_max_length=True, return_tensors="pt")
tokenized_output = tokenizer.encode_plus(output_sent, max_length=max_length, pad_to_max_length=True, return_tensors="pt")
# Move tokenized data to the chosen device
input_ids = tokenized_inp["input_ids"].to(device)
attention_mask = tokenized_inp["attention_mask"].to(device)
lm_labels = tokenized_output["input_ids"].to(device)
decoder_attention_mask = tokenized_output["attention_mask"].to(device)
# Forward pass: compute predictions and loss
output = t5_model(input_ids=input_ids, lm_labels=lm_labels, decoder_attention_mask=decoder_attention_mask,
attention_mask=attention_mask)
loss = output[0]
print("Loss: ", loss.item())
# Backward pass: compute gradients and update model parameters
loss.backward()
optimizer.step()
optimizer.zero_grad()
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.