Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Almacenamiento Persistente
Almacenamiento Persistente
CAUSAS
Muchos sistemas operativos, administradores de archivos y otros programas
proveen facilidades que hacen que el archivo no sea inmediatamente eliminado cuando
el usuario solicita esa acción. En su lugar, el archivo es trasladado a un área de retención
que permite al usuario fácilmente revertir la acción si ha cometido un error.
Incluso cuando no se proporciona un área de retención de archivos eliminados
explícita, o cuando el usuario no la usa, los equipos normales realmente no quitan el
contenido de un archivo cuando se lo intenta eliminar. En lugar de eso, simplemente
eliminan la entrada del archivo del índice del sistema de archivos porque esto requiere
menos trabajo y por lo tanto es una solución más rápida. Los contenidos del archivo –
los verdaderos datos – permanecen en el medio de almacenamiento. Los datos
permanecerán allí hasta que el sistema operativo reutilice el espacio para nuevos datos.
En algunos sistemas, suficientes metadatos del sistema de archivos son conservados
para facilitar la recuperación de los datos por programas utilitarios fácilmente disponibles.
Aun cuando la recuperación se ha tornado imposible, los datos, hasta que sean
sobrescritos, pueden ser leídos por programas que leen los sectores del disco
directamente. Los forenses informáticos a menudo emplean dichos programas.
Del mismo modo, el reformateo, el reparticionamiento o la imagen recreada de un
sistema no siempre garantiza escribir sobre todas las áreas del disco aunque todos harán
que el disco parezca vacío ó, en el caso de la imagen recreada, vacío a excepción de los
archivos presentes en la imagen, al ser examinados con la mayoría de los programas.
TIPOS DE PERSISTENCIA DE DATOS
Se consideran varios tipos de persistencia:
PERSISTENCIA EN MEMORIA
La persistencia en memoria es la capacidad de un dato u objeto para seguir
existiendo tras determinadas operaciones.
La operación más común que se presta a la persistencia en memoria es
la asignación. Existen dos ideas respecto de lo que debe suceder con un dato, estructura
u objeto una vez asignado desde el original.
En unos casos lo que se desea es que haya dos referencias a los mismos datos.
Es decir: un mismo dato tiene dos punteros desde los que es posible acceder a ellos. Un
tipo de dato que utiliza este método se dice que tiene persistencia si cuando se elimina
uno de los punteros, los datos siguen aún en memoria. En este caso el tipo de datos
utiliza un contador de referencias, de modo que cada vez que se crea una referencia se
aumenta la cuenta en uno (+1) y cuando se elimina una referencia se disminuye el
contador en uno (-1). El tipo de datos, por tanto, sólo es realmente eliminado cuando la
cuenta del contador llega a cero (0); es decir, cuando no tiene referencias apuntando a
los datos.
Ejemplo: se crea un objeto de tipo colección ( Collection ) y se le asignan dos datos; luego
se crea otro objeto al que se le asigna la colección previa.
Dim x As Collection
Dim y As Collection
Dim dia As String
x.Add ("domingo")
x.Add ("jueves")
Set y = x
dia = y.Item(1)
MsgBox dia
y.Add ("sábado")
dia = x.Item(3)
MsgBox dia
Set x = nothing
dia = y.Item(1)
MsgBox dia
Para verificar que son la misma referencia, después de ver que en la primera (1ª)
asignación a dia es domingo (hasta este momento no hay razones para pensar si hubo
una copia o son la misma referencia), añadimos luego un nuevo ítem a la segunda (2ª)
colección. Volvemos a obtener ahora el ítem recién añadido pero ahora utilizando la
primera colección. Se demuestra que son la misma referencia al constatar que el ítem
añadido con la 2ª colección también es accesible desde la 1ª, algo que no podría suceder
si cada colección apuntara a diferentes posiciones en memoria. Finalmente eliminamos
una de las colecciones y observamos cómo la otra aún tiene acceso a los datos. El
ejemplo demuestra cómo hay persistencia de los datos. Las colecciones son
persistentes.
VECTORES O ARRAYS
En otros casos lo que interesa cuándo se hace una asignación es copiar, crear
totalmente aparte un duplicado de los datos a asignar (hay preferencias para llamar a
este tipo de copia clonar en vez de copiar). Por tanto no necesitan o no utilizan nunca
más de una referencia, ni por tanto precisan tener un contador de referencias. Estos
casos se dice que no tienen persistencia. Al eliminar la referencia los datos quedan
perdidos, nunca tienen más de una referencia, ya que cuando se hace una asignación
se realiza un duplicado de los datos con su propia referencia.
Un ejemplo de memoria no persistente: es similar al anterior, pero en vez de usar
colecciones se usan vectores (arrays).
ReDim x(0 To 2)
x(0) = 25
x(1) = 14
y=x
dia = y(1)
MsgBox dia
y(2) = 6
dia = x(2)
MsgBox dia
1. Sobre un medio (de almacenamiento) fijo se guarda (cuando el objeto fue definido)
un conjunto de datos que son recuperados cuando el tipo de objeto en cuestión
es creado; dichos datos son transferidos a las propiedades del objeto.
2. Otro objeto mantiene los datos que serán transferidos a las propiedades del nuevo
objeto creado. En este caso los datos están en memoria.
Hay muchos ejemplos para este tipo de persistencia. Un caso típico son los
controles ActiveX. Cuando el control es compilado junto al código se guarda una copia
de los datos que el programador definió de forma predeterminada. Cuando se instancia
una referencia al control, este lee del disco (donde está almacenada la librería asociada
al control) los datos que definen y configuran sus propiedades.
Otro ejemplo son las primitivas que se utilizan para recrear
objetos tridimensionales (en 3D) a partir de los cuales pueden crearse objetos más
complejos. Supongamos que vamos a crear un avión con geometría 3D. Inicialmente
podemos crear cada primitiva que compone el mismo, desde memoria, el motor de la
aplicación puede definir un nuevo objeto con las medidas que el usuario define y
posicionado igualmente en las coordenadas que el usuario señala para crear el objeto.
Sin embargo, a medida que el objeto crece y tiene más datos, se hace necesario guardar
el objeto en disco. Este objeto puede ahora ser guardado y ser utilizado las próximas
veces como una primitiva, un punto a partir del cual iniciar la creación de otros objetos
más complejos basados en este. Si ahora se quiere crear un nuevo modelo de avión
posiblemente sea más sencillo modificar la primitiva definida que crear uno totalmente
nuevo; por tanto, es necesaria la persistencia de la primitiva para recrear nuevos objetos
basados en ella. Las primitivas complejas se acoplan a la primera manera definida y las
primitivas sencillas se ajustan a la segunda manera definida.
Para guardar los datos de objetos en disco se recurre a un mecanismo conocido
como serialización (serializar), que dispone en una secuencia de bytes todos los datos
(o sólo aquellos que se desee) que definen el objeto.
Desde la óptica de la persistencia, se podrían clasificar los objetos en:
Transitorios: cuyo tiempo de vida depende directamente del ámbito del proceso que
los instanció.
Persistentes: cuyo estado es almacenado en un medio secundario para su posterior
reconstrucción y utilización, por lo que su tiempo de vida es independiente del
proceso que los instanció.
Al programador, la persistencia permite almacenar, transferir y recuperar el estado
de los objetos. Para esto existen varias técnicas:
Serialización,
Motores de persistencia,
Bases de datos orientadas a objetos
.METODOS ESPECIFICOS
Sobre escritura
Un método común de contrarrestar los datos persistentes es sobre escribir el
medio de almacenaje con nuevos datos. Esto se llama a menudo limpieza o trituración
de un archivo o de un disco. Es una opción popular y de bajo costo de algunos programas
debido a que a menudo puede ser implementado simplemente en dichos programas y
puede ser selectivamente dirigido solo hacia una parte del medio de almacenaje. La
sobre escritura es generalmente un método aceptable de compensación siempre y
cuando el medio de almacenaje sea grabable y no esté dañado.
La técnica de sobre escritura más simple escribe los mismos datos en todas
partes, a menudo simplemente una muestra de ceros. Como mínimo, esto evitará que
los datos sean recuperados simplemente por la lectura del medio de almacenaje
utilizando las funciones habituales del sistema.
Para contrarrestar técnicas de recuperación de datos más avanzadas, a menudo
se prescriben muestras de sobre escritura específicas. Estas pueden ser muestras que
intentan erradicar cualquier traza de firmas. Por ejemplo, escribiendo en forma repetida,
muestras alterantes de unos y ceros puede ser más efectiva que utilizar sólo ceros.
Frecuentemente se indican combinaciones de muestras.
Un desafío de la sobre escritura es que ciertas áreas del disco pueden ser
inaccesibles por degradación de los medios o por otros errores. La sobre escritura por
software puede ser problemática en medios de alta seguridad que requieren controles
más fuertes de la mezcla de datos que la que puede proveer el programa en uso. El uso
de técnicas avanzadas de almacenamiento también puede hacer inefectivo la sobre
escrituración basada en archivos.
Factibilidad de recuperar datos sobre escritos:
Peter Gutmann investigó la recuperación de datos de medios de almacenaje
nominalmente sobre escritos a mediados de la década del 90. El sugirió que la
microscopia por fuerza magnética puede ser capaz de recuperar dichos datos y
desarrolló patrones de sobre escritura específicos, para controladores específicos, para
contrarrestar este tipo de recuperación. Estos patrones se conocen como el método de
Gutmann.
Daniel Feenber, un economista del privado National Bureau of Economic
Research, afirma que las posibilidades de recuperar datos sobre escritos de un disco
duro moderno son una “leyenda urbana”.También señala “la brecha de 18½ minutos que
Rose Mary Woods creo en una cinta de Richard Nixon discutiendo sobre el caso
Watergate”. La información de la brecha aún no ha sido recuperada y Feenberg afirma
que recuperarla sería una tarea fácil comparada con la recuperación de una señal digital
de alta densidad.
Para noviembre de 2007, el Departamento de Defensa de los Estados Unidos
consideraba que la sobre escritura era un método aceptable para compensar medios
magnéticos dentro de la misma área/zona de seguridad, pero no como un método de
higienización. Solamente aceptaba como método de higienización la de magnetización
o la destrucción física.
Por el otro lado, de acuerdo a la Publicación Especial 800-88 del 2006 NIST (p.7):
“Los estudios han demostrado que la mayoría de los medios de almacenaje pueden ser
efectivamente compensados con una sobre escritura” y “para los discos ATA fabricados
con posterioridad a 2001 (de más de 15 GB), los términos compensación e higienización
han convergido”.Un análisis de Wright y colaboradores de técnicas de recuperación,
incluyendo microscopia por fuerza magnética, también concluyen que una simple
limpieza es todo lo que se necesita en los controladores modernos”. Señalan que el largo
tiempo que requieren múltiples limpiezas “han creado una situación en la que muchas
organizaciones ignoran totalmente el tema – lo que ocasiona filtraciones y pérdidas.
DE MAGNETIZACIÓN
De magnetización es la remoción o reducción del campo magnético de un disco o
controlador utilizando un dispositivo llamado de magnetizador que ha sido diseñado para
el medio de almacenaje que se desea borrar. Aplicado a medios magnéticos, la de
magnetización puede purgar el medio rápida y efectivamente.
La de magnetización a menudo torna los discos duros inoperables, ya que borra
el formateo de bajo nivel que solamente es efectuado en las fábricas durante la
fabricación. Es posible, sin embargo, devolver el disco duro a un estado funcional si el
fabricante accede a reformatearlo. Los diskettes desmagnetizados pueden ser
generalmente reformateados y reutilizados con el hardware habitual de los
consumidores.
En algunos entornos de alta seguridad, puede que se requiera utilizar un de
magnetizador que ha sido aprobado para la tarea. Por ejemplo, en las jurisdicciones
gubernamentales y militares de los Estados Unidos, puede que se exija el uso de un de
magnetizador de la “Lista de Productos Evaluados” de la NSA.
CIFRADO
El cifrado de datos antes de que sea almacenado en el medio puede mitigar las
preocupaciones sobre la persistencia de datos. Si la clave criptográfica es
suficientemente fuerte y cuidadosamente controlada (p. ej., no sujeta a persistencia de
datos) puede hacer irrecuperable en forma efectiva cualquier dato del medio. Aun si la
clave está almacenada en el medio, puede resultar más fácil o rápido sobre escribir
solamente la clave en lugar de sobre escribir todo el disco.
El cifrado puede hacerse sobre la base de archivo por archivo ó sobre todo el
disco. Sin embargo, si la clave es almacenada, aunque sea temporariamente, en el
mismo sistema que los datos, puede pasar a ser un dato remanente y recuperada por
un atacante. Véase ataque de arranque en frío (cold boot attack).
DESTRUCCIÓN FÍSICA
Una cuidadosa destrucción física de todo el medio de almacenaje es
generalmente considerado como el método más seguro de contrarrestar la persistencia
de datos. Sin embargo, el proceso generalmente lleva tiempo y es engorroso. La
destrucción física puede requerir métodos extremadamente cuidadosos ya que aún un
muy pequeño fragmento del medio puede contener grandes cantidades de información.
Las técnicas de destrucción específica incluyen:
COMPLICACIONES
ÁREAS INACCESIBLES
Los medios de almacenaje pueden tener aéreas que son inaccesibles por
métodos normales. Por ejemplo, los discos magnéticos pueden desarrollar “sectores
averiados” después de que los datos han sido grabados, y las cintas tienen brechas entre
las distintas grabaciones. Los discos duros modernos a menudo tienen un re mapeo
automático de sectores marginales o pistas que el sistema operativo no puede siquiera
detectar. Los intentos de contrarrestar la persistencia de datos por sobre escritura puede
no ser exitosa en tales situaciones, ya que los datos persistentes pueden persistir in estas
áreas nominalmente inaccesibles.