Header Ads

Ransomware para todos II

Mucho se ha escrito últimamente sobre el malware Ransomware. Para los que no conocen, no es más que un software (ware) que secuestra los archivos personales de tu equipo (o todo el disco duro), mediante cifrado (encriptado) y luego pide un rescate (ransom) por descifrarlos (desencriptarlos), por lo general en bitcoin para evitar ser rastreados.
En el post anterior Ransomware para todos, brindamos algunas sugerencias y aplicaciones para eliminarlos de nuestro terminal, sin embargo no es muy abundante la documentación para contrarrestar este tipo de malware a nivel de administración de redes locales.
Por eso si tiene un servidor GNU/Linux, aquí van algunos tips que te ayudarán en esta "eterna lucha contra el malware".
Nota: Para los amantes de Windows Server, recomendamos la lectura del post Cómo evitar que un ransomware cifre los archivos en Windows (I y II)
Bloqueo de extensiones ransomware en Squid
Si tenemos un proxy no-transparente, y derivamos todo el tráfico por squid-cache, podemos utilizar dos maneras de utilizar reglas para bloquear extensiones maliciosas: las MIME y URL_REGEX. Por ejemplo:
# extensiones restringidas
acl blackext url_regex -i "/etc/acl/blackext.txt"
acl blackmime rep_mime_type -i "/etc/acl/blackmime.txt"
http_access deny blackext
http_reply_access deny blackmime
En el caso anterior crearemos dos acls. Una para mime_type y otra url_regex, que, a modo de ejemplo, hemos llamado blackmime y blackext respectivamente. Estas ACLs puede encontrarlas en nuestro proyecto Gateproxy.
En la primera ponemos un contenido similar al siguiente ejemplo:
^application/exe$
^application/ogg$
En la segunda tendría un contenido similar a:
\.avi$
\.mp4$
Y de dónde sacamos las extensiones ransomware?
Consultando este spreadsheets, que es uno de los más completos y actualizados (no olviden agradecer a sus creadores). Incluso puede descargarlo en formato xls y ods y crear un script para extraer las extensiones. Una vez las tengamos, para el caso de mime_type, consultamos las fuentes IANA, Apache, GithubFreeformatter, etc, para colocar el que corresponda según la extensión a bloquear. Y si no existe (que es lo más probable), podemos usar el mime general para casos no asignados
^application/octet-stream$
Y para url_regex simplemente colocamos la extensión a bloquear. Por ejemplo:
\.0x0([a-zA-Z][0-9]*)?(\?.*)?$
\.1999([a-zA-Z][0-9]*)?(\?.*)?$
\.AES256([a-zA-Z][0-9]*)?(\?.*)?$
\.aaa([a-zA-Z][0-9]*)?(\?.*)?$
# etc, etc
El regex ([a-zA-Z][0-9]*)?(\?.*)?$ se le agrega a la extensión para no dejar por fuera las variantes y otras maneras de descargarlo (con el caracter ?). Por ejemplo, el ransomware cryptolocker tiene muchas extensiones (.crypt, .cryp1, .crypz, .crypto, .cryptotorlocker, .CryptoTorLocker2015!, etc). Podríamos utilizar:
\.cryp([a-zA-Z][0-9]*)?(\?.*)?$
Naturalmente, esta "protección" solo es válida para http, y a no ser que usemos SSLBump si el ransomware viene por https, es muy poco lo que podrá hacer squid, ya que no hace este tipo de filtrado en conexiones seguras. En este caso tendríamos que utilizar reglas de firewall iptables por string para poder bloquearlas. El proyecto Blackstring intenta cubrir esta área. Actualmente solo contenpla caso de anonimizadores, pero próximamente incluirá bloqueo de extensiones maliciosas.
En la próxima entrega profundizaremos en este tema.
Con la tecnología de Blogger.