Você está na página 1de 21

Jos Luis Usero Vlchez

Seguridad en Servicios y Aplicaciones


Adaptacin al Grado en Ingeniera de Software

Caso de abuso

Definicin:
Es un modelo de especificacin de requisitos de seguridad
usado en la industria del desarrollo de software.
El trmino es una adaptacin de Caso de Uso.
El trmino fue introducido por John McDermott y Chris Fox en
1999 que trabajaban en el Departamento de Informtica de la
Universidad James Madison en Harrisonburg, Virginia.
Definimos el abuso en trminos de interacciones que causan un
dao real. Un caso de abuso completo define una interaccin
entre un actor y el sistema que resulta en dao a un recurso
asociado con uno de los actores, uno de los entes dependientes
del mismo o el mismo sistema.

Cundo hay abuso

Por ejemplo, se puede dar una interaccin que revele


la clave a un actor que no debera verla. Sin ir ms
lejos, que alguien se deje abierta la ventana con el
correo donde le mandan la clave.
Sin embargo, esto no es un caso de abuso porque
ningn actor ha usado la clave.
Si alguien copia esa clave y la usa para acceder a
nuestros datos, borrarnos los ejercicios que hemos
subido a la plataforma entonces tenemos un caso
de abuso.

Mnimo y mximo abuso

Un caso de abuso describe el abuso de privilegio que se


lleva a cabo.
Cualquier abuso se puede realizar accediendo
completamente a todos los recursos del sistema y
modificando el software.
Pero no siempre es necesario acceder a todo. Para
proteger de abusos simples, el caso debera describir
desde el mnimo abuso de privilegio para que el actor
malintencionado consiga su objetivo (por ejemplo, coger
la contrasea para copiarte un ejercicio) hasta el mximo
abuso posible (borrar todos los ejercicios).

Representacin en UML

No hay nueva terminologa ni smbolos especiales.


Se crean al tiempo que los casos de uso, pero no en el
mismo diagrama.
Se usan los mismos smbolos que en un caso de uso.

Ejemplo

Casos de uso malicioso


(misuse cases)

Es una herramienta de modelado de procesos de


negocio usada en la industria de desarrollo de
software.
Se deriva y es el inverso de caso de uso.
Usado por primera vez por los noruegos Guttorm
Sindre y Andreas L. Opdahl en 1990.
Describe el proceso de ejecutar un acto malicioso
contra el sistema (a diferencia del caso de uso, que
describe una accin tomada por el sistema).

Caractersticas

Muestra casos que no deberan pasar (escenarios negativos) y


las amenazas relacionadas, lo que nos ayuda a definir nuevos
requisitos.
Da la misma importancia a requisitos funcionales y no
funcionales (de seguridad, en este caso).
Ayuda a que nos enfoquemos en la seguridad desde el
principio del proceso de diseo, y nos evita realizar decisiones
de diseo prematuras.
Mejora la comunicacin entre desarrolladores y clientes porque
les hace ponerse de acuerdo en lo que es realmente crtico.
Debilidad: simplicidad. Identifica el caso pero se requieren
mejores herramientas para establecer un plan de defensa.
Tampoco provee de estructura ni semntica.

Misuse cases en UML

A diferencia de los casos de abuso, los casos de uso


malicioso van en el mismo diagrama que los casos de
uso.
2 nuevas entidades:
Caso de uso malicioso: secuencia de acciones
realizadas por cualquier persona o entidad para daar
el sistema.
Usuario malicioso: el actor que inicia el caso de uso
malicioso, intencionada o inadvertidamente.

Misuse cases en UML 02

2 nuevas relaciones:
Mitigates (Mitiga): un caso de uso puede evitar la
oportunidad de que un caso de uso malicioso se
complete exitosamente.
Threatens (Amenaza): un caso malicioso puede
amenazar a un caso de uso explotndolo o
entorpecindolo para conseguir sus fines.

Ejemplo

Comparacin casos abusomaliciosos


Definicin

Abuso: donde los resultados de la interaccin son dainos para el


sistema.
Uso malicioso: comportamiento que el propietario del sistema no
quiere que ocurran.
Ejemplo: SE MUESTRA LA CONTRASEA A UN USUARIO QUE
NO DEBE VERLA
No es abuso hasta que alguien no la coge y hace algo malo con ella.
Pero S es MISUSE porque que un usuario pueda ver la clave de sesin
de otro es algo que no queremos como diseadores.

La diferencia es sutil y no est muy bien definida, pero para hacer


una distincin, el abuso es un mal uso con intencin maligna.
P.e. correr con una motosierra en las manos es mal uso, pero correr
con una motosierra con intencin de matar es abuso.

Comparacin casos abuso-maliciosos

Notacin y nivel de detalle:


Los de abuso se dibujan de manera separada, los
maliciosos junto a los casos de uso, aunque con colores
diferentes.
Los casos de abuso han de detallar los recursos,
habilidades y objetivos del actor maligno.
En recientes publicaciones, Sindre ha propuesto una
mejor definicin de los casos de uso malicioso.

Pasos para describirlos

Casos de abuso
Construir un diagrama de
caso de uso
Identificar los actores del
abuso
Identificar los casos de
abuso
Definir los casos de abuso
Comprobar la granuralidad
Comprobar la completitud y
minimalidad

Casos de uso malicioso


Construir diagrama de caso
de uso
Introducir los actores
malignos y casos de uso
maliciosos
Relacionar casos de uso con
casos de uso malicioso
Crear nuevos casos de uso
para detectar o prevenir
casos de uso malicioso
Detallar los requerimientos

Attack trees (rboles de ataque)

Son diagramas conceptuales que muestran como un


recurso u objetivo puede ser atacado.
Se usan para describir amenazas en sistemas
informticos y posibles ataques que las materializan.
Bruce Scheneier, CTO de Counterpane Internet
Security fue el primero en desarrollar esta idea,
aunque los primeros papers son de la NSA (National
Security Agency).

Estructura

Son diagramas de varios niveles con una raz que se


expande por ramas hasta llegar a hojas.
De abajo arriba, las nodos hijos u hojas son
condiciones que deben ser satisfechas para que el
nodo padre sea verdadero. Cuando el nodo raz es
verdadero, el ataque ha sido completado.
Uno nodo puede ser hijo de otro, por tanto, se deben
llevar a cabo mltiples pasos para realizar un ataque.

Ejemplo

P.e. robar un ordenador: hay que abrir el seguro,


para ello hay que obtener la llave que est en la sala
de tcnicos, hay que amenazar al tcnico o entrar en
la conserjera. Por tanto, hay varios niveles.
Amenazar al tcnico o al conserje, coger la llave de la
sala de tcnicos, abrir la sala de tcnicos, coger la
llave del ordenador, entrar en la clase, abrir el seguro
del ordenador y llevrselo.
El ataque a un nodo puede necesitar que se cumpla
ms de una condicin, p.e., que tenga que desactivar
la alarma de la clase antes de entrar.

SecurITree (Amenaza)

Diagrama
Virus infecta un
fichero

Virus se ejecuta
como
administrador

Virus aprovecha
agujero de
seguridad

Otros programas
infectados

Virus ejecutado
por un
administrador

Virus infecta
fichero de
instalacin

Virus se ejecuta
como usuario
normal

Se infectan otros
programas

Administrador
descarga y ejecuta
fichero binario
infectado

Usuario descarga
y ejecuta fichero
infectado

Bibliografa

Wikipedia
Using Abuse Case Models for Security Requirements
Analysis, John McDermott and Chris Fox, Department of
Computer Science, James Madison University
http://www.andrew.cmu.edu/course/95750/docs/CaseModels.pdf
Misuse Cases and Abuse Cases in Eliciting Security
Requirements Chun Wei (Johnny), Sia Department of
Computer Science, University of Auckland 2005
https://www.cs.auckland.ac.nz/courses/compsci725s2c
/archive/termpapers/csia.pdf

Sofware

UML www.visual-paradigm.com/
Attack Trees:
http://sourceforge.net/projects/seamonster/?source=typ_re
direct

Você também pode gostar