Clase 08: Aprendiendo de los errores

Taller de Seguridad Web

Claudio Salazar (csalazar spect cl)



Sky - Beige - Simple - Serif - Night - Default

Agenda

  • Caso 1
  • Caso 2
  • Caso 3
  • Caso 4
  • Caso 5
  • Caso 6

Caso 1

Another Stored XSS in Facebook.com

Nir Goldshlager (Break Security) [1]

Buenas prácticas: APIs

Si la aplicación provee una API, las mismas validaciones realizadas a los datos ingresados por interfaz web deben ser aplicados.

Buenas prácticas: XSS

Se deben tomar las medidas pertinentes, por ejemplo codificación, al incrustar datos recuperados desde alguna fuente y que son insertados en un contexto determinado.


La fuente puede ser de almacenamiento, ficheros, otros sitios web, etc.

Caso 2

IPB (Invision Power Board) admin acount takeover

John Jean [1]

Buenas prácticas: Sanitización

Cuando se sanitizan datos, se están modificando. Así, múltiples datos distintos pueden llegar a ser un mismo dato post-sanitización.


En funciones relacionadas con validación, la sanitización debe ser alertante y no modificante.

Buenas prácticas: Validación

Las validaciones no solo deben ser aplicadas cuando los datos son ingresados a la aplicación, ya que muchas veces los datos puede que no provengan de solo un caso de uso analizado.


Las validaciones tienen que ser pensadas como parte del flujo normal de la aplicación, sin caer en malas prácticas (DRY).

Caso 3

Exploiting an unexploitable persistence DOM based XSS in feedly.com by using root domain cookies!

Milad Bahari Rad[1]

Buenas prácticas: Monitoreo

Cada componente que forma parte del stack tecnológico de la aplicación, tanto en el lado del cliente como en el lado del servidor, deben ser revisado continuamente por si se han publicado problemas de seguridad.

Buenas prácticas: Subdominios

Es importante preocuparse de cada subdominio perteneciente al dominio, ya que vulnerabilidades en uno pueden incidir en la seguridad de otros.


Es recomendable no dejar servidores de testing, staging, QA accessibles a Internet.

Caso 4

Injects in Various Ruby Websites Through Regexp.

Egor Homakov[1]

Caso 5

An XSS Vulnerability In The Making

Brandon Savage[1]

Buenas prácticas: Lenguajes

En un proyecto una decisión muy importante es el lenguaje de programación a usar. Uno de los múltiples factores debe ser su "seguridad" (en sí y su uso).


Es necesario informarse sobre el historial de seguridad y el estado del arte sobre las formas de explotación de diversas vulnerabilidades en el lenguaje.

Buenas prácticas: Tecnologías

Cada tecnología (lenguaje, servicio, etc) puede tener comportamientos inesperados, respuestas impensables o situaciones dadas por diferentes situaciones.


Es aconsejable compartir este conocimiento dentro del equipo para que no se basen en el conocimiento previo de una tecnología semejante y traten de extrapolar situaciones.

Caso 6

Unserializing user-supplied data, a bad idea

Heine[1]

Buenas prácticas: Serialización

La serialización de datos en formato binario no es perjudicial, el problema es cuando los datos a deserializar los provee el usuario.


Es aconsejable evitar estas situaciones o usar serialización en otros formatos como Json.

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.