Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.) De acordo com o PMBok 5ª ed., o escopo é a soma dos produtos, serviços e resultados a serem fornecidos na forma de projeto. Sendo ele referindo-se a: Escopo do projeto – O trabalho que deve ser realizado para entregar um produto, serviço ou resultado com as funcionalidades e funções especificadas. As vezes, este termo é visto como incluindo o escopo do produto; e Escopo do produto – As características e funções que caracterizam um produto, serviço ou resultado. Esta etapa do gerenciamento está relacionada principalmente com a definição e controle do que está e do que não está incluso no projeto, pois pretende-se entregar exatamente o que foi solicitado no projeto. Existem dois termos que devem ser conhecidos que são práticas inaceitáveis e que podem levar ao fracasso do projeto: Scope Creep – É o aumento descontrolado do produto do projeto sem ajustes de tempo, custos e recursos. Normalmente ocorre quando uma mudança é feita sem controle algum, partindo do cliente diretamente para a equipe do projeto; Gold Plating – Refere-se dar ao cliente mais do que o necessário, ou seja, o que foi especificado e aprovado. Normalmente esse tipo de situação parte do gerente de projeto ou da equipe. Devemos lembrar que o escopo é uma das restrições conflitantes do projeto, assim como, mas não limitando-se à: Escopo; Qualidade; Cronograma; Orçamento; Recursos; e Riscos. Neste capítulo, temos os seguintes processos: Processos do Gerenciamento do Escopo do Projeto Visão geral da área 5.1 Planejar o Gerenciamento do Escopo – O processo de criar um plano de gerenciamento do escopo do projeto que documenta como tal escopo será definido, validado e controlado; 5.2 Coletar os Requisitos – O processo de determinar, documentar e gerenciar as necessidades e requisitos das partes interessadas a fim de atender aos objetivos do projeto; 5.3 Definir o Escopo – O processo de desenvolvimento de uma descrição detalhada do projeto e do produto; 5.4 Criar a EAP – O processo de subdivisão das entregas e do trabalho do projeto em componentes menores e mais facilmente gerenciáveis; 5.5 Validar o escopo – O processo de formalização da aceitação das entregas concluídas do projeto; 5.6 Controlar o Escopo – O processo de monitoramento do andamento do escopo do projeto e do produto e gerenciamento das mudanças feitas na linha de base do projeto. Vamos analisar cada um dos processos. Processos Processos de gerenciamento escopo do projeto do 5.1 Planejar o Gerenciamento do Escopo É o processo de criar um plano de gerenciamento do projeto que documenta como tal escopo será definido, validado e controlado. Irá fornecer orientações e instruções sobre como o escopo será gerenciado durante o projeto. O documento gerado, o plano de gerenciamento do escopo, é um dos componentes do plano de gerenciamento do projeto ou do programa, levando-se em consideração como o escopo será definido, desenvolvido, monitorado, controlado e verificado. O fluxo inicia-se com as informações contidas no Termo de Abertura do Projeto, os últimos planos auxiliares aprovados do plano de gerenciamento do projeto, as informações históricas contidas nos ativos dos processos organizacionais, e quaisquer outros fatores ambientais da empresa que sejam relevantes. Este plano vai auxiliar a diminuir o “scope creep” do projeto, ou seja, os desvios. Entradas 1. Plano de Gerenciamento do Projeto 2. Termo de Abertura do Projeto 3. Fatores ambientais da empresa 4. Ativos de processos organizacionais Ferramentas & Técnicas 1. Opinião especializada 2. Reuniões Saídas 1. Plano de Gerenciamento do Escopo 2. Plano de Gerenciamento dos Requisitos 5.2 Coletar os requisitos É o processo de determinar, documentar e gerenciar as necessidades e requisitos das partes interessadas a fim de atender aos objetivos do projeto. O principal benefício deste processo é o fornecimento da base para definição e gerenciamento do escopo do projeto, incluindo o escopo do produto. Este processo é realizado logo no início do projeto, especificamente após o processo 13.1 Identificar as partes interessadas. A coleta dos requisitos nem sempre será possível de ser feita 100% de uma vez, sendo assim, podemos considerar o planejamento por ondas sucessivas. O PMI conceitua requisito como uma condição ou capacidade cuja presença em um produto, serviço ou resultado é exigida para satisfazer um contrato ou outra especificação formalmente imposta. Entradas 1. Plano de Gerenciamento do Escopo 2. Plano de Gerenciamento dos Requisitos 3. Plano de Gerenciamento das Partes Interessadas 4. Termo de Abertura do Projeto 5. Registro das partes interessadas Ferramentas & Técnicas 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Entrevistas Dinâmicas de grupo Oficinas facilitadas (workshops) Técnicas de tomadas de decisão em grupo Questionários e pesquisas Observações Protótipos Benchmarking Diagramas de contexto Análise de documentos Saídas 1. Documentação dos requisitos 2. Matriz de rastreabilidade dos requisitos 5.3 Definir o Escopo Depois que o Plano de Gerenciamento do Escopo define como será feito o gerenciamento do escopo e os requisitos foram coletados, inicia-se o processo de definição do escopo. Definir o escopo é o processo de desenvolvimento de uma descrição detalhada do projeto e do produto. O principal benefício deste processo é que ele descreve os limites do projeto, serviços ou resultados ao definir quais dos requisitos coletados serão incluídos e quais serão excluídos do escopo do projeto. Já que todos os requisitos identificados no processo “Coletar Requisitos” podem não estar incluídos no projeto, o processo “Definir o Escopo” seleciona os requisitos finais do projeto a partir da documentação de requisitos entregue durante o processo “Coletar Requisitos”. Em seguida define uma descrição detalhada do projeto e produto, do serviço ou resultado. A preparação detalhada da especificação do escopo é crítica para o sucesso do projeto e baseia-se nas entregas principais, premissas e restrições que são documentadas durante a iniciação do projeto. Durante o planejamento do projeto, o seu escopo é definido e descrito com maior especificidade conforme as informações a respeito do projeto são conhecidas. Os riscos existentes, premissas e restrições são analisados para verificar sua integridade e acrescentados ou atualizados conforme necessário. O processo “Definir o Escopo” pode ser altamente iterativo. Em projetos de ciclo de vida iterativo, será desenvolvida uma visão de alto nível para o projeto em geral, mas o escopo detalhado é determinado em uma interação de cada vez e o planejamento detalhado para a iteração seguinte é executado à medida que o trabalho no escopo do projeto e entregas atuais avança. Entradas 1. 2. 3. 4. Plano de Gerenciamento do Escopo Termo de Abertura do Projeto Documentação dos requisitos Ativos de processos organizacionais Ferramentas & Técnicas 1. Opinião especializada 2. Análise de produto 3. Geração de alternativas 4. Oficinas facilitadas Saídas 1. Especificação do escopo do projeto 2. Atualizações nos documentos do projeto 5.4 Criar a Estrutura Analítica do Projeto (EAP) Criar a EAP (ou em inglês, WBS – Work Breakdown Structure) é o processo de subdivisão das entregas e do trabalho do projeto em componentes menores e mais facilmente gerenciáveis. O principal benefício desse processo é o fornecimento de uma visão estruturada do que deve ser entregue. Exemplo de WBS – EAP de um carro. A EAP é uma decomposição hierárquica do escopo total do trabalho a ser executado pela equipe do projeto a fim de alcançar os objetivos do projeto e criar as entregas requeridas. A EAP organiza e define o escopo total do projeto e representa o trabalho especificado na atual declaração do escopo do projeto aprovada. O trabalho planejado é contido dentro dos componentes de nível mais baixo da EAP, que são chamados de pacotes de trabalho. Um pacote de trabalho pode ser usado para agrupar as atividades onde o trabalho é agendado, tem seu custo estimado, monitorado e controlado. No contexto da EAP, o trabalho se refere a produtos de trabalho ou entregas que são o resultado da atividade e não a atividade propriamente dita. A EAP é utilizada para: Estimar os recursos para as atividades Estimar os custos / orçamento Planejar a qualidade Identificar os riscos Planejar as aquisições Definir as atividades Entradas 1. 2. 3. 4. 5. Plano de Gerenciamento do Escopo Especificação do escopo do projeto Documentação dos requisitos Fatores ambientais da empresa Ativos de processos organizacionais Ferramentas & Técnicas 1. Decomposição 2. Opinião especializada Saídas 1. Linha de base do escopo 2. Atualizações nos documentos do projeto 5.5 Validar o Escopo Validar o Escopo é o processo de formalização da aceitação das entregas concluídas do projeto. O principal benefício deste processo é que ele proporciona objetividade ao processo de aceitação e aumenta a probabilidade da aceitação final do produto, serviço ou resultado, através da validação de cada entrega. As entregas verificadas obtidas pelo processo “Controlar a Qualidade” são revisadas com o cliente ou patrocinador para assegurar que foram concluídas satisfatoriamente e receberam a aceitação formal pelo cliente ou patrocinador. Neste processo, as saídas obtidas como resultado dos processos do planejamento na área de conhecimento em gerenciamento de projetos, tais como a documentação dos requisitos ou da linha de base do escopo, assim como os dados de desempenho do trabalho obtidos nos processos de execução de outras áreas de conhecimento são a base para realizar a validação e para a aceitação final. O processo “Validar o Escopo” é diferente do processo “Controlar a Qualidade” pois o primeiro está principalmente interessado na aceitação das entregas, enquanto que o controle da qualidade se interessa principalmente com a precisão das entregas e o cumprimento dos requisitos de qualidade especificados nas entregas. O controle de qualidade normalmente é feito antes da validação do escopo, mas os dois processos podem ser executados paralelamente. Entradas 1. 2. 3. 4. 5. Plano de Gerenciamento do Escopo Documentação dos requisitos Matriz de Rastreabilidade dos requisitos Entregas verificadas Dados de desempenho do trabalho Ferramentas & Técnicas 1. Inspeção 2. Técnicas de tomada de decisão em grupo Saídas 1. 2. 3. 4. Entregas aceitas Solicitações de mudanças Informações sobre o desempenho do trabalho Atualizações nos documentos do projeto 5.6 Controlar o Escopo Controlar o Escopo é o processo de monitoramento do progresso do escopo do projeto e do escopo do produto e gerenciamento das mudanças feitas na linha de base do escopo. O principal benefício deste processo é permitir que a linha de base do escopo seja mantida ao longo de todo o projeto. O controle do escopo do projeto assegura que todas as mudanças solicitadas e ações corretivas ou preventivas recomendadas sejam processadas através do processo “Realizar o controle integrado de mudanças”. O controle do escopo do projeto é usado também para gerenciar as mudanças reais quando essas ocorrem e é integrado aos outros processos de controle. O aumento sem controle do produto ou escopo do projeto sem ajustes de tempo, custo, e recursos é chamado de scope creep. A mudança é inevitável; assim sendo, algum tipo de processo de controle de mudança é obrigatório para todos os projetos. Entradas 1. 2. 3. 4. 5. Plano de Gerenciamento do Escopo Documentação dos requisitos Matriz de Rastreabilidade dos requisitos Dados de desempenho do trabalho Ativos de processos organizacionais Ferramentas & Técnicas 1. Análise de variação Saídas 1. 2. 3. 4. 5. Informações sobre o desempenho do trabalho Solicitações de mudanças Atualizações no plano de gerenciamento do projeto Atualizações nos documentos do projeto Atualizações nos ativos de processos organizacionais Mapeamento de Redes com nmap – ferramenta de código aberto com diversas funcionalidades O nmap (reduzido de “Network Mapper”) é uma ferramenta livre, de código aberto, utilizada para mapeamento de redes e inclui diversas funcionalidades como: varredura de portas, detecção de versão de serviços, identificação remota de sistemas operacionais ( OS fingerprinting), etc. Esta ferramenta foi criada por Gordon “Fyodor” Lyon, que ainda hoje participa ativamente do desenvolvimento da mesma. O nmap é uma ferramenta versátil que é muito utilizada, entre outros, em auditorias, teste de invasão, teste em firewalls e testes de conformidade. O nmap, em geral, opera nas camadas de rede e transporte. Entretanto, também é capaz de manipular dados da camada de enlace (endereças MAC e requisições ARP, por exemplo) e de interpretar dados da camada de aplicação para inferir informações interessantes a respeito de seu alvo (versões de serviços e sistemas operacionais, por exemplo). A versão mais nova do nmap por ser obtida através do site oficial. Informações adicionais às apresentadas neste artigo podem ser encontradas na documentação oficial ou no livro de autoria do próprio Fyodor dedicado à ferramenta (Nmap Network Scanning, Gordon “Fyodor” Lyon, Insecure.com LCC Publishings. ISBN: 9780979958717), que inclusive tem uma versão traduzida em português brasileiro (Exame de Redes com NMAP, Gordon “Fyodor” Lyon, Editora Ciência Moderna. ISBN: 9788573938654). Parte deste livro está disponível gratuitamente na Internet para leitura e consulta. Nos exemplos de alvo apresentados neste artigo, são utilizados apenas faixas de endereços IP privados definidos na RFC 1918, a saber 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16, e o endereço scanme.nmap.org, que é um host preparado pelos próprios desenvolvedores da ferramenta para receber este tipo de varredura. Os leitores são encorajados a não executar varreduras sobre qualquer ativo que não seja de sua propriedade ou que se tenha autorização formal para isso. Especificação de alvos Antes de iniciar uma varredura, seja esta muito simples ou extremamente complexa, é preciso dizer ao nmap quais são os alvos desta varredura. O nmap define como alvos válidos endereços IP , faixas de endereços IP ou nomes de domínio dispostos em lista e separados por caracteres de espaçamento (espaço, tab, nova linha, etc). Estes alvos podem ser passados como parâmetro na linha de comando ou em um arquivo (pela opção -iL arquivo_alvos.txt). Assim, quando o alvo é um endereço IP único, este deve ser especificado como quatro números inteiros positivos, entre 0 e 255, separados por pontos. São exemplos de endereços IP únicos: 172.28.1.101 192.168.0.1. Quando o alvo é uma faixa de endereços IP, este deve ser especificado com duas sintaxes distintas. A primeira delas consiste do par endereço da rede e sua máscara de subrede. São exemplos de pares endereço da rede e máscara de subrede: 10.20.0.0/16 172.16.1.32/27. A outra sintaxe aceita consiste de um endereço IP com listas de números separados por vírgulas ou intervalos especificados com hífen. São exemplos de endereço I P com listas de números ou intervalos: 10.0.0.0-255 172.16.1,3,5,0-127 (equivalente a 172.16.1.0-127 172.16.3.0-127 172.16.5.0-127). Finalmente, quando o alvo é um nome de domínio, este deve ser especificado por sequências de caracteres quaisquer separadas por vírgulas. São exemplos de nomes de domínio: scanme.nmap.org e www.seginfo.com.br. “Quickstart” A forma mais simplista de executar a varredura utilizando o nmap é executar a ferramenta sem parâmetros sobre o alvo especificado. Esta varredura consiste de todas as opções padrão tanto de descoberta quanto de varredura. nmap scanme.nmap.org Esta varredura verifica se o alvo está ativos na rede utilizando o método de descoberta e faz a varredura utilizando o método de varredura padrão. O resultado esperado de uma varredura como esta é: 1. Verificação de atividade do alvo na rede; e 2. Listagem de portas abertas, fechadas e filtradas associadas ao nome do serviço que tradicionalmente utiliza cada porta, caso o alvo esteja ativo. Isto quer dizer que se um determinado serviço estiver sendo provido em uma porta diferente da que tradicionalmente é utilizada, o nmap fornecerá uma resposta incorreta sobre o serviço. Isto quer dizer que, por exemplo, se um servidor ssh, que tradicionalmente utiliza a porta 22, for configurado para prover o serviço na porta 80, tradicionalmente utilizada por servidores http, nesta varredura o nmap detectará um servidor http e não um ssh, como esperado. Nas próximas seções, “Descoberta de hosts” e “Técnicas de Varredura de portas” respectivamente, é discutido do que consistem estes método de descoberta e de varredura padrão. Descoberta de hosts Frequentemente, o primeiro passo de uma auditoria de segurança ou projeto de mapeamento de rede é reduzir uma grande faixa de endereços IP a uma lista de endereços de interesse. Este interesse pode variar dependendo do propósito da varredura. Em uma auditoria teste de invasão caixa preta, o auditor se interessa por qualquer host que esteja ativo na rede, enquanto em um auditoria em aplicações web, o auditor se interessa somente nos hosts que provejam serviços web. Assim, para cada propósito distinto há descoberta de hosts. uma forma diferente realizar a O nmap fornece diversas opções a fim de perso nalizar a descoberta de hosts para que esta se adeque aos propósitos da varredura. Estas opções serão discutidas a seguir. Primeiramente, pode ser interessante não fazer a descoberta de hosts. Isto ocorre quando a varredura compreende um único endereço alvo, ou quando já se sabe que os alvos estão ativos na rede. Para estes casos, podem ser utilizadas as opções “List scan” (-sL) ou “No Ping” (-PN) como exemplificadas nos exemplos abaixo: nmap -sL 10.0.0.0/24 nmap -PN 10.0.0.0/24 O “List scan” diz ao nmap que a varredura consiste apenas em listar os alvos passados como parâmetro, embora o nmap ainda faça uma consulta DNS (reversa, no caso de alvos especificados como endereços IP) sobre os alvos. Portanto no caso do “List scan” nenhuma varredura ativa é realizada sobre os alvos especificados. No caso do “No Ping”, o nmap pula a faze de descoberta completamente. Versões mais antigas do nmap apontarão a opção “P0” para o “No Ping”, mas esta opção é considerada obsoleta, apesar de ainda funcionar nas versões atuais do nmap, e, a título de curiosidade, esta opção foi modificada por ser frequentemente confundida com o “IP Protocol Ping” (-PO). No exemplo dado acima, o nmap ainda faria a varredura utilizando o método de varredura padrão sobre os alvos especificados. A única situação em que o nmap não se comportaria desta forma acontece quando os alvos especificados estão na mesma rede que o host que faz a varredura. Neste caso, o nmap faria um “ARP Ping”, ignorando a opção do “No Ping”. Uma vez que se queira fazer uma descoberta de hosts, esta deve ser ativada com a opção “-sP”. Quando esta opção esta ativada, o nmap não realiza varreduras, mas apenas realiza a descoberta de hosts, se não houverem outras opções comandando que a varredura seja feita. Neste caso, o nmap utiliza o método de descoberta de hosts padrão, que é o “ARP Ping” (-PR) para alvos localizados na rede interna e o “ICMP Echo Ping” (-PE) para os demais. O “ARP Ping” (-PR) é sempre o método de descoberta de hosts escolhido pelo nmap quando o alvo encontra-se na mesma rede que o host de onde a ferramenta é executada. Mesmo que outro método de descoberta de host seja explicitamente especificado o nmap irá realizar o “ARP Ping” sobre endereços da rede interna. Para forçar o nmap a utilizar outro método de descoberta de hosts sobre endereços na rede interna é necessário utilizar a opção adicional “--send-ip”. Outro adendo importante é que esta opção não funciona nos sistemas da família Microsoft Windows, pois os mesmo não oferecem suporte a sockets brutos (não vinculados a protocolos). Assim, considerando que a faixa de endereços IP 192.168.1.0/16 seja a rede interna, os comandos abaixo são equivalentes: nmap -sP 192.168.1.0/16 nmap -sP -PR 192.168.1.0/16 O “ICMP Echo Ping” (-PE) é o método de descoberta padrão para endereços que não estão localizados na mesma rede que o host de onde a ferramenta é executada. Este método faz parte da família de métodos “ICMP Ping”, que ainda inclui os métodos “ICMP Timestamp Ping” (-PP) e “ICMP Address Mask Ping” (-PM). Todos estes métodos funcionam de maneira semelhante, pois detectam a atividade em um host pelo envio de pacotes ICMP de diferentes tipos. Assim como os comandos abaixo também são equivalentes para a rede externa: nmap -sP scanme.nmap.org nmap -sP -PE scanme.nmap.org Outros métodos de descoberta de hosts interessante são o “TCP SYN Ping” (-PS lista_de_portas) e o “UDP Ping” (-PU lista_de_portas). Estes métodos são úteis, pois alguns hosts podem não respondem requisições ICMP, seja por restrições no firewall ou do próprio sistema operacional. Assim, estes métodos de descoberta enviam pacotes TCP ou UDP a uma porta que pode estar aberta ou fechada. Se a porta estiver aberta, o host certamente irá responder, denunciando a atividade do host. No entanto, se a porta estiver filtrada, nenhuma resposta será enviada (bloqueada pelo mesmo firewall que impediu descoberta via ICMP). Assim, a desvantagem destes métodos, além de serem mais lentos que o “ARP Ping” e o “ICMP Ping”, está na escolha das portas utilizadas, pois se todas as portas escolhidas estiverem filtradas, não será possível detectá-lo, ainda que o host esteja ativo. São exemplos de descobertas de host por “TCP SYN Ping” e “UDP Ping”: nmap -sP -PS22,80,443 scanme.nmap.org nmap -sP -PU53,631 scanme.nmap.org Varredura de portas Esta seção trata da principal funcionalidade do nmap, a varredura de portas. Mesmo quando estava em suas primeiras versões, o nmap sempre foi capaz de fazer a varredura de portas de forma rápida e eficiente. O nmap fornece diversos métodos para realizar varreduras de portas e a escolha de qual método utilizar depende do objetivo que se pretende atingir. Varreduras de portas podem ter por objetivo detectar serviços providos por um host alvo, verificar se um firewall está filtrando requisições de forma adequada ou ainda confirmar se a pilha TCP foi implementada conforme especificado na RFC 793. É importante frisar que embora hajam diversos métodos de varredura de portas disponíveis, só é possível utilizar um por vez. Outro adendo importante é que a maioria dos métodos de varredura de portas exige altos privilégios de usuário. Isto é necessário, pois algums pacotes são veiculados por sockets brutos (não vinculados a protocolos) que exigem este tipo de privilégios. Outra parte importante na varredura de portas é a listagem de portas (-p). A listagem de portas a serem consideradas separadas por vírgulas e, assim como as faixas de endereços IP, é possível especificar faixas de portas utilizando um hífen. As podem ser associadas a um protocolo manualmente ou automaticamente pelo nmap dependendo do contexto da varredura. Quando os protocolos são especificados manualmente, a listagem de portas é sempre precedida por uma letra que identifica o protocolo utilizado (‘T’ para TCP e ‘U’ para UDP) e quando são especificados automaticamente, basta informar a listagem de portas. Também é possível se utilizar todas as portas através da opção “-p” ou limitar por uma determinada quantidade de porta mais utilizadas através da opção “--top-ports qtd_portas” e se esta quantidade for 100 é possível utilizar o “Fast Scan” (-F), que é equivalente a “--top-ports 100”. Assim, são exemplos de listagem de portas: -p2225,80,443; pT:22,80,U:53,631. A varredura de portas sempre é feita para cada execução do nmap, exceto para o caso do “Ping Scan” (-sP), quando é necessário escolher um método de varredura de portas para que esta seja executada. Quando nenhum método de varredura de portas é explicitamente especificado, o nmap executa o “TCP SYN Scan”, caso tenha sido executado por um usuário com privilégio de criar sockets brutos (não vinculados a protocolos), e o “TCP Connect Scan”, caso contrário. O “TCP SYN Scan” (-sS) é considerado pelos desenvolvedores da ferramenta como o método de varredura de portas mais popular. Esta varredura consiste em enviar pacotes TCP com a flag SYN ativada para as portas alvo. Esta flag é ativada para se iniciar uma nova conexão TCP entre os hosts, no entanto o nmap não completa o processo de abertura da conexão (“ThreeWay Handshake”, explicado na seção 3.4 da RFC 793) e por isto é considerado um método bem furtivo e difícil de se detectar. Nesta varredura, uma porta é considerada aberta se a resposta recebida for um pacote com as flags SYN e ACK ativadas. Se a resposta for um pacote com a flag RST ativada a porta é classificada como fechada e se nenhuma resposta for recebida, a porta é classificada como filtrada. Assim, considerando que a faixa de endereços IP 192.168.1.0/16 seja a rede interna, os comandos abaixo são equivalentes (considerando que um usuário privilegiado esta executando as varreduras): nmap 192.168.1.0/16 nmap -sP -sS 192.168.1.0/16 nmap -sP -PR -sS 192.168.1.0/16 De forma semelhante, os comandos equivalentes para a rede externa: abaixo também são nmap scanme.nmap.org nmap -sP -sS scanme.nmap.org nmap -sP -PE -sS scanme.nmap.org O “TCP Connect Scan” (-sT) funciona de forma muito semelhante ao “TCP SYN Scan”. Esta varredura consiste em tentar criar conexões entre os hosts na porta alvo. Isto é feito através da execução completa do Aperto de Mão em Três Vias (“Three-Way Handshake”, explicado na seção 3.4 da RFC 793) executado pela chamada de sistema “connect()”. Este método de varredura de portas é mais lento e menos furtivo que o “TCP SYN Scan”, pois a conexão é, de fato, estabelecida, no entanto, por usar a chamada de sistema, esta varredura pode ser executar por um usuário sem privilégios. Nesta varredura, uma porta é considerada aberta se a conexão for estabelecida com sucesso. Se a conexão for rejeitada a porta é classificada como fechada e se o tempo limite para estabelecer a conexão expirar, a porta é classificada como filtrada. Assim, considerando que a faixa de endereços IP 192.168.1.0/16 seja a rede interna, os comandos abaixo são equivalentes (considerando que um usuário sem privilégios esta executando as varreduras): nmap 192.168.1.0/16 nmap -sP -sT 192.168.1.0/16 nmap -sP -PR -sT 192.168.1.0/16 De forma semelhante, os comandos equivalentes para a rede externa: abaixo também são nmap scanme.nmap.org nmap -sP -sT scanme.nmap.org nmap -sP -PE -sT scanme.nmap.org Outros métodos de varredura de portas sobre o protocolo TCP interessante são o “TCP ACK Scan” (-sA), “TCP NULL Scan” (sN), o “TCP FIN Scan” (-sF) e o “TCP Xmas Scan” (-sX). Estes métodos são úteis, pois permitem explorar falhas de configuração de um firewall stateless ou roteador que filtre pacotes, que estejam dificultando uma varredura direta. Estas varreduras enviam pacotes TCP com a flag ACK ativada para o “TCP ACK Scan”, com nenhuma flag ativada para “TCP NULL Scan”, com a flag FIN ativada para o “TCP FIN Scan” e, finalmente, as flags FIN, PSH e URG ativadas para o “TCP Xmas Scan”. Estas varreduras, em geral, são executadas para agregar informação a outras varreduras já executadas, visto que nem sempre oferecem resultados confiáveis. Isto acontece, pois nem todos os sistemas operacionais implementam sua pilha TCP em conformidade com a RFC 793 e respondem de maneiras inesperadas a requisições como as utilizadas para este tipo de varredura. Outro adendo importante é que as soluções mais modernas de IDS /IPS são capazes de detectar e bloquear este tipo de varredura, tornando-as ineficazes. São exemplos deste tipo de varredura: nmap -PN -sN -p- 172.17.16.1 nmap -sX -p2125,53,80,443 192.168.1.0/24 nmap -sP -PP -sA --top-ports 512 scanme.nmap.org Existem também métodos de varredura de portas sobre outros protocolos além do TCP. A varredura sobre o protocolo UDP é chamada “UDP Scan” (-sU). Esta é a única varredura que pode ser executada simultaneamente com outras. Diferentemente das outras varreduras, um pacote UDP vazio é enviado para a porta alvo. Uma porta é considerada aberta se um pacote UDP de qualquer espécie for recebido. Se um pacote “ICMP Port Unreachable” (ICMP tipo 3, código 3) for recebido, se um pacote “ICMP Destination Unreachable” (ICMP tipo 3, qualquer código) de qualquer código diferente de 3 for recebido, a porta é classificada como filtrada e se nenhuma resposta for recebida, a porta é classificada como aberta ou filtrada. Maiores informações sobre os protocolos UDP e ICMP e seus tipos e códigos podem ser encontradas nas RFC 768, 792 e Registro de Parâmetros do ICMP disponibilizado pela IANA, respectivamente. São exemplos deste tipo de varredura: nmap -sP -sU -F scanme.nmap.org Há também a varredura sobre o protocolo SCTP, chamada “SCTP INIT Scan” (-sY). O SCTP é um protocolo que combina características tanto do TCP quanto do UDP e introduz novas funcionalidades como multihoming e multistreaming. Maiores informações sobre o SCTP podem ser encontradas nas RFC 3286 e 4960. Quanto a varredura SCTP, ela é muito similar à “TCP SYN Scan”, pois nunca completa a associação SCTP e é relativamente furtiva e pouco intrusiva. São exemplos deste tipo de varredura: nmap -PN -sY -p- 172.17.16.1 Detecção de serviço, sistema operacional versão e As vulnerabilidades publicadas em entidades especializadas, em geral, são eficazes somente sobre determinadas versões de uma dada aplicação. Assim, é interessante obter uma leitura mais específica sobre um serviço detectado do que somente a porta em que este está sendo executado, uma vez que estes serviços podem ser executados em, virtualmente, qualquer porta. Sendo assim, o nmap fornece uma opção para aferir o serviço e a versão do software provendo este serviço através da opção “sV”. Esta opção tenta obter, através do envio de pacotes construídos com este propósito, descobrir qual serviço está sendo provido de fato e sua versão aproximada. Vale ressaltar que se o nmap for compilado com suporte a OpenSSL, a ferramenta tentará aferir serviço provido e sua versão aproximada mesmo com a camada extra de criptografia. Maiores informações sobre a detecção da versão de serviços e aplicações podem ser encontradas no capítulo 7 do livro do próprio autor da ferramenta, disponibilizado gratuitamente. nmap -sP -sS -sV --top-ports 256 scanme.nmap.org Assim como são publicadas vulnerabilidades para serviços providos em uma rede, o mesmo é acontece com sistemas operacionais, portanto também é importante detectar qual sistema é executado por uma alvo na rede. O nmap também fornece uma opção para aferir o sistema operacional e sua versão aproximada através da opção “-O”. Esta operação também é conhecida como “OS Fingerprinting”. Esta opção tenta obter, através do envio de pacotes construídos com este propósito, descobrir qual sistema operacional está sendo executado e sua versão aproximada. Maiores informações sobre a detecção remota do sistema operacional podem ser encontradas no capítulo 8 do livro do próprio gratuitamente. autor da ferramenta, disponibilizado nmap -sP -sS -sV -O -p- scanme.nmap.org Conclusão O nmap é uma ferramenta que oferece uma gama de opções úteis e é de grande valia para obtenção de informação para diversas atividades, como auditorias de segurança em geral, mapeamento de redes inteiras, teste em firewalls, etc. Este artigo discutiu apenas as funcionalidades principais, no entanto ainda há muitas outras que não foram sequer mencionadas, como: o Nmap Scripting Engine (NSE), opções de controle de desempenho, opções de evasão de firewalls/IDS/IPS, opções de spoofing, e muitas outras. O leitor é encorajado a buscar mais informações na documentação oficial, no livro oficial e outras fontes, como o Webinar #4 da Clavis sobre “NMAP – Software Livre para Exploração de Rede e Auditorias de Segurança”. Vale mencionar que, apesar de não haver legislação especifica que tipifique como crime o ato de executar varreduras de qualquer tipo em redes de qualquer espécie, o objetivo deste artigo não é incentivar os leitores a fazer varreduras aleatórias em redes que não são de sua propriedade ou que não se tenha autorização para fazêlo, mas informar quanto a que tipo de informação relevante pode ser extraída destas varreduras e como estas podem ajudar em auditorias teste de invasão, depuração de firewalls ou administração de servidores, etc. Referências [1] Nmap Free Security Scanner For Network Exploration & Security Audits: http://nmap.org/ [2] Nmap Official Documentation: http://nmap.org/docs.html [3] Nmap Network Scanning, Gordon “Fyodor” Lyon, Insecure.com LCC Publishings. ISBN: 9780979958717 [4] Exame de Redes com NMAP, Gordon “Fyodor” Lyon, Editora Ciência Moderna. ISBN: 9788573938654 [5] Nmap Network Scanning, Gordon “Fyodor” Lyon, http://nmap.org/book/toc.html [6] RFC 1918 Address Allocation for Private Internets: http://tools.ietf.org/html/rfc1918 [7] RFC 793 Transmission Control Protocol: http://tools.ietf.org/html/rfc793 [8] Linux Man Pages Section 2 (System Calls) connect(): http://linux.die.net/man/2/connect [9] RFC 768 User Datagram Protocol: http://tools.ietf.org/html/rfc768 [10] RFC 792 Internet Control Message Protocol: http://tools.ietf.org/html/rfc792 [11] Internet Control Message Protocol (ICMP) Parameters Registry: http://www.iana.org/assignments/icmp parameters/icmpparameters.xml [12] RFC 3286 An Introduction to the Stream Control Transmission Protocol: http://tools.ietf.org/html/rfc3286 [13] RFC 4960 Stream Control Transmission Protocol: http://tools.ietf.org/html/rfc4960 [14] Nmap Network Scanning, Gordon “Fyodor” Lyon, Chapter 7. Service and Application Version Detection. http://nmap.org/book/vscan.html [15] Nmap Network Scanning, Gordon “Fyodor” Lyon, Chapter 8. Remote OS Detection. http://nmap.org/book/osdetect.html [16] Webinar #4 – NMAP – Software Livre para Exploração de Rede e Auditorias de Segurança http://www.blog.clavis.com.br/webinar4softwarelivreparaexploracaoderedeeauditoriasdeseguranca/ [17] Webinar #14 – “Teste de Invasão com o Nmap Scripting Engine http://www.blog.clavis.com.br/webinar-14-teste-de-invasa o-com-o-nmap-scripting-engine/ Fonte: iMasters Este artigo foi elaborado em conjunto por Rafael Ferreira, Bruno Salgado, Henrique Soares e Jarcy Azevedo Versão 2.5 da ferramenta Intersect para sistemas Linux é liberada O Intersect, ferramenta automatizada de “post-exploitation” para sistemas Linux escrita em Python, recebeu nesta semana sua versão 2.5. O principal objetivo do projeto é dar assistências a testadores de infiltração na automação de tarefas que normalmente precisariam ser executadas manualmente. O Intersect coleta arquivos de senhas, cópia de chaves SSH, processos para enumerar aplicativos instalados, reúne informações detalhadas sobre a rede, mapeia a rede (hosts internos para dinamização), localiza e identifica aplicações comuns do antivírus e do firewall, entre outras funcionalidades. Na nova versão, houve a inclusão de todas as características da versão anterior, além da implementação de novos módulos como egress buster, reverse HTTP shells, persistent backdoors e cracking de senha. O “Egress Buster”, instaurado por Dave Kennedy (ReL1K), foi adaptado exatamente para a versão 2.5. Além disso, a Intersect 2.5 apresenta um novo XMLRPC Cracking Utility, para automatizar a quebra de senhas. A equipe desenvolvedora da ferramenta espera que aqueles que experimentarem as suas funcionalidades possam propagá-las, e tenham interessem em construir seus próprios módulos e contribuir para o crescimento do projeto Intersect. O Intersect 2.5 está disponível para download no GitHub. Com informações de Under-Linux