security testing para rails
TRANSCRIPT
Security Testing para Rails
Cristián RojasEspecialista en Seguridad de SoftwareInexperto en desarrollo Ruby/Rails
¿Es Rails seguro?
¿Entonces por qué no probamos seguridad?
def test_sql_injectionvisit "http://www.misitiobacan.cl"fill_in "user", :with => "cracker"fill_in "password", :with => "' OR '1'='1"click_button "Ingresar"response.should_not contain("bienvenido,")
end
¿Qué vulnerabilidades puede haber?
● Cross site scripting (XSS)● SQL injection● Command injection● Cross-Site Request Forgery (CSRF)● Redirecciones no protegidas● Acceso inseguro a archivos● Rutas por defecto● Validación insuficiente de modelos● Abuso de mass assignment● Uso peligroso de eval()● …etc.
¿Qué hacemos?
gem install brakeman(perro)
Brakeman● Es un analizador estático● Detecta vulnerabilidades:
– Que nosotros introducimos en nuestras apps
– Inherentes a la versión Rails que utilizamos
● Se integra con rake y herramientas CI como Jenkins (¿ew?) o Guard
Demo
Sin embargo...¿Será suficiente con Brakeman?
Recursos● Ruby on Rails Security Guide:
http://guides.rubyonrails.org/security.html● Analizador Estático Brakeman:
http://brakemanscanner.org/● ¿Todas las vulnerabilidades se vuelven obvias?:
http://injcristianrojas.github.com/analisis/2012/12/26/todas-las-vulnerabilidades-se-vuelven-obvias/
● Ruby on Rails releases "extremely critical" fixes:http://www.scmagazine.com/ruby-on-rails-releases-extremely-critical-fixes/article/275399/
Muchas gracias por su atención.
¿Preguntas?¿Comentarios?