miércoles 7 de marzo de 2012

Secure Coding and Software Security

Infographic by Veracode Application Security

jueves 1 de marzo de 2012

Kill Switch en Windows 8


Me llamó la atención un artículo de ComputerWorld llamado “Microsoft: We can remotely delete Windows 8 apps”. En pocas palabras lo que dice es que en Windows 8 se tendrá la capacidad de borrar aplicaciones remotamente si es que se detecta que representan un riesgo de seguridad; por cierto, sin pedir permiso. 

Eso me suena a hack. Microsoft no es reconocido por codificar con demasiada seguridad, pero ese es tema de otro blog-post. Lo que estamos viendo en pocas palabras es que se va a introducir un mecanismo para que esa empresa pueda borrar aplicaciones desde la mothership. ¡Maravilloso!

Si ese mecanismo de borrado remoto va a ser impecable, no estaría escribiendo este post. Pero lo estoy haciendo. Imaginen las posibilidades. Un mecanismo ya incluido por default y de fábrica para acceder remotamente a miles de computadoras. Mmmhhh. 

Las opciones van desde hackearlo y borrar las aplicaciones de la Windows Store, o bien borrar de plano todas las aplicaciones y claro, si el mecanismo de fábrica lo permite, hasta acceder remotamente a un equipo para instalar dos o tres códigos o bien, husmear en los archivos del usuario. Si lo anterior falla, siempre se puede tratar de hacer un DoS (bloqueando la ejecución de apps, reiniciándolas, etc.).

Seguro los Sith dedicados al robo bancario en línea estarán muy interesados en esta nueva “característica” para ver si pueden explotarla y plantar troyanos bancarios de alguna forma. Ya lo estoy viendo venir. 

Y las instituciones de gobierno y/o de seguridad nacional felices de que un tercero y desde una mothership pueda entrar remotamente a sus sistemas. Supongo que habrá una llave del registry o alguna directiva donde se pueda deshabilitar esta característica; es lo primero que voy a buscar.

Por cierto, vean la sección “Can Microsoft remove apps or data from my device?” de los términos de uso de la Windows Store. Para este post no importan tanto los términos, sino el hecho de que habrá un mecanismo remoto de borrado. A mí me huele feo, ya veremos.

viernes 24 de febrero de 2012

Crítica Constructiva a los CV


Hace poco estuve revisando algunos Currículum Vitae y me di cuenta de lo poco que pueden expresar por la manera en que están armados ya que  siguen “las buenas prácticas”. Lo que sigue es mi opinión y puede que no sea compartida por otros empleadores; tomen lo que les sirva.

Objetivo: casi todos ponen el objetivo del CV. La verdad me dice poco porque al parecer todos ponen el mismo mensaje. “Aportar mi experiencia a la corporación”, “Apoyar al logro de los objetivos de la organización”, “Desarrollarme en el ámbito laboral/profesional”.  Bla, bla, bla.

Yo preferiría eliminar este rubro de “objetivo” si van de decir el mismo choro. En todo caso, poner un objetivo alineado a la misión/visión de la empresa en donde se piensa laborar. 
Al menos así ves que hubo inversión de tiempo y que el candidato investigó qué diablos hace la empresa y cómo podría apoyar a esos macro-objetivos. O de plano como dije, abstenerse de poner el “objetivo” del CV.

Escolaridad: es bueno saber en dónde estudió el candidato y cuánto se tardó en cada etapa escolar. Aquí sería bueno saber algo adicional. ¿Participó en alguna asociación estudiantil? ¿Aprendió un idioma en esos años? ¿Laboró como servicio social en alguna parte o con algún familiar?

Trabajos anteriores: poner años y empresas donde se laboró y las actividades realizadas pues me dice algo de información. Pero cada rubro de esos me debe de contestar “…y eso qué??” Trabajó como “administrador de redes”…ok, que me diga más; qué objetivos cumplió, las mejoras que logró, los retos a los que se enfrentó y superó; los objetivos de los proyectos que hizo. 
Las tecnologías y productos utilizados y dominados. Quisiera saber cómo eso que hizo en X lugar puede ayudar a la vacante que solicito. 

Recuerden usar las palabras “…y con esto logré…”; “…lo anterior mejoró la…”; “…esto permitió…”.

Otro punto. Claridad. Algunos ejemplos: “mejoras encaminadas a la estandarización en materia de seguridad de la información”, “crecimiento cristalino con virtualización”, “sensibilización en cuestión de soporte”. Caso cerrado.

Referencias: casi nadie pone referencias. Si ya estuvo trabajando en algún lugar y dio buena impresión, bien podría negociar poner un nombre/email de quien pueda hablar de esa persona. 

Redes Sociales: ningún CV que revisé tenía referencias a las redes sociales donde participaba el candidato. ¿Es por miedo a que darán la impresión de que pierden el tiempo en lugar de trabajar? ¿Nerviosismo de que lo que tuitean no vaya a gustar? O simplemente un “…y eso qué $%&## le importa al futuro empleador?”. Lo desconozco. 

Pero no dudemos de que habrá empleadores que solitos irán a Google a buscar el G+, Twitter o Facebook del candidato…nomás por curiosidad para ver de qué habla en sus redes. Por cierto, qué dicen tus cuentas sociales de ti? 
Y en caso de que no quieras a los chismosos, tienes tu cuentas cerradas o con apodos que no se liguen a tu nombre, cierto?

Servicio social: es bueno saber dónde participó laborando como servicio social y sobre todo qué logró hacer. 

Y saliéndome del tema, no saben lo importante que resulta saber seleccionar en dónde se hará el servicio social; sé de varios casos que dado los buenos resultados, la empresa los solicitan posteriormente como outsourcing y hasta los contratan. 
Tener de primera mano el “feeling” de cómo trabaja una persona mata al CV.

Nota: los trabajos de servicio social y outsourcing son una excelente oportunidad para mostrar la capacidad y habilidades con el fin de poder “brincar” a una posición fija dentro de la empresa. Ténganlo en cuenta.

Trabajo bajo presión: por favor eliminen este rubro. Todos ponen que saben trabajar bajo presión. Y como todos lo ponen, sabrá el Creador quién realmente logra trabajar así. 

Además, al menos lo que yo busco es que le “gire la ardilla”, que tenga buena actitud, que sea responsable y otras habilidades y aptitudes más, pero no estoy seguro que requiera que trabaje “bajo presión”, whatever it means. Mejor hablar de cómo lograron superar algunos retos, no?

Actitud: es difícil conocer la actitud de una persona ante el trabajo usando un par de párrafos, de hecho creo que es imposible. Tal vez se pueda poner algo que me diga la actitud que tienen al enfrentar retos, o algunos ejemplos que ilustren la postura que tomaron ante X problemática.

Ratos libres: siempre pregunto qué hace el candidato en sus ratos libres. ¿Último libro leído? ¿Un exploit desarrollado? ¿Una antena para capturar señales WiFi armada a mano? ¿Deportes? Tal vez guste de viajar. En mi opinión, creo que siempre es interesante saber qué se hace en los ratos libres. Complementa el perfil.

Promedio: ¿por qué casi nadie pone el promedio de la carrera en su CV?

CV en línea: ¿gustas de dar tu CV en papel, PDF o Word? Un toque innovador sería un CV en línea, tal vez más “infográfico” o visual que apoye tu documento (o que lo sustituya). Busquen en Google “online resume”. Apóyense de LinkedIn (tal vez es para las pocas cosas que esta red social puede servir).

Nota: poner el CV en línea tiene sus “detallitos”. No quieres poner tu dirección y teléfono a la vista de todo mundo. Revisa si existe la manera de restringir el acceso a las secciones de tu CV y que haya manera de que lo lea sólo quien uno desee. Ante la duda, no pongas nada en línea.

Conclusión.
A muchos empleadores y a más de una empresa le gustan las cosas “como siempre se han hecho”. 
Les gusta ver el objetivo del CV, que saben trabajar bajo presión y que no participan en redes sociales “porque es pérdida de tiempo”. 
Pero existimos algunos a quienes no nos gusta tanto la respuesta de “porque siempre se ha hecho así”. Nos tuiteamos en @FaustoCepeda.

miércoles 22 de febrero de 2012

El Activo más Importante


Abro el periódico Reforma en mi app del iPhone y me encuentro con un anuncio de cierta empresa que dice: “Protege el activo más importante de tu empresa, tu información”.

Según el estándar ISO/IEC 27001, un activo (“asset”) se define como “anything that has value to the organization”. Y por ejemplo para COBIT, un activo (o un bien) puede clasificarse en: personas, aplicaciones, infraestructura o información.  Noten que incluyen a las “personas” como un bien.

Son obvias las razones por las cuales las personas son un activo importante para las empresas y claro, tendrán diferentes valoraciones (desde muy importantes hasta prescindibles).

Ahora bien, eliminemos de la fórmula el hecho de que las personas…pues… son PERSONAS y cuya vida debemos de proteger: en un incendio donde tenemos de dos: o podemos salvar un servidor con información no respaldada, o la vida del técnico que ahí labora… creo que la respuesta sería la vida y no la información.

Ok, quitando lo de la importancia de la vida de las personas, aun así me queda la duda de cuál podría ser el activo más importante: personas o información? 

Las personas son las que generan, usan, analizan, envían, resguardan u organizan la información.  Son las encargadas de llevar a cabo procesos (actividades) y cumplir objetivos del interés de la empresa.
A la  información, por otro lado, tampoco podemos despreciarla. De hecho para eso está eso de la “seguridad de la información”…porque es un activo importante.

Tal vez es una discusión filosófica. Yo me quedo con “La información es uno de los activos más importantes de una corporación”. Y nos evitamos de entrar en conflictos. ¿Qué opinan?

viernes 10 de febrero de 2012

¿Cuántas veces por mes atacan a su empresa?

Les dejo la opinión que escribí para ComputerWorld México:
http://www.computerworldmexico.mx/Articulos/21294.htm

lunes 30 de enero de 2012

Cómo Seleccionar a una Empresa de Pentesting


¿Quieres contratar los servicios de pentesting (pruebas de seguridad) y no sabes por dónde empezar? No eres el único. Al menos en México (y creo que es una realidad en otros países) para contratar estos servicios te basas en “renombre” o “prestigio” de una empresa, o porque la googleaste y su página se ve “profesional” o bien porque el primo del amigo te la recomendó: “Esos dudes están re-picudos!”.

No te sientas mal. Seleccionar a una buena empresa de pentesting es un arte (así como el mismo pentest). No hay un catálogo; un comparativo completo de un tercero que haya hecho un análisis y te haga una recomendación medianamente objetiva.

¿Cómo seleccionas a una empresa de pentest para que te venga a hacer una prueba de seguridad? ¿La que te cobre más? ¿Una gran consultora con presencia internacional? ¿La que tenga una bonita página web? ¿La que tenga a su personal certificado CEH? ¿La que tenga consultores de traje y corbata o bien de jeans y con playera del BlackHat? ¿La que diga que tiene una “amplia experiencia en este tipo de servicios”?

A continuación me di a la tarea de enlistar algunos parámetros que te pueden ser de utilidad al momento de contratar estos servicios. Varios de ellos pueden aplicar también para buscar servicios de consultoría de seguridad (risk assessment, threat modeling, etc.). 

a. Prueba en Vivo: un examen, pa’ pronto. Arma un ambiente de pruebas, crea algunos pequeños retos de hacking (o unos de miedo) y que vengan a demostrar sus habilidades “en sitio”. Quédate y ve cómo se desenvuelven, la manera en que resuelven los retos, las herramientas usadas y qué platican entre ellos. Antes de la prueba platícales sólo las generalidades de lo que se va a evaluar. 

Tal vez te dé pena pedir este examen sobre todo si la empresa tiene candidatos con N credenciales o dicen tener una amplia experiencia, pero si eres el cliente creo que tienes del derecho de llevarlo a cabo porque es una forma de evaluar sus competencias.

La prueba en vivo te permitirá tener el “feeling” de los pentesters y no sólo de los vendedores  que vinieron a ofrecerte el servicio en PowerPoint. Yo en las pruebas me he llevado un par de sorpresas con “grandes consultoras”.

Y claro, se espera que pasen la prueba.

b. Empresa Dedicada a Pentesting: ¿es una empresa “milusos” o está dedicada 100% (o mayormente) al pentest? Yo prefiero una empresa lo más dedicada al pentest que sea posible (y no “integradores” o vendedores de productos que claro que lo harán si les pagas).

c. Libros Publicados por los Pentesters: oiga señor, y qué tan involucrado está usted en seguridad informática y pentest? Si el personal de la empresa ha publicado un libro de algún tema de seguridad, pues ya de entrada habla bien de ellos y de la empresa, no?

d. Años de Experiencia: pídele que te diga cuántos años lleva dedicado a esto del pentest. No te puedo decir cuántos años son suficientes, eso lo decidirás tú. Para mí serían adecuados un mínimo de 3 años.

e. Blogs, Artículos, Papers: hablaría bien de los pentesters si escriben seguido en su blog de seguridad, o mejor aún si han publicado artículos tipo paper. Digamos que esta sería otra manera de demostrar su interés  e involucramiento en temas de hackeo ético y demás temas de la SegInfo.

f. Participación en Conferencias: si me dices que tus pentesters han dado dos que tres pláticas en BlackHat o DefCon ya de entrada me tienes comiendo de tu mano. Es correcto decir que no son las únicas conferencias de seguridad y hackeo; hay varias más a nivel mundial y también nacionales. Revisa en cuáles han dado sus charlas y evalúalo. 

g. Certificaciones Relevantes de Seguridad: ok, una certificación no lo es todo y conozco muy buenos pentesters que NO tienen NINGUNA certificación de seguridad o de hackeo. Sin embargo y por otro lado, si son buenos pentesters no tendrán problema en pasar exitosamente una que otra certificación, cierto? Además si pasa exitosamente la “Prueba en Vivo” ya mencionada, esto de las certificaciones puede resultar secundario. 

Como nota personal, si me enseñan una CEH lo pondría como un logro realmente menor; tomé el curso y pasé el examen por lo que puedo decir que eso de la opción múltiple y el hecho de evaluar habilidades de hackeo no se llevan muy bien…sin mencionar lo desactualizado de varios de los temas (versión 6) entre otros “peros” del curso y su temario. 

Ahora bien, ciérrame la boca y oblígame a hacerte una reverencia si me muestras tu OSCE (Offensive Security Certified Expert) o  tu OSEE (Offensive Security Exploitation Expert) o alguna otra certificación de nivel (como varias del SANS).

h. Reporte Muestra: pide tanto el técnico como el ejecutivo de un pentest realizado. En el técnico te darás cuenta de qué tipo de debilidades reportan, screenshots y herramientas usadas; así como las evidencias presentadas. 

En el ejecutivo te darás cuenta de su capacidad de reportar tecnicismos a la alta dirección y te percatarás de su criterio para priorizar acciones de solución. Asimismo, el reporte y presentaciones muestra te podrán ayudar a tener una idea de qué tipo de documentación te estarán entregando a ti.

Es probable que te den estos documentos “editados” sin el nombre del cliente o las direcciones IP por ejemplo; y esto es normal y hasta deseable (no querrás que en el futuro den el reporte de TU empresa a cada fulano que lo pida). Tal vez te digan que tienen acuerdos de confidencialidad con sus clientes y que no pueden entregar nada…ok, al menos lo intentaste.

i. Objetivos: diles el objetivo del pentest a ver si se sienten cómodos con las metas a cumplir y que te platiquen un poco de cómo lo harían o cuál sería su enfoque; y hazles preguntas (ya pre-hechas) para que durante la junta evalúes sus respuestas. Obvio tienes que saber un poco de SegInfo y hacking, si no todas las respuestas de las diferentes empresas te parecerán igual. 

j. Ingeniería social: algunos pentesters hacen ingeniería social. Tal vez tú no desees incluir este tipo de enfoque y lo debes de especificar. Pero si requieres de ingeniería social sugiero que te asegures de que no sólo pueden explotar debilidades de TI sino que van a poder aplicar esta técnica con los empleados y te será de utilidad preguntar qué y cómo lo han hecho en anteriores ocasiones junto con los resultados obtenidos.

k. Especialización: tal vez desees pentesting del web, de tus smartphones, de los tablets, red inalámbrica, red interna o servidores Linux. La compañía de pentest debe de tener en su portafolio a personal capacitado para lograr los objetivos del pentest. Tal vez los pentesters se enfocan en aplicaciones web y tienen poca idea/experiencia de cómo penetrar una BlackBerry.

l. Referencias de Clientes Pasados: sería buena idea poder llamarles a algunos clientes que hayan recibido los servicios de esta empresa y preguntarles sobre su experiencia con ellos.

m. Investigación Relacionada con Vulnerabilidades: han descubierto alguna vulnerabilidad de software? Eso para mí da un plus punkt. Sería otra forma de demostrar sus habilidades e involucramiento en el pentest y mundo del hacking.

n. Sin Registros Criminales: una buena idea sería revisar que el personal que hará el pentest no tenga antecedentes penales; o al menos como dicen en los contratos “bajo protesta de decir verdad”.

Digo, si lo vas a dejar entrar hasta la cocina y que te pegue, pues al menos tener una certeza razonable respecto a que está limpio desde el punto de vista legal. Claro, no es ninguna garantía, pero es una palomita más en tu checklist…o un tache que para mí significaría que se quedó sin contrato.

ñ. Tercerización: el personal del pentest es de la empresa o van a “tercerizar” (outsourcing)? Sería ideal que fueran de la propia empresa y que no subcontraten estos servicios (yo así lo buscaría). De otra forma estaríamos tratando con “integradores” que recolectan por ahí a quienes realmente harán el trabajo. En fin, tal vez tú tengas otra opinión. 

o. Servicios similares en el sector de tu empresa: si laboras en una central nuclear pues qué mejor que los pentesters hayan hecho trabajos en otras centrales. Este punto lo pongo todavía más con la bandera de “opcional”; si nunca antes hicieron un pentest en una empresa de comercio electrónico no se traduce automáticamente en incapacidad para llevarlo a cabo. Es simplemente otra “palomita” que puede inclinar la balanza ante un empate, por ejemplo.

Conclusión
Te presenté una serie de puntos que puedes buscar en una empresa de pentest; difícilmente todas las empresas cumplirían todos los criterios mencionados. Tu labor será seleccionar aquéllos que te parezcan razonables y ver qué empresa cumple con la mayoría de ellos.

Al final tú tienes la mejor decisión para tu empresa y no existe un checklist válido para todo mundo y en el que todos estemos de acuerdo. Estas son sólo unas ideas. 

Inclusive las puedes examinar si eres pentester y ver qué podría llegar a pedir un cliente (como yo).
Les dejo otros tips interesantes sobre este tema.

Palabras clave: pentest pentesting evaluar empresas compañías habilidades competencias seleccionar