Asegurar una secuencia de comandos para evitar la exposición de la base de datos

3

Tenemos un script codificado Ioncube que se ejecuta en un servidor web Apache que almacena información confidencial del cliente en una base de datos MySQL. Hemos configurado el script para que se ejecute bajo su propia cuenta utilizando suphp. Como es habitual, el script lee las credenciales de la base de datos de un archivo 'config.php'. Nos gustaría mitigar el riesgo de que el contenido de la base de datos se exponga a través de un exploit de día cero. El sistema operativo del servidor web, Apache y MySQL se han fortalecido. ¿Hay algo que podamos hacer para bloquear este script aún más? Por ejemplo, si alguien explotó el script, asumo que terminaría con los mismos privilegios que la cuenta suphp con la que se ejecuta el script: ¿Intentarían mysqldump la base de datos? ¿Deberíamos restringir el acceso a todos los binarios de mysql?

    
pregunta Michelle 30.05.2012 - 01:01
fuente

2 respuestas

2

No mencionó los inyección de MYSQL en su lista de precauciones. También podría reducir los permisos del usuario mysql para la base de datos. Por lo general, los usuarios le otorgan todos los derechos, pero puede restringir la capacidad del usuario de mysql para ALTERAR, CREAR, CREAR RUTINA, CREAR TABLAS TEMPORALES, CREAR VISTA, BORRAR, DESACTIVAR, EJECUTAR, INDICAR, INSERTAR, BLOQUEAR TABLAS, REFERENCIAS, SELECCIONAR, VER VIEW , GATILLO, y ACTUALIZACIÓN. Solo dé el permiso de usuario de mysql que se necesita para ejecutar su script.

    
respondido por el Rincewind42 30.05.2012 - 10:21
fuente
0

Un enfoque de defensa en profundidad es planificar el fracaso y limitar los privilegios que otorga a su aplicación y a su administradores

Dicho esto, las secuencias de comandos protegidas de Ioncube son una broma, todo ofuscación de código es muy fácil de socavar en PHP mediante el uso de runkit . Si confías en esto como un medio para proteger algún tipo de contraseña, entonces tienes un problema muy serio en tus manos. No se requiere un día de 0 días porque no está haciendo nada para proteger sus secretos.

Esto me recuerda mucho a hack de Super Meat Boy MySQL , el desarrollador tenía una aplicación de escritorio que se conectaba directamente a un servidor mysql. No hace falta decir el desarrollador fue hackeado hasta las lágrimas .

Ninguna cantidad de criptografía puede resolver este problema. Nunca es aceptable permitir que un atacante se conecte a su base de datos. Debe implementar una API que limite el acceso al cliente.

    
respondido por el rook 30.05.2012 - 02:49
fuente

Lea otras preguntas en las etiquetas