Sei sulla pagina 1di 22

TEMA 1.

- TELEMATICA Y SERVICIOS TELEMATICOS


La telemática se refiere a la combinación de la informática y de la tecnología de la comunicación para el
envío y la recepción de datos. La noción se asocia a diferentes técnicas, procesos, conocimientos y
dispositivos propios de las telecomunicaciones y de la computación.

Por lo tanto, es muy amplio ya que abarca el diseño, el análisis y la aplicación de todos los servicios y de
la infraestructura que permiten procesar, almacenar y transmitir información.

Los servicios Telemáticos son aquellos que utilizando como soporte servicios básicos, permiten el
intercambio de información entre terminales con protocolos establecidos para sistemas de
interconexión abiertos.

Un servicio de telecomunicación1 es una prestación o utilidad que un proveedor de servicios establece a


través de un sistema de telecomunicación para satisfacer una necesidad específica del cliente

Los servicios telemáticos permiten acceder a los servicios propios de la sociedad de la Información a
través de una red de telecomunicaciones pública o privada, garantizando un flujo continuo y recíproco
de información entre emisores y receptores, siendo esta una interacción de ida y vuelta. Es decir, son
servicios que utilizan generalmente técnicas de procesamiento de la información en forma remota,
combinando el empleo de ordenadores y redes de comunicaciones .Es un programa que corre en uno o
varios computadores, generalmente del tipo Servidor, y que ofrece funcionalidades que pueden ser
utilizadas o aprovechadas en redes de área local o redes de área extensa por otros programas o
aplicaciones.

EJEMPLOS DE SERVICIOS DE INTERNET

- World Wide Web


- Servicio de correo electrónico
- Servicios de red social
- Servicios de transferencia de archivos
- Servicios de alojamiento de archivos
- Servicios de alojamiento de vídeos

TEMA 2.- VENTAJAS Y DESVENTAJAS DE LOS SERVICIOS TELEMATICOS


La telemática ofrece una gran variedad de servicios, así mismo acarrea una serie de VENTAJAS como lo
son:

- Aporta rapidez y flexibilidad en la transmisión de informaciones escritas gracias a la telecopia.


- Permite la interacción con redes telemáticas de fácil manejo como Internet.
- Brinda a todos sus servicios de programas informáticos avanzados que ofrecen lenguajes de
acceso simplificados accesibles para todos.
Sin embargo, la Telemática presenta una serie de problemas de tipo económico, técnico y jurídico,
presentando así DESVENTAJAS como lo son:

- Estos servicios telemáticos exigen un elevado costo de instalación, debido a la distribución


geográfica de sus usuarios, que exige a su vez el establecimiento de redes muy amplias.
- La utilización de materiales procedentes de distintos fabricantes dificulta la normalización
técnica de la telemática.
- Algunos bancos de datos a los que puede accederse con demasiada facilidad amenazan las
libertades individuales

TEMA 3.- SERVICIOS DE INTERNET (TRANSFERENCIA DE ARCHIVOS,


VIDEOCONFERENCIA, ETC)
ARCHIVO EN MI COMPU

TEMA 4.- DHCP, APIPA, DIRECCIONES ESPECIALES


DHCP

DHCP (sigla en inglés de Dynamic Host Configuration Protocol) es un protocolo de red que permite a los
nodos de una red IP obtener sus parámetros de configuración automáticamente. Se trata de un
protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP
dinámicas y las va asignando a los clientes conforme estas van estando libres, sabiendo en todo
momento quien ha estado en posesión de esa IP, cuanto tiempo la ha tenido, a quien se la ha asignado
después.

Características de DHCP

Provee los parámetros de configuración a las computadoras conectadas a la red informática que lo
requieran (Mascara de red, puerta de enlace y otros) y también incluyen mecanismo de asignación de
direcciones de IP.

Este protocolo se publicó en octubre de 1993, estando documentado actualmente en la RFC 2131.

Asignación de direcciones IP por DHCP

Sin DHCP, cada dirección IP debe configurarse manualmente en cada ordenador y, si el ordenador se
mueve a otro lugar en otra parte de la red, se debe de configurar otra dirección IP diferente. El DHCP le
permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y,
automáticamente, asignar y enviar una nueva IP si el ordenador es conectado en un lugar diferente de la
red.

Asignación dinámica: el único método que permite la reutilización dinámica de las direcciones IP. El
administrador de la red determina un rango de direcciones IP y cada computadora conectada a la red
está configurada para solicitar su dirección IP al servidor cuando la tarjeta de interfaz de red se inicializa.
El procedimiento usa un concepto muy simple en un intervalo de tiempo controlable. Esto facilita la
instalación de nuevas máquinas clientes a la red.
Parámetros configurables de DHCP

Lista de opciones configurables:

- Dirección del servidor DNS


- Nombre DNS
- Puerta de enlace de la dirección IP
- Dirección de Publicación Masiva (broadcast address)
- Máscara de subred
- Tiempo máximo de espera del ARP (Protocolo de Resolución de Direcciones según siglas en
inglés)
- Servidores NIS (Servicio de Información de Red según siglas en inglés)
- Dominios NIS
- Servidores NTP (Protocolo de Tiempo de Red según siglas en inglés)
- Servidor SMTP
- Nombre del servidor WINS

APIPA

APIPA (Automatic Private Internet Protocol Addressing - Direccionamiento Privado Automático del
Protocolo de Internet) es un protocolo que utilizan los sistemas que funcionan bajo Windows 98 o
versiones posteriores para obtener la configuración de red cuando el sistema está configurado para
obtener una dirección dinámicamente y, al iniciar, éste no encuentra un servidor DHCP (Dynamic Host
Configuration Protocol). El procedimiento APIPA asigna una dirección IP y su máscara de red
únicamente, y no configura ningún otro parámetro que configuraría un servidor DHCP, como pueden ser
una ruta por omisión o un servidor DNS. Esto significa que el sistema APIPA permite la funcionalidad
básica para que el equipo funcione en un esquema de red local, pero no proporcionará salida fuera de la
misma, a Internet.

Al no detectar la presencia de un servidor DHCP, el sistema por medio de APIPA se asigna una dirección
IP privada, de clase B en el rango 169.254.0.1 a 169.254.255.254 con máscara 255.255.0.0 (el bloque
definido como link-local por el RFC 3330). El servicio detectará si la dirección a asignar se encuentra en
uso utilizando paquetes broadcast; el recibir respuesta a dichos paquetes indica que la dirección ya fue
tomada por otro equipo, en cuyo caso se seleccionaría otra dirección alternativa. No obstante, cada
cinco minutos el cliente buscará nuevamente un servidor DHCP. El procedimiento utilizado por APIPA
sólo funciona con sistemas de IPv4, ya que IPv6 utiliza otro procedimiento.

APIPA es una característica muy útil cuando se desea configurar una red simple y pequeña que no
requiere conectividad con otras redes, aunque lleva a complejidad en la depuración, dado que puede
aparecer ante errores de configuración del servidor DHCP o ante problemas de cableado.
DIRECCIONES ESPECIALES

Direcciones IP especiales

Existen ciertas direcciones IP que tienen significados especiales. Ya vimos las direcciones de red, las
cuales son un tipo de dirección IP especial.

Broadcast

En toda red existe un mecanismo para enviar un mensaje o paquete que reciben todas las
computadoras de la red. Este mecanismo se llama broadcast.

En las redes Ethernet/802.3 basta con enviar el mensaje a la dirección FF-FF-FF-FF-FF-FF. En las redes IP,
la dirección de broadcast es 255.255.255.255. Pero Internet es una red de redes, no es práctico ni
deseable que cualquier broadcast se propague por el mundo entero. Por tanto, un mensaje con
dirección de destinatario 255.255.255.255 solamente se difunde en la red local (la red al cual pertenece
la computadora o dispositivo emisor).

Para enviar un broadcast a una red no local, se utiliza el broadcast dirigido. Solamente tenemos que
especificar la dirección de red y en la dirección de dispositivo la llenamos de 1 (binarios, por supuesto).
Por ejemplo, si enviamos un mensaje con dirección 172.17.255.255, lo recibirán todos dispositivos de la
red 172.17.0.0.

Notemos que las direcciones de broadcast no tienen sentido como direcciones de origen.

Existe un tercer tipo de broadcast, el multicast. Consiste en utilizar una dirección clase D, la cual
especifica el grupo de dispositivos que recibirán el paquete. Los grupos son dinámicos, las computadoras
pueden integrarse o salir de ellos en cualquier momento, así como pertenecer a varios grupos a la vez.

0.0.0.0 y 127.0.0.1

Es muy común en Informática utilizar el cero como un valor que indica una condición especial. Internet
no es la excepción. La dirección 0.0.0.0 significa "este dispositivo" y solamente se utiliza cuando se está
iniciando el sistema y no se conoce todavía la dirección asignada al dispositivo. No está permitido su uso
como dirección de destino.

En cambio, la dirección 127.0.0.1, que también significa "este mismo dispositivo", sí se puede usar como
dirección de destino y el efecto es que los mensajes que se le envíen "rebotan" y vuelven a ser recibidos
por el mismo dispositivo. Esto es muy útil para propósitos de pruebas. Por ejemplo, podemos correr un
servidor Web en la misma computadora donde estemos haciendo páginas .html dinámicas; cuando
queramos ver cómo lucen, podemos correr el navegador con el URL "http://127.0.0.1/index.html". Esta
dirección también se llama "loopback address".
Realmente todas las direcciones del rango 127.0.0.0 - 127.255.255.255 se comportan de la misma
manera, pero en la práctica se usa solamente 127.0.0.1.

Un detalle importante es que las direcciones 127.0.0.0 a 127.255.255.255 no deben aparecer nunca
fuera de la computadora o dispositivo de red. Ni siquiera en la red local. El sistema operativo debería
encargarse de esto. Si los ve en su red, es señal de que algo anda mal, muy posiblemente una intrusión.

No todas las direcciones comprendidas entre la 0.0.0.0 y la 223.255.255.255 son válidas para un host:
algunas de ellas tienen significados especiales. Las principales direcciones especiales se resumen en la
siguiente tabla. Su interpretación depende del host desde el que se utilicen.

Bits de red Bits de host Significado Ejemplo


todos 0 Mi propio host 0.0.0.0

todos 0 host Host indicado dentro de mi red 0.0.0.10


Red todos 0 Red indicada 192.168.1.0
todos 1 Difusión a mi red 255.255.255.255
Red todos 1 Difusión a la red indicada 192.168.1.255
127 cualquier valor Loopback (mi propio host) 127.0.0.1
válido de host

Difusión o broadcasting es el envío de un mensaje a todos los ordenadores que se encuentran en una
red. La dirección de loopback (normalmente 127.0.0.1) se utiliza para comprobar que los protocolos
TCP/IP están correctamente instalados en nuestro propio ordenador. Lo veremos más adelante, al
estudiar el comando PING.
0.0.0.0 Se usa por las estaciones cuando están siendo arrancadas.

127.0.0.1 se reserva para especificar la estación actual.


TEMA 5.- CONFIGURACION PARA LAS APLICACIONES DE INTERNET
El elemento de configuración Elemento <system.Net> (configuración de red) contiene información de
configuración de red para las aplicaciones. Con el Elemento <system.Net> (configuración de red), puede
establecer servidores proxy, establecer parámetros de administración de conexiones e incluir módulos
personalizados de autenticación y solicitud en la aplicación.

El Elemento <defaultProxy> (configuración de red) define el servidor proxy devuelto por la clase
GlobalProxySelection. Cualquier elemento HttpWebRequest que no tenga su propia propiedad Proxy
establecida en un valor específico, usa el proxy predeterminado. Además de establecer la dirección de
proxy, puede crear una lista de direcciones de servidor que no vayan a usar el proxy y puede indicar que
no se debería usar el proxy para direcciones locales.

Es importante tener en cuenta que la configuración de Microsoft Internet Explorer se combina con los
valores de configuración, que tienen preferencia.

En el ejemplo siguiente se establece la dirección del servidor proxy predeterminada en


http://proxyserver, se indica que el proxy no debe usarse para las direcciones locales y se especifica que
todas las solicitudes a servidores ubicados en el dominio contoso.com deben omitir el proxy.

<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true"
/>
<bypasslist>
<add address="http://[a-z]+\.contoso\.com/" />
</bypasslist>
</defaultProxy>
</system.net>
</configuration>

Use el Elemento <connectionManagement> (configuración de red) para configurar el número de


conexiones persistentes que pueden realizarse a un servidor concreto o a todos los demás servidores.
En el ejemplo siguiente se configura la aplicación para que use dos conexiones persistentes al servidor
www.contoso.com, cuatro conexiones persistentes al servidor con la dirección IP 192.168.1.2 y una
conexión persistente a todos los demás servidores.
<configuration>
<system.net>
<connectionManagement>
<add address="http://www.contoso.com" maxconnection="2" />
<add address="192.168.1.2" maxconnection="4" />
<add address="*" maxconnection="1" />
</connectionManagement>
</system.net>
</configuration>

Los módulos de autenticación personalizados se configuran con el Elemento


<authenticationModules> (configuración de red). Los módulos de autenticación
personalizados deben implementar la interfaz IAuthenticationModule.

<configuration>
<system.net>
<authenticationModules>
<add type="MyAuthModule, MyAuthModule.dll" />
</authenticationModules>
</system.net>

</configuration>

Puede usar el Elemento <webRequestModules> (configuración de red) para configurar


la aplicación de modo que use módulos personalizados específicos del protocolo para
solicitar información de recursos de Internet. Los módulos especificados deben
implementar la interfaz IWebRequestCreate. Puede invalidar los módulos
predeterminados HTTP, HTTPS y de solicitud de archivos si especifica el módulo
personalizado en el archivo de configuración, como en el ejemplo siguiente.

<configuration>
<system.net>
<webRequestModules>
<add
prefix="HTTP"
type = "MyHttpRequest.dll, MyHttpRequestCreator"
/>
</webRequestModules>
</system.net>

</configuration>
TEMA 6.- CONSIDERACIONES BASICAS PARA EL DESARROLLO DE APLICACIONES
SOBRE INTERNET
ARCHIVO EN MI COMPU

TEMA 7.- CONSIDERACIONES DE SEGURIDAD


ARCHIVO EN MI COMPU

TEMA 8.- LA NORMA ISO 27001


ISO 27001 es una norma internacional que permite el aseguramiento, la confidencialidad e integridad de
los datos y de la información, así como de los sistemas que la procesan.

El estándar ISO 27001:2013 para los Sistemas Gestión de la Seguridad de la Información permite a las
organizaciones la evaluación del riesgo y la aplicación de los controles necesarios para mitigarlos o
eliminarlos.

La aplicación de ISO-27001 significa una diferenciación respecto al resto, que mejora la competitividad y
la imagen de una organización.

La Gestión de la Seguridad de la Información se complementa con las buenas prácticas o controles


establecidos en la norma ISO 27002.

Estructura de la norma ISO 27001


1. Objeto y campo de aplicación: La norma comienza aportando unas orientaciones sobre el
uso, finalidad y modo de aplicación de este estándar.

2. Referencias Normativas: Recomienda la consulta de ciertos documentos indispensables


para la aplicación de ISO27001.

3. Términos y Definiciones: Describe la terminología aplicable a este estándar.

4. Contexto de la Organización: Este es el primer requisito de la norma, el cual recoge


indicaciones sobre el conocimiento de la organización y su contexto, la comprensión de las
necesidades y expectativas de las partes interesadas y la determinación del alcance del SGSI.

5. Liderazgo: Este apartado destaca la necesidad de que todos los empleados de la


organización han de contribuir al establecimiento de la norma. Para ello la alta dirección ha de
demostrar su liderazgo y compromiso, ha de elaborar una política de seguridad que conozca toda la
organización y ha de asignar roles, responsabilidades y autoridades dentro de la misma.

6. Planificación: Esta es una sección que pone de manifiesto la importancia de la


determinación de riesgos y oportunidades a la hora de planificar un Sistema de Gestión de
Seguridad de la Información, así como de establecer objetivos de Seguridad de la Información y
el modo de lograrlos.
7. Soporte: En esta cláusula la norma señala que para el buen funcionamiento del SGSI la
organización debe contar con los recursos, competencias, conciencia, comunicación e información
documentada pertinente en cada caso.

8. Operación: Para cumplir con los requisitos de Seguridad de la Información, esta parte de
la norma indica que se debe planificar, implementar y controlar los procesos de la organización,
hacer una valoración de los riesgos de la Seguridad de la Información y un tratamiento de ellos.

9. Evaluación del Desempeño: En este punto se establece la necesidad y forma de llevar a


cabo el seguimiento, la medición, el análisis, la evaluación, la auditoría interna y la revisión por la
dirección del Sistema de Gestión de Seguridad de la Información, para asegurar que funciona
según lo planificado.

10. Mejora: Por último, en la sección décima vamos a encontrar las obligaciones que tendrá una
organización cuando encuentre una no conformidad y la importancia de mejorar continuamente la
conveniencia, adecuación y eficacia del SGSI.

TEMA 9.- SGSI Y APARTADO DE SEGURIDAD EN LOS PROCESOS DE DESARROLLO Y SOPORTE

El SGSI (Sistema de Gestión de Seguridad de la Información) es el concepto central sobre el que se


construye ISO 27001. La gestión de la seguridad de la información debe realizarse mediante un proceso
sistemático, documentado y conocido por toda la organización. Este proceso es el que constituye un
SGSI, que podría considerarse, por analogía con una norma tan conocida como ISO 9001, como el
sistema de calidad para la seguridad de la información. Garantizar un nivel de protección total es
virtualmente imposible, incluso en el caso de disponer de un presupuesto ilimitado. El propósito de un
sistema de gestión de la seguridad de la información es, por tanto, garantizar que los riesgos de la
seguridad de la información sean conocidos, asumidos, gestionados y minimizados por la organización
de una forma documentada, sistemática, estructurada, repetible, eficiente y adaptada a los cambios que
se produzcan en los riesgos, el entorno y las tecnologías.

La seguridad de la información, según ISO 27001, consiste en la preservación de su confidencialidad,


integridad y disponibilidad, así como de los sistemas implicados en su tratamiento, dentro de una
organización. Así pues, estos tres términos constituyen la base sobre la que se cimienta todo el edificio
de la seguridad de la información:

• Confidencialidad: la información no se pone a disposición ni se revela a individuos, entidades o


procesos no autorizados.

• Integridad: mantenimiento de la exactitud y completitud de la información y sus métodos de proceso.

• Disponibilidad: acceso y utilización de la información y los sistemas de tratamiento de la misma por


parte de los individuos, entidades o procesos autorizados cuando lo requieran.
Es posible trasladar ese modelo a un Sistema de Gestión de la Seguridad de la Información basado en
ISO 27001 de la siguiente forma:

Documentos de Nivel 1

Manual de seguridad: por analogía con el manual de calidad, aunque el término se usa también en otros
ámbitos. Sería el documento que inspira y dirige todo el sistema, el que expone y determina las
intenciones, alcance, objetivos, responsabilidades, políticas y directrices principales, etc., del SGSI.

Documentos de Nivel 2

Procedimientos: documentos en el nivel operativo, que aseguran que se realicen de forma eficaz la
planificación, operación y control de los procesos de seguridad de la información.

Documentos de Nivel 3

Instrucciones, checklists y formularios: documentos que describen cómo se realizan las tareas y las
actividades específicas relacionadas con la seguridad de la información.

Documentos de Nivel 4

Registros: documentos que proporcionan una evidencia objetiva del cumplimiento de los requisitos del
SGSI; están asociados a documentos de los otros tres niveles como output que demuestra que se ha
cumplido lo indicado en los mismos. De manera específica, ISO 27001 indica que un SGSI debe estar
formado por los siguientes documentos (en cualquier formato o tipo de medio):

• Alcance del SGSI: ámbito de la organización que queda sometido al SGSI, incluyendo una identificación
clara de las dependencias, relaciones y límites que existen entre el alcance y aquellas partes que no
hayan sido consideradas (en aquellos casos en los que el ámbito de influencia del SGSI considere un
subconjunto de la organización como delegaciones, divisiones, áreas, procesos, sistemas o tareas
concretas).

• Política y objetivos de seguridad: documento de contenido genérico que establece el compromiso de


la dirección y el enfoque de la organización en la gestión de la seguridad de la información.

• Procedimientos y mecanismos de control que soportan al SGSI: aquellos procedimientos que regulan
el propio funcionamiento del SGSI.

• Enfoque de evaluación de riesgos: descripción de la metodología a emplear (cómo se realizará la


evaluación de las amenazas, vulnerabilidades, probabilidades de ocurrencia e impactos en relación a los
activos de información contenidos dentro del alcance seleccionado), desarrollo de criterios de
aceptación de riesgo y fijación de niveles de riesgo aceptables .

• Informe de evaluación de riesgos: estudio resultante de aplicar la metodología de evaluación


anteriormente mencionada a los activos de información de la organización.

• Plan de tratamiento de riesgos: documento que identifica las acciones de la dirección, los recursos, las
responsabilidades y las prioridades para gestionar los riesgos de WWW.ISO27000.ES © 6 seguridad de la
información, en función de las conclusiones obtenidas de la evaluación de riesgos, de los objetivos de
control identificados, de los recursos disponibles, etc.
• Procedimientos documentados: todos los necesarios para asegurar la planificación, operación y
control de los procesos de seguridad de la información, así como para la medida de la eficacia de los
controles implantados.

• Registros: documentos que proporcionan evidencias de la conformidad con los requisitos y del
funcionamiento eficaz del SGSI.

• Declaración de aplicabilidad: (SOA -Statement of Applicability-, en sus siglas inglesas); documento que
contiene los objetivos de control y los controles contemplados por el SGSI, basado en los resultados de
los procesos de evaluación y tratamiento de riesgos, justificando inclusiones y exclusiones.

Para establecer y gestionar un Sistema de Gestión de la Seguridad de la Información en base a ISO


27001, se utiliza el ciclo continuo PDCA, tradicional en los sistemas de gestión de la calidad.

• Plan (planificar): establecer el SGSI

• Do (hacer): implementar y utilizar el SGSI.

• Check (verificar): monitorizar y revisar el SGSI.

• Act (actuar): mantener y mejorar el SGSI.

TEMA 10.- RIESGOS ACTUALES PARA APLICACIONES SOBRE INTERNET

Malware

Es el acrónimo en inglés de software malicioso (malicious software). El objetivo de este tipo de


aplicaciones es dañar la computadora. En la mayoría de los casos, la infección ocurre por “errores”
realizados por los usuarios, al ser engañados por el atacante. Existen muchas herramientas (antivirus,
antispyware) y buenas prácticas, que reducen el riesgo de infección, ante todas las variantes de códigos
maliciosos: virus, gusanos, troyanos, spyware, etc. La diferencia entre estas variantes radica en la forma
en que se distribuyen: algunas veces se aprovechan de sistemas vulnerables y otras de usuarios no
precavidos.

Spam

El spam es el famoso “correo basura”. Son aquellos mensajes que no fueron solicitados por el usuario y
que llegan a la bandeja de entrada. Normalmente, este tipo de correos contienen propagandas –
muchas veces engañosas – que incitan al usuario a ingresar a páginas, con ofertas “milagrosas”, cuyo
contenido es potencialmente dañino para el usuario.

Scam

Los scam son engaños o estafas, que se llevan a cabo a través de Internet. Se realizan de diversas formas
como, por ejemplo, a través de correos no solicitados (spam), así como también a través de técnicas de
Ingeniería Social. Estas últimas, intentan convencer al usuario de la prestación de un servicio cuando en
realidad sólo quieren acceder a información confidencial. Un ejemplo son los mensajes falsos solicitando
nuestra contraseña y clave de redes sociales a través de Internet.
Robo de información

Toda la información que viaja por la web, sin las medidas de precaución necesarias, corre el riesgo de
ser interceptada por un tercero. De igual modo, existen también ataques con esta finalidad. La
información buscada, normalmente apunta a los datos personales. Un paso en falso ante este tipo de
incidentes, puede exponer al menor de edad a la pérdida de dinero familiar o al robo de identidad.

2. Prácticas básicas de seguridad web

2.1 Balancear riesgo y usabilidad

Si bien la usabilidad y la seguridad en una aplicación web no son excluyentes una de la otra, alguna
medida tomada para incrementar la seguridad con frecuencia afecta la usabilidad. Normalmente
siempre se debe pensar en las maneras en que usuarios ilegítimos nos pueden atacar y la facilidad de
uso para los usuarios legítimos.

Es conveniente emplear medidas de seguridad que sean transparentes a los usuarios y que no resulten
engorrosas en su empleo. Por ejemplo, el uso de un login que solicita el nombre de usuario y contraseña
(Ilustración 2.), permite controlar el acceso de los usuarios hacia secciones restringidas de la aplicación.
Este paso adicional, es una característica que impacta en la rapidez de acceso a la información por parte
del usuario, pero que proporciona un elemento adicional de protección.

A mayor complejidad de nuestro sitio, aumenta el riesgo de que se sufra un ataque debido a sus
características más elaboradas, es por eso que deben considerarse opciones de seguridad necesarias y
sencillas pero eficientes, que ayuden a mitigar cualquier característica que la haga vulnerable.

.2 Rastrear el paso de los datos

Es muy importante mantener conocimiento de los pasos que ha recorrido la información en todo
momento. Conocer de dónde vienen los datos y hacia dónde van. En muchas ocasiones lograr esto
puede ser complicado, especialmente sin un conocimiento profundo de cómo funcionan las aplicaciones
web.

En las aplicaciones web, existen maneras de distinguir los orígenes de los datos y poder así reconocer
cuando los datos pueden ser dignos de confianza y cuando no.

Normalmente existen arreglos globales en la aplicación (por ejemplo en PHP los arreglos $_GET,
$_POST, $_COOKIE y $_SESSION entre otros) que sirven para identificar de forma clara las entradas
proporcionadas por el usuario. Si esto lo combinamos con una convención estricta para el nombrado de
las variables podemos tener un control sobre el origen de los datos usados en el código.

Además de entender los orígenes de la información se debe dar la misma importancia a entender cuáles
son las salidas que tiene la aplicación y hacia a donde se devuelven los resultados.
2.3 Filtrar entradas

El filtrado es una de las piedras angulares de la seguridad en aplicaciones web. Es el proceso por el cual
se prueba la validez de los datos. Si nos aseguramos que los datos son filtrados apropiadamente al
entrar, podemos eliminar el riesgo de que datos contaminados sean usados para provocar
funcionamientos no deseados en la aplicación.

Existen muchos puntos de vista diferentes sobre cómo realizar el filtrado o proceso de limpieza. Lo que
usualmente se recomienda es ver al filtrado como un proceso de inspección, no debemos tratar de
corregir los datos, es mejor forzar a los usuarios a jugar con las reglas válidas.

Al usar listas blancas asumimos que los datos son inválidos a menos que prueben ser validos al
encontrarse patrones coincidentes. Una limitante de usar este punto de vista es considerar inválidos
datos que debieron considerarse válidos pero que no fueron tomados en cuenta patrones similares al
construir la lista blanca.

Si llegamos a utilizar algún framework se debe tener especial cuidado, ya que estos brindan tantas
comodidades que muchos desarrolladores inexpertos los utilizan sin preocuparse en entender el código
que están observando y por lo tanto implementan medidas de validación en entradas, variables, entre
otros, sin entender exactamente el funcionamiento de la solución empleada.

Es importante notar que en los lenguajes de programación existen una buena cantidad de filtros pero
evidentemente estos no llegan a cubrir todas las necesidades que puede tener un desarrollador. En este
caso, se llegan a utilizar funciones creadas y adaptadas a nuestras necesidades a modo de filtro especial,
en la mayoría de estos casos es donde se puede encontrar el uso de expresiones regulares.

En la Ilustración 3 tenemos un ejemplo en PHP de variables GET sanitizadas mediante una función la cual
valida que únicamente sean números enteros (FILTER_SANITAZE_NUMBER_INT) y no contengan
etiquetas HTML (strip_tags).

2.4 Escapado de salidas

Otro punto importante de la seguridad es el proceso de escapado y su contraparte para codificar o


decodificar caracteres especiales de tal forma que su significado original sea preservado. Si llegamos
a utilizar una codificación en particular es necesario conocer los caracteres reservados los cuales
serán necesarios escapar.

El proceso de escapado debe estar compuesto a su vez por los siguientes pasos:

 Identificar las salidas.


 Escapar las salidas.
 Distinguir entre datos escapados y no escapados.
El proceso de escapado debe adecuarse al tipo de salida de que se trate (si es al cliente, a la base
de datos, etcétera). Para la mayoría de los destinatarios, existen funciones nativas en los lenguajes
de programación para esta finalidad. En alguno de los casos como podría ser el de base de datos es
importante incluso observar la codificación en la que son enviados.

Para distinguir entre los datos que han sido escapados de los que no, es recomendable también usar
una convención de nombres. Es necesario una función de escapado para cada caso, como ejemplo
en PHP se tomarían las siguientes consideraciones para:

 Correo electrónico, se puede usar la función filter_var () con los argumentos de


FILTER_VALIDATE_EMAIL.
 Bases de datos SQL, es más recomendable utilizar consultas parametrizadas pero podríamos
utilizar mysql_real_escape_string.
 Líneas de comandos, se puede hacer uso de la función escapeshellarg().
 Código en Javascript, PHP no tiene un método incorporado para escaparlo, pero se puede
utilizar json_encode() junto con htmlspecialchars() si se quiere mostrar en HTML.
3. Clasificacion de ataques web.
3.1 Ataques URL de tipo semántico
Este tipo de ataques involucran a un usuario modificando la URL a modo de descubrir acciones a
realizar que originalmente no están planeadas para ser manejadas correctamente por el servidor.
La implementación de cualquier formulario debe contemplar validaciones necesarias para evitar el
esas acciones y se deben realizar adecuaciones de acuerdo a nuestras entradas, en la ilustración 5
se muestra un formulario de logincon campos de usuario y contraseña.

Ilustración 4. Formulario con envio de datos por metodo GET


En el ejemplo anterior los parámetros, que son enviados con el método GET, se agregan
directamente en la URL, lo que produce que atacantes inexpertos puedan utilizarlos, ya que son
solo un poco más fáciles de capturar y modificar que los enviados de forma oculta desde el
navegador (POST). Un ejemplo del envío por GET es el de la ilustración 5.
Ilustración 5. URL con parámetros enviados visibles.
3.2 Ataques de Cross-Site Scripting
Cross-Site Scripting (XSS) es un tipo de vulnerabilidad de seguridad informática típicamente
encontrada en aplicaciones web que permiten la inyección de código por usuarios maliciosos en
páginas web. Los atacantes típicamente se valen de código HTML y de scripts ejecutados en el
cliente. (OWASP, 2014)

Ilustración 6. Definición general de los tipos de XSS. (Domínguez, 2015)


3.3 Ataques de Cross-Site Request Forgery
Este tipo de ataque permite al atacante enviar peticiones HTTP a voluntad desde la máquina de la
víctima. Es difícil determinar cuándo una petición HTML se ha originado por un ataque de este tipo.

Cuando un atacante conoce el formato que debe tener una URL para lograr la ejecución de una
acción en el sistema, ha logrado encontrar la posibilidad de explotar este tipo de ataques. Ahora lo
que necesita el atacante es simplemente hacer que una víctima visite la URL.
Un recurso que se utiliza comúnmente para realizar este tipo de ataques suele tener embebida la
petición en una imagen. En este caso el atacante sólo necesita crear alguna etiqueta HTML del
siguiente tipo:

<img src="http://ejemplo.org/compra.php-param=valor&param2=valor" />

Existen acciones que podemos tomar para contrarrestar este tipo de ataques, una de estas es
preferir el método POST para el procesamiento de formas en lugar del GET, otra posibilidad es
solicitar confirmación por parte del solicitante antes de realizar los procesos (a costa de reducir la
usabilidad en la aplicación).

3.4 Peticiones HTTP falsificadas

Un ataque más sofisticado que el anterior es enviar peticiones falsas empleando herramientas
especiales para este propósito.

Para ello, se emplean herramientas de línea de comandos o plugins agregados a los navegadores,
con estos se pone a la escucha de los servicios web que típicamente se conectan a través del puerto
80. En la ilustración 7 podemos observar los campos que pueden modificarse con Tamper Data.

Ilustración 7. Headers interceptados.

En realidad un atacante puede confeccionar a gusto sus peticiones HTTP, la fortaleza de nuestro
sistema será medible por su capacidad de detectar que peticiones recibidas deben ser escuchadas
y procesadas de acuerdo a los parámetros y valores que se vayan a recibir.
4. Seguridad de las aplicaciones y su relación con las bases de datos
La mayoría de las aplicaciones web son usadas como un conducto entre fuentes de información y el
usuario, esto es, las aplicaciones web son usadas para interactuar con una base de datos.

Muchos programadores no dan importancia al filtrado de datos provenientes de una consulta a la


base de datos, debido a que consideran a esta fuente como confiable. Aunque el riesgo a primera
vista parecería menor, es una práctica recomendable no confiar en la seguridad de la base de datos
e implementar la seguridad a fondo y con redundancia. De esta manera, si algún dato malicioso fue
inyectado a la base de datos, nuestra lógica de filtrado puede percatarse de ello.

4.1 Exposición de Credenciales de Acceso

Uno de los asuntos principales a ser cuidados cuando se utiliza una base de datos es el
almacenamiento de las credenciales de acceso a ella.

Los datos de usuario y password son considerados sensibles, por lo que deben tener garantizada una
atención especial. En archivos de configuración es común encontrar estos datos los cuales se
encuentran como texto en claro. Ver ilustración 8.

Ilustración 8. Código PHP con contraseñas de acceso a base de datos.


La intercepción o acceso no autorizado de esta información podría comprometer los servidores de
bases de datos o gestores de contenidos en donde estén alojados. Si por alguna razón no fuera
posible localizar al archivo que contiene esta información fuera del directorio raíz, es necesario
configurar el servidor web para rechazar las peticiones de recursos que no deben ser accesibles.
4.2 SQL Injection
La inyección de código SQL es la vulnerabilidad número uno en el top de OWASP (OWASP, 2015).
Para que exista una vulnerabilidad de SQL Injection se requieren dos fallas por parte del
programador:
1. Fallas en el filtrado de los datos.
2. Fallas en el escapado de los datos al enviarlos a la base de datos (escapado de salida).
-
Ilustración 9. Descripción básica de SQL Injection.
Ninguno de estos pasos cruciales debe ser omitido, y los dos pasos requieren especial atención para
poder minimizar los errores. Afortunadamente los ataques de SQL Injection son fácilmente
evitables, mientras filtremos y escapemos las salidas.
4.3 Exposición de datos

Una de las preocupaciones más comunes relacionadas con las bases de datos es la exposición de
datos sensibles. Al almacenar números de tarjetas de crédito, por ejemplo, es preferible asegurarse
que los datos almacenados en la base de datos se encuentran seguros e inaccesibles incluso para los
administradores de la base.

Para asegurar que no se almacenan datos como texto en claro en la base de datos, se pueden realizar
procedimientos de hash a las cadenas almacenadas para que no sea entendible la información a
simple vista. Se debe considerar el costo de esta implementación ya que habría que obtener
el hash al insertarlo y al extraerlo realizar la operación inversa, lo que conllevaría a que la
aplicación tarde un poco más en responder.
5. Páginas privadas y los sistemas de autenticación
La autenticación consiste en verificar la identidad de un usuario. Comúnmente el procedimiento
involucra un nombre de usuario y una contraseña a revisar. Muchas aplicaciones tienen recursos que
son accesibles sólo para los usuarios autenticados, así como recursos totalmente públicos.
5.1 Ataques de fuerza bruta

Este tipo de ataque es un método de ensayo y error utilizado para obtener información de una
contraseña, clave o número de identificación personal, entre otros. Funciona mediante la
generación de un gran número de intentos consecutivos para el valor de los datos deseados. Un
ataque de este tipo agota todas las posibilidades sin preocuparse por cuales opciones tienen mayor
probabilidad de funcionar.

En los términos del control de acceso, generalmente encontramos al atacante intentando ingresar
mediante un gran número de pruebas. En algunos casos el atacante puede conocer nombres de
usuario válidos y la contraseña es la única parte que se trata de adivinar.

5.2 Espionaje de contraseñas (Password Sniffing)

Cuando un atacante tiene los medios para analizar el tráfico entre los usuarios y el servidor de la
aplicación, debemos preocuparnos por la exposición que pueden tener los datos en el trayecto,
sobre todo cuando se trata de credenciales de acceso.

Ilustración 10. Captura de tráfico HTTP con contraseña enviada en claro.


En la actualidad debido a la información que se transmite en la web se recomienda establecer el
uso del protocolo HTTPS para poder cifrar el canal de comunicación por el que enviaremos nuestra
información. (OWASP, 2016)
5.3 Cookies o variables de sesión persistentes

Cuando un usuario permanece en el estado de registrado después de un tiempo no razonable (por


ejemplo, cuando no expira la sesión), tenemos un problema de registros persistentes.

Este tipo de problemas disminuyen la seguridad de nuestro mecanismo de autenticación.


Generalmente son causados por una cookie persistente, un ticket enviado al usuario o alguna
variable de sesión establecida que no se considera como expirado jamás o que no cambia en cada
nuevo registro establecido por el usuario.

Las cookies permanentes y variables de sesión ayudan a los sitios web a recordar tu información y
ajustes cuando los visitas más adelante. Esto conlleva un acceso más rápido y sencillo ya que, por
ejemplo, no tienes que iniciar sesión de nuevo.

CONCLUSION PARA PRACTICA

La seguridad en aplicaciones Web involucra principalmente al desarrollador, aunque con gran


frecuencia se encuentran defectos que pueden ser aprovechados por atacantes en las tecnologías
en que se basan los sistemas web (Sistemas Operativos, Servidores Web, Servidor de Base de Datos,
etc.) la atención principal debe dirigirse a los defectos propios al desarrollo nuestras aplicaciones.

Todo programador debe estar consciente que el manejo de las peticiones, para aceptarlas o
rechazarlas, deben estar los datos o variables recibidas no cumplan con las características
esperadas o predefinidas. Todas las entradas del sistema deben pasar por el filtrado de los datos
contenidos para confirmar su usabilidad. Además para el programador debe ser claro y fácil de
identificar cuando una variable ya ha sido sometida al proceso de limpieza, de esta forma
evitaremos tener que confiar en la memorización o tener que hacer un mapa de los procesos
ejecutados por cada línea de código ejecutada de manera previa.

Otro aspecto importante a considerar son los procesos de salida de la información del sistema. Es
importante siempre considerar el significado que pueda tener la información enviada en su nuevo
contexto, y en el caso de poder crear problemas de interpretación de las salidas, escaparlas para
preservarlas. Al igual que en el proceso de filtrado, es importante mantener un control sobre la
codificación que tienen los datos antes de enviarlos a su nuevo contexto.
TEMA 11.- HERRAMIENTAS DE BUSQUEDA DE INFORMACION

MOTORES DE BUSQUEDA

- Permiten recuperar información proveniente de grupos de discusión, listas de interés, páginas


Web, etc. previo precisar el tema de búsqueda.
- Es conveniente usarlos para realizar búsquedas sobre temas específicos o personas.
- Por ejemplo, para buscar información sobre "Albert Einstein", entre otros.
- Todos los motores tienen reglas o estrategias para formular las búsquedas, las que te
recomendamos leer para realizar una consulta más eficiente.

Ventajas Desventajas
Son útiles para realizar búsquedas sobre temas específicos o
Retornan muchos resultados irrelevantes.
personas determinadas

Proveen acceso a gran cantidad de páginas, que aumentan


No son muy precisos.
exponencialmente.

Páginas más relevantes aparecen al principio de la lista de Diferentes motores de búsqueda pueden entregar
resultados. distintos resultados.

Recuperan el texto completo de páginas web.


DIRECTORIOS TEMATICOS

- Son elaborados por especialistas que organizan la información que está en el Web en forma
jerárquica, partiendo de un tema general hasta llegar a subtemas más específicos.
- Recuperan la dirección del sitio.
- No remiten a la página con texto completo.
- Por ejemplo, se pueden consultar para buscar información sobre "medio ambiente".
- Es conveniente consultarlos, previo precisar el tema de búsqueda, cuando buscas información
general sobre algún tópico.

Ventajas Desventajas
Sus bases de datos son más pequeñas que las de los motores de
Son fáciles de usar.
búsqueda.

Son útiles para realizar búsquedas sobre


Generalmente no se actualizan rápidamente.
temas generales.

Organizado por áreas temáticas. No ofrece acceso directo al texto completo de documentos.

Incluyen vínculos a sitios con información


de calidad y relevancia evaluados por Contienen descripciones generales sobre los sitios.
especialistas.

Contienen descripciones de los sitios


seleccionados.

METABUSCADORES

- Permiten buscar información sobre un tema en varios motores de búsqueda al mismo tiempo.
- Es conveniente usarlos cuando tienes dificultades para encontrar información sobre un tema o
si deseas recuperar un número pequeño de resultados relevantes.
- Recuperan el texto completo de páginas web.
Ventajas Desventajas
Son útiles para realizar búsquedas simples y Extraen alrededor del 10% de los resultados que ofrecen los buscadores que
encontrar términos complicados. revisan.

Revisan en diferentes buscadores


No se recuperan todos los resultados de los buscadores revisados.
simultáneamente ahorrando tiempo.

Incluyen diferentes buscadores. No existe una estrategia de búsqueda común para todos los metabuscadores.

Potrebbero piacerti anche