Ads 468x60px

torstai 27. kesäkuuta 2013

Java haittaohjelman tutkimista

Haittaohjelmien tutkimisessa kannattaa olla huolellinen. Niiden tutkimiseen on syytä olla eriytetty ympäristö, jonka voi tyhjentää ja uudelleenasentaa tutkimisen jälkeen. Esimerkiksi niiden suorittaminen debuggaus -ympäristöissä voi johtaa tietokoneiden saastumiseen.

Eräällä seuraamallani foorumilla oli klassinen tapaus, jossa eräs henkilö etsi hyväuskoisia käyttäjiä tarkoituksenaan tartuttaa heidän tietokoneisiinsa haittaohjelma. Kyseinen henkilö liittyi foorumille ja välittömästi loi 3 uutta keskusteluketjua ja kussakin keskustelunavauksessa oli linkki hänen omiin "työkaluihinsa". Viesteissä hän pyysi käyttäjiä testaamaan sovelluksia ja antamaan niistä palautetta. Tämän jälkeen kyseinen henkilö ei enää kirjautunut foorumiin.

Tämä herätti epäilykseni sovellusten luotettavuudesta ja päätin perehtyä asiaan. Ensin latasin yhden sovelluksen ja lähetin sen www.virustotal.com:iin tutkittavaksi. Kyseisessä palvelussa tiedostot skannataan 46 antivirussovelluksella ja niiden tulokset saadaan lähes välittömästi. Haittaohjelmahavaintoja ei tarkastusten mukaan löytynyt. Foliohattu oli kuitenkin niin tiukasti päässäni että päätin tutkia asiaa itse tarkemmin.

Kyseinen sovellus oli Javalla toteutettu ja siksi helpommin tutkittavissa kuin perinteinen sovellus, joka käännetään konekieleksi. Java käännetään tavukoodiksi, jolloin sen toiminnan selvittäminen on helpompaa.

Java-sovellusten tutkimisessa tarvitaan yleensä kahta työkalua: yhtä purkamaan jar-paketeissa olevat tiedostot ja toista palauttamaan käännetty tavukoodi takaisin lähdekoodiksi. Käytin tässä tapauksessa tutkimiseen linux komentorivin unzipiä sekä tavukoodin palauttamiseen Java Decompileria.

Koska kyseessä oli jar-pakattu sovellus, purin sen ensin käyttämällä unzipia ja sain purettua esiin normaalin Java-paketin sisällön: .class-tiedoston, jossa tavukäännetty javakoodi on, favicon.ico-tiedoston (.ico tiedostoja käyteteään yleensä sovellusten pikakuvakkeissa) ja Manifest-kansion.

Palautin tavukoodin lähdekoodiksi Java Decompilerilla ja foliohattu painui jälleen syvemmälle päähäni: koodi oli - joskin huonosti - obfuskoitu. Hetken sitä tutkittuani totesin, että sen ainoa tarkoitus on purkaa Favicon.ico tiedosto sekä suorittaa sen sisällä olevat sovellukset. Favicon.ico ei siis ollutkaan ikonitiedosto vaan vain uudelleennimetty zip-tiedosto. Vahvistin tämän vielä Linuxin file -komennolla, joka tutkii tiedostoa ja sen perusteella arvaa sen varsinaisen sisällön.

Varsinainen haittaohjelmakoodi löytyi Favicon.ico-tiedostosta nimellä 1java_tool.jar. Sen sisällä oli useita .adwind päätteisiä tiedostoja sekä muutama java class -tiedosto. Adwind pääte oli minulle vieras eikä file -komentokaan tunnistanut tiedostoa. Keskityin sitten löytyneisiin class -tiedostoihin ja löysin niistä custom class loaderin, joka ei vain ladannut ja suorittanut javakoodia, vaan myös purki salauksen, jolla .adwind tiedostot oli salattu. Kävi ilmi, että .adwind -päätteiset tiedostot olivat salattuja ja pakattuja java class tiedostoja.

Paketissa oli myös config.xml -tiedosto, joka osoittautui samalla algoritmilla salatuksi, tosin salausavain oli eri. Tiedostosta löytyi mm. master palvelimen DNS-nimi sekä portti, johon troijalainen ottaa yhteyttä. Master -palvelimen avulla haittaohjelman levittäjä pystyy hallitsemaan saastuneita koneita.

Tein pienen koodinpätkän, jonka avulla sain purettua .adwind tiedostot .class tiedostoiksi ja sain kuin sainkin selville, mitä haittaohjema tekee. Kyseinen haittaohjelma oli Remote Access Tool -troijalaienn ja se otti yhteyden hallintapalvelimeen ja käytännössä salli hyökkääjälle pääsyn kohdekoneeseen nykyisen käyttäjän oikeuksin.

Troijalainen oli tehty siten, että sen toiminnallisuutta oli helppo laajentaa. Siihen oli tehty plugin-rakenne ja lisäksi se pystyi päivittämään itsensä ja jopa lataamaan suoritettavia java-tiedostoja isäntäpalvelimelta.

Trojalainen kerää ensin tiedot tietokoneesta, johon se on asennettu. Tämän jälkeen tiedot lähetetään master-palvelimelle ja odotetaan käskyjä. Ilman laajennoksia Trojalainen voi mm:

  1. ottaa kuvankaappauksia ja lähettää ne master-palvelimelle
  2. näyttää dialogeja käyttäjälle (pyytää käyttäjältä tietoja)
  3. avata internet selaimen mihin tahansa osoitteeseen
  4. hallita näppäimistöä ja hiirtä
  5. käyttää saastunutta konetta osana DDoS-hyökkäyksissä
  6. ladata ja suorittaa jar-tiedostoja
  7. päivittää itsensä


Haittaohjelmassa on myös mahdollisuus asettaa se käynnistymään automaattisesti, kun käyttäjä kirjautuu sisään tietokoneelleen. Tämä on Windows -alustalla toteutettu rekisteriä muokkaamalla, Linuxissa autostartin ja Macissä LaunchAgentsien avulla.

Haittaohjelma piiloutuu Windowsissa asettamalla asennuskansionsa Recycle Biniksi desktop.ini-tiedoston avulla. Tämä on melko perinteinen kikka haittaohjelmakoodeissa. Lisäksi kaikille tiedostoille asetetaan System, Hidden ja Read Only -määreet. Maceissä kansio piilotetaan chflags hidden -komennolla ja Linuxeissa luotetaan asennuskansion nimeämiseen pisteellä alkavaksi.

Huomattavaa tutkimuksen aikana on, että en missään vaiheessa ajanut itse tiedostoa, vaan erilaisilla työkaluilla selvitin sen rakennetta ja toimintaa. Mikäli olisin jossain vaiheessa halunnut ajaa ohjelman, olisin tehnyt sen virtuaalikoneessa, jossa ei ole verkon kautta lainkaan yhteyttä muihin koneisiin.

tiistai 18. kesäkuuta 2013

Kyberturvallisuuden hyökkäys- ja puolustuskurssi vihdoin myös Suomessa

KPMG on kyberturvallisuuden koulutusta varten kansainvälisessä yhteistyöprojektissa suunnitellut kybersodankäyntiä mallintavan pilviympäristön. Meillä on Amazonin pilvessä virtuaalinen kemikaalitehdas IT- ja prosessinohjausjärjestelmineen.  Tätä ympäristöä on jo käytetty sisäisissä koulutuksissamme ja ympäristössä ovat harjoitelleet myös globaalien yritysten CIRT/CERT-tiimit sekä tietoturvallisuuden testauksen ammattilaiset. Nyt pystymme tarjoamaan tätä myös Suomessa!
Kurssin tarkoitus on toisaalta tukea Suomen kyberturvallisuusstrategian implementointia ja toisaalta parantaa eri organisaatioiden kykyä havaita hyökkäyksiä ja hyökkäysharjoittelun kautta parantaa tietämystä puolustukseen vaadittavista toimista.

Kurssi on laboratoriokeskeinen ja käytännönläheinen ja vaatii hyvää teknistä osaamista, jotta kurssista saa parhaan mahdollisen hyödyn.  Osallistujat jaetaan kahteen joukkueeseen.

Hyökkäävä joukkue (punaiset) yrittävät murtautua ”kemikaalitehtaaseen”, eli simuloituun kriittisen infrastruktuurin teollisuusautomaatiojärjestelmään ja keskeyttää sen tuotannon. Puolustava joukkue (siniset) yrittää estää tämän ja ainakin pitää tuotannon käynnissä. Pelkkä tuotannon ajaminen vaatii tiimiltä hyvää osaamista ja järjestelmien operointia.

Punaisessa tiimissä opit uusimpia KPMG:n murtotestaajien käyttämiä murtomenetelmiä. Tarkoitus on päästä sisään ja saada laitos haltuun jäämättä kiinni. Sinisen joukkueen tehtävä on havaita hyökkäys, estää vahingot, kerätä riittävästi todisteita hyökkääjän jäljittämiseksi ja tehdä analyysi siitä, mitä puutteita laitoksen tietoturvassa oli ja miten ne voidaan korjata. Oleellinen osa kurssi on paineenalaisen ryhmätyön metodien ja kurinalaisen toiminnan organisoinnin opettaminen puolustajille.

Kurssi koostuu kolmesta osiosta:
  Lyhyt alustus kurssilla tarvittaviin taitoihin
  Kurssin osallistujat jaetaan punaisiin ja sinisiin joukkueisiin.
  Puolivälissä joukkueiden roolit vaihdetaan

SUOSITELTAVAT ESITIEDOT:

Kurssilla käytetään ainakin seuraavia työkaluja: netcat, nmap, Nessus, Metasploit, Burp Suite, Arachni, sqlmap. Niiden etukäteisosaaminen takaa kurssista mahdollisimman suuren hyödyn, mutta niiden perusteet oppii myös kurssin aikana. Web-teknologioiden ja OWASP Top 10 -haavoittuvuuksien kunnollinen ymmärtäminen etukäteen olisi myös hyödyllistä. Sopivat esitiedot ja -taidot voi hankkia esim. KPMG/Mile2-yhteistyössä järjestettävillä Certified Penetration Testing Engineer (CPTE) -kurssilla ja KPMG:n omalla kurssilla Sovelluskehityksen tietoturva.

Lisätietoja ja ilmottautuminen:
https://events.kpmg.fi/tietoturva.aspx?TapahtumaID=38383

tiistai 11. kesäkuuta 2013

Tietosuojan toteutuminen ei ole pelkästään rekisterinpitäjien hartioilla!



Viimeaikaista uutisointia Yhdysvaltain viranomaisten ja suurten verkkopalvelutarjoajien yhteistyöstä käyttäjien viestintää koskevien tietojen vaihdosta voi tarkastella monesta näkökulmasta, mutta ehkä tässä kohtaa on hyvä myös muistella periaatteita, joita jokaisen verkkopalvelun käyttäjän tulisi ymmärtää punnita.

Jos rekisterinpitäjä ei osaltaan pysty toteuttamaan rekisteröidyn itsemääräämisoikeutta, kasvaa rekisteröidyn, tai pitäisikö sanoa rekisteröitävän, omien valintojen merkitys tietosuojan toteutumisessa. Siihen, mitä tietoja itsestä verkkoon pääsee ja miten laajalle ne leviävät, voi jokainen itsekin vaikuttaa. Ensinnä tulee arvioida, minkälaisiin palveluihin tietojaan luovuttaa tai minkälaisilla sivuilla vierailee. Selvää on toki, että usein käyttäjä on ’ota-tai-jätä’-tilanteessa, joko taloudellisista tai esim. sosiaalisista syistä. Tällöin on korostetun olennaista, mitä tietoja itsestään antaa ja minkälaisen jalanjäljen itsestään jättää. 

Hyvä nyrkkisääntö on, että kaiken netissä tekemäsi, sanomasi ja ilmoittamasi tulisi kestää päivänvaloa, julkista tarkastelua, huomenna ja siinä vaiheessa, kun haet kesätöihin tai tasavallan presidentiksi. Tämä arvio perustuu viime kädessä jokaisen itsensä suorittamaan subjektiiviseen riskianalyysiin, jonka lopputuleman tulisi vaikuttaa viestin suojaustasoon, tarkoitti tämä sitten vastaanottavan yleisön rajoittamista, lauseiden pehmentämistä tai sähköpostiviestin salaamista. Jos et ole varma päivänvalon vaikutuksesta, kannattaa ehkä miettiä vielä uudestaan, samalla kuitenkin muistaen, että sananvapaus on oikeusvaltion tärkeimpiä perusoikeuksia.  

PS. Jos haluat tehdä FB-ystävällesi palveluksen, ilmoita hänelle etukäteen, tai vähimmillään, tägää hänet, jos koet pakonomaista tarvetta julkaista kuvia, joissa hän esiintyy. Tällä tavalla hänellä säilyy edes osittainen kontrolli siitä, mitä kuvamateriaalia hänestä verkossa julkaistaan.

keskiviikko 5. kesäkuuta 2013

Yhteiskunnan sähköisten palveluiden tulevaisuus vaakalaudalla



Sääntely ja uudet palvelut pankkien ja yhteiskunnan sähköisten palveluiden tulevaisuuden uhkana

Eurooppalaiset finanssialan yritykset, pankit erityisesti, ovat ongelmissa säätelyn ja uudenlaisia palveluita tarjoavien yritysten kanssa. Suomessa uhattuna on kohta koko yhteiskunnan sähköiset palvelut ja niiden tietoturvallisuus.

Maksupalveludirektiivin mukaan maksupalvelun tuottaja vastaa oikeudettomista maksutapahtumista. Mikäli maksutapahtuma on toteutettu oikeudettomasti, maksupalveluntarjoaja palauttaa maksajalle kyseisen maksutapahtuman summan välittömästi ja tarvittaessa palauttaa veloitetun maksutilin sellaiseen tilaan, jossa se olisi ollut ilman oikeudettoman maksutapahtuman toteuttamista.  EU:n tuleva tilipankki-direktiivi antaa kaikille EU-kansalaisille subjektiivisen oikeuden peruspankkipalveluihin.  EU-komission piirissä on virinnyt kilpailuvapauden nimissä myös sellainen kanta, että pankkien tulisi sallia se, että niiden asiakkaat luovuttavat pankkiasiointiin tarvittavat tunnuksensa myös jollekin sellaiselle toiselle toimijalle, jonka tarjoamien muiden palveluiden kautta asiakkaalla on mahdollisuus käyttää myös pankkien palveluja. Tämä on pankkien toimesta nähty varsin problemaattisena ja monet pankkien yhteistyöelimet ovatkin kevään aikana asiaa käsitelleet yleiseurooppalaisella tasolla ja ilmaisseet huolensa asiaan liittyvistä turvallisuusnäkökulmista. 

Suomalaisittain asiaa mutkistaa huomattavasti se, että pankkitunnukset ovat myös käytännössä yleisessä sähköisessä asioinnissa käytettäviä vahvoja sähköisiä henkilötunnisteita, jotka jo lain mukaan tulee pitää henkilökohtaisena ja joilla pääsee lähes kaikkiin yhteiskunnan sähköisiin palveluihin. Tätä asiaa ei EU-tasolla ole huomioitu.

Markkinoille on ilmaantunut lukuisia uusia toimijoita, joiden palvelut perustuvat käyttäjien pankkitunnisteiden käyttöön. Nämä niin sanottujen Overlay-palveluiden tuottajat toimivat käyttäjän ja verkkopankin välissä ja käyttävät asiakkaansa pankkitunnuksia tämän puolesta.  Jotta palvelun tuottaminen olisi mahdollista, luovuttaa pankin asiakas pankkitunnuksensa (tunnuslukutaulukot) kolmannen osapuolen käyttöön ja EU komission vallitsevan kannan mukaan pankkien tulee tämä myös sallia. Niin yllättävää kuin se tietoturvallisuutta ymmärtävän asiantuntijan näkökulmasta onkin, on tämä jo suomessakin kohtuullisen yleistä ja yleistyy koko ajan. Eräskin pankki arvioi heillä olevan jo noin 20 000 asiakasta, jotka ovat pankkitunnuksensa luovuttaneet tällaisen pankkien palveluita hyödyntävien palvelutarjoajien käyttöön.

Pankkitunnusten luovuttamisesta seuraa se, että käyttäjien tulee aukottomasti luottaa tällaisiin uusien palveluiden tuottajiin, sillä he käytännössä luovuttavat tilinsä ja samalla kaikkien yhteyskunnan sähköisten palveluiden käyttöoikeuden näille kolmansille osapuolille. Näiden palveluiden pystyttäminen on erittäin helppoa, eikä käyttäjillä tosiasiassa ole mitään mahdollisuutta varmistua toimijoiden luotettavuudesta. Toisaalta tämä ei myöskään ole näiden käyttäjien, pankin asiakkaiden, ongelma, sillä pankithan ovat maksupalveludirektiivin mukaan vastuussa mahdollisista oikeudettomista maksutapahtumista. Yhteiskunnan tarjoamien palveluiden osalta on epätodennäköistä, että käyttäjät olisivat edes tajunneet miettiä näihin liittyviä riskejä. Pankit ovat joutuneet tilanteeseen, jossa ne toisaalta velvoitetaan sallimaan verkkopankkitunnusten luovuttaminen kolmansille osapuolille ja jossa ne joutuvat korvaamaan tästä mahdollisesti aiheutuvat väärinkäytökset. Yhteiskunta puolestaan on joutunut tilanteeseen, jossa sähköisiä palveluita tarjoavat tahot eivät vielä ole koko riskiä tunnistaneet.

Suomessa pankkitunnisteita (TUPAS) käytetään luotettavana tapana tunnistautua hyvin moniin yhteiskunnan sähköisiin palveluihin sekä yksityisten yritysten palveluihin, kuten verkkokauppoihin. Vahvaa sähköistä tunnistamista säätelee Suomessa Laki vahvasta sähköisestä tunnistamisesta ja sähköisistä allekirjoituksista ja tämän lain mukaan tunnistusväline annetaan aina luonnolliselle henkilölle ja sen on oltava henkilökohtainen. Lisäksi laissa todetaan, että tunnistusvälineen haltija ei saa luovuttaa välinettä toisen käyttöön. Kuten edellä jo todettiin  EU-sääntelystä johtuen pankkitunnusten luovuttaminen Overlay-palveluiden tuottajille tulee olla sallittua ja sitä tapahtuu yhä enenevässä määrin. Tästä seuraa se, että kolmansille osapuolille siirtyy myös lähes kaikkien yhteiskunnan tarjoamien sähköisten palveluiden käyttöoikeudet ja nämä tahot voivat halutessaan käyttää näitä tunnuksia esimerkiksi asioidakseen oikeudettomasti pankkien asiakkaiden puolesta suomalaisten viranomaisten kanssa tai katsellakseen asiakkaidensa potilastietoja suomen keskitetystä potilastietoarkistosta. Suomessa kiinteistöiden kaupankin voi kohta tehdä sähköisesti käyttäen tätä varten tehtyjä verkkopalveluita. 

Lisääntyvä kolmansien osapuolien tarjoamien Overlay-palveluiden käyttö ja pankkien velvollisuus tukea näiden palveluiden käyttöä on siis johtamassa tilanteeseen, joka vaarantaa koko suomalaisen yhteiskunnan sähköisten palveluiden turvallisuuden ja asettaa samalla pankit ikävään välikäteen, jossa ne toisaalta eivät saa huolehtia palveluidensa turvallisuudesta ja toisaalta joutuvat korvaamaan aiheutuvat vahingot. Kansalaiset saattavat joku päivä herätä siihen, että eivät enää omistakaan kiinteistöä, jossa asuvat, vaan sen omistaa epäluotettavaksi osoittautunut Overlay-palveluiden tuottaja.

Aiheesta KPMG:n blogissa