Dicas de implantação otimizadas do Arachni
Quando estamos apenas praticando com Arachni, provavelmente invocaríamos um único servidor e cliente hospedados na mesma Kali Box. O executável do Web UI Client deve estar em execução para garantir que o Arachni esteja sendo operado da mesma maneira que seria em um cenário de teste real. Uma opção de linha de comando está disponível, mas tende a ser limitada em escala e funciona melhor em implantações de servidor único.
A arquitetura de alto nível da Arachni pode ser vista aqui:
A arquitetura de Arachni é seu molho secreto - ela ajuda com a escala e a velocidade. O cérebro da operação aqui é o Cliente de Interface do Usuário da Web (arachni_web). Ele fornece o único ponto de contato que contatará sua grade de Dispatch Servers (despachantes) com solicitações de varredura iniciais. Os dispatchers, em seguida, geram uma nova instância no servidor. Nesse ponto, o cliente de interface do usuário da Web poderá se comunicar diretamente com a instância gerada para configurá-la para as tarefas de verificação apropriadas.
Quando uma instância é executada com sua tarefa, o cliente de UI da Web obtém os dados e os armazena, enquanto a instância simplesmente desaparece, retornando os recursos que consumiu ao sistema operacional para futuras instâncias ou outras tarefas de software.
À medida que avançamos para os testes de produção, podemos escalar a implantação para aproveitar recursos adicionais em outros servidores em nosso grid, e isso não apenas nos permitirá executar várias verificações, mas também acomodar equipes de usuários enquanto consolidamos os dados reunidos em um banco de dados central no cliente de interface do usuário da Web. O SQLite3 é a opção padrão, mas se você nunca transformar esta instalação em uma instalação em grade ou em larga escala, é altamente recomendado que você inicie com o PostgreSQL. A documentação de como fazer isso está localizada aqui:https://github.com/Arachni/arachni-ui-web/wiki/database.
O Arachni difere de outros scanners de Dynamic Application Security Test (DAST) de caixa preta, na medida em que faz uso pesado de HTTP assíncrono para conduzir suas varreduras. Isso permite que cada Instância envie solicitações HTTP para destinos em paralelo. Como você pode ter várias verificações em andamento ao mesmo tempo, isso aumenta bastante a velocidade com a qual podemos ir do início até o final. A maioria dos scanners gastam um tempo considerável aguardando a conclusão dos encadeamentos de digitalização. Isso se torna mais notório, pois esses scanners geralmente executam um conjunto de varreduras e não adaptam sua lista de varredura dinamicamente como o Arachni.
O número de instâncias que podem ser suportadas dependerá do número de servidores disponíveis. , a disponibilidade de recursos e a largura de banda disponível para iniciar as digitalizações. Gostaria de advertir que, se você está preocupado com a largura de banda, é provável que o tráfego gerado exceda os valores não triviais e deve ser diminuído para evitar prejudicar o desempenho do aplicativo para usuários reais ou alertar as pessoas de operações de segurança. Nada diz que estou aqui para danificar seu aplicativo como um ataque de negação de serviço distribuída (DDoS) do seu scanner de aplicativo. Como dizem, com grande poder vem uma grande responsabilidade!
A arquitetura de alto nível da Arachni pode ser vista aqui:
A arquitetura de Arachni é seu molho secreto - ela ajuda com a escala e a velocidade. O cérebro da operação aqui é o Cliente de Interface do Usuário da Web (arachni_web). Ele fornece o único ponto de contato que contatará sua grade de Dispatch Servers (despachantes) com solicitações de varredura iniciais. Os dispatchers, em seguida, geram uma nova instância no servidor. Nesse ponto, o cliente de interface do usuário da Web poderá se comunicar diretamente com a instância gerada para configurá-la para as tarefas de verificação apropriadas.
Quando uma instância é executada com sua tarefa, o cliente de UI da Web obtém os dados e os armazena, enquanto a instância simplesmente desaparece, retornando os recursos que consumiu ao sistema operacional para futuras instâncias ou outras tarefas de software.
À medida que avançamos para os testes de produção, podemos escalar a implantação para aproveitar recursos adicionais em outros servidores em nosso grid, e isso não apenas nos permitirá executar várias verificações, mas também acomodar equipes de usuários enquanto consolidamos os dados reunidos em um banco de dados central no cliente de interface do usuário da Web. O SQLite3 é a opção padrão, mas se você nunca transformar esta instalação em uma instalação em grade ou em larga escala, é altamente recomendado que você inicie com o PostgreSQL. A documentação de como fazer isso está localizada aqui:https://github.com/Arachni/arachni-ui-web/wiki/database.
Depois de ter selecionado um banco de dados, você está bloqueado; e mudar sua mente significa perder todos os seus dados anteriores. Vale a pena o esforço para construir o ambiente do PostgreSQL.
O Arachni difere de outros scanners de Dynamic Application Security Test (DAST) de caixa preta, na medida em que faz uso pesado de HTTP assíncrono para conduzir suas varreduras. Isso permite que cada Instância envie solicitações HTTP para destinos em paralelo. Como você pode ter várias verificações em andamento ao mesmo tempo, isso aumenta bastante a velocidade com a qual podemos ir do início até o final. A maioria dos scanners gastam um tempo considerável aguardando a conclusão dos encadeamentos de digitalização. Isso se torna mais notório, pois esses scanners geralmente executam um conjunto de varreduras e não adaptam sua lista de varredura dinamicamente como o Arachni.
O número de instâncias que podem ser suportadas dependerá do número de servidores disponíveis. , a disponibilidade de recursos e a largura de banda disponível para iniciar as digitalizações. Gostaria de advertir que, se você está preocupado com a largura de banda, é provável que o tráfego gerado exceda os valores não triviais e deve ser diminuído para evitar prejudicar o desempenho do aplicativo para usuários reais ou alertar as pessoas de operações de segurança. Nada diz que estou aqui para danificar seu aplicativo como um ataque de negação de serviço distribuída (DDoS) do seu scanner de aplicativo. Como dizem, com grande poder vem uma grande responsabilidade!
Nenhum comentário:
Postar um comentário