Programación segura: conceptos clave y aplicación en Java

Documento del Ministerio de Educación. Uso Educativo-nc sobre Programación segura. El Pdf explora los fundamentos de la seguridad informática, incluyendo confidencialidad e integridad, con un caso práctico y un ejercicio resuelto sobre la clase MessageDigest en Java para la generación de hash de mensajes, útil para estudiantes universitarios de Informática.

Ver más

58 páginas

Programación segura
Caso práctico
Ministerio de Educación. Uso educativo-nc.
Elaboración propia.
Juan
esta terminado de realizar una aplicación.
María
: Hola Juan. Ya he visto que estás terminado la aplicación para la empresa. Recientemente hemos tenido bastantes problemas con la seguridad en las aplicaciones desarrolladas
porque cada vez es más frecuente sufrir ataques informáticos.
Juan
usuarios,…
María
. Una parte muy importante de la seguridad de la empresa reside en la red y en los servidores. Pero ten en cuenta, que cuando el usuario puede ejecutar la aplicación, la seguridad
del sistema queda en la aplicación. Tenemos que tener mucho cuidado en la seguridad de las aplicaciones que desarrollamos. Mira, a continuación, vamos a ver una introducción a la
seguridad informática haciendo hincapié en las aplicaciones y luego entraremos en más detalle, en la programación de aplicaciones seguras.
Firefox Developer Edition
https://educacionadistancia.juntadeandalucia.es/formacionprofesional...
1 de 58
15/5/24, 17:26
1.- Introducción a la seguridad Informática.
Solución
1.
Incorrecto
2.
Incorrecto
3.
Opción correcta
4.
Incorrecto
Caso práctico
Ministerio de Educación. Uso educativo-nc.
Elaboración propia.
María
: Mira Juan. Ahora vamos a ver los conceptos más importantes sobre la seguridad informática, para saber cuándo un sistema o aplicación es seguro.
Después, nos centraremos en la seguridad de las aplicaciones, para saber como programador qué recomendaciones tenemos que tener en cuenta.
Juan
:
Ok
, estupendo. Estoy deseando empezar…
jhnri4.
Dominio público.
Según la Real Academia Española, seguridad es "la cualidad de seguro, es decir, de estar libre y exento de todo daño, peligro o riesgo". En informática, como en tantas facetas de la
vida, la seguridad entendida según la definición anterior es prácticamente imposible de conseguir, por lo que se ha relajado acercándose más al concepto de fiabilidad; se entiende un sistema seguro
como aquel que se comporta como se espera de él.
De los sistemas informáticos, ya sean sistemas operativos, servicios o aplicaciones, se dice que son seguros si cumplen las siguientes características:
. Característica de seguridad que establece que la información es accesible únicamente por las entidades autorizadas. Requiere que la información sea accesible
únicamente para las entidades autorizadas.
. Característica de seguridad que establece que la información debe conservarse correctamente y sólo puede ser modificada por las entidades autorizadas. Requiere que la
información sólo pueda ser modificada por las entidades autorizadas. La modificación incluye escritura, cambio, borrado, creación y reenvío de los mensajes transmitidos.
. Característica de seguridad en la que un usuario es responsable de sus acciones. Ofrece protección a un usuario frente a otro que niegue posteriormente que se realizó cierta
comunicación. El no repudio de origen protege al receptor de que el emisor niegue haber enviado el mensaje, mientras que el no repudio de recepción protege al emisor de que el receptor
niegue haber recibido el mensaje. Las firmas digitales constituyen el mecanismo más empleado para este fin.
. Características de seguridad en la que establece que los recursos deben estar disponibles. Requiere que los recursos del sistema informático estén disponibles para las
entidades autorizadas cuando los necesiten.
El tratamiento de los posibles incidentes de seguridad exige que toda organización tenga definida una política de seguridad, cuya función sea establecer las responsabilidades y reglas necesarias
para evitar amenazas y minimizar los efectos de éstas. Lo primero que se debe realizar es identificar qué queremos proteger.
Desde el punto de vista informático, existen tres tipos de elementos que pueden sufrir amenazas:
hardware
,
software,
datos.
El más sensible, y en el que se basa casi toda la literatura sobre seguridad, son los datos, ya que es el único elemento que depende exclusivamente de la organización. Es decir, tanto el
hardware
como el
software
, si en la peor de las situaciones se pierden, siempre se pueden adquirir y/o instalarlos; pero los datos pertenecen a la organización y nadie puede, en el caso de pérdida,
proporcionarlos. Sin embargo, la seguridad se debe entender a todos los niveles y aplicarla a todos los elementos.
Confidencialidad
Integridad
No repudio
Disponibilidad
Autoevaluación
¿Qué característica no es propia de un sistema seguro?
Integridad.
Disponibilidad.
Rapidez.
No repudio.
No es correcto, repasa los conocimientos de este apartado.
No, repasa los conocimientos del apartado.
Correcto.
Incorrecto, repasa el apartado.
Firefox Developer Edition
https://educacionadistancia.juntadeandalucia.es/formacionprofesional...
2 de 58
15/5/24, 17:26

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

Programación Segura

Firefox Developer Edition https://educacionadistancia.juntadeandalucia.es/formacionprofesional ... Programación segura Caso práctico Juan esta terminado de realizar una aplicación. Ministerio de Educación. Uso educativo-nc. Elaboración propia. María: Hola Juan. Ya he visto que estas terminado la aplicación para la empresa. Recientemente hemos tenido bastantes problemas con la seguridad en las aplicaciones desarrolladas porque cada vez es más frecuente sufrir ataques informáticos. Juan: ¿ Y que tengo que tener en cuenta? Pensaba que la seguridad informática era una funcion de los administradores de la red y de los servidores. Ya sabes, cortafuegos, gestión de usuarios, ... María. Una parte muy importante de la seguridad de la empresa reside en la red y en los servidores. Pero ten en cuenta, que cuando el usuario puede ejecutar la aplicación, la seguridad del sistema queda en la aplicación. Tenemos que tener mucho cuidado en la seguridad de las aplicaciones que desarrollamos. Mira, a continuación, vamos a ver una introducción a la seguridad informática haciendo hincapié en las aplicaciones y luego entraremos en más detalle, en la programación de aplicaciones seguras. 1 de 58 15/5/24, 17:26Firefox Developer Edition https://educacionadistancia.juntadeandalucia.es/formacionprofesional ...

Introducción a la Seguridad Informática

1 .- Introducción a la seguridad Informática. Caso práctico María: Mira Juan. Ahora vamos a ver los conceptos mas importantes sobre la seguridad informática, para saber cuando un sistema o aplicación es seguro." Ministerio de Educación. Uso educativo-nc. Después, nos centraremos en la seguridad de las aplicaciones, para saber como programador que recomendaciones tenemos que tener en cuenta. Elaboración propia. Juan: Ok, estupendo. Estoy deseando empezar ...

Según la Real Academia Española, seguridad es "la cualidad de seguro, es decir, de estar libre y exento de todo daño, peligro o riesgo". En informática, como en tantas facetas de la ihnri4, Dominio público. vida, la seguridad entendida según la definición anterior es prácticamente imposible de conseguir, por lo que se ha relajado acercándose más al concepto de fiabilidad; se entiende un sistema seguro como aquel que se comporta como se espera de él.

De los sistemas informáticos, ya sean sistemas operativos, servicios o aplicaciones, se dice que son seguros si cumplen las siguientes características:

  1. Confidencialidad. Característica de seguridad que establece que la informacion es accesible unicamente por las entidades autorizadas. Requiere que la información sea accesible únicamente para las entidades autorizadas.
  2. Integridad. Característica de seguridad que establece que la información debe conservarse correctamente y sólo puede ser modificada por las entidades autorizadas. Requiere que la información sólo pueda ser modificada por las entidades autorizadas. La modificación incluye escritura, cambio, borrado, creación y reenvío de los mensajes transmitidos.
  3. No repudio. Característica de seguridad en la que un usuario es responsable de sus acciones. Ofrece protección a un usuario frente a otro que niegue posteriormente que se realizó cierta comunicación. El no repudio de origen protege al receptor de que el emisor niegue haber enviado el mensaje, mientras que el no repudio de recepción protege al emisor de que el receptor niegue haber recibido el mensaje. Las firmas digitales constituyen el mecanismo más empleado para este fin.

1 Disponibilidad. Características de seguridad en la que establece que los recursos deben estar disponibles. Requiere que los recursos del sistema informático estén disponibles para las entidades autorizadas cuando los necesiten.

El tratamiento de los posibles incidentes de seguridad exige que toda organización tenga definida una política de seguridad, cuya función sea establecer las responsabilidades y reglas necesarias para evitar amenazas y minimizar los efectos de éstas. Lo primero que se debe realizar es identificar que queremos proteger.

Desde el punto de vista informático, existen tres tipos de elementos que pueden sufrir amenazas:

  • hardware,
  • software,
  • datos.

El más sensible, y en el que se basa casi toda la literatura sobre seguridad, son los datos, ya que es el unico elemento que depende exclusivamente de la organización. Es decir, tanto el hardware como el software, si en la peor de las situaciones se pierden, siempre se pueden adquirir y/o instalarlos; pero los datos pertenecen a la organización y nadie puede, en el caso de pérdida, proporcionarlos. Sin embargo, la seguridad se debe entender a todos los niveles y aplicarla a todos los elementos.

Autoevaluación de Características de Seguridad

Autoevaluación ¿Qué característica no es propia de un sistema seguro? Integridad. Disponibilidad. Rapidez. No repudio. No es correcto, repasa los conocimientos de este apartado. No, repasa los conocimientos del apartado. Correcto. Incorrecto, repasa el apartado. Solución 1. Incorrecto 2. Incorrecto 3. Opción correcta 4. Incorrecto 2 de 58 15/5/24, 17:26Firefox Developer Edition https://educacionadistancia.juntadeandalucia.es/formacionprofesional ...

Amenazas de Seguridad

1.1 .- Amenazas de seguridad. Se entiende por amenaza una condición del entorno del sistema de información (por ejemplo: persona, máquina) que, dada una oportunidad, podría dar lugar a que se Julio Gómez López. Uso educativo-nc. Elaboración propia. produjese una violación de la seguridad (confidencialidad, integridad, disponibilidad o uso legítimo).

Las amenazas de seguridad pueden caracterizarse modelando el sistema como un flujo de información; desde una fuente, como por ejemplo un fichero o un equipo, a un destino, como por ejemplo otro fichero o un usuario.

Tal y como puede ver en la figura, las cuatro categorías generales de amenazas o ataques son las siguientes:

  • Interrupción. Un recurso del sistema es destruido o deja de estar disponible. Se trata de un ataque contra la disponibilidad. Un ejemplo de ataque es la destrucción de un elemento hardware, como un disco duro, cortar una linea de comunicación o deshabilitar el sistema de gestión de ficheros.

1 Intercepcion. Una entidad no autorizada consigue acceso a un recurso. Se trata de un ataque contra la confidencialidad. La entidad no autorizada puede ser una persona, un programa o un ordenador. Un ejemplo de este ataque es escuchar una línea para registrar los datos que circulen por la red y la copia ilícita de ficheros o programas (intercepción de datos), o bien la lectura de las cabeceras de paquetes para desvelar la identidad de uno o más de los usuarios implicados en la comunicación observada ilegalmente (intercepción de identidad).

  • Modificación. Una entidad no autorizada no solo consigue acceder a un recurso, sino que es capaz de manipularlo. Se trata de un ataque contra la integridad. Un ejemplo de este ataque es alterar un programa para que funcione de forma diferente, modificar el contenido de un fichero o de un mensaje transferido por red.
  • Fabricación. Amenaza de seguridad en la que se crean datos de una forma no autorizada. Se trata de un ataque contra la autenticidad. Tiene lugar cuando una entidad no autorizada inserta objetos falsificados en el sistema. Un ejemplo de este ataque es la inserción de mensajes espurios (mensajes basura) en una red o añadir registros a un fichero.

Autoevaluación de Amenazas

Autoevaluación ¿En qué categoría de amenaza se clasifica un programa para escuchar el tráfico de la red? Interrupción. Intercepción. Modificación. Fabricación. No, repasa los conocimientos del apartado. Correcto. Incorrecto. No es correcto, repasa de nuevo. Solución 1. Incorrecto 2. Opción correcta 3. Incorrecto 4. Incorrecto 3 de 58 15/5/24, 17:26Firefox Developer Edition https://educacionadistancia.juntadeandalucia.es/formacionprofesional ...

Clasificación de Ataques

1.2 .- Ataques. Los ataques se pueden clasificar en términos de ataques pasivos y ataques activos. dias, Dominio público.

  • Ataques pasivos. El atacante no altera la comunicación, sino que únicamente la escucha o monitoriza para obtener información de lo que está siendo transmitido. El principal uso que se suele realizar de los ataques pasivos es para ver el tráfico de un equipo, obtener las contraseñas de red, etc. Los ataques pasivos son muy difíciles de detectar, ya que no provocan ninguna alteración de los datos. Sin embargo, es posible evitar su éxito mediante el cifrado de la información.
  • Ataques activos. Estos ataques implican algún tipo de modificación del flujo de datos transmitido o la creación de un falso flujo de datos. Algunas formas puede ser: suplantación de identidad (el intruso se hace pasa por un usuario legítimo), reactuación (se reenvían mensajes legítimos), modificación de mensajes, denegación de servicio (se satura un servicio para que no pueda ser utilizado correctamente), etc.

Más Información sobre Ataques

Para saber más Si deseas más información sobre los diferentes tipos de ataques informáticos puedes consultar la siguiente tabla: Tabla de ataques informáticos 4 de 58 15/5/24, 17:26Firefox Developer Edition https://educacionadistancia.juntadeandalucia.es/formacionprofesional ...

Vulnerabilidades en el Software

1.3 .- Vulnerabilidades en el software. Al, Dominio público. Debido al auge de Internet, las vulnerabilidades de software son uno de los mayores problemas de la informática actualmente. Las aplicaciones actuales cada vez tratan con más datos (personales, bancarios, etc.) y por eso, cada vez es más necesario que las aplicaciones sean seguras.

Una vulnerabilidad de software puede definirse como un fallo o hueco de seguridad detectado en algun programa o sistema informático que puede ser utilizado para entrar en los sistemas de forma no autorizada.

De una forma sencilla, se trata de un fallo de diseño de algún programa, que puede tener instalado en su equipo, y que permite a los atacantes realizar una acción maliciosa. Si nos centramos en una aplicación, es posible que ese fallo de seguridad permita a un usuario que acceda o manipule a una información a la que no esté autorizado.

Pero el gran problema de los agujeros de seguridad reside en la forma en que son detectados. Cuando una aplicación tiene una cierta envergadura, se encarga el trabajo de detectar fallos de seguridad a usuarios externos para que utilicen la aplicación normalmente y/o a expertos de seguridad para que analicen a fondo la seguridad de la aplicación.

A pesar de que antes de lanzar una aplicación al mercado se intentan descubrir y solucionar todos sus fallos de seguridad, en muchas ocasiones se descubren después y, por lo tanto, es necesario informar a los usuarios y permitir que se actualicen a la última versión que se encuentre libre de fallos.

Para poder garantizar la seguridad de una aplicación en Java nos vamos a centrar en dos pilares:

  • Seguridad interna de aplicación. A la hora de realizar la aplicación se debe programar de una forma robusta para que comporte tal y como esperamos de ella. Algunas de las técnicas que podemos implementar, y que veremos en el segundo apartado, es la gestion de excepciones, validaciones de entradas de datos y la utilización de los ficheros de registro (también conocidos como logs).
  • Políticas de acceso. Una vez que tenemos una aplicación "segura" es importante definir las políticas de acceso para determinar las acciones que puede realizar la aplicación en nuestro equipo. Por ejemplo, podemos indicar que la aplicación pueda leer los ficheros de una determinada carpeta, enviar datos a través de Internet a un determinado equipo, etc. De esta forma, aunque un usuario malicioso utilice la aplicación de forma incorrecta, se limita el impacto de su ataque. Así, si hemos indicado que sólo puede leer los ficheros de la carpeta c:/datos, el atacante nunca podrá modificar esos datos o leer los ficheros de otro directorio.

Autoevaluación de Políticas de Acceso

Autoevaluación ¿Qué permiten las políticas de acceso ?: Indicar los recursos a los que puede acceder una determinada aplicación. Gestionar los usuarios del sistema. Permite el acceso del usuario al sistema de forma correcta. Correcto. No es correcto, repasa los conocimientos del apartado. Incorrecto. Solución 1. Incorrecto 2. Incorrecto 3. Opción correcta 5 de 58 15/5/24, 17:26

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.