Esta semana, Omar Ganiev, fundador da DeteAct
e membro da equipe de hackers russos LC↯BC, falou em nossas redes sociais . Omar pode ser considerado um dos melhores hackers do país.
LC↯BC conquistou o primeiro lugar nas finais do torneio internacional de segurança informática 0CTF em Xangai em 2016.
Por mais da metade de sua vida, Omar foi invadindo sistemas de computador. Para ele, isso é antes de tudo um hobby e uma habilidade básica para a vida, que aos poucos se tornou um emprego, e só então uma base para o empreendedorismo.
Para além do trabalho em si, Omar sente-se muito atraído pela vertente da investigação desta actividade, bem como pela competição desportiva - hacking (CTF), da qual participou muito individualmente e em várias equipas.
Já a equipa More Smoked Leet Chicken, da qual Omar faz parte, é formada por entusiastas que trabalham em diferentes empresas e países, sendo a equipa CTF mais forte da Rússia e uma das mais fortes do mundo.
Já a DeteAct (oficialmente Continuous Technologies LLC), fornece serviços de análise de segurança e teste de penetração. Resumindo, várias empresas estão pedindo que hackem seus sistemas para testar sua força e aprender como evitar ataques de hackers maliciosos e perdas de negócios.
Compartilhamos com vocês a gravação e a transcrição da transmissão.
Olá a todos, meu nome é Omar Ganiev. Também sou conhecido como beched na comunidade de hackers. Eu sou um hacker, estou envolvido na verificação de segurança de sistemas de computador há muitos anos. Tornou-se um hobby para mim na escola e, nos últimos 9 anos, tem sido minha profissão principal. Há 7 anos venho trabalhando em startups na área de segurança da informação, eu mesmo sou o fundador da DeteAct, também conhecida como Continuous Technologies. Agora somos 10 pessoas, estamos crescendo bem e prestamos serviços na área de segurança da informação prática. Teste de penetração, análise de segurança e outros tipos de auditorias de segurança - falaremos sobre tudo isso hoje.
Pentest, teste de penetração. É preciso decidir o que é, porque mesmo no campo da segurança da informação, entre aqueles que estão envolvidos em testes de penetração e auditorias, muitas vezes há confusão e incompreensão da terminologia. Muitas vezes acontece que pessoas diferentes significam coisas diferentes por teste de penetração; é especialmente desagradável quando essas pessoas são o cliente e o provedor de serviços. Os principais termos aqui são auditoria de segurança, teste de penetração, avaliação de segurança e equipe vermelha.
A auditoria de segurança é o conceito mais geral. Significa qualquer tipo de pesquisa de segurança de um objeto, verificando sua conformidade com os requisitos de segurança - não necessariamente informativos. Por exemplo, pode ser segurança contra incêndio.
Pentest (teste de penetração) é algo muito mais específico, embora possa ser entendido de maneiras diferentes. Uma associação lógica imediata é que um teste de penetração é uma verificação para ver se é possível penetrar em um determinado sistema, e o resultado de um teste de penetração deve ser uma resposta binária - sim / não: se foi possível penetrar ou não. Esse é um dos entendimentos desse serviço - ou seja, ele verifica se um invasor em potencial pode penetrar no sistema, atingir alguns objetivos, digamos, em uma ou duas semanas. Durante esse tempo, os pentesters tentam quebrar o sistema e, assim, o nível de segurança do sistema pode ser verificado. Isso é especialmente verdadeiro na área de conformidade. Algumas organizações - organizações governamentais, sistemas de pagamentos internacionais - podem exigir empresas (bancos,aquisição de cartão) passando no teste de penetração neste sentido. Esse teste de penetração deve verificar se funcionou - sim ou não - para obter acesso aos dados de pagamento. Se não, está tudo bem; se sim, então está tudo ruim.
Mas há outro entendimento sobre o teste de penetração, que geralmente é chamado de "análise de segurança". Este é um trabalho abrangente: em vez de tentar penetrar profundamente nos recursos, os hackers-pentesters procuram o máximo de vulnerabilidades possíveis. Afinal, na maioria das vezes, os clientes desejam ver esse serviço específico. Eles estão interessados não apenas em obter uma resposta (se está quebrada ou não), mas em encontrar o maior número possível de buracos para fechá-los - para que não sejam quebrados no futuro.
Redteaming é semelhante em significado a como o pentesting funciona em termos de penetração, mas com algumas peculiaridades. Em geral, a maioria dos holivars é conduzida no tópico de o que é o tempo vermelho. Em suma, este é um evento em que a equipe de ataque visa infligir certos danos, atingir certas ameaças ou riscos de negócios - por exemplo, roubo de fundos, banco de dados de clientes, correspondência do gerente (cada empresa tem seu próprio risco de negócio, a quem o que é crítico). Praticamente não existem restrições à equipa de ataque (a única restrição é o âmbito da lei). Ao contrário da análise de segurança convencional ou teste de penetração, redtimers podem atingir riscos de negócios por qualquer meio: até mesmo para entrar no escritório e roubar fisicamente papel com senhas ou interceptar wi-fi. A parte defensora - isto é, a empresaque está sendo testado também é ilimitado. Oficiais de segurança, administradores, desenvolvedores e devops resistem a esses testes, tentam identificar ataques e evitá-los. Assim, é obtido um treinamento e simulação realistas de uma situação real. Ensinamentos, pode-se dizer.
P: por uma questão de interesse: em quais países os testadores de penetração são mais solicitados e de onde vem a maioria dos pedidos de verificação?
A maior demanda por pentestes está nos Estados Unidos. Se a segunda pergunta for sobre empresas russas, a maioria dos pedidos vem da Rússia. Este mercado é bastante isolado em cada país, por si só. Todo mundo tende a solicitar esses serviços de quem conhece, porque esse é um assunto delicado; ninguém quer confiar sua segurança a alguém de outro país ou a um estranho. Além disso, do Ocidente, quase ninguém pedirá esses serviços da Rússia - devido a sanções e à má reputação.
Então, nós descobrimos aproximadamente o teste de penetração e suas variedades. Você pode contar resumidamente como os projetos estão sendo conduzidos e qual é a metodologia. Aqui é necessário dividir imediatamente o método de trabalho nas chamadas "caixas" de cores diferentes. Você pode conduzir um teste no modo caixa preta - os testadores não recebem quase nenhuma informação sobre o objeto da pesquisa, exceto o endereço do site (ou mesmo o nome da empresa). O outro extremo é a caixa branca, quando todas as informações são fornecidas. Se for uma infraestrutura, todos os endereços IP, diagrama de rede, acesso à rede interna (se necessário), todos os nomes de host (nomes de domínio) são exibidos. Se for um software, algum tipo de serviço da web, códigos-fonte, configuração, contas com funções diferentes são emitidos e assim por diante. O modo mais comum é a caixa cinza,pode ser qualquer coisa de preto a branco. Algumas informações são fornecidas, mas não todas. Por exemplo, para um serviço da web, contas com funções diferentes podem ser emitidas, algumas informações básicas sobre a pilha tecnológica: as linguagens de programação e bancos de dados usados, o diagrama de infraestrutura de serviço. Mas, ao mesmo tempo, as fontes não são divulgadas.
Depois de terem decidido a metodologia, o modo de realizar o trabalho, o lado atacante recebe os dados de entrada. Ou seja, se necessário, acessos, endereços de host, etc. são emitidos. O invasor pode fornecer seus endereços IP, a partir dos quais os ataques serão executados, para que o cliente possa distingui-los dos invasores reais. Em seguida, são realizadas as etapas clássicas do teste de penetração; a implementação e o detalhamento específicos podem ser diferentes, mas, em geral, a exploração deve ser feita primeiro. Os testadores de penetração estão procurando pontos de entrada na infraestrutura - hosts, serviços de rede, endereços de e-mail. Se este for um serviço da web, então eles estão procurando pontos de extremidade de API - várias interfaces da web, vários hosts de API para domínios e assim por diante. Após a realização do reconhecimento, inicia-se a fase de digitalização (faseamento), altura em que é efectuada a procura de vulnerabilidades nas interfaces encontradas. Quando vulnerabilidades são descobertas,o próximo estágio é a exploração: vulnerabilidades são usadas para obter algum tipo de acesso. Além disso, dependendo do tipo de penteste, a pós-exploração pode ser realizada: aprofundando-se no sistema e obtendo acessos adicionais. Além disso, pode haver uma limpeza. O cliente nem sempre deseja que a exploração seja realizada: às vezes, basta encontrar uma vulnerabilidade e relatá-la.
Para deixar mais claro o que significa pós-exploração: digamos que os pentesters encontraram um servidor vulnerável na infraestrutura que é acessível de fora. Por exemplo, recentemente houve patches para uma vulnerabilidade no MS Exchange - o servidor de e-mail da Microsoft, que quase todas as empresas têm e se destaca. Uma vulnerabilidade crítica foi descoberta nele. Essa vulnerabilidade em si tem um efeito enorme: os invasores podem usá-la para obter acesso a emails. Mas, além disso, eles podem realizar a pós-exploração e a partir desse servidor de e-mail se espalhar ainda mais pela infraestrutura. Aproveite alguns outros servidores, a infraestrutura do domínio do Windows Active Directory, para chegar às estações de trabalho dos funcionários - ou seja, à infraestrutura de desenvolvimento. Etc.
P: quais são os insumos mínimos exigidos de uma organização para teste e auditoria?
O dado mínimo de entrada é o nome da empresa, ou seja, pode estar praticamente indisponível. É claro que na fase de reconhecimento, quando procuramos hosts pelo nome de uma empresa, ou estamos procurando hosts associados a um site, podemos cometer um erro e encontrar alguns endereços IP e hosts que não pertencem a essa empresa. Portanto, após o reconhecimento, geralmente é feito um acordo - apenas no caso, para não quebrar algo supérfluo. É muito fácil cometer erros.
Q: existem redtimeters reais com lockpicks e marretas na Rússia? : D
Acho que muitas pessoas têm essas habilidades. Para ser honesto, não sei o quanto esses projetos estão em demanda e com que frequência são realizados. Que era necessário andar diretamente com as chaves mestras e pular as cercas. Provavelmente, esses projetos raramente são realizados.
P: como você ignora o Firewall de aplicativo da Web ou pelo menos o Windows Defender? O que você pode dizer sobre os frameworks Empire e Koadic, você os usa?
Ignoramos o WAF manualmente, escolhendo a carga útil apropriada. Os métodos são padrão aqui. A única dificuldade com WAF é se for um redirecionamento, quando o lado defensor impede ataques - se de alguma forma queimarmos nosso ataque, ou formos detectados com a ajuda de algum meio de proteção como WAF, então podemos encobrir a vulnerabilidade. Portanto, você precisa agir com cuidado e verificar a carga útil (ou seja, sua exploração) em alguns outros hosts onde não há vulnerabilidade. Assim, WAF pode ser verificado e contornado, mas ao longo do caminho, a vulnerabilidade não será detectada pela parte defensora.
P: qual software é necessário para atacantes e para defesa?
Qual software é necessário para proteção é um grande tópico. É muito mais amplo do que um pentest. Qual software é necessário para os invasores é uma boa pergunta, porque depende do tipo de trabalho de que estamos falando. Se estamos falando de análise de software, serviços da web, praticamente nenhum software é necessário. Um canivete suíço como o Burp Suite é o suficiente. A versão paga custa US $ 400 e contém quase todas as ferramentas necessárias. Além disso, é claro, qualquer linguagem de programação funcional - geralmente Python ou GoLang para testadores de penetração. É o suficiente.
Se falamos de infraestrutura, de redirecionamento, o kit de ferramentas é muito mais amplo. Precisamos de uma variedade de scanners de vulnerabilidade, precisamos de ferramentas para corrigi-los nos sistemas: depois de invadir um sistema, precisamos ganhar uma posição nele, precisamos ofuscar nossa carga para que não seja detectada por um antivírus, e assim por diante.
P: quais áreas da Federação Russa são mais solicitadas a testar ou conduzir uma auditoria?
Aparentemente, estamos falando sobre em quais indústrias a maior demanda por testes de penetração. Obviamente, é necessário para as empresas que possuem TI; quanto mais desenvolvida a TI, mais empresa de TI, mais testes de penetração são necessários. A demanda corresponde aproximadamente a isso. Para algumas empresas, o pentesting é obrigatório porque fazem parte de uma infraestrutura crítica de informações: empresas estatais e bancos. Para os bancos, um pentest é necessário a pedido do Banco Central e também como parte da obtenção de um certificado PCI DSS para sistemas de pagamento internacionais. Outras instituições de pagamento também precisam desse certificado. Ou seja, organizações de pagamento, assuntos de infraestrutura crítica de informações e empresas de TI exigem testes de penetração. Ou seja, qualquer empresa de TI, inclusive startups, cuja infraestrutura toda é um serviço web com base de usuários: é fundamental para elas se quebrarem.
P: quão importante é a compreensão da engenharia social nos testes de penetração?
Eu não a mencionei separadamente. Eu diria que esta é uma das ferramentas de redirecionamento; além disso, a engenharia social costuma ser executada separadamente, como um serviço separado, e parece uma simples lista de mala direta. Criamos um site de phishing, procuramos o e-mail dos funcionários da empresa e enviamos a eles um link para este site com alguma legenda (por exemplo, este é um novo portal corporativo, todos precisam entrar e digitar sua senha).
Em seguida, mantemos as estatísticas - quantas pessoas viram a carta, clicaram no link e inseriram a senha. Mostramos isso ao cliente e ele entende com quem precisamos conduzir um programa educacional. Para ser honesto, praticamente nenhuma habilidade é necessária para esses testes, e a própria empresa é capaz de conduzi-los facilmente usando ferramentas de código aberto quando se trata de um envio único. Em geral, existe um negócio totalmente separado - a indústria de conscientização sobre segurança, aumentando a conscientização das pessoas no campo da segurança da informação.
Existem produtos especiais que enviam regularmente e-mails de phishing para a base de usuários. Se uma pessoa for seduzida, ela receberá um vídeo de treinamento ou outra aula interativa pela qual terá que passar. Em seguida, ele será verificado novamente e a tendência será monitorada - por exemplo, um ano atrás, 50% dos funcionários caíram por phishing, e agora apenas 5%. Obviamente, livrar-se completamente dos perigos do phishing é quase impossível.
Quão importante é a compreensão - é importante se você estiver fazendo esse trabalho, mas é bastante fácil. Ou, se você estiver fazendo uma redação, a engenharia social é muito eficaz em sua estrutura. Mas, ao mesmo tempo, eles terão que ser muito mais precisos e precisos, é claro; não pode ser um envio em massa para todos os funcionários - eles perceberão e entenderão onde você pode tentar entrar. Você precisa enviá-lo para pessoas específicas individuais.
P: qual é o custo do serviço?
Ótima pergunta, porque ninguém vai realmente responder por você.
Isso é muito diferente. Normalmente, um pentest custa quanto o cliente pode pagar, grosso modo. Este é um dos coeficientes. O problema é que mesmo a quantidade de trabalho inicialmente não será determinística - especialmente se for uma caixa preta. Inicialmente, não sabemos realmente quantos hosts e interfaces existirão. Só podemos entender de forma aproximada qual é a natureza desta empresa, que tipo de infraestrutura ela pode ter e de quantas pessoas e tempo precisamos, e a partir disso será possível estimar os custos de mão de obra em homens-semana. Se tivermos algum tipo de estrutura de preços, podemos multiplicar as semanas por pessoa pelo nosso fator e dar como preço.
Na verdade, tudo varia muito; muitas vezes, especialmente em grandes empresas, o vendedor simplesmente encontra uma empresa, elimina algum tipo de orçamento e, em seguida, o trabalho precisa ser feito dentro desse orçamento. E aqui, em vez disso, os custos do trabalho são ajustados ao preço, e não vice-versa.
Também posso dizer que no final - já que temos um mercado opaco e com preços incompreensíveis - o custo da obra pode diferir muitas vezes com a mesma qualidade e custo de mão de obra. Você pode encontrar um penteste para 300 mil e 4 milhões de rublos com a mesma quantidade de trabalho. Isso costuma ser visto até mesmo em licitações: há uma especificação técnica, você olha as etiquetas de preços e ofertas - o spread é de 5 a 10 vezes. Apesar do fato de que é improvável que a qualidade seja diferente de 5 a 10 vezes.
Já que estamos falando sobre a qualidade e o preço do teste de penetração. Você precisa entender se sua empresa precisa de um teste de penetração - e se você é um pentester, precisa entender como justificar um teste de penetração e vendê-lo para a empresa. Não há uma resposta universal aqui também. Na minha opinião, os drivers de teste de penetração são algumas coisas simples. Um deles é o compliance, que já mencionei: quando uma organização é obrigada a fazer um teste de penetração e sem isso não será possível realizar funções empresariais, como aceitar pagamentos com cartões plásticos. Isso é claro.
Outro motivador são os incidentes: quando a empresa já quebrou, sofreu danos e pegou. Para se proteger, você precisa conduzir uma investigação, um teste de penetração para que ele não seja quebrado no futuro e tomar outras medidas. Todo mundo começa a correr e pensar no que fazer.
O terceiro fator é o medo: digamos que ainda não tenha havido incidentes, mas talvez outros membros da indústria os tenham, e a empresa esteja com medo. Outro driver que pode ser considerado em conjunto com o driver do medo são as novas empresas, por exemplo, startups que acabaram de iniciar algum tipo de desenvolvimento. Eles pensaram sobre isso e decidiram que era necessário realizar imediatamente um teste de penetração para corrigir as vulnerabilidades e evitá-las no futuro. Para que, no momento em que o serviço se torne público e, possivelmente, popular, não haja vulnerabilidades. Esta é a abordagem mais sólida.
Outro driver muito comum entre as startups são os requisitos de contrapartes. Este tipo de conformidade, quando você pode realizar suas funções de negócios, mas suas contrapartes querem verificar se você está monitorando sua segurança. Portanto, se você é uma pequena empresa que deseja vender, por exemplo, para grandes empresas ocidentais, então você definitivamente terá que passar um pentest. Especialmente se você oferece SaaS (software como serviço) - então um relatório Pentest certamente será necessário. Isso estará em suas diretrizes, seus advogados e pessoal de segurança simplesmente não permitirão tal empreiteiro que não tenha passado no teste de penetração.
Estas são as razões pelas quais as empresas recorrem a testadores de penetração e realizamos testes. Mas com a qualidade, na verdade, é muito difícil. Já disse que no teste de penetração a quantidade de trabalho não é determinada inicialmente, mas o resultado também não é determinístico. Você pode pedir um pentest por 6 milhões de rublos e obter um relatório que consiste nas palavras "nenhuma vulnerabilidade encontrada". Como verificar se o trabalho foi feito e com boa qualidade? Você não pode entender isso. Para verificar isso com precisão, você precisa praticamente fazer todo esse trabalho de novo. Você pode tentar monitorar os logs para ver se a atividade de rede estava realmente vindo dos pentesters, mas tudo isso é complicado. E de forma simples, é impossível verificar a qualidade do trabalho.
As medidas possíveis, além de rastrear a atividade, são solicitar relatórios detalhados sobre o que está sendo feito, solicitar artefatos, relatórios de scanners e outros logs, por exemplo, da ferramenta Burp. Inicialmente, você pode discutir a metodologia - o que os pentesters farão. Pode ficar claro com isso que eles entendem. Mas tudo isso exige habilidade e conhecimento - portanto, se a empresa não tiver seguranças que já interagiram com pentesters e entendam esses serviços, não será possível verificar a qualidade do trabalho.
P: diga-me por onde começar? Qual é a idade ideal para mergulhar profundamente no campo pentest?
Ambas as perguntas são sobre carreira, e aqui você pode alterar "pentest" para "programação", por exemplo. Eu diria que não existe uma idade ideal, mas esse é o tipo de mantra que todo mundo repete - supostamente nunca é tarde demais. Mas, é claro, se uma pessoa começa a estudar aos 10 anos, então é mais provável que tenha sucesso e aprenda mais rápido do que se começasse aos 40; embora isso não signifique que começar aos 40 seja inútil. Isso requer mais esforço. Em segundo lugar, se falamos de um ponto de vista utilitário - para trabalhar na área de pentesting, para se tornar um pentester e conseguir um emprego, o limiar de entrada é menor do que para o desenvolvimento. Porque para começar a ser útil no desenvolvimento, você precisa pelo menos ser capaz de programar e conhecer algumas tecnologias. E em ordempara começar a fazer pelo menos alguma coisa no teste de penetração - embora possa ser uma “ilusão de atividade” - é suficiente aprender a usar algumas ferramentas e interpretar os resultados desse trabalho. Mas esse será um limite de entrada muito básico. Levará mais esforço para ficar realmente frio no teste de penetração do que para desenvolvê-lo. Para realmente se familiarizar com o hacking, você precisa conhecer o desenvolvimento - e nem mesmo em uma linguagem de programação e pilha de tecnologia, mas em várias. Você também precisa de pelo menos algum (ou melhor, bom) conhecimento de infraestrutura, rede, administração do Windows e Linux e programação. Você precisa de uma imersão profunda em alguma área, e ao mesmo tempo ser capaz de quebrar. Ou seja, o limite inferior de entrada no teste de penetração é menor, mas tornar-se um idoso ou superior é mais difícil.será necessário mais esforço para ficar realmente legal no teste de penetração do que para desenvolvê-lo. Para realmente se familiarizar com o hacking, você precisa conhecer o desenvolvimento - e nem mesmo em uma linguagem de programação e pilha de tecnologia, mas em várias. Você também precisa de pelo menos algum (ou melhor, bom) conhecimento de infraestrutura, rede, administração do Windows e Linux e programação. Você precisa de uma imersão profunda em alguma área, e ao mesmo tempo ser capaz de quebrar. Ou seja, o limite inferior de entrada no teste de penetração é menor, mas tornar-se um idoso ou superior é mais difícil.será necessário mais esforço para ficar realmente legal no teste de penetração do que para desenvolvê-lo. Para realmente se familiarizar com o hacking, você precisa conhecer o desenvolvimento - e nem mesmo em uma linguagem de programação e pilha de tecnologia, mas em várias. Você também precisa de pelo menos algum (ou melhor, bom) conhecimento de infraestrutura, rede, administração do Windows e Linux e programação. Você precisa de uma imersão profunda em alguma área, e ao mesmo tempo ser capaz de quebrar. Ou seja, o limite inferior de entrada no teste de penetração é menor, mas tornar-se um idoso ou superior é mais difícil.Você também precisa de pelo menos algum (ou melhor, bom) conhecimento de infraestrutura, rede, administração do Windows e Linux e programação. Você precisa de uma imersão profunda em alguma área, e ao mesmo tempo ser capaz de quebrar. Ou seja, o limite inferior de entrada no teste de penetração é menor, mas tornar-se um idoso ou superior é mais difícil.Você também precisa de pelo menos algum (ou melhor, bom) conhecimento de infraestrutura, rede, administração do Windows e Linux e programação. Você precisa de uma imersão profunda em alguma área, e ao mesmo tempo ser capaz de quebrar. Ou seja, o limite inferior de entrada no teste de penetração é menor, mas tornar-se um idoso ou superior é mais difícil.
Para não ficar preso no primeiro degrau, você precisa começar aprendendo as coisas fundamentais. Programação, redes, tecnologias em geral - como o sistema operacional, as redes são organizadas, como os serviços modernos são implantados, como vários ataques conhecidos funcionam em diferentes linguagens de programação, como se defender deles. Há muito, mas todas essas são coisas fundamentais que você precisa saber para avançar.
P: os ataques ao wi-fi Evil Twin são reais agora ou as empresas têm autorização por meio de um servidor RADIUS?
Para ser honesto, não posso dar uma resposta especializada sem ter estatísticas. Acho que é diferente para cada pessoa; provavelmente há muitos lugares onde Evil Twin funciona muito bem.
P: você usa em seu trabalho os métodos e abordagens do NIST, OSSTMM, OSINT, OWASP, etc., e quais você pode destacar?
OSINT não é realmente uma técnica, é apenas inteligência de código aberto. OWASP é geralmente uma organização, mas esta organização tem metodologias para testar aplicativos da web, aplicativos móveis, e nós os seguimos; pelo menos em espírito, não fazer todas as listas de verificação por carrapatos - eles podem ser bastante controversos. Seguimos as metodologias OSSTMM; na minha opinião, é no OSSTMM que as etapas de exploração, escaneamento, aproveitamento, pós-exploração, extração são definidas - ou seja, o ponto principal dessa metodologia é que tais etapas devem ser aplicadas, mas depois vai para muito mais detalhes.
Resumindo, sim, mas não literalmente. Seguimos o espírito desta metodologia.
P: o que é perguntado nas entrevistas?
Diferentemente. Depende de qual posição você está indo. Freqüentemente, há um padrão de pergunta como este. Eles descrevem uma situação para você - por exemplo, eles dizem: você obteve a execução do código no servidor Linux de fora, você atravessou o perímetro, quebrou o servidor web, você está dentro, quais ações você deve tomar a seguir? Ou - você chegou à estação de trabalho do funcionário, quais são os próximos passos? Ou - você encontrou uma vulnerabilidade em cross-site scripting em alguma página, uma política de segurança de conteúdo é implementada com tais e tais parâmetros, como você a contornará? Geralmente há perguntas desse tipo.
P: qual é o limite para inserir a recompensa de bug e é realmente possível viver apenas dela?
A recompensa por insetos é uma recompensa pelos erros. Programas em que uma empresa dá dinheiro a pessoas que relatam vulnerabilidades nos sistemas dessa empresa. É o crowdsourcing de uma pentest, quando este é efectuado não ao abrigo de um contrato entre duas empresas, mas sim de uma oferta pública. Isso é para quem não sabe.
Na verdade, a recompensa por insetos é uma coisa crescente. Existem grandes locais com muitos programas. O limite de entrada para participar da recompensa por bug para pentesters é baixo e alto. Baixo no sentido de que há tantos programas e recursos de recompensa de bugs que podem ser quebrados que você pode encontrar algumas vulnerabilidades simples. Não necessariamente complicado. Mas, por outro lado, você pode executar algum programa, onde já encontrou todos os bugs simples, e passar dois meses cavando sem encontrar nada. Isso é muito desmotivador. Portanto, muitas vezes acontece que as pessoas se tentam neste campo, e têm azar - tentam algo difícil e não encontram vulnerabilidades.
Em geral, existem muitas pessoas na abundância de insetos que ganham muito dinheiro sem ter um conhecimento único e notável. Eles tiveram sorte algumas vezes ou entenderam o truque da recompensa de bugs e aprenderam como encontrar programas e recursos que contêm vulnerabilidades simples. Também acontece frequentemente que uma pessoa descobre algum tipo de vulnerabilidade em algum recurso e então percebe que ele está realmente muito difundido e, da mesma forma, muitas outras empresas podem ser quebradas ao monetizá-lo. É realista viver apenas da recompensa de insetos - sim, existem até milionários que ganham centenas de milhares de dólares por ano apenas com a recompensa de insetos. Eles são poucos; a maioria, é claro, ganha muito pouco. Mas existe uma camada grande o suficiente de pessoas que ganham pelo menos dezenas de milhares por ano. Ou seja, não apenas algumas e dezenas de pessoas, mas centenas.
P: Conte-nos sobre as versões Metasploit. Ouvi dizer que há vários deles, e entre eles há alguns pagos. Qual é a diferença?
Acho que você pode ir ao site da versão paga e ler qual é a diferença. Faz muito tempo que não uso o Metasploit pro, mas pelo menos existe uma interface web. Esta é uma das diferenças; Não direi imediatamente que outras diferenças fundamentais existem. Talvez existam alguns outros módulos.
Pensei em falar sobre as vulnerabilidades mais comuns. Na verdade, muitas empresas realizam testes ao longo do ano e contam o número de diferentes tipos de vulnerabilidades para resumir as estatísticas do ano. Eu não decepcionei essas estatísticas, mas se falarmos sobre os sentimentos e as coisas mais simples que são encontradas, as vulnerabilidades mais simples e eficazes na infraestrutura que trazem muitos benefícios aos invasores são políticas de senha fracas. Ataques banais de força bruta são o flagelo das infraestruturas. Se a empresa empregar pelo menos 500 pessoas, uma parte significativa delas não será particularmente versada em tecnologia. Geralmente, pelo menos um deles pode usar força bruta na senha. Isso funciona especialmente bem quando uma política de senha é implementada na empresa, o que obriga, por exemplo, a ter uma senha,contendo uma letra maiúscula, uma minúscula e um número, no mínimo 8 caracteres, e pode ser trocado a cada três meses ou a cada mês. Isso leva a resultados ruins. Se uma pessoa for forçada a fazer isso, ela não conseguirá se lembrar da senha. Se ele não usa um gerenciador de senhas com senhas aleatórias, às vezes ele apenas escreve o mês atual com uma letra maiúscula (como "dezembro2020"). Na verdade, é muito comum em todas as infraestruturas corporativas típicas - imagine o Active Directory, centenas de funcionários com Windows em suas máquinas. Você pode simplesmente pegar o mês e ano atual ou passado, passar por todas as contas - alguém vai quebrar. Um ataque muito poderoso.então ele não consegue se lembrar da senha. Se ele não usa um gerenciador de senhas com senhas aleatórias, às vezes ele apenas escreve o mês atual com uma letra maiúscula (como "dezembro2020"). Na verdade, é muito comum em todas as infraestruturas corporativas típicas - imagine o Active Directory, centenas de funcionários com Windows em suas máquinas. Você pode simplesmente pegar o mês e ano atual ou passado, passar por todas as contas - alguém vai quebrar. Um ataque muito poderoso.então ele não consegue se lembrar da senha. Se ele não usa um gerenciador de senhas com senhas aleatórias, às vezes ele apenas escreve o mês atual com uma letra maiúscula (como "dezembro2020"). Na verdade, é muito comum em todas as infraestruturas corporativas típicas - imagine o Active Directory, centenas de funcionários com Windows em suas máquinas. Você pode simplesmente pegar o mês e ano atual ou o último, passar por todas as contas - alguém vai quebrar. Um ataque muito poderoso.passar por todas as contas - alguém vai quebrar. Um ataque muito poderoso.passar por todas as contas - alguém vai quebrar. Um ataque muito poderoso.
Se falamos de serviços da Web, o ataque mais simples é burlar a autorização e acessar dados de outros clientes. O ataque consiste no fato de você levar uma solicitação a uma aplicação web, que dá, por exemplo, seu extrato bancário por número de conta. No link ou na solicitação ao site é transmitido o número da conta, numérico, em resposta é emitido um arquivo PDF com o extrato. Você muda o número da sua conta para o número da conta de outra pessoa e recebe o extrato de outra pessoa.
Esta vulnerabilidade é chamada de "referência direta insegura a objetos" - referência direta insegura a objetos. Nos serviços modernos, esta é a vulnerabilidade mais comum, de acordo com minhas observações. Vulnerabilidades mais clássicas que prevaleciam no passado - como injeção de SQL e script entre sites - são menos comuns em serviços escritos usando estruturas modernas. Especialmente injeção de SQL. Mas ocorrem erros lógicos, porque os frameworks não salvam deles. O próprio desenvolvedor deve pensar em como se proteger, como implementar o modelo de papel e delimitar o acesso aos objetos.
P: você está falando sobre uma certa gradação de falhas no sistema. Você poderia dar exemplos de vulnerabilidades simples, médias e complexas?
Não me lembro em que contexto falei sobre isso, para ser honesto. Bem, acabei de dizer que vulnerabilidades simples são aquelas que são fáceis de encontrar e explorar. Provavelmente, esses parâmetros podem ser usados para caracterizar a complexidade da vulnerabilidade - a complexidade da pesquisa e a complexidade da exploração. Pode ser difícil encontrá-lo - por exemplo, este é algum tipo de vulnerabilidade lógica complicada, para a exploração da qual você precisa entender a lógica do serviço e a interação de vários componentes, mas ao mesmo tempo, a operação é simples: você só precisa enviar vários pedidos. Ou, por exemplo, pode ser difícil de encontrar, porque você recebeu fontes de 100 MB com um milhão de linhas de código - sente, leia.
Encontrar uma vulnerabilidade nesses 100 MB pode ser difícil - mas pode ser fácil de explorar. Ou vice-versa - é difícil de explorar por causa de algumas restrições, por causa de firewalls. Mas nos relatórios Pentest não há gradação “simples-complexa”: existe uma gradação de acordo com a criticidade. A criticidade é composta pelo nível de risco - ou seja, o nível de dano - e a probabilidade de exploração. Probabilidade, porém, é quase o mesmo que complexidade. Se levarmos muito tempo e as habilidades de um testador de penetração sênior para encontrar a vulnerabilidade, podemos estimar a probabilidade de exploração como baixa. Nós o encontramos em três semanas de escavação, enquanto outros podem nem mesmo encontrá-lo. No entanto, o dano dessa vulnerabilidade pode ser alto. Ao combinar esses indicadores, obtemos um nível de risco "médio".
Os relatórios Pentest têm um modelo bastante padrão. Há uma parte introdutória onde é simplesmente descrito o que testamos e por que, qual o modelo do intruso - acesso externo ou interno, tenha ele uma conta ou não. Em seguida, há um resumo, que descreve resumidamente o resultado: quais vulnerabilidades foram descobertas, qual nível de segurança - tudo está ruim ou tudo é bom. Cada vulnerabilidade é descrita, demonstrada com capturas de tela e um código é fornecido para que os desenvolvedores da empresa entendam tudo. E recomendações são dadas. Ele também fornece uma avaliação da probabilidade e nível de dano.
P: quantos Windows 7 sem patch com ms17-010 no setor corporativo você encontrou durante o teste de penetração?
Tem. Normalmente, não em um domínio, na verdade. Não muito.
P: como você sabe quando é a hora de uma entrevista? Como você se destacará de outros candidatos? (possivelmente conhecimento de linguagens de programação ou uma conta em sites como HackTheBox)
Eu colocaria mais em uma conta em sites. Se, é claro, você resolver honestamente os problemas aí. Se não for justo, não haverá conhecimento e você não será aprovado na entrevista de qualquer maneira.
Em geral, é claro, também existem certificações. Eles realmente não mostram nada, mas ajudam a passar os filtros de RH e a romper.
P: Você pode fornecer orientação sobre literatura e recursos para estabelecer as bases?
Sim, porém, em um formato não muito conveniente.
Links fornecidos por Omar
:
docs.google.com/spreadsheets/d/15w9mA5HB9uuiquIx8pavdxThwfMrH7HSv2zmagrekec/edit#gid=0
:
blog.deteact.com/ru
blog.orange.tw
swarm.ptsecurity.com
malicious.link/post
adsecurity.org
posts.specterops.io/archive
:
portswigger.net/web-security
www.hackthebox.eu
overthewire.org/wargames
ctftime.org
:
.
Web Application Hacker's Handbook
The Tangled Web
docs.google.com/spreadsheets/d/15w9mA5HB9uuiquIx8pavdxThwfMrH7HSv2zmagrekec/edit#gid=0
:
blog.deteact.com/ru
blog.orange.tw
swarm.ptsecurity.com
malicious.link/post
adsecurity.org
posts.specterops.io/archive
:
portswigger.net/web-security
www.hackthebox.eu
overthewire.org/wargames
ctftime.org
:
.
Web Application Hacker's Handbook
The Tangled Web
Mas agora não há falta de literatura - a dificuldade, ao contrário, é escolher entre a massa de materiais que mais lhe convier. Google "melhores cursos" - haverá muito de tudo de uma vez. HackTheBox é ótimo; Eu não decidi nada sobre isso, mas tenho uma ideia. Acho que muitas habilidades podem ser aprendidas lá.
P: que outra linguagem de programação vale a pena aprender além de Python e Bash?
O Bash provavelmente realmente precisa ser feito. A propósito, há um ótimo site OverTheWireBandit onde você pode praticar bem o Bash. E assim - apenas um idioma, que você conhece o suficiente para completar as tarefas. Claro, existem tarefas para as quais o Python não é adequado - por exemplo, se você precisar coletar rapidamente dados de muitos hosts em toda a Internet. Mas para a maioria das tarefas, ele servirá. No entanto, quanto mais linguagens você souber - pelo menos no nível de compreensão do paradigma e da sintaxe de leitura - melhor. Durante os testes de penetração e auditorias, você encontrará diferentes pilhas e aplicativos escritos em diferentes idiomas - você precisa ser capaz de entender como eles funcionam. Além disso, mesmo se você não auditar a fonte do software - você só lida com infraestrutura - ainda precisa saber idiomas diferentes.Muitas ferramentas não são escritas em Python. Se a ferramenta não funcionar bem, você terá que entendê-la, ler o código, corrigi-lo. Digamos que em uma infraestrutura Windows seja principalmente C #.
P: quais certificados são mais solicitados para redtim, mas além do OSCP?
Precisamente para Redtim? Existem certificados chamados de - Certified Redream Professional, Certified Redteam Expert, Pentester Academy. Mas eles não são muito procurados, eles simplesmente existem. Acho difícil responder quais são realmente procurados. A demanda é calculada por quantos empregadores os inserem nos requisitos de vagas e quantos clientes - nos requisitos de licitação. Muitas vezes acontece que os funcionários da contratada são obrigados a ter um certificado - e, na maioria das vezes, OSCP ou CEH - um certificado antigo, ainda mais teórico do que prático.
P: você precisa de habilidades de descompilação em um penteste?
Até certo ponto, sim. Principalmente se você trabalha com segurança de aplicativos, na análise de segurança de aplicativos. Nesse caso, pode ser útil. Mas na maioria das vezes - com aplicativos móveis: para eles, você pode não receber o código-fonte, mas terá o próprio aplicativo e irá descompilá-lo, fazer engenharia reversa nele.
Em geral, se você perguntar sobre “você precisa de habilidades” - bem, sobre qualquer habilidade, você pode dizer que é útil. Mas é impossível saber absolutamente tudo. Saber muito é bom, mas você ainda precisa entender sua especialização, entender o que pode fazer melhor. Mesmo dentro de aplicativos da web, existem especializações; existem especializações por setores - por exemplo, uma pessoa pode muito bem conhecer as vulnerabilidades dos serviços de pagamento. Não importa no nível da web ou da lógica financeira; há pessoas que estão empenhadas apenas em testar terminais de pagamento, serviços bancários pela Internet, aquisição de cartão e assim por diante. Parece que isso é tudo - uma área, mas na verdade existem coisas muito diferentes. E o hardware pode ser diferente (cartões inteligentes, terminais) e aplicativos da web, API e móveis. Resumindo, qualquer habilidade pode ser útil, mas não obrigatória.É imperativo ter algum tipo de massa crítica de habilidades e conhecimentos.
Posso acrescentar sobre o custo e a demanda. De acordo com minhas estimativas, o tamanho do mercado de teste de penetração russo é de cerca de RUB 1-1,5 bilhões. Isso eu contei no final de 19. Isso significa que é exatamente quanto as empresas russas gastam em pentest. Claro, as empresas de pentester podem vender serviços no exterior pelo menos um pouco, de modo que o tamanho total do mercado será um pouco maior. É claro que o mercado mais sofisticado é muito fragmentado; existem muitas pequenas empresas que ganham pouco dinheiro. Os clientes tendem a mudar de provedor de testes de penetração porque a rotação oferece uma aparência nova e cobertura máxima. Uma equipe, por exemplo, perde uma vulnerabilidade, enquanto a outra vai notar, mas pode perder outra. Por causa disso, não há monopólio completo - para uma equipe sentar-se e os pentests compram apenas dela.Eles mudam a cada ano.
P: quantas horas você terminou com os exames OSCP?
Não me lembro, algumas horas. Para ser sincero, passei duas vezes; a primeira vez que resolvi tudo durante o dia, escrevi um relatório de 80 páginas, mas não li os requisitos para isso. Acontece que um determinado formato de capturas de tela era necessário e meu relatório não foi aceito, então tive que enviá-lo novamente. Demorou 5 horas para refazer o teste .
P: aconselhar blogueiros que falam russo na área de pentesting
Nossa empresa tem um blog. É verdade que raramente escrevemos. Basicamente, você precisa seguir as pessoas no Twitter; a maioria dos pentesters escreve em inglês, incluindo os que falam russo. Tentamos duplicar - escrevemos em russo e em inglês. Recebo informações do Twitter - me inscrevo em pessoas interessantes que, mais cedo ou mais tarde, vão repassar tudo de interessante, então você não pode seguir os blogs especificamente, mas obter tudo através do Twitter. Ou através dos canais do Telegram. Não existem blogueiros que falam russo, me parece.
P: quais são as chances de um administrador de Linux / rede entrar no Pentest?
Caminho direto para o teste de penetração da infraestrutura. Deve ser fácil implementá-lo se o administrador tiver um bom conhecimento de rede e Linux. A única coisa é que o caminho será ainda mais curto se for um administrador do Windows; redes corporativas geralmente são Windows. Mas está tudo bem de qualquer maneira, é um bom pano de fundo.
Na verdade, eu tenho uma placa do Google onde escrevi um conjunto de conhecimentos para diferentes especializações e níveis de testadores de penetração. Estagiário, Júnior, Intermediário, Sênior, Web e Infraestrutura. Provavelmente, o link pode ser inserido; será no Habré, se houver uma postagem final. Esses são meus requisitos subjetivos, mas eu os mudei um pouco com base no feedback de pessoas que deram seus comentários e sugestões e adicionaram algo. Portanto, podemos considerá-los mais ou menos adequados e nos concentrarmos neles. Existem certificações listadas e até taxas de salários no mercado e orientações para desenvolvimento.
P: como é bonito fugir da pergunta do cliente, que ele pode fazer durante o teste de penetração - "Bem, você encontrou algo?"
Por que fugir da questão? Responda. Se você ainda não encontrou nada, você não encontrou. Mais cedo ou mais tarde, você terá que responder a essa pergunta no relatório. Portanto, é normal que você tenha sido questionado uma semana após o início do trabalho e você diga que não encontrou.
P: onde procurar vagas em um pentester? Há muito pouco em hh.
Sim, o Headhunter não tem muito. Normalmente todos se procuram por conhecidos, então, provavelmente, você só precisa se comunicar com as pessoas. Você pode postar seu currículo - talvez neste modo haja mais atenção. Você também pode pesquisar empregos no LinkedIn. E também há canais de Telegram onde as vagas são postadas
P: O que você acha do tryhackme?
Eu não conheço nenhum. Agora, há muitos sites na web, eu recomendaria a Portswigger Academy para decidir. Portswigger é a empresa por trás do Burp.
Q: pentest e controle remoto. É real? Ou, devido às especificidades do trabalho, tentam recrutar para o escritório?
Mesmo. Bem, agora todo mundo trabalha remotamente, até mesmo grandes empresas. É claro que, se você estiver considerando uma opção puramente remota, pode haver dificuldades. Existe também um formato tal que primeiro você vem para o escritório para trabalhar, por um mês, por exemplo, e depois remotamente.
P: existe um banco de dados público ou uma lista de vulnerabilidades típicas para aprender? Ou algum tipo de livro?
Sim, por exemplo, OWASP Top 10. Isso é controverso, mas essas são as 10 principais vulnerabilidades em aplicativos da web. Existe também o CWE (Common Weakness Enumeration) - uma tentativa de classificar todas as vulnerabilidades, dividindo-as em um sistema hierárquico. Você pode ver que existem exemplos de vulnerabilidades específicas. Outro diretório é o CVE, é apenas um diretório de vulnerabilidades em vários softwares. Também há exemplos reais lá, você pode ver e entender como funcionam os exploits.
P: Você pode ler um pouco da sua placa de especificações?
O formato da voz é, obviamente, estranho. Eu posso compartilhar a tela. [a tela não é compartilhada] Acho que o link para o documento estará no Habré. Diz quanta experiência (em anos) é necessária para cada nível; isso é, obviamente, subjetivo - antes, como um ponto de referência. As habilidades são descritas, sem ordem específica. Salário e certificação para atingir. E o caminho do crescimento - o que fazer para alcançar o próximo nível. Por exemplo, para um pentester júnior, você precisa de cerca de um ano de experiência - trabalho ou estudo; se uma pessoa não estudou por pelo menos um ano - não esteve envolvida em TI ou programação - e imediatamente tentou entrar no teste de penetração, dificilmente terá o conhecimento e as habilidades. Os principais requisitos neste nível são familiaridade geral com a metodologia Pentest, conhecimento dos fundamentos da tecnologia, capacidade de usar Linux e escrever scripts simples que funcionam com a rede (analisadores, por exemplo),conhecimento de expressões regulares, conhecimento do protocolo HTP, trabalho com ferramentas - scanners de vulnerabilidade e Burp. Em geral, leia, não vou listar tudo.
P: o que fazer em condições em que quase todas as vagas exigem pelo menos 2 anos de experiência? Ficando com Bug Bounty e HackTheBox, ou tentando romper para um nível que você não corresponde?
É besteira. Eles exigem e exigem - na verdade, eles olharão para o conhecimento. Você pode escrever sobre "experiência" apenas bug bounty e HackTheBox. Se você realmente não corresponde ao nível exigido de conhecimento e compreensão, isso significa que você não corresponde. Mas o critério formal para o número de anos de experiência não é tão importante, eu acho.