Cuatro características de virus


SEGURIDAD DE LAS TIC–


-Protección de elementos mediante

Prevención:


para impedir ataques (o dificultarlos, o hacerlos menos atractivos)• Detección: para descubrir cuándo, cómo y quién ha realizado un ataque • Reacción:
para recuperarse de efectos de un ataque – Protección de redes y sistemas de información frente a errores humanos, desastres naturales, fallos técnicos y ataques maliciosos Seguridad total=seguridad componente mas vulnerableVULNERABILIDAD–
Debilidad o defecto que puede poner en peligro AMENAZA–
Posibilidad de aprovechar una debilidad.

Vulnerabilidad de día cero:

aquella desconocida para aquellos interesados en mitigarla  ATAQUE–
Realización de una amenaza Vector de ataque:
medio de aprovechar una vulnerabilidad Superficie de ataque:
conjunto de los distintos vectores de ataque RIESGO –
Medida del coste de una vulnerabilidad teniendo en cuenta la probabilidad de un ataque exitoso.

ALGUNAS VULNERABILIDADES-

Software (sin buenas prácticas) – Código (con errores) – Configuración de recursos (incorrecta): permisos, etc. – Trampilla (agujero de seguridad deliberado) • Mecanismo de cifrado (con fallos) • Contraseñas (mal elegidas) • Comunicación (sin cifrado) • Puertos abiertos (no protegidos): telnet, correo, etc.

TIPOS DE ATAQUES-

Por acción (pasivo, activo), por voluntad (deliberado, acidental), por origen(interno, externo). SEGURIDAD DE LASA TIC 2–– Protección dada a un sistema de información para mantener la integridad, disponibilidad y confidencialidad de los recursos de información del sistema y protección de redes y sus servicios frente a modificación, destrucción o revelación no autorizadas, y garantía de que la red cumple sus funciones correctamente. CONFIDENCIALIDAD – Impedir que entidad no autorizada conozca existencia de datos, los examine o revele, o analice su flujo INTEGRIDAD – Asegurar que datos no han sido modificados por entidad no autorizada • Los almacenados no han sido alterados • Los recibidos son exactamente los enviados – Muy importante: recuperación de original  DISPONIBILIDAD – Evitar que entidad no pueda acceder cuando desea a un elemento para el que está autorizada.

Autenticación –

Asociar identidad a entidad • Verificar entidad: Confirmar que entidad es quien dice ser • Identificar entidad: Establecer identidad de entidad.Asegurar que transmisión se produce entre entidades legítimas

Código SEGURO–


Origen de ataques más relevantes • Desbordamiento de memoria • Canonicalización • Inyección de código • Condiciones de carrera • Debilidades criptográficas – Decisiones de diseño – Buenas prácticas de diseño – Buenas prácticas de programación.

DESBORDAMIENTO DE MEMORIA-

Un programa escribe datos q exceden tamanyo reservado para ellos (se escribe en direcciones adyacentes). Todo esto puede provocar que se corromapan los datos o una transferencia inesperada de control. Se suele localizar en la pila o en el montículo. Los causantes pueden ser los vectores, las cadenas de caracteres, enteros y desajuste de tamnyo entre tipos. Para evitar estos fallos es necesario comprender la disposición de memoria, lenguaje C de prog y conversión  entre tipo de datos.

CANONICALIZACION-

El atacante burla la seguridad utilizando nombres equivalentes al esperado. Un ejemplo seria utilizar una contrasenya en mayus y minus y que las 2 valgan.

Inyección DE Código-

Inyección en línea de comandos, Inyección de SQL, XSS (Cross-site scripting)-
aprovecha la generación en navegadores de página dinámicas (no se modifican las paginas del servidor). La idea es modificar datos el atacante introduce un enlace a un sitio web que quiere atacar. El cliente pincha en un enlace y va al servidor con los parámetros q quieren consultar. El ordenador de la victima ejecuta la dirección q le pasa el servidor pero el ataque es externo Puede ser: Indirecto, en el q se ve afectado el q ha suministrado los datos para atacar (el cliente), Basada en DOM, que permite acceder a documentos (vulnerabilidad en el cliente) y Directa, q es el ataque al servidor.

CSRF o XSRF (Cross-site request forgery)-

El atacante fuerza a navegador de usuario a solicitar petición a aplicación web vulnerable, que la realiza porque cree que proviene de usuario (alguien que está autorizado para ello).

CONDICIONES DE CARRERA–

Resultado de proceso depende de manera inesperada y crucial de secuencia de otros – Programas o circuitos lógicos no han sido diseñados adecuadamente para su ejecución simultánea con otros. Es esencial conocer atomicidad de operaciones, macros, programas, … • Sistema Operativo es fundamental

DEBILIDADES Criptográficas–


Se suele aprovechar predictibilidad de números ‘aleatorios’. Generador de números aleatorios seguro: atacante no puede adivinar siguiente valor a partir de valores previos PRINCIPIOS DE DISEñO–• Mediación completa–
Se debe comprobar cada acceso a cada objeto – Implica que hay método de autenticación infalible disponible para cada petición.

Mecanismo de lo mínimo común–

Es aconsejable –Minimizar cantidad y uso de sistemas/recursos/mecanismos compartidos. Minimizar funcionalidad de componentes.

Separación de privilegio–

Acceso a objetos debe depender de más de una condición – Superar un sistema de protección no habilita acceso completo – Relacionado con defensa en profundidad: Varias capas de seguridad son más dífíciles de romper que una.

Diseño abierto–

Mecanismo de protección no depende de ignorancia de atacante.

PRINCIPIOS DE Programación–•

Programar defensivamente, actualizar sistemas con parches, proteger estructuras de datos y funciones internas, usar criptografía cuidadosamente, aplicar técnicas básicas de ofuscación. Código MALICIOSO–

Autorreplicante

Propagación creando copias de sí mismo • Crecimiento de población – Cambio en nº de copias debidas a autorreplicación – Para no autorreplicantes es 0.
Parásito necesita otro código/ejecutable para existir y actuar.

TROYANO-

Parásito y no autorreplicante • Oculto en programa (anfitrión) aparentemente útil – Fin evidente: conocido por usuario – Fin oculto: desconocido por usuario (no deseado, dañino, …). Hace función oculta cuando se ejecuta programa anfitrión • Puede ser necesaria interacción con atacante para completar ataque o conseguir objetivo.

COMPONENTES COMUNES DE VIRUS Y GUSANOS-

Autorreplicación00 Se reproduce para propagación • Propagación por distintos medios (dispositivo de almacenamiento, correo, búsqueda de máquinas vulnerables, …) • A veces sólo hay propagación – Autodetección– Evita infectar algo ya infectado • No siempre presente – Camuflaje/ocultación–Intenta no ser detectado • No siempre presente – Carga–Cometido específico (crear puerta trasera, obtener información confidencial, mandar correo basura, …) • No siempre presente • Su ejecución puede depender de circunstancias

VIRUS–


Autorreplicante y parásito • Al ejecutarse intenta (no siempre) replicarse en otro anfitrión – Si tiene éxito, lo ‘infecta’ y cuando se ejecute, intentará lo mismo – Puede hacer algo más o no, y según circunstancias: carga + disparador • Estados: – Germen: estado original, antes de replicarse – Durmiente: presente en máquina, pero todavía no ha infectado • Pero puede transmitirse – Intento: falla al intentar replicarse – En propagación: ha comenzado a replicarse – En ejecución de carga • Medio de propagación – Dentro de máquina – De una máquina a otra Tipos-•
Según lo que infecta – De sector de arranque. Parásito (de ejecutable), Macro (de archivo de datos). Según estrategia de ocultación: Esconde indicios de infección, cifrado, mutante.

GUSANO–

Autorreplicante e independiente • Son como virus en – estados – mecanismos de ocultación • Generalmente usa red para expandirse No necesaria intervención humana para actuar • Conejo/Bacteria: Sólo se replica (y propaga).

BOMBA Lógica–

Dos partes: – Carga: acción que realizar – Disparador: condición para que se ejecute carga. Explota cuando se dan condiciones de disparador Puede ser parásito o no.

ZOMBIS (BOTS Y BOTNETS)–


Bot:

Programa autónomo que realiza tareas automáticamente (sin que lo sepa usuario)

• Botnet:

red organizada de programas autónomos capaces de actuar según ciertas instrucciones (de maestro) • Propagación: adquisición de nuevos bots. Comunicación entre bots: – Centralizado (maestro y zombis). Distribuido: • P2P: Necesita topología estable.

TRUHAN/ESTAFADOR-

Aplicación que intenta asemejarse a otra para engañar y timar • Generalmente para conseguir una compensación económica por su supuesto uso • A veces asustando: scareware.

RESCATADOR–•

Impide acceso a recurso hasta pago de rescate – Cifrándolo – Bloqueando acceso a cuenta/máquina – Haciendo copia y eliminando original • Criptovirología: Efecto de carga de virus es irreversible para víctima, pero reversible para autor de virus.

PROGRAMAS ANTI Código MALICIOSO-


Tareas-

Detección, Parada, Identificación, Desinfección

Detección–


Métodos • Según código esté en ejecución – Estático (no)
• Escáner • Escáner con heurística • Comprobador de integridad – Dinámico (sí)
• Monitor/Bloqueador de comportamiento • Emulador.
Escáner • Firma:
secuencia de bytes que caracteriza cada código malicioso.

Escaneo:

proceso de búsqueda de firmas en archivo
. TiposPor petición • Iniciado explícitamente por usuario – Cuando instala/actualiza anti código malicioso o su base de datos – Cuando hay sospecha de infección – Por acceso • Continuamente en ejecución – Escanea cada archivo cada vez que se accede a él – Supone consumo de recursos → Rendimiento de máquina disminuye – Algunos permiten configurar condiciones de escaneo.
Escáner con heurística • Busca trozos de código que parecen código malicioso • PasosRecolección de datos • Buscar firmas cortas indicativas de código sospechoso (evidencia positiva) o de cosas que código malicioso no hace normalmente (evidencia negativa) • Comparar valores de punto de entrada y fin de ejecutable con valores de ejecutables no infectados • Buscar elementos que no cumplan la ley de Benford.
Análisis • Elemental: Combinación lineal de resultado de varias heurísticas y comparación con umbral • Más elaborado: aprendizaje automático, sistemas expertos, minería de datos, Comprobador de integridad • Busca cambios no autorizados en archivos • Procedimiento – Calcula y almacena valor de verificación para cada archivo – Más adelante (por ej., antes de ejecución) recalcula valor de verificación y compara con almacenado • Tipos Autónomo:
Aplicación comprueba valores de verificación • por acceso, periódicamente, … – Autocomprobación:
Ejecutables se analizan a sí mismos cuando se ejecutan • Necesario modificarlos (mecanismo parecido a virus) • En general cualquier tipo de anti código malicioso se autoanaliza – Consola de integridad:
Comprobación de valor de verificación justo antes de ejecución. Por ej., incorporado a núcleo de sistema operativo.

Monitor (/ bloqueador) de comportamiento-

Sigue comportamiento de programa en tiempo real y si encuentra actividad sospechosa, puede evitar que se haga, parar programa, preguntar a usuario qué hacer

Emulador–


Código analizado se ejecuta en entorno emulado. Evita daño real.
Tipos – Heurísticas dinámicas • Se diferencian de estáticas en que datos se recogen de emulador • Pueden buscar mismas carácterísticas que monitor de comportamiento • Efectivas para encontrar firmas dinámicas de código malicioso mutante – Descifrado general • Se confía en propio mecanismo de código malicioso para descifrarlo en lugar de intentar hacerlo propio anti código malicioso • Pueden usarse heurísticas para detectar cuándo ha ocurrido descifrado – Búsqueda de firmas periódicamente durante y tras emulación • Aspecto clave:
cuándo parar.

Comparación de técnicas-


Escáner –

Pros:


Identificación precisa de código malicioso encontrado – Contras:
Necesaria base de datos de firmas actualizada. Solo encuentra código malicioso conocido (y alguna variante menor)

Escáner con heurística –


Pros:


Encuentra código malicioso conocido y desconocido – Contras:
Falsos positivos, código detectado no es identificado por lo que si es desinfectado usa métodos genéricos • Comprobador de integridad –

Pros:


Encuentra código malicioso conocido y desconocido – Contras:
Muchos falsos positivos, código detectado no es identificado por lo que si es desinfectado usa métodos genéricos, valor de verificación almacenado debe corresponder a estado limpio, no aconsejable para archivos de datos.

Bloqueador de comportamiento –

Pros:


Encuentra código malicioso conocido y desconocido, se deshace de parte de ofuscación – Contras:
Código detectado no es identificado por lo que si es desinfectado usa métodos genéricos, falsos positivos, consumo de recursos durante ejecución, puede detectar cuando ya se han producido problemas • Emulador –

Pros:


Encuentra código malicioso conocido y desconocido, se deshace de parte de ofuscación, en entorno seguro – Contras:
Código detectado no es identificado por lo que si es desinfectado usa métodos genéricos, falsos positivos, consumo de recursos durante ejecución, puede parar antes de que se revele código malicioso.

Mejoras de rendimiento-

Reducir cantidad analizada en archivo, Reducir cantidad de archivos analizados, Cambiar algoritmo, Cambiar implementación de algoritmo, Reducir requisitos de recursos

PARADA–


Hacer que código malicioso deje de ejecutarse (y replicarse) Considerar que código malicioso puede – ejecutarse en varias tareas para evitar ser parado – descargar más código malicioso, que también se ha de desinfectar/eliminar – parar herramienta de desinfección – tener acción especial asociada a detección de posible herramienta de desinfección.

Identificación–

Para – Reducir falsos positivos – Identificar código malicioso de forma concluyente • Funcionamiento – Recopilar toda información posible. Cuarentena – Aislar código malicioso de resto de sistema.

Desinfección–

Restaurar archivos afectados con copias de seguridad, Usar método específico para código malicioso, Usar método específico para comportamiento de código malicioso, Usar propio código malicioso, Borrar archivo infectado.

BASE DE DATOS DE VIRUS–

Contiene información por registro (identificador, Nombre imprimible para presentar a usuario,Datos de verificación, Instrucciones de desinfección).
Actualización Cómo informar a usuario – Usuario pregunta periódicamente Programa antivirus puede hacerlo automáticamente – Vendedor manda aviso o actualización a usuario • Modo automático – Pro: Protección tan pronto como es posible – Contra: Código puede contener errores • Forma – Copia de base de datos – Cambios de base de datos (comprimidos) • Frecuencia –
Periódicamente – Según aparezcan nuevas amenazas.

ANTI ANTI Código MALICIOSO-Retrovirus –

Código malicioso que intenta deshabilitar anti código malicioso. Fácil darse cuenta de su acción. Cuando infecta máquina, examina procesos en ejecución y mata los que casan con lista de procesos usados por anti código malicioso.

Blindaje-

Hacer que análisis sea difícil • Métodos antidepuración contra análisis dinámico (Detectar depurador: • Buscar singularidades de depuradores conocidos • Buscar puntos de ruptura (incluso en su código o de funciones que use) • Comprobar si hay ejecución paso a paso).
Métodos antidesensamblaje contra análisis estático – Conseguir que desensamblaje sea difícil de automatizar(Generar código dinámicamente como compilador JIT (just-in-time) • Modificar código malicioso durante su ejecución)

Tunelado-


Soslaya monitorización • Emplea técnicas similares a anti código malicioso para descubrir monitorización. Examina código unido a interrupción concreta para encontrar código original de SO (o BIOS) y ejecutarlo directamente saltando programas residentes (incluido monitor).

Antiemulación –

Sobrevivir/durar más que emulación • Conseguir evadir la detección lo suficiente para que acabe emulador – Añadir código que no hace nada o algo inútil – Reducir frecuencia de replicación – Retrasar ejecución de código mediante ofuscación de punto de entrada – Burlar • Reestructurar código viral para que no parezca sospechoso – Sobrepasar • Prever actuación por si código malicioso está en emulación.

Ataques a comprobador de integridad –

Usar código malicioso que oculta indicios de infección – Aprovechar fallos de código.

Ofuscación de punto de entrada –

No muy eficaz • Modificar dirección de comienzo de ejecutable • Elegir lugar aleatoriamente – Elección controlada de ubicación • Sustituir llamadas a salida de proceso • Sustituir secuencia repetitiva de instrucciones.
Elusión/evitación – Ubicar (esconder) código malicioso donde no mira anti código malicioso – Poco eficaz

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *