
Zeek Notice Telegram (ZeekJS edition)
Ce paquet réimplémente zeek-notice-telegram en TypeScript (ZeekJS) afin de contourner le manque de fiabilité d'ActiveHTTP.
Il s'inspire à la fois du paquet de Yacin mentionné ci-dessus et de la réimplémentation ZeekJS de l'inspiration originale de ce paquet (zeek-notice-slack) qui est désormais zeekjs-notice-slack.
La régénération de scripts/telegram.js à partir de la source TypeScript peut être effectuée en
exécutant npm install && npm run build.
L'utilisation de base est identique à celle de zeek-notice-telegram. Pour rappel, on peut l'utiliser de cette façon :
@load base/frameworks/notice
export {
redef enum Notice::Type += {
Notice::SSHLoginSuccessful,
};
// NOTE: vous devez les définir !
redef Notice::telegram_token = "xxx";
redef Notice::telegram_chat_id = "yyy";
}
event ssh_auth_successful(c: connection, auth_method_none: bool)
{
NOTICE([$note=Notice::SSHLoginSuccessful, $conn=c, $msg="Login detected"]);
}
hook Notice::policy(n: Notice::Info)
{
if ( n$note == Notice::SSHLoginSuccessful )
{
add n$actions[Notice::ACTION_TELEGRAM];
}
}
L'échec de l'envoi d'une notice via Telegram n'interrompt pas le traitement du hook de notice. À la place, des hooks zeek sont fournis pour gérer à la fois les cas d'erreur et (si souhaité) les cas où les messages sont envoyés avec succès :
Notice::telegram_notice_succeeded lorsque tout se passe bien ;Notice::telegram_notice_api_error lorsque l'API Telegram elle-même répond avec une erreur ;Notice::telegram_notice_network_error lorsqu'un problème survient lors de la communication avec l'API Telegram.Voir le cas de test btest pour un exemple utilisant ces hooks.
Un cas de test btest simule l'API Telegram et exerce les conditions de succès ainsi que différentes conditions d'erreur.
Pour exécuter les tests, entrez dans le répertoire testing et lancez make.