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.