Proyecto Final - TSINF97-2 - INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Enviado por Marco Ortiz • 14 de Enero de 2018 • Tarea • 1.186 Palabras (5 Páginas) • 385 Visitas
PROYECTO FINAL
MARCO ESTEBAN SOTO ORTIZ
INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
INSTITUTO PROFESIONAL IACC
01-01-2018
Intrucciones:
Usted trabaja para una agencia gubernamental de seguridad y ha notado ataques informáticos a sus servidores. El archivo de logs de su cortafuego tiene líneas de este estilo:
Desde 111.222.333.444-Conexión hacia 1.1.1.1-Web
Desde 123.123.123.123-Conexión hacia 2.2.2.2-FTP
Desde 5.111.123.11-Conexión hacia 1.2.1.2-SSH
Usted desea saber quiénes y a qué máquinas están atacando. Para ello, se le solicita que desarrolle los siguientes pasos:
Ya tiene desarrollada la función que le permite identificar, dada una línea del archivo de logs, la IP desde donde le están haciendo el ataque, la cual puede ver a continuación:
function conocerIpOrigenAtaque ($cadena)
{//Inicia la función
$ipOrigen =' '; //Se declara la variable ipOrigen como una cadena vacía
$primerBlanco = stripos($cadena,' ');
$primerGuion = stripos($cadena,'-');
$ipOrigen = substr($cadena, $primerBlanco, ($primerGuion - $primerBlanco));
echo 'La IP desde donde se hace el ataque es: ' . $ipOrigen . '
';
}
?>
Para hacer la prueba con la primera línea del archivo de logs se ejecuta luego de la función la siguiente instrucción:
conocerIpOrigenAtaque("Desde 5.111.123.11-Conexión hacia 1.2.1.2-SSH");
y se obtiene el siguiente resultado:
La IP desde donde se hace el ataque es: 5.111.123.11
Tomando como base la función anteriormente descrita, escriba las siguientes funciones en PHP o pseudocódigo:
- Función que identifique la IP que recibe el ataque
- Función que devuelva el servicio que está siendo atacado
Para ello se sugiere revisar y utilizar alguna de las funciones de string que proporciona PHP y puede consultar en: http://php.net/manual/es/ref.strings.php
- Explique brevemente las instrucciones necesarias para trabajar con el archivo que guarda la información de ataques informáticos.
- Si se quisiera conocer las IP que más han intentado atacarlo, ¿Cómo podría llevarse a cabo esto? ¿Qué estructuras de datos de las vistas (arreglos, pilas, colas) utilizaría? ¿Será necesario emplear alguno de los ciclos de iteración vistos en la asignatura (for, while, dowhile)? Justifique sus respuestas (se sugiere que se apoye en pseudocódigo o código en PHP) y tome en cuenta que se busca obtener algo como lo que se detalla a continuación:
123.123.123.123 ha realizado 13 ataques.
5.111.123.11 ha realizado 8 ataques.
111.222.333.44 ha realizado 5 ataques.
- Declare las clases que serían necesarias en caso que se quisiera trabajar en PHP pero con Programación Orientada a Objetos (POO). Explique el porqué de las declaraciones que realiza.
Desarrollo
- Función que identifique la IP que recibe el ataque
getIpAtaque("Desde 5.111.123.11-Conexión hacia 1.2.1.2-SSH");
function getIpAtaque($cadena) {
$ipAtaque = '';
$ipAtaque = substr($cadena, stripos($cadena,''), (stripos($cadena,'-') - stripos($cadena,'')));
echo 'La IP Atacada es:' .$ipAtaque .'';
}
Se debe llamar a la función pasándole la cadena, similar a la llamada a la función de la introducción.
- Función que devuelva el servicio que está siendo atacado
function getServicioAtaque($cadena){
$division = explode("-", $cadena);
$largo = sizeof($division)-1;
echo "El servicio atacado es " .$division[$largo];
}
getServicioAtaque("123.123.123.123-Conexión hacia 2.2.2.2-FTP");
Esta función usando las función explode extrae el servicio que se intenta hackear.
- Explique brevemente las instrucciones necesarias para trabajar con el archivo que guarda la información de ataques informáticos.
Para poder guardar la información de los ataques informáticos en un archivo lo primero que necesitamos es la función fopen.
Por ejemplo:
$gestor = fopen("c:\\folder\\resource.txt", "r");
?>
Está es la instruccion principal a usar.
Entonces, crearimos una función la cual reciba como parámetro la cadena que tiene los datos del ataque, y dentro de esta función guardarimos cada dato, dejando como dato importante la fecha y la hora, un ejemplo de esto sería:
...