Rails sem desvios: como impedir ataques de injeção de código
Na Akamai, estamos empenhados em melhorar continuamente o nosso firewall de aplicativos da Web (WAF) para garantir o mais alto nível de segurança para os clientes. Como parte desse compromisso, é um prazer anunciar o lançamento de um novo recurso dedicado de detecção contra ataques de injeção de código que visam especificamente aplicativos Ruby on Rails (Rails).
Por que é crucial proteger aplicativos Ruby on Rails?
O Ruby on Rails se tornou uma estrutura popular para o desenvolvimento de aplicativos da Web devido à sua facilidade de uso, flexibilidade e ecossistema robusto. A capacidade do Rails de acelerar o tempo de desenvolvimento, mantendo uma base de código limpa e compatível, o tornou muito atraente para desenvolvedores em organizações de todos os tamanhos. Muitas marcas extremamente conhecidas, como GitHub, Shopify, Airbnb e Basecamp, construíram suas plataformas usando Ruby on Rails, o que destaca sua relevância no setor de tecnologia.
No entanto, o Rails também se tornou um alvo mais atraente para os cibercriminosos pelas mesmas razões que atrai desenvolvedores. Os processos mais automatizados e a necessidade cada vez maior de os aplicativos interoperarem criam novos lugares para os invasores se esconderem. Proteger aplicativos Rails é essencial para proteger os dados confidenciais e as operações de negócios dessas plataformas críticas.
Ameaças crescentes contra Ruby on Rails
Ao longo dos anos, o Rails enfrentou várias vulnerabilidades de segurança e vetores de ataque relevantes. O Open Worldwide Application Security Project (OWASP) tem uma folha de dicas sobre a proteção de Rails que mostra como é imperativo que os desenvolvedores e as equipes de segurança se mantenham vigilantes.
Embora a maioria das vulnerabilidades de alto perfil no Rails tenha sido relacionada à desserialização desprotegida dos formatos de dados JSON e YAML , os desenvolvedores podem expor inadvertidamente o aplicativo e os dados dos usuários a classes adicionais de ataques, como injeção de código. Isto é particularmente verdadeiro com a função "eval" na linguagem Ruby. Essa função constrói dinamicamente código Ruby a partir de uma entrada de string. Se a entrada controlada por invasores acabar dentro desta função, o invasor poderá executar qualquer código Ruby arbitrário.
Aqui está um exemplo de um caso como esse:
def calculate
calc = params[:calc]
result = eval(calc)
render plain: result
End
Nesse exemplo extremamente simples, a ação calculate toma um parâmetro calc da entrada do usuário, que inclui uma operação matemática como "1+2", e usa o método eval em Ruby, que por sua vez retorna o resultado da operação matemática. Isso cria uma vulnerabilidade de injeção de código porque um invasor pode fornecer código Ruby arbitrário a ser executado.
Como o invasor pode explorar essa vulnerabilidade
Um invasor pode explorar essa vulnerabilidade enviando uma solicitação criada com código Ruby malicioso, como:
POST /calculate?ip=IO.popen('cat%20%2Fetc%2Fpasswd').read%20%23
Ou em sua forma decodificada:
IO.popen('cat /etc/passwd').read #
Esse comando resultaria na leitura do conteúdo do arquivo /etc/passwd do sistema (que contém informações confidenciais sobre usuários do sistema). O símbolo # no final é um comentário Ruby que ignora qualquer coisa depois dele, impedindo quaisquer erros de sintaxe do resto do código.
Mitigação com o Akamai Adaptive Security Engine
A crescente prevalência de ciberameaças sofisticadas torna imperativo ter medidas de segurança robustas em vigor. Nossa mais recente regra do Adaptive Security Engine, 3000404, ataque de injeção contra operação confidencial por Ruby on Rails detectado, oferece um nível mais alto de precisão e cobertura na detecção e mitigação de ataques de injeção de código em aplicativos Rails (Figura 1).
Principais benefícios
Melhoria da precisão: técnicas avançadas de detecção identificam e bloqueiam com precisão tentativas de injeção de código, minimizando falsos positivos e garantindo que o tráfego legítimo não seja afetado
Cobertura abrangente: ampla cobertura para uma ampla gama de vetores de injeção de código que oferece proteção robusta para seus aplicativos Rails
Ataques de injeção de código Ruby on Rails contra nossos clientes
Nossa nova regra dedicada Rails está detectando dezenas de milhares de tentativas de injeção de código Rails diariamente em todo o mundo. Nas últimas semanas, essa regra do Adaptive Security Engine alcançou quase 250.000 detecções em um único dia e tem uma média de aproximadamente 70.000 ataques mitigados por dia (Figura 2).
Até agora, observamos mais de 3.000 IPs de ataque únicos e mais de 21.000 hosts visados por essas tentativas de ataque. Essas tentativas vêm de todo o mundo; a maioria delas tendo sido originada na Alemanha (Figura 3).
Pensando no futuro
A segurança é um aspecto crítico do seu negócio, e estamos empenhados em fornecer soluções que não só atendam às suas expectativas, mas também as superem. Nosso WAF é projetado para fornecer proteção abrangente, e a adição da regra de detecção de injeção de código Rails fortalece ainda mais nossos mecanismos de defesa para proteger seus aplicativos e dados.
À medida que continuamos a inovar e a expandir nossos recursos de WAF, continuamos focados em fornecer aos nossos clientes as soluções de segurança mais eficazes e confiáveis. Fique de olho para receber mais atualizações, pois estamos trabalhando incansavelmente para melhorar nossas ofertas de produtos e manter nossa posição na vanguarda da segurança de aplicativos da Web.
Para saber mais sobre o Adaptive Security Engine e as soluções de segurança de APIs e aplicativos da Web oferecidas pela Akamai, fale com seu representante da Akamai.