Quantcast
Channel: El rincón de Zerial » servipag
Viewing all articles
Browse latest Browse all 7

Análisis de seguridad: Servipag vs Sencillito vs MisCuentas

$
0
0

Ya muchos leyeron mi post anterior sobre la seguridad del servicio que ofrece Servipag, la idea de este nuevo artículo es hacer un tipo de benchmark de seguridad entre los tres principales servicios de pagos de cuentas online: Servipag, Sencillito y MisCuentas.

Analizaré las validaciones que hacen estos servicios, que tan vulnerables a ataques de robo de información, suplantación de identidad o que tan seguros son sus procesos, con el objetivo de dejar al descubierto la falta de seguridad y de validaciones al momento de hacer peticiones entre sitios, validacion de tokens de seguridad, uso de captchas para evitar a los bots, etc.

El análisis consiste en:

  • Security Tokens: Revisar que los servicios que ofrecen cada sitio web cuenta con los tokens de seguridad en sus formularios, para evitar pecitiones POST o GET desde sitios externos.
  • Captcha: Es el mecanismo más usado para determinar si quien está enviando la petición es un humano y no un bot. Ayuda contra los ataques de fuerza bruta.
  • Passwords cifradas: Verificar que la password de los usuarios se almacene cifrada en la base de datos.
  • Uso de certificados SSL en sus transacciones.

Y los resultados son alarmantes…

  1. Servipag: Passwords sin cifrar, permite el tráfico sin http seguro, no usa tokens de seguridad en sus formularios, permite realizar peticiones desde sitios/formularios falsos, no usa captcha.
  2. Sencillito: Al no requerir registro de usuario se libera de todas las criticas, este servicio es el mas sencillo y el más seguro
  3. MisCuentas: Passwords cifrados, tiene un buen mecanismo de recuperacion de contraseña, las transacciones se realizan mediante HTTP seguro, no usa tokens de seguridad y tampoco utiliza captcha, permitiendo peticiones desde sitios/formularios falsos.

Para leer el detalle del análisis, continua leyendo el artículo.

Servipag

Security tokens

Existen dos formularios, uno para el inicio de sesión y otro para el pago de cuentas.
El primero,

No cuenta con ningun tipo de seguridad, es un formulario común y corriente.

<form action="http://servipag.cl/Portal/Account/LogOn" method="post" name="formCliente">
<input name="prsn_id" value="" type="hidden" />
<input name="accs_pin" value="" type="hidden" />
<input name="rut_2" value="" type="hidden" />
<input name="rut_1" value="" type="hidden" />
<input name="clave_1" value="" type="hidden" />
<input name="accion" value="login" type="hidden" />
<input class="textInput2" id="Rut" maxlength="12" name="Rut" onblur="javascript:formatear3_menu(document.formCliente);" onfocus="javascript:formatear4_menu(document.formCliente);" onkeypress="javascript:return solorut_menu(event);" size="12" type="text" value="" tabindex="1" />
<input class="textInput2" id="Password" maxlength="12" name="Password" onkeypress="PressEnter_menu(event);" size="12" type="password" value="" tabindex="2" />
</form>

El segundo,

Tambien es un formulario común y corriente.

<form id="formPagoCuentas" name="formPagoCuentas" method="post" action="">
<select id="servicios" name="servicios">...</select>
<select id="billers"><option value="">[Empresa]</option></select>
<input type="hidden" name="pagina" value="web/busqueda_cuentas.htm" />
<input type="hidden" name="TipoBusqueda" value="N" />
<input type="hidden" name="IntTipoBusqueda" value="0" />
<input type="hidden" name="arrayCuentas" value="" />
</form>

Permitiendo peticiones desde sitios remotos.

Captcha

Ninguno de los formularios hace uso de captchas, permitiendo hacer peticiones automatizadas y ataques de fuerza bruta.

Password cifradas

El sistema de Servipag NO almacena las claves de usuarios cifradas.

Certificado SSL

Ambos formularios envian los datos cifrados mediante SSL solo cuando el usuario ingresa mediante https, si el usuario ingresa usando http normal, los formularios enviarán los datos en plano. Lo pueden ver en el codigo html de los formularios que mostré unas lineas mas arriba.

Sencillito

Security tokens

Solo encontré el formulario de pago de cuentas, al parecer no tiene registro de usuarios.

Como no tiene formulario de inicio de sesion, en este caso los tokens de seguridad no son necesarios, a menos que alguien quiera falsificar el formulario y pagarnos las cuentas :)

Captcha

Como he dicho mas arriba, tampoco es necesario proteger el formulario contra los bots.

Password cifradas

No aplica, ya que no hay registro de usuario de por medio.

Certificado SSL

Obliga al usuario a usar HTTP seguro, ya que al ingresar a http:// redireccione automaticamente a https.

MisCuentas

Security tokens

El primer formulario, corresponde al inicio de sesion

Al ver el codigo fuente podemos ver unos input que parecieran ser security tokens

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEwMDUyNjYzMjgPZBYCZg9kFgICAw9kFgJmDw9kFgIeCG9uQ2hhbmdlBV9jaGVja1J1dEZpZWxkKGFzcG5ldEZvcm0uY3RsMDBfdHh0TG9naW4udmFsdWUsYXNwbmV0Rm9ybS5jdGw$
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKtxfWYAwLT4e+AAwKB7cu1BVBe9NtqfcZbqVushQKI1bjh/ZuV" />

Pero no lo son, o si lo son no los están utilizando correctamente, ya que es posible realizar peticiones desde sitios remotos, permitiendo programar un bot que obtenga la password de un usuario mediante fuerza bruta.

Captcha

No hace uso de captchas. Aprovechandose de esta ineficiencia, junto con lo anterior, es posible programar un bot que haga peticiones POST al formulario de login hasta dar con las credenciales de los usuarios.

Password cifradas

Esto es un punto a favor, el correo que llega cuando intentamos recuperar la contraseña es:

No envian mi password, por lo que todo indica que no saben cual es ya que está cifrada. Nos entregan una password aleatoria alternativa con caducidad, lo que nos obliga a volver a cambiarla por una que recordemos.

Certificado SSL

Ingresando por HTTP normal y HTTP seguro el formulario envia la informacion cifrada y una vez dentro del portal todos los links parecen apuntar a un sitio seguro.

Conclusiones

Una vez realizado el analisis, concluímos que el mientras más simple sea el método de pago, mejor. El premio a la sencillez se lo lleva Sencillito, ya que no requiere registro de usuario disminuyendo las posibilidades de tener brechas de seguridad. De los dos sitios que requieren registro de usuario, el más seguro es MisCuentas, ya que “obliga” al usuario a enviar sus datos mediante SSL, no almacena sus password en texto plano y tiene un procedimiento de recuperación de contraseña mejor.

Problemas comunes

Ninguno de los portales de pagos utiliza tokens de seguridad en sus formularios, tampoco utilizan captcha, lo que permite programar bots ninjas que se dediquen a obtener los datos de usuario (como user y pass) mediante fuerza bruta sin ningun tipo de protección.

El mas inseguro

Este premio se lo lleva Servipag. Al registrarse como usuario podemos ver el siguiente mensaje:

¿Cuanto tardaría un bot en encontrar una clave entre 4 y 6 caracteres?

Es inaceptable que un sistema que dice ser seguro obligue al usuario a escribir una password con un límite de caracteres. Todos sabemos lo que es un hash, que indiferente al largo de la cadena de caracteres, el hash siempre tendrá un largo fijo. Por ejemplo, el password “123456″ tiene un hash en md5 de 32 caracteres, al igual que la password “12345678″, “ifndsifndsifn2432432432432″, etc. Por lo tanto, el hecho de que te pongan un límite en la cantidad de caracteres para tu password automaticamente hace pensar que tienen definido el campo en la base de datos como “varchar(6)” y obviamente no está cifrado, lo comprobamos al intentar recuperar la contraseña, nos llega un correo con nuestra clave!!

Finalmente, el orden, desde el más seguro hasta el más inseguro:

  1. Sencillito
  2. MisCuentas
  3. Servipag

Viewing all articles
Browse latest Browse all 7

Trending Articles