El Muro de la Vergüenza
Antes que nada, disculpas a todos por no haber actualizado mi blog la última semana con la entrada sobre Arduino y la Raspberry PI. Como se imaginarán la última semana del año siempre es algo movida, sin embargo espero abrir el 2013 con la nueva entrada aprovechando que tengo algunos días libres del trabajo.
Para cerrar el año, es traigo un pequeño "Muro de la Verguenza". Desde que dejé la Raspberry PI en línea (hace 7 días) con el puerto SSH abierto he tenido numerosos intentos de acceso no autorizados vía SSH.
Realmente la RasPI no tiene nada interesante, sin embargo para un SPAMMER una máquina con acceso a Internet siempre es algo valioso. Ahora, es muy difícil que accedan a la RasPI si no es con un Exploit 0-Day ya que los logins de usuario/password están desactivados, sin embargo es divertido verlos intentar. Por eso les dejo "El Muro de La Vergüenza" en la siguiente dirección:
La lista de accesos fallidos se "pre-procesa" por medio de comandos de consola antes de pasar al script PHP por medio de este comando:
$ /bin/cat /var/log/auth.log* \ | /bin/grep "Invalid user" \ | /usr/bin/sort -r
Encontraran la lista de usuarios utilizados con su IP junto con la estadística de accesos fallidos. Le he llamado el Muro de la Vergüenza porque primero es una vergüenza que estén intentando acceder a una humilde Raspberry PI y segundo porque es una vergüenza que sigan intentando hacer un ataque de fuerza bruta sabiendo que los logins de user/pass están deshabilitados.
Si estan interesados en el código de la página pueden descargarlo aquí. Solo recuerden ejecutar el siguiente comando para que el log pueda ser leído por el script PHP:
+Modificado 31/12/12: El sueño me hizo ayer una mala jugada y había puesto en el link la IP interna de la RasPI, ya he corregido el link. :)
+Agregado 31/12/12: Para los que esten interesados he incluido el script en PHP que lee los logs y calcula el número de intentos de acceso fallidos.
Si estan interesados en el código de la página pueden descargarlo aquí. Solo recuerden ejecutar el siguiente comando para que el log pueda ser leído por el script PHP:
$ sudo chmod o+r /var/log/auth.log*
+Modificado 31/12/12: El sueño me hizo ayer una mala jugada y había puesto en el link la IP interna de la RasPI, ya he corregido el link. :)
+Agregado 31/12/12: Para los que esten interesados he incluido el script en PHP que lee los logs y calcula el número de intentos de acceso fallidos.
Comentarios
¿El atacante sabe que es un RPi?
Prueba ampliando la búsqueda a:
cat /var/log/auth.log | grep 'invalid user\|Failed'
Puede que te lleves alguna sorpresa como he hecho yo.
http://cuadernodelviaje.blogspot.com.es/2013/01/protegiendo-un-poco-nuestra-raspberry.html
Efectivamente, hay otros intentos de acceso, pero realmente me interesaban mas los intentos de ataque por "fuerza bruta" porque son los más simples y usualmente son ejecutados por spambots o similares.
Lo interesante de la lista es que te da una idea de los usuarios que utilizan los spammers para intentar atacar sistemas con servicio SSH.
Lástimosamente no le di continuidad a esta entrada, valdría la pena que hiciera una como la tuya donde explique cómo está asegurada la RasPI.
En mi caso los "logins" con password están deshabilitados. Para asegurar la terminal utilizo una llave asimétrica. Tengo una copia cifrada de la llave en mi laptop y una copia más en mi smartphone. Crear la llave es un proceso que requiere solo de un par de comandos y copiar la llave privada a un lugar seguro. Luego cada vez que te conectas te pregunta la "frase clave" y listo no es más difícil que usar un password de toda la vida y es un poco más seguro porque para acceder a la RasPI solo podrías hacerlo sí:
1-Existiera algún exploit del tipo 0-day que permitiera el acceso remoto sin tener ni el password ni la llave privada (algo que todos nos daríamos cuenta por las implicaciones de ello).
2-Tuvieras acceso físico a mi laptop y/o a mi smartphone.
3-Conocieras la frase clave con que está cifrada la llave privada.
4-Utilizar la opción fácil propuesta por XKCD.