FireAIs säkerhetsblogg

Av FireAI Security & Research Team · Publicerad

Vilka Mac-appar kan du lita på? Signering, notarisering, behörigheter och nätverksbeteende

Vilka Mac-appar kan du lita på? Signering, notarisering, behörigheter och nätverksbeteende

Att lita på en app på en Mac är inte ett enda ja-eller-nej-beslut. Det är fyra separata frågor, var och en besvarad av en egen mekanism: vem byggde den, har Apple kontrollerat den, vad får den röra, och vad gör den faktiskt när den väl körs. Apple dokumenterar de tre första i detalj. Den fjärde är den du måste observera själv, och det är den som fångar en app som klarade de tre första och sedan gick fel.

App Store eller direkt nedladdning

Apples supportsida Öppna appar säkert på din Mac kallar App Store det säkraste stället att skaffa programvara, av två konkreta skäl: Apple granskar varje app innan den godkänns, och Apple kan snabbt ta bort en app om ett problem upptäcks senare. App Store-appar måste också köras inuti App Sandbox, som Apples sida om Gatekeeper och körtidsskydd beskriver som att begränsa vilka data en app kan nå och tvinga den att använda macOS-API:er för att prata med andra appar.

Det gör inte varje direkt nedladdning misstänkt. En stor mängd legitim Mac-programvara distribueras utanför butiken eftersom sandlådan förbjuder det den behöver göra (diskverktyg, utvecklingsverktyg, brandväggar inkluderade). Skillnaden är att för en direkt nedladdning ersätts granskningssteget av två lättare kontroller som Apple beskriver på samma sidor: en signatur som säger vem som byggde appen, och en notariseringsskanning.

Developer ID och notarisering: vad de bevisar

Ett Developer ID-certifikat utfärdas av Apple till en utvecklare som är registrerad i Apple Developer Program, och det låter Gatekeeper bekräfta att en app signerades av den utvecklaren och inte har ändrats sedan dess. Det är allt en signatur bevisar: identitet och integritet. Den säger ingenting om avsikt. En signerad app kan fortfarande vara en dålig app; signaturen betyder bara att Apple vet vems namn som står på den och kan återkalla den.

Notarisering är den andra kontrollen. Apples utvecklardokumentation om att notarisera macOS-programvara före distribution beskriver det som en automatiserad skanning av Developer ID-signerad programvara efter känt fientligt innehåll och kodsigneringsproblem, varefter Apple utfärdar en biljett som Gatekeeper kan läsa. Apples supportsida är noga med formuleringen: notarisering betyder att «Apple har kontrollerat den efter sabotageprogram och inget upptäcktes». Det är en skanning mot vad Apple redan känner till, inte en granskning av vad appen gör, och Apple kan återkalla en notarisering senare om företaget lär sig något nytt.

Karantänflaggan

Mekanismen som knyter dessa kontroller till en specifik nedladdning är ett utökat attribut på filen, com.apple.quarantine, som Safari och de flesta andra webbläsare och meddelandeappar sätter på allt de sparar. När du först öppnar en fil som bär det attributet utför Gatekeeper sina kontroller och ber om ditt godkännande. Apples Gatekeeper-sida beskriver standardinställningen som att kontrollera all programvara efter känt skadligt innehåll första gången den öppnas. Du kan se attributet själv med Terminal-kommandot xattr -l på en nedladdad fil.

Om en app inte är signerad eller inte notariserad vägrar macOS att öppna den och erbjuder en väg att åsidosätta. Apples supportsida Öppna en Mac-app från en okänd utvecklare förklarar stegen och lägger sedan till en varning värd att återge i sak: att åsidosätta dessa inställningar är det vanligaste sättet en Mac blir infekterad på, och Apple rekommenderar att hitta en annan app i stället, även när utvecklaren verkar etablerad. Den praktiska regeln följer direkt. Ett åsidosättande bör vara en sällsynt, avsiktlig handling för programvara du har ett specifikt skäl att lita på, aldrig en reflex.

Behörigheter: vad en app får röra

Den tredje frågan är omfattning. Sedan macOS 10.15, förklarar Apples Platform Security Guide-sida om att styra appars åtkomst till filer, måste appar fråga innan de läser Skrivbord, Dokument, Hämtade filer, iCloud Drive eller nätverksvolymer, och åtkomst till kameran, mikrofonen, skärminspelning, tangenttrycksövervakning och Fullständig diskåtkomst beviljas bara genom uttryckliga frågor eller en manuell ändring i Systeminställningar, Integritet och säkerhet. Systemet bakom dessa frågor kallas TCC (Transparency, Consent and Control), och dess princip, med Apples ord, är att användare ska ha full transparens, samtycke och kontroll över vad appar gör med deras data.

Behörigheter är en förtroendesignal i sig. En urklippshanterare som ber om Hjälpmedel-åtkomst har ett skäl. En bakgrundsbildsapp som ber om Fullständig diskåtkomst och Skärminspelning har det inte. Missmatchen mellan vad en app är till för och vad den ber om är ofta synlig innan appen har gjort något alls, och det kostar ingenting att avböja och se om appen fortfarande fungerar.

Nätverksbeteende: frågan de andra kontrollerna inte kan besvara

Signering, notarisering och behörigheter utvärderas alla före eller i ögonblicket för en begäran. Ingen av dem observerar appen över tid, och ingen av dem tittar på den enda aktivitet som förvandlar ett integritetsproblem till ett säkerhetsproblem: att skicka data bort från Mac-datorn. En app kan vara signerad av en riktig utvecklare, notariserad av Apple, beviljad bara de behörigheter den rimligen behöver, och ändå ladda upp dina kontakter till en analysmäklare, fråga en spårningsslutpunkt med några minuters mellanrum, eller, efter att en rutinuppdatering ersatt dess kod, börja prata med en server den aldrig kontaktat förut.

Att läsa nätverksbeteende som en förtroendesignal betyder att ställa några konkreta frågor om varje app. Ansluter den över huvud taget, och i så fall, är det väntat för det den gör? Vilka värdar pratar den med, och är de utvecklarens egna, en igenkännbar tjänst, eller en lista över annons- och analysdomäner? Använder den krypterade anslutningar, eller lämnar något över ren HTTP? Ändras dess beteende efter en uppdatering? Och ansluter den enligt ett schema när du inte använder den? Inget av detta kräver expertis; det kräver att man ser anslutningarna, vilket macOS inte visar dig som standard.

Det är vad FireAI är till för. Dess karta i realtid visar varje anslutning varje app gör, med destinationen, landet och nätverket bakom den, och dess Private AI-granskning, en modell på enheten, bedömer varje ny anslutning från en okänd app utifrån destinationens rykte, om binären har setts förut, port och protokoll, och om länken är krypterad, och förklarar sedan sitt skäl i klarspråk. Dess skydd för okrypterade data hindrar kortnummer, lösenord och API-nycklar från att lämna över ren HTTP oavsett vilken app som skickar dem. Varje AI-beslut blir en synlig regel du kan ångra, och regler kan skrivas på vanlig engelska eller franska («block Microsoft Teams») eller exporteras som en textfil.

Blockera det som är osignerat, och följa signaturen

Två designval i FireAI kommer direkt från Apples modell ovan. För det första blockerar dess striktare säkerhetslägen, Paranoid och Under attack, osignerade appar från att ansluta över huvud taget, tillsammans med telemetri och spårare, vilket förvandlar Apples «är du säker?»-dialog till en standard på nätverksnivå: en osignerad binär kan köras om du insisterade, men den kan inte ringa någon. För det andra följer FireAI:s per-app-regler appens kodsignatur snarare än dess namn eller sökväg. En bedragare vid namn «Slack.app» i mappen Hämtade filer ärver inte regeln du skrev för den riktiga Slack, eftersom signaturen inte stämmer; och när den riktiga appen uppdateras följer regeln med, eftersom den gör det. Det är samma identitet Apple använder för Gatekeeper, tillämpad på nätverket.

Vad detta inte gör

FireAI skannar inte en apps filer, inspekterar inte dess kod eller minne, och är inte ett antivirus; den kan inte tala om att en nedladdning är fientlig innan du kör den. Om du har tillåtit en app ärver trafik som gömmer sig inuti den appen dess behörighet. Krypterad trafik till en välrenommerad destination bedöms efter destination och mönster, inte innehåll. Och ingen brandvägg ersätter de tre första kontrollerna: det billigaste, mest pålitliga förtroendebeslutet på en Mac är fortfarande att föredra App Store eller en Developer ID-signerad, notariserad nedladdning, att vägra åsidosättningsdialogen, och att avböja behörigheter en app inte har något synligt skäl att behöva.

Sammantaget ger de fyra frågorna en fungerande definition av en pålitlig Mac-app: signerad av en känd utvecklare, notariserad av Apple, ber bara om det den rimligen behöver, och pratar bara med servrar som är begripliga för det den gör. Apple låter dig kontrollera de tre första vid installationen. Den fjärde kan du bara se genom att observera, vilket är varför det är den som är värd att lägga till.

Var FireAI och HisnLabs kommer in

Apple answers the first three trust questions at install time; FireAI exists for the fourth, showing what each app actually does on the network and keying every rule to the same code signature Gatekeeper already relies on.

FireAI är HisnLabs eget verktyg: en AI-brandvägg som körs direkt på din Mac. Den visar varje anslutning dina appar gör, på klarspråk, och låter dig avgöra vad som lämnar din Mac — AI:n körs lokalt, så din trafik skickas aldrig till oss eller någon annan. HisnLabs säkerhetsforskningsteam är de som håller de bedömningarna tillförlitliga: de katalogiserar vilka domäner som är vanlig telemetri och vilka som är en riktig tjänst, spårar land och nätverk bakom en anslutning och tränar den lokala modellen (Autopilot-funktionen) på verkliga trafikmönster — utan att något av det lämnar din Mac.

Du kan läsa om de tekniska besluten bakom, eller prova FireAI i 17 dagar, på FireAI, från HisnLabs.

Källor