Comprobar la integridad de un fichero consiste en averiguar si
algún dato del archivo ha variado desde su creación. El archivo puede haber
sido modificado por error, por cortes en la comunicación o, en el peor de los
casos, porque un atacante haya inyectado código malicioso.
En entornos de código abierto es posible contrastar y compilar el
código fuente del programa, revisándolo para comprobar que no contiene código
no deseado. De esta forma se puede garantizar que el software no ocasionará
ningún daño, aunque por el volumen de algunos programas (y por tanto de su
código fuente), no es un proceso práctico en la realidad.
Aun así, lo habitual, tanto para Windows como para Linux es descargar programas
ya compilados en binario de los que no se dispone del código fuente. Es posible
analizarlos, descompilarlos, desemsamblarlos, estudiarlos en entornos de
prueba, etc, pero resulta ineficiente y complejo conocer qué hace realmente un
programa sin disponer del código fuente. Además implica muchos conocimientos
relativos al análisis de comportamiento.
Cuando un desarrollador hace público un programa, suele
almacenarlo en un servidor para que sea descargado. Este servidor no siempre
está bajo el control del autor del programa o es administrado por la misma
persona que ha realizado la herramienta, por tanto, puede ser vulnerable a
ataques.Incluso si el programador aloja el software en un servidor administrado
por él, es posible que pueda ser comprometido sin su conocimiento y otro
atacante tenga la posibilidad de modificar o sustituir el programa que pone a
disposición de todos los usuarios.
Esta situación en la que un atacante se hace con un servidor FTP o web y tiene
la posibilidad de modificar un programa que más tarde será descargado por
otros, es lo que se conoce como una troyanización, y puede suponer un riesgo a
nivel global si ocurre sobre aplicaciones populares. Este tipo de ataque se ha
dado en muchas ocasiones. Sin las herramientas y precauciones adecuadas, nada
garantiza que un programa esté libre de malware, ni siquiera el hecho de
descargarlo de una página oficial del fabricante.
Comprobación en el md5sum
Una vez finalizada la descarga de la imagen del LiveCD, pero antes
de grabar la distribución en un CD hay que asegurarse de conseguir el .md5sum
de la misma fuente y comprobar el md5sum del fichero .iso con el contenido en
el fichero. El objetivo es prevenir que la imagen que se va a grabar en el CD
contenga errores producidos durante la descarga. Si el md5sum no
coincide, se tendrá que volver a descargar el fichero iso.
Md5sum: Windows
Md5sum: Linux
Md5sum: Mac
Comprobar la
integridad del CD
Comprobación de integridad de sistema de archivos ZFS
Reparación de sistema
de archivos
Validación de sistema
de archivos
Los
usuarios de Windows pueden utilizar una herramienta llamada md5summer:
1.
Descargar
el fichero exe autodescomprimible. La ejecución del fichero descomprimira 2
ficheros en el directorio actual: md5summer.exe y md5summer.md5
2.
Ejecutar
md5summer.exe, responder "yes" a asociar la extensión "md5"
con el programa md5summer
3.
Ahora
se puede hace doble click en el fichero .md5 y el programa comprobará la suma
md5 automáticamente o desde md5summer se puede seleccionar como "root
folder" la carpeta donde se descargaron los ficheros .iso y .md5 y
seleccionar entonces "verify sums" y seleccionar el fichero .md5 que
se quiere comprobar.
Los
usuarios de Linux tienen que abrir un terminal e ir al directorio donde se
encuentran los ficheros iso y md5sum. Los commandos a ejecutar son los
siguientes
·
md5sum
-c nombrefichero.md5sum
Sustituyendo nombrefichero con
el nombre de fichero que corresponda
Los
usuarios de Mac tienen que abrir un terminal e ir al directorio donde se
encuentran los ficheros iso y md5sum. Los commandos a ejecutar son los
siguientes
·
md5
-c 'nombrefichero.md5sum
Sustituyendo nombrefichero con
el nombre de fichero que corresponda
·
Tras
grabar el CD se también se puede comprobar la integridad del CD.
En
ZFS no hay una utilidad fsck equivalente.
Esta utilidad se ha venido utilizando con dos fines: para reparaciones de
sistema de archivos y para validaciones de dichos sistemas.
En
los sistemas de archivos tradicionales, el método de escritura de datos es
intrínsecamente vulnerable a errores imprevistos que generan incoherencias en
el sistema. Debido a que un sistema de archivos tradicional no es
transaccional, puede haber bloques sin referenciar, recuentos de vínculos
erróneos u otras estructuras de sistema de archivos no coherentes. La adición
de diarios soluciona algunos de estos problemas, pero puede presentar otros
problemas si el registro no se puede invertir. La existencia de datos
incoherentes en el disco de una configuración ZFS sólo puede ser debida a un
error de hardware·(en cuyo caso, la agrupación debería haber sido redundante) o
porque hay un error en el software de ZFS.
La
utilidad fsck soluciona
problemas conocidos específicos de sistemas de archivos UFS. Casi todos los
problemas de agrupación de almacenamiento ZFS suelen estar relacionados con
errores de hardware o fallos de alimentación. Muchos se pueden evitar
utilizando agrupaciones redundantes. Si una agrupación se ha dañado por un
error de hardware o un fallo de alimentación, consulte Reparación de daños en las agrupaciones de almacenamiento de
ZFS.
Si
la agrupación no es redundante, siempre existe el riesgo de que los daños en el
sistema de archivos lleguen a hacer que parte o todos los datos queden
inaccesibles.
Aparte
de reparar sistemas de archivos, la utilidad fsck comprueba
que los datos en disco no tengan problemas. El procedimiento habitual para esta
tarea consiste en desmontar el sistema de archivos y ejecutar la utilidad fsck,
seguramente con el sistema en modo monousuario durante el proceso. Esta
situación da como resultado un tiempo de inactividad proporcional al tamaño del
sistema de archivos que se comprueba. En lugar de hacer que una determinada
utilidad realice la comprobación pertinente, ZFS brinda un mecanismo para
ejecutar una comprobación rutinaria de todas las incoherencias. Esta función,
denominada limpieza, se
suele utilizar en la memoria y en otros sistemas como método para detectar y
evitar errores antes de que deriven en errores de hardware o software.


No hay comentarios:
Publicar un comentario