PHP - Ayuda con una tarea me falta una manito :(

 
Vista:
sin imagen de perfil

Ayuda con una tarea me falta una manito :(

Publicado por pedro (1 intervención) el 17/03/2018 23:33:54
Hola amigos del foro

si alguien de buen tiempo me puede ayudar
tengo que hacer esta tarea:


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:
<?php//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 guión 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 guión, por lo que resulta fácil indicarle que la cantidad de caracteres a devolver se obtiene de restar a la posición del primer guión, la
posición del primer blanco, obteniendo así la IP buscada.*/
echo 'La IP desde donde se hace el ataque es: ' . $ipOrigen . '<br>'; //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

Usted trabaja para una agencia gubernamental de seguridad y ha notado ataques in
formá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
Tomando como base la función anteriormente descrita, escriba las siguientes funcio
nes en
PHP o pseudocódigo:

Función que identifique la IP que recibe el ataque
Desarrollo:
1
2
3
4
5
6
7
8
9
10
<?php
function IpReceptoraAtaque($cadena)
{
    $ipReceptora = '';
    $primeraIp = stripos($cadena,'');
    $primerGuion = stripos($cadena,'-');
    $ipReceptora = substr($cadena, $primeraIp, ($primerGuion - $primeraIp));
   echo '<h4> La IP Atacada es: <h4/>' . $ipReceptora . '<br>';
}
IpReceptoraAtaque('123.123.123.123-Conexión hacia 2.2.2.2-FTP');

Función que devuelva el servicio que está siendo atacado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function servicioAtacado($serv)
{
     if($serv =='111.222.333.44') {
           echo '<h5>La IP es: <h5/>'. $serv;
           echo '<h4> El Servicio Atacado es: WEB </h4>';
     }
     if($serv =='123.123.123.123') {
           echo '<h5>La IP es: <h5/>'. $serv;
           echo '<h4> El Servicio Atacado es: FTP </h4>';
     }
     if($serv =='5.111.123.11') {
           echo '<h5>La IP es: <h5/>'. $serv;
           echo '<h4> El Servicio Atacado es: SHH </h4>';
     return $serv;
     }
}
servicioAtacado('123.123.123.123');




Explique brevemente las instrucciones necesarias para trabajar con el archivo qu
e guarda
la información de ataques informáticos
• Declaración método constructores; Funciones de una clase que utiliza para i
nvocar a la función en forma automática cuando se crea una nueva instancia de una cl
ase con new.
• Declaración método público; El atributo o método precedido de public podrá ser leíd
o llamado en cualquier parte del código, sea desde la misma clase o desde fuera d
e ella, esto significa que también podrá ser alterado sin restricciones, por eso se
aconseja que los atributos se declaren como privados salvo casos excepcionales
• Declaración método protegido; Se utiliza para acceder desde la misma o de c
lases heredadas
• Declaración de la variable; Se declara la variable donde se encuentra los
datos que serán mostrados
• Definición de las variables; Se declara la o las variables con las que se
trabajarán

Respuesta 4:
En este caso se utilizó un arreglo que incluye sentencias condicionales con if, qu
e como objetivo conocer las ip atacadas en los servidores
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$ip = array( );
 
$ip[0]= '111.222.333.444';
$ip[1]= '123.123.123.123';
$ip[2]= '5.111.123.11';
for ($i=0; $i<1; $i++) {
if ($ip[0]=='111.222.333.444') {
echo 'La IP: ' . $ip[0] . ' ,ha Realizado 13 Ataques' . '<br/>';
}
if ($ip[1]=='123.123.123.123') {
echo 'La IP: ' . $ip[1] . ' ,ha Realizado 8 Ataques' . '<br/>';
}
if ($ip[2]=='5.111.123.11') {
echo 'La IP: ' . $ip[2] . ' ,ha Realizado 5 Ataques' . '<br/>';
   }
}
?>



Respuesta 5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
class Ip
{
  public $var;
  function __construct()
   {
       $this->setVar();
       $this->getVar();
   }
  protected function getVar()
   {
       echo $this->var;
   }
  public function setVar()
   {
     $this->var = 'La IP mas Atacada es: 123.123.123.123' . '<br/>';
   }
}
class Servicio extends Ip
{
  function __construct()
   {
 
     $this->setVar();
       $this->getVar();
    }
    public function setVar()
    {
   $this->var = 'El Servicio mas Atacado es: FTP' . '<br/>';
    }
}
class Ataque extends Ip
{
     function __construct()
     {
       $this->var = 'La IP: 123.123.123.123 , ha sido Atacada: 13 veces' . '<br
/>' .
                                'La IP: 111.222.333.444 , ha sido Atacada: 8 vec
es' . '<br/>' .
                            'La IP: 5.111.123.11 , ha sido Atacada: 5 veces' . '
<br/>' ;
                     $this->getVar();
     }
public function getVar()
     {
  echo $this->var;
     }
}
$Ip = new Ip();
$Servicio = new Servicio();
$Ataque = new Ataque();

-----------------------------------------------------------------------

Quería ver si estaba bien o se debe cambiar/modificar algo?

muchas gracias por su tiempo ....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder