Академический Документы
Профессиональный Документы
Культура Документы
Abstract
EstaesunaguabreveparautilizarTripwireenLinux.Se
desarrollenambienteRedHat7.1sinembargo,debesertilen
cualquierotroOScompatible.
Tabladecontenidos
Introduccin
ConfiguracindeTripwire
ConfiguracinpermanentedeTripwire
Eliminacindearchivosdetexto
Scriptcheck_twpol.sh
Introduccin
PorquusarTripwire?
Paramejorarlaseguridaddesusistema.
Noexistenlossistemascomputacionalesperfectoseinvulnerablesquedesearamos,ysiempreestaremosexpuestosaataques.Ms
alldetodaslasmedidaspreventivasquetomemos(firewalls,patches,polticas,etc.)siemprecabelaposibilidaddeseralcanzados
porunhacker.Losataquesexitososatravsdelaredtpicamenteinvolucranlamodificacinparcialdelsistemamediantela
alteracinoreemplazodeciertosarchivos,locualsueleserempleadoporelatacanteparaposteriormentetomarelcontroltotaldel
sistema.
Tripwireasumequetodosloscontrolesdeseguridadhanfallado,yquenuestrosistemayahasidoalteradoalmenos,parcialmente.
Sinembargo,partedelartedelosatacantesconsisteennoserdescubiertos,yparaestoempleandiversastcnicasrelativamente
sofisticadas.Tripwireservirparaalertaraladministradordeestoscambios(loscualesdeotromodopodranpasardesapercibidos
porsemanasomeses)afindetomaraccionesconrapidez.
Paraesto,Tripwiremonitorearutinariamentelaintegridaddeunagrancantidaddearchivosquetiendenaserblancodelos
atacantes.Sinembargo,esteprocesoespesado,ysesueleejecutaraintervalosporejemplo,diariosointerdiarios,aunquenohay
ningunarestriccin(salvoderecursos)paranolanzarlocadamediahora.
InstalarTripwire
DescarguelaversinopensourcedeTripwiredelsitewww.tripwire.org.Elijalaversinquecorrespondamejorasusistema
operativo.
TripwirenormalmentesedistribuyeenunarchivoRPMquevieneempacadoenformatoTARcomprimido.Enesteltimocaso,usar:
Locualdeberagenerarelarchivotripwire-2.3-47.i386.rpm(elnombreexactodependerdesuversin.)
Ahorainstlelo:
# rpm -ivh tripwire-2.3-47.i386.rpm
Nota:EndiversasdistribucionesdeLinux,incluyendoRedHat7.2ysuperiores,Tripwireyaestinstalado,raznporlacualeste
pasopuedenosernecesario.
ConfiguracindeTripwire
DefinirlasclavesdeTripwire
Tripwireutilizadosclaves(quepuedenserpalabrasuoraciones)paraalmacenarsuinformacin.Unadeellas,la"sitekey"o"clave
delsite",seempleaparaencriptarlosarchivosdeconfiguracinydelaspolticas.Laotrala"localkey"o"clavelocal",seusapara
encriptarlainformacinreferidaalestadodelosarchivosdelsistemaquesemonitorean.
Ud.necesitaestasdosclavesparalastareasdeadministracindeTripwire.Estassedebenintroducirtanprontocomoseha
instaladoTripwiremedianteelcomando:
# /etc/tripwire/twinstall.sh
Recurdelasbien,oantelasenunlugarseguro.
Configurarelarchivodepolticas
LaconfiguracindelosarchivosquevanasermonitoreadosporTripwiresemantieneenungranarchivoconocidocomo"archivo
depolticas"(policyfile.)Sumanipulacinesalgotediosadadasuextensin.Tripwirevieneconunarchivoquesirvede"plantilla"
parasermodificado.Estearchivoes:/etc/tripwire/twpol.txt.
Ud.puedemodificarlodirectamenteconuneditordetexto(aunqueleaconsejoqueguardeunacopiasinmodificardelmismo.)
Ahoraharemosunaobservacinderdenprcticoydidctico:Tripwireporlogeneraltomavariosminutosencadaunadesus
ejecuciones,ysiUd.nuncalohausado,probablementeleresultardesesperanteaguardarmuchotiemposinsabersilascosasestn
yendobienomal.Porestemotivoyosugieroqueempecemosconunaversinreducida(ycasiintil)delarchivodepolticas.Una
vezqueUd.comprendaelprocesocompleto,podrretomarelarchivooriginalyaprovecharlo.
Nuevamentevalaadvertencia:hagaunacopiadeseguridaddelarchivotwpol.txt.
Pararecortarelarchivoproporcionado,simplementeuseuneditordetexto(comovi)ybusquelaseccin"FileSystemandDisk
AdministratonPrograms"(queenelarchivoqueyotengo,seubicaapartirdelalnea185.)Unextractodeesaseccines
presentadoaqu:
...
################################################ #
# 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.Nosotrosreduciremosla
extensalistarecortandoelarchivoenestaseccin.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
(})paramantenerlasintaxisdelarchivo.Afindeverlosposibleserroresconquenospodemosencontrar,sugieroallectorque
aadaunarchivoinexistentealalista:
...
################################################ #
# 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) ;
Tengacuidadodenoinsertarestearchivopordebajodelallavedecierredelgrupo.Recuerdequemstardedebervrselasconel
archivooriginalquecontiene(enmicaso)452entradas.
Instalarelarchivodepolticas
Cuandoelarchivodepolticascontienetodoloquepretendemosmonitorear,esmenester"instalarlo".EnrealidadTripwireusauna
versincompiladayencriptadadeestearchivo,quesealmacenaen/etc/tripwire/tw.pol.Paragenerarlo(yregenerarlo
cuantasvecessenecesite),usar:
# twadmin -m P /etc/tripwire/twpol.txt
ConstruirlabasededatosTripwire
Unavezconfiguradoeinstaladoelarchivodepolticas,Tripwirenecesitarecolectarlainformacinactualdelosarchivosquedebe
monitorear.Dichainformacinsealmacenaenunabasededatosespecialgeneradamedianteelcomando:
Hemosredirigidopartedelasalidadeestecomandoalarchivo/tmp/mensajes.Esmuyprobablequehayanarchivosespecificados
enlaspolticas(twpol.txt)quenoexistenoestnincorrectamenteescritos(comolechuga.)Estoquedarregistradoen
/tmp/mensajes.Loserroresdeberncorregirseentwpol.txt,elcualsedeberreinstalar,paraprocederareconstruirlabasede
datosTripwire.Esteprocedimientoserepetirmientrassubsistanerroresenelarchivodepolticas.
Borreelarchivo/tmp/mensajescuandohayandesaparecidotodosloserrores.
Verificacindelfilesystem
AhoraqueTripwireestcorrectamenteconfiguradoconsubasededatos,eselmomentodeverificarlaintegridaddelfilesystem.
Estoseconsigueconelcomando:
# tripwire -m c
Estecomandoseusarcadavezquedeseamossaberquenuestrosistemanohasidoalterado.
Siporalgnmotivoalgunosdelosarchivosmonitoreadossonmodificados(porejemplo,porunaactualizacinenelsoftware)
entoncesdebemosreconstruirlabasededatoscomosevienelpasoanterior,afindequenoaparezcandiscrepanciasconel
estadoactualdelfilesystemenlasprximasverificaciones.
Sideseamosdejardemonitorearciertosarchivosoiniciarelmonitoreodeotros,entoncesdebemosconfigurarelarchivodepolticas
(twpol.txt)comosevianteriormente,yreinstalarlo.Despus,sevolveragenerarlabasededatosdelfilesystem.Esteproceso
lamentablementepuedesermuytediosocuandohaymuchosarchivospormonitorear.
ConfiguracinpermanentedeTripwire
Automatizacin
AhoraqueUd.haprobadolacorrectaejecucindeTripwire,debemosprogramarsuejecucinautomtica.Seaconsejauna
frecuenciadiaria,aunqueeladministradoreslibredeusarotroesquema.EnRedHat7.1,laejecucindiariadetripwireseefecta
fcilmentecreandounarchivoeneldirectorio/etc/cron.daily(porejemplo,/etc/cron.daily/tripwireconelsiguiente
contenido:
DondeUd.debermodificarladireccin"root@localhost"porloquemsleconvenga.Noolvideasegurarsedequeelservicio
cronestoperativo.
Asegresedequeestearchivoparacronseaejecutable:
emailto = user@host.domain
Estadirectivadebeinsertarseenlaconfiguracindecadagrupodearchivosquevamosamonitorear.Cuandoalgunodeestos
archivosesmodificado,Tripwirenotificaaldestinatarioespecificado.Porejemplo,siqueremosseralertadoscuandohubieren
modificacionesdelosarchivosdeadministracindelkernel,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"de
ltimalnea":
Asegresederespetartodoslosespaciosylossignosdepuntuacin.
Finalmente,elarchivo/etc/cron.daily/tripwiredebesermodificadodelsiguientemodo:
/usr/sbin/tripwire -m c --email-report
Elarchivodeconfiguracintwcfg.txtcontienealgunosparmetrosadicionalesparalaconfiguracindelsistemadenotificacinde
email.Porejemplo,esposibleconfigurarsisedebenenviarreportesansinohanhabidoproblemas(verdirectiva
MAILNOVIOLATIONSdetwcfg.txt.)Tambinsepuedeseleccionarelagentedemensajera(verdirectiva
MAILPROGRAM)afindenousarsendmailygenerarunaconexindirectaSMTPhaciaotrohost.
Consulteelmanualdetwconfig(4)ytwpolicy(4)paramsopcionesyejemplos.
Eliminacindearchivosdetexto
Tripwireguardasuconfiguracinylapolticadelfilesystemendosarchivosencriptadosconla"clavedelsite".Estosson:
/etc/tripwire/tw.cfgy/etc/tripwire/tw.pol,respectivamente.Elprimerosegenerapartirde
/etc/tripwire/twcfg.txtcuandoseconfiguraronlasclaves,yelsegundohasidoregeneradocadavezqueUd.modificsu
archivodepolticas/etc/tripwire/twpol.txt.Porseguridad,Ud.nodeberamantenerlosenelsistemahastaquesevuelvana
necesitar,asqueprocedaaborrarlos:
# rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt
CuandoUd.necesitehacerunamodificacindelapoltica,puederegenerarelarchivotwpol.txtdelsiguientemodo:
Yeldeconfiguracinmediante:
Scriptcheck_twpol.sh
Talcomoseindic,eventualmenteUd.deberemplearelarchivotwpol.txtquevienecontripwire,elcualcontienenumerosas
referenciasalosarchivosdelsistema.Sinembargo,estearchivoencasitodosloscasosdeberpersonalizarsepuestoquenotodos
lossistemastieneninstaladoslosmismosarchivos.
Afindeagilizaresteproceso(queestremendamentetedioso),confeccionelsiguientescriptquegeneraunaversin"corregida"del
twpol.txtcontrastndoeloriginalcontraloqueseencuentraenelsistema.EstescriptNOmodificaelarchivotwpol.txt,sino
porelcontrario,dejala"nuevaversin"en/tmp/new.twpol.txt.
Paraejecutarlo,simplementeescribir:
# bash check_twpol.sh
Elscriptdepreferenciadeberserdescargadoynocopiadomanualmente(debeestardisponiblejuntoconestedocumentooenmi
website)afindeevitarsutileserroresentreespaciosytabulados.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
# El twpol.txt generado
# Generated twpol.txt
RESULTADO=/tmp/new.twpol.txt
if [ ! -f $TWPOL ]; then
echo "$TWPOL debe existir para poder empezar!"
echo "$TWPOL must exist for running this thing!"
exit
fi
echo
echo "Insertando nuevos archivos en twpol.txt"
echo "Inserting new files to twpol.txt"