
Zeek Notice Telegram (ZeekJS-Edition)
Dieses Paket implementiert zeek-notice-telegram in TypeScript (ZeekJS) neu, um die Unzuverlässigkeit von ActiveHTTP zu umgehen.
Es übernimmt sowohl Yacins oben genanntes Paket als auch die ZeekJS-Neuimplementierung der ursprünglichen Inspiration jenes Pakets (zeek-notice-slack), die nun als zeekjs-notice-slack vorliegt.
Das erneute Generieren von scripts/telegram.js aus dem TypeScript-Quellcode erfolgt durch Ausführen von npm install && npm run build.
Die grundlegende Verwendung ist identisch mit der von zeek-notice-telegram. Kurz zusammengefasst kann man es folgendermaßen verwenden:
@load base/frameworks/notice
export {
redef enum Notice::Type += {
Notice::SSHLoginSuccessful,
};
// NOTE: you must define these!
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];
}
}
Wenn das Senden einer Notice über Telegram fehlschlägt, wird die Verarbeitung der Notice-Hooks nicht gestoppt. Stattdessen werden Zeek-Hooks bereitgestellt, um sowohl Fehlerfälle als auch (falls gewünscht) erfolgreich gesendete Nachrichten zu behandeln:
Notice::telegram_notice_succeeded, wenn alles in Ordnung ist;Notice::telegram_notice_api_error, wenn die Telegram-API selbst mit einem Fehler antwortet;Notice::telegram_notice_network_error, wenn bei der Kommunikation mit der Telegram-API etwas schiefgeht.Siehe den btest-Testfall für ein Beispiel mit diesen Hooks.
Ein btest-Testfall simuliert die Telegram-API und testet den Erfolgsfall sowie verschiedene Fehlerbedingungen.
Um die Tests auszuführen, wechseln Sie in das Verzeichnis testing und führen Sie make aus.