Está en la página 1de 5

Asignatura Datos del estudiante Fecha

Apellidos: PAJARO PAJARO


SEGURIDAD DE
19/05/20
SOFTWARE
Nombre: GERVIS ANTONIO

Actividad
Protocolo individual de la unidad n°: 3

Análisis y síntesis: 
Síntesis e interpretación personal de los temas vistos en la unidad
FUZZING
Es una técnica de pruebas de software, a menudo automatizado o
semiautomatizado, que implica proporcionar datos inválidos, inesperados o
aleatorios a las entradas de un programa de ordenador. Entonces se
monitorizan las excepciones tales como caídas, aserciones de código erróneas,
o para encontrar potenciales filtraciones de memoria. La técnica de fuzzing se
utiliza normalmente para descubrir problemas de seguridad en software o
sistemas de ordenadores. Es una forma de testeo aleatorio que se ha usado
para comprobar tanto hardware como software.

Fuzz testing o Fuzzing es una técnica de prueba de software de Caja Negra, que
básicamente consiste en encontrar errores de implementación utilizando la
inyección de datos malformados / semi-malformados de forma automatizada.

Un ejemplo sencillo puede ser el caso de un número entero en un programa,


que almacena el resultado de la elección del usuario entre 3 preguntas. Cuando
el usuario elige uno, la elección será 0, 1 o 2. Lo que hace tres casos prácticos.
Pero, ¿qué pasa si introducimos 3 o 255? Es posible hacerlo, porque los enteros
se almacenan en una variable de tamaño estático. Si el caso de cambio
predeterminado no se ha implementado de manera segura, el programa puede
bloquearse y provocar problemas de seguridad "clásicos": desbordamientos de
búfer (no) explotables, DoS (Negación de Servicio) etc.
El Fuzzing es el arte de la búsqueda automática de errores, y su función es
encontrar fallas de implementación de software e identificarlas si es posible.
La parte de generación de datos está hecha de generadores, y la identificación
de vulnerabilidades se basa en herramientas de depuración. Los generadores
generalmente usan combinaciones de vectores estáticos (valores conocidos por
ser peligrosos) o datos totalmente aleatorios. Los fuzzers de nueva generación
utilizan algoritmos genéticos para vincular los datos inyectados y el impacto
observado. Dichas herramientas aún no son públicas.
Asignatura Datos del estudiante Fecha
Apellidos: PAJARO PAJARO
SEGURIDAD DE
19/05/20
SOFTWARE
Nombre: GERVIS ANTONIO

ANALIZADORES

Los términos de analizar el protocolo y sniffing de paquetes son intercambiables.


Se refieren al proceso de seguimiento de los datos que se transmiten a través
de una red. El software que realiza la operación se llama por un analizador o un
sniffer, como se menciona en la sección “Monitores de red” al principio de este
capítulo. Los sniffers están fácilmente disponibles en Internet. Estas
herramientas fueron pensados inicialmente para el control de procesos de la red
legítimas, pero también pueden ser usadas para obtener datos con fines
ilegales.
El tráfico de MI, por ejemplo, utiliza el Internet y es susceptible a las actividades
de sniffing de paquetes. Toda la información contenida en una sesión de MI es
potencialmente vulnerable a la interceptación. Asegúrese de que los usuarios
entiendan que la información confidencial no debe ser enviado a través de este
método.

Ejercicio

Instalar Snort en linux


El estándar de facto para la detección de intrusos en Linux es Snort. Para
instalar el paquete en un servidor SuSE, siga estos pasos:

1. Inicie una sesión como root e inicie YaST.

2. Elija Software y luego instalar y quitar software. Buscar snort.

3. Marque la casilla cuando aparezca el paquete.

4. Haga clic en Aceptar. Si aparece algún mensaje de dependencia, haga


clic en Continuar para añadir a ellos también.

5. Intercambia CDs cuando se le solicite y salir YaST al finalizar.

Para utilizar la herramienta Snort, abra una sesión de terminal y escriba snort.
Esto genera un mensaje de error que muestra todas las opciones que puede
utilizar con la utilidad.

SANDBOXING

Dentro del ámbito de la seguridad del software, una de los conceptos de los que
más se suelen hablar con las vulnerabilidades, es decir, fallos de seguridad que,
en determinadas circunstancias, pueden ser aprovechadas por terceros y
ejecutar código malicioso (malware) en el equipo de un usuario. Además de
Asignatura Datos del estudiante Fecha
Apellidos: PAJARO PAJARO
SEGURIDAD DE
19/05/20
SOFTWARE
Nombre: GERVIS ANTONIO

mantener actualizadas nuestras aplicaciones y aplicar los distintos parches de


seguridad que se vayan publicando, desde hace algún tiempo venimos oyendo
hablar del Sandboxing, un mecanismo de seguridad que se utiliza en
aplicaciones tan conocidas como Adobe Reader X o en Google Chrome.

¿Y qué es el Sandboxing? Este “cajón de arena” (traducción literal al castellano)


es un aislamiento de procesos, es decir, un mecanismo que implementan varias
aplicaciones para ejecutar aplicaciones y programas con seguridad y “aislarlas”
del resto del sistema dentro de una especie de contenedor virtual desde el cual
controlar los distintos recursos que solicita dicha aplicación (memoria, espacio
en disco, privilegios necesarios, etc). Este férreo control al que se somete el
proceso sirve para discernir si el código a ejecutar es malicioso o no puesto que,
por norma general, se restringirá cualquier tipo de acceso a dispositivos de
entrada o de inspección del sistema anfitrión.

Gracias al sandboxing, por ejemplo en Google Chrome, el navegador de Google


es capaz de “aislar” pestañas de navegación entre sí y, además, impedir que
una página web con contenido malicioso intente instalar cualquier tipo de
software en nuestro sistema, monitorizar lo que estamos haciendo o acceder a
información alojada en nuestro disco duro (y entre las aplicaciones que aisla,
Flash es una de ellas). De hecho, este mecanismo también se incluyó en Adobe
Reader X porque uno de los grandes “coladeros” de Adobe era la posibilidad de
esconder código en los archivos PDF y que éste se ejecutase al abrir un
“documento malicioso” porque la aplicación no impedía ni controlaba peticiones
que iban más allá de mostrar el contenido del archivo (y se daban casos de
cambios en el registro de Windows o la instalación de software en el sistema).
Además de proteger a los usuarios, esta técnica también es utilizada por
equipos de seguridad, por ejemplo, para estudiar malware dentro de un entorno
controlado y ver qué efectos tiene en un sistema para proceder a su
caracterización, también podemos utilizar aplicaciones para “aislar” a otras y
probarlas de manera segura (importante si sospechamos de ellas, aunque, ante
la duda, es mejor no instalarlas aunque usando Sandboxie o Glipse podremos
mejorar la seguridad de nuestras pruebas). A mayor escala, la virtualización de
un sistema operativo dentro de otro es también una forma práctica de
sandboxing.
API´S

Hoy en día casi todo jefe de proyecto, diseñador o desarrollador habla de la


‘Economía API’ como el nuevo mundo. Las interfaces de desarrollo de
aplicaciones no son algo novedoso, pero sí es cierto que su universalización se
está produciendo en estos días. 2015, 2016 y 2017 serán los años en los que la
utilización de APIs se generalice entre la mayoría de empresas que busca
Asignatura Datos del estudiante Fecha
Apellidos: PAJARO PAJARO
SEGURIDAD DE
19/05/20
SOFTWARE
Nombre: GERVIS ANTONIO

aumentar y diversificar sus canales de creación y de ingresos. No sólo grandes


corporaciones, también pymes.

Igual que una interfaz de usuario permite la interacción y comunicación entre un


software y una persona, una API (acrónimo de Application Programming
Interface) facilita la relación entre dos aplicaciones para el intercambio de
mensajes o datos. Un conjunto de funciones y procedimientos que ofrece una
biblioteca para que otro software la utilice como capa de abstracción, un espacio
de acceso e intercambio de información adicional en la parte superior. Así una
se sirve de la información de la otra sin dejar de ser independientes.

Tipos de APIs

APIs de servicios web: son las interfaces de desarrollo de aplicaciones que


permiten el intercambio de información entre un servicio web (software que da
acceso a un servicio concreto a través de una URL) y una aplicación.
Normalmente ese intercambio se produce a través de peticiones HTTP o HTTPS
(la versión cifrada del protocolo HTTP). En la petición de la aplicación y
respuesta, también en HTTP del servicio web, se contiene información de todo
tipo tanto en los metadatos de la cabecera como en los del mensaje,
normalmente en dos tipos de formatos muy usados: XML o JSON.
Cada API está diseñada en un lenguaje de programación concreto y con unas
especificaciones distintas que la definen (las APIs pueden incluir
especificaciones para estructuras de datos y rutinas, clases de objetos o
variables, a partir de las cuales se basa el uso de esa interfaz). Además, suele
ser habitual que cada una de ellas disponga de documentación completa y
eficaz (un conjunto de tutoriales, manuales y reglas de buenas prácticas para
esa interfaz de programación).
Hay cuatro tipos de API de servicios web habituales entre los desarrolladores:
SOAP (Simple Object Access Protocol), un protocolo estándar de intercambio de
información y datos en XML entre dos objetos; XML-RPC, un protocolo de
llamada a procedimiento remoto que usa XML como formato de datos y
llamadas HTTP como sistema de comunicación; JSON-RPC, mismo protocolo
pero en formato JSON; y REST (Representational State Transfer), arquitectura
de software para sistemas hipermedia en la World Wide Web; una API REST
usa el protocolo HTTP.

APIs basadas en clases: este tipo de interfaces de desarrollo de aplicaciones


permite la conexión con los datos en torno a las clases, como es habitual en
Asignatura Datos del estudiante Fecha
Apellidos: PAJARO PAJARO
SEGURIDAD DE
19/05/20
SOFTWARE
Nombre: GERVIS ANTONIO

programación orientada a objetos con Java. La API de Java usa clases


abstractas para la creación de aplicaciones igual que cualquier programa
desarrollado en este lenguaje. Esas clases proporcionan todo lo necesario para
realizar todo tipo de funciones dentro de esas aplicaciones. La interfaz de
desarrollo de Java se organiza en paquetes y cada uno de esos paquetes
contiene a su vez un conjunto de clases relacionadas entre sí.
APIs de funciones en sistemas operativos: los programas de software están
continuamente interactuando con los sistemas operativos. Eso es una afirmación
obvia. La realidad es que, en muchos casos, la forma en la que lo hacen es a
través de APIs. Sistemas operativos como Windows disponen de APIs que
permiten esa comunicación entre programas y el OS. Esta es la lista completa
de API de Windows: interfaz de usuario, acceso y almacenamiento de datos,
mensajería, gráficos y multimedia, diagnóstico de errores…

Discusión: 
Dudas, desacuerdos, discusiones

También podría gustarte