Avanços na Detecção de Ataques de Injeção SQL
Pesquisas mostram que aprendizado de máquina melhora significativamente as taxas de detecção de injeção SQL.
― 6 min ler
Nesta seção, discutimos três experimentos que fizemos pra avaliar a eficácia da nossa abordagem na Detecção de ataques de Injeção SQL. Primeiro, analisamos como um modelo básico se saiu na detecção desses ataques. O modelo básico usou um método simples de combinar regras com pesos fixos que não levava em conta o tráfego normal. Como resultado, teve uma taxa de detecção baixa para os ataques de injeção SQL. A taxa de detecção só foi em um certo nível, mesmo nas melhores condições.
Depois, mostramos através de testes que usar técnicas de machine learning pra ajustar os pesos dessas regras melhorou significativamente a taxa de detecção, alcançando um aumento de até 21%. Nosso terceiro experimento envolveu um novo método que treinou o modelo especificamente pra lidar melhor com ataques, melhorando sua robustez em 42%. Esse método se mostrou mais forte que o modelo básico em 25%.
A configuração geral dos nossos experimentos aconteceu em um servidor Ubuntu com um processador Intel potente e bastante memória. Utilizamos um conjunto de dados que incluía muitos exemplos de Consultas SQL maliciosas e benignas. Esse conjunto foi escolhido porque é um dos recursos mais abrangentes disponíveis pra treinar modelos pra detectar ataques de injeção SQL.
Pra criar nosso conjunto de dados pra treinamento, escolhemos aleatoriamente 20.000 amostras do conjunto original. Esse conjunto de treinamento continha um número igual de consultas SQL benignas e maliciosas. Para os testes, criamos um conjunto de dados separado que incluía 4.000 amostras escolhidas aleatoriamente. Esse conjunto de teste foi projetado pra avaliar o desempenho dos nossos modelos de detecção sem se sobrepor aos dados de treinamento.
Também desenvolvemos um conjunto de treinamento especial especificamente pra treinamento Adversarial. Isso envolveu criar 5.000 consultas SQL maliciosas a partir do nosso conjunto de treinamento principal e modificá-las usando ferramentas avançadas. Essas consultas modificadas foram então adicionadas de volta ao conjunto principal de treinamento. Para testar, criamos um conjunto de teste adversarial separado otimizando consultas maliciosas selecionadas anteriormente, enquanto mantivemos as consultas benignas inalteradas. Essa configuração nos permitiu avaliar quão bem nossos métodos poderiam resistir a ataques sofisticados.
Nos nossos experimentos, implementamos um extrator de características que usava uma biblioteca específica pra trabalhar com as regras de detecção focadas em injeções SQL. As regras que usamos pra treinar o modelo foram projetadas especificamente pra pegar tentativas de injeção SQL. Ajustamos o sistema de detecção pra minimizar falsos positivos, permitindo ainda um máximo de consultas que forneciam os dados necessários pra treinamento.
Também empregamos modelos de machine learning baseados em máquinas de vetor de suporte (SVM) e florestas aleatórias (RF). Esses tipos de modelos são conhecidos pela eficácia em tarefas de classificação. Ajustamos cuidadosamente esses modelos pra performance, ajustando seus parâmetros e validando-os através de uma abordagem sistemática. Esse método garantiu que obtivéssemos as melhores versões possíveis desses modelos pra nossa tarefa.
Nosso primeiro objetivo era avaliar o desempenho do modelo básico. Exploramos sua capacidade de diferenciar entre consultas SQL benignas e maliciosas em várias configurações. Focamos em quão bem ele poderia detectar ataques em taxas específicas de falsos positivos. Os resultados mostraram que o modelo básico teve dificuldades significativas, muitas vezes classificando consultas benignas como maliciosas.
À medida que avançamos pros modelos de machine learning, os resultados melhoraram bastante. Tanto os modelos SVM quanto RF mostraram uma capacidade aprimorada de detectar tentativas de injeção SQL em várias configurações em comparação com o modelo básico. Em particular, ambos os modelos demonstraram aumentos substanciais nas taxas de detecção, muitas vezes superando a abordagem básica.
Quando testamos os modelos de machine learning contra ataques adversariais, eles ainda conseguiram superar o modelo básico. Embora enfrentassem desafios sob condições de ataque, mostraram-se mais eficazes, apresentando melhores resultados na identificação de consultas maliciosas. Em termos de robustez geral, tanto os modelos SVM quanto RF mantiveram taxas de detecção mais altas em comparação com a versão básica.
Reconhecendo que modelos treinados sob condições desafiadoras poderiam ainda ser benéficos, decidimos re-treinar os modelos de machine learning com foco na robustez adversarial. Esse re-treinamento ofereceu uma chance de avaliar como esses modelos se comportavam tanto em condições normais quanto em ataques. Os resultados revelaram que esses modelos treinados adversarialmente não só se mantiveram firmes contra os ataques, mas também mantiveram níveis de desempenho semelhantes aos seus predecessores sem esse treinamento.
Quando olhamos de perto para as características que os modelos usaram pra detecção, descobrimos que o treinamento adversarial ajudou a distribuir a importância de várias regras, dificultando para os atacantes contornarem a detecção. Observando quais regras foram ativadas durante os ataques, ganhamos insights sobre como tanto os modelos básicos quanto os aprimorados lidavam com diferentes tipos de ataques.
No geral, nossas descobertas destacaram a importância de utilizar técnicas de machine learning pra melhorar as capacidades de detecção contra ataques de injeção SQL. O modelo básico, apesar de simples, se mostrou inadequado em cenários do mundo real. Em contraste, os modelos que incorporaram machine learning mostraram melhorias significativas, especialmente ao enfrentar táticas adversariais sofisticadas.
Em resumo, através de experimentação cuidadosa e consideração tanto de amostras benignas quanto maliciosas, ilustramos como técnicas avançadas podem melhorar muito a capacidade de detectar ataques de injeção SQL. Os resultados dos nossos experimentos indicam que treinar modelos especificamente para condições adversariais pode gerar defesas mais fortes e uma melhor gestão de vários tipos de ataques.
Os desenvolvimentos nesta pesquisa enfatizam a necessidade de melhorar continuamente os sistemas de detecção e mostram o potencial das abordagens de machine learning em alcançar medidas de segurança mais confiáveis contra ameaças de injeção SQL. À medida que os métodos de ataque continuam a evoluir, nossas estratégias defensivas também devem evoluir, tornando a pesquisa nessa área essencial para soluções de segurança futuras.
Esses resultados servem como uma base sólida pra novos estudos focados na melhoria da detecção de injeções SQL e podem ser usados pra guiar o design e implementação de medidas de segurança mais eficazes em aplicações do mundo real. A importância de se adaptar a padrões de ataque em mudança através de um refinamento contínuo dos sistemas de detecção não pode ser subestimada, considerando o cenário sempre crescente de ameaças cibernéticas que as organizações enfrentam hoje.
Título: ModSec-AdvLearn: Countering Adversarial SQL Injections with Robust Machine Learning
Resumo: Many Web Application Firewalls (WAFs) leverage the OWASP Core Rule Set (CRS) to block incoming malicious requests. The CRS consists of different sets of rules designed by domain experts to detect well-known web attack patterns. Both the set of rules to be used and the weights used to combine them are manually defined, yielding four different default configurations of the CRS. In this work, we focus on the detection of SQL injection (SQLi) attacks, and show that the manual configurations of the CRS typically yield a suboptimal trade-off between detection and false alarm rates. Furthermore, we show that these configurations are not robust to adversarial SQLi attacks, i.e., carefully-crafted attacks that iteratively refine the malicious SQLi payload by querying the target WAF to bypass detection. To overcome these limitations, we propose (i) using machine learning to automate the selection of the set of rules to be combined along with their weights, i.e., customizing the CRS configuration based on the monitored web services; and (ii) leveraging adversarial training to significantly improve its robustness to adversarial SQLi manipulations. Our experiments, conducted using the well-known open-source ModSecurity WAF equipped with the CRS rules, show that our approach, named ModSec-AdvLearn, can (i) increase the detection rate up to 30%, while retaining negligible false alarm rates and discarding up to 50% of the CRS rules; and (ii) improve robustness against adversarial SQLi attacks up to 85%, marking a significant stride toward designing more effective and robust WAFs. We release our open-source code at https://github.com/pralab/modsec-advlearn.
Autores: Biagio Montaruli, Giuseppe Floris, Christian Scano, Luca Demetrio, Andrea Valenza, Luca Compagna, Davide Ariu, Luca Piras, Davide Balzarotti, Battista Biggio
Última atualização: 2024-11-29 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2308.04964
Fonte PDF: https://arxiv.org/pdf/2308.04964
Licença: https://creativecommons.org/licenses/by-sa/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.