


Security Information - Ethical Hacking - Technology - Audit - Intelligence



Tras un pequeño vistazo a algunos medios digitales he podido encontrarme las siguientes cosas, corresponden al código con que se realizan las peticiones y se almacenan los votos:
onsubmit="javascript:{if ( hasCookie('haVotado') ) {alert('Tu voto ya ha sido registrado'); return false;}
else {return true};}"En este caso si el método ‘has cookie’ devuelve “true” votas, sino no. Delega el voto en un control sobre la cookie. En este otro caso:
OAS_version = 10;OAS_rn = '001234567890'; OAS_rns = '1234567890';OAS_rn = new String (Math.random()); OAS_rns = OAS_rn.substring (2, 11);function OAS_NORMAL(pos) {document.write(' '!' + pos + OAS_query + '" TARGET=_top>'); Se hace la petición al servidor de aplicaciones (OAS = Oracle Application Server) a partir de una cadena que se almacena en
Luego parece que esta encuesta también es manipulable, conociendo el mecanismo que genera las peticiones y con un http Fuzzer (como el que incorpora Acunetix) podemos generar votos automáticamente.
Indagando un poco más he encontrado encuestas que incluían CAPTCHA, pero este mecanismo tampoco es infalible como vimos aquí, luego, ¿Qué nos queda? Incluso para dar un servicio de apariencia tan sencilla como este es necesario un conjunto de medidas de seguridad donde por sí sola ninguna nos puede proporcionar confianza de que el voto no ha sido manipulado / generado automáticamente, no obstante en conjunto el riesgo se “mitiga”. Algunas de las que a mí se me ocurren son:
- No incluir en código JavaScript los métodos de comprobación de origen, es visible.
- No verificar el origen a partir de información depositada en el cliente, esta información puede ser manipulada.
- Incluir CAPTCHA.
- Incluir un mecanismo para verificar el origen por token (secreto) + IP + credenciales que identifiquen al equipo, para garantizar la integridad del origen de la petición (podemos utilizar hash también). Estas comprobaciones se harán en el servidor.
Bueno, en un entorno ideal se podría utilizar incluso la firma digital de los usuarios (¿DNI electrónico?) para realizar una encuesta. Claro está que para saber que opina la gente con respecto al partidazo del Atleti no aplica, pero para un referendum,,, quizás si.
Esto es todo por hoy, cuidado donde votáis y cual es el origen de vuestras encuestas :)
Salu2!
La vuelta de las vacas este año ha sido un poco más dura de lo habitual, es de esas veces donde desconectas del mundo de
Haciendo flash—back recordé la agilidad con la que allá por el 2000 me desenvolvía en Visual Basic 5.0 y me dije, ¿Cuánto habrá podido cambiar? Y me decidí a bajarme el Visual Studio Express Edition, concretamente el Visual Basic (que ya va por la versión 9.0). Lo cierto es que no me llevé muchas sorpresas, en su esencia sigue siendo tremendamente cómodo, intuitivo y ágil. Eso sí, hay muchas novedades y utilidades para aplicar Seguridad desde los albores de un proyecto:
Permisos de aplicación: UAC
Dentro del explorador de soluciones en las propiedades del proyecto podemos cambiar los privilegios que requiera la aplicación así como las posibles llamadas al UAC. Como es obvio debemos tratar de trabajar con los menores de los permisos, así evitaremos por ejemplo que ante un “crash” de nuestra aplicación tiremos el sistema.
Seguridad ClickONCE
Las aplicaciones que desarrollamos en VB se apoyan en la infraestructura .NET Framework y estarán sujetas a restricciones de código. Dentro de las propiedades del proyecto también podremos habilitar o deshabilitar restricciones según los permisos que requiera nuestro código, esto puede incluir transferencia de ficheros, cuadros de diálogo, permisos de impresión, generación de sockets, etc. etc.
Firma de Código: Generación de certificados
Es cierto, podremos garantizar a nuestros clientes que el software distribuido es nuestro a través de la firma digital. Para ello disponemos de una utilidad de generación de certificados que en cierta forma me recuerda al PGP y que a buen seguro aumentará la confianza a nuestros clientes:
Acceso a BBDD
Salu2 y,,, ¡cuidado con la vuelta!
Hay muchas curiosidades en el mundo del correo electrónico, hay vida más allá de los protocolos POP3, SMTP y de Outlook, Lotus Notes y cia. Últimamente parece que están surgiendo con fuerza de nuevo, podíamos leer hace unos días que la primera aparición de la “@” data de 1536, y surgía en un tratado comercial enviado desde Sevilla a Italia. El premio Príncipe de Asturias va a ser entregado al inventor del correo electrónico, Raymond S.Tomlynson, quien creó el primer e-mail de la historia: “QWERTYUIOP” ¿os suena? Posteriormente se definieron las RFC 5322 y 5321 para el protocolo SMTP y el e-mail estándar surgiendo más curiosidades como que no podemos mandar un correo a un usuario cuyo nombre supere los 64 caracteres o a un dominio de más de 255 caracteres.
Parece que algo tan sencillo como el correo electrónico no puede tener mucho más que sacar, pero nos equivocamos. Es posible hacer muchas travesuras con la forma de expresar una dirección de correo, es incluso posible enviar un correo a todoesseguro@192.168.0.1 si es que esa fuera
Se pueden crear “filtros” de nombre de usuario, hay toda una RFC 5228 dedicada a este tema, donde como curiosidad diré que hace referencia a otra RFC 2119 para interpretar correctamente el significado de MUST, SHALL, MAY, etc. Algo que recuerda a las clases de inglés del instituto :D. Estos filtros se aplican en la parte local, exactamente aquí:
:user "+" :detail "@" :domain
\-----------------/
:local-part
Y lo que es más curioso, muchos webmails permiten utilizarlos, así por ejemplo gmail tiene su “+” mientras que Yahoo se vale del guioncito “-“. Esto es muy útil ya que añadimos una etiqueta a nuestra dirección de correo, supongamos que nos damos de alta en una página de prestigio internacional, llamémosla todoesseguro.com, y que nuestro correo electrónico es giga@gmail.com, podrían tramitar el alta indicando giga+todoesseguro@gmail.com. Así si recibo un correo de todoesseguro.com hacia giga@gmail.com puedo tener la certeza de que estoy recibiendo SPAM y el remitente no es de confianza, por lo que tendré que investigar un poquito :)
Por que de entre las cosas fáciles que hay en el mundo de
¿Temibles?, me explico, dentro de unos días cuando media España se vaya de vacaciones y la otra se quede aquí conmigo en Madrid (no es broma, yo también me iré ;-) ) muchos de nosotros configuraremos algo como esto:
Eso está muy bien, hay que dejar los cabos atados antes de irnos pero, ¿a qué precio?, ¿Quién no está subscrito a una lista de correo?, ¿sabemos lo que ocurrirá cuando nos llegue un correo de un foro?, si, efectivamente todo el mundo sabrá que te has ido y además a quien tiene que recurrir en tu ausencia. Además es probable que “repartas” información como tu usuario, servidor de correo, actividad que realizas, etc. Tal como le ha pasado a toda esta gente.
¿Consejos? Tener mucho cuidado con qué se pone en los mensajes de autorespuesta, no habilitarlo si no es necesario y si trabajamos en una gran compañía como cliente quizás puede ser una medida de seguridad interesante notificar a los responsables de Correo Electrónico que los mensajes de “autorespuesta” no salgan hacia Internet (al menos fuera del Departamento Comercial).
Parece mentira que algo tan sencillo de tanto juego, y eso que no hemos hablado del Correo Electrónico Seguro, supongo que por eso tiene su premio :)
Salu2!
Como vemos se hace mención específica a la firma digital que preserva la identificación del firmante (demuestra su autenticidad, preserva el no repudio) y la firma electrónica avanzada que añade el atributo de integridad a lo firmado, es decir se asegura que el documento electrónico no ha sido modificado, de igual forma parece dar más importancia a los medios o sistemas con los que el firmante hace uso de la firma digital, y que esos medios o sistemas no hayan sido manipulados o tergiversados por terceros. Finalmente el punto cuatro le proporciona equiparación legal a la firma electrónica reconocida con la firma manuscrita. ¿Qué se precisa para que una firma electrónica esté reconocida? La ley lo especifica así:
“Con ello se aclara que no basta con la firma electrónica avanzada para la equiparación con la firma manuscrita; es preciso que la firma electrónica avanzada esté basada en un certificado reconocido y haya sido creada por un dispositivo seguro de creación.”
Aquí es donde entran en juego certificados digitales, entidades de certificación:
Artículo 6. Concepto de certificado electrónico y de firmante.
Y lo que es más importante, ¿en qué casos se puede suspender un certificado digital y por tanto considerarse no válido?
Artículo 9. Suspensión de la vigencia de los certificados electrónicos.
La extinción o suspensión de la vigencia de un certificado también hará que una firma electrónica sea no reconocida. Como imaginareis la casuística por detrás de la ley puede ser muy amplia, por tanto será de gran ayuda contar con un buen abogado / perito informático que nos apoye a la hora de presentarnos en un litigio, sobretodo para que no nos pase como al Cracker de Pontevedra.
Saludos legalmente inseguros!