Tengo en MySQL creado dos cuentas, una Root y la otra Prueba de bajo provilegio. Para comprobar que no me entren o quebrante MySQL quiero saber todas las posibilidades de que existe para ser quebrantado.
Por ahora me centro en windows mientras en el futuro meteré con Linux (openSUSE o Ubuntu).
Puedes poner información abajo de lo que le podría pasar a MySQL, es decir, ¿qué ocurre si me hacen algo a MySQL? Por ejemplo, acceder a root, robar datos de MySQL, etc.
Quiero ver gente para aprender que sean capaces de quebrantar MySQL, todas las maneras posibles para saber como acceder a root o modificar datos en él. También MySQL se conecta con Visual C# que he hecho.
Quiero saber todo de seguridad y protecciones para evitar que me saboteen, porque estoy haciendo un proyecto sobre control del puerto serie con un PIC controlado desde Internet. Una vez que quebranten MySQL, ya puedes controlar el puerto serie desde tu casa y podrás hacer:
- Endencerme la luz y aphagarla de las habitaciones. - Activar regadío automático del jardín. - Saber la temperatura de la casa. - Activar, ver y mover con un motor PAP una WebCam para ver la casa del interior y otras cámras del exterior hacia el jardín. - Activar o desactivar los ventiladores. - Activar el micrófono. -Etc, etc, etc y nada más que etc...
Por ahora directamente controlo ya el puerto serie.
Que wuapo te ha quedado todo tio, pero es public o private lo que comentas? , tiene un front-end / back-end la aplicacion ? entras remote? details please.
-- phpMyAdmin SQL Dump -- version 3.2.0.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: 31-08-2009 a las 00:10:03 -- Versión del servidor: 5.1.37 -- Versión de PHP: 5.2.10
-- -- (Evento) desencadenante `dispositivos` -- DROPTRIGGERIFEXISTS`pic_remoto`.`logestado`; DELIMITER // CREATETRIGGER`pic_remoto`.`logestado` AFTER UPDATEON`pic_remoto`.`dispositivos` FOR EACH ROWBEGIN
Mmm habra que "endurezer" esos files PHP para evitar explotaciones remotas
+SQLi, SQL Injection +XSS. Cross Site Scripting +BoF, Buffer Overflows +LFI, Local File Inclusion +RFI , Remote File Inclusion +Parsear algunas cosas dentro del code PHP para evitar chars no permitidos.
deberías configurar tu firewall para que MySQL acepte solamente conexiones loopback (es decir, que se originan y tienen como destino tu PC), con eso sacás el tema de que esté expuesto ...
después, del lado Php tendrías que tocar un poco el php.ini, desactivar (y activar, en el caso del safe mode, teniendo el server corriendo con otro usuario, que esté desprivilegiado) y endurecer las opciones actuales ... esto también vendría bien que lo mejores a nivel script (que verifiques lo que el usuario ingresa)
yo si tuviese esto en linux, correría el site haciendo que se ingrese en un archivo aparte o en el mismo MySQL las incidencias de seguridad y al cabo de 3, lanzar una regla en el iptables baneando a esa dirección por X tiempo (ya teniendo un programa externo que se encargue de esto) y, claro está que al cabo de X incidencias por segundo tomar tal otra acción (esto ya es otro tema igualmente, el brujo posteó igualmente sobre como evitar DDoS)...
eso lo pondría como base, después, como dijo Berz3k : los BoF (el resto está contemplado en 'verificar lo que el usuario ingresa'), verificá que versiones tengas de PHP y Apache y asegurate de ser bastante restrictivo con lo que se recibe, no más de lo que necesites =P
Saludos ~
P.S : no es LA seguridad, pero, es una buena base de la que partir ;P
« Última modificación: 5 Septiembre 2009, 05:12 por Vertex.Symphony »
@Meta Algo que podras hacer rapido y eficiente contra ataques antes posteados, recuerda que si dichas funciones son necesarias en el codigo, con los settings del PHP.INI podras potregerte un poco mas, a grandes rasgoz son las funciones con mas problemas de explotacion.
si PHP esta accediendo al MySQL desde la misma PC, yo diria que limites el la conexión a la BD solo al equipo local. y obviamente un firewall para evitar shell remotas, de ahí para alla tu front end sería lo único que habría que perfeccionar para evitar cualquier tipo listo.