Precisa de computação em nuvem? Comece agora mesmo

Rails sem desvios: como impedir ataques de injeção de código

Akamai Wave Blue

escrito por

Sam Tinklenberg, Maxim Zavodchik, e Aparna Mandal

November 06, 2024

Sam Tinklenberg

escrito por

Sam Tinklenberg

Sam Tinklenberg é pesquisador de segurança sênior do Grupo de pesquisa de ameaças a apps e APIs da Akamai. Sam tem experiência com testes de penetração em aplicativos da Web e nutre uma paixão pela descoberta de vulnerabilidades críticas e por como se proteger contra elas. Quando não está analisando apps da Web, Sam gosta de jogar videogame e jogos de tabuleiro e de aproveitar a companhia de amigos e familiares.

Maxim Zavodchik

escrito por

Maxim Zavodchik

Maxim Zavodchik é gerente sênior de pesquisa de ameaças a aplicativos e APIs na Akamai.

Aparna Mandal

escrito por

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.

Nossa nova regra dedicada Rails está detectando dezenas de milhares de tentativas de injeção de código Rails diariamente em todo o mundo.
Nossa nova regra dedicada Rails está detectando dezenas de milhares de tentativas de injeção de código Rails diariamente em todo o mundo.

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).

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). Fig. 1: ataque por injeção de código Ruby bloqueado pela regra 3000404 do Adaptive Security Engine

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).

 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). Fig. 2: detecções feitas pela regra 3000404 do Adaptive Security Engine por dia

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).

Essas tentativas vêm de todo o mundo; a maioria delas tendo sido originada na Alemanha (Figura 3). Fig. 3: mapa de tentativas de injeção de código Rails observadas

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.



Akamai Wave Blue

escrito por

Sam Tinklenberg, Maxim Zavodchik, e Aparna Mandal

November 06, 2024

Sam Tinklenberg

escrito por

Sam Tinklenberg

Sam Tinklenberg é pesquisador de segurança sênior do Grupo de pesquisa de ameaças a apps e APIs da Akamai. Sam tem experiência com testes de penetração em aplicativos da Web e nutre uma paixão pela descoberta de vulnerabilidades críticas e por como se proteger contra elas. Quando não está analisando apps da Web, Sam gosta de jogar videogame e jogos de tabuleiro e de aproveitar a companhia de amigos e familiares.

Maxim Zavodchik

escrito por

Maxim Zavodchik

Maxim Zavodchik é gerente sênior de pesquisa de ameaças a aplicativos e APIs na Akamai.

Aparna Mandal

escrito por

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.