CentOS 6.8 herramientas de red - ¿Está comprometido uno de estos?

0

Tengo un sistema CentOS 6.8 que está ejecutando Tripwire (la versión Open Source). El sistema se encuentra en una red interna detrás de un firewall que no reenvía ninguna conexión entrante. Es decir. El sistema Centos puede acceder a Internet pero tiene una dirección no enrutable (en 10/8) y no se puede acceder directa o indirectamente desde el exterior.

Se está preparando para ser un firewall y no tiene puertos abiertos en iptables, excepto que ssh se ejecuta en un puerto no estándar y permite solo la autenticación basada en claves. He verificado esto con nmap.

Ayer instalé algunas herramientas de depuración de red:

Jan 15 15:55:55 Installed: compat-readline5-5.2-17.1.el6.x86_64
Jan 15 15:55:56 Installed: socat-1.7.2.3-1.el6.x86_64
Jan 15 15:56:54 Installed: libnetfilter_conntrack-0.0.100-2.el6.x86_64
Jan 15 15:56:54 Installed: iptstate-2.2.2-4.el6.x86_64
Jan 15 16:06:22 Installed: iperf-2.0.5-11.el6.x86_64

y luego corrió

tripwire --check -I 

para actualizar la base de datos. Todo se veía bien en el informe, los cambios marcados coincidían con las cosas instaladas por los RPM.

Tripwire se ejecutó durante la noche y marcó un montón de cambios, incluidos los cambios en los binarios de Tripwire.

Supongo que esto significa que una de esas herramientas está comprometida y cuando la ejecuté (con sudo, por supuesto), descargó e implementó un montón de cosas. La lista completa de cambios detectados por Tripwire es:

"/usr/sbin"
"/usr/sbin/abrt-auto-reporting"
"/usr/sbin/abrt-dbus"
"/usr/sbin/abrt-server"
"/usr/sbin/arpaname"
"/usr/sbin/crda"
"/usr/sbin/ddns-confgen"
"/usr/sbin/dnssec-dsfromkey"
"/usr/sbin/dnssec-keyfromlabel"
"/usr/sbin/dnssec-keygen"
"/usr/sbin/dnssec-revoke"
"/usr/sbin/dnssec-settime"
"/usr/sbin/dnssec-signzone"
"/usr/sbin/genrandom"
"/usr/sbin/hald"
"/usr/sbin/iftop"
"/usr/sbin/iptstate"
"/usr/sbin/isc-hmac-fixup"
"/usr/sbin/latencytop"
"/usr/sbin/makedumpfile"
"/usr/sbin/mtr"
"/usr/sbin/named-checkconf"
"/usr/sbin/named-checkzone"
"/usr/sbin/named-journalprint"
"/usr/sbin/nethogs"
"/usr/sbin/nsec3hash"
"/usr/sbin/nstat"
"/usr/sbin/ntsysv"
"/usr/sbin/oddjobd"
"/usr/sbin/powertop"
"/usr/sbin/regdbdump"
"/usr/sbin/rndc"
"/usr/sbin/rndc-confgen"
"/usr/sbin/rtacct"
"/usr/sbin/setup"
"/usr/sbin/sssd"
"/usr/sbin/unbound-anchor"

"/usr/sbin/siggen"
"/usr/sbin/tripwire"
"/usr/sbin/twadmin"
"/usr/sbin/twprint"
"/usr/lib/cups/filter"
"/usr/lib/cups/filter/pdftoraster"
"/usr/lib/rpm"
"/usr/lib/rpm/debugedit"
"/usr/lib/rpm/rpmdeps"

"/usr/lib64"
"/usr/lib64/gettext"
"/usr/lib64/gettext/gnu.gettext.DumpResource"
"/usr/lib64/gettext/gnu.gettext.GetURL"
"/usr/lib64/graphviz"
"/usr/lib64/graphviz/libgvplugin_neato_layout.so.6.0.0"
"/usr/lib64/libQt3Support.so.4.6.2"
"/usr/lib64/libQtCLucene.so.4.6.2"
"/usr/lib64/libQtCore.so.4.6.2"
"/usr/lib64/libQtDBus.so.4.6.2"
"/usr/lib64/libQtGui.so.4.6.2"
"/usr/lib64/libQtHelp.so.4.6.2"
"/usr/lib64/libQtNetwork.so.4.6.2"
"/usr/lib64/libQtSql.so.4.6.2"
"/usr/lib64/libQtXml.so.4.6.2"
"/usr/lib64/libSDL-1.2.so.0.11.3"
"/usr/lib64/libXfont.so.1.4.1"
"/usr/lib64/libabrt.so.0.0.1"
"/usr/lib64/libabrt_dbus.so.0.0.1"
"/usr/lib64/libabrt_web.so.0.0.1"
"/usr/lib64/libaugeas.so.0.16.0"
"/usr/lib64/libbind9.so.80.0.4"
"/usr/lib64/libcairo.so.2.10800.8"
"/usr/lib64/libcloog.so.0.0.0"
"/usr/lib64/libcups.so.2"
"/usr/lib64/libcupsimage.so.2"
"/usr/lib64/libdns.so.81.4.1"
"/usr/lib64/libexslt.so.0.8.15"
"/usr/lib64/libfprint.so.0.0.0"
"/usr/lib64/libgd.so.2.0.0"
"/usr/lib64/libgdk-x11-2.0.so.0.2400.23"
"/usr/lib64/libgdk_pixbuf-2.0.so.0.2400.1"
"/usr/lib64/libgmpxx.so.4.1.0"
"/usr/lib64/libgs.so.8.70"
"/usr/lib64/libgstbase-0.10.so.0.25.0"
"/usr/lib64/libgstinterfaces-0.10.so.0.20.0"
"/usr/lib64/libgstreamer-0.10.so.0.25.0"
"/usr/lib64/libgstvideo-0.10.so.0.20.0"
"/usr/lib64/libgtk-x11-2.0.so.0.2400.23"
"/usr/lib64/libgvc.so.5.0.0"
"/usr/lib64/libgvpr.so.1.0.0"
"/usr/lib64/libhunspell-1.2.so.0.0.0"
"/usr/lib64/libisc.so.83.0.3"
"/usr/lib64/libisccc.so.80.0.0"
"/usr/lib64/libisccfg.so.82.0.1"
"/usr/lib64/libjasper.so.1.0.0"
"/usr/lib64/liblcms.so.1.0.19"
"/usr/lib64/liblua-5.1.so"
"/usr/lib64/liblwres.so.80.0.2"
"/usr/lib64/libmng.so.1.0.0"
"/usr/lib64/libnetfilter_conntrack.so.3.0.0"
"/usr/lib64/libnewt.so.0.52.11"
"/usr/lib64/libnfnetlink.so.0.2.0"
"/usr/lib64/libnl-3.so.200.16.1"
"/usr/lib64/libnl-route-3.so.200.16.1"
"/usr/lib64/libopenjpeg.so.2.1.3.0"
"/usr/lib64/libpango-1.0.so.0.2800.1"
"/usr/lib64/libpangocairo-1.0.so.0.2800.1"
"/usr/lib64/libpangoft2-1.0.so.0.2800.1"
"/usr/lib64/libpangox-1.0.so.0.2800.1"
"/usr/lib64/libpangoxft-1.0.so.0.2800.1"
"/usr/lib64/libpathplan.so.4.0.0"
"/usr/lib64/libphonon.so.4.3.1"
"/usr/lib64/libpixman-1.so.0.32.8"
"/usr/lib64/libpng12.so.0.49.0"
"/usr/lib64/libpoppler.so.5.0.0"
"/usr/lib64/libppl.so.7.1.0"
"/usr/lib64/libppl_c.so.2.1.0"
"/usr/lib64/libproxy.so.0.0.0"
"/usr/lib64/libpython2.6.so.1.0"
"/usr/lib64/libreport.so.0.0.1"
"/usr/lib64/librpm.so.1.0.0"
"/usr/lib64/librpmbuild.so.1.0.0"
"/usr/lib64/librpmio.so.1.0.0"
"/usr/lib64/librrd.so.4.0.7"
"/usr/lib64/libsatyr.so.3.0.0"
"/usr/lib64/libslang.so.2.2.1"
"/usr/lib64/libsnappy.so.1.1.4"
"/usr/lib64/libtiff.so.3.9.4"
"/usr/lib64/libunbound.so.2.1.5"
"/usr/lib64/libvorbis.so.0.4.3"
"/usr/lib64/libvorbisenc.so.2.0.6"
"/usr/lib64/libxml2.so.2.7.6"
"/usr/lib64/libxmlrpc.so.3.16"
"/usr/lib64/libxmlrpc_client.so.3.16"
"/usr/lib64/libxslt.so.1.1.26"
"/usr/lib64/perl5/CORE"
"/usr/lib64/perl5/CORE/libperl.so"
"/usr/lib64/qt-3.3/lib"
"/usr/lib64/qt-3.3/lib/libqt-mt.so.3.3.8"

"/sbin"
"/sbin/alsactl"
"/sbin/cryptsetup"
"/sbin/dm_dso_reg_tool"
"/sbin/dmevent_tool"
"/sbin/dmraid"
"/sbin/ifrename"
"/sbin/ip6tables-multi-1.4.7"
"/sbin/iptables-multi-1.4.7"
"/sbin/iw"
"/sbin/iwconfig"
"/sbin/iwevent"
"/sbin/iwgetid"
"/sbin/iwlist"
"/sbin/iwpriv"
"/sbin/iwspy"
"/sbin/kpartx"
"/sbin/parted"
"/sbin/partprobe"
"/sbin/pdata_tools"
"/sbin/plymouthd"
"/sbin/tc"

"/etc"

"/bin"
"/bin/find"
"/bin/gawk"
"/bin/plymouth"
"/bin/rpm"
"/bin/traceroute"

"/lib64"
"/lib64/libasound.so.2.0.0"
"/lib64/libcryptsetup.so.1.1.0"
"/lib64/libdevmapper-event.so.1.02"
"/lib64/libdevmapper.so.1.02"
"/lib64/libdmraid.so.1.0.0.rc16"
"/lib64/libiw.so.29"
"/lib64/libnl.so.1.1.4"
"/lib64/libparted-2.1.so.0.0.0"
"/lib64/libply-splash-core.so.2.0.0"
"/lib64/libply.so.2.0.0"
"/lib64/libreadline.so.5.2"

La mayoría de los cambios marcados por Tripwire afectan el número de inodo, MD5 y CRD32, y para algunos archivos la hora de cambio. Una búsqueda en Google no reveló ninguna noticia de un compromiso en ninguna de estas herramientas.

Información adicional: Al examinar / var / log / secure, veo que el único comando sudo que ejecuté después de actualizar la base de datos de Tripwire fue iftop , por lo que eso podría reducir las cosas un poco.

Mi primer pensamiento fue que, de alguna manera, las actualizaciones automáticas se activaron. Sin embargo, no puedo encontrar evidencia de que haya ocurrido una actualización. No hay nada en yum.log y el registro cron tampoco muestra actualizaciones. Aquí hay una lista de los servicios actualmente habilitados:

> chkconfig --list|grep :on
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrt-oops       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
blk-availability    0:off   1:on    2:on    3:on    4:on    5:on    6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
dhcpd           0:off   1:off   2:off   3:on    4:on    5:on    6:off
dkms_autoinstaller  0:off   1:off   2:on    3:on    4:on    5:on    6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
kdump           0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
mcelogd         0:off   1:off   2:off   3:on    4:off   5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
messagebus      0:off   1:off   2:on    3:on    4:on    5:on    6:off
named           0:off   1:off   2:off   3:on    4:on    5:on    6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
nmb             0:off   1:off   2:off   3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:off   3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
smb             0:off   1:off   2:off   3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off

La única "anomalía" aquí es dkms_autoinstaller que fue activada por una actualización reciente a dkms . Sin embargo, parece que se ejecuta solo en el momento del arranque y el sistema no se ha reiniciado en varios días.

Aquí hay un extracto del registro del sistema, con algunas anotaciones (las anotaciones se refieren a la línea anterior):

> sudo egrep -v 'dhclient|dhcpd|named' messages
Jan 15 04:21:01 perseus rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1669" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jan 15 04:25:12 perseus tripwire[32032]: Integrity Check Complete: /var/lib/tripwire/perseus.jhmg.pvt.twd TWReport perseus.jhmg.pvt 20170115042107 V:4 S:100 A:0 R:0 C:4
^^^ Overnight Tripwire run, 4 violations that I expected

Jan 15 15:53:38 perseus kernel: device eth1 entered promiscuous mode
Jan 15 15:54:03 perseus kernel: device eth1 left promiscuous mode
^^^ Me running tcpdump

Jan 15 15:55:55 perseus yum[2260]: Installed: compat-readline5-5.2-17.1.el6.x86_64
Jan 15 15:55:56 perseus yum[2260]: Installed: socat-1.7.2.3-1.el6.x86_64
Jan 15 15:56:54 perseus yum[2268]: Installed: libnetfilter_conntrack-0.0.100-2.el6.x86_64
Jan 15 15:56:54 perseus yum[2268]: Installed: iptstate-2.2.2-4.el6.x86_64
Jan 15 15:56:59 perseus kernel: Netfilter messages via NETLINK v0.30.
Jan 15 15:56:59 perseus kernel: ctnetlink v0.93: registering with nfnetlink.
Jan 15 16:06:22 perseus yum[2340]: Installed: iperf-2.0.5-11.el6.x86_64
^^^ Installed and tested some network tools

Jan 15 16:12:58 perseus tripwire[2372]: Integrity Check Complete: /var/lib/tripwire/perseus.jhmg.pvt.twd TWReport perseus.jhmg.pvt 20170115160857 V:17 S:100 A:7 R:0 C:10
^^^ Manual execution of Tripwire, database updated

Jan 16 03:29:31 perseus tripwire[6067]: Integrity Check Complete: /var/lib/tripwire/perseus.jhmg.pvt.twd TWReport perseus.jhmg.pvt 20170116032536 V:177 S:100 A:0 R:0 C:177
^^^ Auto run of Tripwire overnight showing 177 violations, all "changes"
    
pregunta Jim Garrison 16.01.2017 - 19:07
fuente

1 respuesta

0

No puedo encontrar pruebas de que las actualizaciones se apliquen automáticamente, y tanto las bases de datos yum como rpm coinciden en que no se instaló nada.

Creo que encontré al culpable, y ahora me siento bastante estúpido (cuelga la cabeza avergonzado):

prelink

El examen cuidadoso de la lista de archivos modificados reveló que SOLAMENTE se tocaron los binarios, no se modificó un solo archivo de texto. Esto es lo que se esperaría si prelink hiciera su trabajo y decidiera que necesitaba reorganizar el diseño de la memoria.

Ya que se ejecuta todos los días y no causó este problema anteriormente, debe haber algo en los paquetes que instalé que hizo que tomara nota y decidiera comenzar a trabajar. Quizás fue libnetfilter_conntrack o compat-readline5 .

De todos modos creo que el problema está resuelto. Si alguien no está de acuerdo, se agradecería un comentario o una contra-respuesta. Esperaré un día o dos antes de aceptar por si acaso. Pensé en eliminar la pregunta, pero podría ser útil para otra persona.

    
respondido por el Jim Garrison 17.01.2017 - 23:34
fuente

Lea otras preguntas en las etiquetas