Escolar Documentos
Profissional Documentos
Cultura Documentos
TchLinuxUlbraGravata
http://tchelinux.org/gravatai
ElgioSchlemer UlbraGravatai
http://gravatai.ulbra.tche.br/~elgio 31deMaiode2008
Introduo
Problemasdesegurana
EngenhariaSocial
Programasmaliciosos
Bugsdeprogramao
DoS:DeniedofService
Tiposdenegaodeservio
Existemdoistiposdenegaodeservio:
NegaodeservioLocal
usuriomaliciosoprecisaexecutarcomandosnamquina usuriomaliciosonoexecutacomandosnamquina
NegaodeservioRemota
DoSLocal
precisaexecutarcomandosnamquina
OqueumDoSlocalpodefazer?
Recursosdamquina:disco
capacidadedodiscorgido
podeescrevernodiscoatesgotarsuacapacidade serviosqueprecisamdeespaoficaroindisponveis
Exemplo:selotaro/var/spool/mailnoserecebemais mensagensdeemail
Demonstrao Solues:
corretoparticionamentododiscorgido,quotasdeuso demonstraodassolues
RecursosdoSO:processos
capacidadedoescalonamentodeprocessos
Solues:
Recursosdamquina:memria
capacidadedamemria
Solues:
DemonstraoPamLimits
Permitedefinirrecursosqueusuriopodeusar
disco:quota+particionamento memria,processos:pamlimits
Mostrandooarquivo/etc/security/limits.conf
#limitesparagruporoot @roothardmaxlogins50 @roothardnproc500 @rootharddata2000000 #limitesparatodos(excetogruporoot, #poisasregrasanterioresprecedem) *hardmaxlogins15 *hardnproc20 *harddata20000
DoSLocal:Concluso
Fcilderesolver,sconfigurar
Particionarcorretamenteodiscoduranteainstalao
paraservidores!!Planejarantes
DoSLocal:nodeveriaserumproblema!!
Negaodeservioremota
Derrubaservioousistemasemprecisarexecutar comandos
DoSremoto:
DoSRemoto:Bugsemprogramas
Oserviopossuiproblemasemsuaprogramao Bastafazeralgoparaqueelecaia
Exemploclssico:pingdamorte:
Demonstrao:
Bugsemprogramas:Soluo
correodosproblemasdeprogramao
crtico:dependedofornecedor
Linux:comoeupossomexernocdigo... proprietrios:somentequandovierostaisPatches...:D
boasprticasdeprogramao
DoSRemoto:Ataquesaprotocolos
ExploraodedetalhesdapilhaTCP/IP Alguns,notemcorreo:
Exemplo:pingbroadcast
trataripspoofingnofirewall noresponderapingsbroadcast
EstudodecasoDoSremoto SynFlood
defesacomplicada,maspossvel defesaimpossvelcomregrasdefirewall
SynFlood
Servidorprecisaderecursosparacadaconexo
AoreceberoSyn(inciodeconexo),oservidor:
SynFlood
Seclientenocompletarhandshakeapscerto tempo:
Importante:
SynFlood
DefesaSynFlood
Muitocomplicado! Bloquearipsdosatacantes?
LimitarquantidadedeSynsnofirewall?
eoatacantepodeexploraristoaindamaisfcil
DefesaSynCookie
Alocaoderecursosfeitanofinaldohandshake
comosaberseoclientecompletouohandshake?
FALHO:istonoalocarrecursos? COMO????
Reconhecerclientemesmosemarmazenarnada.
FuncionamentoSynCookie
Servidorgeraseunmerosequencialapartirde umHASHde32bits:
Clientelegtimodevernoltimopacotedo handhshake:
NumerodeACK=nmeroseqenciadoservidor+1
SynCookie:Clientelegtimo
Servidor
Cliente Ip 10.1.0.4 Porta 3000
Segredo = 3456
SynCookie:Clientelegtimo
Servidor
Cliente Ip 10.1.0.4 Porta 3000 De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0
Segredo = 3456
SynCookie:Clientelegtimo
Servidor
Cliente Ip 10.1.0.4 Porta 3000 De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0
Segredo = 3456
SynCookie:Clientelegtimo
Servidor
Cliente Ip 10.1.0.4 Porta 3000 De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0
HASH (10.1.0.4,3000,3456) HASH32 = 17377737 NS = 17377737 Cliente forneceu 17377738 acertou o cookie ALOCA RECURSOS
Segredo = 3456
SynCookie:AtacantetentandoSynFlood
Servidor
Cliente Ip ??? Porta ??? De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0
Segredo = 3456
SynCookie:AtacantetentandoSynFlood
Servidor
Cliente Ip ??? Porta ??? De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0
Segredo = 3456
SynCookie:AtacantetentandoSynFlood
Servidor
Cliente Ip ??? Porta ??? De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0
ra Pa
t co Pa 4 .0. 21 2. 17
-S NS K, /AC YN eS
31 43 3 62 92 =
1 10 K= AC ,N
Segredo = 3456
SynCookie:Atacantetentandopassar
Servidor
Cliente Ip ?? Porta ?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538
Segredo = 3456
SynCookie:Atacantetentandopassar
Servidor
Cliente Ip ?? Porta ?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Falso cliente no faz Syn, mas envia um ACK tentando fazer o servidor acreditar que j a 3 etapa do handshake. Ele falsifica o Ip (172.10.3.4) e porta (300) de origem e inventa (advinha) um nmero de ACK (134538) para convencer o servidor
Segredo = 3456
SynCookie:Atacantetentandopassar
Servidor
Cliente Ip ?? Porta ?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Falso cliente no faz Syn, mas envia um ACK tentando fazer o servidor acreditar que j a 3 etapa do handshake. Ele falsifica o Ip (172.10.3.4) e porta (300) de origem e inventa (advinha) um nmero de ACK (134538) para convencer o servidor
HASH (172.10.3.4,300,3456) HASH32 = 388642517 NS = 388642517 Cliente forneceu 134538 NO ACERTOU O COOKIE No aloca recursos Envia reset (ou no ?)
Segredo = 3456
SynCookie:Atacantetentandopassar
Servidor
Cliente Ip ?? Porta ?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Falso cliente no faz Syn, mas envia um ACK tentando fazer o servidor acreditar que j a 3 etapa do handshake. Ele falsifica o Ip (172.10.3.4) e porta (300) de origem e inventa (advinha) um nmero de ACK (134538) para convencer o servidor
T RS
Segredo = 3456
SobreSynCookie
AtacantenoconseguenadafazendoSYNs
Paraenganaroservidoratacanteprecisa:
fraco,masqualquercoisaquelevesegundosjinviabiliza
adivinharumnmeroseqencialde32bits(tentativaeerro)
LinuxtemSynCookieamuitotempo:
echo1>/proc/sys/net/ipv4/tcp_syncookies
Concluso
Negaodeserviolocalnoproblema
Negaodeservioremoto:
SynFlood
DoS:NegaodeServio eformasdedefesa
ElgioSchlemer http://gravatai.ulbra.tche.br/~elgio
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7070