Si se le da la oportunidad de elegir ser ingeniero de software o especialista en seguridad (pruebas de ciberseguridad / penetración) cuando se gradúe, ¿qué elegiría y por qué?

Supongo que estás en la universidad y buscas consejos de posgrado sobre dónde comenzar tu carrera.

Depende completamente de lo que lo motiva a codificar y cómo la codificación lo motiva a ganarse la vida. Las personas que realmente están dotadas de escribir código seguramente tendrán demanda en ambos lados en el futuro previsible, por lo que ninguno de los dos tiene un bloqueo en el desarrollo profesional a largo plazo. Mientras los humanos codifiquen, será necesario realizar pruebas de código y pruebas de penetración.

Si busca codificar y trabajar con Expertos en la Materia (SME) creando productos de software nuevos e innovadores, tenga una larga carrera sostenible en desarrollo. Las horas son generalmente predecibles y el ritmo puede ser mundano para todos los sprints en entornos ágiles y scrum. Desarrollar nuevo código siempre es más interesante que el mantenimiento.

Los desarrolladores de organizaciones generalmente viven un poco enclaustrados y, a menudo, en una torre de marfil sin tener que lidiar con el censo general u organización en su conjunto. En dos palabras: back office. El lado bueno es que generalmente ganará un poco de respeto técnico y comercial de la comunidad en general.

Las pruebas de penetración en el mundo laboral no tienen nada que ver con el uso de sudaderas negras y pasar el rato en la red oscura, al menos la sudadera con capucha oscura. Pasamos algún tiempo en la web oscura descubriendo los detalles de la organización filtrados, pero es un trabajo más duro de lo que parece. Todas las pruebas de penetración comienzan ejecutando cualquiera de los diferentes escaneos de vulnerabilidad contra un objetivo, compilando los resultados, construyendo un plan para incluir la búsqueda de fragmentos de código de otra persona, construyendo un modelo de ataque, implementando el modelo y ajustando los resultados para ver si está apagado. El ataque al estante es posible. La mayoría de las pruebas de penetración realmente terminan aquí y pasan directamente a la fase de informes. Has terminado … aquí. Si no es así, y está AUTORIZADO para atacar el código en profundidad, toma lo que hace / no sabe sobre lo que puede o no funcionar e intenta, a veces cientos de intentos, escribir y ajustar el código hasta que encuentre algo que realmente funcione para romper el código o conseguir que haga algo esperado pero útil: denegación de servicio; Elevación de privilegios, desbordamiento del búfer, etc. Muchas veces usamos fuzzers automáticos y algoritmos dinámicos de aprendizaje automático para hacer este trabajo. La sudadera con capucha negra no es necesaria, pero agrega algo genial a la idea.

De cualquier manera, ahora tiene que escribir un informe bastante extenso a un practicante de seguridad de alto nivel como yo, que detalle la naturaleza y la facilidad del ataque, el punto muerto de dicho ataque y el control compensatorio necesario para detectar. De lo contrario, su informe se leerá como muchos otros documentos inútiles que le dicen a personas como yo que es probable que el software sea comprometido por alguien con más conocimiento y habilidad que la persona que escribe el informe. En otras palabras, los probadores de “penetración” generalmente tienen poca idea de lo que están haciendo en primer lugar, pero tienen un elegante vestuario negro.

Cuanto más tiempo trabaje en seguridad, generalmente más cansado se sentirá con respecto a la naturaleza del riesgo en sí. Los probadores de penetración no son necesariamente mis personas favoritas para tratar. Piense en habilidades cuestionables que van desde script kiddie puro hasta tipos de desarrolladores maestros que se ganan la vida sustancialmente como cazarrecompensas de errores. Un probador de penetración verdaderamente grandioso es una belleza para la vista. Sin embargo, la mayoría son desarrolladores mediocres que en realidad no pueden codificar y recurrir a las pruebas de penetración para ganarse la vida. Conozca a muchos probadores de penetración con problemas éticos que se ajustan a este proyecto de ley.

Fuera del ciclo de exageración actual, siempre recomiendo que la gente obtenga una buena experiencia de seguridad sólida, aprendiendo los verdaderos entresijos de su porción de TI antes de ingresar a la seguridad. Demasiadas habilidades necesarias para completar esa seguridad se basan en solo el aspecto técnico de la seguridad que se debe tomar en serio. La seguridad realmente real es mucho más que habilidades técnicas, sino que se está convirtiendo rápidamente en la encrucijada donde lo técnico se une a los negocios. Piense en el análisis de riesgos, el análisis de datos, la redacción de negocios, el análisis operativo y una gran cantidad de otras habilidades de pensamiento crítico necesarias más allá de ser un profesional de aprendizaje constante, pero también la PYME de TI actual.

Ambos . Porque hice esto. Realicé animación, modelado 3D, 27 lenguajes de programación, Linux y Windows, Pen Tester (para aplicaciones web) y también diseñador web UI / UX y diseñador web.

Soy parcial. Siempre me ha interesado la seguridad (física, técnica, administrativa … psicológica, incluso). La ingeniería de software es interesante para mí, pero personalmente me gusta solo en un nivel alto. Me gusta que el software haga mi oferta y, en general, no me importan las tuercas y los pernos a menos que representen un riesgo inaceptable o un defecto de interfaz significativo.

Al final del día, es una elección personal. Necesitamos ingenieros de software. Necesitamos gente de seguridad. Tendrás que preguntarte qué quieres hacer a largo plazo, qué es lo que más disfrutas. Si no es divertido, ¡lo estás haciendo mal!