Vídeo: ¿Malware, virus, spyware, troyano, gusano, adware, scareware? (De novembre 2024)
Signatura digital no trencada
L'únic punt de signar digitalment un document o fitxer és demostrar que el fitxer no s'ha modificat. El procés utilitza una forma de criptografia de clau pública. Podeu signar digitalment un fitxer xifrant-lo amb la vostra clau privada. El fet que el fitxer xifrat es pugui desxifrar amb la vostra clau pública és la prova que no hi ha hagut cap manipulació. Si BlueBox hagués trobat una manera de modificar realment un fitxer sense canviar la seva signatura digital, això hauria estat un cop impressionant per a tota la indústria de cripto. Però no ho van fer.
BlueBox comunicarà els detalls de la seva investigació en la conferència de Black Hat en unes setmanes. Tanmateix, l'investigador de ViaForensics Pau Oliva Fora ha publicat proves de codi conceptual que il·lustra l'enfocament adoptat.
En veritat, és molt, molt senzill. Els fitxers APK s'empaqueten amb una versió de l'algorisme generalitzat d'arxivització ZIP. La majoria de les implementacions ZIP no permetran dos fitxers amb el mateix nom en un sol arxiu, però l'algorisme no prohibeix aquesta possibilitat. Quan comproveu la signatura digital d’una aplicació, el sistema operatiu d’Android mira el primer fitxer que coincideix, però quan realment s’executa i es llança el fitxer, agafa l’ últim . Aleshores, el que necessiteu és trojanitzar una aplicació amb el qual podeu fer servir el vostre codi maliciós mitjançant un nom que ja existeix a l'aplicació. La demostració de Fora és només unes dotzenes de línies de codi Java.
Un altre atac estructural
Un investigador xinès que va publicar blogs com Android Security Squad va trobar la demostració intrigant i va buscar altres maneres de subvertir el procés de verificació. Llegir la publicació traduïda per Google és una mica difícil, però sembla que l’atac es basa en un concepte de nivell informàtic 101.
Els programes informàtics emmagatzemen el número de comptes en col·leccions de bits de mida fixa. Per exemple, amb vuit bits podeu representar nombres de 0 a 255. Si és necessari representar nombres negatius, la convenció de llarga durada és que el bit més esquerre deixa un nombre negatiu. Aleshores, amb vuit bits, també podeu representar els números de -128 a 127. El número binari 11111111 representa 255 o -1, segons si es pretén com a número sense signar o signat.
Android Security Squad es va fixar pel format de la capçalera del fitxer APK i es va trobar un camp de dades que se suposa que és un desplaçament positiu, però que es guarda com un nombre enter signat. Forçar aquest camp a un valor negatiu específic fa que el carregador APK executi el codi maliciós en lloc del codi signat digitalment ja verificat. D'acord, és una mica més complex, però això és aproximadament com funciona.
Stick amb Google Play
Cap dels dos hacks subverteix el mecanisme de signatura digital d'Android. Més aviat, tots dos aprofiten els estafadors de l'estructura APK per fer que la signatura digital sigui irrellevant. A més, cap de les dues permetrà que una aplicació trojanitzada es pugui colar anàlisis de Google. Google ha actualitzat específicament Google Play per filtrar les aplicacions trojanitzades mitjançant l'atac "clau mestra"; fins i tot sense aquest pas, la seguretat estàndard gairebé bloquejaria qualsevol tipus d’aplicació trojanitzada.
La lliçó és clara. Obteniu sempre les aplicacions de fonts legítimes, comproveu sempre que el nom del desenvolupador sigui vàlid i configureu el telèfon perquè no permeti instal·lar aplicacions de "fonts desconegudes". Fixeu-vos en els permisos que demana una aplicació i estigueu llestos per avortar una instal·lació d'aspecte sospitós. Si el vostre operador ofereix una actualització d'Android, instal·leu-la sempre. És simplement el sentit comú!