Archive for the ‘Inbyggda system’ category

En Duracellkanin? Nej, en Energizer-trojan

March 12th, 2010

Batteriföretaget Energizer släppte för ett tag sedan en USB-kopplad batteriladdare kallad Energizer Duo.

Energizer Duo

Förutom att ladda via USB kunde produkten köra en liten applikationen på datorn som visade laddstatus fäör batterierna.

Laptop med applikationen.

Men det var nu inte det enda som kördes när laddaren kopplades in. Enligt Symantec kom batteriladdaren med en elak liten trojan. Symantec har en längre beskrivning av Energizertrojanen som bla beskriver vad den kunde göra:


• Download a file
• Execute a file
• Send a directory listing to the remote attacker
• Send files to the remote attacker
• Modify the following registry entry:

Energizer har dragit tillbaka produkten. Det jag undrar över är hur trojanen hittade in i koden till laddaren från första början. Hade det varit ett USB-minne hade det varit en sak, men nu är det inte det och då brukar mängden minne som finns vara högst begränsat. Märkligt.

  • Share/Bookmark
Print

Applikationen är säker – för att vi säger att det är så

February 13th, 2010

F-Secures Mikko Hypponen rapporterar på sin blog om ett intressant sätt att skydda användare av applikationer mot att råka köra elak kod.

Den stora mobilkonferensen GSMA World Congress 2010 börjar nästa vecka och tydligen har företaget Whatamap utvecklat den officiella konferensapplikationen. Miko fick ett meddelande till sin mobil om detta från ett för honom okänt nummer:

Meddelande ett.

Ok, någon vill att han skall köra en applikation. Hur vet man då att det verkligen är den officiella appen och kod man kan våga ladda ner och köra? Jo för att dom säger att det är ok:

Meddelande två.

Notera texten You can trust this application: it’s the official MWC 2010 mobile guide. Jamendåså, då måste det vara ok. När Mikko försökte köra koden fick han naturligvis följande varning:

meddelande tre.

Allvarligt talat. Även om det ibland kan vara si och så med hur signering sker, men det är väl ändå bättre än den här typen av trams.

Skall mobilsystemen bli en plattform för säkra transaktioner, ersätta plånböcker och e-handel är det dags att bli seriös vad gäller säkerhet. Och då böja städa i sitt eget bo.

  • Share/Bookmark
Print

Test av mobilkrypton (och vem kan man lita på).

February 1st, 2010

Mobilemag har en artikel om ett test av krypton för att skydda röstkommunikation från mobiler.

Den undersökning artikeln beskriver har utförts av en bloggare och IT-expert som tydligen kallas Notrax. På Notrax blog InfoSecurityGuard finns de egentliga undersökningarna.

Att det finns behov av bra kryptolösningar som erbjuder konfidentialitet från mobiler är helt klart. Dels är de befintliga mekanismerna i såväl GSM som 3G (UMTS) starkt ifrågasatta. Dessutom skyddar dessa mekanismer bara radiolänken. Det finns ett flertal produkter på marknaden som alla (naturligtvis) säger sig erbjuda ett bra skydd. Men hur bra är dom egentligen?

Att döma av Notrax test av 15 olika program- och hårdvarubaserade produkter är dom inte speciellt bra. Han lyckades knäcka 12 av 15 produkter:
Bild på de testade mobilkryptona.

Svenska Sectras produkt Tiger XS är tyvärr inte med i undersökningen.

Går man sedan in på Notrax sidor finns det detaljerande beskrivningar av hur han ex knäckte CellCrypt och undersökte PhoneCrypt. Notrax har även gjort videoinspelningar av sina undersökningar och lagt upp på Youtube, här den om CellCrypt:

Sammantaget väldigt intressant och spännande information. Men nu visar det sig (ser det ut som) att Notrax arbetar för företaget SecurStar GmbH som levererar PhoneCrypt, en av de säkerhetsprodukter Notrax inte lyckas knäcka och ger bra betyg! Jösses.

Vem skall man lita på? Antagligen inte de produkter Notrax lyckades knäcka (fast det vore bra om någon mer gjorde om testerna och kom fram till samma sak). Klart är iaf att produkterna behövs – och att dom testas.

  • Share/Bookmark
Print

Mer om GSM-attacken

December 30th, 2009

Det verkar aldrig ta slut på uppmärksamheten kring Karsten Nohls attack på A5/1 (se tidigare bloggpostning ett och bloggpostning två). I dag har Sveriges Radio och Ekot plockat upp tråden och jösses vilket reportage det blev.

Ekots bild till artikeln.

Egentligen är Per Eurenius reportage (webbradio) från 26C3 i Berlin inte så illa, utan det är snarare påannonseringen och SRs nyhetstext som är tokfel:

Hemlig gsm-kod hackad av forskare

En tysk forskare har lyckats avslöja den kod som ska skydda mobiltrafiken i världens största telefonsystem, gsm.

Nej, SR, det är ingen kod som avslöjats, och det är inte hemligt.

Även Cryptome har uppdaterat sitt material In support of Karsten Nohl’s cracking of GSM A5 och den här sidan hos Cryptome är nog den mest kompletta samlingen av information om A5-krypton, säkerhet (eller avsaknad därav) i GSM, GPRS och UMTS.

För den som vill ha Karstens regnbågstabeller finns det nu torrentfiler.

  • Share/Bookmark
Print

Regnbågstabeller för A5/1

December 11th, 2009

Det har varit en del uppmärksamhet om Karsten Nohls A5/1-projekt. IEEE Spectrum hade en bra artikel som sedan bla ledde till en artikel i Elektroniktidningen här i Sverige.

Karsten Nohl
Karsten Nohl från en tidigare attack på RFID.

Vad det hela handlar om är att Karsten Nohl (bland annat) har bestämt sig för att generera regnbågstabeller för GSM-kryptot A5/1.

Då A5/1 använder en 64-bit nyckel skulle en ren tabell ta upp 128 Petabyte och att generera tabellen med en CPU skulle ta hundatusentals år. Karsten & Co löser dessa båda problem genom att koda/komprimera samt använda GPU:er programmerade med CUDA för att parallellisera beräkningarna.

Det finns en presentation av Karsten Nohl från HAR 2009 om projektet som mer i detalj beskriver tabellkomprimeringen samt hur GPU-accelerationen går till.

Syftet bakom projektet så som det anges i presentationen är att det sedan 1994 publicerats ett antal attacker på A5/1-algoritmen, men trots detta finns det ingen publik exploit eller publikt presenterad praktiskt genomförd attack. Det Karsten vill åstadkomma är därför att ta fram en sådan praktisk attack för att visa att A5/1 verkligen är osäkert, inte bara i teorin (eller om man heter NSA.).

Om du vill följa utvecklingen i projektet finns det en Trac-sida för A5/1-projektet som innehåller statusuppdateringar, kod etc.

Det Karsten hoppas skall ske är att GSM går över till A5/3 (baserat på kryptot Kasumi), vilket används i 3G. Frågan är dock om det kommer att ske. Med flera miljarder med användare kommer det att finnas en enorm mängd mobiler som fortsätter köra A5/1 i många år framöver.

En annan viktig sak att komma ihåg är att oavsett om det är A5/1 eller A5/3 som används är det bara mellan din mobil och basstationen ditt samtal är skyddat. Vill du lita på att ditt samtal inte avlyssnas från dig till den du kommunicerar med bör du betrakta den kanal operatören tillhandahålla och vidta de åtgärder du tycker behövs.

  • Share/Bookmark
Print

Säkerhet vid byte av bilnyckel

November 3rd, 2009

För ett tag sedan började en av de elektroniska nycklarna till vår bil (SAAB 9-3) att krångla. Ibland fungerade den, ibland inte.

Som ägare kan man själv öppna nyckeln och byta batteri, detta hjälpte dock inte så det var inte ett kasst batteri, utan kass elektronik. Samtidigt som man byter batteri kan man titta på vad som borde vara ett KeeLoq-chip.

En trasig elektronisk nyckel ersätts med en ny som behöver paras ihop med bilen med hjälp av en programmeringsenhet de har på verkstaden. Så långt allt väl, men nu kommer det som gjorde mig förvånad: När detta sker måste alla andra elektroniska nyckar vara med, annars kommer de att sluta fungera.

Jag inbillade mig att bilens chip innehöll en accesslista. När den nya nyckeln skall paras ihop med bilen läggs nycklens ID in i listan och den gamla nycklens ID plockas bort. Men tydligen är det inte så det fungerar.

En servicetekniker hävdade att detta förfarande var för att det skulle vara säkrare, vilket jag har svårt att se varför. Han tänkte sig tydligen situationen när en nyckel har tappats bort – men det är ett helt annat användningsfall – här finns den gamla nyckeln kvar så vilken nyckel som skall plockas bort från en accesslista kan inte vara bekymret.

Kan du som läser detta komma på en bra anledning till att behöva para ihop alla nycklar igen med bilen när en nyckel skall ersättas?

Det enda jag kan komma på är att det finns en gemensam gruppnyckel och därmed ingen accesslista. Om jag fattat Keeloq rätt skall dock alla enheter ha ett unikt ID och därmed möjlighet för accessliste-baserad säkerhet.

Dessutom är det så att det finns en fysisk nyckel i den elektroniska som gör att man iaf kan öppna förardörren på gammalt mekaniskt sätt. Och dessa nycklar är inte unika, utan det är samma nyckel i alla de som hör till en bil.

  • Share/Bookmark
Print

KBMs ypperliga rapport om säkerhet för SCADA-system

September 15th, 2009

Förra året släppte Krisberedskapsmyndigheten (KBM, numera en del av MSB) en ypperlig rapport om säkerhet för industriella kontrollsystem, även kallade SCADA-system. Rapporten är indelad i tre stora delar.

Den första delen innehåller en definition av vad SCADA system är och vad som skiljer denna typ av system från exempelvis ett administrativt IT-system. Andra saker som tas upp är var SCADA-system finns, hur de används och behovet av skydd.

Den andra delen innehåller en detaljerad beskrivning av rekommendationer och riktlinjer. Efter att ha presenterat PDCA-modellen kommer en genomgång av 15 olika aktiviteter och en av rapporten styrka tycker jag är att varje aktivitet innehåller ett bra, enkelt förklarande exempel på de risker och problem varje aktivitet behandlar. Mitt i allt det komplexa och teoretiska finns alltid ett exempel som visar att det inte behöver vara så krångligt.

PDCA-modellen.
PDCA-modellen.

Den tredje delen är en extensiv referenslista över relevanta standarder. Men denna del är inte bara ett appendix, utan varje referens åtföljs av kommentarer som förklarar vad respektive standard och dess delar behandlar och är till för.

Rapporten, framtagen av Åke J. Holmgren (KBM-SEMA), Erik Johansson (KTH) and Robert Malmgren kan med fördel läsas av såväl beslutsfattare som tekniska chefer satta att ansvara för att skydda SCADA-system och tekniker som implementerar skyddet.

Att en svensk myndighet tar fram en sådan här bra rapport gör mig riktigt glad. Heja KBM!

  • Share/Bookmark
Print

Cellautomatbaserad slumptalsgenerator på OpenCores

September 1st, 2009

I början av 2009 släppte vi på InformAsic ett hårdvarublock (en IP-core) för en specifik typ av slumptalsgenerator (PRNG) byggd på en cellautomat (CA) med uppdateringsregeln rule30. Vi har nu uppdaterat den konstruktionen och ca_prng är nu en generell CA-baserad PRNG där uppdateringsregeln går att byta ut. Detta gör det möjligt att generera ett stort antal mönster, från vitt brus till vandrande ettor, Pascals triangel m.m.

Samtidigt har vi flyttat konstruktionen och ca_prng finns nu på OpenCores. OpenCores är en webbplats för hårdvarukonstruktionsprojekt tillhandahållna som öppen kod. Licensen vi använder är dock fortsatt BSD och konstruktionen är skriven i Verilog (2001). Vi är glada att bidra till OpenCores och hoppas att ca_prng skall komma till nytta, exempelvis som stimuligenerator vid FPGA-accelererad verifiering av konstruktioner.

  • Share/Bookmark
Print

Svagheter i SHA-3-implementationer

February 22nd, 2009

Fortify har postat på sin blogg om en undersökning av säkerheten i referensimplementationerna av SHA-3-kandidaterna.

Fortify har använt sitt verktyg Fortify SCA, en linter speciellt utvecklad för att hitta kodmässiga svagheter som buffertöverskrivningar etc. (Det hade antagligen gått bra att använda splint eller liknande säkerhetsinriktade lintverktyg för att hitta svagheterna.)

Vad Fortify upptäckt är att ett antal av SHA-3-kandidaterna har mer eller mindre allvarliga svagheter i sin implementation, mer specifikt i Blender, Crunch, FSB, MD6, Vortex. Några typiska fel är att koden tillåter buffertöverskrivningar, att den läser utanför gränserna i en buffert (indexeringsfel) och minnesläckage. Som ett exempel tar Fortify upp MD6:


One of the projects with buffer issues was MD6, the implementation provided Professor Ron Rivest and his team. All of the problems came back to the hashval field of the md6_state struct:

unsigned char hashval[ (md6_c/2)*(md6_w/8) ];

The buffer size is determined by two constants:

#define w md6_w /* # bits in a word (64) */ #define c md6_c /* # words in compression output (16) */

At several points, this buffer is read or written to using a different bound:

if (z==1) /* save final chaining value in st->hashval */ { memcpy( st->hashval, C, md6_c*(w/8) ); return MD6_SUCCESS; }

Further analysis showed that ANSI standard layout rules would make incorrect behavior unlikely, but other compilers may have allowed it to be exploited. The MD6 team has doubled the size of the vulnerable buffer, which eliminated the risk. In this case, Fortify SCA found an issue that would have been difficult to catch otherwise.

The other buffer overflow was found in the Blender implementation, from Dr. Colin Bradbury. This issue was a classic typo:

DataLength sourceDataLength2[3];// high order parts of data length ... if (ss.sourceDataLength < (bcount | databitlen)) // overflow if (++ss.sourceDataLength2[0] 0) // increment higher order count if (++ss.sourceDataLength2[1] 0) // and the next higher order ++ss.sourceDataLength2[3]; // and the next one, etc.

The developer simply mistyped, using 3 instead of 2 for the array access. This issue was probably not caught because it would not be exposed without a very large input. The other issues we found were memory leaks and null dereferences from memory allocation.

Att den här typen av programmeringsfel kan få betydelse för SHA-3-tävlingen är uppenbart, och illustreras tydligt med MD6. Dess internbuffert behövde dubbleras i storlek. Detta gör att implementationer av MD6 för inbyggda system kommer att kräva mer minnesresurser än vad tidigare angetts. En av styrkorna med MD6 enligt dess skapare är att den skalar extremt bra ner till mycket små implementationer, och det argumentet fick sig nu nog en liten törn.

Ett annat skäl till varför jag tycker att Fortifys undersökning är bra är att referensimplementationer ofta används i applikationer. Antingen direkt eller som bas (funktionell referens) för en ny implementation. Därmed riskerar svagheter i referensimplementationen att sprida sig. Fortify tar själva upp ett exempel från en svaghet i referensimplementationen av RSA som lett till buggar i olika SSL-implementationer.

I fallet SHA-3, med dess fokus på prestanda, vilket gjort att skaparna av kandidater slitit och sliter med att optimera ut varenda cykel de kan ur sin kod, tror jag att referensimplementationer kommer att få stor användning i applikationskod.

  • Share/Bookmark
Print

Skydd av FPGA-konstruktioner med PUF:ar

September 29th, 2008

För ett tag sedan skrev jag om olika tekniker för att stoppa kloning av konstruktioner. En av dessa byggde på PUF:ar – Physically Unique Functions utvecklade av företaget Verayo.

I samband med det hittade jag artikeln Offline HW/SW Authentication for Reconfigurable Platforms om att använda PUF:ar för att skydda FPGA-konstruktioner. Jag undrade då hur det gick att implementera PUF:ar i en så kontrollerad och reglerad struktur som i en FPGA. Jag hade artikeln sum lunchläsning och vet nu lite mer. Och jag är rätt besviken.

Problemet författarna försöker lösa är att hindra att inköpt SW som exekveras på en processor implementerad i en FPGA kopieras. Själva processorn och annan HW implementerad i FPGA:n skyddas genom krypterad konfigurationsfil. Men SW lagrad i externt minne har inte samma skydd. Författarna skriver:


A hardware platform, designed by a System Developer, will be configured into an FPGA. The System Developer will also use third-party software IPs that execute on top of the platform. The System Developer can apply bitstream encryption to protect the hardware configuration in the FPGA, but an additional hardware-software authentication mechanism is needed to protect the software IPs.

Det är alltså inte systemutvecklarens väl och ve man avser att skydda utan leverantören av programvarukomponenten. Och tricket är att implementera en PUF i FPGAn. Alltså att FPGA-leverantören bygger in en PUF, inte att FPGA:n struktur används för att implementera en PUF. Dvs deras sjyddar inte SW implementerade i system på dagens FPGA:er, utan kräver att FPGA-leverantörerna bygger in en PUF-funktion i sina kretsar.

Då den föreslagna metoden innebär ökade produktionskostnader för karaktärisering av varje FPGA, samt att FPGA-leverantören skall skicka upp information om alla tillverkade kretsar på en server låter detta inte speciellt troligt.

Och när författarna testat sitt nya protokoll har dom inte ens använt en riktig PUF-modell:


We have not yet built a PUF implementation, but have simulated its behavior using another AES block with a fixed key.

En riktigt usel och irriterande artikel. Tur att min lunchlåda var extra smaskens. Dessutom hade jag en annan, mycket bättre artikel att läsa. Mer om den senare.

  • Share/Bookmark
Print