Lavorare nel settore “sicurezza informatica”

Da quando ho finito l’università e mi sono laureato ho iniziato seriamente ad interessarmi al settore della sicurezza in rete, o più in generale della sicurezza informatica. Non che prima non mi interessasse questo ambito, anzi, mi attirava molto il mondo un po’ underground degli hacker, degli worm e dei cavalli di troia, quello visto nei film in cui il ragazzino adolescente riesce in pochi attimi ad entrare in qualche mega computer della CIA. Il problema è che non avevo mai avuto veramente il tempo ma anche la voglia durante tutto il periodo universitario di interessarmi a questo mondo, dato che il carico di studio era davvero moooooooolto elevato! Solo con la tesi finale sono riuscito a scegliere un argomento che mi interessasse davvero (strumenti per l’anonimato in Rete), e da lì ho capito quale sarebbe stato il mio futuro :-D… Finita l’università ho deciso poi di cercare un master/corso che avesse come argomento principale proprio la sicurezza, ma data l’impossibilità di frequentare un master a Roma o Milano (quota dai 6000/7000 euro in su più i soldi necessari per vitto e alloggio!) ho optato per un corso disponibile a Firenze: il Cisco CCNA Security. […]

(in costante aggiornamento)

Da quando ho finito l’università e mi sono laureato ho iniziato seriamente ad interessarmi al settore della sicurezza in rete, o più in generale della sicurezza informatica. Non che prima non mi interessasse questo ambito, anzi, mi attirava molto il mondo un po’ underground degli hacker, degli worm e dei cavalli di troia, quello visto nei film in cui il ragazzino adolescente riesce in pochi attimi ad entrare in qualche mega computer della CIA.

Il problema è che non avevo mai avuto veramente il tempo ma anche la voglia durante tutto il periodo universitario di interessarmi a questo mondo, dato che il carico di studio era davvero moooooooolto elevato! Solo con la tesi finale sono riuscito a scegliere un argomento che mi interessasse davvero (strumenti per l’anonimato in Rete), e da lì ho capito quale sarebbe stato il mio futuro :-D… Finita l’università ho deciso poi di cercare un master/corso che avesse come argomento principale proprio la sicurezza, ma data l’impossibilità di frequentare un master a Roma o Milano (quota dai 6000/7000 euro in su più i soldi necessari per vitto e alloggio!) ho optato per un corso disponibile a Firenze: il Cisco CCNA Security. Solo dopo aver iniziato il corso però ho compreso due cose: la prima è che il corso era rivolto unicamente agli amministratori di rete, in modo da fornire loro delle basi relative alla sicurezza sui router/switch; secondo che era necessaria la certificazione CCNA per sostenere quella relativa alla security :-O, e in più la notevole difficoltà che ho incontrato a seguire il corso! Le conoscenze fornitemi dalla laurea non erano proprio sufficienti :-(, e ho dovuto faticare non poco per sostenere l’esame per la certificazione… Comunque ora che ho iniziato a muovere i primi passi nel settore IT posso cercare di fare una lista di quelle che sono le figure principali che ruotano attorno al settore della sicurezza informatica:

  • (Network) Security Administrator: è la persona che lavora parallelamente all’amministratore di rete, e si occupa di rendere sicura una certa rete configurando firewall/ACL, gestendo le autenticazioni degli utenti, crittografando le connessioni, e più in generale opera sulle configurazioni di router/switch/server/pc al fine di rendere la rete sicura. Una scheda che descrive il profilo (anche se orientato a soluzioni Microsoft) è disponibile al link profilo Security Administrator.
  • (Network) Security Manager:  è colui che si occupa di configurare  l’infrastruttura di rete e di applicare le procedure di sicurezza definite dall’azienda per cui lavora e conformi alle misure normative italiane. Inoltre deve garantire la sicurezza e la disponibilità dei dati, monitorare le performance, i database e gli eventi sospetti. E’ una figura centrale nell’infrastruttura informatica aziendale in quanto si occupa di gestire trasversalmente le procedure e le diverse soluzioni implementate con il compito specifico di assicurare quotidianamente l’affidabilità e la sicurezza dell’intero sistema informatico. Rispetto al Network Security Aministrator è una figura dalla preparazione più ampia (non solo configurazione di router/server).
  • Penetration Tester: è colui che determina il reale grado di sicurezza di una rete, cercando di violarla con una grande varietà di attacchi e non. L’obiettivo è quello di individuare eventuali vulnerabilità sfruttabili da terzi per ottenere accessi non autorizzati ai servizi e ai sistemi analizzati. Oltre ai problemi di sicurezza, devono essere rilevati, quali possibili punti deboli, i problemi relativi alla configurazione, che incidono sulla robustezza e le performance del sistema, e gli errori di progettazione della rete. A volte una cattiva configurazione è più pericolosa di un bug. Una descrizione di questo profilo e di cosa sono i penetration test è al link Penetration Tester.
  • (Network) Security Consultant: è il libero professionista, o colui che lavora assieme ad un piccolo team di persone (in genere da 2 a 4) o anche come dipendente di un’azienda, che viene ingaggiato da terze parti per configurare e gestire la sicurezza delle reti o dei sistemi.

Inoltre ci sono altre figure che possono operare a stretto contatto con la sicurezza, come:

  • System Administrator: è l’esperto di sistemi, come Linux e Windows, generalmente lato server, con buone conoscenze spesso anche di ambienti virtualizzati, di networking, e di sicurezza. Si occupa di amministrare i sistemi in questione, configurandone spesso anche gli aspetti di networking e hardening.
  • Network Administrator: è colui che gestisce tutto ciò che riguarda le reti, dalla configurazione di router e switch, a quella dei server, dei proxy, dei firewall, sia dal lato LAN che WAN. Oltre a ciò, molto spesso si occupa anche della parte di sicurezza inerente alle reti che gestisce, o comunque lavora a stretto contatto con le figure che si occupa di sicurezza di rete.

roghan

[Virtualizzazione] Cluster in HA e Disaster Recovery

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

* attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
* attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
* attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato. […]

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

  • attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
  • attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
  • attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato.

I sistemi cluster sono fondamentali in un mondo in cui le persone vogliono sempre tutto e subito; sono fondamentali per molte aziende che devono rendere costantemente disponibili i propri servizi, e dove per costantemente si intende 24h su 24, tutti i giorni dell’anno! Ecco che entra in gioco il ruolo del cluster HA appena descritto, o meglio un insieme di più nodi organizzati in modo tale da offrire un servizio quanto più possibile continuo.laptop-fire L’errore che molto spesso viene fatto nelle aziende (ho saputo di casi reali avvenuti a clienti dell’azienda in cui lavoro :-(!), è quello di acquistare come nodo primario un sistema ultra-veloce, come potrebbe essere una Ferrari, ed adoperare invece come nodo secondario un vecchio computer, paragonabile ad una memorabile Panda. Mai commettere questo errore! In caso di disaster recovery il sistema super-veloce smetterebbe di funzionare, e tutte le richieste verrebbero dunque inoltrate al secondo nodo, la vecchia Panda: siamo sicuri che la Pandina una volta entrata in funzione sia in grado di gestire tutto il carico in arrivo? Molto spesso infatti il secondo nodo non è in grado di supportare neppure metà dei servizi di quello principale, con il risultato che tutto il sistema si potrebbe bloccare dopo non molto.

Pertanto, la soluzione migliore è di configurare il cluster con nodi tutti identici. Nel caso dell’esempio precedente la soluzione è di usare due belle BMW in grado di raggiungere buone prestazioni, anche se inferiori alla Ferrari, ma prestazioni sicuramente costanti (con e senza failover)!

Inoltre, un altro errore molto diffuso nelle aziende è quello di non simulare mai un disaster recovery, un po’ come avviene per i dati di backup. Quanti di voi controllano che i dati appena salvati sia coerenti e privi di errori?? Quindi, prevenire piuttosto che curare, e pianificare con attenzione ogni scelta da fare!

Alla prossima…

Matteo

Configurare la rete

Sotto Linux, i due comandi principali che permettono di controllare e configurare i parametri di rete sono due: ifconfig e route. Altri due comandi utili, che però non verranno trattati in questo howto, sono iwconfig, per la gestione specifica delle schede di rete wireless, e il comando ip, che è una sorta di comando universale con funzionalità simile a ifconfig e route. Vediamo in dettaglio cosa permettono di fare ifconfig e route.
Il comando ifconfig serve sia per ottenere informazioni sulle configurazioni delle schede di rete, sia per configare le schede stesse. Per visualizzare le configurazioni è necessario digitandorlo da solo senza alcun parametro. […]

Sotto Linux, i due comandi principali che permettono di controllare e configurare i parametri di rete sono due: ifconfig e route. Altri due comandi utili, che però non verranno trattati in questo howto, sono iwconfig, per la gestione specifica delle schede di rete wireless, e il comando ip, che è una sorta di comando universale con funzionalità simili a ifconfig e route. Vediamo in dettaglio cosa permettono di fare ifconfig e route.

Il comando ifconfig serve sia per ottenere informazioni sulle configurazioni delle schede di rete, sia per configare le schede stesse. Per visualizzare le configurazioni è necessario digitandorlo da solo senza alcun parametro. Un esempio di output è il seguente

# ifconfig
eth0 Link encap:Ethernet HWaddr 00:1B:24:27:59:84
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Memory:da000000-da020000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:41 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4740 (4.6 KiB) TX bytes:4740 (4.6 KiB)
wlan1 Link encap:Ethernet HWaddr 00:1B:77:22:CD:2D
inet addr:172.20.100.77 Bcast:172.20.100.255 Mask:255.255.255.0
inet6 addr: fe80::21b:77ff:fe22:cd2d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2805 errors:0 dropped:0 overruns:0 frame:0
TX packets:2720 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1993718 (1.9 MiB) TX bytes:477093 (465.9 KiB)

Come è visibile nell’esempio precedente, solitamente le interfacce mostrate da ifconfig sono le seguenti:

  • eth0, eth1, … sono le schede di rete presenti sulla macchina;
  • wlan1, … sono le interfacce wireless;
  • lo è l’interfaccia logica, denominata anche di loopback, e a cui è assegnato l’indirizzo IP 127.0.0.1. Questa interfaccia indica la macchina stessa e deve essere sempre attiva, anche se il sistema non è collegato ad alcuna rete.

Nel caso in cui si voglia usare ifconfig per la configurazione di una scheda di rete, è necessario prima disattivare la scheda che si vuole andare a modificare, e solo dopo inserire i nuovi parametri. La sintassi è la seguente:

# ifconfig <interfaccia> <indirizzo_ip> down
# ifconfig <interfaccia> <indirizzo_ip> netmask <subnet_mask> broadcast <indirizzo_broadcast>

Il comando route invece serve per gestire l’instradamento dei dati, sia per visualizzare le impostazioni correnti del sistema, sia per definirne di nuove. Senza alcun parametro, o con il parametro n (per avere in output dei valori numerici), mostra le tabelle di instradamento attuali. Ecco un esempio:

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.20.100.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan1
0.0.0.0 172.20.100.254 0.0.0.0 UG 0 0 0 wlan1

Importante, nonché utile, è l’opzione con cui si può definire un nuovo default gateway (per tutti gli indirizzi):

# route add default gw <indirizzo_ip>

Di seguito viene mostrato un semplice esempio. Supponiamo di voler configurare la scheda di rete eth0 con l’indirizzo IP 192.168.1.4, maschera di rete 255.255.255.0, e gateway 192.168.1.1. I comandi da digitare sono i seguenti:

# ifconfig eth0 down
# ifconfig eth0 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255
# ifconfig eth0 up
# route add default gw 192.168.1.1

Con pochi e semplici comandi è possibile configurare una qualsiasi scheda di rete. Dopo aver apportato delle modifiche è buona norma riavviare il servizio che si occupa delle rete, anche se non è sempre necessario. Ecco come fare sulle distro Red Hat-like:

# service network restart

e sulle distro Debian-like:

# /etc/init.d/networking restart

Link di approfondimento:

http://www.coresis.com/extra/linuxcorsobase/12-1.htm

http://www.firenze.linux.it/~piccardi/corso/netadmin/node12.html

roghan

Salvare le impostazioni del firewall iptables in Linux

Netfilter è un modulo del kernel Linux che permette di gestire i pacchetti in transito attraverso il sistema, e può essere dunque utilizzato sia per funzioni di NAT che come firewall attraverso il comando iptables. In questo piccolo howto si vedrà in che modo è possibile salvare una configurazione di iptables, dopo che sono state definite nuove regole.

Innanzitutto è importante ricordare che tutte le modifiche apportate con iptables sono immediate, ossia dopo che è stato inserito un certo comando, quella regola risulta subito attiva. Dunque, bisogna prestare la massima attenzione durante la configurazione del firewall, soprattutto quando si agisce su un sistema da remoto, poiché una regola errata al momento sbagliato chiude subito fuori da tutto! Buona norma prima di inserire le regole con la shell è quella di scrivere tutte le regole iptables in un file testuale, con un qualsiasi editor di testo, in modo da poter osservare e controllare il tutto prima di digitare i comandi sulla shell. E’ importante ricordare anche che lo stato del firewall rimane tale solo fino al riavvio, momento in cui le regole inserite a sistema avviato sono “azzerate” e vengono invece caricate le impostazioni salvate. Nel caso peggiore in cui si viene chiusi fuori dal firewall mentre si stanno creando le regole (e prima di averle salvate!), è necessario “solamente” riavviarlo, operazione semplice se agiamo in locale ma più complessa se siamo da remoto :-(. […]

Netfilter è un modulo del kernel Linux che permette di gestire i pacchetti in transito attraverso il sistema, e può essere dunque utilizzato sia per funzioni di NAT che come firewall attraverso il comando iptables. In questo piccolo howto si vedrà in che modo è possibile salvare una configurazione di iptables, dopo che sono state definite nuove regole.

Innanzitutto è importante ricordare che tutte le modifiche apportate con iptables sono immediate, ossia dopo che è stato inserito un certo comando, quella regola risulta subito attiva. Dunque, bisogna prestare la massima attenzione durante la configurazione del firewall, soprattutto quando si agisce su un sistema da remoto, poiché una regola errata al momento sbagliato chiude subito fuori da tutto! Buona norma prima di inserire le regole con la shell è quella di scrivere tutte le regole iptables in un file testuale, con un qualsiasi editor di testo, in modo da poter osservare e controllare il tutto prima di digitare i comandi sulla shell. E’ importante ricordare anche che lo stato del firewall rimane tale solo fino al riavvio, momento in cui le regole inserite a sistema avviato sono “azzerate” e vengono invece caricate le impostazioni salvate. Nel caso peggiore in cui si viene chiusi fuori dal firewall mentre si stanno creando le regole (e prima di averle salvate!), è necessario “solamente” riavviarlo, operazione semplice se agiamo in locale ma più complessa se siamo da remoto :-(.

I comandi che permettono di osservare e salvare la configurazione di iptables sono:

  • iptables-save, che stampa sullo standard output la configurazione corrente del firewall;
  • iptables-restore, con cui si può ripristinare una configurazione precedentemente salvata tramite iptables-save.

In particolare, come ho già accennato, al riavvio vengono caricate le impostazioni salvate in memoria, e, pertanto, è necessario specificare quale configurazione caricare all’avvio del sistema. I metodi utilizzabili sono due:

  • uno script shell che esegue in successione tutti i comandi iptables necessari (del tipo iptables -I INPUT DROP x…, iptables -I INPUT DROP y…). In questo caso le regole vengono aggiunte a caldo e il firewall viene configurato dinamicamente ad ogni avvio. Questa tecnica ha il vantaggio di permettere commenti fra le regole e poter usare variabili, cicli e impostare regole sulla base di parametri variabili. Spesso questo script lo si richiama dal file /etc/rc.d/rc.local, anche se sarebbe preferibile applicarlo appena attivate le interfacce di rete;
  • uno script inserito tra i servizi all’interno di init.d, oppure all’interno di /etc/rc.d/rc.local, come nel caso precedente. Questo script richiamerà iptables-restore in modo da ripristinare una configurazione precedentemente salvata. Nello specifico il comando da inserire è cat /etc/firewall | iptables-restore, supponendo che firewall sia un file contenente la configurazione salvata in precedenza. Questa è la soluzione usata da molte distribuzioni, dove il file di configurazione del firewall, riprendendo l’esempio, non è altro che l’output di un comando come: iptables-save > /etc/file_config. Ha il vantaggio di applicare lunghi elenchi di regole in modo molto più rapido. Ecco un esempio di file /etc/rc.d/rc.local
    #!/bin/sh
    #
    # This script will be executed *after* all the other init scripts.
    # You can put your own initialization stuff in here if you don't
    # want to do the full Sys V style init stuff.
    touch /var/lock/subsys/local
    cat /etc/firewall | iptables-restore

Alcune risorse utili:

Linux firewalling: Introduzione a Iptables

iptables-restore

roghan

Gestione file system in Linux

In Linux prima di poter utilizzare un file system (cd/dvd, floppy, condivisione di rete windows, directory nfs, partizioni hard-disk) questo deve essere formattato e montato in una directory all’interno di quella principale ( / ). Una volta che il file system è stato montato risulta accessibile sia ai programmi e agli utenti in modo del tutto trasparente, e diventa parte integrante dell’albero delle directory sotto /. Al termine del suo utilizzo il file system può anche essere smontato, operazione essenziale ad esempio per poter poi espellere un cd/dvd. Da tenere in considerazione è il fatto che se la directory su cui viene montato il file system non è vuota, i dati in essa contenuti “spariranno” e non saranno più visibili fino a quando non verrà smontato il nuovo file system.
I comandi per montare e per smontare un dispositivo sono i seguenti:

mount -t [tipo fs] [opzioni] device directory
umount [opzioni] device
[…]

In Linux prima di poter utilizzare un file system (cd/dvd, floppy, condivisione di rete windows, directory nfs, partizioni hard-disk) questo deve essere formattato e montato in una directory all’interno di quella principale ( / ). Una volta che il file system è stato montato risulta accessibile sia ai programmi e agli utenti in modo del tutto trasparente, e diventa parte integrante dell’albero delle directory sotto /. Al termine del suo utilizzo il file system può anche essere smontato, operazione essenziale ad esempio per poter poi espellere un cd/dvd. Da tenere in considerazione è il fatto che se la directory su cui viene montato il file system non è vuota, i dati in essa contenuti “spariranno” e non saranno più visibili fino a quando non verrà smontato il nuovo file system.

FSlayout
Struttura del file system sotto Linux

I comandi per montare e per smontare un dispositivo sono i seguenti:

mount -t [tipo fs] [opzioni] device directory
umount [opzioni] device

Per montare una partizione NTFS un esempio di comando da digitare è:

mount -t ntfs-3g /dev/sda1 /media/windows

dove il tipo di file system è ntfs-3g, il dispositivo che si vuole montare è /dev/sda1 nella directory /media/windows. Inoltre, il comando mount è utile anche se usato da solo, senza alcuna opzione e parametro, e in questo caso ritornerà una lista dei dispositivi montati e i punti di mount. Ad esempio:

# mount
/dev/dm-0 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda3 on /boot type ext3 (rw)
/dev/sdb1 on /media/Archivio type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)

In questo esempio è possibile vedere sulla sinistra una lista dei device, che sono stati montati sul punto indicato a destra (/proc, /sys, /media/Archivio, …), poi è visibile il tipo (type) di file system (ext3, ext4, …), e sull’ultima colonna infine sono visualizzabili tra parentesi le modalità di accesso al punto montato (r sta per lettura, w per scrittura, …).

Altri comandi utili per la gestione del file system sono df e du, vediamoli rispettivamente. Il comando df, che sta per “Disk Free”, serve per visualizzare la quantità di spazio libero e utilizzato di ogni device montato, e questa è la sintassi:

df [opzioni] [file]

Un esempio è il seguente:

# df -h
Filesystem Dimens. Usati Disp. Uso% Montato su
/dev/dm-0 42G 19G 21G 49% /
tmpfs 1007M 1,4M 1006M 1% /dev/shm
/dev/sda3 194M 45M 140M 25% /boot
/dev/sdb1 150G 54G 96G 37% /media/Archivio

dove è stata usata l’opzione h, molto utile, per ottenere informazioni facilmente leggibili espresse in MB, GB, … Il comando du invece, che sta per “Disk Usage”, serve per visualizzare la dimensione di un file o di una directory ed ha la sintassi seguente

du [opzioni] [file]

Esempi di comandi sono i seguenti

# du /etc -h -s
88M /etc
du / | sort -n
[...]

dove il primo comando serve per determinare la dimensione della directory /etc (senza l’opzione s sarebbero mostrate le dimensioni anche di tutte le sottodirectory di /etc) in unità di misura comprensibile (opzione h). Il secondo comando serve per elencare tutte le directory del sistema ordinate per dimensione (in genere l’esecuzione ci mette un po’ di tempo).

Infine, un altro comando molto utile è fdisk, che sta per “Fixed Disk” (disco riparato) e serve per manipolare la tabella delle partizioni ma anche per sapere semplici informazioni su tutte le partizioni presenti, non solo quelle montate. La sintassi del comando è:

fdisk [opzioni] device

Per ottenere le informazioni sulle partizioni del sistema è necessario usare l’opzione -l:

fdisk -l
Disco /dev/sda: 160.0 GB, 160041885696 byte255 testine, 63 settori/tracce, 19457 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0xe4a9cdb4
Dispositivo Boot Start End Blocks Id System
/dev/sda1         1    12794 102762481 7 HPFS/NTFS
/dev/sda2        18786 19457 5397840 7 HPFS/NTFS
/dev/sda3     *  12794 12819 204800 83 Linux
/dev/sda4       12820  18785 47921895 5 Esteso
/dev/sda5       12820  18785 47921152 8e Linux LVM
Le voci nella tabella delle partizioni non sono nello stesso ordine del disco

E’ possibile vedere dall’output che sono mostrate tutte le partizioni del disco, il tipo del file system, e la partizione di boot, contrassegnata da un asterisco.

Per approfondimenti consultare i seguenti link:

struttura del file system

comandi per la gestione del file system

roghan

Security ed Anti-Forensic nell’ambito della rete aziendale

Al convegno e-privacy del 28 maggio 2010 mi ha particolarmente interessato una discussione riguardante le tecniche di anti-forensic presentata da Daniele Martini, alias cyrax. Le tecniche di anti-forensic sono tutte quelle tecniche, opposte alle forensic (o investigazioni forensi), che mirano a nascondere le informazioni e a proteggere i dati da potenziali controlli e investigatori.

forensic science

Le tecniche presentate durante la relazione non sono state descritte nei dettagli, ma vogliono essere solo un pretesto per illustrare il panorama attuale in materia, e sono le seguenti:

* Artifact wiping
Questa tecnica prevede la cancellazione dei dati utilizzando ad esempio più riscritture dei blocchi in memoria, da un minimo di 3, arrivando addirittura a 14 o anche molte più riscritture. Tuttavia esistono sistemi che permettono di recuperare i dati anche in seguito a numerose riscritture, e per questo motivo è consigliabile effettuare sempre un elevato numero di riscritture dei blocchi. L’eliminazione definitiva dei dati può passare anche da azioni “definitive” come la rottura fisica del dispositivo di archiviazione, oppure l’utilizzo di campi magnetici in modo da rendere illeggibile il contenuto. Tra le tecniche mostrate che permettono il recupero dei dati c’è stato il Cold Boot Attack (link1 e link2), che, lo ammetto, non avevo mai sentito nominare! E’ un particolarissimo tipo di attacco fisico (ossia l’attaccante deve avere accesso fisico al dispositivo bersaglio), in cui viene congelata la RAM e quindi tolta dal dispositivo. Il congelamento è necessario per permettere ai dati di rimanere in memoria alcuni minuti, dal momento che la RAM per definizione è un tipo di memoria volatile, in cui i dati vanno persi non appena il sistema viene spento.
[…]

Al convegno e-privacy del 28 maggio 2010 mi ha particolarmente interessato una discussione riguardante le tecniche di anti-forensic presentata da Daniele Martini, alias cyrax. Le tecniche di anti-forensic sono tutte quelle tecniche, opposte alle forensic (o investigazioni forensi), che mirano a nascondere le informazioni e a proteggere i dati da potenziali controlli e investigatori.

Le tecniche presentate durante la relazione non sono state descritte nei dettagli, ma vogliono essere solo un pretesto per illustrare il panorama attuale in materia, e sono le seguenti:

  • Artifact wiping
    Questa tecnica prevede la cancellazione dei dati utilizzando ad esempio più riscritture dei blocchi in memoria, da un minimo di 3, arrivando addirittura a 14 o anche molte più riscritture. Tuttavia esistono sistemi che permettono di recuperare i dati anche in seguito a numerose riscritture, e per questo motivo è consigliabile effettuare sempre un elevato numero di riscritture dei blocchi. L’eliminazione definitiva dei dati può passare anche da azioni “definitive” come la rottura fisica del dispositivo di archiviazione, oppure l’utilizzo di campi magnetici in modo da rendere illeggibile il contenuto. Tra le tecniche mostrate che permettono il recupero dei dati c’è stato il Cold Boot Attack (link1 e link2), che, lo ammetto, non avevo mai sentito nominare! E’ un particolarissimo tipo di attacco fisico (ossia l’attaccante deve avere accesso fisico al dispositivo bersaglio), in cui viene congelata la RAM e quindi tolta dal dispositivo. Il congelamento è necessario per permettere ai dati di rimanere in memoria alcuni minuti, dal momento che la RAM per definizione è un tipo di memoria volatile, in cui i dati vanno persi non appena il sistema viene spento.
  • Data Hiding
    Questa è l’arte di nascondere le informazioni all’interno di “luoghi” improbabili, che si suppone non saranno controllati dall’eventuale indagatore. Tra queste tecniche vi è quella di celare i dati in determinati blocchi della memoria, per poi etichettarli come bad block, oppure in spazi riservati del filesystem (come ad esempio la directory /dev sui sistemi Linux), o ancora nello slack space.
  • Encryption
    Il metodo “classico” per nascondere i dati, attraverso la cifratura dell’intero filesystem, o di determinate directory (viene citato come esempio il noto TrueCrypt). Infine viene discussa la tecnica della steganografia, l’arte di nascondere un messaggio in un determinato contesto, come l’occultamento di un testo in una foto o in un video/audio.
  • Trail obfuscation
    Qui sono state discusse le tecniche per offuscare i dati come la modifica dell’hash di un file o degli attributi di un file (data modifica, ultimo accesso, …). Un’azione invece più deplorevole potrebbe essere di installare un po’ di diavolerie sul proprio sistema, come worm, virus o cavalli di troia, al fine di dire “non sono stato io perché ho preso un virus!”. In questo modo è possibile cercare di confondere chi vuole accedere ai dati e controllarli.
  • Attacks against CF
    Questa categoria infine racchiude tutte le azioni che cercano di nascondere e/o rimuovere certi dati al verificarsi di particolari condizioni. Ad esempio potrebbero essere creati degli script che eliminano dei dati se viene effettuato il login da un certo utente, o se si verificano particolari procedure di avvio, o in alternativa potrebbe essere avviata una Virtual Machine. Un’altra tecnica, però molto pericolosa :-P, è anche quella di controllare la rete a cui è collegato il dispositivo, e nel caso cambi effettuare determinate operazioni.

L’intervento è liberamente distribuito e scaricabile dal sito del convegno e-privacy, sia come file pdf che come audio in formato mp3. Ecco il link:

e-privacy.winstonsmith.org/interventi.html#martini

Altrimenti il pdf è scaricabile direttamente dal seguenti link:

download pdf

roghan

L’importanza dell’ora corretta in un sistema

In un sistema è importantissimo configurare correttamente l’ora. Per tanti motivi. Primo su tutti per l’utilizzo e il controllo dei file di log. Immaginate uno scenario in cui viene portato un attacco ad un server X, ad una determinata ora e giorno, ad esempio il 28 aprile 2010 alle 12.31, ma nel sistema attaccato l’ora impostata è errata e segna il 25 marzo 2009 ore 11.05. Certo questo è un caso limite, ma molto spesso l’ora e la data del sistema differiscono da quella esatta anche pochi minuti. Sono questi pochi minuti che fanno la differenza nel caso di un attacco informatico, o nel caso comunque di un evento da tenere sotto controllo tra più dispositivi di rete. In questi casi, quando l’amministratore andrà a controllare i file di log generati dal sistema potrà avere notevoli problemi a ricostruire i fatti se l’ora è errata, e nel caso di un attacco la differenza nell’ora anche di pochi minuti può causare non pochi problemi. La soluzione è tenere costantemente aggiornata l’ora del sistema. Per quanto riguarda Linux, è possibile configurare manualmente l’ora come spiegato a questo link, ossia:

1. bisogna impostare l’ora con il comando date
date –set 22:20
2. quindi configurare l’ora hardware del sistema con il comando hwclock, perché il comando date automaticamente non aggiorna anche l’ora hardware
hwclock –systohc –utc
[…]

In un sistema è importantissimo configurare correttamente l’ora. Per tanti motivi. Primo su tutti per l’utilizzo e il controllo dei file di log. Immaginate uno scenario in cui viene portato un attacco ad un server X, ad una determinata ora e giorno, ad esempio il 28 aprile 2010 alle 12.31, ma nel sistema attaccato l’ora impostata è errata e segna il 25 marzo 2009 ore 11.05. Certo questo è un caso limite, ma molto spesso l’ora e la data del sistema differiscono da quella esatta anche pochi minuti. Sono questi pochi minuti che fanno la differenza nel caso di un attacco informatico, o nel caso comunque di un evento da tenere sotto controllo tra più dispositivi di rete. In questi casi, quando l’amministratore andrà a controllare i file di log generati dal sistema potrà avere notevoli problemi a ricostruire i fatti se l’ora è errata, e nel caso di un attacco la differenza nell’ora anche di pochi minuti può causare non pochi problemi. La soluzione è tenere costantemente aggiornata l’ora del sistema. Per quanto riguarda Linux, è possibile configurare manualmente l’ora come spiegato a questo link, ossia:

  1. bisogna impostare l’ora con il comando date
    $ date --set 22:20
  2. quindi configurare l’ora hardware del sistema con il comando hwclock, perché il comando date automaticamente non aggiorna anche l’ora hardware
    $ hwclock --systohc --utc

Una soluzione alternativa a questa (e da preferire) è quella di utilizzare il protocollo NTP (Network Time Protocol), con il quale è possibile tenere aggiornata automaticamente l’ora e la data di un sistema (sia su Windows che su Linux), anziché dover impostare i dati corretti manualmente o comunque tramite script. NTP è un protocollo di tipo client/server (con una gerarchia a strati), in cui sul server è configurata l’ora esatta, e il client si collega al server per determinare l’ora e aggiornare così quella del proprio sistema. In figura è visibile l’architettura creata da NTP.

Architettura di NTP

Solitamente nelle LAN di una certa dimensione si preferisce creare un server NTP dedicato, in modo tale che tutti i vari dispositivi si sincronizzino con questo, e questo a sua volta con un server di strato 2. Per reti locali piccole invece (con 2-5 postazioni), o nel caso di utenti singoli che vogliono tenere aggiornata l’ora del proprio pc, è necessario solamente configurare i giusti file su ogni sistema affinché ogni postazione si colleghi autonomamente ad un server di strato 2.

Un importante punto di partenza per configurare NTP in ambiente Linux è questo sito, in cui ci sono anche accenni sulla sicurezza del protocollo (quando possibile si consiglia sempre l’utilizzo della versione 3 e di un server che richiede l’autenticazione). Nel sito ci sono anche riferimenti e descrizioni su come impostare un router Cisco (o altri prodotti) affinché utilizzi un server NTP. Per quanto riguarda la controparte Windows invece, il servizio che si occupa di sincronizzare l’ora è noto come W32Time (Windows Time Service), i seguenti siti contengono tutte le informazioni per configurare correttamente tutti i paramentri:

  • questo sito contiene numerosa documentazione su come sincronizzare una rete Windows con un server NTP
  • sito per la configurazione lato client su Windows XP
  • sito per l’aggiunta di server NTP su Windows XP
  • sito per la configurazione di un server NTP su Windows XP
  • sito per configurare in modo avanzato un server NTP su Windows Server 2003/2008

roghan

Pericolo hacker: è davvero così?

Alcuni giorni fa è stato trasmesso da Le Iene un video in cui veniva intervistato un giovane hacker, anzi nemmeno tanto giovane ;-). Anche se vi siete persi la puntata non preoccupatevi, su youtube si trova sempre tutto, eccolo. Nell’intervista l’hacker dice, e poi dimostra, quanto sia facile entrare nel pc di una qualunque persona, e dunque quanto sia facile poter rubare dati sensibili o altro ad ignari utenti. Il tipo afferma che non ha mai usato le password e i dati che ha recuperato per nessun motivo, ma sarà davvero così? Personalmente non gli credo, perché dice anche che impiega giorni se non mesi per pianificare un attacco! Quindi trascorre dei mesi a pensare ad un possibile attacco solo per puro divertimento?? Mah! Comunque, tornando allo scopo dell’articolo, il pericolo di essere attaccati è davvero così elevato come vogliono farci credere nel video? Nella realtà non è proprio così…
Per quanto riguarda i cracker, ossia gli hacker “cattivi” (che attaccano i pc e i sistemi non per divertimento o passione ma solo per scopo di lucro o peggio), si possono categorizzare in due tipologie:

* quelli che non vogliono attaccare una persona in particolare, e l’obiettivo è semplicemente attaccare qualcuno, come nel caso dei virus/worm/trojan trasmessi ad utenti sconosciuti tramite i software p2p
* quelli che invece prendono di mira una persona specifica (o un’azienda ad esempio), che conoscono, o comunque possono essere a conoscenza che questa persona ha dei dati che a loro potrebbe interessare. […]

Alcuni giorni fa è stato trasmesso da Le Iene un video in cui veniva intervistato un giovane hacker, anzi nemmeno tanto giovane ;-). Anche se vi siete persi la puntata non preoccupatevi, su youtube si trova sempre tutto, eccolo. Nell’intervista l’hacker dice, e poi dimostra, quanto sia facile entrare nel pc di una qualunque persona, e dunque quanto sia facile poter rubare dati sensibili o altro ad ignari utenti. Il tipo afferma che non ha mai usato le password e i dati che ha recuperato per nessun motivo, ma sarà davvero così? Personalmente non gli credo, perché dice anche che impiega giorni se non mesi per pianificare un attacco! Quindi trascorre dei mesi a pensare ad un possibile attacco solo per puro divertimento?? Mah! Comunque, tornando allo scopo dell’articolo, il pericolo di essere attaccati è davvero così elevato come vogliono farci credere nel video? Nella realtà non è proprio così…

Per quanto riguarda i cracker, ossia gli hacker “cattivi” (che attaccano i pc e i sistemi non per divertimento o passione ma solo per scopo di lucro o peggio), si possono categorizzare in due tipologie:

  • quelli che non vogliono attaccare una persona in particolare, e l’obiettivo è semplicemente attaccare qualcuno, come nel caso dei virus/worm/trojan trasmessi ad utenti sconosciuti tramite i software p2p
  • quelli che invece prendono di mira una persona specifica (o un’azienda ad esempio), che conoscono, o comunque possono essere a conoscenza che questa persona ha dei dati che a loro potrebbe interessare.

Rientrano nella prima categoria quasi unicamente gli attacchi definiti phishing, quando il cracker X invia una mail all’utente contenente un link ad un sito fasullo, o quando la mail contiene un allegato che in realtà è un virus o un trojan. Questo tipo di cracker non conosce solitamente molte informazioni sulla vittima, e quindi la pericolosità dell’attacco sta tutta nella mail! Per quanto riguarda invece il secondo gruppo di cracker, la situazione è ben diversa. In questo caso l’attaccante ha più informazioni sulla vittima, o si trova fisicamente vicino (ad esempio un vicino di casa che vuole crakkare il router wireless, o in luoghi pubblici con un accesso wifi libero), e il metodo di attacco può anche essere diverso dal semplice phishing, anzi quasi sicuramente.

Dopo questa breve spiegazione sui possibili hacker “cattivi”, vediamo se e quando bisogna preoccuparci e come possiamo proteggerci! Tornando ancora al primo gruppo di cracker, possiamo proteggerci da essi con un minimo di accortezza:

  1. installare un firewall sul proprio pc (a meno che non abbiate un router ADSL, che generalmente incorpora e ha attivo un firewall)
  2. avere un antivirus aggiornato (non importa avere una suite super costosa, ma è sufficiente anche un antivirus freeware)
  3. aggiornare costantemente il proprio sistema operativo (che sia Windows, Linux, Mac, o altro)
  4. fare attenzione alle mail ricevute. Disabilitare sempre la visualizzazione delle mail in formato HTML, e visualizzare in semplice modalità testuale in modo da evitare il caricamento di eventuali script nascosti. Non dobbiamo mai rispondere a mail sospette, e soprattutto non aprirne gli allegati!
  5. non dobbiamo visitare siti potenzialmente dannosi, come ad esempio siti warez/crack, contenenti codici seriali o materiale pirata in generale, o a volte anche fasulli siti di gruppi hacker
  6. attenzione anche a ciò che si scarica tramite software p2p.

Seguendo questi accorgimenti le possibilità di subire un attacco sono prossime allo zero. Diversa è la situazione nel caso in cui un utente sia preso di mira da un cracker, che è fisicamente vicino alla vittima nel caso di connessioni wireless, oppure quando conosce ad esempio il suo indirizzo IP. In questo caso non esiste difesa sicura, e dipende tutto dal livello di abilità dell’attaccante nel portare a termine un attacco diretto! Firewall e antivirus non servono a molto purtroppo :-(… Per un maggiore approfondimento su ciò, consiglio di leggere l’intervista a Joanna Rutkowska, esperta di sicurezza informatica, al seguente link:

Contro i veri hacker non c’è firewall che tenga

Concludendo, il numero di attacchi maggiormente diffusi viene effettuato da cracker appartenenti al primo gruppo (a volte semplici ragazzini, in gergo definiti script-kiddies), mentre sono molto rari quelli relativi al secondo gruppo, diciamo 10 a 1. Dunque possiamo tutti dormire sonni tranquilli e non c’è da preoccuparsi per quello che hanno detto a Le Iene se seguiamo gli accorgimenti scritti su, e ricordiamo… La miglior difesa siamo sempre e solo noi stessi!

Vi consiglio anche di leggere la guida che ho scritto:

Come proteggere la privacy in Rete

roghan

E’ utile avere una certificazione?

Da quando ho finito l’università, lo scorso aprile, mi sono messo alla ricerca per mesi di un corso/master sulla sicurezza che mi permettesse di mettere le basi per poter poi lavorare in questo settore. Mi sono informato presso amici e conoscenti, ho girato sul web ore ore e ore, e le opzioni che mi si sono presentate sono state queste:

* master organizzati dalle grandi università, come a Milano e Roma, della durata di un anno e in grado di fornire ottime conoscenze di base, ma dal costo non irrisorio (dai 5000 euro in su, anche fino a 10000). E’ da considerare anche il fatto che avrei dovuto studiare fuori sede, e dunque avrei dovuto sommare il costo di vitto e alloggio. Risultato: opzione scartata subito.
* stage, in modo da entrare velocemente nel mondo del lavoro e provare “con mano” cosa significa lavorare nella sicurezza. Il problema di questa opzione era che mi mancavano le basi per poterlo fare! Anche se è proprio lo scopo di uno stage quello di formare un giovane, però sono necessarie delle conoscenze di base, che la mia laurea purtroppo non mi ha fornito :-(. Se ad esempio si vuole diventare programmatori, e si pensa di fare uno stage in azienda come programmatore Java, saranno necessarie almeno alcune conoscenze sull’informatica e sulla programmazione in generale. Non si può guidare senza aver fatto alcune lezioni di guida…
* la terza opzione era quella di seguire un corso dalla cifra modica, e organizzato da quante scuola/università nella mia regione (la Toscana), per evitare i costi dovuti a vitto e alloggio. I corsi (in genere della durata di qualche mese, 3-6) che avevo trovato erano tutti di poche ore, coprivano aspetti generali sulla sicurezza (che si possono apprendere anche con un po’ di studio da autodidatta e con un po’ di buona volontà) e non rilasciavano alcun titolo. Quindi ho ripiegato su un corso che mi permettesse alla fine di ottenere una certificazione!
[…]

Da quando ho finito l’università, lo scorso aprile, mi sono messo alla ricerca per mesi di un corso/master sulla sicurezza che mi permettesse di mettere le basi per poter poi lavorare in questo settore. Mi sono informato presso amici e conoscenti, ho girato sul web ore ore e ore, e le opzioni che mi si sono presentate sono state queste:

  • master organizzati dalle grandi università, come a Milano e Roma, della durata di un anno e in grado di fornire ottime conoscenze di base, ma dal costo non irrisorio (dai 5000 euro in su, anche fino a 10000). E’ da considerare anche il fatto che avrei dovuto studiare fuori sede, e dunque avrei dovuto sommare il costo di vitto e alloggio. Risultato: opzione scartata subito.
  • stage, in modo da entrare velocemente nel mondo del lavoro e provare “con mano” cosa significa lavorare nella sicurezza. Il problema di questa opzione era che mi mancavano le basi per poterlo fare! Anche se è proprio lo scopo di uno stage quello di formare un giovane, però sono necessarie delle conoscenze di base, che la mia laurea purtroppo non mi ha fornito :-(. Se ad esempio si vuole diventare programmatori, e si pensa di fare uno stage in azienda come programmatore Java, saranno necessarie almeno alcune conoscenze sull’informatica e sulla programmazione in generale. Non si può guidare senza aver fatto alcune lezioni di guida…
  • la terza opzione era quella di seguire un corso dalla cifra modica, e organizzato da quante scuola/università nella mia regione (la Toscana), per evitare i costi dovuti a vitto e alloggio. I corsi (in genere della durata di qualche mese, 3-6) che avevo trovato erano tutti di poche ore, coprivano aspetti generali sulla sicurezza (che si possono apprendere anche con un po’ di studio da autodidatta e con un po’ di buona volontà) e non rilasciavano alcun titolo. Quindi ho ripiegato su un corso che mi permettesse alla fine di ottenere una certificazione.

Fino a qualche mese fa non sapevo neppure dell’esistenza delle certificazioni, né cosa fossero, né tanto meno come fosse possibile ottenerle! Una certificazione si ottiene in seguito al conseguimento di uno o più esami presso una scuola (in alcuni casi è possibile anche sostenere gli esami online, ma io eviterei questa opzione :-|), ha durata di qualche anno (dopodiché scade e va rinnovata), e permette di ottenere un “titolo” da aggiungere al proprio curriculum. A differenza di un diploma o di una laurea, in cui gli esami devono essere sostenuti una sola volta (e vorrei anche vedere!), nelle certificazioni, come ho scritto sopra, è necessario restare aggiornati e pertanto dopo qualche anno andrà nuovamente sostenuto l’esame/i. Dopotutto il settore dell’informatica, e quindi anche quello della sicurezza, è un settore in costante aggiornamento, no?! Nel giro di pochi mesi tutto diventa obsoleto, dal pc, ai programmi… tutto deve rimanere aggiornato!

Una certificazione, in definitiva, attesta le capacità di fare “qualcosa” e le conoscenze per farlo al meglio, a differenza della laurea che fornisce perlopiù solo conoscenze teoriche. Nel mio corso di laurea c’era un corso che si chiamava “Sicurezza delle Reti” in cui non venivano neppure citati i termini firewall, IDS, virus. Doveva chiamarsi “Fondamenti di criptografia”, oppure, non so, “Criptografia e criptanalisi”, e allora sarebbe stato corretto il materiale del corso, ma non “Sicurezza delle Reti”!! Ai fini pratici a cosa servono esami di questo tipo? Solo per arrivare alla laurea e per mostrare gli aspetti matematici dietro agli algoritmi criptografici, ma del tutto inutili per entrare nel mondo del lavoro! Una certificazione sulla sicurezza invece è pratica, o meglio “real-world” come spesso viene definita. Permette di studiare la teoria, ma anche di fare pratica e vedere che cosa significa “mettere un sistema in sicurezza”. Questo è il vero vantaggio secondo me!

Personalmente la scorsa settimana ho fatto e superato il mio primo esame per una certificazione Cisco, la CCNA Security. L’esame che ho superato è stato “Implementing Cisco IOS Network Security”, e l’ho sostenuto dopo aver seguito un corso presso una scuola di Firenze, da settembre a prima di Natale. Posso dire che adesso ho una visione di insieme della sicurezza molto più ampia di prima, sia perché il corso è stato molto pratico, sia perché permette di entrare in questo settore molto rapidamente (cosa che raramente fa un esame universitario). Purtroppo però studiare non è stato molto facile, anzi è stato molto ma molto faticoso, e tante sono state le ore che ho dovuto passare sui libri e al pc a fare pratica. Questo perché il CCNA Security è un esame che andrebbe sostenuto solo dopo aver conseguito il CCNA (o almeno dopo aver seguito un corso analogo), per avere le conoscenze base sul networking. Nel mio corso di laurea non esiste esame che spiega cos’è un router, cos’è concretamente una LAN, o cos’è un virus, ma dico io!!!!

Concludendo posso dire che una certificazione secondo me è utile in due casi:

  1. quando non si hanno conoscenze reali o esperienze sul campo, ma solo teoriche, e purtroppo questa è una situazione molto diffusa nelle università italiane (almeno per quanto riguarda informatica, e le ingegnerie corrispondenti).
  2. quando la laurea o comunque il titolo di studio non è idoneo (tipo in lettere, in biologia, solo per fare un esempio).

Matteo

“Il nucleo della conoscenza è questo: se la possiedi, applicala; se non la possiedi, confessa la tua ignoranza.” (Confucio)

Guadagnare con i social network?!

Giorni fa sono capitato su quello che pare essere un nuovo social network, o meglio un altro… ma con una particolarità! Il titolo della homepage recita infatti “Il Network Sociale che Ricompensa i Suoi Membri”, che ottima trovata vi starete dicendo! Davvero una bella novità, e finalmente una ventata di aria fresca… tenendo conto di quanto siano sempre più utilizzati ultimamente i social network, facebook su tutti! Ma sarà davvero così? Forse sì, o forse no? Cosa ci guadagna il sito oltre la popolarità? Andiamo per ordine e partiamo dal sito, che è raggiungibile al seguente indirizzo:

Klikot

Per curiosità sono andato a leggere la pagina Privacy, che si trova in basso nella home, e l’arcano è stato svelato: guadagno per gli utenti in cambio dei loro dati! E poi si parla sempre di privacy… Infatti basta fermarsi al primo paragrafo della pagina (quello intitolato “Personal information that We collect”), e in particolare alla seguente parte:
[…]

Giorni fa sono capitato su quello che pare essere un nuovo social network, o meglio un altro… ma con una particolarità! Il titolo della homepage recita infatti “Il Network Sociale che Ricompensa i Suoi Membri“, che ottima trovata vi starete dicendo! Davvero una bella novità, e finalmente una ventata di aria fresca… tenendo conto di quanto siano sempre più utilizzati ultimamente i social network, facebook su tutti! Ma sarà davvero così? Forse sì, o forse no? Cosa ci guadagna il sito oltre la popolarità? Andiamo per ordine e partiamo dal sito, che è raggiungibile al seguente indirizzo:

Klikot

Per curiosità sono andato a leggere la pagina Privacy, che si trova in basso nella home, e l’arcano è stato svelato: guadagno per gli utenti in cambio dei loro dati! E poi si parla sempre di privacy… Infatti basta fermarsi al primo paragrafo della pagina (quello intitolato “Personal information that We collect”), e in particolare alla seguente parte:

“For example, we may record the frequency and scope of your use of the services, the duration of your sessions, the web pages that you visit, information that you read, content that you use or create, advertisements that you view or click on, your communications with other users and third parties on Klikot, the Internet protocol (IP) address and the name of the domain that serve you to access Klikot, or any of the Services, and the geographic location of the computer system that you are using to log-in on Klikot. We may automatically gather this information, through the use of log files. If you are registered with Klikot, the information we gather may be anonymous or in some instances personally identifiable. If you are not a registered user, than we will not knowingly make use of any information which personally identifies you, except as specifically indicated in the policy.”

Praticamente vengono registrate quasi tutte le azioni effettuate dall’utente sul sito :-|, anche se in teoria più avanti nella pagina vengono specificati i termini di utilizzo dei dati raccolti (non so però quanto possano essere ritenuti affidabili e precisi). Vengono memorizzati i file log delle pagine visitate dagli utenti, i contenuti creati o usati, tutte le comunicazioni, e l’indirizzo IP! Quest’ultimo è ciò che identifica in Rete una qualsiasi persona o più in generale un dispositivo collegato alla Rete, e può essere paragonato al numero della carta d’identità di una persona, anche se risalire al nome dell’intestatario dell’indirizzo IP non è una cosa praticamente possibile (dovrebbe essere inoltrata una richiesta all’ISP dell’utente), eccetto che per enti del tipo NSA, FBI, Polizia Postale, o comunque grandi organizzazioni.

Questo credo sia solo uno dei tanti esempi che circolano sul web, non solo per quanto riguarda i social network, ma anche per tanti altri servizi. Spesso un servizio, un software, o qualunque altra cosa liberamente distribuita sul web cela al suo interno un arcano segreto, simile a quello di questo sito, se non peggiore! Non è una novità sentire di siti e aziende che hanno venduto i dati raccolti nei loro database a terze parti, di programmi contenenti spyware al loro interno (da non confondere con il termine più generale malware, ossia tutto quel software che ha come obiettivo quello di danneggiare il pc su cui viene eseguito). Con questo non voglio dire di non usare servizi e siti free, o software freeware, anzi l’open source dovrebbe fare da scuola a molti, però dico di fare molta attenzione a ciò che all’apparenza può sembrare “tutto oro”…

Matteo

“Gli onesti da nessun guadagno sono indotti all’inganno, i disonesti anche da uno piccolo.” (Cicerone)