Suponiendo que probablemente emprenderá esfuerzos similares en un futuro cercano, creo que se requiere un enfoque diferente al que se ha propuesto en las respuestas anteriores. Me gustaría sugerirle que describa y establezca una estrategia para "asegurar" futuras aplicaciones / sistemas. Al utilizar una estrategia, puede garantizar la coherencia, delegar responsabilidades y mejorar su práctica a lo largo del tiempo.
Creo que la protección de un servidor no debe hacerse de manera ad hoc, sino de forma metodológica y coherente. Debe ser un proceso repetible con el menor margen de error posible. Nosotros, los humanos, somos notoriamente malos para recordar detalles, a menudo combinando fragmentos de información en algo completamente diferente.
En el escenario que describiste anteriormente, una perspectiva de Disponibilidad parece ser mayormente relevante y útil. Comience por describir el establecimiento de dependencias del sistema. ¿Qué otros sistemas deben ser accesibles para que la aplicación funcione? ¿Dependes de un directorio de usuarios externo? Las dependencias son importantes porque ayudan a comprender mejor las posibles "vías", o vectores, de ataque.
A continuación se detallan los detalles de quién debe tener acceso al sistema y al "terminal" de acceso principal (escritorio remoto, estación de trabajo, computadora portátil, teléfono móvil, etc.). Al hacer esto, habrá comenzado a establecer su marco de referencia, o límite del sistema, si lo desea.
Es muy probable que haya limitaciones organizativas a las que simplemente deba obedecer. Estos pueden incluir métodos de autenticación exigidos por la compañía, algoritmos de cifrado y otros, describir y documentar estas limitaciones. Es posible que también deba considerar los requisitos legales, y ahora puede ser un buen momento para averiguarlo.
Una vez que haya establecido los bloques de construcción más "fundamentales" de su sistema, es hora de una lluvia de ideas creativa. Intente y describa todas las vías posibles a través de las cuales usted (o un atacante) podría acceder al sistema utilizando la descripción del sistema anterior como una especie de limitación.
Lo que deberá hacer a continuación es determinar qué controles de seguridad garantizarían la protección más adecuada. Sí, lo sé, aquí es donde las cosas se complican porque es un proceso algo subjetivo pero independientemente de lo necesario. Cada contramedida que determine que es necesaria se asociará con un determinado costo (tiempo de instalación, configuración, mantenimiento y eventualmente retiro).
También querrá intentar y describir con algún tipo de medida cuantitativa cómo "bien" una colección de contramedidas mitiga un riesgo particular, o "limita" una avenida de ataque. Creo que esto es importante, especialmente para la "alta gerencia", habla un lenguaje de números. Por ejemplo, una "buena" implementación de contraseñas con sal eliminará por completo la amenaza de las tablas hash precomputadas y, por lo tanto, podría describirse como una contramedida de "alta seguridad".
En resumen:
- Determine el objetivo / objetivo principal de seguridad (confidencialidad, integridad y disponibilidad)
- Establecer dependencias del sistema
- ¿Quién, cómo y cuándo?
- Detalle de los requisitos / limitaciones / restricciones legales y / o organizacionales
- Vectores de ataque de lluvia de ideas (supongo que podrías llamar a esto un análisis ligero de amenazas)
- Elija las contramedidas apropiadas para el sistema en cuestión
- Haz arco iris, gráficos coloridos y unicornios.