Hacking ètic

De Wiki Eduard Lafitte
Jump to navigationJump to search


Introducció

Què és el Hacking ètic?

Hacking ètic és una forma de referir-se a l'acte d'una persona que utilitza els seus coneixements d'informàtica i seguretat per realitzar proves en xarxes i trobar vulnerabilitats, per després reportar-les i que es prenguin les mesures necessàries, sense fer mal.

La idea és tenir el coneixement de quins elements dins d'una xarxa són vulnerables i corregir-ho abans que hi hagi un furt d'informació, per exemple.

Aquestes proves es diuen "pentests" o "penetration tests" en anglès. En català es coneixen com a "proves de penetració", on s'intenta utilitzar múltiples formes de burlar la seguretat de la xarxa per robar informació sensitiva d'una organització, per després reportar-ho a aquesta organització i així millorar la seva seguretat.

Es suggereix a empreses que contractin els serveis d'una empresa que ofereixi el servei de hacking ètic, que la mateixa sigui certificada per entitats o organitzacions amb un bon grau de reconeixement a nivell mundial.

Les persones que fan aquestes proves poden arribar a veure informació confidencial, per tant cert grau de confiança amb el consultor és recomanat.


Pentesting o proves de Hacking ètic

Quan efectuem un hacking ètic és necessari establir l'abast del mateix per poder elaborar un cronograma de treball ajustat a la realitat i, sobre la base d'ell, realitzar la proposta econòmica al client. Per determinar l'abast requerim conèixer com a mínim tres elements bàsics: El tipus de hacking que anem a efectuar, la modalitat del mateix i els serveis addicionals que el client desitgi incloure juntament amb el servei contractat.

El nivell d'execució dels tests de penetració estàndard (PTES - Penetration Testing Execution Standard) consisteix de set seccions principals. Aquests tracten tot el relacionat amb un test de penetració: des de la comunicació inicial i el raonament que hi ha darrere d’un pentest, passant per les fases de Gathering (recollida d'informació) i modelatge de l'amenaça, on els testers estan treballant entre bastidors per obtenir un millor coneixement de l’organització "testejada", mitjançant investigacions sobre vulnerabilitat, explotació i post-explotació, on l’experiència tècnica de seguretat dels provadors es combinar amb la comprensió empresarial de la tasca i, finalment, a l’informe, que capta tot el procés, d’una manera que tingui sentit per al client i proporcioni la millor solució.

La versió actual es pot considerar una v1.0 ja que els elements fonamentals de la norma es solidifiquen i fa més d'un any que es "road tested" (sobre la marxa) a través de la indústria. Una v2.0 es troba en procés i proporcionarà un treball més gran en termes de "nivells", com en els nivells d'intensitat en què es pot realitzar cadascun dels elements d'una prova de penetració. Com que cap Pentest és com un altre, i les proves van des de l'aplicació web més mundana o prova de xarxa, fins a una implicació completa de l'equip més crític, els nivells permetran a una organització veure quina sofisticació es pot esperar d'un atacant i permetre al tester augmentar la intensitat en aquelles àrees on l'organització ho necessiti més. Alguns dels treballs inicials sobre "nivells" es poden veure a la secció de recollida d'informació.

A continuació, es detallen les seccions principals definides per l'estàndard com a base per a l'execució de les proves de penetració:

  • Pre-engagement Interactions --> Interaccions pre-acord
  • Intelligence Gathering --> Recollida d'informació
  • Threat Modeling --> Modelat d'amenaces
  • Vulnerability Analysis --> Anàlisis de vulnerabilitats
  • Exploitation --> Explotació
  • Post-Exploitation --> Post-Explotació
  • Reporting --> Informe


Bàsicament les fases d'una auditoria de seguretat o Pentesting son les següents:

  • Recopilació d'informació: Abans de fer quansevol atac hem de tenir el màxim d'informació de l'objectiu perquè els punts posterior ens siguin més senzills
    • Eines:
      • Nmap (escaneig de ports)
      • FOCA (anàlisi de metadades)
  • Búsqueda de vulnerabilitats: Un cop tenim el màxim d'informació possible intentem buscar vulnerabilitats per tot el que hem trobat en el punt anterior
    • Eines:
      • Nessus
      • Accunetix
  • Explotació de vulnerabilitats: En aquest punt aprofitem les vulnerabilitats trobades en el punt anterior i els hi traiem profit
    • Eines:
      • Metasploit
  • Post Explotació: Potser aquesta no es pugui arribar, dependrà si en el punt anterior hem pogut explotar alguna vulnerabilitat i aconseguit accés. En aquest punt podríem tornar a iniciar el procés de Pentesting des de dins del sistema.
  • Elaboració informes: En aquest punt generaríem tota la documentació amb tot el procés realitzat indicant les vulnerabilitats que s'han trobat i cóm s'han explotat.



Tipus de Hacking ètic

Depenent d'on s'executin les proves d'intrusió o recolecció d'emprentes (el que es coneix com Footprinting) el hacking ètic pot ser intern o extern.

  • External Footprinting
  • Internal Footprinting


“Hacking Ètic Extern” (External Footprinting)

Aquest tipus de hacking es realitza des d'Internet sobre la infraestructura de xarxa pública del client; és a dir, sobre aquells equips de l'organització que estan exposats a Internet perquè ofereixen un servei públic (Enrutador, Firewall, Servidor Web, Servidor de Correu, Servidor de noms (DNS), etc …)


“Hacking Ètic Intern” (Internal Footprinting)

Com el seu nom suggereix aquest tipus de hacking s'executa a la xarxa interna del client, des del punt de vista d'un empleat de la empresa, un consultor o un associat de negocis que té accés a la xarxa corporativa.

Normalment aquest tipus de test es realitza en la fase de Post-Explotació (quan ja hem aconseguit externament i aleshores realitzem l'explotació interna), tot i que a vegades hi han test que s'inicien ja des de la fase interna.

En aquest tipus de proves d'intrusió es sol trobar més buits de seguretat que en la seva part externa, degut a que molts administradors de sistemes es preocupen per protegir el perímetre de la seva xarxa i subestimen l'atacant intern. Això últim és un error ja que els estudis demostren que la majoria d'atacs reeixits provenen de l'interior de l'empresa, com podem veure en la següent imatge de l'empresa Cybsec


Percentatge intrusions internes i externes



Modalitats de Hacking

Depenent de la modalitat que el client proveeixi al consultor, el servei de hacking ètic es pot executar en una de les 3 modalitats: Black-box Hacking, Grey-box Hacking, white-box Hacking. La modalitat escollida afectarà el cost i la durada de les proves d'intrusió, ja que a menor informació rebuda major serà el temps invertit a investigar per part de l'auditor.


Black-Box Hacking

També anomenat Hacking de caixa negra. Aquesta modalitat s'aplica a proves d'intrusió externes. es diu d'aquesta manera, per que el client solament li proporciona el nom de l'empresa a auditar al consultor, per la qual cosa aquest obra a cegues, la infraestructura de l'organització és una caixa negra per a ell.

Si bé aquest tipus d'auditories es considera més realista atès que usualment un agressor extern que tria una víctima X no té mes informació a l'inici que el nom de l'organització a atacar. També és cert que requereix una major inversió de temps i per tant el cost inclòs és superior també. Addicionalment s'ha de notar que el Hacker ètic – a diferència del Cracker – no compta amb tot el temps del món per efectuar les proves d'intrusió, per la qual cosa la fase preliminar d'indagació no pot estendre's més intrusió del que en termes pràctics sigui possible per al client en raó de Cost / Temps / Benefici.


Grey-Box Hacking

El Grey-box o hacking de caixa grisa sol utilitzar-se com a sinònim per referir-se a les proves d'intrusió internes. Però alguns auditors anomenen també Gray-Box Hacking a una prova externa a la qual el client proporciona informació limitada sobre els equips públics a ser auditats. Exemple:

  • un llistat amb dades com les adreces IP i el Tipus/Funció de l'equip (Router, Firewall, Web-Server, etc… ).

Quan el terme s'aplica a proves internes es denomina així perquè el consultor rep per part del client els accessos només que tindria un empleat de l'empresa, és a dir, un punt de xarxa per a l'estació de auditoria i dades de configuració local (IP, mascares de subxarxa, Gateway i DNS); però no li revela informació addicional com per exemple:

  • Usuari /Clau per ingressar al domini / l'existència de Subxarxes annexes Etc.


White-Box Hacking

El Hacking de caixa blanca, algunes vegades denominat Hacking Transparent, s'aplica a proves d'intrusió solament i es diu d'aquesta forma per que l'empresa client li dóna a l'auditor informació completa de les xarxes i els sistemes a auditar. És a dir, que a més d'assignar-li un punt de xarxa i informació de configuració per a l'estació de auditoria, com en el Hacking de caixa grisa el consultor rep informació extensa com a diagrames de xarxa, llistat detallat d'equips a auditar incloent noms, tipus, plataformes, serveis principals, adreces IP, informació sobre subxarxes remotes, etc.. a causa que el consultor evita investigar tota aquesta informació per si mateix, aquest tipus de Hacking sol prendre menys temps per executar-se i per tant redueix costos també.


Serveis de Hacking Addicionals

Depenent de l'experiència del consultor o de l'empresa auditora, és probable que se li ofereixi serveis addicionals al client que poden incloure's en el Hacking Ètic extern o intern. Entre els serveis addicionals més populars tenim: enginyeria social, wardialing, wardriving, equip robat i seguretat física.



Recollida d'Informació

Escaneig de ports

Consisteix en intentar activament una identificació d'objectius, hi ha un contacte directe amb l'objectiu. Mitjançant aquest escaneig de ports, podem entre altres coses:

  • Identificació i Estat de Ports.
  • Identificació de Serveis
  • Identificació de Sistema operatiu.


Com funciona i quin són els seus objectius?

L'escaneig o exploració de ports és una activitat que consisteix en enviar paquets de xarxa a un equip o host, amb l'objectiu d'identificar l'estat dels ports TCP o UDP d'una màquina de la xarxa.

Un port en una maquina té diversos estats, entre els quals es pot distingir:

  • Obert
  • Tancat
  • Filtrat

Entre el objectius d'un escaneig de ports trobem:

  • Detectar sistemes vius corrent o executant processos en una xarxa
  • Descobrir quins ports estan oberts o tenen programes/serveis en execució
  • Descobrir petjades de sistemes operatius, o el que es coneix com Operating System FingerPrinting
  • Descobriment d'adreces IP en la xarxa o sistema objectiu.
  • Descobrir l'arquitectura del Sistema avaluat.


Tècniques d'escaneig de ports

Són aquelles tècniques que es poden utilitzar i que varien segons l'experiència i coneixement de l'atacant. Una de les principals eines que es fan servir en aquest fas és NMAP ja que és una eina senzilla i molt potent (més endavant parlarem de diferents eines).

Bàsicament podríem diferencia tres d'importants:

  • TCP Scan
  • UDP Scan
  • Ping Scan


TCP Scan

S'ha de tenir present que el protocol TCP és un protocol que treballa en la capa de transport del model OSI (Capa 4) i és un protocol orientat a connexions, és a dir que abans de començar a transmetre informació entre dos hosts, aquests primer han de sincronitzar-se i fer de forma completa el que es coneix com a intercanvi de tres vies


Establiment donnexió TCP de 3 vies



Tipus de TCP Scan
TCP Connect Scan És un procés d'exploració de ports oberta, i necessita l'intercanvi de tres vies per a poder realitzar de forma completa l'exploració de ports. Es diu Connect Scan, ja que implementa una crida al sistema de tipus Connect, per a així saber de forma ràpid l'estat del port. És un tipus d'exploració de ports sorollosa, és a dir que és fàcilment identificada pels sistemes de filtrats de paquets Firewall, o pels sistemes detectors d'intrusos (IDS). És una exploració de ports segura, és recomanable per a fer auditories internes als sistemes, no obstant això NO és recomanable fer-ho amb host o màquines alienes, ja que pot considerar-se com un delicte.
TCP SYNC Scan És una tècnica d'exploració de ports que envia d'un host a un altre únicament paquets d'inici de connexió de tipus SYN, per cadascun dels ports que es volen analitzar, per a poder determinar si aquests estan oberts o no. Rebre com a resposta un paquet RST/ACK significa que no existeix cap servei que escolti per aquest port. Per contra, si es rep un paquet SYN/ACK, podem afirmar l'existència d'un servei associat a aquest port TCP. En aquest cas, s'enviaria un paquet RST/ACK per a no establir connexió i no ser registrats pel sistema objectiu.

A diferència del cas anterior (TCP connect scan), aquest tipus d'exploració de ports no és tan sorollosa, ja que no acaba el procés d'intercanvi en tres vies, i alguns Firewalls o IDS, no les registren.

TCP FIN Scan És una tècnica d'exploració de ports que consisteix a enviar un paquet FI a un port determinat, amb la qual cosa hauríem de rebre un paquet de Reset (RST) si aquest port està tancat. Aquesta tècnica s'aplica principalment sobre implementacions de piles TCP/IP en sistemes Unix.

No és recomanable utilitzar aquest tipus d'exploració de ports amb Sistemes Microsoft, ja que la informació que es retornarà serà una mica confusa i poc fiable. El FI Scan està pensat per a treballar únicament amb sistemes opertius que tinguin implementacions de TCP/IP respecte al document RFC 793. El FI Scan té com a particularitat per a identificar l'estat d'un port la manera en què reacciona el host víctima respecte a una petició de tancament de connexió en un port TCP.

TCP Xmas Tree Scan És una tècnica d'exploració de ports semblant a la Fi Scan, ja que també s'obté com a resultat un paquet de Reset (RST) si el port està tancat. Per al cas d'aquest tipus d'exploració de ports, s'envien paquets o sol·licituds del tipus FI, URG i PUSH al host que s'està explorant. No és recomanable utilitzar aquest tipus d'exploració de ports amb Sistemes Microsoft, ja que la informació que es retornarà serà una mica confusa i poc fiable. El Xmas Scan està pensat per a treballar únicament amb sistemes operatius que tinguin implementacions de TCP/IP respecte al document RFC 793. Aquest tipus d'exploració és recomanable realitzar-la en sistemes de tipus UNIX, LINUX i BSD.
TCP NULL Scan Aquest tipus d'exploració posa a zero tots els indicadors de la capçalera TCP, per tant l'exploració hauria de rebre com resultat un paquet de reset (RST) en els ports no actius.

No és recomanable utilitzar aquest tipus d'exploració de ports amb Sistemes Microsoft, ja que la informació que es retornarà serà una mica confusa i poc fiable. Aquest tipus d'exploració és recomanable realitzar-la en sistemes de tipus UNIX, LINUX i BSD.

TCP Idle Scan Aquest mètode és una ocurrent forma per a detectar els ports oberts en una màquina remota sense posar al descobert a l'atacant, és a dir, a l'equip que realitza l'escaneig. Per a això, es val d'una màquina intermèdia, anomenada zombie o dumb, que exerceix com a intermediari en la comunicació i fa que en cap cas la víctima rebi paquets directament des de l'atacant, quedant aquest en el més absolut anonimat.

Normalment el que és fa és buscar un ordinador susceptible de ser zombie i es mira el que es coneix com a IPID que és el nombre identificatiu d'un paquet. Per a detectar si un port està obert o tancat, és necessari primer observar el IPID del port corresponent del nostre ordinador zombie (obtingut amb hping). Acte seguit, enviar paquets a la víctima fent-li veure que realment els hi està enviant "el zombie" i, posteriorment, observar de nou el IPID utilitzat per l'incaut intermediari. En funció dels valors inicials i finals obtinguts, es pot esbrinar l'estat del port destí. Com qualsevol màquina genera suficient trànsit com perquè el valor del IPID canvii sovint, en lloc de tenir en compte si el valor IPID ha variat en poques unitats, el que farem és llançar dos processos: un que envia SYN/ACK a la màquina zombie (per a controlar la variació del camp IPID) i un altre que enviarà els SYN "spoofejat" a la màquina destí. D'aquesta forma podrem comprovar en temps real si al llançar el segon procés (paquets spoofejats, el valor de l'ID retornat per la màquina zombie varia o es manté dins d'uns límits).




Flags de comunicació TCP:

  • SYN – Utilitzat per a iniciar una connexió entre dues hosts
  • URG – Indica urgència
  • FI – Li diu al sistema remot que no hi haurà més transmissions
  • RST – Reset d'una connexió
  • PSH – Utilitzat per a indicar al sistema que envii totes les dades de buffer immediatament
  • ACK – Admissió / OK


Quadre tipus scan amb Nmap



UDP Scan

Encara que la majoria dels serveis més habituals en Internet utilitzen el protocol TCP, els serveis UDP també són molt comuns. Tres dels més comuns són els serveis DNS, SNMP, i DHCP (ports registrats 53, 161/162, i 67/68 respectivament). Atès que el sondeig UDP és generalment més lent i més difícil que TCP, alguns auditors de seguretat ignoren aquests ports. Això és un error, perquè és molt freqüent trobar-se serveis UDP vulnerables i els atacants no ignoren aquests protocols. Afortunadament, Nmap pot utilitzar-se per a fer un inventari de ports UDP.

El sondeig UDP amb nmap s'activa amb l'opció -sU. Pot combinar-se amb un tipus de sondeig TCP com per exemple el sondeig SYN (-sS) per a comprovar tots dos protocols al mateix temps.

Els sondejos UDP funcionen mitjançant l'enviament (sense dades) d'una capçalera UDP per a cada port objectiu. Si s'obté un error ICMP que indica que el port no és assolible (tipus 3, codi 3) llavors es marca el port com a tancat. Si es rep qualsevol error ICMP no assolible (tipus 3, codis 1, 2, 9, 10, o 13) es marca el port com filtrat. En algunes ocasions es rebrà una resposta al paquet UDP, la qual cosa prova que el port està obert. Si no s'ha rebut cap resposta després d'algunes retransmissions llavors es classifica el port com a obert|filtrat. Això significa que el port podria estar obert o que hi ha un filtre de paquets bloquejant la comunicació. Pot utilitzar-se el sondeig de versió (-sV) per a diferenciar de debò els ports oberts dels filtrats.


PING Scan

Aquest escaneig és l'opció més senzilla per a saber únicament quina hosts hi ha connectats a la xarxa indicada. Amb “Ping Scan” realitzarem un “ping” a cadascuna de les direccions del rang. Les respostes que obtinguem són les que nmap identificarà com a equips actius dins de la xarxa escanejada. S'utilitza la opció -sn.



Maltego CE

Maltego és una eina interactiva per a mineria de dades, la qual esbossa gràfics dirigits per a l'anàlisi d'enllaços. Aquesta eina és utilitzada per investigadors en línia, per a trobar relacions entre peces d'informació des de diverses fonts localitzades en Internet.

Maltego CE és la versió comunitària de Maltego, la qual està disponible lliurement després d'un ràpid registre en línia. Maltego CE inclou la majoria de les mateixes funcionalitats de la versió comercial, no obstant això té algunes limitacions. La principal limitació amb la versió comunitària, és l'aplicació no pot ser utilitzada per a propòsits comercials, i existeix també una limitació en el nombre màxim d'entitats les quals poden ser retornades des d'una única transformada. En la versió comunitat de Maltego, no existeix la funcionalitat per a exportar el gràfic, la qual està disponible en versions comercials.

Imatge Maltego



Webs d'interés



Webgrafia