Home Technical Articles Melhorar o desempenho das aplicações com regras de segurança mais rápidas
Applications

Melhorar o desempenho das aplicações com regras de segurança mais rápidas

About The Author

Outline

À medida que mais equipas de desenvolvimento de aplicações integram a segurança nos seus fluxos de trabalho, estão a analisar o impactos da segurança nas suas aplicações, a partir de um pipeline de aplicações, fluxo de trabalho e perspetiva de desempenho.

Devido aos requisitos de conformidade, a aplicação web e a proteção de API (WAAP) são normalmente implementadas numa pilha de aplicações. Mas à medida que as organizações movem suas cargas de trabalho para a nuvem e começam a incorporar segurança na estrutura de seus aplicativos, o papel do WAAP está evoluindo. As organizações precisam de plataformas WAAP que possam ser dimensionadas e adaptadas às mudanças nas arquiteturas de nuvem e às crescentes ameaças de segurança.

neste artigo, vamos analisar como o motor WAAP – e, mais especificamente, um conjunto de regras construído especificamente para uso com esse mecanismo – pode ser adaptado para se expandir em fluxos de trabalho de nuvem e melhorar o desempenho de seu aplicativo web, mantendo uma forte proteção contra ameaças online.‍

Considerem tanto o motor WAAP como a sua ruleset‍

O WAAP deve ser uma parte importante da pilha de aplicativos e do programa de segurança de rede. Tradicionalmente, os WAAPs eram desconetados do desenvolvimento de aplicativos e eram vistos como uma camada de segurança que ficava fora do aplicativo. Mas as arquiteturas e ferramentas modernas do WAAP ajudaram o SecOP a colaborar com o DevOps ao longo do processo de CI/CD, incluindo a criação de regras e testes à medida que uma aplicação é desenvolvida. Quando usado corretamente para analisar o tráfego que atravessa a infraestrutura de aplicativos, o motor WAAP e seu conjunto de regras desempenham um papel importante na rapidez com que a análise é concluída e quão bem a auditoria resultante e as decisões de bloqueio funcionam como parte da arquitetura geral da aplicação.

Tal como o motor de um carro, o computador e a transmissão, um motor WAAP, os seus conjuntos de regras e a aplicação que protege devem ser concebidos e otimizados para funcionarem em conjunto. Um fabricante de automóveis não desenha um motor numa bolha. Deve ser otimizado para o resto do quadro e componentes do carro para alcançar o máximo desempenho e eficiência em toda a placa. O mesmo deve ser válido para o motor WAAP e seu conjunto de regras. Um WAAP que não contabiliza estas variáveis pode ficar sobrecarregado e sobrecarregado e, em última análise, degradar o desempenho e a experiência do utilizador da aplicação web.‍

Reduza a carga de trabalho do WAAP para melhorar a velocidade e a effectiveness‍

O Edgio WAAP usa uma combinação de código aberto, indústria e assinaturas proprietárias para informar o seu conjunto de regras. Avaliamos cuidadosamente o impactos de cada assinatura no desempenho do conjunto de regras em geral.

À medida que concebemos e otimizámos o nosso motor WAAP , vimos que, ao recolher e consumir os conjuntos de regras de código aberto e da indústria sem quaisquer modificações, (quase) todas as regras teriam de ser analisadas à medida que o tráfego atravessa o fio. Este modelo é bastante comum entre os WAAPs e torna “fácil” ver o que acontece ao tráfego. Mas também força o WAAP a percorrer todas as regras para avaliar o risco associado ao tráfego. Isto coloca uma carga de trabalho desnecessariamente pesada no WAAP que é ainda mais exacerbada à medida que o conjunto de regras cresce.

Claro, nem sempre se trata de velocidade. Um elemento chave num WAAP é a sua capacidade de determinar o risco (compromisso) versus recompensa (transações bem-sucedidas) associado ao tráfego e decidir se o tráfego é malicioso, suspeito ou benigno. O WAAP quer enviar um alerta para a equipa (modo de auditoria/alerta) e bloquear ou redirecionar o tráfego se for considerado demasiado arriscado para deixar passar (modo de produção/bloco).

Esta análise torna-se um desafio maior quando se examina o código aberto ingerido e as regras da indústria. É improvável que tenham sido criados tendo em mente a velocidade e a eficiência para todos os motores WAAP possíveis no mercado. Isso não significa que eles são maus, isso significa que eles se concentram no risco primeiro, deixando o desempenho como um pensamento secundário. Por outras palavras, há espaço para melhorias.

Com conjuntos de regras criados para completude e precisão primeiro, muitos WAAPs descobrem que não conseguem lidar com o tráfego que está sendo analisado em ambos os modos (auditoria e bloqueio), forçando as equipas da INFOSEC a escolher um modo: Comecem com o modo de auditoria e movam-no para o modo de produção ou indo direto para o modo de produção com pouco ou nenhum teste do mundo real, o que os deixa abertos a ameaças perdidas e falsos positivos.‍

Como Edgio melhora a sua WAAP rulesets‍

O modelo de código aberto OWASP ModSecurity para conjuntos de regras fornece uma maneira padrão e consistente através da qual os conjuntos de regras WAAP podem ser desenvolvidos e implementados. Para complementar isso, o OWASP oferece um conjunto de regras genéricas da indústria que pode ser ingerido por um WAAP que segue este modelo.

No entanto, enquanto a nossa equipa estava a implementar o conjunto de regras, eles perceberam que as regras que estavam a ser ingeridas – embora completas e precisas – estavam de facto a reter o motor WAAP. Então, a equipa decidiu examinar como as regras são estruturadas e processadas. O que descobrimos, que não deve surpreender nenhum administrador do WAAP, é que muitas regras passam pelos mesmos dados repetidamente para percorrer as verificações necessárias para determinar o risco do tráfego que passa pelo WAAP.

Algumas regras de aplicação de protocolos são bastante simples e não precisam de viver dentro do ecossistema de regras. Para resolver isso, primeiro desenvolvemos o conjunto de regras que efetivamente cortou o conjunto de regras do OWASP ao implementá-los diretamente no motor WAAP em um formato não-modSecurity. Isso resulta em execução precoce e deteção mais rápida.

Em seguida, focamos regras que analisam os órgãos de solicitação. Construímos uma camada de armazenamento em cache que atenua a sobrecarga de desempenho de recalcular as mesmas expressões nas regras. Tomando um exemplo de corpos de formato XML, pesquisamos quantas vezes a expressão “XML:/*” aparece no conjunto de regras do OWASP CRS para ver quantas vezes um XPath poderia ser recalculado no processamento de uma única solicitação sem uma camada de armazenamento em cache, o número é significativo.

Finalmente, onde ocorrem muitas expansões macro/substituições de cadeia de carateres e pesquisas explícitas, identificámos e removemos essas regras do conjunto de regras e implementámos-as no motor com melhores algoritmos de pesquisa e pesquisa, tais como pesquisas HashMap e operador de correspondência de frases (pm) em vez de um operador regex (Rx) sempre que possível.

Ao fazer as coisas de forma diferente com a estrutura dos conjuntos de regras, o nosso motor WAAP usa estruturas de dados mais rápidas e formatos padrão abertos como o JSON, que são mais fáceis de configurar e executar mais rapidamente. Isso resulta em melhor desempenho, não só em termos de velocidade, mas também em termos de precisão:

  • Baixos falsos positivos: Edgio organiza e controla o conjunto de regras de uma forma que garante que a precisão seja mantida
  • Desempenho melhorado do motor: O motor Edgio WAAP opera os conjuntos de regras de uma forma que evita sobrecarregar o motor

Por exemplo, para a regra de política de bloqueio de IP do OWASP, o mecanismo ModSecurity usa o seu próprio algoritmo “msc_tree” que olha para uma lista de IP incorreta. Como alternativa, o motor EDWGIO WAAP usa um algoritmo diferente que é um pouco mais rápido. Os resultados dos testes a seguir mostram como o Edgio WAAP funciona em relação ao ModSecurity. O ModSecurity adiciona cerca de 200 ms a 500 ms de latência ao executar um milhão de consultas em grandes listas de IP. O Edgio WAAP lida com cerca de 10B pedidos por dia em toda a sua rede. Estes números pequenos são muito importantes em escala tão grande.

Evite alertas versus bloqueio de compensações

Uma melhor combinação de motor WAAP e conjunto de regras também significa que as organizações obtêm um desempenho mais rápido e podem executar WAAP em modo duplo (em modo de bloco e modo de auditoria). Isso permite que as equipes de operações de segurança experimentem novas regras contra o tráfego de produção no modo de auditoria/alerta e ajustem as regras antes de promover o conjunto de regras para bloquear o modo no WAAP.

Os conjuntos de regras altamente personalizados do Edgio permitem que os administradores cortem e cortem em todos os lugares e executem os conjuntos de regras no modo duplo. Com as mesmas regras aplicadas a diferentes configurações, os administradores podem executá-las duas vezes sem afetar o desempenho, graças, em parte, à implementação do mecanismo inteligente e do conjunto de regras.

O valor aqui vai além da equipa de gestão da WAAP. Muitos clientes da Edgio integram esta opção no seu ciclo de vida de DevOps, dando ao negócio, à equipa de engenharia e à equipa de segurança DE TI a capacidade de colaborar e testar as regras no modo de auditoria antes de aplicá-las ao modo de bloqueio de produção.

Este processo de duas etapas permite que a equipe de segurança DE TI verifique as alterações de configuração do firewall antes de serem ativadas, equipando a equipe com dados para testar mudanças no tráfego real de produção, reduzindo assim falsos positivos quando o conjunto de regras é colocado em produção. Uma vez validado o conjunto de regras, as configurações atualizadas são implementadas em segundos. E rollbacks, se necessário, são possíveis dentro de alguns minutos. Isto torna os ensaios com conjuntos de regras significativos muito mais realistas, dinâmicos, impactantes, eficazes e de apoio aos objetivos de negócio.

A abordagem do modo Edgio Dual WAF também melhora ainda mais o desempenho. O conjunto de regras inteligente garante que o tráfego malicioso conhecido seja bloqueado rapidamente para dar algum espaço respiratório ao WAF para que ele possa lidar com o resto do tráfego que está constantemente a ser apresentado. Isso, por sua vez, dá aos administradores mais tempo para se concentrarem em ganhar visibilidade preditiva; em outras palavras, eles podem ver coisas nos aplicativos via modo de auditoria antes de serem implantados em sites de produção.

Considere o motor WAAP e o design do conjunto de regras se a sua empresa precisar de uma pilha de aplicativos que possa se adaptar a cargas de trabalho imprevisíveis e ainda oferecer uma arquitetura altamente segura. Quando otimizados, estes fatores podem melhorar o desempenho das suas aplicações web.

Para mais informações sobre como o motor inteligente Edgio WAAP e os conjuntos de regras podem proteger as suas aplicações web com velocidade e precisão, vamos ligar-nos hoje.