Android 4.4 KitKat säkerhetsförbättringar

Förutom de många användarvänliga förbättringar i den senaste inkarnationen av Android tillkännagav igår, det finns ett antal intressanta säkerhet förbättringar, vilket verkar tyda på att Google inte helt har försummat plattformssäkerheten i detta nya släpp. Den här artikeln kommer att gå igenom vad som är nytt och vad det betyder för dig.

SELinux i Enforce Mode

I Android 4.4 har SELinux gått från att köra i tillåtande läge (som helt enkelt loggar misslyckanden), till tillämpningsläge. SELinux, som introducerades i Android 4.3, är ett obligatoriskt åtkomstkontrollsystem inbyggt i Linux-kärnan, för att hjälpa till att upprätthålla befintliga åtkomstkontrollrättigheter (dvs. behörigheter), och att försöka förhindra attacker med eskalering av rättigheter (dvs. en app som försöker få root-åtkomst på din enhet).

Stöd för signeringsnycklar för elliptisk kurvkryptering (ECDSA) i AndroidKeyStore

Den integrerade Android Keystore-leverantören inkluderar nu stöd för Eliptic Curve-signeringsnycklar. Medan Eliptic Curve Cryptography kan ha fått lite (omotiverat) dålig publicitet på sistone, är ECC en livskraftig form av publik nyckelkryptering som kan utgöra ett bra alternativ till RSA och annat sådant algoritmer. Även om asymmetrisk kryptografi inte kommer att motstå utvecklingen av kvantdatorer, är det bra att se att Android 4.4 introducerar fler alternativ för utvecklare. För långtidslagring av data är symmetrisk kryptering fortfarande den bästa metoden.

SSL CA-certifikatvarningar

Många företags IT-miljöer inkluderar SSL-övervakningsprogramvara, som lägger till en Certificate Authority (CA) till din dator och/eller webbläsare för att tillåt företagets webbfiltreringsprogram att utföra en "man i mitten"-attack på dina HTTPS-sessioner för säkerhet och övervakning syften. Detta har varit möjligt med Android genom att lägga till en extra CA-nyckel till enheten (som tillåter ditt företags gatewayserver att "låtsas" vara vilken webbplats som helst). Android 4.4 kommer att varna användare om deras enhet har fått ett sådant CA-certifikat tillagt, så att de är medvetna om att detta kan hända.

Automatiserad buffertspilldetektion

Android 4.4 kompileras nu med FORTIFY_SOURCE som körs på nivå 2 och säkerställer att all C-kod kompileras med detta skydd. Kod kompilerad med clang omfattas också av detta. FORTIFY_SOURCE är en säkerhetsfunktion i kompilatorn, som försöker identifiera några buffertspillmöjligheter (som kan utnyttjas av skadlig programvara eller användare för att få godtycklig kodexekvering på en enhet). Även om FORTIFY_SOURCE inte eliminerar alla möjligheter till buffertspill, är det verkligen bättre att använda än oanvänt, för att undvika uppenbara förbiseenden vid tilldelning av buffertar.

Google-certifikatfästning

Android 4.4 utökar stödet för certifikatstiftning i tidigare versioner av Jellybean och lägger till skydd mot certifikatersättning för Google-certifikat. Certifikatpinning är handlingen att endast tillåta vissa vitlistade SSL-certifikat att användas mot en viss domän. Detta skyddar dig från att din leverantör ersätter (till exempel) ett certifikat som tillhandahålls den enligt en order från regeringen i ditt land. Utan certifikatpinning skulle din enhet acceptera detta giltiga SSL-certifikat (eftersom SSL tillåter alla betrodda CA att utfärda vilket certifikat som helst). Med certifikatpinning accepteras endast det hårdkodade giltiga certifikatet av din telefon, vilket skyddar dig från en man-i-mitten-attack.

Det verkar verkligen som att Google inte har vilat på sina lagrar med Android-säkerhet. Detta är ett tillägg till inkludering av dm-verity, vilket möjligen kan få allvarliga konsekvenser för människor som gillar att roota och modifiera sina enheter med låsta starthanterare (dvs. som upprätthåller kärnsignaturer).