sábado, 24 de março de 2012

Marketing - No final é tudo Marketing

Galera,

Estou escrevendo esse post não técnico pois recentemente aconteceu uma situação "engraçada" e que mostra o poder do marketing em especial sendo um marketing pessoal. Aproveitando o gancho marketing pessoal meu amigo Douglas Falsarella no qual trabalhei junto escreveu um livro sobre isso (ainda não li mas esta na lista de leituras) - Marketing Yourself

** Update (25/03/2012) - Descobri que meu grande amigo e companheiro de republica por anos em São Paulo Luiz Silva ministra treinamentos de Marketing Pessoal - Investimento baixo, vale a pena pois ele é "Marketeiro" hehehe . Mais infos AQUI

Não é de hoje que sabemos que marketing pessoal é algo importante, alguns abusam disso e fazem muito marketing mas na verdade são mais marketing do que realidade. Não entrarei em meritos aqui e quem me conhece sabe que sou bem na minha, não fico falando muito por ai e ultimamente acho que falo mais de Triathlon do que coisas Nerds =)!

A situação no qual vi o poder do Marketing foi sobre minha pesquisa de Analise de Cabeçalhos HTTP .  Como sabem trabalho no Spiderlabs na Trustwave na equipe de pesquisas. Na maioria do tempo faço o arroz com feijão que da dinheiro pra empresa e garante meu emprego contudo temos tempo livre para descobrir ou pelo menos tentar coisas novas.

Já dizia Einstein - "If we knew what we were doing it wouldn't be research."

Fiz uma pesquisa sobre scoring de cabeçalhos http no qual bem resumidamente baseado em analises estatisticas eu dou notas e consigo com isso determinar se o tráfego é malicioso ou comum.

Ministrei essa palestra no AppSec Latin America que aconteceu em Porto Alegre - https://www.owasp.org/index.php?title=AppSecLatam2011 .

Até ai sem nenhuma novidade, voce da a palestras, pessoas que assistiram conversa contigo, trocam alguns e-mails, enviam sugestões .

Essa mesma palestra ministrei numa conferencia no Canada chamada SecTor (diga-se de passagem a conferencia é BEM legal, vale a pena participar).

Na plateia bastante gente mas o que começou a dar uma maior midia para isso foi um artigo que um participante escreve aqui - http://www.esecurityplanet.com/news/looking-for-malicious-traffic-in-http-headers.html e podemos dizer que as palavras que ele utilizou foram bem chamativas "New research effort could yield a never-seen-before type of detection mechanism for malicious traffic."

Como esse website é bastante acessado  e referenciado em outros a noticia começou a sair bastante pelo google. Se derem uma olhada no google poderão ver melhor.

A Trustwave empresa que trabalho logicamente  não iria perder uma mídia e criou um press release baseado no site citando a pesquisa. Por essas e por outras que nos deixam palestrar em eventos e digo mais, a Trustwave realmente te incentiva a enviar palestras para eventos pois ve isso como ótimo marketing (o que eu concordo plenamente).

O Press Release saiu em sites da América Latina e Brasil como:

http://cxo-community.com/articulos/noticias/noticias-cso/4596-investigador-de-trustwave-america-latina-desarrolla-un-metodo-pionero-para-la-deteccion-de-trafico-malicioso.html

http://imasters.com.br/noticia/23435/seguranca/pesquisador-brasileiro-cria-metodo-de-deteccao-de-malwares

http://www.baguete.com.br/noticias/internet/27/01/2012/brasileiro-estuda-http-ao-prevenir-virus

http://sejalivre.org/detectando-trafego-malicioso-em-cabecalho-http/

http://www.tibahia.com/tecnologia_informacao/conteudo_unico.aspx?c=NOT_TECH&fb=B_FULL&hb=B_CENTRA&bl=LAT1&r=NOT_TECH&nid=14469

No final sai até no jornal da minha cidade natal Santa Bárbara D'Oeste (vide foto abaixo) =)




Porque expliquei tudo isso ?

Fiz uma pesquisa inovadora também em 2010 , palestrei sobre ela aqui no H2HC,  no México e nos EUA . Esta pesquisa hoje é uma patente requirida pela Trustwave no qual sou Autor da mesma.

Agora eu pergunto ?

Onde esta as coisas sobre esse pesquisa ? O fato de não ter dado a mesma midia inicial ou um press release não ganhou espaço. Se você pesquisar sobre ela no google mal achara sobre as palestras que ministrei ou seja Marketing é TUDO!

Conclusões:

- Faça marketing pessoal, se você não aparecer as pessoas não conhecerão seu trabalho
- Não force a barra, faça marketing discreto e constante, chegar pagando de bonzão afastara as pessoas de voce
- Coloque coisas em um blog e escreva em pt_BR (mas não esqueça do Ingles para coisas realmente interessantes e únicas pois quando se escreve em inglês mais pessoas leem)
- Tome cuidado com o que fala , se não domina um assunto tenha cuidado pois o marketing pode ser negativo

Afinal "It's all about marketing"

Rodrigo "Sp0oKeR" Montoro

segunda-feira, 19 de março de 2012

Introdução aos decoders - Serie Snortando (Parte 4)

Primeiramente me desculpar pelo atraso do post mas as coisam andam corridas por esses lados mas não vamos deixar a peteca cair mesmo com atrasos =)!

Nesse post iremos falar sobre os decoders do Snort. Para lembrar exato onde estamos os decoders estão logo após a aquisição de dados através do DAQ .

Em resumo o processo do snort é o seguinte:

DAQ (Captura de pacotes) --> Decoders --> Preprocessors --> Rule Engine --> Output Plugins 

Os decoder são de EXTREMA importancia para o snort pois ali é onde podemos dizer que se separa a parte "Protocolo"  da parte "Payload". Caso não exista decoders para tráfegos específicos o snort simplesmente não terá como analisar o conteúdo.

Atualmente o snort possui basicamente os seguintes decoders :

TCP
UDP
IPv4
IPv6
MPLS
GRE
GTP (GRPS Tunneling Protocol)*

* Suporte a GTP/GPRS é algo totalmente novo implantado na versão 2.9.2. Certamente adicionarei algo sobre isso na agenda para o futuro. Caso queiram mais informação leiam o README.gtp no doc/ to tarball mais recente e/ou o blogpost do VRT sobre isso http://blog.snort.org/2012/01/gtp-decoder-and-preprocessor.html . O encapsulamento do GPRS é BEM interessante.

Além do fato de separar a parte protocolo da parte payload os decoders também podem tomar ações e tirar pacotes de serem analisados ou mesmo bloqueados com as decoders rules.

Aqui algumas configurações default com os decoder no snort.conf

# Stop generic decode events:
config disable_decode_alerts

# Stop Alerts on experimental TCP options
config disable_tcpopt_experimental_alerts

# Stop Alerts on obsolete TCP options
config disable_tcpopt_obsolete_alerts

# Stop Alerts on T/TCP alerts
config disable_tcpopt_ttcp_alerts

# Stop Alerts on all other TCPOption type events:
config disable_tcpopt_alerts

# Stop Alerts on invalid ip options
config disable_ipopt_alerts

# Alert if value in length field (IP, TCP, UDP) is greater th elength of the packet
# config enable_decode_oversized_alerts

# Same as above, but drop packet if in Inline mode (requires enable_decode_oversized_alerts)
# config enable_decode_oversized_drops

# Configure IP / TCP checksum mode
config checksum_mode: all


* Pra mim essa configuração acima em vermelho é bem importante pois ele vai tirar da inspecção pacotes com bad checksum o que vai liberar esse tempo para pacotes não malformados.

Um ponto muito importante aqui é que essas regras são desabilitadas por padrão, não a normalização de separação do "Protocolo do Payload" mas as proteções em si.

Para habilitar você terá que realizar 3 passos:

- Configurar o PATH das preprocrules

var PREPROC_RULE_PATH /etc/snort/preproc_rules

- Copiar as decoder.rules para o diretorio configurado acima

- Reiniciar seu snort (lembre-se sempre se usar a opcão -T para checar o arquivo de configuração antes de parar seu snort para o mesmo não ficar fora do ar por alguma razão)

O que essas decoders rules alertam?

Atualmente existem por volta de 142 decode rules e abaixo mostrar algumas que acho interessante. Vale lembra que é de suma importancia saber e ler sobre os protocolos citados que a mesma faz decode para melhor entendimento da regra e logicamente de quando a mesma gerar um alerta saber analisar.

alert ( msg:"DECODE_IPV4_INVALID_HEADER_LEN"; sid:2; gid:116; rev:1; metadata:rule-type decode; classtype:protocol-command-decode; )

alert ( msg:"DECODE_IPV6_ISATAP_SPOOF"; sid:453; gid:116; rev:1; metadata:rule-type decode; reference:cve,2010-0812; reference:url,www.microsoft.com/technet/security/bulletin/MS10-029.mspx; classtype:misc-attack; )

alert ( msg:"DECODE_ICMP_ORIG_PAYLOAD_GT_576"; sid:254; gid:116; rev:1; metadata:rule-type decode; classtype:protocol-command-decode; )

alert ( msg:"DECODE_TCP_NMAP_XMAS"; sid: 401; gid: 116; rev: 1; metadata: rule-type decode ; classtype:attempted-recon; reference:bugtraq,7700; reference:cve,2003-0393; )

alert ( msg:"DECODE_ICMP_REDIRECT_HOST"; sid:436; gid:116; rev:1; metadata:rule-type decode; classtype:attempted-recon; )


Lembrem-se galera que é nos detalhes que achamos os grandes perigos, não adiantar ficar observando somente os payload enquanto tem muita coisa já acontecendo umas camadas antes. Estude protocolos, cabeçalhos e se tiverem paciencia leiam as RFC =) .

Recomendo também que leiam o README.decode que voce encontra no doc/ do tarball do snort.


Happy Snorting!

Rodrigo "Sp0oKeR" Montoro


quinta-feira, 8 de março de 2012

Detectando Trojans bancários brasileiros utilizando o snort http_inspect

Caros,

Fiz um post de como detectar de uma forma simples trojans de bancos brasileiros que utilizam os "pac" files.

Quem se interessar

http://blog.spiderlabs.com/2012/03/detecting-brazilian-trojan-bankers-with-snort-http_inspect.html

Happy Snorting!

Rodrigo Montoro

sexta-feira, 2 de março de 2012

Entendendo básico do snort.conf - Serie Snortando (Parte 3)

O snort.conf é o principal e praticamente o único arquivo de configuração do snort. Nele configuramos variáveis, diretivas, decoders, preprocessadores, plugins de saida entre outras coisas.

É de suma importancia saber o que esta fazendo quando se edita o snort.conf para não modificar algo erroneamente e comprometer todo o funcionamento do mesmo. Lembre-se que modificar erronenamente não propriamente quer dizer que o snort não iniciara e sim não carregara partes importantes.

No arquivo snort.conf existe até um passo a passo de onde e o que modificar (está em inglês e usarei traduzido pra pt_BR) :

Original no snort.conf

###################################################
# This file contains a sample snort configuration. 
# You should take the following steps to create your own custom configuration:
#
#  1) Set the network variables.
#  2) Configure the decoder
#  3) Configure the base detection engine
#  4) Configure dynamic loaded libraries
#  5) Configure preprocessors
#  6) Configure output plugins
#  7) Customize your rule set
#  8) Customize preprocessor and decoder rule set
#  9) Customize shared object rule set
###################################################
  
Então vamos por partes:

1-) Configure suas variáveis
2-) Configure o decoder
3-) Configure o engine de detecção
4-) Configure as bibliotecas dinamicas
5-) Configure os pre-processadores
6-) Configure os plugins de saida
7-) Customize suas regras
8-) Customize seu preprocessador e decoder
9-) Customize as Shared Object Rules

Muitas opções aqui terão mais sentido no final da serie no qual farei outro post dai mais completo e com dicas mas nesse post inicial focarei no passo 1 - Configure suas variáveise abordarei sobre a diretiva config .

Existem 3 tipos de variáveis:

- var
- portvar
- ipvar

Alguns exemplos:

var RULES_PATH /etc/snort/rules/
portvar MY_PORTS [22,80,1024:2000]
portvar SSH [22]
ipvar REDE_INTERNA [192.168.200.0/24,192.168.100.1]

Essas variaveis são utilizadas em regras, preprocessadores não fazem o uso das mesmas. Exemplo básico :

alert tcp any any -> $REDE_INTERNA $MY_PORTS (flags:S; msg:"Pacote com SYN";)

Alem de declarar os IPs ou CIDR na variável voce pode adicionar uma negação. Vamos pensar que voce quer monitorar todas as maquinas da rede 10.0.0.0/24 porém não a maquina 10.0.0.10 que é um scanner na rede.

ipvar MINHA_VARIAVEL [10.0.0.0/24,![10.0.0.10]]

A utilizacão da variável será igual a uma variavel simples .

Variaveis de porta (port) também podem usar a negação bem como  um port range

portvar TESTE [!80]
portvar RANGE_SERVIDORES [3000:4000]

Na variavel RANGE_SERVIDORES ele vai monitorar portas 3000 até a 4000 .

A diretiva config não entrarei em detalhes aqui mas elas são bem importantes para voce ajustar suas configurações. Voce pode chamar o parametro via linha de comando quando for iniciar o snort bem como utiliza-las no snort.conf . No total temos mais de 60 diretivas que podem ser configuradas , abaxio alguns exemplos retirados do manual em pdf do snort. Um config bem importante de entender e adicionarei na lista de posts, talvez até o próximo é o config detection no qual voce pode melhorar muito consumo de memoria por exemplo.



Outro parametro no snort.conf que utilizamos bastante é o include no qual resumidamente falando voce podera incluir config de forma simples num arquivo diferente do snort.conf . Alguns includes presentes por padrão :

include classification.config
include reference.config

Não se esqueça que quando atualizar seu engine sempre temos um novo snort.conf padrão que voce deve adicioná-lo e modifica-lo com as suas configurações pois muitas vezes são pre-processadores novos, variáveis que são utilizadas pelo VRT na criação de regras.

Caso queira acompanhar os arquivos de configurações mais atuais sugiro acompanhar http://www.snort.org/vrt/snort-conf-configurations/ .

É mandatorio saber utilizar e modificar o snort.conf por isso sempre leia ele, a documentação, configurações que possue pois isso certamente aumentara a qualidade do seu sensor instalado.

Desculpe do atraso mas infelizmente trabalho primeiro =)

Happy Snorting!

Rodrigo "Sp0oKeR" Montoro