giovedì 25 settembre 2008

Router Cisco e IOS Overview

IOS (Internetworking Operating System) è il sistema operativo utilizzato nella maggior parte dei Router Cisco Systems.


IOS equipaggia la maggiorparte dei router Cisco ed anche molti dei suoi switch. Attualmente lo sviluppo di questo software è arrivato alla versione 12.2. Tramite IOS è possibile gestire tutte le caratteritiche del router, dal settaggio degli indirizzi, a quello dei protocolli di routing, al controllo del traffico, all'aggiornamento del software.

COMPONENTI DI UN ROUTER CISCO
Sapere quali sono i componenti presenti in un router è importante per comprendere l'utilizzo di IOS. Il router è sostanzialmente un apparato hardware simile ad un computer con uno o più processori, le memorie (volatili e non) e le interfacce per connettersi in reti ed il sistema operativo IOS appunto.
I principali componenti di un Router Cisco sono:
Memoria ROM: contiene il codice per il Bootstrap (avvio) del router, il codice per il POST (Power-On Self Test) il quale esegue la diagnostica dell'hardware presente ed un mini-IOS per permetterne la manutenzione in caso di problemi;
Memoria RAM: in questa memoria di tipo volatile il routing mantiene le informazioni relative alla configurazione corrente e le tabelle di routing. Resettando la macchina le informazioni qui presenti verrano perse, così come eventuali modifiche alla configurazione non ancora salvate;
Memoria NVRAM: è acronimo di Non Volatile RAM ovvero quell'area di memoria che non viene persa allo spegnimento del router dove vengono memorizzate le configurazioni da caricare all'avvio e l'importante Configuration Register (Registro di configurazione) che permette tra le altre cose di determinare la modalità di avvio dell'apparato;
Memoria FLASH: si tratta di una memoria di tipo EEPROM (Electrically Erasable Programmable Read Only Memory).
La Flash non viene cancellata allo spegnimento del router e contiene l'immagine (ma è anche possibile più di una) del sistema operativo IOS;

IOS RELEASE
Le versioni di IOS si distinguono in tre classi principali in base all'utente:
- General Deployment: rappresenta un software di sistema considerato stabile ed esente da bug;
- Early Deployment: questo tipo di release offre oltre alla correzione dei bug della precedente release nuove features come per esempio il supporto di nuovo hardware o il miglioramento di alcuni protocolli;
- Maintenance Release: sostitisce la General Deployment ed è rappresentata dai vari rilasci di manutenzione (es. per la versione 12.0 avremo le Maintenance 12.1 12.2 ecc.)

IOS IMAGE NAMING CONVENTION
Il sistema operativo Cisco IOS viene solitamente caricato, o aggiornato copiando la relativa immagine tramite un TFTP server nella memoria FLASH del router. E' necessario conoscere le caratteristche del proprio apparato al fine di installare la corretta immagine. Il nome di ogni IOS segue uno schema preciso: Platform-Features-Run-time memory and compression format.
Il significato è il seguente:
Platform: è il modello di router per cui il sistema operativo è stato sviluppato (Es. Cisco 2500, Cisco 7000, Cisco 12000)
Features: sono le caratteristiche come per esempio i protocolli di routing supportati, la possibilità di fare NAT o di creare connessioni VPN ecc.;
Run-time memory and compression format: questo valore è indicato da due lettere, la prima identifica in che area di memoria verrà eseguita l'immagine del sistema operativo, e la seconda il formato di compressione;

Un esempio: c7200-ajs56-mz
c7200: Router Cisco Serie 7200
-
a: supporto protocollo APPN;
j: supporto di caratteristiche Enterprise;
s: supporto di NAT,ISL,VPDN/L2F
56: supporto di crittografia a 56 bit
-
m: esecuzione in RAM
z: file compresso con Zip

CONNESSIONE AL ROUTER
Ci sono diversi modi di connetersi al router, a seconda della situazione in cui ci si trova. Al primo avvio non essendo configurate interfacce di rete sarà necessario connettersi tramite la porta CONSOLE la AUXILIARY PORT tramite un cavo cosidetto console (roll-over), mentre successivamente, una volta configurata un'interfaccia di rete, ci si potrà connettere tramite telnet o SSH.

Le porte CONSOLE e AUX si trovano nella parte posteriore del router e solitamente sono di tipo RJ45. Il collegamento attraverso questo tipo di porte, di default è privo di password.

SETUP MODE
Una volta collegati al router, se non esiste una configurazione in NVRAM, IOS propone una configurazione passo-passo In questo caso il sistema pone una serie di domande (tra parentesi quadre[] viene visualizzata la risposta di default) al fine di configurare l'hardware trovato. Al termine delle domande verrà generato il file di configurazione.
Esempio di SETUP MODE:
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog?
[yes/no]: y
At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
..
Configuring global parameters:
Enter host name [Router]: Zion-1
..

IOS USER INTERFACE
Le configurazioni avvengono solitamente tramite CLI (Command Line Interface), un interfaccia testuale a menu nidificati, che permette di configurare in ogni sua parte il comportamento del router.
E' comunque possibile creare delle configurazioni tramite tool ad interfaccia grafica e poi copiarla via rete nel router.

LE MODALITA' DI UN ROUTER CISCO: COMMAND MODES
Cisco IOS puo operare in differenti modalità:
User EXEC mode: Una volta configurato il router, premendo INVIO al termine dei messaggi di boot ci si trova in questa modalità. In User Mode è disponibile solo un sottoinsieme dei comandi IOS ed il prompt del router è rappresentato dal nome host seguito dal carattere >. E' possibile visualizzare alcune informazioni sulle interfacce, le statistiche del router ma non cambiare i parametri di configurazione.
Esempio di prompt da USER MODE:
Press Enter to Begin
Router>
Router è il nome host name di default, nel caso avessimo dato come host name Zion-1 avremmo avuto un prompt:
Zion-1>
Privileged EXEC mode: in questa modalità a cui si ha accesso tramite password è possibile visualizare tutte le informazioni del router ed accedere alla modalità di configurazione per cambiarne i parametri di funzionamento.
Esempio:
Router> enable
tramite il comando enable si passa in modalità Privileged EXEC mode
Password:
Router#
Una volta autenticati tramite password si nota che il prompt è cambiato, e presente il simbolo # simile a quando ci si trova come root su una macchina Unix/Linux
Global configuration: in configurazione globale è possibile accedere ai sotto menu di configurazione di interfacce e protocolli ed il prompt cambierà in:
Router(config)#
Interface configuration: è possibile configurare ogni interfaccia di rete presente (Bri, ATM, Eth), quando il router si trova in questo stato avremo un prompt di questo tipo:
Router(config-if)#
ROM Monitor: quando l'immagine del sistema è corrotta o non trovata il sistema si avvia in questa modalità, e con un ristretto insieme di comandi utili per eseguire la manutenzione. E' possibile entrare in questa modalità anche lanciando il comando reload da user EXEC mode e premendo entro 60 secondi dal boot il tasto Interr (Break Key) sulla tastiera del computer. Il prompt Rom Monitor sarà:
>

HELP IN LINEA DI IOS
Ios dispone di un help in linea che attraverso il comando ? permette di visualizzare aiuti sui comandi disponibili a seconda della modalità in cui ci si trova.

Fonte: http://openskill.info/

venerdì 19 settembre 2008

Installazione remota attraverso le Group Policy

Questa guida non ha la pretesa di esser esauriente in tutti gli aspetti della gestione di un dominio e da per scontato che l’utente abbia delle buone basi su connessioni di rete TCP/IP e LAN,su architettura CLIENT/SERVER, e sui sistemi operativi SERVER 2003 e WINDOWS XP/2000.

Sistemi Operativi utilizzati:
-Windows Server 2003 Standard Edition
-Windows Xp Professional

Assegnazione di software
È possibile assegnare la distribuzione di un programma a utenti o computer. Se si assegna il programma a un utente, verrà installato quando l'utente effettuerà l'accesso al computer. Quando l'utente esegue il programma per la prima volta, viene finalizzata l'installazione.
Se si assegna il programma a un computer, verrà installato all'avvio del computer e sarà disponibile per tutti gli utenti che effettueranno l'accesso a quel computer. Quando un utente esegue il programma per la prima volta, viene finalizzata l'installazione.

Pubblicazione di software
È possibile pubblicare la distribuzione di un programma agli utenti. Quando l'utente accede al computer, il programma pubblicato viene visualizzato nella finestra di Installazione applicazioni, da cui potrà essere installato.


Creazione di un punto di distribuzione
Per pubblicare o assegnare un programma a un computer, è necessario creare un punto di distribuzione sul server di pubblicazione:
1. Accedere al computer server come amministratore.
2. Creare una cartella di rete condivisa in cui collocare il pacchetto MSI (Microsoft Software Installer) che si desidera distribuire.
3. Impostare le autorizzazioni sulla condivisione in modo da consentire l'accesso al pacchetto di distribuzione.
4. Copiare il pacchetto MSI nel punto di distribuzione.
5. Per creare un pacchetto .msi da un .exe : copiare il file setup.exe nella subdirectory Extract e da shell digitare il comando: Setup.exe /c /t Extract
6. A questo punto si troverà all’interno della subdirectory Extract il file : Virtual_PC_2007_Install.msi


Creazione di un oggetto Criteri di gruppo
Per creare un oggetto Criteri di gruppo (GPO, Group Policy Object) da utilizzare per la distribuzione del pacchetto software:
1. Avviare lo snap-in Utenti e computer di Active Directory. Per effettuare tale operazione, fare clic sul pulsante Start, scegliere Programmi, Strumenti di amministrazione e infine Utenti e computer di Active Directory.
2. Nella struttura della console fare clic con il pulsante destro del mouse sul dominio o sulla unità organizzativa, quindi scegliere Proprietà.
3. Scegliere la scheda Criterio gruppo quindi Nuovo.
4. Digitare il nome da utilizzare per questi criteri, ad esempio Virtual PC.

Assegnazione di un pacchetto
Per assegnare un programma ai computer in cui è installato Windows 2000 o Windows XP Professional oppure agli utenti che accedono a una di queste workstation:
1. Avviare lo snap-in Utenti e computer di Active Directory. Per effettuare tale operazione, fare clic sul pulsante Start, scegliere Programmi, Strumenti di amministrazione e infine Utenti e computer di Active Directory.
2. Nella struttura della console fare clic con il pulsante destro del mouse sul dominio o sulla unità organizzativa, quindi scegliere Proprietà.
3. Scegliere la scheda Criterio gruppo, selezionare l'oggetto Criteri di gruppo desiderato e scegliere Modifica.
4. In corrispondenza di Configurazione computer espandere Impostazioni del software.
5. Fare clic con il pulsante destro del mouse su Installazione software, scegliere Nuovo, quindi Pacchetto.
6. Nella finestra di dialogo Apri digitare il percorso UNC (Universal Naming Convention) completo relativo alla cartella condivisa che contiene il pacchetto MSI desiderato.
Ad esempio \\server2003\mydownloads\virtualpc\virtualpc2007.msi.
Assicurarsi di utilizzare il percorso UNC per la cartella condivisa.
7. Scegliere Apri.
8. Scegliere L'applicazione sarà disponibile agli utenti come assegnata, quindi OK. Il pacchetto verrà elencato nel riquadro destro della finestra Criterio gruppo.
9. Chiudere lo snap-in Criterio gruppo, scegliere OK e chiudere lo snap-in Utenti e computer di Active Directory. Quando il computer client verrà avviato, partirà l’installazione automatica del pacchetto software gestito,oppure si può forzare col commando da shell : gpupdate/force


Rimozione di un pacchetto
Per rimuovere un pacchetto pubblicato o assegnato:
1. Avviare lo snap-in Utenti e computer di Active Directory. Per effettuare tale operazione, fare clic sul pulsante Start, scegliere Programmi, Strumenti di amministrazione e infine Utenti e computer di Active Directory.
2. Nella struttura della console fare clic con il pulsante destro del mouse sul dominio o sulla unità organizzativa, quindi scegliere Proprietà.
3. Scegliere la scheda Criterio gruppo, selezionare l'oggetto Criteri di gruppo con cui è stato distribuito il pacchetto e scegliere Modifica.
4. Espandere il contenitore Impostazioni del software che include l'elemento Installazione software con cui è stato distribuito il pacchetto.
5. Fare clic sul contenitore Installazione software che comprende il pacchetto.
6. Nel riquadro destro della finestra Criterio gruppo fare clic con il pulsante destro del mouse sul programma, scegliere Tutte le attività, quindi Rimuovi.
7. Effettuare una delle seguenti operazioni: • Fare clic su Disinstalla immediatamente il software per utenti e computer, quindi scegliere OK.
• Fare clic su Consenti agli utenti di continuare ad utilizzare il software, ma impedisci nuove installazioni, quindi scegliere OK.
8. Chiudere lo snap-in Criterio gruppo, scegliere OK e chiudere lo snap-in Utenti e computer di Active Directory.

martedì 9 settembre 2008

Core Impact Penetration Testing

Sistema operativo :Windows 2000 e Windows Xp
Homepage: www.coresecurity.com/
Versione Provata : 4.0.0.966
Licenza: Commerciale


Core impact è uno scanner di ultima generazione per eseguire la scansione della propria rete con una marcia in più…….


Oggi il mercato mette a disposizione numerosi prodotti commerciali per eseguire pen test automatici uno in particolare spicca per la capacità di forzare l’acceso al sistema.
Proprio così,mentre gli altri scanner trovano le vulnerabilità di un sistema e poi stilano un report dei bug trovati ,Core Impact viola proprio il sistema ,lanciando in automatico i vari exploit.
Una volta installato l’eseguibile con privilegi di amministratore,ci si trova d’avanti una schermata
Che ci chiede se iniziare un nuovo progetto,o caricarne uno precedente già presente sul sistema,se si sceglie di iniziarne uno nuovo bisogna fornire una licenza e una password che identifichi in maniera univoca quel progetto.
Al termine di questa procedura ci si trova davanti una schermata divisa su più finestre,il vero cuore del programma.
La scansione è organizzata in 6 fasi:

1) Acquisizione informazioni della rete (trova i vari host attivi sulla rete)
2) Attacco e penetrazione (selezionato l’host che ci interessa lancia gli exploit in base alle vulnerabilità trovate)
3) Acquisizione informazioni locali (Sistema operativo,username attivo in quel momento,applicazioni attive..ecc….ecc….)
4) Violazione dei privilegi (in base alle informazioni locali,alle applicazioni e servizi attivi e a tutto il quadro acquisito nei punti 1-2-3 lancia la scalata al massimo privilegio quello di ROOT)
5) Cancellazione delle tracce (come in un vero e proprio attacco bisogna cancellare le proprie tracce dal sistema violato)
6) Generazione del report (finalmente abbiamo il report bello e pronto con tanto di grafici )

Per lanciare il primo passo “Information Gathering” dobbiamo fare click col tasto sinistro del mouse sulla stessa e si avvia la scansione della rete per identificare gli host attivi presenti.
Una volta scelto l’host bersaglio selezionandolo si procede al passo 2 “Attack and Pentration” lancia in automatico vari exploit in base alle informazioni acquisite .
Nel passo 3 “Local Information Gathering” si acquisiscono le informazioni locali dell’host bersaglio carpite dalla scansione iniziale e dall’attacco vero e proprio.
Il passo 4 “Privilege Escalation” si cerca di ottenere l’accesso totale del sistema con privilegi di Amministratore.
Il passo 5 “Clean Up” serve come per tutti gli attacchi informatici cancellare le tracce della propria attività e i vari log.
L’ultimo passo il 6 “Report Generation” si stila un report: uno più completo e dettagliato e l’altro più riassuntivo e poi si può salvarlo sia in formato xml che html.
Core Impact è uno strumento molto potente ed efficace perché può esser sempre aggiornato on-line aumentando il suo già ricco database di exploit.
Ovviamente gli amministratori di sicurezza non possono basare il loro lavoro solo su uno strumento automatico ma l’esperienza e il proprio skill fanno la differenza.

giovedì 4 settembre 2008

I Livelli ISO/OSI

Open Systems Interconnection
L'Open Systems Interconnection (meglio conosciuto come Modello ISO/OSI) è uno standard stabilito nel 1978 dall'International Organization for Standardization (ISO, dal termine greco isos, "uguale"), il principale ente di standardizzazione internazionale, che stabilisce una pila di protocolli in 7 livelli.
L'organizzazione sentì la necessità di produrre una serie di standard per le reti di calcolatori ed avviò il progetto OSI (Open Systems Interconnection), un modello standard di riferimento per l'interconnessione di sistemi aperti. Il documento che illustra tale attività è il Basic Reference Model di OSI, noto come standard ISO 7498.
Il modello ISO/OSI è costituito da una pila (o stack) di protocolli attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione per il networking. In particolare ISO/OSI è costituito da strati (o livelli), i cosiddetti layer, che racchiudono uno o più aspetti fra loro correlati della comunicazione fra due nodi di una rete. I layers sono in totale 7 e vanno dal livello fisico (quello del mezzo fisico, ossia del cavo o delle onde radio) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione di alto livello.

Livelli o layers
Ogni layer individua un protocollo di comunicazione del livello medesimo. ISO/OSI realizza una comunicazione per livelli, ovvero, dati due nodi A e B, il livello n del nodo A può scambiare informazioni col livello n del nodo B ma non con gli altri: ciò conferisce modularità al sistema e semplicità di implementazione e reimplementazione. Inoltre ogni livello realizza la comunicazione col livello corrispondente su altri nodi usando il PoS (point of service) del livello immediatamente sottostante. Sicché ISO/OSI incapsula i messaggi di livello n in messaggi del livello n-1. Così se A deve inviare, ad esempio, una e-mail a B, l'applicazione (liv. 7) di A propagherà il messaggio usando il layer sottostante (liv. 6) che a sua volta userà il PoS del layer inferiore, fino ad arrivare alla comunicazione sul mezzo fisico.
In tal modo si realizza una comunicazione multilivello che consente, ad esempio, di implementare algoritmi diversi per l'instradamento in rete pur disponendo di protocolli di trasporto connessi.
ISO/OSI è stato progettato per permettere la comunicazione in reti a 'commutazione di pacchetto', del tutto simili al paradigma TCP-UDP/IP usato in Unix e nella rete ARPAnet, poi divenuta Internet. La differenza sostanziale fra TCP/IP e ISO/OSI consiste nel fatto che nel TCP/IP il layer applicativo è esterno alla pila di protocolli (ovvero è una applicazione stand-alone che 'usa' TCP/IP per comunicare con altre applicazioni), i layer sono dunque solo 5 (applicazione, trasporto, rete, data-link, fisico) e i livelli sessione, presentazione sono assenti perché implementati (eventualmente) altrove, cioè nell'applicazione stand-alone esterna.
ISO/OSI è uno stack di protocolli incapsulati, che sicuramente è più flessibile rispetto al paradigma di TCP/IP, ma soltanto perché risulta più astratto rispetto a questo. In pratica non esistono implementazioni 'complete' di ISO/OSI, a parte quelle proprietarie (ad esempio DECNET della Digital) e di interesse accademico.
Al fine di ottenere un miglioramento dell’attuale modello può risultare interessante la possibilità di trarre vantaggio da uno scambio di informazioni nell’ambito della stessa pila protocollare, tra gli strati non adiacenti. Questa possibità, che sta riscuotendo un notevole interesse negli ultimi anni, prende il nome di Cross-Layer (CL), ed è interessante soprattutto nelle comunicazioni radio per la natura stessa variabile del mezzo trasmissivo. L’idea fondamentale del concetto Cross-Layer è di introdurre la capacità, nei vari protocolli di comunicazione, di scambiarsi informazioni per adattarsi agli specifici stati del collegamento della rete. A differenza del modello OSI classico, non si vogliono più prendere solo delle contromisure preventive o meccanismi di controllo successivi ad un determinato evento verificatosi nella rete, bensì si cerca di decidere in modo interattivo con essa sfruttando le informazioni comuni a tutti gli strati.


Elenco e funzioni dei livelli
Livello 1: fisico
Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e del voltaggio del segnale. Ha a che fare con le procedure meccaniche e elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.
Semplicemente: si occupa di controllare la rete, gli hardware che la compongono e i dispositivi che permettono la connessione.
In questo livello si decidono:
· Le tensioni scelte per rappresentare i valori logici 0 e 1
· La durata in microsecondi del segnale elettrico che identifica un bit
· L'eventuale trasmissione simultanea in due direzioni
· La forma e la meccanica dei connettori usati per collegare l'hardware al mezzo trasmissivo

Livello 2: datalink
Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale. Tutto cio' consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione.
Questo livello si occupa di formare i dati da inviare attraverso il livello fisico, incapsulando i dati in un pacchetto provvisto di header (intestazione) e tail (coda), usati anche per sequenze di controllo. Questa frammentazione dei dati in specifici pacchetti è detta framing e i singoli pacchetti sono i frame.
Per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchetto ACK (acknowledgement, conferma) contenente lo stato della trasmissione: il mittente deve ripetere l'invio dei pacchetti mal trasmessi e di quelli che non hanno ricevuto risposta. Per ottimizzare l'invio degli ACK, si usa una tecnica detta Piggybacking, che consiste nell'accodare ai messaggi in uscita gli ACK relativi ad una connessione in entrata, per ottimizzare l'uso del livello fisico. I pacchetti ACK possono anche essere raggruppati e mandati in blocchi.
Questo livello si occupa anche di controllare il flusso di dati: in caso di sbilanciamento di velocità di trasmissione, si occupa di rallentare l'opera della macchina più veloce, accordandola all'altra e minimizzando le perdite dovute a sovraccarico.
La sua unità dati fondamentale è la trama.

Livello 3: rete
Obiettivo: rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione. Si occupa di stabilire, mantenere e terminare una connessione, garantendo il corretto e ottimale funzionamento della sottorete di comunicazione.
È responsabile di:
· routing: scelta ottimale del percorso da utilizzare per garantire la consegna delle informazioni
· gestione della congestione: evitare che troppi pacchetti arrivino allo stesso router contemporaneamente
· indirizzamento
· conversione dei dati nel passaggio fra una rete ed un'altra con diverse caratteristiche. Deve, quindi:
o tradurre gli indirizzi
o valutare la necessita' di frammentare i dati se la nuova rete ha una diversa unità massima di trasmissione
o valutare la necessita' di gestire diversi protocolli attraverso l'impiego di gateway
La sua unità dati fondamentale è il pacchetto.

Livello 4: trasporto
Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host. È il primo livello realmente end-to-end, cioe' da host sorgente a destinatario.
A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello di arrivo.
Si occupa anche di effettuare la frammentazione dei dati provenienti dal livello superiore in pacchetti, detti 'segmenti' e trasmetterli in modo efficiente ed affidabile usando il livello rete ed isolando da questo i livelli superiori. Inoltre, si preoccupa di ottimizzare l'uso delle risorse di rete e di prevenire la congestione.
La sua unità dati fondamentale è il messaggio.

Livello 5: sessione
Obiettivo: controllare la comunicazione tra applicazioni. Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni cooperanti.
Esso consente di aggiungere, ai servizi forniti dal livello di trasporto, servizi più avanzati, quali la gestione del dialogo (mono o bidirezionale), la gestione del token (per effettuare mutua esclusione) o la sincronizzazione (inserendo dei checkpoint in modo da ridurre la quantità di dati da ritrasmettere in caso di gravi malfunzionamenti).
Si occupa anche di inserire dei punti di controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende dall'ultimo punto di controllo andato a buon fine.

Livello 6: presentazione
Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione.
Esso consente di gestire la sintassi dell'informazione da trasferire. E sono previste tre diverse sintassi:
· astratta (definizione formale dei dati che gli applicativi si scambiano),
· concreta locale (come i dati sono rappresentati localmente)
· di trasferimento (come i dati sono codificati durante il trasferimento).

Livello 7: applicazione
Obiettivo: interfacciare utente e macchina.
Fornisce un insieme di protocolli che operano a stretto contatto con le applicazioni. È errato identificare un'applicazione utente come parte del livello applicazione.
I protocolli delle applicazioni tipiche di questo livello realizzano operazioni come:
· Trasferimento di file
· Terminale virtuale
· Posta elettronica