domenica 21 febbraio 2016

Cryptolocker a Modena.
E’ più pericoloso aprire la porta ad uno sconosciuto o aprire una mail di dubbia provenienza?

Quando ero piccolo, avrò avuto circa 10 anni, i miei genitori ed i nonni mi dicevano in continuazione di non aprire agli sconosciuti. A distanza di 30 anni a questa sacro-santa raccomandazione andrebbe aggiunta anche di non aprire le mail di ignota provenienza? Aprire una mail tendenzialmente pericolosa potrebbe esporci ad rischio simile considerato che documenti e dati personali potrebbero essere persi irrimediabilmente o trafugati ed utilizzati per scopi illeciti (uso fraudolento di dati personali, di numeri di carta di credito, ecc.)?

Tipologia Virus
Cryptolocker è un virus che cripta tutti i dati del disco fisso e richiede un riscatto per ottenere la relativa chiave di decodifica. L’algoritmo di codifica utilizzato, una cifratura asimmetrica RSA a 2048 o 4096 bit, rende praticamente impossibile il recupero dei file originali in mancanza della chiave di sblocco.
Il risultato di tale codifica è che l’utente non è più in grado di aprire alcun documento, immagine o video, visualizzando ad ogni tentativo di apertura, un messaggio con la richiesta di riscatto.
Seguendo le istruzioni e pagando il riscatto richiesto in bitcoin si otterrà via mail la chiave necessaria alla decodifica dei files.
Anticipo già da qui che consiglio di non pagate nessun riscatto perché questa azione oltre ad incoraggiare questa tipologia di criminalità informatica, non darà alcuna garanzia di riottenere i propri file.
La pericolosità del virus sta proprio nella velocità di codifica dei files del pc infettato, e nella capacità di propagare i suoi effetti dannosi anche ai pc collocati nella stessa rete; immaginate una tale infezione che si propaga velocemente in un’azienda con 60 pc: il risultato è di un fermo di 3/4 giorni di lavoro per ripristinare le macchine, i server ed i dati dalle copie di backup… se ci sono!!!

Come si viene infettati
Tipicamente l’infezione arriva mediante una comune e apparentemente innocua mail inviata da un corriere, da un gestore di telefonia, da una multi-utility, ecc. con informazioni riguardanti il vostro contratto. Ovviamente non è il corriere, non è il gestore di telefonia, ecc. ma sono solo un impostore che vuole farvi aprire l’allegato infetto e contagiare il vostro computer e, se siamo in un contesto aziendale, anche tutti i pc connessi in rete che risultano vulnerabili a tale infezione.
Le conseguenze di una infezione da Cryptolocker sono devastanti e lo sono ancora di più se non si è in possesso di una copia di backup dei dati.

Cryptolocker a Modena
Cryptolocker ha mietuto le sue vittime anche Modena: da fonti ufficiali pervengono notizie che sono state numerose le segnalazioni alla Polizia Postale riguardanti appunto questa tipologia di virus.
Ci siamo occupati più volte a Modena, con esito positivo, di recuperare i file criptati con Cryptolocker, ovviamente senza pagare alcun riscatto, ma eseguendo il carving dei file.

Soluzione
Se siete stati infettati dal virus, o ne avete il sospetto, vi consiglio di spegnere immediatamente il vostro computer al fine di stoppare l’inesorabile procedura di codifica dei vostri documenti e di rivolgervi ad centro assistenza di vostra fiducia per tentare il recupero dei file. Consiglio inoltre di far eseguire tale operazione a personale specializzato che operi su una copia forense del disco, l’unica che consente di ottenere una copia fedele del supporto originale, spazio non allocato compreso che potrebbe contenere al suo interno i file originali intatti.

Conclusioni
Il mio personale parere è di non pagare alcun riscatto, perché come già anticipato, con questa azione incoraggerete questi "signori" a perpetrare nelle loro azioni criminose.
Se non è stato già fatto, consiglio di eseguire immediatamente un backup completo e di conservarlo in un luogo sicuro e di studiare ed attuare una corretta politica di backup.
Se siete in un contesto aziendale consiglio di informare i vostri collaboratori dei rischi informatici e delle relative contromisure e di attuare delle procedure che minimizzino questo rischio.
Consiglio di installare un software antivirus e di tenerlo aggiornato, e di non aprire mai e per nessuna ragione gli allegati contenuti in mail sospette e/o provenienti da mittenti sconosciuti.
Sono a vostra disposizione per implementare o verificare la vs. politica di backup, o qualora fosse già accaduto l’irreparabile, di eseguire la procedura di carving dei file, con metodologia di informatica forense, per tentare il recupero dei vostri documenti.

Note sull’autore

Giuseppe Montagnola, classe 1976, laureato in Informatica all’Università degli studi di Modena, svolge la professione di consulente informatico dal 2000 ed amministratore della GM Soft Srl (http://www.gm-soft.it), società di consulenza informatica operante nello sviluppo software personalizzato e nell’informatica forense.

domenica 5 luglio 2015

D. Lgs. 231/2001 e prevenzione dei reati informatici

D. Lgs. 231/2001 e prevenzione dei reati informatici
Introduzione
Da tempo mi chiedevo quali accorgimenti tecnici potessero essere messi in campo dalle aziende al fine di assicurarsi una traccia digitale per fronteggiare e difendersi da un eventuale procedimento penale a loro carico nell’ipotesi di un reato informatico.
Un informatico, quale sono anche io, risponderebbe “loggo tutto, poi, se serve, il file è lì”; ma purtroppo questo approccio potrebbe comportare infrazioni allo Statuto dei lavoratori, al codice sulla privacy e a qualche articolo del codice penale e persino alla Costituzione.
Lo scopo del presente documento, senza alcuna presunzione, è di illustrare brevemente il quadro normativo per poi giungere a quella che per me è una soluzione accettabile e bilanciata per tutelare da una parte gli interessi aziendali e dall’altra i diritti fondamentali dell’uomo.

Quadro normativo

Reati informatici previsti dal Codice Penale
Accesso abusivo a sistema informatico o telematico (art. 615 ter c.p.);
Intercettazione, impedimento o interruzione illecita di comunicazioni informatiche o telematiche (art. 617 quater c.p.);
Installazione di apparecchiature atte ad intercettare, impedire o interrompere comunicazioni informatiche o telematiche (art. 617 quinquies c.p.);
Danneggiamento di informazioni, dati e programmi informatici utilizzati dallo Stato o da altro ente pubblico o comunque di pubblica utilità (art. 635 ter c.p.);
Danneggiamento di sistemi informatici o telematici (art. 635 quater c.p.);
Danneggiamento di sistemi informatici o telematici di pubblica utilità (art. 635 quinquies c.p.);
Detenzione e diffusione abusiva di codici di accesso a sistemi informatici o telematici (art. 615 quater c.p.);
Diffusione di apparecchiature, dispositivi o programmi informatici diretti a danneggiare o interrompere un sistema informatico o telematico (art. 615 quindies c.p.);
Falsità di documenti informatici (art. 491 c.p.);
Frode informatica del soggetto che presta servizi di certificazione di firma elettronica (art. 640 quinquies c.p.);
Violazione, sottrazione o soppressione di corrispondenza (art. 616 c.p.)

Costituzione
Art. 2 - La   Repubblica riconosce e garantisce i diritti inviolabili dell'uomo, sia come singolo sia nelle formazioni sociali ove si svolge la sua personalità, e richiede l'adempimento dei doveri inderogabili di solidarietà politica, economica e sociale.
Art. 41 - L'iniziativa economica privata è libera. Non può svolgersi in contrasto con l'utilità sociale o in modo da recare danno alla sicurezza, alla libertà, alla dignità umana. La legge determina i programmi e i controlli opportuni perché l'attività economica pubblica e privata possa essere indirizzata e coordinata a fini sociali.

Legge 300/1970 - Statuto Lavoratori
Art. 4 - È vietato l'uso di impianti audiovisivi e di altre apparecchiature per finalità di controllo a distanza dell'attività dei lavoratori.
Gli impianti e le apparecchiature di controllo che siano richiesti da esigenze organizzative e produttive ovvero dalla sicurezza del lavoro, ma dai quali derivi anche la possibilità di controllo a distanza dell'attività dei lavoratori, possono essere installati soltanto previo accordo con le rappresentanze sindacali aziendali, […]

Legge 231/2001
Art. 1 comma 1 – Il presente decreto legislativo disciplina la responsabilità degli enti per gli illeciti amministrativi dipendenti da reato.
 […]
Art. 5 comma 1 - L'ente è responsabile per i reati commessi nel suo interesse o a suo vantaggio:

a) da persone che rivestono funzioni di rappresentanza, di amministrazione o di direzione dell'ente o di una sua unità organizzativa dotata di autonomia finanziaria e funzionale nonché da persone che esercitano, anche di fatto, la gestione e il controllo dello stesso;
b) da persone sottoposte alla direzione o alla vigilanza di uno dei soggetti di cui alla lettera a).
[…]

Art. 6 comma 1 - Se il reato è stato commesso dalle persone indicate nell'articolo 5, comma 1, lettera a), l'ente non risponde se prova che:
a) l'organo dirigente ha adottato ed efficacemente attuato, prima della commissione del fatto, modelli di organizzazione e di gestione idonei a prevenire reati della specie di quello verificatosi;
b) il compito di vigilare sul funzionamento e l'osservanza dei modelli di curare il loro aggiornamento è stato affidato a un organismo dell'ente dotato di autonomi poteri di iniziativa e di controllo;
c) le persone hanno commesso il reato eludendo fraudolentemente i modelli di organizzazione e di gestione;
d) non vi è stata omessa o insufficiente vigilanza da parte dell'organismo di cui alla lettera b).

Art. 6 comma 2 - In relazione all'estensione dei poteri delegati e al rischio di commissione dei reati, i modelli di cui alla lettera a), del comma 1, devono rispondere alle seguenti esigenze:
a) individuare le attività nel cui ambito possono essere commessi reati;
b) prevedere specifici protocolli diretti a programmare la formazione e l'attuazione delle decisioni dell'ente in relazione ai reati da prevenire;
c) individuare modalità di gestione delle risorse finanziarie idonee ad impedire la commissione dei reati;
d) prevedere obblighi di informazione nei confronti dell'organismo deputato a vigilare sul funzionamento e l'osservanza dei modelli;
e) introdurre un sistema disciplinare idoneo a sanzionare il mancato rispetto delle misure indicate nel modello.
[…]

Dal quadro normativo sopra esposto è evidente che è configurabile una doppia responsabilità: da un lato c’è la responsabilità penale individuale, dall’altro la responsabilità “penale” dell’ente (vedi D. Lgs. 231/2001) che, per certe tipologie di reato, prevedono pesanti sanzioni pecuniarie ed interdittive tali da compromettere la sopravvivenza dell’ente stesso.
Con quali strumenti tecnici e procedurali può difendersi l’ente di fronte all’evenienza di essere indagato per la condotta fraudolenta di un proprio collaboratore?
Quali mezzi possono essere impiegati dall’ente garantendo un trattamento di dati “pertinente e non eccedente” (vedi delibera Garante 13/2007) da poter essere ammessi in sede giudiziaria con scopo difensivo? O ancora meglio, quali mezzi possono essere impiegati per prevenire la commissione di reati aspirando alla tutela dell’immagine e della reputazione aziendale, valorizzando principi di trasparenza, correttezza, eticità e rispetto delle leggi?

La soluzione proposta
La soluzione che propongo si compone di attività volte a minimizzare il rischio di commissione di reati informatici che possono sfociare in un procedimento penale a carico della persona fisica che l’ha commesso e a carico dell’ente:
1)      Redazione di un regolamento interno, sottoscritto individualmente, nel quale vengono:
a.       elencati i reati informatici alla quale è esposta l’azienda in considerazione dell’attività esercitata (articolo, conseguenze penali individuali, conseguenze penali per l’azienda);
b.      illustrati con esempi pratici quali condotte potrebbero costituire inconsapevolmente reato informatico;
c.       elencate le modalità per un corretto utilizzo di internet (vedi All. B Codice privacy) e della posta elettronica, in particolare specificando quali comportamenti sono tollerati e quali no (vedi delibera Garante 13/2007);
d.      illustrati quali dati vengono memorizzati nel log, la finalità, la tipologia e la cadenza di eventuali controlli che posso essere fatti sugli stessi, il tempo di conservazione dei log ed infine il nominativo del titolare del trattamento.
e.      Informati sull’utilizzo corretto delle password personali;
f.        allegate le procedure interne idonee a prevenire la commissione di reati (vedi esempio procedura interna in fondo a questo articolo);
g.       definiti gli obblighi formativi riguardanti il regolamento stesso;
h.      elencate le sanzioni in caso di infrazione del disciplinare interno;
2)      Informazione capillare del regolamento interno mediante affissione in luogo accessibile a tutti (art. 7 Legge n. 300/1970) e/o nella intranet aziendale;
3)      Formazione;
4)      Istituzione di un Organismo di Vigilanza che abbia un potere ispettivo e sanzionatorio sull’effettiva e corretta attuazione delle regole introdotte dal disciplinare interno ed un autonomo potere di iniziativa riguardo la predisposizione e la modifica delle procedure interne;
5)      Predisposizione di un log;
6)      Redazione e pubblicazione di un codice etico dove vengono definiti i valori a cui tutti gli amministratori, dipendenti e collaboratori dell’azienda a vario titolo devono ispirarsi, accettando responsabilità, ruoli e regole della cui violazione essi assumono personalmente la responsabilità verso la società.

Esempio procedura interna
Accesso abusivo a sistema informatico o telematico (art. 615 ter c.p.)
Condotta: Violazione dei sistemi informatici di un concorrente per acquisire informazioni a scopo di spionaggio industriale.
Misure preventive: L’accesso abusivo, oltre ad essere di per sé un illecito penale sia per l’individuo che l’ha commesso sia per l’ente, può essere strumentale alla realizzazione di altre fattispecie criminose. I controlli predisposti per prevenire tale fattispecie di reato potrebbero pertanto risultare efficaci anche per la prevenzione di altri reati.
Tra tali controlli si segnalano:
1)      adozione di procedure di validazione delle credenziali di sufficiente complessità e previsione di modifiche periodiche (vedi All. B Codice privacy);
2)      procedure che prevedano la rimozione dei diritti di accesso al termine del rapporto di lavoro (vedi ISO IEC 27001:2005 A.8.3.3 – Rimozione dei diritti di accesso e ISO IEC 27001:2005 A.11.2.1 registrazione degli utenti che accedono a informazioni riservate);
3)      aggiornamento regolare dei sistemi informativi in uso (vedi All. B Codice privacy);
4)      modalità di accesso ai sistemi informatici aziendali mediante adeguate procedure di autorizzazione, che prevedano, ad esempio, la concessione dei diritti di accesso ad un soggetto soltanto a seguito della verifica dell’esistenza di effettive esigenze derivanti dalle mansioni aziendali che competono al ruolo ricoperto dal soggetto (ISO IEC 27001:2005 A.11.2.2 Gestione privilegi, ISO IEC 27001:2005 A.11.5.1 Procedura di logon e ISO IEC 27001:2005 A.11.5.2 Identificazione ed autorizzazione degli uteni);
5)      procedura per il controllo degli accessi (ISO IEC 27001:2005 A.11.1.1 Politica controllo accessi);
6)      tracciabilità degli accessi e delle attività critiche svolte tramite i sistemi informatici aziendali (ISO IEC 27001:2005 A.10.10.1 Log Audit, ISO IEC 27001:2005 A.10.10.3 Protezione log, ISO IEC 27001:2005 A.10.10.4 Log amministratori ed operatori, ISO IEC 27001:2005 A.10.10.2 Monitoraggio utilizzo sistemi);
7)      definizione e attuazione di un processo di autorizzazione della direzione per le strutture di elaborazione delle informazioni (ISO IEC 27001:2005 A.6.1.4 Processo di autorizzazione per sistemi informativi).

Conclusioni
Seppur l’adozione dei log sarà sempre necessaria per documentare e difendersi da eventuali condotte scorrette, secondo le modalità sopra enunciate il loro utilizzo sarà relegato esclusivamente all’estrazione di informazioni costituenti valore probatorio per far valere o difendere un diritto in sede giudiziaria.
Inoltre, se le procedure sopra enunciate sono correttamente e realmente attuate possono concretamente contribuire a minimizzare, o persino ad azzerare, la probabilità di commissione di reati della tipologia analizzata.

Riferimenti
[7] ISO IEC 27001:2005
[8] Linee guida Confindustria sulla redazione di modelli organizzativi ai sensi del D.Lgs. 231/2001

Note sull’autore

Giuseppe Montagnola, classe 1976, laureato in Informatica all’Università degli studi di Modena, svolge la professione di consulente informatico dal 2000 ed amministratore della GM Soft Srl (http://www.gm-soft.it), società di consulenza informatica operante nello sviluppo software personalizzato e nell’informatica forense.

martedì 8 ottobre 2013

Primo programma con OpenCV

Questo semplice programma in C, vi permetterà di testare se l'installazione e la configurazione di Visual Studio 2012 (vedi precedente post) sono state eseguite correttamente

#include <opencv\highgui.h>
#include <opencv\cxcore.h>
#include <opencv\cv.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
IplImage *src;
char ImgFileName [255]="C:\\Libero.bmp";

cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
src=cvLoadImage(ImgFileName, 1);
cvShowImage("window", src);
cvWaitKey(0);
cvDestroyWindow("window");
cvReleaseImage(&src);

return 0;
}

Installazione OpenCV 2.4.6 e configurazione Visual Studio 2012 C++

1. Scaricare l’ultima versione di OpenCV (attualmente 2.4.6) (http://opencv.org/downloads.html)
2. Assicurarsi di possedere i diritti di amministratore, quindi scompattare il file scaricato (consiglio in c:\opencv)
3. Aprire il command prompt con privilegi di amministratore e lanciare il seguente comando:
        setx -m OPENCV_DIR C:\opencv\build\x86\vc11 (x86 o x64 secondo il vostro sistema operativo)
4. Click con il destro su "Computer" -> Proprietà -> cliccare sul link "Impostazioni di sistema avanzate" -> click sul pulsante "Variabili di ambiente":
         In variabili di sistema, modificare la variabile Path accodando il seguente valore:
         ;%OPENCV_DIR%\bin (con il punto e virgola iniziale)



5. aprire Visual Studio 2012 -> Menù File -> New project -> C++ -> Win32 Console application
        dopo aver impostato la destinazione ed il nome del progetto, comfermare premendo "Next"
        nel dialogo successivo, in Application Type, selezionare “Console Application”, quindi in
        "Additional options" selezionare “Empty Project” e “precompiled header”, quindi premere "Finish"

6. Cliccando con il destro sul progetto -> "Propietà", modificare i parametri, sia per la configurazione debug che release come segue:


       Nel gruppo C/C++, Generals, in Additional Include Directories, inserire
              $(OPENCV_DIR)\..\..\include




       Nel gruppo Linker, General, in Additional Library Directories, inserire
              $(OPENCV_DIR)\lib



       Nel gruppo Linker, Input, in Additional Dependencies, accodare

              per la configurazione debug:
;opencv_calib3d246d.lib;opencv_contrib246d.lib;opencv_core246d.lib;opencv_features2d246d.lib;opencv_flann246d.lib;opencv_gpu246d.lib;opencv_haartraining_engined.lib;opencv_highgui246d.lib;opencv_imgproc246d.lib;opencv_legacy246d.lib;opencv_ml246d.lib;opencv_nonfree246d.lib;opencv_objdetect246d.lib;opencv_ocl246d.lib;opencv_photo246d.lib;opencv_stitching246d.lib;opencv_superres246d.lib;opencv_ts246d.lib;opencv_video246d.lib;opencv_videostab246d.lib
              per la configurazione release:
;opencv_calib3d246.lib;opencv_contrib246.lib;opencv_core246.lib;opencv_features2d246.lib;opencv_flann246.lib;opencv_gpu246.lib;opencv_haartraining_engine.lib;opencv_highgui246.lib;opencv_imgproc246.lib;opencv_legacy246.lib;opencv_ml246.lib;opencv_nonfree246.lib;opencv_objdetect246.lib;opencv_ocl246.lib;opencv_photo246.lib;opencv_stitching246.lib;opencv_superres246.lib;opencv_ts246.lib;opencv_video246.lib;opencv_videostab246.lib


Buon lavoro!

giovedì 15 settembre 2011

Dynamics CRM 2011 - Record Is Unavailable - The requested record was not found or you do not have sufficient permission to view it.


Questo era l'errore che si presentava inspiegabilmente selezionando il Service Calendar:
Record Is Unavailable - The requested record was not found or you do not have sufficient permission to view it.
E quindi?
Inizialmente abbiamo (sempre io e Christian!!!) guardato se l'interfaccia del CRM 2011 ci potesse aiutare, quindi utenti, permessi sulle security role, ecc., ma nulla il problema persisteva.
Non rimaneva che passare al lavoro sporco: mettere le mani direttamente nelle tabelle SQL del CRM...
Dopo aver letto un po' di post quà e là abbiamo capito che tutto ruotava attorno a delle resource orfane.
Se la segente query dovesse produrre un risultato questo post potrebbe essere la soluzione al vostro problema.
Individuiamo le resuorce orfane:

selectr.ResourceId, r.OrganizationId, r.BusinessUnitId, r.Name, u.FullName
from Resource as r
left outer join SystemUserBase as u on r.ResourceId = u.SystemUserId
where r.ObjectTypeCode = 8
AND FullName IS NULL

ed ecco che compaiono delle righe...

Per non rischiare di compromettere l'integrità del CRM, noi abbiamo deciso di eseguire un update del campo ObjectTypeCode a 99 (solo per i record orfani) in modo da non averlo più nella query che il CRM esegue per popolare la griglia del Services Calendar, quindi:

update Resource
set ObjectTypeCode=99
WHERE     (ResourceId IN ('RESOURCEID-INCRIMINATI', 'RESOURCEID-INCRIMINATI'))

Chiaramente i ResourceId vanno presi dalla prima colonna del risultato della prima query.

Linux Ubuntu 11 non riconosce alcuna chiavetta USB

Oggi io ed i miei colleghi (di più i miei colleghi!!!) abbiamo risolto un problema ad un pc con Linux Ubuntu 11 che non leggeva più nessuna periferica USB.
La prima prova l'abbiamo effettuata con una versione live di Ubuntu e constatato che non era un problema dovuto all'hardware ci siamo accaniti per trovare la soluzione.

Christian, che è l'uomo delle intuizioni, insieme a Pasquale, hanno notato che sul banco di lavoro utilizzavamo una tastiera e un mouse usb e che funzionavano perfettamente anche scollegandole e ricollegandole a caldo, pertanto il problema era da cercare altrove.

Il PC NON si riavviava e NON si spegneva in modo regolare, portandosi immediatamente alla richiesta di password senza passare per il BIOS.

Siamo passati quindi al controllo degli aggiornamenti, che segnalava un errore generico nel software installato : Linux Ubuntu 11.04 e Gnome 2.32 su piattaforma Amd X64.

Lanciando ripetutamente il controllo degli aggiornamenti fino ad esaurimento degli stessi, TUTTI i problemi si sono risolti e le chiavette USB vengono regolarmente riconosciute a caldo.

sabato 10 settembre 2011

Dynamics CRM 2011 Intellisense

Devo ammettere che come programmatore per Windows abituato ad utilizzare l'intellisense di Visual Studio già dal vecchio VB6, faccio fatica a separarmene ed da quando ho iniziato a programmare su Dynamics CRM 2011 questa funzionalità mi manca molto.
Oggi ho scoperto che scaricando il seguente file e aggiungendo la riga di codice nei files .js ///<reference path="\\PERCORSO-DOVE-HAI-SCARICATO-XMLPage-vsdoc.js\XrmPage-vsdoc.js"/> è possibile ottenere l'intellisense per l'oggetto XrmPage.
Niente male!!!