Como proteger corretamente o servidor Unicorn / RoR no Ubuntu? Ou, endurecer pilha de aplicativos RoR?

2

Eu tenho poucos servidores Unicorn rodando no Ubuntu 12.04 e estou procurando protegê-los contra exploits que fornecem shell remoto.

Minha principal preocupação é, se faz sentido implementar o ModSecurity?

Outra coisa é que eu vi o Unicorn normalmente ser executado a partir da porta 8080, e ele é encaminhado para a porta do servidor Apache / NginX 80 que serve como proxy reverso.

Eu estava pensando que poderia empregar o seguinte:

  • ModSecurity no Apache
  • Apache como trabalhador (encadeado) com mod_qos, para evitar excesso de pedidos de qualquer host
  • Executa o servidor de unicórnio do usuário designado e o isola através do AppArmor ou do SELinux se for Redhat / Centos

Gostaria de saber se existe outro framework / patch de proteção para o RoR, como o PHP Suhosin.

    
por Andrew Smith 17.09.2012 / 20:46

1 resposta

8

Gostaria de começar com o Guia de segurança do Ruby On Rails .

I am looking to secure them against exploits which give remote shell.

Preste atenção na seção Upload de arquivos .

  • Verifique se os uploads de arquivos não substituem arquivos importantes
  • Validar nome do arquivo
  • Use plugins: attachment_fu ou paperclip
  • Nunca permitir o upload de usuários: .php , .cgi , ...
  • Defina o cabeçalho HTTP Centent-Type apropriado
  • Coloque os uploads de arquivos fora do diretório /public

Você também pode verificar seu código Rails quanto a vulnerabilidades usando o Brakeman :

gem list -d brakeman

*** LOCAL GEMS ***

brakeman (1.8.0)
    Author: Justin Collins
    Homepage: http://brakemanscanner.org
    Installed at: /usr/lib/ruby/gems/1.8

    Security vulnerability scanner for Ruby on Rails.
    
por 21.09.2012 / 06:13