Proyecto final software iacc
Enviado por Soledad Labarca • 11 de Marzo de 2018 • Tarea • 1.588 Palabras (7 Páginas) • 1.227 Visitas
PROYECTO FINAL
MARIA SOLEDAD LABARCA CASTILLO
INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Instituto IACC
31 de diciembre del 2017
INSTRUCCIONES
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:
//Inicia el programa en PHP
function conocerIpOrigenAtaque ($cadena){
//Inicio función conocerIpOrigenAtaque que recibe una cadena por parámetro.......Inicia la función
$ipOrigen =' '; //Se declara la variable ipOrigen como una cadena vacía
$primerBlanco = stripos($cadena,' ');
/*Se ubica el primer blanco de la cadena con la función stripos de PHP, pues al analizar el archivo de logs, se observa que a partir del primer blanco empieza la IP que realiza el ataque, justamente la que se busca para esta función*/
$primerGuion = stripos($cadena,'-');
/*Se ubica el primer guion de la cadena con la función stripos de PHP, pues al analizar el archivo de logs, se observa que la IP que origina el ataque culmina antes de ese primer guión*/
$ipOrigen = substr($cadena, $primerBlanco, ($primerGuion - $primerBlanco));
/*Se calcula la IP que origina el ataque, para ello se utiliza la función substr de PHP que se encarga de extraer una porción de una cadena, indicándole desde donde cuántos caracteres, es por ello que se utilizó que a $cadena (variable que llega por parámetro) se le extraiga los caracteres desde el primer espacio, hasta el guion, por lo que resulta fácil indicarle que la cantidad de caracteres a devolver se obtiene de restar a la posición del primer guion, la posición del primer blanco, obteniendo así la IP buscada.*/
echo 'La IP desde donde se hace el ataque es: ' . $ipOrigen . '
'; //se imprime la IP obtenida
}
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
A continuación se adjunta el ejercicio en PHP e imágenes del ejercicio funcionando en donde se aprecia que el código crea un archivo en la carpeta por defecto localhost, el cual guarda la ip atacada.
function ataque_IP($cadena){
$archivo=fopen("log_IPatacada.txt", "a+");
$ipOrigen = '';
$primerBlanco = stripos($cadena,'');
$primerGuion = stripos($cadena,'-');
$ipOrigen = substr($cadena, $primerBlanco, ($primerGuion - $primerBlanco));
echo '
';
fputs($archivo, $ipOrigen);
fclose ($archivo);
echo "se guardó la IP en el Archivo en la siguiente ruta(localhost\los_IPatacada)";
}
ataque_IP('200.200.200.200-Conexión hacia 1.1.1.1-web');
¿>
[pic 1]
[pic 2]
Si se quisiera conocer las IP que más han intentado atacarlo, ¿Cómo podría llevarse a cabo esto?
Respuesta:
En el ejercicio PHP que se muestra más abajo, se aprecia un arreglo básico para identificar las IP como se expresa en las instrucciones del proyecto final, seguido de un ciclo FOR para el incremento de los ataque (contador), esto determinara las cantidad de veces que ha sufrido el ataque.
...