Krypton Solid

La última tecnología en raciones de 5 minutos

Los principios ‘seguros por diseño’ incluyen fallas, excepciones

«La seguridad es un aspecto de calidad de un sistema. Si su sistema es inseguro, la calidad es baja», dijo Daniel Deogun, coautor de Seguro por diseño.

Sin embargo, los desafíos de alta presión, como los estrictos plazos de la administración y los líderes de equipo, hacen que muchos desarrolladores de software e ingenieros se centren más en hacer que el código funcione en lugar de garantizar la seguridad en el producto final.

Otro problema, dijo el coautor Dan Bergh Johnsson, es que, «como desarrollador, puede volverse un poco ansioso. Cuando haya hecho que el software funcione, puede que haga lo que pretendía, pero también un poco extra.» Este «pequeño extra», señaló, podría ser inofensivo o podría abrir agujeros de seguridad que, con el tiempo, pueden crear un mosaico de fallos que los piratas informáticos inteligentes y pacientes pueden explotar.

Deogun, Bergh Johnsson y el coautor Daniel Sawano conocen de primera mano los obstáculos que enfrentan los desarrolladores, especialmente aquellos sin experiencia en seguridad.

Aquí, los autores discuten los principios de seguridad por diseño que son clave en el desarrollo de software. También explican por qué manejar los fallos de forma segura y comprender el concepto de excepciones son componentes vitales de una aplicación funcional y segura.

Nota del editor: Esta transcripción ha sido editada para mayor claridad y extensión.

¿Por qué la seguridad por diseño es un principio de software tan importante? ¿Qué conduce a un software que es inseguro ¿por diseño?

Daniel Deogun: A veces, los desarrolladores eligen accidentalmente una estructura de datos que es demasiado genérica. Puede haber resuelto su problema, pero también abrió cosas que no estaban previstas. Tome una cuerda, por ejemplo. Puede poner cualquier tipo de datos dentro de una cadena. Pero, si elige ciertos patrones de diseño, como los que presentamos en nuestro libro, puede escribir código que sea más explícito, lo que aumenta la entrada aceptada y, por lo tanto, evita los ataques de inyección que normalmente podría hacer en una cadena.

Daniel Sawano: En el libro, proporcionamos principios e ideas con los que los ingenieros y desarrolladores pueden relacionarse fácilmente, incluso si no están particularmente preocupados por la seguridad. Nuestra esperanza es que se sienta más natural para ellos y, por lo tanto, será menos esfuerzo implementar los principios de diseño que promueven la seguridad. Dado que los desarrolladores están promoviendo otras propiedades del sistema, como la escalabilidad o la disponibilidad, o simplemente están haciendo lo correcto en términos de lógica empresarial, en realidad no se ven como un esfuerzo adicional. Es algo natural y obtienes beneficios de seguridad.

¿Para quién está escrito el libro?

Deogun: Seguro por diseño es adecuado para desarrolladores que tienen dos o tres años de experiencia, pero puede ser útil para personas que van desde aquellos que están al comienzo de sus carreras hasta aquellos que lo han estado haciendo durante 10 a 15 años.

Dan Bergh Johnsson: Intentamos ser intelectualmente estrictos con este libro. No queríamos un libro que tuviera todas las ideas que pudimos reunir sobre seguridad, sino más bien un libro que transmita las cosas con las que hemos tenido experiencia en nuestra vida profesional. Los lectores descubrirán los patrones de diseño que hemos utilizado con los clientes y en las bases de código que hemos encontrado productivos para promover la mejor seguridad.

Hay un extracto del Capítulo 9 en SearchSecurity que analiza el manejo de fallas de forma segura. ¿Por qué es esta una consideración tan importante al hacer una elección de diseño?

Deogun: Cuando pregunta a los desarrolladores, en su mayoría desarrolladores junior, ‘¿Cuál es el resultado de esta operación?’ tienden a pensar en quizás la mitad de los casos. Tomemos un cajero automático, por ejemplo. Un resultado podría ser que recibí un billete de $ 100 porque hice un retiro. Otro podría ser que la máquina me rechazó porque mi saldo estaba demasiado bajo. O tal vez la máquina no se pueda conectar al banco. Pero, luego, hay fallas catastróficas a considerar, donde sucede algo totalmente imprevisto, tal vez la máquina se prende fuego. Modelar todos estos puede volverse loco.

Entonces, aquí es donde entran en juego las excepciones. ¿Cómo funcionan esos?

Si el código no puede manejar situaciones excepcionales, los sistemas se romperán y romperán, revelando información que da pistas a los piratas informáticos.

Dan Bergh JohnssonAutor

Sawano: Muchos lenguajes de programación tienen el concepto de excepciones, que, si escuchas el nombre y lo piensas, significa claramente que ha sucedido algo excepcional. Al diseñar software, los desarrolladores no deberían tratar los resultados estándar como excepciones.

Bergh Johnsson: Si miramos los sistemas de seguridad desde la perspectiva de un pirata informático, la mayor parte de la información que obtiene del sistema es cuando deja de funcionar. Si el código no puede manejar situaciones excepcionales, los sistemas se romperán y romperán, revelando información que da pistas a los piratas informáticos. Si le damos la vuelta a esta situación, hay beneficios para los desarrolladores. Si podemos construir sistemas de una manera que trate tantas situaciones como sea posible como normales, entonces crearemos un código normal, seguro y bien diseñado para ello.

Tomemos el ejemplo de los cajeros automáticos. No es excepcional que alguien con fondos en su cuenta haya retirado dinero; es algo perfectamente normal. No es excepcional que no pueda conectarse al banco desde el cajero automático; es normal. No quiere que el cajero automático se rompa y que el banco le saque dinero del banco de formas extrañas. Los diseñadores deben construir esas circunstancias excepcionales, tratarlas como algo normal y construir su código en torno a eso.

¿Qué consejo final tiene para los desarrolladores de hoy?

Deogun: Una gran conclusión sería que los desarrolladores sin mentalidad de seguridad sientan que pueden escribir código seguro y desmitificar áreas de seguridad de aplicaciones antiguas que no se comprenden bien. Con suerte, con el libro, les proporcionamos un pequeño conjunto de herramientas para comenzar ese viaje hacia la escritura de código seguro más fácilmente.

Bergh Johnsson: Quiero que la gente sepa que la seguridad no es una cuestión aparte. Por supuesto, hay personas con experiencia en seguridad, pero la seguridad no es algo que los desarrolladores deban confiar en que otra persona lo haga, es responsabilidad de todos.

Deja un comentario

También te puede interesar...

¿Qué es MuleSoft? – Definición de Krypton Solid

MuleSoft es un proveedor que proporciona una plataforma de integración para ayudar a las empresas a conectar datos, aplicaciones y dispositivos en entornos de computación en la nube y en las instalaciones. La plataforma de

Definición del pago mínimo mensual

¿Qué es un pago mínimo mensual? El pago mensual mínimo es la cantidad más pequeña que un cliente puede pagar cada mes en su cuenta de crédito renovable para mantenerse al día con la compañía

Cómo el accidente de 2008 afectó el sueño americano

¿Cuál es la conexión entre la propiedad y el sueño americano? En muchos sentidos, el sueño americano es un concepto de optimismo. También implica la igualdad de oportunidades de que cualquier individuo puede aspirar a

Cómics de la semana # 200

Cómics de la semana # 200 Cada semana presentamos un conjunto de cómics creados exclusivamente para WDD. El contenido gira en torno al diseño web, los blogs y las situaciones divertidas que encontramos en nuestra

Fraude de ciberseguridad avanzada y cómo combatirlo

El ímpetu detrás del fraude en ciberseguridad tiene raíces históricas profundas. Considere la historia de los comerciantes marítimos griegos Hegestratos y Xenothemis, que solicitaron un seguro contra su barco y su cargamento de maíz en

Video: Almacén de escáneres Ninja | Krypton Solid

¿Quién dice que promover una empresa que recopila datos, RFID y soluciones de impresoras y medios debe ser aburrido? (Video su amabilidad Intermec Australia) De acuerdo, algunos de sus videos de casos de estudio pueden

Las revoluciones de 2001 | Krypton Solid

Bien podríamos afrontarlo: la revolución de la PC ha terminado. Oh, las PC continuarán siendo la principal forma en que creamos información y accedemos a Internet y continuarán haciéndose más rápidas, menos costosas y más

Guía para principiantes de metales preciosos

El oro y la plata se han reconocido durante mucho tiempo como metales preciosos y han sido codiciados durante mucho tiempo. Incluso hoy en día, los metales preciosos tienen su lugar en la cartera de

Programas de facturación Krypton Solid

¿Necesitas generar facturas para tu negocio y no sabes que herramienta utilizar? Si la respuesta es sí, seguro que te alegrará leer esta guía y conocer a los que, en mi humilde opinión, representan a

Definición de Coincheck

¿Qué es Coincheck? Coincheck es una empresa de intercambio de criptomonedas y monederos digitales. Fue fundada en 2012 y tiene su sede en Tokio, Japón. Recomendaciones clave Coincheck es un intercambio de criptomonedas y una