Curso de programación de virus (mundo del software)
Aplicació.. (1)
1. APLICACIÓN DE LA
SEGURIDAD INFORMATICA
Profa.:
Gabriela Isabel Duarte Cárdenas
Integrantes:
Adriana Morales Vega
Juan Omar Ortega Flores
Jesús David Rodríguez Ruiz
Gpo:
309
2. RIESGO
En arquitectura de computadores, un riesgo es un
problema potencial que puede ocurrir en un
procesador segmentado. Típicamente los riesgos
se clasifican en tres tipos: riesgos de datos, riesgos
de salto o de control y riesgos estructurales. Las
instrucciones de un procesador segmentado son
ejecutadas en varias etapas, de modo que en un
momento dado se encuentran en proceso varias
instrucciones, y puede que éstas no sean
completadas en el orden deseado. Un riesgo
aparece cuando dos o más de estas instrucciones
simultáneas (posiblemente fuera de orden) entran
en conflicto.
3. Riesgos de datos
Los riesgos de datos ocurren cuando éstos son modificados. El
ignorar riesgos de datos potenciales puede resultar en condiciones
de carrera (a veces llamadas riesgos de carrera). Hay tres
situaciones en las que puede aparecer un riesgo de datos:
Read after Write (RAW) o dependencia verdadera: Un operando
es modificado para ser leído posteriormente. Si la primera
instrucción no ha terminado de escribir el operando, la segunda
estará utilizando datos incorrectos.
Write after Read (WAR) o anti-dependencia: Leer un operando y
escribir en él en poco tiempo. Si la escritura finaliza antes que la
lectura, la instrucción de lectura utilizará el nuevo valor y no el
antiguo.
Write after Write (WAW) o dependencia de salida: Dos
instrucciones que escriben en un mismo operando. La primera en
ser emitida puede que finalice en segundo lugar, de modo que el
operando final no tenga el valor adecuado.
Los operandos envueltos en riesgos de datos pueden residir en
memoria o en registros.
4. RIESGOS ESTRUCTURALES
Un riesgo estructural sucede cuando parte del
hardware del procesador es necesario para ejecutar
dos o más instrucciones a la vez. Puede ocurrir, por
ejemplo, si un programa intenta ejecutar una
instrucción de salto seguida de una operación
matemática. Puesto que son ejecutadas de forma
paralela y los saltos son típicamente lentos (requieren
realizar una comparación, operar matemáticamente
sobre el contador de programa y escribir en
registros), es bastante posible (dependiendo de la
arquitectura) que la instrucción de computación y la
de salto requieran la ALU (unidad aritmético lógica) al
mismo tiempo.
5. Riesgos de salto o de control
Los riesgos de salto o de control ocurren cuando
el procesador se ve obligado a saltar a una
instrucción que no tiene por qué ser
necesariamente la inmediatamente siguiente en
el código. En ese caso, el procesador no puede
saber por adelantado si debería ejecutar la
siguiente instrucción u otra situada más lejos en
el código.
Esto puede resultar en acciones no deseadas
por parte de la CPU.
6. Evaluación de Riesgos
Tipo de Riesgo Factor
Robo de hardware Alto
Robo de información Alto
Vandalismo Medio
Fallas en los equipos Medio
Virus Informáticos Medio
Equivocaciones Medio
Accesos no
autorizados
Medio
Fraude Bajo
Fuego Muy bajo
Terremotos Muy bajo
7. Existen varias técnicas para tanto prevenir riesgos como
para solucionar los problemas derivados de su aparición.
Inserción de burbujas. La inserción de burbujas es un
método para prevenir la aparición de riesgos de datos,
estructurales y de salto. Una vez que las instrucciones son
capturadas, la lógica de control determina si podría o va a
ocurrir un riesgo. Si es cierto, la lógica de control inserta una
instrucción NOP (No Operation). De esta manera, antes de
la instrucción siguiente (la que causa el riesgo) sea
ejecutada, la anterior tendrá tiempo suficiente para
completarse y prevenir el riesgo. Si el número de NOP
insertadas es igual al número de etapas de la segmentación,
el procesador puede trabajar sin amenazas de riesgos.
ELIMINACIÓN DE RIESGOS