
Exploit proof-of-concept per CVE-2019-17041, un buffer overflow nel parser di rsyslog, che dimostra l'esecuzione remota di codice.
Rsyslog is a rocket-fast system for log processing.
Offre elevate prestazioni, ottime funzionalità di sicurezza e un design modulare. Sebbene sia nato come un normale syslogd, rsyslog si è evoluto in una specie di coltellino svizzero del logging, in grado di accettare input da un'ampia varietà di fonti, trasformarli e inviare i risultati a diverse destinazioni.
Rsyslog può consegnare oltre un milione di messaggi al secondo verso destinazioni locali quando si applica un'elaborazione limitata (basato su v7, dicembre 2013). Anche con destinazioni remote ed elaborazioni più complesse, le prestazioni sono generalmente considerate "sbalorditive".
http://lists.adiscon.net/mailman/listinfo/rsyslog
La maggior parte delle distribuzioni include rsyslog nei propri repository. Di solito è sufficiente utilizzare il gestore di pacchetti per installarlo. Sui sistemi non-systemd (in particolare Ubuntu), rsyslog è solitamente già installato.
Purtroppo le distribuzioni spesso non seguono il ritmo dello sviluppo di rsyslog e quindi offrono solo versioni obsolete. Per risolvere questo problema, abbiamo creato noi stessi dei pacchetti per le versioni correnti.
Sono disponibili per:
Segui le istruzioni su: https://www.rsyslog.com/doc/v8-stable/installation/build_from_repo.html
In generale, ti servono
È meglio compilare questi pacchetti dai sorgenti.
Per json-c, serve:
export PKG_CONFIG_PATH=/lib64/pkgconfig/
sudo yum install git valgrind autoconf automake flex bison python-docutils python-sphinx json-c-devel libuuid-devel libgcrypt-devel zlib-devel openssl-devel libcurl-devel gnutls-devel mysql-devel postgresql-devel libdbi-dbd-mysql libdbi-devel net-snmp-devel
Aggiungi il repository Adiscon:
apt-get update && apt-get install -y software-properties-common
add-apt-repository -y ppa:adiscon/v8-stable
Nota: se sei uno sviluppatore che vuole lavorare con il ramo git master, aggiungere il repository Adiscon probabilmente non è una buona idea. In tal caso è meglio compilare anche le librerie di supporto dai sorgenti, perché le versioni più recenti di rsyslog potrebbero richiedere versioni più recenti delle librerie rispetto a quelle presenti nei repository. Le librerie in questione sono almeno: libestr, liblognorm, libfastjson.
Pacchetti necessari per compilare con supporto omhiredis:
apt-get update && apt-get install -y build-essential pkg-config libestr-dev libfastjson-dev zlib1g-dev uuid-dev libgcrypt20-dev liblogging-stdlog-dev libhiredis-dev uuid-dev libgcrypt11-dev liblogging-stdlog-dev flex bison
Pacchetti aggiuntivi per altri moduli:
libdbi-dev libmysqlclient-dev postgresql-client libpq-dev libnet-dev librdkafka-dev libgrok-dev libgrok1 libgrok-dev libpcre3-dev libtokyocabinet-dev libglib2.0-dev libmongo-client-dev
Per KSI, dal PPA di Adiscon:
sudo apt-get install libksi0 libksi-devel
sudo apt install build-essential pkg-config libestr-dev libfastjson-dev zlib1g-dev uuid-dev libgcrypt20-dev libcurl4-gnutls-dev zlib1g-dev liblogging-stdlog-dev liblogging-stdlog-dev flex bison
Nota: per alcune librerie i requisiti di versione potrebbero essere più elevati, in tal caso l'aggiunta dei repository backports di Debian potrebbe essere d'aiuto. Ad esempio, installando con apt libfastjson-dev -t stretch-backports.
Pacchetti aggiuntivi per altri moduli:
libdbi-dev libmysqlclient-dev postgresql-client libpq-dev libnet-dev librdkafka-dev libgrok-dev libgrok1 libgrok-dev libpcre3-dev libtokyocabinet-dev libglib2.0-dev libmongo-client-dev
sudo zypper install gcc make autoconf automake libtool libcurl-devel flex bison valgrind python-docutils libjson-devel uuid-devel libgcrypt-devel libgnutls-devel libmysqlclient-devel libdbi-devel libnet-devel postgresql-devel net-snmp-devellibuuid-devel libdbi-drivers-dbd-mysql
Per le VM del testbench:
sudo zypper install gvim mutt
Pacchetti disponibili:
zypper install gcc make autoconf libtool flex bison
Pacchetti mancanti:
libcurl-devel valgrind python-docutils uuid-devel libgcrypt-devel libgnutls-devel libmysqlclient-devel libdbi-devel postgresql-devel net-snmp-devel libdbi-drivers-dbd-mysql json-c zlib-dev libdbi
Parla con la mailing list se pensi che qualcosa sia un bug. Spesso si tratta solo di fare qualche trucco di configurazione.
Segnala i bug su: https://github.com/rsyslog/rsyslog/issues
I contributi a rsyslog sono molto benvenuti. Fai un fork e inviaci le tue Pull Request.
Per maggiori informazioni su come contribuire, consulta il file CONTRIBUTING.
Nota che è facile aggiungere plugin di output utilizzando linguaggi come Python o Perl. Quindi, se hai bisogno di connetterti a un sistema non ancora supportato, puoi farlo facilmente tramite un plugin esterno. Per maggiori informazioni vedi il file README nella directory dei plugin esterni.
La documentazione principale di rsyslog è disponibile in formato HTML. Per leggerla, punta il tuo browser web su ./doc/manual.html. In alternativa, puoi visualizzare la documentazione per la versione più recente di rsyslog online su: https://www.rsyslog.com/doc/
Siamo un progetto open source sotto tutti gli aspetti e molto aperti al feedback e ai contributi esterni. Basiamo il nostro lavoro su standard e cerchiamo di risolvere tutte le esigenze del mondo reale (ovviamente, a volte falliamo nell'affrontare effettivamente tutte le esigenze ;)). Sebbene il progetto sia principalmente sponsorizzato da Adiscon, lo sviluppo tecnico è indipendente dagli obiettivi aziendali e la maggior parte delle decisioni si basa esclusivamente sui risultati delle discussioni in mailing list. C'è una comunità attiva attorno a rsyslog.
Non esiste una cosa come essere un membro ufficiale del team di rsyslog. La cosa più simile è essere iscritti alla mailing list: http://lists.adiscon.net/mailman/listinfo/rsyslog
Questo metodo di discussioni aperte è modellato sul processo IETF, che è probabilmente il corpo di standardizzazione collaborativo più noto e di maggior successo.
Il principale sponsor di rsyslog, Adiscon, cerca di finanziare rsyslog vendendo contratti di sviluppo personalizzato e supporto. Adiscon NON concede in licenza rsyslog sotto una licenza commerciale (questo è semplicemente impossibile per chiunque a causa della struttura di licenza di rsyslog).
Anche terze parti sono ovviamente libere di offrire sviluppo personalizzato, supporto e consulenza su rsyslog. Integriamo volentieri i risultati di tali lavori di terze parti nel repository principale (a condizione che rispettino i pochi elementi essenziali scritti nella nostra politica di contribuzione).