Header Ads

Veto Files

Wannacry CCN-CERT alert
Con la reciente ola de ataques del ransomware Wannacry, que aprovecha la vulnerabilidad Microsoft Server Message Block 1.0 (SMBv1), muchos han tomado medidas, parcheando su sistema Windows, según las especificaciones Microsoft Security Bulletin MS17-010 - Critical, sin embargo, con el ataque contenido y una herramienta disponible para descifrar los archivos, los cibercriminales no tardaron en sacar la evolución natural de wannacry: ethernalrocks, mucho más sofisticada, ya que según el portal bleepingcomputer.com y blog.segu-info.com.ar "infecta al usuario mediante el uso de seis herramientas centradas en SMB expuestos en línea ETERNALBLUE, ETERNALCHAMPION, ETERNALROMANCE y ETERNALSYNERGY, que son exploits SMB utilizados para comprometer las computadoras vulnerables, mientras que SMBTOUCH y ARCHITOUCH son dos herramientas utilizadas para realizar reconocimiento de SMB expuestos  (Wannacry solo utiliza el exploit EternalBlue)"
EternalRocks exploit. Cortesía de bleepingcomputer.com
Hay muchas maneras de protegernos frente a estas amenazas. He aquí una breve lista de contramedidas (countermeasures), con sus factores condicionantes:
1. Parchear nuestros SO Windows: Es la mejor solución, pero muchas empresas tienen miles de terminales y el proceso de actualización puede tardar mucho tiempo, mientras tanto...
2. Protección contra virus: De acuerdo al último informe de WatchGuard Technologies (y otras firmas de seguridad lo confirman), el 30% del malware es `0-day´, indetectable por antivirus tradicionales, por tanto las soluciones antivirales eventualmente podrían garantizar combatir con relativa efectividad hasta un 70% de las amenazas.
3. Instalar un firewall: Los firewalls privados son costosos y las soluciones libres son difíciles de implementar para el usuario promedio. Podemos bloquear los puertos de difusión de WINS y NetBIOS sobre TCP/IP, cerrando los puertos 137-139 (TCP/UDP), y filtrar el 445 (TCP/UDP) pero tendríamos problemas con los recursos compartidos y algunas aplicaciones que dependen de estos puertos.
4. Copias de seguridad (local o en la nube): El ransomware puede cifrar cualquier cosa que el usuario infectado tenga acceso, usando los permisos de la cuenta que lo ejecuta, por tanto si cifra el contenido local en su equipo, muy probablemente esto ocurra en la nube.
5. Copias de seguridad (en dispositivos externos sin conexión permanente): Es una solución razonable, pero al no estar conectados permanentemente, en el caso de un cifrado masivo, el usuario podrá recuperar la última copia que realizó, por tanto todo depende de la voluntad y el tiempo disponible del usuario para hacer backups.
6. Copias de seguridad en recursos compartidos: Tal vez esta sea una mejor alternativa, pero si no están protegidos, pueden convertirse en un vector de propagación por toda la red local.
Desactivando SMB v1
La alternativa más económica y fácil de implementar en una red local la compartición de recursos es el servidor Samba, y afortunadamente la mayoría de los servidores en el mundo están sobre linux, lo cual reduce mucho las posibilidades de diseminación del ransomware, y otras modalidades de malware. Además, estos recursos no solo sirven para compartir archivos; también puede ser usados para realizar backups, sin embargo hay que tomar algunas medidas para su protección.
La propagación de los ransomwares mencionados se basa en la vulnerabilidad del protocolo SMBv1, el cual puede ser desactivado fácilmente en Windows (o actualizando nuestro sistema operativo, que es lo más recomendable). Y a pesar de que este problema no se presenta en Linux (al menos por el momento) US-Cert nos recomienda deshabilitarlo. Esto se logra modificando smb.conf en la plantilla [Global], y agregando las siguientes reglas, estableciendo como mínimo el uso de SMBv2:
client min protocol = SMB2
server min protocol = SMB2
Sin embargo esta implementación, al no contar con extensiones POSIX/Unix, trae como consecuencia que los clientes Linux y Android eventualmente no puedan acceder a los recursos compartidos. Y si tenemos en cuenta que las redes locales actuales son híbridas y muchos están migrando a Linux para escapar de estos ataques y, además, nadie garantiza que en un futuro no lejano, surjan nuevas vulnerabilidades relacionadas con SMB, que afecten a la v2 o superiores, entonces la regla anterior es inservible.
Pero nos queda un as debajo de la manga. Samba tiene otra solución, un poco más complicada pero bastante efectiva, y es la regla veto files.
Esta regla consiste en poner una prohibición (veto) sobre las extensiones o archivos que no pueden almacenarse en el recurso compartido (por ejemplo un mp3), entonces si un cliente conectado intenta guardar una archivo mp3 en la carpeta compartida, Samba lo bloquea, impidiendo su escritura. Ejemplo:
[share]
 comment = public-share
 browseable = yes
 guest ok = yes
 public = yes
 read only = no
 printable = no
 valid users = nobody
 writeable = yes
 available = yes
 create mask = 0777
 directory mask = 0777
 path = /home/user/share
 veto files = /*.3gp/*.avi/*.mkv/*.mp3/*.mp4/*.mpeg/*.mpg/*.rmvb/*.wma/*.wmv/
 delete veto files = yes
Este comportamiento aplica también para cualquier otro tipo de archivos de la regla "veto", incluyendo las extensiones creadas por los ransomwares y otros malwares. Entonces simplemente le agregamos a nuestra regla "veto files", todas las extensiones de archivos relacionadas con el malware y así impediremos su propagación por los recursos compartidos.
A continuación un ejemplo de su implementación en smb.conf:
[share]
 comment = public-share
 browseable = yes
 guest ok = yes
 public = yes
 read only = no
 printable = no
 valid users = nobody
 writeable = yes
 available = yes
 create mask = 0777
 directory mask = 0777
 path = /home/user/share
 veto files = /*Security*/*.tmp/*root*/._*/.DS_Store/*.bat/*.bin/*.info/*.css/*.dll/*.bin/*.chm/*.cmd/*.com/*.db/*.drv/*.dll/*.dem/*.exe/*.FAT/*.htm*/*.hta/*.ico/*.inf*/*.ini*/*.js*/*.lnk/*.msi/*.pif/*.py*/*.reg/*.shb/*.shs/*.sys/*.tmp/*.vb*/~*.*/__--*/--_*/*-_*/*.0x0*/*.1999*/*.1cbu1/*.1txt/*.2ed2/*.31392E30362E32303136_[ID-KEY]_LSBJ1/*.73i87A*/*.777*/*.7h9r*/*.7zipper/*.8c7f/*.8lock8/*.a19/*.a5zfn/*.aaa*/*.abc*/*ABCXYZ11/*.adk/*.adr/*.AES*/*.AFD*/*.aga*/*._AiraCropEncrypted/*.__AiraCropEncrypted!/*.alcatraz/AllFilesAreLocked*.bmp/*.amba/*.AMC*/*.angelamerkel/*.AngleWare/*.antihacker*/*.ap19/ASSISTANCE_IN_RECOVERY.txt/ATTENTION!!!.txt/*.axx*/*.AZG*/*.B6E1/*.BarRax/*.bart*/*.bytrcypt/*.bcin/*.better_call_saul*/*.bitstak/*.bleep*/*.bloc*/*.braincrypt/*.breaking_bad/*.bript/*.btc*/*.BZE*/*.cancer/*.canihelpyou/*.cbf*/*.ccc*/*.CCCRRRPPP/*.cerber*/*.checkdiskenced/*chifrator@qq_com*/*.CHIP/*.conficker/*.cifgksaffsfyghd/*.clf*/*.code*/*Coin.Locker.txt*/*.comrade/*confirmation.key*/*.coverton*/*cpyt*/*.crashed/*.crime*/*.crinf*/*.crip*/*.crjoker*/*.crptrgr/*.CRRRT/*.*cry*/*.*Cry*/*.*CRY*/*cryptolocker.*/*.CrySiS*/*_cry* /*.ctb*/*.CTB*/*.czvxce*/*.d4nk/*.dale/*.damage/*.*darkness*/*.darkness*/*.da_vinci_code*/*.dCrypt/*.decipher*/*decipher*/Decrypt*/*DECRYPT*.*/DECRYPT_*.*/*.decrypt2017/*DecryptAllFiles.txt*/*decrypt_instruct.*/*.ded/*.deria/*.dharma/*.disappeared/*.DJ/*djqfu.*/*.domino/*.doomed/*.dxxd/*.dyatel@qq_com/*dyatel@qq_com*/*.ecc*/*.edgel/*.EE/*.*enc*/*enc_files.txt*/*.EnCiPhErEd*/*.encmywork/*.encoderpass/*.ENCR/*.encrypt*/*.EnCrYpT*/*encryptor_raas_readme_liesmich.txt*/*.enigma*/*.epic/*.evillock/*.exotic/*.*exx*/*.ezz*/*.F9E8n*/*.fantom/*.fear/*.FenixIloveyou!!/*.file0locked/*.filegofprencrp/*.fileiscryptedhard*/*FILESAREGONE.TXT*/*.filock/*.firecrypt/*.flyper/*.frtrss*/*.fs0ciety/*.fuck*/*.Fuck*/*.fun*/*.gefickt/*.gembok/*.gen/*.globe/*@gmail_com_*/*.goforhelp/*.good*/*.gruzin@qq_com/*gruzin@qq_com*/*.GSupport*/*.gws*/*.GWS/*.h3ll*/*.ha3*/*.HA3/*.hairullah@inbox.lv/*.hakunamatata/*.hannah/*.happyday*/*.hb15*/*HELLOTHERE.TXT*/*.helpdecrypt*/*help_decrypt.*/*helpdecrypt.*/*Help_Decrypt.*/HELP_DECRYPT*/*helpdecrypt@ukr.net*/*.helpmeencedfiles/*help_recover*.*/*_H_e_l_p_RECOVER_INSTRUCTIONS*/*help_restore*.*/HELP_RESTORE_FILES.txt/*HELP_TO_DECRYPT_YOUR_FILES.*/*HELP_TO_SAVE_FILES.*/*help_your_file*.*/*.herbst/*.hnumkhotep/*.howcanihelpusir/*how_decrypt.*/How_Decrypt*/HowDecrypt.*/*how_recover*.*/*howrecover*.*/*how%sto%sdecrypt.*/*how_to_decrypt.*/*howtodecrypt.*/howtodecryptaesfiles.lnk/*HOW_TO_DECRYPT_FILES.*/*how_to_recover*.*/*howto_recover_file.*/*How_To_Recover_Files.*/*howto_restore*.*/*Howto_Restore*.*/*HowtoRESTORE*.*/*.hush/*.hydracrypt*/*IAMREADYTOPAY.*/*.iaufkakfhsaraf/*.ifuckedyou/*IHAVEYOURSECRET.KEY*/*.iloveworld/IndexerVolumeGuid*/*@india.com*/*.infected*/*install_tor.*/*install_tor*.*/*INSTRUCCIONES_DESCIFRADO.*/*instructions_xxxx.*/*.isis/*.iwanthelpuuu/*.JUST/*.justbtcwillhelpyou*/*.karma/*.*kb15*/*keemail.me*/*.kencf/*.kernel*/*keybtc@inbox_com*/*.KEYH0LES*/*.KEYZ*/*.KGT*/*.killedXXX/*.kimcilware*/*.kirked/*.kkk*/*.KKK*/*.KLS*/*.KMF*/*.KMS*/*.KMY*/*.korrektor*/*.kostya/*.kr3/*.*kraken*/*.kratos/*.KV/*.kyra/*.kzlrp/*.L0cked/*.L0CKED/*.lambda_l0cked/*_LAST/*last_chance.*/*.lechiffre*/*.LeChiffre*/*.legion/*.lesli/*.letmetrydecfiles/*.*lock*/*.*Lock*/*_Locky_recover_instructions.txt*/*.lol*/*.LOL*/*.lovewindows/*.madebyadam/*.magic*/*.maktub/*.MDW/*.merry/*message.txt*/*MESSAGE.txt*/*.micro*/*.MKJL*/*.MRCR1/*.msk/*.mxc/*.nalog@qq_com/*.neitrino*/*.nemo-hacks.at.sigaint.org/*.nil/*.*nochance*/*.nolvalid/*.no_more_ransom/*.noproblemwedecfiles/*.notfoundrans/*.nuclear55/*_nullbyte/*.NUS/*.obleep*/*.odcodc*/*.odin/*.omg*/*.OMG*/*.onion/*.only-we_can-help_you*/*.oops/*oor.*/oor*.*/*.openforyou@india.com/*oplata@qq_com*/*.oshit*/*.osiris/*.otherinformation/*.OXI/*.p5tkjw*/*.padcrypt/*.paybtcs*/*.paym*/*.payr*/*.pays*/*.payt*/*.pdcr/*.PEGS1/*.perl/*pizda@qq_com*/*.PLAUGE17*/*.PoAr2w*/*.porno*/*.potato/*.powerfulldecrypt/*.powned/*.pr0tect/*.protected*/*.purge/*.pzdc/*.PzZs*/*.qbl/*qq_com*/*.r16m/*.r16M/*.R16M01D05/*.r4a/*.R4A/*.r5a/*.R5A/*.RAD*/*.raid10/*.RARE1/*.razy/*.RC/*.rdm*/*.RDM/*.rdmk/*ReadDecryptFilesHere.txt*/*readme_decrypt.*/*readme_for_decrypt.*/*._read_thi$_file*/*_READ_THIS_FILE_*/*READTHISNOW*.TXT*/*.realfs0ciety@sigaint.org.fs0ciety/*recoverfile*.txt*/*recover_instruction*.*/*recovery+.*/*recovery_file.txt*/*recoveryfile.txt*/*RECOVERY_FILE*.txt*/*recovery_key.txt*/RECOVERY_KEY.TXT/*.rekt/*relock@qq_com*/*.remind*/*restore_fi*.*/*restore_files_rvrk.html*/*restorefile*.txt*/*.rip/*.R.i.P/*.RMCM1/*.rmd/*.rnsmwr/*.rokku*/*.RP/*.RPD/*.rrk*/*.RSNSlocked /*.RSplited*/_ryp/*_ryp.nalog@qq_com*/*.sage/*.salsa222/*.sanction*/*.scl*/*.scr/*.sct/*_secret_code.txt*/*SECRET*.KEY*/*.SecureCrypted/*.serpent/*.sexy/*.shino/*.shit/*.sifreli/*.Silent*/*.sport*/*.stn/*.supercrypt*/*.surprise*/*.SYN/SystemVolumeInformation/*.szf/*.TheTrumpLockerf/*.TheTrumpLockerfp/*.theworldisyours/*.thor/*.Tok*/*.toxcrypt*/*troyancoder@qq_com*/*.trun*/*.ttt*/*.tzu*/*.uk-dealer@sigaint.org/*ukr.net*/*.unavailable/*.unlockvt@india.com/*.UX/*.vault*/*vault.*/*.vbransom/*.vekanhelpu/*.velikasrbija/*.venusf/*.Venusp/*.versiegelt/*.VforVendetta/*.vhv*/*.vindows/*.vir*/*.vscrypt*/*.vvv*/*.vxLock/*.vxn*/*.wallet/*want%syour%sfiles%sback.*/*wantyourfilesback.*/*.wcry/*.WNCRY/*.wncry/*.wncryt/*.wnry/*.weareyourfriends/*.weencedufiles/*.wflx/*.Whereisyourfiles/*.Where_my_files.txt/*.windows10/*.wnx/*.wowreadfordecryp/*.wowwhereismyfiles/*.WPI*/*.WsF*/*.wuciwug/*.xcri/*.xka/X.mpeg*/*.xort*/*.___xratteamLucked/*.xrnt*/*.xrtn*/*.xspf*/*.xtbl*/*.xxc*/*.xxx*/*.xyz*/*.yaq*/*.ya.ru/*.YE*/*YOUR_FILES.*/*.yourransom/*.Z81928819*/*.zc3791/*.zcrypt*/*.zendr4/*.zepto/*.zorro/*.zXz/*.zyklon*/*.zzz*/
  delete veto files = yes
Para mantener actualizada nuestra lista de extensiones en "veto files", podemos descargarlas en los siguientes enlaces:
Github kinomakino
Nixbone List
Desafortunadamente Samba no maneja ACLs, para que pueda "leer" un archivo que contenga dichas extensiones maliciosas y poder automatizar su actualización, o sea, hay que escribirlas manualmente en el smb.conf, lo cual es algo tedioso, pero podemos simplificarlo creando un bash que descargue las listas, las compile, depure y finalmente escriba las extensiones en el archivo smb.conf con el formato de "veto_files".

Imagen cortesía de Securelist
Con la tecnología de Blogger.