Warning: Missing argument 2 for wpdb::prepare(), called in /home/stromber/public_html/kryptoblog/wp-content/plugins/wp-super-edit/wp-super-edit.core.class.php on line 109 and defined in /home/stromber/public_html/kryptoblog/wp-includes/wp-db.php on line 1222
Elak kod » Kryptoblog

Archive for the ‘Elak kod’ category

Hur man öppnar resväskor utan att det syns

April 10th, 2010

På Youtube finns en hemsk (och hemskt intressant) film om hur man kan öppna och sedan stänga en resväska utan att det syns. Det enda verktyg som krävs är en kulspetspenna:

Notera att väskan är låst med ett hänglås som låser ihop dragkedjans två dragmekanismer. Kommentaren på slutet är väl värd att lägga på minnet: Du är ansvarig för det som finns i din resväska. Det stora bekymret är egentligen inte att det går att öppna en resväska man tror är låst, utan att det går att återförsluta den så att det inte finns något som visar att ett intrång skett.

Lärdomen från denna film borde vara att inte använda resväskor med dragkedjor.

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.

Statistik över elak kod i olika typer av filer

March 9th, 2010

F-Secures log har en postning med statistik över elak kod i olika typer av filformat. Att döma av PDF den klart vanligaste filtypen där elak kod följer med.

Statistik från F-secure.

Det hade naturligtvis varit intressant att se hur vanliga resp format är på över huvud taget. Är det ex så att PDF är vanligaste filtypen där elak kod följer med för att den är lättast att dölja kod, eller för att det helt enkelt är den överlägset vanligaste filtypen av de jämförda typerna. Oavsett hur det ligger till bör man nog inse att PDFer (och andra filer) som trillar ner från nätet kan innehålla elakheter.

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.

Apples feta patchar och OS-säkerhet

November 11th, 2009

För ett par dagar sedan (2009-11-09) släppte Apple den andra uppdateringen av Snow Leopard – 10.6.2. I samband med denna release släppte de även säkerhetsuppdateringen 2009-006 – en uppdatering med inte mindre än 58(!) patchar. Den förra generella säkerhetsuppdateringen från Apple, 2009-005 kom 2009-09-10, dvs för två månader sedan.

Den nu släppta patchen täcker både funktioner långt ner i OS:et som kernel, filsysten, CoreGraphics, directory service såväl som tredjepartsprogram som CUPS, Apache och Subversion. Tyvärr är flera av säkerhetsproblemen som nu patchas riktigt gamla – Subversionproblemet är exempelvis från Augusti.

En som inte tycker om hur Apple hanterar säkerheten är Per Hellqvist som bloggat om den senaste stora patchbollen och säkerhet på Mac.

Per Hellqvist på nära håll.

Pelle skriver bland annat:

Jag vet inte vad du känner, men jag är rätt trött på att Mac-användare invaggar varandra i en falsk känsla av säkerhet. Förstärkningseffekten av att hela tiden utsättas för villfarelsen att Mac är så säkert blir till slut enorm och blir till fakta.

Jag såg senast imorse en kompis på Facebook som för en gångs skull råkat ut för virus. Och lika säkert som amen i kyrkan klippte en Mac-användare in de bevingade orden: “Byt till Mac så slipper du sånt”. Det är helt enkelt inte sant. Risken är mycket mindre, men man slipper det inte!

Men faktum är att MacOS är som alla andra mjukvaror. Det finns säkerhetshål där med. Anledningen är enkel:

Mjukvaror skrivs av människor. Människor är inte perfekta. Alltså blir inte mjukvara perfekt.

Visst, elak kod kan sägas vara ett Windows-problem. Skillnaden är dessutom enorm. Det finns uppemot 3 miljoner elakingar till Windows och ett hundratal till Mac (plus alla gamla macrovirus). Kom då ihåg att inte alla Windows-virus är aktiva, eller ens har varit det någon gång. För Mac handlar det mest om trojaner, och trojaner är som verktygslådor. Joakim von Braun sade en gång att virus kommer och går, men trojaner består. Det har han rätt i. Trojaner används för ett visst uppdrag. De dör egentligen inte ut.

Jag är Macanvändare men kan bara hålla med. Jag blir också trött på att folk tror att Mac är helt fri från problem. Men samtidigt blir jag trött på på Windowsanvändare som hävdar att Macens jämförelsevis lilla mängd med elak kod bara beror på den mindre användarbasen.

Samma argument användes av Nordea under en tid när de och deras kunder utsattes för flera nätbedrägerier. Att de hade en mindre säker teknisk lösning hade inte med saken att göra – fast ändå så bytte dom.

Användarbas är en parameter. Hur enkelt det är att utföra en attack och vad man kan komma åt är andra. Detta gäller inbrott såväl som nätbedrägerier och elak kod.

Jag vill inte starta ett Windows vs Mac-krig (vägrar använda “Mac vs PC” då PC för mig är hårdvaran, vilken kan köra många olika OS på.) men min åsikt är att det för SW-system finns olika tekniska lösningar som leder till olika tekniska egenskaper – precis som för alla andra tekniska system.

En Toyota pickup har helt andra köregenskaper än en BMW M5. Båda är ypperliga bilar, var och en på sitt sätt. Toyotan är en allt annat än lyxig, men i den närmaste oförstörbar (se Top Gears lilla test för några år sedan) lastmaskin som står sina ägare bi jorden runt oavsett om det finns vägar eller ej.

En sliten Toyota Pickup

BMWn å sin sida är höjden av teknisk finess, en fantastisk milätare för Autobahn-hastighet. Helt olika konstruktioner för att målgrupp och krav är helt annorlunda – men fortfarande är de både exempel på ett tekniskt system vi kallar bil.

BMW M5

(Godtyckling modern amerikansk bladfjäderkärra kan tas som exempel på hur ett tekniskt system kan konstrueras på ett kasst sätt.)

Säkerhet är något som behöver systemeras in från början (oavsett om det är ett OS, en SW-applikation eller en bil) och olika tekniska val påverkar vilka säkerhetsegenskaper du får. Detta gäller hur filer skyddas i filsystemet, hur användaren kopplas in i beslutskedjan etc.

Vidare handlar säkerhet mycket om utvecklingsmetodik och den kultur som råder. Bryr man sig inte om att göra säkra, genomtänkta implementationer spelar det ingen roll om systemeringen såg bra ut på ritbordet. Enligt min åsikt är det faktiskt skillnad i säkerhet mellan olika OS. Vista är säkrare än XP, Win7 är säkrare än Vista. Snow Leopard är säkrare än såväl Leopard som Tiger.

Vissa utvecklare tar detta på mindre eller större allvar. Gänget bakom OpenBSD är ett exempel på ett öppen kod-projekt där kulturen genomsyras av ett väldigt (väldigt, väldigt) högt säkerhetsmedvetande.

Vad har nu detta att göra med Apple? Jo, jag vet inte hur Apples säkerhetskultur ser ut. Jag vet att det jobbar duktiga människor där (FreeBSDs Jordan K Hubbard exempelvis). Vidare tycker jag att Apple lyckats bra i sitt sätt att hitta en modell för hur användaren kopplas in i säkerhetskedjan.

Men hur man släpper sina säkerhetspatchar tycker jag tyder på en säkerhetskultur som lämnar utrymme till förbättringar. Min blygsamma åsikt är att antingen släpper man en patch för ett givet säkerhetsproblem så fort den finns framme.

Alternativt släpper man buntar med patchar vid regelbundna tillfällen. Detta alternativ gör det möjligt för stora organisationer att planera för kommande uppdateringsarbeten. Den stora frågan är hur ofta man skall släppa uppdateringar. Jag kan tycka att Microsoft han en aning för låg frekvens.

Men att släppa en fet patchbomb oregelbundet innebär att säkerhetshål kan vara öppna väldigt länge. Och när patchbomben kommer är kunderna oförberedda, vilket förvärras av att bomben som i fallet med den senaste uppdateringen är så stor. En stor, fet patchbomb som kommer som en överraskning är helt enkelt fetfel.

Peller kommer med några bra rekommendationer som gäller såväl för Macanvändare som Windowsanvändare (och GNU/Linux, BeOS och kanske tom användare av OpenBSD):

* Uppdatera operativsystemet och de programvaror du använder.

* Klicka inte på allt som kommer din väg. Precis som du inte skulle plocka upp och äta godis från marken ska du heller inte klicka på allt som kommer i e-posten och via tjatten/sociala nätverket.

* Använd säkerhetsmjukvara.

* Ta backup. Ofta.

(Till skillnad från Pelle lyssnade jag inte på Mozarts pianokonsert No 24 i C minor när jag skrev detta. 50,000 unstoppable Watts med Clutch funkar också bra.)

Källkod för Skype-trojan släppt

September 2nd, 2009

SC rapporterar att källdkoden till en Skype-trojan släppts. Trojanen är skapad av Ruben Unteregger som bloggat om koden. Unteregger skriver:

As announced some weeks ago the Skype trojan sourcecode will be available for download. You find the source packages in the Tools & sources section if you are the impatient type.

The code is simple and straightforward. You have know malware development is no rocket science and if you expect big magic you are at the wrong place. The backdoor receives instructions from the dropzone and transferres audio files. The Skype-Tap intercepts the Skype function calls, extracts and dumps audio data to files, converts it to the mp3 format and encrypts it.

The code is not 100% complete. I removed the plugin system in the backdor and also the firewall bypassing system is not there anymore. I will publish both of them in separate tools later. If you don’t like this … well, I can’t help you. Thats how it is. Take it or leave it.

Danske Banks hemska webbapplikation

September 12th, 2008

Kollegan Kalle tipsade för ett tag sedan om en tråd på DailyWTF om den hemska webbapplikation som Danske Banke introducerade i Finland efter köpet av Sampo. Värt att läsa om man vill se ett IT-projekt som uppenbarligen gick snett från början.

SampoBank

Det finns även en Wiki som samlar information om alla hemskheter i SampoApplet. Bland detaljerna man kan hitta där finns en lista på vad SampoApplet försöker samla information om i GNU/Linux:


/proc/asound/cards
/proc/cpuinfo
/proc/ide0/hda
/proc/ide1/hdc
/proc/ide2/hdb
/proc/ide3/hdd
/proc/ide/hda
/proc/ide/hdb
/proc/ide/hdc
/proc/ide/hdd
/proc/meminfo
/proc/partitions
/proc/pci
/proc/sys/kernel/hostname
/proc/version

Vad skall banken med information om CPU och hårddisk-partitioner till? Motsvarande saker gäller i Windows och på Mac.

Märklig kod för slumpmässig header

June 3rd, 2008

DailyWTF dök det upp en postning om en märklig kod som försöker åstadkomma slumpmässiga headrar. Koden i fråga ser ut så här:

Dim rNumber As Integer = 0
rNumber = RandomNumber(13, 1)
Select Case rNumber
Case 0

Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case 1 Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
Case 2 Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case 3 Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case 4 Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
Case 5 Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
Case 6 Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case 7 Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case 8 Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
Case 9 Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
Case 10 Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case 11 Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
Case 12 Me.hl_logo.ImageUrl = "~/sysimages/header.jpg"
Case Else
Me.hl_logo.ImageUrl = "~/sysimages/header2.jpg"
End Select

(Que pasa? WTF?! Eller på Dalsländska: Ööööööö...)

Personen som postade koden hade pratat med personen som skrivit koden, och motiveringen till koden var:


It makes it more random because you get more repeats when you select from two random numbers than you do with thirteen.

Nära skjuter ingen hare…

Riktigt elak hårdvara

April 30th, 2008

USENIXkonferensen LargeScale Exploits and Emergent Threats 08 (LEET08!) presenterade Samuel T. King, Joseph Tucek, Anthony Cozzie, Chris Grier, Weihang Jiang och Yuanyuan Zhou en mycket intressant artikel om hårdvarubaserade trojaner.

LEET-logga

Artikeln Designing and Implementing Malicious Hardware, som utsågs till konferensen bästa artikel, är något av det mest intressanta och skrämmande jag läst på länge. Artikelns sammanfattning beskriver väl vad den handlar om:


Hidden malicious circuits provide an attacker with a stealthy attack vector. As they occupy a layer below the entire software stack, malicious circuits can bypass traditional defensive techniques. Yet current work on trojan circuits considers only simple attacks against the hardware itself, and straightforward defenses. More complex designs that attack the software are unexplored, as are the countermeasures an attacker may take to bypass proposed defenses.

We present the design and implementation of Illinois Malicious Processors (IMPs). There is a substantial design space in malicious circuitry; we show that an attacker, rather than designing one specific attack, can instead design hardware to support attacks. Such flexible hardware allows powerful, general purpose attacks, while remaining surprisingly low in the amount of additional hardware.

We show two such hardware designs, and implement them in a real system. Further, we show three powerful attacks using this hardware, including a login backdoor that gives an attacker complete and highlevel access to the machine. This login attack requires only 1341 additional gates: gates that can be used for other attacks as well.

Malicious processors are more practical, more flexible, and harder to detect than an initial analysis would suggest.

Författarna börjar med att beskriva hur olika attacker rört sig nedåt från applikation och OS till firmware och till virtualiseringssystem. Men, frågar sig författarna, hur svårt är det att modifiera en hårdvarukonstruktion, en processor, så att den dels gör systemet som kör på hårdvaran osäkert, och om det går att göra så att systemet inte märker av modifieringen.

Författarna har valt att modifiera open-source-processorn LEON3 från Göteborgsbaserade Gaisler Research.

LEON3-processorn är placerad i ett högst ordinärt och typiskt HW-system med USB-kontroller, VGA-kontroller m.m. På LEON3-processorn kör man sedan ett normalr GNU/Linux-system. Hela klabbet har realiserats på en Xilinx-FPGA.

I LEON3 har man sedan implementerat olika attacker. Den första attacken är en modifiering till LEON3-processorns MMU som gör att en process som känner till modifieringen kan trigga procesorn att ignorera minnesskydd och låta processen ge sig själv rootaccess. Författarna förklarar:


Our memory access mechanism provides hardware support for unprivileged malicious software by allowing access to privileged memory regions. Malicious software triggers the attack by forcing a sequence of bytes on the data bus to enable the memory access circuits. This sequence can be arbitrarily long to avoid false positives, and the particular sequence must be agreed upon before deployment.

Once the sequence is observed, the MMU in the data cache ignores CPU privilege levels for memory accesses, thus granting unprivileged software access to all memory, including privileged memory regions like the operating system’s internal memory. In other words, loading a magic value on the data bus will disable protection checking.

We implement this technique by modifying the data cache of our processor to include a small state machine that looks for the spe-cial sequence of bytes, plus some additional logic in the MMU to ignore privilege levels when malicious software

Författarna beskriver även en shadow-mod som gör det möjligt att gömma trojan genom att skapa en extra processormod, och kod som körs i denna mod döljs från resten av systemet. Denna shadow-mod används sedan av författarna för att implementera en funktion som snor lösenord samt ett sätt att implementera en bakdörr rätt in i OS:et. Mycket imponerande, fräckt och skrämmande.

Det författarna visar är hur lite som krävs för att implementera den här typen av funktioner. Författarna lade till mindre än 200 rader kod till VHDL-koden LEON3 består av. Minnesmodifieringen krävde knappt 1000 gates och shadow-funktionen drygt 1300 gates. Närmast avrundningsfel i en modern HW-konstruktion.

Författarna avslutar sin artikel med en diksussion om hur man kan skydda sig mot den här typen av attacker. Bla om man kan använda sidoeffekter för att detektera om en krets utför operationer man inte tänkt. Författarna konstaterar att det i dag antagligen finns få/inga vettiga skyddmekanismer, vilket jag håller med om.

Frågan man bör ställa sig i det här läget är dock: Men hur stor är risken egentligen?

Som exempel på ett ökande risk för trojaner i hårdvarukonstruktioner citerar författarna en rapport från USAs Department of Defence Science Board som bland annat skriver att


First, it has become economically infeasible to procure high performance ICs other than through commercial suppliers. Second, these commercial suppliers are increasingly moving the design, manufacturing, and testing stages of IC production to a diverse set of countries, making securing the IC supply chain infeasible. Together, commercial-off-the-shelf (COTS) procurement and global production lead to an “enormous and increasing” opportunity for attack

Att det finns problem med äktheten hos kretsar visar om inte annat att det nu bildas organisationef för att försöka stävja den snabbt ökande förekomsten av piratkopierade kretsar.

Det är inte så svårt att tänka sig att dessa kretsar skulle kunna innehålla mer än den piratkopierade konstruktionen. Man får ett mervärde man kanske inte hade tänkt sig. (Tomas Gilså uppmärksammade detta i en artikel om risker med piratkopierade routrar och switchar – ja jag är citerad.

På Cryptography-listan kommenterade Karsten Nohl trenden mot snabbt ökande komplexitet på chipnivå och användningen av IP-cores med:


Hardware designs currently move away from what in software would be open source. Chip obfuscation meant to protect IP combined with the ever increasing size of chips makes it almost impossible to reverse-engineer an entire chip.

Helt sant. I dag bygger man chip med allt fler och allt större IP-cores. Men hur vet man att dom faktiskt bara gör det dom säger att dom gör. Att kontrollera att konstruktionen följer en spec är en sak, men att visa att den även kan göra något mer?

Så möjligheten att modifiera konstruktioner, och den vägen få in en elak HW-funktion finns, frågan är om det finns kompetens och motivation? Kompetens kan man tyvärr köpa, så frågan är om någon är intresserad. Skall man döma av den snabbt ökande ekonomiska IT-brottsligheten finns det en hel del som är beredda att jobba hårt och lägga mycket pengar på att vara elaka.

Den här artikeln har uppmärksammats en del på krypto- och säkerhetslistor. Även Matt Blaze har bloggat kloka tankar som är värda att läsa. I diskussionen på Cryptography påpekades det att mikrokoden i Intels och AMDs processorer går att uppdatera. Hur kontrolleras att den mikrokod som laddas ner är ok? Någon som vet?

Jag tycker att artikeln som presenterades på LEET08 är mycket, mycket intressant. Och jag hoppas att artikeln får uppföljning i form av metodik och verktyg för att inspektera HW-konstruktioner och chip. Jag tror att vi kommer att behöva återkomma till den här frågan.

Hälsa på ditt IT-säkerhetshot

March 18th, 2008

MessageLabs har skapat bilder av olika typer av IT-säkerhetshot. Med utgångspunkt från källkoden har konstnären Alex Dragulescu skapat bilder av olika virus, trojaner och andra typer av hot. Så här ser exempelvis viruset (masken) Netsky ut:

Netsky

Och här är spywareprogrammet Ghost:

Ghost

Det jag gärna hade sett är hur olika versioner/varianter av samma hot ser ut. Det är inte alls säkert att detta leder till några större fördelar och att det underlättar förståelsen. Men fräckt är det.