Forskning om ämnet: vilket operativsystem är säkrare? Pålitliga och säkra operativsystem? Den säkraste operationssalen

När stängdes din TV plötsligt av senast eller krävde att du omedelbart laddade ner någon form av programuppdatering från webben som åtgärdar ett kritiskt fel? I slutändan, om du har en inte riktigt gammal TV, så är det i själva verket samma dator - med en central processor, en stor bildskärm, någon form av analog elektronik för avkodning av radiosignaler, ett par speciella in-/utgångar enheter (fjärrkontroll, inbyggd diskenhet för kassetter eller DVD-skivor) och med programvara, föreskrivs i random access minne. Denna retoriska fråga för oss tillbaka till en otäck fråga som datorindustrin inte gillar att prata om. Varför är TV-apparater, DVD-spelare, MP3-spelare, mobiltelefoner och andra elektroniska enheter med programvara ganska pålitliga och väl skyddade, men datorer är det inte? Naturligtvis finns det många "förklaringar" till detta: datorer är flexibla system, användare kan byta mjukvara, informationsteknologibranschen är fortfarande underutvecklad osv. Men eftersom vi lever i en tid då de allra flesta datoranvändare är lite insatta i tekniska frågor, verkar sådana "förklaringar" inte övertygande för dem.

Vad förväntar sig konsumenten av en dator? Samma som från TV:n. Du köper den, kopplar in den och den fungerar utmärkt under de kommande tio åren. IT-proffs bör ta hänsyn till dessa förväntningar och göra datorer lika pålitliga och säkra som TV-apparater.

Den svagaste punkten när det gäller tillförlitlighet och skydd är fortfarande operativsystemet. Fastän applikationsprogram innehåller många defekter, om operativsystemet var felfritt, skulle felaktigheten i applikationsprogram inte få så allvarliga konsekvenser som det gör nu, så vi kommer att fokusera på operativsystem i den här artikeln.

Men innan du går in på detaljerna, några ord om förhållandet mellan tillförlitlighet och säkerhet. Problemen som uppstår inom vart och ett av dessa områden har ofta en gemensam rot: programvarubuggar. Ett buffertspillfel kan krascha systemet (tillförlitlighetsproblem), men det tillåter också ett skickligt utformat virus att komma in i datorn (säkerhetsproblem). Även om vi i den här artikeln i första hand kommer att prata om tillförlitlighet, bör man komma ihåg att ökad tillförlitlighet kan leda till ökat skydd.

Varför är system opålitliga?

Moderna operativsystem har två funktioner som gör att de tappar både tillförlitlighet och säkerhet. För det första är dessa operativsystem enorma i storlek, och för det andra har de mycket dålig felisolering. Linux-kärnan har över 2,5 miljoner rader kod, medan Windows XP-kärnan är minst dubbelt så stor.

En studie av programvarans tillförlitlighet fann att program innehåller mellan 6 och 16 buggar för varje 1 000 rader med körbar kod. Enligt en annan studie varierar felfrekvensen i program från 2 till 75 för varje 1000 rader med körbar kod, beroende på modulens storlek. Även om man antar den mest konservativa uppskattningen (6 buggar per 1000 rader kod), verkar Linuxkärnan innehålla omkring 15 000 buggar; Windows XP - minst dubbelt så mycket.

Vad värre är, vanligtvis består cirka 70 % av operativsystemet av enhetsdrivrutiner, som har tre till sju gånger så stor felfrekvens som normal kod, så ovanstående uppskattning av antalet fel i operativsystemet är troligen en grov underskattning. Det är tydligt att det helt enkelt är omöjligt att hitta och rätta till alla dessa fel. Dessutom, när man korrigerar vissa fel, introduceras ofta nya.

På grund av den enorma storleken på moderna operativsystem kan ingen ensam känna till dem ordentligt. Det är faktiskt extremt svårt att skapa ett bra system om ingen riktigt föreställer sig det helt.

Detta faktum för oss till det andra problemet: felisolering. Ingen i världen vet allt om hur ett hangarfartyg fungerar, men undersystemen i ett hangarfartyg är väl isolerade från varandra, och dess igensatta toalett kommer inte att påverka driften av på något sätt.

Operativsystem har inte denna typ av isolering mellan komponenter. Ett modernt operativsystem innehåller hundratals eller till och med tusentals procedurer kombinerade med varandra till ett enda binärt program som körs i kärnläge. Var och en av de miljontals raderna med kärnkod kan skriva över de underliggande datastrukturerna som använder komponenter som inte är relaterade till denna kod, vilket resulterar i en systemkrasch, vars orsaker är extremt svåra att fastställa. Dessutom, när ett virus väl har infekterat en kärnprocedur, finns det inget sätt att förhindra att det snabbt sprids till andra procedurer och infekterar hela maskinen.

Låt oss gå tillbaka till skeppsanalogin. Skrovet på ett modernt fartyg är uppdelat i många fack. Om en läcka uppstår i ett av facken är det bara det som är översvämmat och inte hela lastrummet. Moderna operativsystem är som fartyg före skott: varje intrång kan sänka ett fartyg.

Lyckligtvis är situationen inte så hopplös. Utvecklare strävar efter att skapa mer tillförlitliga operativsystem. Det finns fyra olika tillvägagångssätt som används för att göra operativsystemen mer tillförlitliga och säkra i framtiden. Vi kommer att presentera dem i vår artikel i stigande ordning, från mindre radikala till mer radikala.

Härdade operativsystem

Det mest konservativa tillvägagångssättet, Nooks, var utformat för att öka tillförlitligheten hos befintliga operativsystem som Windows och Linux. Nooks-tekniken stöder en monolitisk kärnstruktur där hundratals eller tusentals procedurer är sammankopplade i ett enda adressutrymme och körs i kärnläge. Detta tillvägagångssätt fokuserar på att göra drivrutiner (grundorsaken till alla problem) mindre farliga.

I synnerhet, som visas i fig. 1, Nooks skyddar kärnan från felaktiga enhetsdrivrutiner genom att linda in varje drivrutin i ett skyddat mjukvarulager som bildar en lätt skyddsdomän. Denna teknik kallas ibland för "sandboxing". Omslaget runt varje förare håller noggrant reda på alla interaktioner mellan föraren och kärnan. Dessutom kan denna teknik användas för andra kärntillägg som till exempel startbara operativsystem, men för enkelhetens skull kommer vi bara att prata om det i relation till drivrutiner.

Målen för Nooks-projektet är följande:

  • skydda kärnor från buggar i drivrutiner;
  • tillhandahålla automatisk återställning i händelse av fel i föraren;
  • gör allt detta med minimala ändringar av befintliga drivrutiner och kärnan.

Att skydda kärnan från felaktiga drivrutiner är inte huvudmålet. Nooks-tekniken implementerades först på Linux, men dessa idéer gäller lika för andra äldre kärnor.

Isolering

Huvudverktyget för att förhindra att kärndatastrukturer förstörs av felaktiga drivrutiner är sidkartan för det virtuella minnet. När en drivrutin körs placeras alla sidor utanför den i skrivskyddat läge, vilket skapar en separat lättviktig säkerhetsdomän för varje drivrutin. Så föraren kan läsa kärnans datastrukturer den behöver, men varje försök att direkt modifiera kärnans datastrukturer kommer att orsaka ett undantag. CPU, som fångas upp av Nooks isoleringschef. Åtkomst till förarens privata minne, där stackar, heaps, privata datastrukturer och kopior av kärnobjekt lagras, är läsbar och skrivbar.

Medling

Varje drivrutinsklass exporterar en uppsättning funktioner som kärnan kan anropa. Till exempel kan ljuddrivrutiner ge ett samtal att skriva ett block med ljudprov till Ljudkort, en annan för volymkontroll och så vidare. När drivrutinen är laddad, fylls en rad pekare till drivrutinens funktioner i, så att kärnan kan hitta någon av dem. Dessutom importerar drivrutinen en uppsättning funktioner som tillhandahålls av kärnan, till exempel för att reservera en databuffert.

Nooks tillhandahåller omslag för både exporterade och importerade funktioner. Nu, när kärnan anropar en drivrutinsfunktion, eller drivrutinen anropar en kärnfunktion, dirigeras anropet faktiskt till omslaget, som validerar parametrarna och hanterar anropet. Även om skalstubbarna (visas som linjer i figur 1 som pekar både inuti och utanför drivrutinen) genereras automatiskt baserat på funktionsprototyper, måste utvecklarna skriva skalets kropp för hand. Totalt skrev Nooks-gruppen 455 omslag: 329 för funktioner som kärnan exporterar och 126 för funktioner som drivrutiner exporterar.

När en drivrutin försöker modifiera ett kärnobjekt, kopierar dess omslag objektet till förarens skyddsdomän, det vill säga till dess privata läs-/skrivsidor. Drivrutinen ändrar sedan kopian. Om begäran lyckades kopierar isoleringshanteraren de modifierade objekten tillbaka till kärnan. En förarkrasch eller ett fel under ett samtal lämnar alltså alltid kärnobjekten i rätt tillstånd. Kontrolloperationer för importerade objekt är specifika för varje objekt, vilket är anledningen till att Nooks-teamet var tvungen att manuellt skriva kod för att kontrollera de 43 objektklasserna som använder Linux-drivrutiner.

Återhämtning

I händelse av ett användarlägesfel startar återställningsagenten och konsulterar konfigurationsdatabasen för att ta reda på vad som ska göras. I många fall räcker det att släppa alla upptagna resurser och starta om drivrutinen, eftersom de vanligaste algoritmfelen vanligtvis hittas under testning, och synkroniseringsfel och specifika defekter förblir oftast i koden.

Den här tekniken låter dig återställa systemet, men de program som kördes vid tidpunkten för felet kan vara i ett felaktigt tillstånd. Som ett resultat av arbetet lade Nooks-gruppen till konceptet med dubbletter av drivrutiner (skuggdrivrutin) så att applikationer kan köras korrekt även efter en förarkrasch.

Kort sagt, under normal drift loggar backup-drivrutinen interaktioner mellan varje drivrutin och kärnan, om den interaktionen kan behövas för återställning. Efter att drivrutinen har startat om överför den dubblerade drivrutinen all data från loggen till den omstartade drivrutinen, till exempel genom att upprepa I/O-kontrollsystemets (IOCTL) anrop för att ställa in parametrar som ljudvolym. Kärnan vet ingenting om processen att återställa drivrutinen till det tillstånd som den gamla drivrutinen var i. När denna process är klar börjar föraren behandla nya förfrågningar.

Restriktioner

Även om Nooks enligt experiment kan upptäcka 99 % av dödliga förarfel och 55 % av icke-dödliga, är det långt ifrån perfekt. Till exempel kan drivrutiner utföra privilegierade kommandon som de inte borde; de kan skriva data till felaktiga I/O-portar och utföra oändliga loopar. Dessutom var Nooks-gruppen tvungen att skriva ett stort antal skal för hand, och dessa skal kan innehålla fel. Slutligen, med detta tillvägagångssätt är det inte möjligt att förhindra förare från att skriva data var som helst i minnet. Ändå är detta ett potentiellt mycket användbart steg mot att förbättra tillförlitligheten hos äldre kärnor.

Paravirtuella maskiner

Det andra tillvägagångssättet är baserat på konceptet med en virtuell maskin. Detta koncept utvecklades i slutet av 60-talet. Tanken är att använda en speciell demon som kallas en virtuell maskinmonitor som fungerar direkt med hårdvaran snarare än operativsystemet. Den virtuella maskinen skapar flera instanser av den verkliga maskinen. Varje instans kan stödja vilket program som helst som kan köras på den hårdvaran.

Denna teknik används ofta för att låta två eller flera operativsystem, säg Linux och Windows, köras på samma maskin samtidigt, så att varje operativsystem tror att det äger hela maskinen. Användningen av virtuella maskiner har ett välförtjänt rykte för att ge god felisolering. När allt kommer omkring, om ingen av de virtuella maskinerna är medveten om existensen av de andra, finns det inget sätt att problem som uppstår på en maskin kan spridas till andra.

Ett försök gjordes att anpassa detta koncept för att organisera skydd i ett operativsystem, och inte mellan olika operativsystem. Dessutom, eftersom Pentium inte fullt ut stöder virtualisering, var vi tvungna att avvika från principen att köra operativsystemet i en virtuell maskin utan några ändringar i det. Denna koncession tillåter ändringar i operativsystemet för att säkerställa att det inte kan göra något som inte kan virtualiseras. Till denna teknik skilja från sann virtualisering, kallas det paravirtualisering.

I synnerhet på 90-talet skapade en grupp utvecklare från universitetet i Karlsruhe L4-mikrokärnan. De kunde köra en något modifierad version av Linux (L4Linux) på L4 i vad som kan kallas en virtuell maskinvy. Utvecklare kom senare på att istället för att köra bara en kopia av Linux på L4, kunde de köra flera kopior. Som visas i ris. 2, ledde denna tanke till idén att använda en av de virtuella Linux-datorerna för att köra applikationsprogram och en annan eller flera för att köra enhetsdrivrutiner.

Om drivrutiner körs i en eller flera virtuella datorer som är isolerade från den virtuella huvudmaskinen där resten av operativsystemet och applikationsprogrammen körs, är det bara dess virtuella maskin, inte den huvudsakliga, som misslyckas i händelse av ett drivrutinsfel. En ytterligare fördel med detta tillvägagångssätt är att drivrutiner inte behöver ändras eftersom de ser den normala Linux-kärnmiljön. Naturligtvis kommer själva Linux-kärnan att behöva ändras för att stödja paravirtualisering, men detta är en engångsändring. Det finns inte heller något behov av att upprepa denna procedur för varje enhetsdrivrutin.

Eftersom drivrutiner körs på maskinvara i användarläge är huvudfrågan hur de kommer att utföra I/O och hantera avbrott. Fysisk I/O stöds genom att lägga till cirka 3 000 rader kod till Linux-kärnan som drivrutinerna kör på, vilket gör att drivrutinerna kan använda L4-tjänster för I/O istället för att göra det själva. Ytterligare 5 000 rader kod stöder interaktioner mellan tre isolerade drivrutiner (disk, nätverk och PCI buss) och den virtuella maskinen där applikationerna körs.

I princip bör detta tillvägagångssätt ge högre tillförlitlighet än ett enskilt operativsystem, för om en virtuell maskin som innehåller en eller flera drivrutiner misslyckas, kan den virtuella maskinen startas om - och drivrutinerna kommer att återgå till sitt ursprungliga tillstånd. Till skillnad från Nooks gör detta tillvägagångssätt inga försök att återställa förarna till deras tidigare tillstånd (tillståndet de var i innan kraschen inträffade). På så sätt, om ljuddrivrutinen kraschar, kommer den att återställas till standardljudnivån, inte till vad den var innan kraschen inträffade.

Prestandaparametrar visar att omkostnaden vid användning av paravirtualiserade maskiner är cirka 3-8%.

Multiserver operativsystem

De två första tillvägagångssätten innebär att modifiera äldre system. De nästa två är dedikerade till framtida system.

Ett av dessa tillvägagångssätt går direkt till problemets kärna: att köra hela operativsystemet som ett gigantiskt binärt program i kärnläge. I stället föreslås i det här fallet att flera små mikrokärnor körs i kärnläge, medan resten av operativsystemet är en samling helt isolerade server- och drivrutinsprocesser som körs i användarläge. Den här idén föreslogs för 20 år sedan, men då implementerades den aldrig helt på grund av den lägre prestandan hos ett multi-server OS jämfört med en monolitisk kärna. På 80-talet ansågs prestanda vara den viktigaste indikatorn, och tillförlitlighet och skydd var inte ens tänkt på. Naturligtvis tänkte flygingenjörer vid ett tillfälle inte på bränsleförbrukning eller på att skapa cockpitdörrar som kunde stå emot en väpnad attack. Tiderna förändras, och människors uppfattningar om vad som verkligen är viktigt förändras också.

Multiserver arkitektur

För att bättre förstå vad idén med ett multiserveroperativsystem är, låt oss titta på ett modernt exempel. Som visas i ris. 3, i Minix 3, hanterar mikrokärnan avbrott, tillhandahåller de underliggande mekanismerna för att hantera processer, hanterar interaktioner mellan processer och utför processschemaläggning. Den tillhandahåller också en liten uppsättning kärnanrop till auktoriserade drivrutiner och servrar, som att läsa en utvald del av en viss användares adressutrymme eller skriva till auktoriserade I/O-portar. Klockdrivrutinen använder samma adressutrymme som mikrokärnan, men det är schemalagt som en separat process. Ingen annan drivrutin för kärnläge fungerar.

Ovanför mikrokärnan finns enhetsdrivrutinslagret. Varje I/O-enhet har sin egen drivrutin, som fungerar som en separat process i sitt eget privata adressutrymme, skyddad av hårdvarumodul minneshantering (MMU). Detta lager inkluderar drivrutinsprocesser för disk, terminal (tangentbord och display), Ethernet, skrivare, ljud och så vidare. Dessa drivrutiner körs i användarläge och kan inte utföra privilegierade kommandon eller läs-/skrivoperationer på datorns I/O-portar. För att få dessa tjänster måste drivrutiner anropa kärnan. Även om den här arkitekturen lägger till overhead, förbättrar den tillförlitligheten avsevärt.

Ovanför enhetsdrivrutinslagret finns serverlagret. Filservern är ett program (4,5 000 rader med körbar kod) som accepterar förfrågningar från användarprocesser för Posix-systemanrop angående filer som läs, skriv, lseek och stat och exekverar dem. På denna nivå finns också processhanteraren, som hanterar processer och minne och exekverar Posix-anrop och andra systemanrop som fork, exec och brk.

En något ovanlig funktion är reinkarnationsservern, som fungerar som överordnad process för alla andra servrar och alla drivrutiner. Om en drivrutin eller server kraschar, avslutas eller inte svarar på intermittenta ping, dödar reinkarnationsservern dessa processer, om det behövs, och startar sedan om dem från en kopia på disk eller från RAM. Drivrutiner kan startas om på detta sätt, men för närvarande kan endast de servrar vars interna tillstånd är begränsat startas om.

Andra servrar inkluderar nätverksserver, som innehåller: hela TCP/IP-stacken; ett datalager, en enkel namnserver som andra servrar använder; informationsserver Den att använda vid felsökning. Slutligen ovanför serverlagret finns användarprocesserna. Den enda skillnaden mellan detta och andra Unix-system är att biblioteksrutinerna för läsning, skrivning och andra systemanrop görs genom att skicka meddelanden till servrar. Förutom denna skillnad (dold i systembiblioteken), är dessa normala användarprocesser som kan använda POSIX API.

Interaktioner mellan processer

Eftersom det är mekanismen för kommunikation mellan processer (Interprocess Communication, IPC) som gör att alla processer kan samverka, är det avgörande i ett operativsystem med flera servrar. Men eftersom alla servrar och drivrutiner i Minix 3 körs som fysiskt isolerade processer kan de inte direkt anropa varandras funktioner eller dela datastrukturer. Minix 3 stöder istället IPC genom att skicka meddelanden med fast längd enligt en så kallad rendezvous-princip (när både avsändare och mottagare är redo att utbyta kopierar systemet meddelandet direkt från avsändaren till mottagaren). Dessutom finns det en mekanism för asynkrona händelsemeddelanden. Händelser som inte kan implementeras markeras som väntande i processtabellen.

Minix 3 kombinerar elegant avbrott med meddelandeförmedling. Avbrottshanterare använder en aviseringsmekanism för att signalera slutförandet av I/O. Denna mekanism gör att hanteraren kan ställa in en bit i bitmappen för "uppskjutet avbrott" och sedan fortsätta utan att blockera. När drivrutinen är redo att ta emot ett avbrott konverterar kärnan det till ett normalt meddelande.

Tillförlitlighetsegenskaper

Det finns flera anledningar till den höga tillförlitligheten hos Minix 3. För det första kör kärnan bara kod som inte är större än 4k rader, så baserat på en blygsam uppskattning av 6 buggar per 1000 rader är det totala antalet buggar i kärnan troligen runt 24. Jämför detta med 15k buggar i Linux. och många mer om Windows. Eftersom alla drivrutiner, förutom klockan, är användarprocesser, kommer ingen ovidkommande kod någonsin att köras i kärnläge. Dessutom gör den lilla storleken på kärnan det möjligt att kontrollera dess korrekthet mer effektivt, antingen manuellt eller med formella metoder.

IPC-arkitekturen i Minix 3 kräver ingen kö- eller meddelandebuffring, vilket eliminerar behovet av bufferthantering i kärnan. Dessutom, eftersom IPC är en kraftfull konstruktion, är IPC-kapaciteten för varje server och drivrutin kraftigt begränsade. För varje process definieras de IPC-primitiv som används, de tillgängliga destinationerna och användarhändelsemeddelanden strikt. Användarprocesser kan till exempel bara kommunicera på mötesbasis eller skicka meddelanden endast till Posix-servrar.

Dessutom är alla kärndatastrukturer statiska. Alla dessa funktioner förenklar koden avsevärt och blir av med kärnfel associerade med buffertspill, minnesläckor, otidiga avbrott, opålitlig kärnkod och så vidare. Att sätta det mesta av operativsystemet i användarläge eliminerar naturligtvis inte de oundvikliga buggarna i drivrutiner och servrar, men det gör dem mycket mindre farliga. På grund av en bugg kan kärnan förstöra kritiska kärnstrukturer, skriva skräp till disk och så vidare. En bugg i de flesta drivrutiner och servrar kan inte orsaka betydande skada, eftersom dessa processer är tydligt åtskilda och de operationer de kan utföra är strikt begränsade.

Drivrutiner och servrar i användarläge kan inte köras med superanvändarbehörigheter. De kan inte komma åt minnesområden utanför sina egna adressutrymmen, förutom i kärnanrop (som valideras av kärnan). Dessutom styr bitmappar och intervall inom kärnprocesstabellen uppsättningen av tillåtna kärnanrop, IPC-kapaciteter och tillåtna I/O-portar per process. Till exempel kan kärnan hindra skrivardrivrutinen från att skriva information till användaradressutrymmen, komma åt disk I/O-portar eller skicka meddelanden till ljuddrivrutinen. I traditionella monolitiska system kan alla förare göra vad som helst.

Ett annat skäl till tillförlitlighet är användningen av separata instruktions- och datautrymmen. Om en bugg eller virus orsakar ett drivrutin- eller serverbuffertspill och skriver främmande kod till datautrymmet, kan den infekterade koden inte exekveras genom att överföra kontroll till den eller genom att använda en procedur som pekar på den, eftersom kärnan inte kommer att exekvera koden såvida det inte är i processens skrivskyddade kommandoutrymme.

Bland andra specifika egenskaper som ger högre tillförlitlighet är den självläkande egenskapen den viktigaste. Om en drivrutin försöker lagra data på en ogiltig pekare, går in i en oändlig slinga eller försöker utföra andra felaktiga operationer, kommer reinkarnationsservern automatiskt att ersätta den drivrutinen, och vanligtvis kommer andra pågående processer inte att påverkas.

Även om omstart av en logiskt felaktig drivrutin inte åtgärdar felet, i praktiken orsakar felaktig timing och liknande fel många problem, och omstart av drivrutinen för ofta tillbaka systemet till ett korrekt tillstånd.

Prestandaalternativ

I decennier har utvecklare kritiserat multi-server arkitekturer baserade på mikrokärnor för deras lägre prestanda än monolitiska arkitekturer. Men olika projekt bekräftar att en modulär arkitektur faktiskt kan ge jämförbar prestanda. Trots att Minix 3 inte har optimerats för prestanda är systemet ganska snabbt. Prestandaförlusten som uppstår på grund av drivrutiner i användarläge jämfört med drivrutiner i kärnläge är mindre än 10 %, och systemet kan byggas, inklusive kärnan, vanliga drivrutiner och alla servrar (112 kompilationer och 11 länkar) på mindre än 6 sekunder på en maskin med en Athlon/2,2 GHz-processor.

Det faktum att multiserverarkitekturer kan stödja en ganska robust Unix-liknande miljö med mycket lite prestandakostnader gör detta tillvägagångssätt praktiskt taget acceptabelt. Minix 3 för Pentium kan laddas ner gratis under Berkeley-licensen från webbplatsen www.minix3.org. Versioner för andra arkitekturer och inbyggda system utvecklas för närvarande.

Språkbaserat skydd

Det mest radikala tillvägagångssättet, vilket är ganska oväntat, föreslogs av Microsoft Research, och övergav operativsystemet som ett enda program som körs i kärnläge och en viss uppsättning användarprocesser som körs i användarläge. Istället tillhandahåller det ett system skrivet på helt nya typsäkra språk som är fria från alla pekarproblem och andra buggar associerade med C och C++. Liksom de två föregående tillvägagångssätten föreslogs denna metod för flera decennier sedan och implementerades i Burroughs B5000-dator. Då fanns bara Algol-språket, och skyddet upprätthölls inte med hjälp av MMU (som inte fanns i maskinen alls), utan på grund av att Algol-kompilatorn helt enkelt inte genererade "farlig" kod. Tillvägagångssättet som föreslås av Microsoft Research anpassar denna idé till förhållandena under 2000-talet.

allmän beskrivning

Detta system, som kallas Singularity, är nästan helt skrivet i Sing#, ett nytt typsäkert språk. Detta språk är baserat på C#, men kompletterat med meddelandeöverförande primitiver, vars semantik bestäms av formella kontrakt som beskrivs med hjälp av språket. Eftersom språket strikt begränsar system- och användarprocesser kan alla processer köras tillsammans i ett enda virtuellt adressutrymme. Detta ökar både säkerheten (eftersom kompilatorn inte tillåter en process att ändra en annan processs data) och effektiviteten (eftersom den eliminerar kärnfällor och kontextväxlar.

Dessutom är Singularity-arkitekturen flexibel eftersom varje process är en sluten enhet och därför kan den ha sin egen kod, datastrukturer, minnesstruktur, runtime-system, bibliotek och sopsamlare. MMU stöds, men det allokerar bara sidor, inte skapar en separat säker domän för varje process.

Kärnprincipen för Singularity-arkitekturen är att inte tillåta dynamiska processförlängningar. Den här arkitekturen stöder inte heller laddningsbara moduler som enhetsdrivrutiner och plugin-program för webbläsare, eftersom de kan introducera främmande och overifierad kod som kan skada den överordnade processen. Istället bör sådana tillägg köras som separata processer, helt isolerade och interagerande med standardmekanism IPC.

mikrokärna

Operativsystemet Singularity består av en mikrokärnprocess och en uppsättning användarprocesser som vanligtvis körs i ett delat virtuellt adressutrymme. Mikrokärnan kontrollerar åtkomst till hårdvara, reserverar och frigör minne, skapar, stänger och schemalägger kedjor, upprätthåller kedjesynkronisering med semaforer, upprätthåller synkronisering mellan processer som använder pipes och styr I/O. Varje enhetsdrivrutin körs som en separat process.

Även om majoriteten av mikrokärnan är skriven i Sing#, är de enskilda komponenterna skrivna i C#, C++ eller assembler och måste vara tillförlitliga, eftersom det inte finns något sätt att verifiera deras korrekthet. Pålitlig kod inkluderar hårdvaruabstraktionslagret och sopsamlaren. Hårdvaruabstraktionslagret döljer lågnivåhårdvaran från systemet genom att kapsla in koncept som I/O-portar, avbrottsbegäran, direkta minnesåtkomstkanaler och timers för att tillhandahålla interoperabla abstraktioner till resten av operativsystemet.

Kommunikation mellan processer

Användarprocesser erhåller systemtjänster genom att skicka starkt skrivna meddelanden till mikrokärnan över punkt-till-punkt dubbelriktade kanaler. Faktum är att dessa kanaler används för all kommunikation mellan processer. Till skillnad från andra meddelandesystem som har ett bibliotek med sändnings- och mottagningsfunktioner, stöder Sing# fullt ut pipes på språknivå, inklusive formell typning och protokollspecifikationer. För att förtydliga detta, låt oss titta på kanalspecifikationen.

kontrakt C1 (

I meddelandet Request(int x) kräver x > 0;

Ut meddelande Svara(int y);

Ut meddelande Error();

begäran? -> väntande;

Tillstånd väntande: en (

Svar! -> starta;

fel! -> Stoppad;

State Stoppad: ;

Detta kontrakt anger att kanalen accepterar tre meddelanden: Begäran, Svara och Fel. Den första har ett positivt heltal som parameter, den andra har ett heltal och den tredje har inga parametrar. När en kanal används för att komma åt en server skickas begärandemeddelanden från klienten till servern och de andra två meddelandena skickas åt andra hållet. Tillståndsmaskinen beskriver protokollet för kanalen.

I starttillståndet skickar klienten ett förfråganmeddelande, vilket placerar kanalen i väntande tillstånd. Servern KAN svara med antingen ett svarsmeddelande eller ett felmeddelande. Svarsmeddelandet sätter kanalen tillbaka till startläget, där interaktionen kan fortsätta. Felmeddelande ställer in kanalen till stoppat läge, vilket avslutar interaktionen på kanalen.

högen

Om all data, såsom block av filer som läses från disk, måste överföras, kommer systemet att vara mycket långsamt, så ett undantag görs från grundregeln att varje processs data är helt privat och intern i den processen. Singularity stöder en delad hög av objekt, men varje instans av varje objekt på högen tillhör en enda process. Äganderätten till ett objekt kan dock överföras via en kanal.

Som ett exempel på hur högen fungerar, överväg I/O. När en diskdrivrutin läser ett datablock placerar den det blocket på högen. Systemet skickar sedan ett handtag till det blocket till användaren som begär data, i enlighet med principen "en ägare", men tillåter att data överförs från disk till användaren utan att göra ytterligare kopior.

Filsystem

Singularity upprätthåller en enda hierarkisk namnrymd för alla tjänster. Rotnamnservern använder toppen av trädet, men andra namnservrar kan monteras på sina egna noder. Särskilt, filsystem, som bara är en process, är monterad på /fs, så till exempel /fs/users/linda/foo kan vara en användarfil. Filer implementeras som B-träd med blocknummer som nycklar. När en användarprocess begär en fil, instruerar filsystemet diskdrivrutinen att placera de begärda blocken på högen. Äganderätten övergår sedan enligt ovan.

Undersökning

Varje systemkomponent har metadata som beskriver dess beroenden, exporter, resurser och beteende. Denna metadata används för validering. Systemavbildningen består av mikrokärnan, de drivrutiner och applikationer som behövs för att köra systemet och deras metadata. Externa verifieringsmoduler (verifierare) kan utföra många kontroller av en systembild innan systemet använder den, särskilt för att säkerställa att drivrutiner inte kommer i konflikt med resurser. Verifieringen består av tre steg:

  • kompilatorn kontrollerar typsäkerhet, objektägande, rörprotokoll och så vidare;
  • kompilatorn genererar Microsoft Intermediate Language, en portabel JVM-liknande bytekod som kan kontrolleras av en verifierare;
  • MSIL kompileras till x86-kod för värddatorn, vilket kan lägga till körtidskontroller till koden (den nuvarande kompilatorn gör det dock inte).

För att uppnå högre tillförlitlighet kan du använda verktyg som låter dig upptäcka fel i själva verifierarna.

Vart och ett av de fyra olika försöken att förbättra operativsystemets tillförlitlighet syftar till att förhindra felaktiga förare enheter fick systemet att krascha.

I Nooks-metoden är varje drivrutin individuellt inpackad i programvara för att noggrant kontrollera dess interaktioner med resten av operativsystemet, men i detta tillvägagångssätt finns alla drivrutiner i kärnan. Vid implementeringen av den paravirtuella maskinens tillvägagångssätt fick denna idé ytterligare utveckling. I det här fallet flyttas förarna till en eller flera maskiner som är separata från huvudmaskinen, vilket ytterligare begränsar vad förarna kan göra. Båda dessa tillvägagångssätt är utformade för att öka tillförlitligheten hos befintliga (äldre) operativsystem.

De andra två tillvägagångssätten ersätter äldre operativsystem med mer tillförlitliga och säkra. Multiserver-metoden kör varje drivrutin och operativsystemkomponent i en separat användarprocess och låter dem kommunicera med hjälp av mikrokärnans IPC-mekanism. Slutligen använder Singularity, den mest radikala metoden, ett typsäkert språk, ett enda adressutrymme och formella kontrakt som strikt begränsar vad varje modul kan göra.

Tre av fyra forskningsprojekt – paravirtualisering baserad på L4, Minix 3 och Singularity – använder mikrokärnor. Det är ännu inte känt vilka av dessa tillvägagångssätt som kommer att bli utbredda i framtiden (om det inte är någon annan lösning). Det är dock intressant att notera att mikrokärnor, under en lång tid anses oacceptabla på grund av deras lägre prestanda jämfört med monolitiska kärnor, kan återgå till operativsystem igen på grund av deras potentiellt högre tillförlitlighet, vilket av många anses vara viktigare än prestanda. Historiens hjul har snurrat.

Andrew Tanenbaum ( [e-postskyddad]) - Professor i informatik vid Vrije Universiteit (Amsterdam, Holland). Jorrit Herder ( [e-postskyddad]) är en doktorand vid institutionen för datorsystem vid fakulteten för informatik vid Vrije Universiteit. Herber Bos ( [e-postskyddad]) - Docent vid institutionen för datorsystem vid fakulteten för informatik vid Vrije Universiteit.

Litteratur
  1. V. Basili, B. Perricone, Software Errors and Complexity: An Empirical Investigation, Comm. ACM, Jan. 1984.
  2. T. Ostrand, E. Weyuker, The Distribution of Faults in a Large Industrial Software System, Proc. Int?l Symp. Software Testing and Analysis, ACM Press, 2002.
  3. A. Chou et al., An Empirical Study of Operating System Errors, Proc. 18:e ACM Symp. Operativsystemprinciper, ACM Press, 2001.
  4. M. Swift, B. Bershad, H. Levy, Improving the Reliability of Commodity Operating Systems, ACM Trans. Computer Systems, vol. 23, 2005.
  5. M. Swift et al., Recovering Device Drivers, Proc. 6:e Symp. Operativsystemsdesign och implementering, ACM Press, 2003.
  6. R. Goldberg, Arkitektur för virtuella maskiner, Proc. Workshop Virtual Computer Systems, ACM Press, 1973.
  7. J. LeVasseur et al., Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines, Proc. 6:e Symp. Operativsystemsdesign och implementering, 2004.
  8. J. Liedtke, On Microkernel Construction, Proc. 15:e ACM Symp. Operativsystemprinciper, ACM Press, 1995.
  9. H. Hartig et al., The Performance of Microkernel-Based Systems, Proc. 16:e ACM Symp. Operativsystemprinciper, ACM Press, 1997.
  10. J.N. Herder et al., Modular System Programmering i MINIX 3, Usenix; www.usenix.org/publications/login/2006-04/openpdfs/herder.pdf.

Andrew Tanenbaum, Jorrit Herder, Herbert Bos, Kan vi göra operativsystem tillförlitliga och säkra?, IEEE Computer, maj 2006. IEEE Computer Society, 2006, Alla rättigheter förbehålls. Omtryckt med tillstånd.

Letar du efter den säkraste Linux-distributionen som kommer att hålla ditt operativsystem säkert och säkert?

Här är de 15 säkraste Linux-distributionerna för integritets- och säkerhetsrelaterade användare.

Okej, du kanske redan vet att operativsystemet är den huvudsakliga programvaran som låter dig interagera med din dators hårdvara och mjukvara. Den styr all hårdvara och kommunicerar med processorn och minnet.

Topp 15 säkraste Linux-distributioner

Antalet Linux-användare växer för varje dag. Deras egenhet är att de är mindre vanliga än andra operativsystem. Och ändå jobbar de på att bli mer tekniska under de kommande dagarna.

Här är en lista över de säkraste Linux-distributionerna som är "speciellt inriktade på Linux-säkerhet". Detta betyder att den här artikeln är skriven specifikt för att fokusera på Sharp Security, vilket är mer ett problem för Linux-användaren.

1. Cubes OS | Qubes Linux

Om du letar efter den säkraste Linux-distributionen för ditt skrivbord är Qubes överst här. Varför? Tja, Qubes är ett säkerhetsfokuserat Fedora-baserat operativsystem. stationära datorer. Detta OS kommer att skydda dig genom att isolera och virtualisera olika virtuella maskiner separat.

Anta att du laddade ner skadlig programvara utan att omedelbart förstå vilken typ av programvara det är? Eller så vet du inte om det är säkert eller inte. Oroa dig inte, det är här Qubes OS kommer in i bilden. Kuber isolerar dina andra personliga filer från skadlig programvara utan att kompromissa. Det är coolt, eller hur? Observera: Detta operativsystem är bäst lämpat för avancerade användare. Därför, om du är nybörjare, kommer det att vara svårt för dig att hantera detta system.

2. Tail Linux

Tails är en av de bästa och säkraste Linux-distributionerna efter Parrot Security OS. Tails släpptes första gången 2009. Det här operativsystemet är speciellt utformat för persondatorer. Om du letar efter ett operativsystem som skyddar dig när du surfar på Internet, är Tails det första valet.

Det är en live-CD och ett förinstallerat operativsystem med Tor-webbläsarpaketet som använder lökschemat. Eftersom alla utgående anslutningar går via Tor gör detta att du kan surfa anonymt på Internet, och vad du än gör lämnar det aldrig några spår.

Tails OS använder inte hårddiskutrymme, det använder bara det utrymme du behöver i ditt RAM-minne, men det raderas automatiskt när systemet stängs av. Den kan användas som live-DVD eller live-USB. Det kommer att vara bekvämare att starta från en flashenhet och inte från en DVD. Det finns dock några problem med detta operativsystem. Nyligen hävdar de flesta användare att Tails kräver 2 USB-minnen för att installera, vilket är tråkigt.

3. Parrot Security OS

Parrot Security OS är utvecklat av FrozenBox och släpptes 2013. Den här programvaran är en game changer när det kommer till säkerheten och integriteten för din dators operativsystem. Parrot Security OS är speciellt utformat för att testa en auktoriserad simulerad attack på ditt datorsystem som hjälper dig att bedöma ditt systems sårbarheter, oavsett om det är tillräckligt starkt eller inte.

Den levereras med ett fullt bärbart labb som håller ditt system säkert från alla oönskade sjukdomar när du surfar på nätet, surfar, spelar ett spel, etc. Återigen, om du är en rättsmedicinsk expert, då är det här operativsystemet det bästa...

4. Kali Linux

Kali Linux är en förinstallerad Debianbaserad Linux-distribution speciellt designad för penntestning och kriminaltekniska experter. Kali kommer med ett paket med verktyg som -Aircrack-ng, Ettercap, Foremost, Wireshark Kismet, Maltigo och många fler som hjälper dig på många sätt som att använda offrets nätverk eller applikation, upptäcka nätverket eller bestämma mål-IP-adressen. adress.

Kali inkluderar inte bara Armitage, ett grafiskt cyberattacksverktyg som låter dig äta och exploatera, få exploateringsrekommendationer och avancerade Metasploit Framework-räknare. Kali Linux anses vara en av de säkraste Linux-distributionerna för utvecklare.

Precis som Tails kan detta operativsystem också startas som en live-DVD eller USB-minne och är enklare att använda än andra tillgängliga operativsystem. Oavsett om du använder 32 eller 62 operativsystem kan Kali Linux användas på båda. Detta operativsystem kräver minst 512 MB RAM och 10 GB hårddiskutrymme.

5. Wanyx | Whonix Linux

Om du vill dölja din IP-adress är Whonix perfekt för dig. Whonix är ett Debianbaserat operativsystem fokuserat på anonymitet, integritet och säkerhet. Whonix ger säkerhet genom isolering. Det är ett operativsystem som uttryckligen använder principen om isolering för säkerhet, integritet och anonymitet.

Detta operativsystem är utvecklat av två huvudprogram. En arbetsstation och den andra är Gateway. Gatewayen fungerar här som en mellanhand och tvingar alla anslutningar att gå genom Tor-nätverket. Det finns alltså ingen möjlighet att en IP-adress läcker, och det är så Whonix OS skyddar dig.

6. Diskret | Diskret Linux

Du kanske försöker hålla din data säker och fortfarande hitta bästa distributionen säkerhet för din operationssal Linux-system. Låt din rädsla flyga iväg. Här har du Discreete Linux OS som sägs vara en av de säkraste Linux-distributionerna för att skydda dina värdefulla data.

Detta operativsystem fungerar inte med Internet under drift, vilket separerar data och kryptografiska nycklar för att skydda från ett opålitligt nätverk. En till intressant sakär att detta OS är ett rent live-system, så du behöver inte installera det på din dator, du kan snabbt köra det från en USB-enhet.

7. Linux Kodachi | Kodachi

Gillar du att vara helt anonym när du surfar på Internet? Då är Kodachi Linux en av de bästa och säkraste Linux-distributionerna du skulle vilja ha. Många användare säger att detta är den säkraste Linux-distributionen de någonsin har haft. Personligen har jag dock aldrig testat. Detta operativsystem kommer med Tor, VPN och DNSCrypt och kan enkelt startas från en DVD eller USB-minne.

Du kan välja utfartsland för rutten när du går online. Det här operativsystemet innehåller många andra användbara applikationer som Pidgin Internet Messenger Transmission VirtualBox Geany, FileZilla och många fler. Slutligen måste jag säga att detta operativsystem kommer med allt du behöver för att skydda användaren.

8. BlackArch Linux

BlackArck Linux är en ny Linux-säkerhetsdistribution speciellt designad för penn- och säkerhetstestning. Den erbjuder ett stort antal verktyg, dubbelt så många som Kali Linux.

De kan installeras individuellt eller, om du föredrar det, kan du installera dem som en grupp. Detta operativsystem är lätt att använda. Detta operativsystem är tillräckligt lätt för att du kan köra det på vilken hårdvara som helst.

9. Heads OS

Heads är en gratis säkerhetsdistribution baserad på GNU Linux. Detta operativsystem är betydligt mindre än andra och lättare att hantera. Chefer använder bara fri programvara, vilket innebär att detta OS värdesätter användar- och gemenskapsfrihet mer.

Liksom de andra operativsystemen ovan använder Heads också Tor så att du kan vara anonym medan du surfar på webben. All din trafik går genom Tor som standard, men de ger dig möjlighet att stoppa den om du vill. Chefer prioriterar alltid sina användare.

10. Subgraf | Subgraph OS

Liksom Tails är Subgraph Operating System också ett Debianbaserat operativsystem som förhindrar sofistikerade motståndare från Internet från att observera och störa. Detta OS är för alla. Dess GNOME-baserade skrivbordsmiljö är otroligt användarvänlig.

På tal om säkerhet och integritet, denna säkerhetsfördelning förhindrar attacker med intelligent åtkomstkontroll; Förhindra minneskorruption med ett patchpaket (grsecurity patchset och Pax). Grsecurity patch set tillhandahåller säkerhetspaket som adressutrymmesskydd, avancerad revision och processkontroll

11.IprediaOS

Denna säkerhetsdistribution är praktisk för webbsurfning, sändning E-post, chatta och dela alla filer anonymt över Internet. Alla anslutningar går via I2P-mjukvaran.

Till skillnad från andra distributioner stöder IprediaOS TORRENTS. Det här operativsystemet är konkurrenskraftigt snabbare än Tor, även om du ska använda det på din gamla dator så kommer detta OS att fungera bra på detta också.

12. Rent OS

Om du letar efter en användarvänlig säkerhetsdistribution som gör att du fritt kan ändra den. Då är det PureOS. PureOS är gratis programvara som tillhandahåller en säkerhetssvit som inkluderar sökmotorn Duck Duck Go.

Detta skyddar din integritet genom att undvika personliga sökresultat. Eftersom det är gratis programvara kan du ladda ner det utan att köpa något. Du kan begära dess källkod även om du har tillåtelse att ändra den.

13. Openwall GNU/*/Linux

Openwall är ett säkert distributionsbaserat Linux-operativsystem speciellt designat för servrar och applikationer. Openwall ger säkerhet genom att reducera brister i sina programvarukomponenter med Openwall-patchen (allmänt känd som (inte exec stack patch). Det är en gratis serverplattform designad för att göra just det.

14 Alpine Linux

Alpine Linux är det säkraste Linux distribution baserat på mus libc och BusyBox. Det är så lätt som man kan tro. Storlek på den grundläggande systemär cirka 5MB vilket är mindre än andra tillgängliga system där ute. Och det är därför denna Linux-distribution är så populär.

En annan BusyBox-komponent innehåller många verktyg och väldigt få av dem är bunzip2, bzip2, less, lzma, unlzma, vi, wget. Dessa verktyg finns i den alpina basavbildningen, som inte finns i Debians basavbildning. Denna APK-applikationshanterare är mycket snabbare än andra och mycket lätt att använda.

15. Container | Container Linux (tidigare CoreOS)

Om du gillar att arbeta över maskiner och uppdatera maskiner utan stillestånd, då kommer Container Linux (tidigare CoreOS) att vara din Linux-distribution. Container Linux är en lättviktig Linux-distribution designad för kluster och servrar. Denna säkerhetsdistribution blir populär i dessa dagar eftersom den är lätt att distribuera, hantera och köra containrar. Tidigare stödde CoreOS bara Dockers-plattformen, men på senare tid stöder den rkt (Rocket) som ett alternativ till Docker. Denna programvara uppdateras automatiskt när en uppdatering behövs, vilket ökar säkerheten.

Linuxdistributioner kan delas in i olika kategorier, beroende på syfte och avsedd målgrupp. Servrar, utbildning, spel och multimedia är några av de populära kategorierna av Linux-distributioner.

För användare som är oroliga för säkerheten finns det flera distributioner som är utformade för att förbättrat skydd Integritet. Dessa konstruktioner säkerställer att din surfaktivitet inte spåras.

Vårt urval omfattar dock inte bara distributioner med fokus på integritet utan även distributioner för intrångstestning. Dessa builds är speciellt utformade för att analysera och utvärdera system- och nätverkssäkerhet och innehåller ett brett utbud av specialiserade verktyg för att testa system för potentiella sårbarheter.

En Ubuntu-baserad distribution designad för intrångstestning. På grund av användningen av XFCE som standardfönsterhanterare fungerar det väldigt snabbt.

Programvarulösningsförråd uppdateras ständigt för att säkerställa att användaren alltid har de senaste versionerna av inbyggda verktyg som låter dig utföra webbapplikationsanalyser, stresstester, bedöma potentiella sårbarheter, privilegier och mycket mer.

Till skillnad från andra distributioner, som inkluderar ett stort set olika applikationer, Backbox innehåller ingen sådan redundans. Här hittar du bara bästa verktygen för varje enskild uppgift eller mål. Alla verktyg är sorterade i kategorier, vilket gör det enkelt att hitta dem.

Wikipedia ger korta översikter av många av de inbyggda verktygen. Även om Backbox ursprungligen skapades enbart för teständamål, stöder distributionen även Tor-nätverket, vilket kommer att hjälpa till att dölja din digitala närvaro.

Kali

Förmodligen den mest populära distributionen för penetrationstestning baserad på Debian Wheezy. utvecklat av Offensive Security Ltd och är en fortsättning på det tidigare BackTrack Linux-projektet.

Kali finns som 32-bitars och 64-bitars ISO-bilder som kan brännas till ett USB-minne eller CD, eller till och med installeras på en hårddisk eller solid state-enhet. Projektet stöder också ARM-arkitekturen och kan till och med köras på en Raspberry Pi-enkortsdator, och inkluderar även ett stort antal analys- och testverktyg. Huvudskrivbordet är Gnome, men Kali låter dig skapa en anpassad ISO-bild med en annan skrivbordsmiljö. Denna mycket anpassningsbara distribution tillåter till och med användare att modifiera och bygga om Linux-kärnan för att passa deras specifika behov.

Populariteten av Kali kan bedömas av det faktum att systemet är en kompatibel och stödd plattform för MetaSpoilt Framework, ett kraftfullt verktyg som låter dig utveckla och exekvera exploateringskod på en fjärrdator.

Tillgänglig för 32-bitars och 64-bitars maskiner, det är en intrångstestdistribution baserad på Gentoo Linux. Gentoo-användare kan valfritt installera Pentoo, som installeras ovanpå huvudsystemet. Distributionen är baserad på XFCE och stöder att spara ändringar, så när USB-enheten kopplas bort kommer alla tillämpade ändringar att sparas för framtida sessioner.

De inbyggda verktygen är indelade i 15 olika kategorier som Exploit, Fingerprint, Cracker, Database, Scanner, etc. Baserat på Gentoo, ärver distributionen en uppsättning säkerhetsfunktioner från Gentoo som låter dig göra ytterligare säkerhetsinställningar och finare kontroll över distributionen. Du kan använda verktyget Application Finder för att snabbt upptäcka applikationer som finns i olika kategorier.

Eftersom distributionen är baserad på Gentoo kommer vissa manipulationer att krävas för att få det att fungera. nätverkskort och andra hårdvarukomponenter. När du laddar ner, välj verifieringsalternativet och konfigurera alla dina enheter.

Baserad på Ubuntu är denna distribution designad för intrångsdetektering och nätverkssäkerhetsövervakning. Till skillnad från andra penetrationstestdistributioner, som är mer offensiva till sin natur, är det mer av ett defensivt system.

Emellertid inkluderar projektet ett stort antal stötande verktyg som finns i andra distributioner av penetrationstestning, såväl som nätverksövervakningsverktyg som Wireshark-paketsniffer och Suricata intrångsdetekteringsverktyg.

Security Onion är byggd kring XFCE och inkluderar alla viktiga applikationer som finns i Xubuntu. Security Onion är inte avsedd för amatörer, utan snarare för erfarna proffs som har en viss kunskapsnivå inom området nätverksövervakning och intrångsförebyggande. Som tur är följs projektet ständigt detaljerade guider och videohandledningar som hjälper dig med komplexa inbäddade program.

Caine

Standardkonto: root:blackarch. BlackArch är över 4 gigabyte i storlek och kommer med flera olika fönsterhanterare inklusive Fluxbox, Openbox, Awesome.

Till skillnad från andra distributioner för penetrationstestning kan BlackArch också användas som ett förbättrat sekretessverktyg. Utöver olika analys-, övervaknings- och testverktyg innehåller distributionen även antispårningsverktyg, i synnerhet sswap och ropeadope för att säkert radera innehållet i växlingsfilen respektive systemloggarna, och många andra integritetsprogram.

Utvecklad av det italienska IT-säkerhets- och programmeringsnätverket Frozenbox, baserat på Debian, kan den användas för intrångstestning och underhåll av sekretess. Liksom BlackArch är Parrot Security OS en rullande releasedistribution. Standardinloggningen för en Live-session är root:toor.

Live-avbildningen som du installerar erbjuder flera startalternativ, till exempel beständigt läge eller beständigt läge med datakryptering. Utöver analysverktyg innehåller distributionen flera program för anonymitet och till och med kryptografisk programvara.

Mates anpassningsbara skrivbordsmiljö erbjuder ett attraktivt gränssnitt, och själva Parrot Security OS körs väldigt snabbt även på maskiner med 2 gigabyte RAM. Flera nischverktyg är inbyggda i systemet, till exempel är apktool ett verktyg för att modifiera APK-filer.

För användare som bryr sig om integritet tillhandahåller distributionen en speciell kategori av applikationer där användare kan aktivera anonymt läge surfa på Internet (används Tor-nätverk) med ett klick.

JonDo

"Anonyma" Linux-operativsystem (operativsystem) är utformade för att utföra högst skyddade och säkra manipulationer i det digitala livet, till exempel när man gör banköverföringar i nätbankssystem på andras datorer. Åtminstone är dessa operativsystem förkonfigurerade för att ha dem på en bärbar enhet för att göra snabb och säker webbsurfning utan att berätta för alla i vanlig text var eller vem du verkligen är.
Vi citerar "Anonym" Linux av två skäl:

  1. För det första, att framgångsrikt dölja sin identitet online innebär mycket mer omsorg och disciplin än att bara installera rätt programvara eller använda säkra operativsystem.
  2. För det andra, och ibland, för det första: Tänk på vilka datorer du arbetar på? Risken för lösenordsläckage eller ännu värre, kanske andras maskiner som redan är infekterade med trojaner och keyloggers, som du tvingas använda i den här situationen för ditt personliga liv, kolla mail eller ännu värre kolla ekonomiska resurser, kan fiska upp din personliga information och använda den i framtiden. Jag hoppas att den här artikeln hjälper dig att hantera liknande situationer.

Nedan (i den här artikelserien) hittar du fem säkra operativsystem utformade med anonymitet och allmänt integritetsskydd som primärt mål.

De fem säkraste operativsystemen:

Så ditt val för säkert OS, bör definitivt göras mot Linux, av flera skäl:

  1. För det första: Windows designades aldrig för sådana ändamål, det var alltid stängt från yttre ögon (alla windows kod krypterad, vi kan inte veta vad som finns inuti). I teorin kan Windows förbereda sig för säker användning, men ingen har gjort det här än, och även om du gör det kommer du att lägga enormt mycket tid på det. Och Linux, i kraft av sin öppenhet, låter dig göra vad du vill med den. Dessutom har sådana människor redan hittats och gjort speciella versioner av Linux OS, som är helt säkra och gör dig anonym, bara ett "spionkit".
  2. För det andra: Live CD-teknik - Linux kan starta och distribuera mycket snabbt utan att installera det på en hårddisk. Du kan använda ett sådant säkert OS optisk skiva eller USB-enhet (flash-enhet) och bär den i fickan. "På ett ögonblick" kan du få ett operativsystem med ett färdigt skrivbord och relaterade applikationer för att arbeta på Internet, oavsett vilket huvudoperativsystem som är installerat på datorn som du måste använda.

Vi presenterar för din uppmärksamhet ett urval av de 10 bästa operativsystemen som är perfekta för både vardagsarbete och för att upptäcka nya funktioner för din PC.

Trots utbredd användning olika versioner Windows, varje år börjar fler och fler användare leta efter nya intressanta operativsystem.

Genom att installera ett nytt system på en dator kan du arbeta med program som inte körs på Windows. Vissa användare väljer att använda andra operativsystem för att skydda sina data. Enkla och lätta OS-alternativ påskyndar också arbetet med gamla bärbara datorer avsevärt och hjälper till att bli av med problemet med konstant överhettning och bromsar.

10:e plats - Windows 10

Trots det faktum att vi i detta betyg abstraherar från det stora antalet versioner av det välkända Windows, kan man inte annat än peka ut en av de mest framgångsrika och snabbaste versionerna - Windows 10. Bli inte förvånad över att vi sätter Windows på 10:e plats . Ja, det är den mest populära, men det är just därför som den är en av de mest hackade och inte alltid säkra. Och det kostar också pengar, såvida du naturligtvis inte laddade ner dess distributionskit från piratkopierade webbplatser.

Systemet är väldigt lätt att använda och kommer att tilltala både älskare av tunnelbanegränssnittet och de som är vana vid den vanliga Start-menyn. Den officiella församlingen har alla nödvändiga program för att komma igång, inklusive den nya snabba webbläsaren MS Edge.

Fördelar med Windows 10:
  • Returnerade "START"-tangenten. I den åttonde versionen av operativsystemet förlitade sig utvecklarna på ett sida vid sida, vilket inte gladde användarna. Nu kan PC-ägaren självständigt välja hur det är bekvämare för honom att arbeta med den initiala skärmen;
  • Windows 10 är den senaste utvecklingen från Microsoft. Detta innebär att företagets alla krafter är inriktade just på att förbättra och upprätthålla driften av operativsystemet. Servicepack för säkerhetstjänster släpps nästan varje vecka. Microsoft visar sig också väl i den snabba elimineringen av virus. Ägare av datorer med en licensierad tio har upprepade gånger noterat att de lyckats undvika massdistribution av skadlig programvara tack vare snabba utvecklaruppdateringar;
  • Tillgänglighet röstassistent Cortana. Med den inbyggda taligenkänningstjänsten blir arbetet med sökning ännu enklare;
  • Pålitlig brandvägg. Med inbyggd Microsoft Defender behöver du inte installera ytterligare antivirusprogram. Brandväggen gör ett utmärkt jobb med att upptäcka hot, blockerar snabbt exekvering av skadlig kod och låter dig skanna systemet;
  • Snabbstart. Operativsystemet startar på mindre än 15 sekunder, oavsett din dators prestanda;
  • Konfigurera flera skrivbord. Användare kan lägga till ett obegränsat antal hemskärmar och enkelt växla mellan dem med snabbtangenter.

Det är värt att notera att Windows stöder nästan alla spel och program, så det kommer definitivt inte att vara några problem med att installera programvara.

Nackdelar med Windows 10:
  • Användarspårning. Microsoft döljer inte det nya Windows 10 kan spåra användarnas handlingar. Systemet genomsöker regelbundet datorn efter användning av olagliga mjukvaruprodukter från Microsoft. Nu kommer den hackade helt enkelt att tas bort från datorn. Det är ingen hemlighet att operativsystemet skickar information till utvecklaren om besökta resurser och skrivbordsbilder. Om så önskas kan alla dessa alternativ och behörigheter inaktiveras i inställningarna;
  • Användningspolicy. Även efter en lång tid sedan lanseringen har utvecklarna fortfarande inte bestämt sig för distributionspolicyn. Under det första året kunde Windows 7/8-licensinnehavare uppgradera till tio gratis. Idag kostar det pengar (från 8 000 till 14 000 rubel, beroende på montering). Samtidigt har ett kryphål hittats genom vilket du kan uppgradera gratis med hjälp av det inbyggda tillgänglighetsverktyget.

9:e plats - ROSA

ROSA är en rysk version av det öppna operativsystemet Linux. Operativsystemets standardkärna har skrivits om helt av utvecklarna av ROSA. Målet med projektet är att skapa ett funktionellt, gratis och bekvämt system som passar alla rysktalande användare.

ROSA OS är ett helt gratis system. Det finns inga köp inom själva operativsystemet heller. Tillgängligheten av distributionspaketet bidrog till spridningen av systemet inte bara bland vanliga användare men även bland stora företag. Som ni vet används ROSA både i avdelningarna av Ryska federationens försvarsministerium och i många privata företag över hela landet.

Fördelar med ROSA OS:
  • Allt är klart för arbete. Efter att du har installerat systemet behöver du inte installera några drivrutiner och ytterligare program. Allt du behöver finns redan i systemet. Om du vill kan du ladda ner programvaran från vilken specialiserad webbplats som helst. Som ni vet har Linux nästan noll procent av virusprogram, så installation från tredjepartskällor utgör ingen fara;
  • Övningsläge. För dem som ännu inte har bestämt sig för att helt byta till ROSA OS har utvecklarna tillhandahållit ett gästläge. Du kan skapa en vanlig USB-flashenhet för installation och starta från den. OS kommer inte att installeras och användaren kommer att kunna bekanta sig med dess gränssnitt och funktionalitet;
  • Bekvämt gränssnitt. Arrangemanget av alla element är mycket genomtänkt. Även en nybörjare kommer att klara utvecklingen av ett nytt system på 10-15 minuter. Alla program är bekvämt uppdelade i flikar på skrivbordet. Du kan fästa ofta använda program till verktygslådan. Hemskärm liknar funktionaliteten i Windows;
  • Virus skydd. Risken för att ladda ner skadlig programvara är minimal, så du kan enkelt surfa på alla webbplatser för att installera program och spel. Om ett virus är "inbäddat" i dem, så fungerar det bara i Windows eller andra vanligare operativsystem.

Bland bristerna med ROSA OS kan ett litet antal program urskiljas. Inte all Windows-programvara har analoger för Linux-kärnan.

8:e plats - FreeBSD

FreeBSD är ett operativsystem som har finslipats för att fungera med servrar och nu vanliga stationära datorer. Mer än 30 år har gått sedan början av den första utvecklingen av detta system. Idag är FreeBSD ett enkelt, pålitligt och bekvämt operativsystem som kommer att vara en bra ersättning för det välbekanta Windows.

Fördelar med FreeBSD:
  • Gratis licens och nedladdning från nätverket;
  • Med öppen källkod kan du modifiera systemet;
  • Spridning. FreeBSD används av många populära webbplatser i världen för att underhålla serversidan - Webmoney, Aliexpress, ASOS och andra;
  • Skydd och tillförlitlighet. Det är värt att notera den väl genomtänkta logiken i operativsystemet, den rationella förbrukningen av PC-resurser. FreeBSD är snabbt även på low end-maskiner;
  • Stort utbud av mjukvara. Mer än 4 000 utvecklare från hela världen är involverade i utvecklingen av versioner av program för FreeBSD. Därigenom, nuvarande versioner av alla populära program dyker snabbt upp i allmän egendom.
FreeBSD Nackdelar:
  • Svårighet att ställa in. Detta är huvudorsaken till att FreeBSD inte är så populärt bland vanliga användare. Efter att ha hanterat den första OS-installationen kommer du att få ett system som fungerar mycket snabbare än Windows;
  • Svårigheter att få fram dokumentation. Om du vill ställa in administration för din webbplats på FreeBSD måste du ta dig tid att leta upp administrationsdokumentationen.

För att säkerställa säkerheten använder FreeBSD alla nödvändiga skyddsnivåer: krypteringsmekanismer, autentiseringskontroll, kontroll av inkommande och utgående trafik, regelbunden övervakning av systemet för skadlig kod.

7:e plats - Fedora

Fedora är ett Linux-liknande operativsystem som har fri programvara. Det bör noteras att de drivrutiner som används kan vara stängd källkod, och vissa typer av programvara kan ha en begränsad licens (till exempel codecs för mediauppspelning).

Fedora-fördelar:
  • Använder Gnome-miljön. Utvecklingen av Gnome för Fedora anses vara en av de mest framgångsrika implementeringarna av skrivbordet i operativsystem;
  • Lätt att använda. Utvecklarna har skapat en enkel och vacker design för skrivbordet, programflikar. Snabb navigering mellan öppna applikationer och mappar är möjlig tack vare sidoverktygsfältet;
  • förinstallerade program. Efter installationen kommer du att ha tillgång till ett mjukvarupaket för att helt börja arbeta med Fedora (webbläsare, utforskare, bildvisare, programvara för hantering av virtuella maskiner, etc.);
  • Snabb installation av nya applikationer. Programvaran installeras genom "Application Center", på samma sätt som på en vanlig smartphone;
  • Möjlighet att uppdatera "over the air". Du kan ladda ner och installera ny OS-firmware med hjälp av Gnome-programvaran.
Nackdelar med Fedora:
  • Bland utvecklare anses Fedora vara en "gratis testplats" för mjukvarutestning. Alla applikationer visas snabbare, men det finns en stor chans att programvaran blir ofullbordad och instabil.

6:e plats - Elementary OS

Elementary OS är en snabb och samtidigt funktionell ersättning för det välbekanta Windows. Utvecklare positionerar systemet som en enkel arbetsmiljö, vilket logiskt följer av namnet på operativsystemet.

Systemet använder Linux-distributionskärnan. Elementära OS-omslag gratis och fungerar på absolut alla datorer, oavsett hårdvarukomponenter.

Fördelar med Elementary OS:
  • Bekvämt och trevligt gränssnitt. Den minimalistiska stilen är grunden för operativsystemets funktionalitet. Ett minimum av element har lagts till på skrivbordet, men alla låter dig hantera operativsystemet utan problem. Det bör noteras smidigt byte av fönster och mycket snabb laddning av program;
  • Lätt att lära. Även en nybörjare kommer att förstå Elementary OS. Inga komplicerade kommandon, tvångsarbete med konsolen och obegripliga parametrar. Funktionaliteten kan jämföras med användarvänligheten hos Android-mobiloperativsystemet - allt grund inställningar kan justeras i skrivbordsverktygsfönstret.;
  • Jättebra set standardprogram. Som regel är användare inte seriösa med applikationer som är förinstallerade i operativsystemet. I fallet med Elementary OS försökte utvecklarna skapa ett användbart basprogrampaket som du inte vill ta bort;
  • Regelbunden ström av nya program. Utvecklare anpassar snabbt program för Elementary OS.

I allmänhet är systemet utmärkt för hemmabruk. För serveradministration eller för att skapa en arbetsstation är ett sådant OS fortfarande inte lämpligt. Säkerheten för Elementary OS tillhandahålls av inbyggda skyddsmoduler från Linux.

Om du har svag dator eller om du vill installera ett extra "lätt" OS, välj gärna Elementary OS.

5:e plats - Chrome OS

Chrome OS är Googles operativsystem med öppen källkod. Systemets huvudfunktion är användningen av en hybridkärna (Linuxkärnan i kombination med Googles tjänster).

OS distribueras helt gratis, och dess popularitet bland användarna beror på snabbt arbete och snygg design.

Fördelar med Chrome OS:
  • Systemet domineras av webbapplikationer, och en nyckelroll i systemhantering ges till Chrome webbläsare. Det är med dess hjälp som webbapplikationer laddas och körs;
  • Det finns inga speciella krav på hårdvaruarkitektur. Tack vare det enkla konceptet med Chrome OS behöver du inte ha en kraftfull PC eller bärbar dator för att installera systemet. Tvärtom var systemet speciellt designat för maskiner med låg prestanda (netbooks, low-end bärbara datorer). priskategori). Användningen av webbtjänster gör att du kan minska belastningen på hårddisken och RAM;
  • Säkerhet i automatiskt läge. Nedladdningar av paket med skyddsmoduluppdateringar sker regelbundet. Dessutom har systemet en inbyggd försvarare för snabb upptäckt av hot;
  • Enkel användning;
  • Tillgänglighet av programvara. Alla program kan laddas ner från Google Play eller tjänsten Android Nougat. Överflödet av programvara i dessa onlinebutiker kommer inte att låta användaren uppleva en brist på applikationer. Dessutom är all mjukvara perfekt anpassad för skrivbordsoperativsystemet.

Vid första anblicken liknar Chrome OS-gränssnittet en sammanslagning av Android och Windows. Installerade program placeras i en separat meny, och systemhanteringen utförs med hjälp av verktygsfältet, som på skrivbordet i Windows.

Bland nackdelarna med Chrome OS är behovet av en konstant anslutning till Internet. Det är tillrådligt att använda wifi-nätverk eller en Ethernet-anslutning. Annars kommer du inte att kunna arbeta med webbtjänster.

4:e plats - OpenSuse

OpenSuse är en annan populär distribution som körs på Linux-kärnan. Används för att stödja både servrar och hemdatorer. Ny systemfirmware släpps regelbundet, i ace releasedatum kan ses på utvecklarens webbplats.

OpenSuse-användaren kan anpassa systemet på egen hand. Du behöver inga programmeringskunskaper för att göra detta. Att ändra gränssnittet är att välja den skrivbordsmiljö du gillar. Medan de flesta Linux-byggen bara kan fungera med en enda skrivbordsmiljö, stöder OpenSuse flera stylingverktyg samtidigt. De mest populära av dem är KDE och XFCE.

Fördelar med OpenSuse:
  • Enkel installation. Du kan styra operativsystemet med en enda YaST-applikation. Detta verktyg låter dig justera inställningarna för hur OpenSuse fungerar. Användare kan självständigt lägga till arkiv, hantera startalternativ, OS-partitioner, nätverksanslutningsinställningar och andra parametrar;
  • Gratis distribution av programvara. OpenSuse kommer att köra alla program du behöver. Systemet anpassar automatiskt programvaran för din dator;
  • Enkel mjukvaruinstallation. Till skillnad från de flesta Linux-byggen behöver du inte längre installera repositories själv, lägga till åtkomstnycklar och göra komplexa inställningar. Det räcker att ladda ner de nödvändiga programmen från den officiella källan https://software.opensuse.org/ och slutföra installationen med ett klick.
Nackdelar med OpenSuse:
  • Standardsammansättningen saknar codecs och drivrutinsprogram, vilket komplicerar den första OS-installationen;
  • Användare noterar den instabila driften av den vanliga MonSoon torrentklienten.

3:e plats - Ubuntu

Ubuntu är ett universellt operativsystem som körs på Debian GNU/Linux-motorn. Systemet fungerar utmärkt på servrar, persondatorer och bärbara datorer. Standardbygget kommer med en skrivbordsmiljö som kör Unity.

Fördelar med Ubuntu:
  • Arbeta med utrustning. Ubuntu stöder ett stort utbud av anslutna enhetstyper. Till exempel alla anslutna USB-enhet kommer att fungera utan problem och drivrutinsprogram;
  • Användarstöd. Ubuntu OS har den största och mest lyhörda communityn. Om det behövs kommer nybörjare att kunna få svar på alla frågor med hjälp av utvecklarens officiella webbplats;
  • Pålitlighet. OS har inbyggda verktyg för Reserv exemplar data. Systemet skapar självständigt kopior av viktiga filer, arkiverar dem och skickar dem till molnet. Detta säkerställer tillförlitligheten hos Ubuntu. Om du administrerar en server på detta operativsystem, bättre sätt för en snabb återställning, inga data kan hittas;
  • Säkerhetssystem. Utvecklarna har tillhandahållit ett helt system av applikationer som, i bakgrundövervaka sårbarheter. Ubuntu anses vara den starkaste Linux-distributionen vad gäller säkerhet;
  • Program Center. Specialnytta för att söka och installera program gör det också möjligt för en nybörjare att bekanta sig med grunderna för att installera programvara under Linux. På sidan för varje applikation finns en detaljerad beskrivning av programvaran, dess krav och recensioner från andra användare.

Ubuntu distribueras gratis. När det gäller bristerna i systemet kan man peka ut bristen enkla medel migrering från Windows OS. Dessutom saknar Ubuntu effektiva verktyg för föräldrakontroll, så det rekommenderas inte att installera en distribution för familjebruk.

2:a plats - macOS

MacOS är en familj av operativsystem från Apple Corporation. För tillfället är den senaste versionen Mac OS Sierra. Till skillnad från de ovan beskrivna operativsystemen fungerar Mac inte på basis av Unix-liknande system, utan med Apples inbyggda motor.

Systemets distributionskit distribueras gratis.

Fördelar med macOS:
  • Användbarhet och grafiskt skal. Detta operativsystem känns igen det bästa systemet för användare. Alla alternativ och inställningar är fokuserade på snabb utveckling. Gränssnittet är flerspråkigt, intuitivt och bekvämt;
  • Hög grad av skydd. Mac OS är det säkraste av alla moderna operativsystem. Antalet virus är nästan noll, och det inbyggda antivirusprogrammet kommer att klara av alla "skadedjur";
  • Lätt att installera och ta bort program. Det räcker bara att flytta genvägen till papperskorgen för att helt ta bort applikationen. Mac OS gör allt för användaren. Du behöver inte städa upp din hårddisk manuellt som du gör i Windows eller Linux;
  • Stabilt arbete. På grund av komponenternas höga kompatibilitet, stöter inte användare på buggar, fryser eller kraschar i operativsystemet.
Nackdelar med macOS:
  • Kompatibilitet. Om du äger en vanlig PC och inte en Macintosh kan du bara installera ett operativsystem om det är kompatibelt med hårdvarukomponenterna. MacOS körs på ett begränsat antal processorer (oftast Intel core och Xeon);
  • Färre program än i samma Windows.

1:a plats - Linux Mint

Linux Mint anses vara den bästa versionen för installation på användardatorer. Den uppfyller alla krav från den genomsnittliga användaren - den distribueras gratis, kompatibel med all hårdvara, förbrukar rationellt PC-resurser och har ett användarvänligt gränssnitt.

Fördelar med Linux Mint:
  • Snabbstart. Systemet startar upp på 10-12 sekunder, vilket är betydligt snabbare än Mac OS och de flesta system i Windows-familjen;
  • Stöd för flera stationära datorer;
  • Inbyggt verktyg för snabb installation och borttagning av program. I den här versionen av Linux behöver användare inte hantera arkiv. Allt är gjort för bekväm drift med programvara;
  • Flerspråkigt gränssnitt;
  • Snabb systemfelsökning. Om du stöter på program som fryser kan du inaktivera processen genom att trycka på en enda knapp;
  • Stöds av alla stationära datorer och bärbara datorer.
  • Bekvämt gränssnitt.
Nackdelar med Linux Mint:
  • En begränsad mängd programvara för specifika uppgifter (videoredigering, arbete med grafik, etc.);
  • Avsaknad av en stabil grafikdrivrutin för AMD, vilket kan göra att vissa spel fungerar felaktigt.

Resultat

När du väljer ett operativsystem, var först och främst uppmärksam på de uppgifter du ställer in för dig själv. mjukvarumiljö. Behöver du ett snabbt och säkert operativsystem för dagligt bruk? Var uppmärksam på Unix-liknande system.

Om du vill få ett pålitligt operativsystem med en utmärkt grafisk miljö rekommenderar vi att du väljer Mac OS. För älskare av gränssnitt och funktionalitet mobila system du bör börja använda Chrome OS.