Você está na página 1de 11

3/6/2014 Gua breve Tripwire

http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 1/11
GuabreveTripwire
Abstract
EstaesunaguabreveparautilizarTripwireenLinux.Sedesarrollen
ambienteRedHat7.1sinembargo,debesertilencualquierotroOS
compatible.
Tabladecontenidos
Introduccin
ConfiguracindeTripwire
ConfiguracinpermanentedeTripwire
Eliminacindearchivosdetexto
Scriptcheck_twpol.sh
Introduccin
PorquusarTripwire?
Paramejorarlaseguridaddesusistema.
Noexistenlossistemascomputacionalesperfectoseinvulnerablesquedesearamos,ysiempreestaremosexpuestosaataques.Msallde
todaslasmedidaspreventivasquetomemos(firewalls,patches,polticas,etc.)siemprecabelaposibilidaddeseralcanzadosporunhacker.Los
ataquesexitososatravsdelaredtpicamenteinvolucranlamodificacinparcialdelsistemamediantelaalteracinoreemplazodeciertos
archivos,locualsueleserempleadoporelatacanteparaposteriormentetomarelcontroltotaldelsistema.
Tripwireasumequetodosloscontrolesdeseguridadhanfallado,yquenuestrosistemayahasidoalteradoalmenos,parcialmente.Sin
embargo,partedelartedelosatacantesconsisteennoserdescubiertos,yparaestoempleandiversastcnicasrelativamentesofisticadas.
Tripwireservirparaalertaraladministradordeestoscambios(loscualesdeotromodopodranpasardesapercibidosporsemanasomeses)a
findetomaraccionesconrapidez.
Paraesto,Tripwiremonitorearutinariamentelaintegridaddeunagrancantidaddearchivosquetiendenaserblancodelosatacantes.Sin
embargo,esteprocesoespesado,ysesueleejecutaraintervalosporejemplo,diariosointerdiarios,aunquenohayningunarestriccin(salvo
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 2/11
derecursos)paranolanzarlocadamediahora.
InstalarTripwire
DescarguelaversinopensourcedeTripwiredelsitewww.tripwire.org.Elijalaversinquecorrespondamejorasusistemaoperativo.
TripwirenormalmentesedistribuyeenunarchivoRPMquevieneempacadoenformatoTARcomprimido.Enesteltimocaso,usar:
# tar xvzf tripwire.tar.gz
Locualdeberagenerarelarchivotripwire-2.3-47.i386.rpm(elnombreexactodependerdesuversin.)
Ahorainstlelo:
# rpm -ivh tripwire-2.3-47.i386.rpm
Nota:EndiversasdistribucionesdeLinux,incluyendoRedHat7.2ysuperiores,Tripwireyaestinstalado,raznporlacualestepasopuede
nosernecesario.
ConfiguracindeTripwire
DefinirlasclavesdeTripwire
Tripwireutilizadosclaves(quepuedenserpalabrasuoraciones)paraalmacenarsuinformacin.Unadeellas,la"sitekey"o"clavedelsite",
seempleaparaencriptarlosarchivosdeconfiguracinydelaspolticas.Laotrala"localkey"o"clavelocal",seusaparaencriptarla
informacinreferidaalestadodelosarchivosdelsistemaquesemonitorean.
Ud.necesitaestasdosclavesparalastareasdeadministracindeTripwire.EstassedebenintroducirtanprontocomosehainstaladoTripwire
medianteelcomando:
# /etc/tripwire/twinstall.sh
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 3/11
Recurdelasbien,oantelasenunlugarseguro.
Configurarelarchivodepolticas
LaconfiguracindelosarchivosquevanasermonitoreadosporTripwiresemantieneenungranarchivoconocidocomo"archivode
polticas"(policyfile.)Sumanipulacinesalgotediosadadasuextensin.Tripwirevieneconunarchivoquesirvede"plantilla"paraser
modificado.Estearchivoes:/etc/tripwire/twpol.txt.
Ud.puedemodificarlodirectamenteconuneditordetexto(aunqueleaconsejoqueguardeunacopiasinmodificardelmismo.)
Ahoraharemosunaobservacinderdenprcticoydidctico:Tripwireporlogeneraltomavariosminutosencadaunadesusejecuciones,y
siUd.nuncalohausado,probablementeleresultardesesperanteaguardarmuchotiemposinsabersilascosasestnyendobienomal.Por
estemotivoyosugieroqueempecemosconunaversinreducida(ycasiintil)delarchivodepolticas.UnavezqueUd.comprendaelproceso
completo,podrretomarelarchivooriginalyaprovecharlo.
Nuevamentevalaadvertencia:hagaunacopiadeseguridaddelarchivotwpol.txt.
Pararecortarelarchivoproporcionado,simplementeuseuneditordetexto(comovi)ybusquelaseccin"FileSystemandDiskAdministraton
Programs"(queenelarchivoqueyotengo,seubicaapartirdelalnea185.)Unextractodeesaseccinespresentadoaqu:
...
################################################ #
# File System and Disk Administration Programs # #
################################################
(
rulename = "File System and Disk Administraton Programs",
severity = $(SIG_HI)
)
{
/sbin/accton -> $(SEC_CRIT) ;
/sbin/badblocks -> $(SEC_CRIT) ;
/sbin/dosfsck -> $(SEC_CRIT) ;
/sbin/e2fsck -> $(SEC_CRIT) ;
/sbin/debugfs -> $(SEC_CRIT) ;
/sbin/dumpe2fs -> $(SEC_CRIT) ;
/sbin/dump -> $(SEC_CRIT) ;
...
ComoUd.yaseimaginar,estocorrespondeaunconjuntodearchivosquesemonitoreanporTripwire.Nosotrosreduciremoslaextensalista
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 4/11
recortandoelarchivoenestaseccin.Porejemplo,haciendoquetermineen/sbin/e2fsck:
...
################################################ #
# File System and Disk Administration Programs # #
################################################
(
rulename = "File System and Disk Administraton Programs",
severity = $(SIG_HI)
)
{
/sbin/accton -> $(SEC_CRIT) ;
/sbin/badblocks -> $(SEC_CRIT) ;
/sbin/dosfsck -> $(SEC_CRIT) ;
/sbin/e2fsck -> $(SEC_CRIT) ;
}
# AHORA AQUI TERMINA EL ARCHIVO. OBSERVE LA LLAVE DE CIERRE.
Comoseve,hemosrecortadolapartequeestabamsabajode/sbin/e2fsck,yhemostenidocuidadodeaadirunallavedecierre(})para
mantenerlasintaxisdelarchivo.Afindeverlosposibleserroresconquenospodemosencontrar,sugieroallectorqueaadaunarchivo
inexistentealalista:
...
################################################ #
# File System and Disk Administration Programs # #
################################################
(
rulename = "File System and Disk Administraton Programs",
severity = $(SIG_HI)
)
{
/sbin/accton -> $(SEC_CRIT) ;
/sbin/badblocks -> $(SEC_CRIT) ;
/sbin/dosfsck -> $(SEC_CRIT) ;
/sbin/e2fsck -> $(SEC_CRIT) ;
# ARCHIVO DE PRUEBA INEXISTENTE AADIDO. OBSERVE QUE ESTA
# UBICADO ANTES DE LA LLAVE DE CIERRE
/sbin/lechuga -> $(SEC_CRIT) ;
}
# AHORA AQUI TERMINA EL ARCHIVO
Tengacuidadodenoinsertarestearchivopordebajodelallavedecierredelgrupo.Recuerdequemstardedebervrselasconelarchivo
originalquecontiene(enmicaso)452entradas.
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 5/11
Instalarelarchivodepolticas
Cuandoelarchivodepolticascontienetodoloquepretendemosmonitorear,esmenester"instalarlo".EnrealidadTripwireusaunaversin
compiladayencriptadadeestearchivo,quesealmacenaen/etc/tripwire/tw.pol.Paragenerarlo(yregenerarlocuantasvecessenecesite),
usar:
# twadmin -m P /etc/tripwire/twpol.txt
ConstruirlabasededatosTripwire
Unavezconfiguradoeinstaladoelarchivodepolticas,Tripwirenecesitarecolectarlainformacinactualdelosarchivosquedebemonitorear.
Dichainformacinsealmacenaenunabasededatosespecialgeneradamedianteelcomando:
# tripwire -m i 2> /tmp/mensajes
Hemosredirigidopartedelasalidadeestecomandoalarchivo/tmp/mensajes.Esmuyprobablequehayanarchivosespecificadosenlas
polticas(twpol.txt)quenoexistenoestnincorrectamenteescritos(comolechuga.)Estoquedarregistradoen/tmp/mensajes.Los
erroresdeberncorregirseentwpol.txt,elcualsedeberreinstalar,paraprocederareconstruirlabasededatosTripwire.Esteprocedimiento
serepetirmientrassubsistanerroresenelarchivodepolticas.
Borreelarchivo/tmp/mensajescuandohayandesaparecidotodosloserrores.
Verificacindelfilesystem
AhoraqueTripwireestcorrectamenteconfiguradoconsubasededatos,eselmomentodeverificarlaintegridaddelfilesystem.Estose
consigueconelcomando:
# tripwire -m c
Estecomandoseusarcadavezquedeseamossaberquenuestrosistemanohasidoalterado.
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 6/11
Siporalgnmotivoalgunosdelosarchivosmonitoreadossonmodificados(porejemplo,porunaactualizacinenelsoftware)entonces
debemosreconstruirlabasededatoscomosevienelpasoanterior,afindequenoaparezcandiscrepanciasconelestadoactualdel
filesystemenlasprximasverificaciones.
Sideseamosdejardemonitorearciertosarchivosoiniciarelmonitoreodeotros,entoncesdebemosconfigurarelarchivodepolticas
(twpol.txt)comosevianteriormente,yreinstalarlo.Despus,sevolveragenerarlabasededatosdelfilesystem.Esteproceso
lamentablementepuedesermuytediosocuandohaymuchosarchivospormonitorear.
ConfiguracinpermanentedeTripwire
Automatizacin
AhoraqueUd.haprobadolacorrectaejecucindeTripwire,debemosprogramarsuejecucinautomtica.Seaconsejaunafrecuenciadiaria,
aunqueeladministradoreslibredeusarotroesquema.EnRedHat7.1,laejecucindiariadetripwireseefectafcilmentecreandounarchivo
eneldirectorio/etc/cron.daily(porejemplo,/etc/cron.daily/tripwireconelsiguientecontenido:
/usr/sbin/tripwire -m c | mail root@localhost
DondeUd.debermodificarladireccin"root@localhost"porloquemsleconvenga.Noolvideasegurarsedequeelserviciocronest
operativo.
Asegresedequeestearchivoparacronseaejecutable:
# chmod 755 /etc/cron.daily/tripwire
Notificacinvaemail
Estafuncionalidadproporcionauncontrolmsflexibleconrespectoalosreportesvaemail.Tripwireescapazdenotificarporemailsin
necesidaddequeeladministradorinvoqueaunclientedecorreocomoenelejemploanterior(enqueinvocamosamail.Paraesto,enel
archivodepolticasdebemosinsertarladirectiva:
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 7/11
emailto = user@host.domain
Estadirectivadebeinsertarseenlaconfiguracindecadagrupodearchivosquevamosamonitorear.Cuandoalgunodeestosarchivoses
modificado,Tripwirenotificaaldestinatarioespecificado.Porejemplo,siqueremosseralertadoscuandohubierenmodificacionesdelos
archivosdeadministracindelkernel,debemosmodificarlaseccincorrespondiente:
...
# Kernel Administration Programs # #
(
rulename = "Kernel Administration Programs",
severity = $(SIG_HI)
)
{
/sbin/depmod -> $(SEC_CRIT) ;
/sbin/adjtimex -> $(SEC_CRIT) ;
/sbin/ctrlaltdel -> $(SEC_CRIT) ;
/sbin/insmod -> $(SEC_CRIT) ;
...
einsertaremailto:
...
# Kernel Administration Programs # #
(
rulename = "Kernel Administration Programs",
severity = $(SIG_HI), emailto = root@localhost
)
{
/sbin/depmod -> $(SEC_CRIT) ;
/sbin/adjtimex -> $(SEC_CRIT) ;
/sbin/ctrlaltdel -> $(SEC_CRIT) ;
/sbin/insmod -> $(SEC_CRIT) ;
...
Tripwirenormalmenteinvocaparaestoasendmail.
SiUd.usavi,puedeinsertarautomticamenteladirectivaemailtoentodaslasseccionesdelarchivoconelsiguientecomando"deltima
lnea":
:1,$s/severity =.*/&,emailto = root@localhost/
Asegresederespetartodoslosespaciosylossignosdepuntuacin.
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 8/11
Finalmente,elarchivo/etc/cron.daily/tripwiredebesermodificadodelsiguientemodo:
/usr/sbin/tripwire -m c --email-report
Elarchivodeconfiguracintwcfg.txtcontienealgunosparmetrosadicionalesparalaconfiguracindelsistemadenotificacindeemail.Por
ejemplo,esposibleconfigurarsisedebenenviarreportesansinohanhabidoproblemas(verdirectivaMAILNOVIOLATIONSde
twcfg.txt.)Tambinsepuedeseleccionarelagentedemensajera(verdirectivaMAILPROGRAM)afindenousarsendmailygenerar
unaconexindirectaSMTPhaciaotrohost.
Consulteelmanualdetwconfig(4)ytwpolicy(4)paramsopcionesyejemplos.
Eliminacindearchivosdetexto
Tripwireguardasuconfiguracinylapolticadelfilesystemendosarchivosencriptadosconla"clavedelsite".Estosson:
/etc/tripwire/tw.cfgy/etc/tripwire/tw.pol,respectivamente.Elprimerosegenerapartirde/etc/tripwire/twcfg.txtcuando
seconfiguraronlasclaves,yelsegundohasidoregeneradocadavezqueUd.modificsuarchivodepolticas/etc/tripwire/twpol.txt.
Porseguridad,Ud.nodeberamantenerlosenelsistemahastaquesevuelvananecesitar,asqueprocedaaborrarlos:
# rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt
CuandoUd.necesitehacerunamodificacindelapoltica,puederegenerarelarchivotwpol.txtdelsiguientemodo:
# twadmin -m p > /etc/tripwire/twpol.txt
Yeldeconfiguracinmediante:
# twadmin -m f > /etc/tripwire/twcfg.txt
Scriptcheck_twpol.sh
Talcomoseindic,eventualmenteUd.deberemplearelarchivotwpol.txtquevienecontripwire,elcualcontienenumerosasreferenciasa
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 9/11
losarchivosdelsistema.Sinembargo,estearchivoencasitodosloscasosdeberpersonalizarsepuestoquenotodoslossistemastienen
instaladoslosmismosarchivos.
Afindeagilizaresteproceso(queestremendamentetedioso),confeccionelsiguientescriptquegeneraunaversin"corregida"del
twpol.txtcontrastndoeloriginalcontraloqueseencuentraenelsistema.EstescriptNOmodificaelarchivotwpol.txt,sinoporel
contrario,dejala"nuevaversin"en/tmp/new.twpol.txt.
Paraejecutarlo,simplementeescribir:
# bash check_twpol.sh
Elscriptdepreferenciadeberserdescargadoynocopiadomanualmente(debeestardisponiblejuntoconestedocumentooenmiwebsite)a
findeevitarsutileserroresentreespaciosytabulados.Deigualmodo,ahva:
#!/bin/bash
#
# Generacion de version corregida de archivo de politicas twpol.txt
# (C) 2002-4002 Diego (www.compulinux.com/diego)
#
# Por favor verifique estas variables:
# Please cheack these veriables:
# Original twpol.txt
TWPOL=/etc/tripwire/twpol.txt
# Donde buscar nuevos archivos
# Where to search for new files
SRC_DIR="/sbin /etc /etc/sysconfig /bin"
# El twpol.txt generado
# Generated twpol.txt
RESULTADO=/tmp/new.twpol.txt
### END OF COMMENTS
if [ ! -f $TWPOL ]; then
echo "$TWPOL debe existir para poder empezar!"
echo "$TWPOL must exist for running this thing!"
exit
fi
echo "Quitando archivos inexistentes de twpol.txt"
echo "Cutting non-existent files from twpol.txt"
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 10/11
while read L
do
# Cuidado: entre corchetes se escribe un espacio y un tab (3 lineas abajo)
# Beware: between brackets there is a space and a tab (following 3 lines)
if echo "$L" | grep '^[ ]*/' > /dev/null ; then
PX=$(echo "$L" | sed 's/^[ ]*\([^ ]*\).*/\1/')
PY=$(echo "$L" | sed 's/^[ ]*\([^ ]*\)\(.*\)/\2/')
if [ -e "$PX" ]; then
echo "$PX $PY"
else
echo "#-- $PX $PY"
echo -n '.' > /dev/tty
# echo $PX > /dev/tty
fi
else
echo "$L"
fi
done < $TWPOL > $RESULTADO
echo
echo "Insertando nuevos archivos en twpol.txt"
echo "Inserting new files to twpol.txt"
for DIR in $SRC_DIR
do
echo "#-- "
echo "#-- "
echo "#-- "
echo "("
echo "rulename = \"$DIR\","
echo 'severity = $(SIG_HI)'
echo ")"
echo "{"
echo > /dev/tty
echo "Procesando $DIR" > /dev/tty
echo "Processing $DIR" > /dev/tty
for F in $DIR/*
do
# Cuidado: entre corchetes se escribe un espacio y un tab (siguiente linea)
# Beware: between brackets there is a space and a tab (next linea)
if [ -f $F ] && ! grep "^[ ]*$F[ ]" $RESULTADO > /dev/null ; then
echo " $F -> \$(SEC_CRIT) ;"
echo -n "." > /dev/tty
fi
done
3/6/2014 Gua breve Tripwire
http://es.tldp.org/Tutoriales/GUIA_TRIPWIRE/guia_tripwire.html 11/11
echo "}"
done >> $RESULTADO
echo
echo "El nuevo archivo twpol.txt se ha generado en $RESULTADO"
echo "New twpol.txt file was generated as $RESULTADO"

Você também pode gostar