
Zeek Notice Telegram (edizione ZeekJS)
Questo pacchetto reimplementa zeek-notice-telegram in TypeScript (ZeekJS) per aggirare l'inaffidabilità di ActiveHTTP.
Prende in prestito sia il pacchetto di Yacin sopra menzionato sia la reimplementazione ZeekJS dell'ispirazione originale di quel pacchetto (zeek-notice-slack), che ora è zeekjs-notice-slack.
La rigenerazione di scripts/telegram.js dal sorgente TypeScript può essere effettuata eseguendo npm install && npm run build.
L'uso di base è identico a zeek-notice-telegram. Per ricapitolare, lo si potrebbe usare così:
@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];
}
}
Il mancato invio di un notice via Telegram non interrompe l'elaborazione degli hook di notice. Invece, vengono forniti hook di Zeek per gestire sia i casi di errore sia, se desiderato, l'invio riuscito dei messaggi:
Notice::telegram_notice_succeeded quando tutto è OK;Notice::telegram_notice_api_error quando l'API di Telegram stessa risponde con un errore;Notice::telegram_notice_network_error quando qualcosa va storto nella comunicazione con l'API di Telegram.Vedi il caso btest per un esempio di utilizzo di questi hook.
Un caso btest simula l'API di Telegram e verifica sia il successo sia diverse condizioni di errore.
Per eseguire i test, entra nella directory testing ed esegui make.