Está en la página 1de 12

PROGRAMACIÓN AVANZADA I

SEMANA 7

Seguridad con PHP

Reservados todos los derechos Instituto Superior de Artes y Ciencias de la Comunicación S.A.. No se permite copiar, reproducir, reeditar, descargar,
publicar, emitir, difundir, de forma total o parcial la presente obra, ni su incorporación a un sistema informático, ni su transmisión en cualquier
forma o por cualquier medio (electrónico, mecánico, fotocopia, grabación u otros) sin autorización previa y por escrito de Instituto Superior de
Artes y Ciencias de la Comunicación S.A. La infracción de dichos derechos puede constituir un delito contra la propiedad intelectual.
APRENDIZAJES ESPERADOS
El estudiante será capaz de:

• Aplicar algoritmos dando solución a problemas de


seguridad que se presentan en los sistemas.

IACC-2020
2
SEMANA 7 – PROGRAMACIÓN AVANZADA I

APRENDIZAJES ESPERADOS ................................................................................................................. 2


INTRODUCCIÓN ................................................................................................................................... 4
RESUMEN ............................................................................................................................................ 5
PALABRAS CLAVE ................................................................................................................................. 5
PREGUNTAS GATILLANTES .................................................................................................................. 5
1. SEGURIDAD CON PHP ...................................................................................................................... 6
2. SEGURIDAD EN EL CLIENTE ............................................................................................................. 6
3. SEGURIDAD EN EL SERVIDOR .......................................................................................................... 6
3.1. LLAVES SSH .......................................................................................................................... 7
3.2. CORTAFUEGOS .................................................................................................................... 7
3.3. VPN Y REDES PRIVADAS ...................................................................................................... 7
3.4. INFRAESTRUCTURA DE LLAVES PÚBLICAS Y ENCRIPTACIÓN SSL/TLS ................................. 7
3.5. AUDITORÍA DE SERVICIO ..................................................................................................... 8
3.6. AUDITORÍA DE ARCHIVOS Y SISTEMAS DE DETECCIÓN DE INTRUSOS ................................ 8
3.7. AMBIENTES AISLADOS DE EJECUCIÓN ................................................................................ 8
4. SEGURIDAD DE APLICACIONES .................................................................................................... 8
4.1. CONTROL DE ACCESO .......................................................................................................... 8
4.2. VALIDACIÓN DE ENTRADA................................................................................................... 9
5. Seguridad en la comunicación .................................................................................................... 9
COMENTARIO FINAL .......................................................................................................................... 10
REFERENCIAS ..................................................................................................................................... 11

IACC-2020
3
SEMANA 7 – PROGRAMACIÓN AVANZADA I

INTRODUCCIÓN
PHP es un intérprete eficaz que se ha tomado para que forme parte de los servidores web, debido
a que tiene la particularidad de ser capaz de acceder a los archivos, ejecutar comandos y abrir
conexiones de red en el servidor.

Actualmente, existen un gran número de herramientas para asegurar y resguardar ciertos


elementos de su portafolio de aplicaciones, desde bloquear los cambios en la codificación hasta
evaluar las amenazas de codificación involuntarias, de igual manera las herramientas de seguridad
que se integren bajo un ambiente de desarrollo harán que el flujo de trabajo sea más efectivo.

En esta oportunidad se abordarán temas respecto a la seguridad con PHP, tomando en


consideración ciertos puntos importantes como: seguridad en el cliente, control de acceso,
validación de datos de entrada, seguridad en el servidor, entre otros.

“PHP es un intérprete eficaz que permite acceder a archivos, comandos


y conexiones con el servidor”.

IACC-2020
4
SEMANA 7 – PROGRAMACIÓN AVANZADA I

RESUMEN
En el estudio de esta unidad se abordarán temas relacionados a la seguridad con PHP, enfatizando
de qué manera hacer que nuestros desarrollos contengan ciertas políticas de seguridad que impidan
el acceso a usuarios no autorizados que hagan de cierta forma un sistema vulnerable.
A su vez se conocerán ciertos criterios para que nuestros clientes tengan mayor confiabilidad al
momento de ingresar sus datos. Aunado a ello, se abordarán estructuras de validación de datos de
entrada para evitar ataques comunes.

PALABRAS CLAVE

Seguridad Cliente Comunicaciones


PHP Protección Servidor

PREGUNTAS GATILLANTES
• ¿Es confiable que ningún sistema tenga ningún tipo de seguridad?

• ¿Qué conocimientos tiene respecto a otros tipos de seguridad?

• ¿Por qué es importante la seguridad en los sistemas?

IACC-2020
5
SEMANA 7 – PROGRAMACIÓN AVANZADA I

1. SEGURIDAD CON PHP


Es de suma importancia conocer cuáles son los principios de seguridad.

Oliag, (2004), expresa que los tres objetivos fundamentales de la seguridad informática son:
confidencialidad, integridad, disponibilidad. A su vez indica que se deben identificar los objetivos de
seguridad de una aplicación para saber si un diseño o implementación los satisfacen.

Aunado a ello comenta que, para identificar y definir requisitos de seguridad, se suele emplear dos
tipos de documentos:

• Perfil de protección (Protection Profile o PP): es un documento que define las propiedades
de seguridad que se desea que tenga un producto; básicamente se trata de un listado de
requisitos de seguridad.

• Objetivo de seguridad (Security Target o ST): es un documento que describe lo que hace un
producto que es relevante desde el punto de vista de la seguridad.

Otro grupo de requisitos de seguridad que puede necesitar un sistema o aplicación son: auditoría
de seguridad, no rechazo y soporte criptográfico.

2. SEGURIDAD EN EL CLIENTE
Los requisitos funcionales necesarios en cualquier sistema de información o web es la protección de
datos de usuario, es por ello por lo que, surge la necesidad de crear una política para la gestión de
dichos datos aplicando control de acceso y reglas de flujo de información.

Además, la identificación y autenticación que abarquen el uso de técnicas de validación de


identidad.

Para Oliag (2004), otro requisito funcional la definición de perfiles de usuario y niveles de acceso
asociados que cumplan con la gestión de seguridad. La privacidad y autodefensa deben estar
presentes e incluir el funcionamiento y fallas de manera segura si esa validación no se cumple.

3. SEGURIDAD EN EL SERVIDOR
Ellingwood (2018), dice que es necesario seguir algunas prácticas básicas de seguridad que deben
ser aplicadas antes o durante la configuración de aplicaciones e indica siete medidas de seguridad
para la protección de servidores. Entre estas:

IACC-2020
6
SEMANA 7 – PROGRAMACIÓN AVANZADA I

3.1. LLAVES SSH


Son un par de llaves criptográficas que pueden ser usadas para autenticarse en un servidor SSH; es
un método alternativo al uso de contraseñas. La creación del par compuesto por llave pública y
privada es llevada a cabo como un paso anterior a la autenticación. La llave privada la conserva el
usuario de manera secreta y segura, mientras que la llave pública puede ser compartida con otros
usuarios sin restricción.

3.2. CORTAFUEGOS
Es una pieza de software (o hardware) que controla cuáles servicios se encuentran expuestos a la
red. Es decir, que bloquean o restringen el acceso a todo puerto exceptuando únicamente aquellos
que deben estar habilitados para el público.

• En un servidor se encuentran diferentes servicios


ejecutándose por defecto. Éstos pueden ser categorizados
dentro de los siguientes grupos: servicios públicos, servicios
privados y servicios internos. Ellingwood, (2018).

3.3. VPN Y REDES PRIVADAS


Las redes privadas son las redes que se encuentran habilitadas únicamente para ciertos usuarios o
servidores.

Una VPN, de la sigla en inglés asociada a Red Privada Virtual, es una de las formas de crear
conexiones seguras entre computadores remotos, presentándose como si éstos se encontraran en
una red privada local. Esto permite configurar tus servicios como si estuviesen en una red privada,
así como de conectar servidores de manera segura.

3.4. INFRAESTRUCTURA DE LLAVES PÚBLICAS Y ENCRIPTACIÓN SSL/TLS


La Infraestructura de Llaves Públicas o PKI, por su sigla en inglés, se refiere a un sistema diseñado
para crear, administrar y validar certificados que identifiquen individuos y encripta la comunicación.
Los certificados SSL o TLS pueden ser usados para autenticar diferentes entidades entre sí. Cuando
la autentificación se ha llevado a cabo, también pueden ser usados para establecer una
comunicación encriptada.

IACC-2020
7
SEMANA 7 – PROGRAMACIÓN AVANZADA I

3.5. AUDITORÍA DE SERVICIO


La auditoría de servicio es un proceso para descubrir cuáles servicios están ejecutándose en los
servidores de tu infraestructura. Regularmente, los sistemas operativos se encuentran configurados
por defecto para ejecutar ciertos servicios al arranque. La instalación de software adicional a veces
puede incluir dependencias que se ejecutan, también, de manera automática.

3.6. AUDITORÍA DE ARCHIVOS Y SISTEMAS DE DETECCIÓN DE INTRUSOS


La auditoría de archivos es el proceso de comparar el sistema actual contra un registro de los
archivos y de las características de los archivos de su sistema, cuando se encuentra en un estado
conocido. Esto se usa para detectar cambios que no han sido autorizados en el sistema.

3.7. AMBIENTES AISLADOS DE EJECUCIÓN


Los ambientes aislados de ejecución hacen referencia a cualquier método usado para que un
componente individual se ejecute dentro de su propio espacio dedicado.

4. SEGURIDAD DE APLICACIONES
Se refiere al uso de principios y buenas prácticas de seguridad durante el ciclo de vida del software.

Prensa Cambio Digital OnLine, (2019), en su artículo ¿Qué es la seguridad de las aplicaciones? -Un
proceso y herramientas para asegurar el software definen la seguridad de las aplicaciones como el
proceso de hacer que las aplicaciones sean más seguras al encontrar, corregir y mejorar su
seguridad. Gran parte de esto sucede durante la fase de desarrollo, pero incluye herramientas y
métodos para proteger las aplicaciones una vez que se implementan. Esto se está volviendo más
importante a medida que, con cada vez más frecuencia, las aplicaciones son el objetivo de los
ataques de los hackers.

4.1. CONTROL DE ACCESO


En el artículo publicado por Nivel 4 Seguridad (2018), indica que el control de acceso (o autorización)
determina qué usuarios se comunican con qué sistemas y recursos dentro de su empresa. Cuando
se pierde el control de acceso, cualquiera puede enviar solicitudes a sus aplicaciones de red. Esta
pérdida significa que el acceso no autorizado a la funcionalidad y los recursos del sistema ha creado
una vulnerabilidad explotable que abre a su empresa a resultados perjudiciales y potencialmente
costosos.

IACC-2020
8
SEMANA 7 – PROGRAMACIÓN AVANZADA I

Entre las vulnerabilidades más comunes de control de acceso se tienen:

• Elevación de privilegios.
• Manipulación de metadatos que permita la elevación de privilegios.
• Pasar por alto la comprobación de los privilegios al modificar la URL.
• La configuración incorrecta de CORS permite el acceso no autorizado a una API.
• Acceder a una API sin control de acceso mediante el uso de verbos POST, PUT y DELETE.
• Forzar la navegación a páginas autenticadas como un usuario no autenticado o a páginas
privilegiadas como usuario estándar.
• Permitir que la clave primaria se cambie a la de otro usuario, pudiendo ver o editar la cuenta
de otra persona.

4.2. VALIDACIÓN DE ENTRADA


Oliag, (2017), recomienda validar todas las entradas que vienen de fuentes no fiables. Vigilar
caracteres especiales: caracteres de control, caracteres especiales para el Shell, SQL, etc.
Delimitadores, verificar la codificación y decodificación de URLs y la validez de los juegos de
caracteres, minimizar las decodificaciones; no decodificar más de una vez de modo innecesario,
validación de coreos, comprobar dominios de cookies, validar nombres locales, etc.

5. SEGURIDAD EN LA COMUNICACIÓN
Se refiere al nivel de protección encargado de evitar que cualquier entidad no autorizada obstruya
las comunicaciones y pueda ingresar a la información. Esta norma abarca la criptología, emisión
segura, seguridad del flujo y la seguridad física del equipo que administra las redes y
comunicaciones.

IACC-2020
9
SEMANA 7 – PROGRAMACIÓN AVANZADA I

COMENTARIO FINAL
Hoy en día, los ataques hacia los servidores web de grandes y pequeñas empresas se han
caracterizado por ser los más atrayentes, debido a que un gran porcentaje de la población mundial
depende de Internet, por lo que resulta muy fácil darse cuenta de un ataque, debido a que en pocos
segundos se darán cuenta que se han realizado modificaciones significativas en el servidor que haya
sido comprometido.

El uso de estrategias de seguridad son algunas de las tantas mejoras que pueden incrementar la
eficacia de la protección de los sistemas implementados, ya que la mayor parte de ataques vienen
como resultado de una mala configuración en el servidor o un mal diseño de este.

IACC-2020
10
SEMANA 7 – PROGRAMACIÓN AVANZADA I

REFERENCIAS

Ellingwood, J. (2018). Siete medidas de seguridad para proteger tus servidores. [Web].
Recuperado de: https://www.digitalocean.com/community/tutorials/siete-medidas-de-
seguridad-para-proteger-tus-servidores-es

Nivel 4 seguridad, (2018). Buenas prácticas de desarrollo seguro. [Web]. Recuperado de:
https://blog.nivel4.com/hacking/buenas-practicas-de-desarrollo-seguro-a5-perdida-de-
control-de-acceso/

Oliag, S. (2004). Seguridad en el desarrollo de aplicaciones. [Web]. Recuperado de:


https://www.uv.es/~sto/charlas/SDA/SDA.pdf

Prensa Cambio Digital OnLine (2019). ¿Qué es la seguridad de las aplicaciones? [Web].
Recuperado de: https://cambiodigital-ol.com/2019/02/que-es-la-seguridad-de-las-
aplicaciones/

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2020). Seguridad con PHP. Programación Avanzada I. Semana 7.

IACC-2020
11
IACC-2020
12

También podría gustarte