Aunque no soy uno, puedo decir con confianza que no, en base a mi conocimiento general de seguridad e ingeniería de software.
En general, para el trabajo en seguridad, al menos se necesitaría algún conocimiento que se superponga con la administración del sistema y la ingeniería del software, así como un conocimiento más especializado. Por ejemplo, sabiendo:
- ¿Cuál es la arquitectura de seguridad / permisos de los sistemas operativos de destino? ¿Dónde están los límites entre las operaciones con privilegios de administrador y las operaciones de usuario? ¿Cómo se otorgan los permisos adicionales?
- ¿Cómo se establecen las conexiones de red salientes en el sistema operativo?
- ¿Cómo está organizado el sistema de archivos? ¿Qué archivos podrían esperarse que un usuario objetivo pudiera modificar? ¿Qué archivos sensibles podría querer proteger el usuario?
- Usando el conocimiento anterior, ¿cómo puede uno detectar que el código está intentando acceder a cosas que no debería? Para responder a esa pregunta, uno necesitaría algo de fluidez con los desensambladores y otras herramientas de descompilación. Existen programas especiales para el código de ingeniería inversa, y aquellos que están especializados para el análisis de virus y otros programas maliciosos también tendrían acceso a un corpus de código de malware conocido, para la comparación con el código nuevo.
Por lo tanto, conocer el lenguaje ensamblador y las preocupaciones de programación de bajo nivel es necesario pero no suficiente.
- ¿Qué puedo aprender en los próximos 10 minutos?
- ¿Cómo retiene el conocimiento el cerebro humano?
- Programación de computadoras: ¿Cuáles son las buenas técnicas para comprender rápidamente una nueva biblioteca con la que tiene que trabajar?
- ¿Cómo describiría uno la curva de aprendizaje?
- ¿Cuál es una buena manera de pasar 30 días “libres”?