Archivio dell'autore: Valerio Guaglianone

Mac su Intel: utilizzare AHT (Apple Hardware Test)

Il software Apple Hardware Test (AHT) contiene una serie di strumenti diagnostici che consentono di eseguire dei test sull’hardware del computer. Si tratta di un utile metodo per diagnosticare un problema hardware durante la procedura di risoluzione dei problemi sul computer.

Per avviare il computer in modalità Apple Hardware Test:

  1. Premi il pulsante di accensione per accendere il computer.
  2. Tieni premuto il tasto D prima di visualizzare la schermata grigia di avvio. Se Apple Hardware Test non si avvia, consulta la sezione Informazioni aggiuntive in fondo a questo articolo.
    Nota: alcuni computer Macintosh forniti con OS X Lion e versioni successive supportano l’uso di Apple Hardware Test in Internet. Se Apple Hardware Test non è presente nel disco rigido, il computer sarà avviato con una versione di AHT basata su Internet. Per utilizzare questa funzione, è necessaria una connessione a Internet tramite Ethernet o Wi-Fi.
  3. Occorre circa un minuto perché Apple Hardware Test venga avviato ed esamini la configurazione hardware. Durante l’operazione viene visualizzata un’icona sullo schermo:
  4. Una volta completata la procedura, seleziona la lingua quindi fai clic sul tasto Freccia destra. Se non utilizzi un mouse, per selezionare la tua lingua puoi utilizzare i tasti Freccia su e Freccia giù, premendo quindi il tasto Invio.
  5. Viene visualizzata la console Apple Hardware Test. Puoi scegliere che tipo di test eseguire:
    • Per eseguire tutti i test di base, premi il pulsante Test o il pulsante “T” oppure il pulsante Invio.
    • Per eseguire un test diagnostico più approfondito, seleziona la casella di controllo “Esegui test esteso” situata sotto il pulsante Test, quindi fai clic su quest’ultimo.

I risultati del test verranno visualizzati nella finestra situata nella parte inferiore destra della console.

Per uscire da AHT, fai clic su Riavvia o Spegni nella parte inferiore della finestra.

Informazioni aggiuntive

Apple Hardware Test è incluso nei DVD che vengono distribuiti con i computer Macintosh. Se la copia del disco rigido non è più disponibile, utilizza i DVD per eseguire Apple Hardware Test.

  • Per i computer Apple basati su Intel forniti con Mac OS X v10.5.4 o versioni meno recenti, Apple Hardware Test si trova nel CD 1 di installazione di Mac OS X ed è incluso con il computer.
  • Per i computer Apple basati su Intel forniti con Mac OS X dalla versione v10.5.5 alla versione 10.6.7, Apple Hardware Test si trova nel CD 2 di installazione di Mac OS X ed è incluso con il computer.
  • Per alcuni computer Apple forniti con OS X Lion, se Apple Hardware Test non è presente sul disco rigido, viene avviata una versione basata su Internet. Per utilizzare questa funzione, è necessaria una connessione a Internet tramite Ethernet o Wi-Fi. Alcuni computer su cui è installato Lion richiedono un aggiornamento software per utilizzare questa funzionalità. Per ulteriori informazioni, consulta l’articolo Computer che possono essere aggiornati per l’utilizzo di Recupero Internet OS X.

Sospendere temporaneamente una sessione di root

Quando si usa il comando su per diventare utente root oppure per assumere l’identità di un altro utente, si può usare il comando suspend per tornare momentaneamente alla sessione di shell precedente.

Per tornare alla sessione di root lasciata poco prima, si può invece usare il comando fg.

Nel caso si sia avviata una shell di login (per esempio con il comando su -), allora si può forzare il ritorno alla shell precedente, con il comando suspend -f.

Disconnettere gli utenti da una Linux Box

 

Un messaggio per avvisare tutti gli utenti collegati di disconnettersi dal sistema:
# wall prego disconnettersi urgentemente dal sistema!!

Se gli utenti non si disconnettono da soli si può fare così:

1. si vedono i pid degli utenti ancora collegati alla macchina con:
# who -a | grep pts

2. quindi si procede con il comando:
# kill <pid utente>

Fuori tutti!

Come rendere più sicuro il PHP

Il PHP è comunemente considerato un linguaggio di scripting sicuro. Questa convinzione deriva dalle innumerevoli funzioni messe a disposizione degli sviluppatori ed attivabili dal file di configurazione globale php.ini o direttamente dal codice con l’apposita funzione ini_set().
A dispetto dalla sua robustezza sotto questo profilo, il PHP rimane però uno dei linguaggi maggiormente sfruttati oggi da hacker, virus e malware writer per attaccare i server che lo supportano.
Quello che segue è un elenco delle funzioni più comuni del linguaggio, seguite da una breve descrizione e dal tipo di parametro che è consigliato specificare (on per attivare la funzionalità ed off per disattivarla):
- register_globals: consente agli utenti di indicare variabili e valori iniettandoli nel contesto del programma con il rischio di alterarne la logica (ad esempio far credere ad un’applicazione di essere un utente autenticato quando invece non lo è). E’ consigliato impostare questa opzione ad OFF.
- magic_quotes: è un processo che automaticamente effettua l’escaping (ovvero la messa in sicurezza) dei dati acquisiti in ingresso dagli script PHP. Pur l’apparente utilità di questa feature è consigliato effettuare un controllo dei dati a runtime impostandola quindi ad OFF.
- allow_url_fopen: questa opzione consente di accedere a file remoti attraverso i protocolli ftp o http. Per ragioni di sicurezza (vulnerabilità di tipo File Inclusion) è consigliato impostare quest’opzione ad OFF.
- safe_mode: abilita la modalità sicura del PHP. E’ consigliato impostare questa opzione ad ON. Essa fornisce accesso ad una serie di sotto opzioni. Con safe_mode_include_dir è ad esempio possibile specificare una o più directory in cui risiedono file di tipo include, mentre con safe_mode_exec_dir è possibile indicare dove sono localizzati gli eventuali file eseguibili richiamati dall’applicazione PHP. Tutti i file all’esterno di queste directory non potranno essere acceduti.
- safe_mode_gid: effettua una comparazione sul group id (GID) prima di accedere ad un file. E’ consigliato attivare questa opzione impostandola ad ON.
- open_basedir: limita i file che possono essere acceduti dagli script PHP ad una o più directory specifiche. E’ consigliato utilizzare questa opzione.
- session.auto_start: specifica se le sessioni sono avviate automaticamente o richiedono una fase di startup. Per motivi di sicurezza e praticità è consigliato disattivare questa opzione impostandola ad OFF.
- session.entropy_file: indica il percorso di una risorsa che può essere utilizzata come ulteriore fonte di entropia per il processo di generazione degli identificativi di sessione. E’ consigliato impostare questa opzione al file speciale “/dev/urandom”.
- session.cookie_secure: specifica se i cookie di sessione devono essere inviati solamente attraverso canali di comunicazione sicuri. E’ consigliato attivare questa opzione impostandola ad ON.
- session.cookie_httponly: preclude l’accesso al cookie di sessione da parte di javascript o altri linguaggi client-side. Per ragione di sicurezza è consigliato impostare questa opzione ad ON.
- display_errors: determina se gli eventuali errori generati dagli script PHP devono essere riportati all’utente nella pagina web richiesta. Per questioni di sicurezza (Information Leak) è consigliato disattivare questa opzione (OFF).
- expose_php: è consigliato disattivare questa opzione impostandola ad OFF. In questo modo si riduce le possibilità che il sistema possa essere individuato come web server vulnerabile da scansioni automatizzate degli header HTTP.

Alcuni consigli per sviluppare applicazioni sicure nel linguaggio PHP

Il PHP è un linguaggio interpretato ampiamente utilizzato per la creazione di script dinamici. Nato da un’idea di Rasmus Lerdorf nel 1994, è divenuto uno standard de facto per lo sviluppo di applicazioni web. Il PHP è considerato un linguaggio comunemente sicuro, ma nonostante questo è allo stesso tempo uno dei più sfruttato da hacker, virus e malware writer per diffondere software malevolo.
Gran parte delle vulnerabilità software è oggigiorno riconducibile allo scarso filtraggio dell’input utente.
Il presupposto comune è che i dati acquisiti in ingresso sono sempre consistenti e frutto di richieste provenienti da utenti autorizzati. Niente di più sbagliato! Nessuna variabile dovrebbe essere considerata costituita da dati la cui regolarità non può essere comprovata. Ciò si riduce a dire che tutto l’input utente deve sempre essere controllato/filtrato per accertare che sia conforme con il tipo, le logiche e le operazioni che su di esso l’applicazione deve svolgere. In particolare devono essere previste i seguenti accorgimenti:
• Tutti i caratteri che possono avere una qualche valenza per l’interprete dei comandi (! $ ^ & * ( ) ~ [ ] \ | { } ‘ ” ; < > ? – `) o l’helper SQL (# ? % ‘ “ — ;) devono essere filtrati. Poiché alcuni di questi caratteri sono anche utilizzati per rappresentare tag HTML validi è importante prescindere dal tipo di dato che si sta acquisendo in input prima di operare un adeguato filtraggio;
• Altri caratteri che potrebbero creare problemi, troncamenti o effetti indesiderati durante l’accesso a file o risorse DB sono il terminatore stringa (\0), il ritorno a carrello (\x10), la nuova riga (\x13) ed ASCII 26 (\x1a). Questi vanno opportunamente gestiti.
- La quantità di input che l’utente può inviare in una form deve essere sempre dimensionato in modo da non eccedere i limiti della direttiva memory_limit impostata nel file di configurazione del PHP (valore di default 8 MB);
- I nomi dei file hanno solitamente una dimensione limitata a 255 byte. Quando si progetta un’applicazione PHP che accede sul disco è sempre bene considerare questo elemento. Eventuali loro troncamenti dovuti ad un poco accorto dimensionamento dell’input utente potrebbe generare effetti disastrosi o inaspettati;
- Ogni script che invia e-mail verso l’esterno può essere potenzialmente abusato così come gli hidden field di una form. Bisogna sempre accertare i permessi assegnati all’utente prima di decidere se eseguire un’operazione;
- Tutte le variabili dichiarate nell’applicazione devono essere inizializzate;
- E’ consigliato offuscare tutte le pagine PHP dell’applicazione;
- I valori utilizzati con la funzione header() devono essere privati dei caratteri speciali “\r” (\x0a) ed “\n” (\x0c);
- I file inclusi nel codice PHP devono avere estensioni riconosciute dal web server come codice interpretabile e non come text/plain visualizzabile.