As listas de Segurança de Informações e Perícia foram sacudidas nesses dias com a notícia do "vazamento" do COFEE. Esse produto foi criado pela Microsoft e distribuído sem custo para Law Enforcement (basicamente, polícias). O vazamento acabou com a enorme aura que foi criada em torno desse produto.
No início, o burburinho era tanto que se acreditava que a Microsoft tinha criado uma super ferramenta para policiais, com tecnologia super nova e avançada. Segundo alguns, a restrição para distribuição apenas a LE era para impedir que detalhes da solução chegassem aos criminosos, e com isso pudessem impedir que contramedidas fossem criadas. Como diz o velho ditado de que segredo só é segredo enquanto apenas dois sabem, a estratégia de segurança por obscuridade provou não ser eficaz novamente. Por algum modo ainda não claro, o COFEE caiu na rede e está em tudo que é torrent por aí.
Esse episódio gerou uma grande quantidade de críticas assim que as pessoas puseram as mãos no produto. Findo o encanto, descobriram que não se trata de uma super-tecnologia nem algo de outro planeta, e agora passam a criticar o produto, taxando-o de simplório. Na minha opinião, quem o critica não entendeu bem o objetivo do produto. Para demonstrar isso, vou comentar um pouco mais de como ele funciona.
Para início de conversa, o COFEE realmente não é nada de novo. Pelo menos na sua idéia mais básica, já existem outros produtos que fazem a mesma coisa. O COFEE é, na sua essência, um produto para serializar comandos e colher os resultados, para depois serem analisados. O foco desses comandos é o que chamamos de dados voláteis, onde procuramos relacionar o estado da máquina e, posteriormente, analisar o resultado em busca de entender o ocorrido. Olhando dessa forma, o COFEE pode ser facilmente comparado a vários produtos estudados aqui no blog, incluindo o WFT e o FRUC/FSP. Todos rodam uma série de comandos e utilitários, captam as informações voláteis e geram reports finais para serem analisados. Onde o COFEE se diferencia ?
- O COFEE possui dois módulos. Um deles, com interface gráfica, é um módulo de administração. Possui duas funções principais: a geração de ferramentas e a exibição dos relatórios colhidos. A parte de geração de ferramentas é bastante inteligente. Enquanto que o WFT e o FSP configuram as ferramentas e comandos através de arquivos de configuração, o COFEE faz isso nessa interface gráfica. Com isso, é possível gerar um pendrive específico para cada caso a ser tratado, fazendo o seu uso na hora do incidente muito mais direcionado do que os outros. É lógico que esse mesmo comportamento pode ser obtido nos outros através da edição dos arquivos de configuração, mas no COFEE isso é muito mais automatizado e simples. Os comandos e utilitários podem, inclusive, ser alterados, e novos podem ser cadastrados;
- A montagem de grupos de comandos e utilitários pode ser salva no que o COFEE chama de Profiles. Com isso, pode-se selecionar rapidamente um profile específico a um incidente, criar o pendrive e usá-lo. Por exemplo, o time de policiais vai realizar uma operação que envolve apreender computadores de uma quadrilha que faz phishing; um profile específico para isso, contendo ferramentas que busquem vestígios de criação de phishing, deve ser elaborado e selecionado. Caso haja outra ocorrência semelhante, basta que o profile seja usado na geração do pendrive, ganhando bastante tempo. Novamente, essa funcionalidade pode ser obtida por outros modos no WFT e no FSP, mas levaria mais tempo.
- O módulo de relatórios possui alguns pré-montados que permitem correlacionar dados coletados por ferramentas distintas, algo que no WFT e no FSP precisaria ser feito "na mão", durante a análise;
- A documentação do COFEE é excelente, e torna o uso do programa extremamente simples;
- O uso do COFEE (pendrive gerado) na captura dos dados voláteis foi concebido para ser o mais simples possível. Realmente o é, e isso faz a ferramenta atingir o seu objetivo, de ser usada por pessoas que não tenham tantas noções de tecnologia. Basta inserir o pendrive no USB da máquina a ser investigada e pronto. Ele vai seguir em frente sem maiores interações. Os outros produtos que atuam nesse segmento necessitam de alguma interação com o usuário, algumas na forma de parâmetros, e isso no fim das contas pode requerer alguém com conhecimento prévio.
- Há alguns documentos de testes do COFEE dentre a documentação, indicando que o produto passou por inspeções diversas;
Parte ruim da estória
Sim, não se pode esperar que tudo seja perfeito. O COFEE tem algumas partes que não agradam:
- Não vi nenhuma opção de mandar os resultados coletados pela rede, como no caso do WFT e FSP, que usam o netcat. Os dados coletados são gravados no pendrive com as ferramentas;
- Como em qualquer caso de coleta de dados live, a máquina pode estar comprometida com rootkits que podem esconder dados importantes e também se ocultarem no processo. Logicamente, isso afeta a qualquer produto dessa natureza e não apenas ao COFEE;
- Os pendrives gerados e usados na coleta (chamados de runners) podem ser infectados e, na volta, acabar infectando também as estações onde os resultados são analisados. Nesse ponto, há uma estratégia de contorno interessante: Usar pendrives U3, colocando o conteúdo gerado pela interface do COFEE na porção CD do pendrive. Essa parte, além de ficar read-only durante o uso, poderia monitorar o que pode ser gravado no restante do pendrive, reduzindo o risco de trazerem malware para casa;
- A política de distribuição restrita aos LE. Eu posso entender os motivos, e em parte até concordar com eles. A prática, entretanto, só tem confirmado que esses segredos são difíceis de serem contidos e acabam por aumentar o interesse em sua divulgação. Essa prática também pode impedir o peer-review, tão importante nas validações forenses de técnicas e ferramentas.
Como eu disse anteriormente, quem critica o produto não o entendeu. Ele foi feito para fazer a mesma coisa que outros já faziam, mas de maneira facilitada, procurando ser acessível e operado mesmo por um policial sem conhecimento nenhum de Forense Computacional ou Resposta a Incidentes. Esse papel ele cumpre muito bem.
Alguém já usou o COFEE em uma situação real ? Saberiam dizer se as Polícias brasileiras também receberam o produto ? Comentem !
Até o próximo post !
Blog bem humorado, na Lingua Portuguesa, destinado a assuntos de Segurança de Informações com ênfase em Resposta a Incidentes e Forense/Investigação Computacional.
Mostrando postagens com marcador FSP. Mostrar todas as postagens
Mostrando postagens com marcador FSP. Mostrar todas as postagens
domingo, 8 de novembro de 2009
sábado, 5 de julho de 2008
Resposta a Incidentes II
No nosso último post sobre esse assunto, comentamos aspectos gerais de Resposta a Incidentes e do trabalho dos First Responders, os verdadeiros brigadistas digitais.
O WFT automatiza a execução de um grupo de comandos e utilitários para capturar o maior número possível de informações voláteis de um computador envolvido em um incidente de segurança de informações. Ele carrega a lista de execução a partir de um arquivo de configurações, e armazena o resultado de cada um localmente ou remotamente, em um drive compartilhado.


A principal diferença do IRCR2 é que ele é um script DOS, ao invés de um arquivo compilado. Para alterar qualquer utilitário a ser executado, é preciso localizar a linha e alterar diretamente no código. É possível enviar o resultado da coleta (os dados) para uma máquina remota, via NetCat.
Vamos falar agora um pouco mais sobre as ferramentas disponíveis no Helix e realizar uma comparação entre as ferramentas.
WFT
FSP
O FSP (Forensic Server Project) tem arquitetura cliente-servidor. Um executável-servidor (fspc) roda em no computador que receberá todos os resultados das informações capturadas. O executável-cliente, fruc, roda na estação comprometida e executa comandos e utilitários configurados em um arquivo .ini. É possível, embora não recomendável, executar o fspc e o fruc na mesma máquina.
IRCR2
A principal diferença do IRCR2 é que ele é um script DOS, ao invés de um arquivo compilado. Para alterar qualquer utilitário a ser executado, é preciso localizar a linha e alterar diretamente no código. É possível enviar o resultado da coleta (os dados) para uma máquina remota, via NetCat.
Comparando ...
Quais são as ferramentas e utilitários que cada um tem pré-configurado ?
| Utilitário | WFT | FSP | IRCR2 |
| Lista tarefas agendadas | at e schtasks | at | |
| Lista últimos comandos no DOS | doskey | doskey | |
| Lista configurações de TCP/IP | ipconfig | ipconfig | ipconfig |
| Informa a memória livre/ocupada | mem | mem | |
| Lista diversas informações de rede | net | net | |
| Lista informações de conexões TCP/IP | netstat | netstat | netstat |
| Lista a tabela de rotas | route | route | |
| Lista informações do SO | uname e hostname | uname | systeminfo |
| Lista informações do ARP | arp | arp | |
| Lista o Audit Policy | auditpol | auditpol | auditpol |
| Lista valores de chaves do registro | reg | reg | |
| Lista portas abertas e suas respectivas aplicações | fport e openports | fport e openports | fport |
| Informações sobre Null sessions | hunt | hunt | |
| Informações sobre o Netbios | nbtstat | nbtstat | |
| Exibe informações de login/logout | ntlast | ntlast | |
| Lista o conteúdo do Clipboard | pclip | pclip | pclip |
| Lista todos os processos e as DLLs que estão associadas | procinterrogate | procinterrogate | |
| Lista os processos correntes | ps, tlist, tasklist | tlist | ps |
| Exibe os arquivos abertos remotamente | psfile | psfile | |
| Lista informações sobre o sistema | psinfo | psinfo | psinfo |
| Lista informações detalhadas dos processos | pslist | pslist | pslist |
| Lista usuários logado na quina | psloggedon e netusers | psloggedon | psloggedon |
| Lista informações sobre os serviços | psservice | psservice | |
| Lista processos em execução | pulist | pulist | |
| Lista informações sobre os serviços que estão sendo executados | servicelist | servicelist | |
| Faz um dump do event log | dumpel e psloglist | psloglist | dumpel |
| Detecta se a placa de rede está em modo promiscuo | promiscdetect | promiscdetect | |
| Lista conteúdo do diretório | dir | ls | |
| Lista URLs recentemente visitadas | iehv | iehv | |
| Lista USB devices conectados | usbdview | ||
| Exporta History.dat do Mozilla | dork | ||
| Informa há quanto tempo a máquina está ligada | uptime | uptime | |
| Lista os processos com inicialização automática | autorunsc | autorunsc | |
| Lista strings nos arquivos | strings | find | |
| Lista MAC times | mac | ||
| Lista o usuário corrente | whoami | ||
| Lista todas as DLLs carregadas | listdlls | ||
| Lista as threads executando e o status | pstat | ||
| Lista os processos e seus arquivos abertos | handle | ||
| Lista informações dos serviços sendo executados | sc | ||
| Lista informações dos drivers instalados | drivers | ||
| Lista as interfaces IP | iplist | ||
| Lista a tabela de rotas IPX | ipxroute | ||
| Detecta se WinPCap está presente | ndis | ||
| Lista informações sobre o sistema NTFS | ntfsinfo | ||
| Localiza arquivos hidden | hfind | ||
| Localiza e lista Alternate Data Streams | streams e sfind | ||
| Lista informações do EFS | efsinfo | ||
| Lista o espaço disponível em um drive | freespace | ||
| Informações de Group Policies | gplist | ||
| Lista efeitos da Group Policy e usuários que logaram na máquina | gpresult | ||
| Faz dump do Registry | regdmp | ||
| Lista o conteúdo do Protect storage | pstoreview | ||
| Verifica a existência de um driver de modem | mdm | ||
| Busca por rootkits | rootkitrevealer |
Comentários e experiências ? Conte-nos qual a sua preferência, e porquê.
Até o próximo post !
Assinar:
Postagens (Atom)