Anticipándose a los Hackers: Certificación de Aplicaciones

Hablamos con el vicepresidente de Sales de una de las más prestigiosas empresas de seguridad informática de Argentina, para conocer los aspectos fundamentales y los beneficios de la Revisión exhaustiva de Seguridad de las nuevas aplicaciones antes de comenzar su uso.

Escenario de Programación previo a una Implementación

Miércoles 14.45. Un día típico en la “software factory”. Risas en los escritorios, alguna llamada telefónica filtrándose, mensaje de texto y whatsapp alternados con nuevos fragmentos de programación. En los pasillos el bullicio post almuerzo todavía resuena y el fin de semana se acerca.

Pero el gran obstáculo es que se acaba de adelantar una implementación por pedido urgente de un cliente y los aires jocosos cambian por completo.

Miércoles 15:30. La sala de reuniones colapsada, llueven dudas más que ideas y el jueves se instaló como fecha máxima de entrega, entonces los directores de proyecto apurados, los clientes aguardando, las decisiones comerciales esperando el lanzamiento. Programadores, DBA, testers, ejecutivos de cuentas y todos los etcéteras posibles hacen su mayor esfuerzo para terminar con una versión entregable que cumpla con los requerimientos del cliente.

Quien trabaja o haya trabajado en un equipo de desarrollo de software sabe perfectamente el stress que se genera y los pasos que se deben seguir con una inminente implementación. En este escenario, ¿quién le dedica el tiempo necesario a una revisión de la seguridad del nuevo sistema antes del pasaje a producción?

“Aprendí a ser… programador en C”

En la Argentina, en todas las facultades e instituciones terciarias que brindan carreras tales como Ingeniería en Sistemas, Licenciatura en Informática o Analista de Sistemas no existe en sus planes de estudio materias que capaciten a los alumnos en “Programación Segura de Software”. Si bien existe una asignatura de Seguridad, esta trata con respecto a temáticas como seguridad en data centers, seguridad de redes o criptografía. Esta carencia en la educación superior impide que los futuros programadores, líderes de proyectos o gerentes de desarrollo adopten las metodologías necesarias para programar en forma “anti hackers”.

Dentro de los grandes riesgos, se encuentra la posibilidad de que se alteren transacciones económicas, la modificación de la base de datos o la sustracción de claves de acceso o información de clientes, todos inconvenientes que acarrean graves daños en la imagen y la reputación de una empresa.

¿Pero qué ocurre con un software muy sencillo? Por ejemplo, una encuesta online de satisfacción a clientes. Se podría pensar que en esos casos la certificación en Seguridad es innecesaria. Pero la realidad dictamina que esto no es así.

En la jerga de Seguridad hay un concepto llamado “Vectores de Acceso”. Esto significa que una vulnerabilidad encontrada es un punto de acceso, es decir una puerta de entrada para realizar un ataque informático dentro de la red. A partir de algo aparentemente tan inofensivo, un hacker ingresa al sistema y tiene la posibilidad de escalar permisos hasta obtener el control total de los servidores de la organización.

No hay aplicación lo suficientemente sencilla que se no se deba verificar.

¿Qué es un Penetration test?

Algunos números realmente asustan. Según un estudio de la firma NCC Group, llamado “Origin of Hack”, en los últimos cuatro meses de 2012 se produjeron en el mundo 981 millones de ataques de hackers. EEUU se lleva el primer premio con el casi 21%, y Argentina se encuentra en el puesto número 29 del ranking.

Las grandes empresas acostumbran a realizar periódicamente un test de seguridad informática, llamado “Penetration Test” o “pentest”.

El objetivo es emular todo lo que un hacker podría hacer sobre la plataforma informática, ya sea que esté ubicado físicamente dentro, o bien fuera de la organización. Esta revisión es generalmente realizada por una empresa especializada ajena a la compañía; permite tener un diagnóstico de las vulnerabilidades y riesgos, y ordenar el trabajo de resolución.

En Seguridad, según coinciden los especialistas, es imposible asegurar 100% de eficiencia. Pero cuanto más se verifica, más se podrá acercar a ella.

Más Stress, Más Tiempo, Más Dinero

Corregir una vulnerabilidad de un sistema que se encuentra activo en producción es mucho más complejo y costoso que realizarlo durante la fase de desarrollo.

Según un reciente estudio de la universidad de Cambridge, el costo de depuración de defectos de sistemas informáticos activos mundialmente crece año tras año, ascendiendo anualmente a 316 mil millones de dólares.

El mismo estudio incluso deduce que, en promedio, un programador de software pasa la mitad de su tiempo en encontrar y corregir errores.

Quien ha trabajado en la industria de la fabricación de software conoce cómo es la distribución de recursos. Los mejores talentos son responsables del desarrollo del nuevo software, y luego de su implementación, son migrados a trabajar en un nuevo proyecto. Los mantenimientos y resolución de errores terminan siendo realizados por programadores que no trabajaron en el proyecto inicial, no participaron en el diseño de su arquitectura ni en las discusiones de desarrollo, y muchas veces terminan desempeñándose con documentación incompleta o desactualizada.

El caos es mayor cuando el defecto a corregir se trata de una vulnerabilidad de software que pone en peligro la reputación de la organización.

“Trabajar en Certificación de Aplicaciones implica un cambio cultural”, afirma Ezequiel Rapoport, actual Vice President of Sales de Infobyte Security Research, con más de 10 años de experiencia en Gerenciamiento de equipos de desarrollo.

Además, asegura que “en las empresas que han incorporado esta metodología observamos la primera reacción del programador y esta suele ser de molestia. Ya hace tiempo que ha asumido la necesidad de una etapa de Control de Calidad (QA o Quality Assurance), previo a la implementación. Pero ahora le avisan que, además, debe pasar por certificar la seguridad de las aplicaciones. Esto es inicialmente más tiempo, y presenta dificultades adicionales de alcanzar las fechas previstas. Los Directores de Proyecto lo ven como una imposición adicional. Pero luego de cierto lapso de tiempo, se produce un cambio de mentalidad. Los desarrolladores asumen la importancia de programar con software seguro, e incorporan los conocimientos necesarios para ello. En muchos casos demandan luego capacitación y bases de conocimiento. El objetivo final nuestro es que las empresas piensen en software seguro desde el día cero de un proyecto informático”.

Tiempo de Cambios

El rumbo parece estar tomando otra dirección. Corporates ubicadas en los mejores puestos en Forbes, y algunas de las principales entidades de la Banca Argentina, ya están modificando este cambio de mentalidad e incorporan la Certificación de la Seguridad de las Aplicaciones como un proceso más dentro de sus metodologías. Este proceso fue lento y demandó muchos esfuerzos pero pareciese que al fin está dando sus frutos. Se está popularizando el concepto que seguridad informática no es sólo tener claves seguras, firewall correctos o protocolos de seguridad, sino un conjunto de acciones preventivas y de educación en materia de programación para que desde las fases de creación de software este concepto esté instaurado en la metodología de los trabajadores de la industria.

La principal traba hasta el momento es que los presupuestos son difíciles de conseguir, y la legislación escasa.

La toma de acciones con antelación se convierte entonces en una acción imprescindible, porque lo importante no es sólo cuidar los bienes de las empresas, sino también proteger la información y privacidad de los usuarios que confían y utilizan sus servicios.