Taggat med: Rust

Trojan Source

En ny metod har upptäckts för att gömma bakdörrar i källkod, denna nya metod har fått namnet Trojan Source. Sårbarheten har fått CVE-2021-42574 och går kort och gott ut på att använda speciella unicode-tecken som kastar om den logiska ordningen i källkoden. Dvs tittar du på koden med en editor så ser det ok ut men när du kompilerar koden så gör den något annat. En perfekt metod således att använda vid supply-chain attacker.

Följande animation visar ett kort demo på hur logiken kan kastas om om unicode bidirectional control characters används:

Redan nu har

Therefore, by placing Bidi override characters exclusively within comments and strings, we can smuggle them into source code in a manner that most compilers will accept. Our key insight is that we can reorder source code characters in such a way that the resulting display order also represents syntactically valid source code.

Forskningen är ett resultat från Nicholas Boucher och vid University of Cambridge. Och redan nu har programspråket Rust släppt en uppdatering till kompilatorn rustc som nu kommer att klaga om följande unicode-tecken återfinnes: U+202A, U+202B, U+202C, U+202D, U+202E, U+2066, U+2067, U+2068, U+2069.

Här kan du ladda hem whitepapret:

Uppdatering: För PoC till olika programspråk, se detta repo på Github.

Uppdatering 2: Github har nu lagt in en varning. Så här ser det ut när du tittar på en fil som innehåller ovan nämnda unicode-tecken:

Uppdatering 3: Förutom CVE-2021-42574 (BiDi attacken) så glömde jag att ange CVE-2021-42694 (för homoglyph attacken).

Uppdatering 4: Attacken är inte speciellt ny och har beskrivits ett antal gånger tidigare. Bl.a. inom Go-projektet här.

Oberoende granskning av Firefox uppdateringsförfarande

Tyska säkerhetsföretaget X41 D-Sec GmbH har genomfört en oberoende teknisk säkerhetsgranskning av Firefox uppdateringsförfarande. Dvs den infrastruktur som har hand om uppdateringar samt kodbasen som tillhör både klient och serverdel.

Resultatet av denna granskning påvisar inga allvarliga säkerhetsbrister. Dock uppdagades tre säkerhetsbrister i Balrog med hög allvarlighetsgrad. Balrog är den uppdateringsserver som Firefox använder sig av och finns på Github här.

Fördelningen över resterande säkerhetsbrister som identifierats fördelar sig enligt följande:

Granskningsgruppen rekommenderar även att XML-filer som beskriver metadata om uppdateringar bör signeras. Även så kör uppdateringsservern enbart HTTP Basic Authentication som autentisering, utan rate-limit. Intressant även att de föreslår att Firefox skriver om delar av koden från C till ett säkrare programspråk såsom Rust eller Golang.

Stöd mitt bloggande via Patreon >

Jag gillar denna typ av offentliga säkerhetsgranskningar och speciellt eftersom rapporten finns att ladda ner i sin helhet (har bifogat den nedan). Tidigare har jag bl.a. skrivit om Mullvad som genomfört en offentlig granskning.

Granskningen som X41 D-Sec utförde tog 216 timmar och utfördes av fyra säkerhetsexperter varav en av dessa var kryptolog.

Här kan du ladda hem rapporten som PDF:

Källa