Aparte de los algoritmos, ¿hay algo que los ingenieros de software sepan que los evaluadores de penetración no?

  • Patrones de diseño. No es necesario para la prueba de lápiz en absoluto.
  • Construcción de lenguajes de programación para aplicaciones. Por ejemplo, Objective-C es un lenguaje para construir aplicaciones iOS. No es lenguaje para herramientas de penetración.

Hay muchas cosas que caen en una especie de zona gris:

  • Sistemas de control de versiones. Herramienta imprescindible para el programador, pero no para el probador de penetración a menos que ellos mismos programen sus herramientas.
  • IDEs, más aún, IDEs específicos (nunca voy a hacerle una pregunta a un probador de penetración sobre XCode).
  • Examen de la unidad. Si el probador de penetración programa un poco, él / ella puede saber esto, pero puede que no lo sepa también.
  • Estilo de código, reglas de código limpias, qué mirar al revisar el código. Los evaluadores de penetración pueden saber algo al respecto o no saber nada.
  • Principios de programación como SOLID.
  • Todo lo relacionado con la construcción de interfaces.

El ‘ingeniero de software’ es una categoría muy amplia, mientras que los probadores de penetración son ingenieros con una tarea muy especializada. Además, ambos conocen ‘algoritmos’: la comprensión de la lógica subyacente es lo que permite a los evaluadores de penetración una de las muchas formas de ingresar.

Suponiendo que solo se refiere a los ingenieros de software que escriben sistemas de seguridad que evitan incursiones no deseadas (exactamente lo que intentan romper los probadores de penetración), la diferencia es más sutil. Los ingenieros de software tienen que pensar en nuevas formas de mantener a alguien alejado, mientras que los evaluadores tienen que pensar en nuevas formas de romperlos.

Es muy parecido a la diferencia entre un cerrajero y un ladrón. Un buen cerrajero sabrá todo lo que hay que saber sobre cerraduras, llaves, puertas, cualquier cosa para asegurar la entrada a su hogar. Un ladrón capaz también sabrá todas estas cosas. Pero el cerrajero intentará encontrar o pensar en nuevas medidas de seguridad, mientras que el ladrón tratará de encontrar formas de eludir o romper lo que no hayan encontrado antes. Y a su vez, el cerrajero querrá pensar en defensas contra esas formas: es una carrera armamentista.

Los conjuntos de habilidades aplicados son muy diferentes, pero lo que saben en el núcleo es muy similar. Por supuesto, hay mucho conocimiento sobre las herramientas y el enfoque de los trabajos que es diferente. Al igual que un cerrajero y un ladrón no necesitan las mismas herramientas para hacer su trabajo. Las herramientas y el conocimiento necesarios para hacer el trabajo del ingeniero de software, similar al de un cerrajero, son generalmente más complicados y requieren más tiempo para dominarlos. Como efecto secundario, necesita más personas que crean seguridad que la rompen. Pero en ambos campos hay tanto que aprender y dominar, que convertirse en un maestro en el campo puede ser una carrera completa.

Una observación final: un ingeniero de software que escribe código de seguridad debe defenderse de cualquier posible ataque. Un atacante solo necesita encontrar un solo defecto para entrar. El trabajo de un probador de penetración es encontrar todas las vías de ataque que aún funcionen, y en ese sentido se parece más al ingeniero de software que a un ladrón como un cerrajero.

Es divertido, no es tanto lo que sabes como cuál es tu papel.

Una vez tuve que hacer tanto el desarrollo como la prueba para el mismo proyecto en el mismo lanzamiento. El efecto de doble personalidad fue una verdadera revelación.

Como desarrollador, necesitaba sacar el lanzamiento, según lo programado, con los contenidos requeridos. Acepté que podría haber algunas imperfecciones, y podríamos arreglar el próximo parche, pero, por Dios, iba a salir a tiempo . Los clientes están esperando.

5 minutos después, el código está listo y tengo puesto mi sombrero de prueba. No hay forma de que cierre sesión en esto hasta que esté seguro de que es correcto, y nadie me hará apurarme. El hecho de que el desarrollo empuje hasta el último segundo no significa que vaya a pasar la prueba en la mitad del tiempo. Ah, y cuál es este comportamiento? ¿Entendemos por qué está haciendo eso?

Los desarrolladores quieren que salgan las funciones. Los probadores no quieren que salgan los errores.

Esta tensión siempre estará ahí, y debería estarlo, pero la prueba (especialmente la prueba de la pluma) y el desarrollo siempre se volverán locos, sin importar quién sepa qué.

More Interesting

¿Los ingenieros de software compran libros de lenguaje de programación?

¿Es posible que un ingeniero de software gane suficiente dinero para comprar una casa en Munich?

¿Cómo se ve un buen sitio web junior de cartera de desarrolladores backend?

¿Por qué los desarrolladores de software en Japón reciben tan poca compensación?

¿Cómo puede un ingeniero de software indio emigrar a Irlanda?

¿Alguien puede explicarme por qué leo bien el código pero no puedo hacerlo bien?

¿Cuál es el trabajo de un ingeniero de software en una industria de TI?

¿Cuál es la forma más rápida para que un estudiante de informática moleste a un programador / ingeniero de software que trabaja?

¿Por qué no debería especializarme en informática?

¿Qué tipo de proyectos podría hacer para obtener un perfil SDE en una empresa como Makemytrip, Amazon o VMWARE?

¿Los ingenieros de software felices realmente disfrutan de la programación? Soy estudiante de CS en una universidad estadounidense de élite. No me gusta programar. Si logro convertirme en ingeniero de software, estaré programando 8 horas al día (en promedio). ¿Estoy condenado?

Soy una mujer de 25 años y siento que no he hecho nada de profesión, soy ingeniero pero desde hace 7 meses estoy sin trabajo, vivo en Bhopal y no puedo salir de mi ciudad porque mi padre ganó no me permitas ¿Qué tengo que hacer?

Singapur o Dubai, ¿cuál es mejor para los ingenieros de software en términos de perspectivas de trabajo?

¿Cuál es el nivel de dificultad de la Ingeniería en Informática en comparación con el 12º PCM estándar?

¿Es posible comenzar mi carrera como ingeniero de software después de una brecha de 10 años en la India?