Säkerhet. De onda. Vilka är farorna?



Relevanta dokument
Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Sockets. Processkommunikation Sammanfattning. Sockets. Domän, typ och protokoll

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

ELEV- HANDLEDNING (Ansökan via webben)

Lathund för överföring av rapporter och ljudfiler

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Manual för Min sida 1/ rev

Hur skapar man formula r

Webb-bidrag. Sök bidrag på webben Gäller från

Individuellt Mjukvaruutvecklingsprojekt

TIMREDOVISNINGSSYSTEM

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Menys webbaserade kurser manual för kursdeltagare. Utbildningsplattform: Fronter

Arbeta bäst där du är Dialect Unified Mi

Manual för BPSD registret. Version 6 /

Rapport uppdrag. Advisory board

Programmera en NXT Robot

Min fråga är, när ni driftar HF-don bränner ni in rören i 100 timmar på 100% innan ni eller kunden börjar dimmra?

TIMREDOVISNINGSSYSTEM

Axiell Arena. Samarbeta om bilder Regionbiblioteket i Kalmar län

Föreningen Nordens lokala hemsidor

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

Fullför installation av ELIQ

Tillämpad UNIX. Laborations-PM Christian von Schultz, Programpaket och processhantering

Snabbslumpade uppgifter från flera moment.

Vad är WordPress? Medlemmar

Din Guide till Second Life

Ändra föreningsuppgifter i föreningsregistret i Interbook

Praktisk programmering

Office 365 Kompetens 2013 / MB

Gissa det hemliga talet

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Detta dokument beskriver vilka regler som gäller för lagspecifika hemsidor använda av Ackers lag.

FINLAND I EUROPA 2008

MULTI COMAI WEBBKALENDER

Anva ndarhja lp IMYR -Myndighetsrapportering

Mer än bara fotboll VAD HANDLAR BOKEN OM? LGR 11 CENTRALT INNEHÅLL SOM TRÄNAS ELEVERNA TRÄNAR FÖLJANDE FÖRMÅGOR LGRS 11 CENTRALT INNEHÅLL SOM TRÄNAS

Uppdragsbeskrivning. Digital Skyltning. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Syftet med en personlig handlingsplan

Handledning Att arbeta med Webbplatser

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Logga in. Gå in på: Klicka på Logga in. Klicka på den region, kommun eller organisation där din verksamhet finns

Laganmälan & Laghantering

Dina inloggningsuppgifter är samma som du använder för att logga in på skolans datorer.

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Lathund, procent med bråk, åk 8

Introduktion till Open 2012

Bygg ditt eget dataspel på sommarlovet!

Vet du vilka rättigheter du har?

Elektronen och laddning

Tentamen i Programmering grundkurs och Programmering C

SANNOLIKHET. Sannolikhet är: Hur stor chans (eller risk) att något inträffar.

SNABBGUIDE TALSVAR. Rev

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

Administration Excelimport

2 Hur förbereder jag mig inför krav på kortinlogg?

ANVÄNDARHANDLEDNING FÖR

e-cm Elektronisk Cash Management dygnet runt, världen över.

MANUAL TILL AVTALSMALL FÖR KIST- OCH URNTRANSPORTER

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Text och bilder gjorda av Rickard Johansson, TE14A Realgymnasiet.

APEX Flex ProChip System

Kurir för it-incidentrapportering snabbguide användare

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

BibliotekMitt.se. Riktlinjer för Boktips, Artiklar, Arrangemang, Utställningar Arrangemang mm

4 nödsamtal. SOS-operatören trycker nu på en knapp för att få fram telefonnummer och adress till telefonen pojken ringer från.

Identiteter och behörigheter i molnet och BYOD

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

Du ska nu skapa ett litet program som skriver ut Hello World.

Här kan du läsa om vilka funktioner som finns tillgängliga i Switch King samt vilka möjligheter som finns för att sätta upp systemet (skalbarhet).

Manual. Rapportera väntetider i systemet Utbudstjänst SLL

Guide för att hitta markavvattningssamfälligheter och täckdikningsplaner

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

1. Hur många timmar per vecka har du i genomsnitt lagt ner på kursen (inklusive schemalagd tid)?

UPPGIFT: SKRIV EN DEBATTARTIKEL

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Distribuerade Informationssystem VT-04

Finns det någon som kan förklara varför man inte kan använda formeln P=U I rotenur3 cosfi på en pump som sitter i en borrad brunn?

Introduktion 7-manna fotboll

Vi skall skriva uppsats

Föreläsning 5: Rekursion

Skriva B gammalt nationellt prov

Hur du arbetar med VFU-portfölj i Mondo. en lathund för student

KÄNSLA AV SAMMANHANG. Uppskattad dygnsdos i gr. och preparat (de sista 30 dagarna):

Att komma igång. Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program

Användarmanual - Digitalt utbildningsprotokoll (DUP)

Telefonbetalning vid parkering

Sveriges Trafikskolors Riksförbund Film om körkort för nysvenskar Speakertext - Svensk

Visma Proceedo. Att attestera - Manual. Version 1.4. Version 1.4 /

Öde ön Jag befinner mig mitt ute på Indiska Oceanen. Det är min tredje vecka till sjöss och allt har varit lugnt och gått enligt planerna. Tills nu.

Administratör Rollbeskrivning och stödjande instruktion. e-tjänst för ansökan om statsbidrag Senast uppdaterad:

Kvalitetsrapport Så här går det

Bruksanvisning UCR-100

ÄT RÄTT NÄR DU TRÄNAR

Några frågor om dina känslor nu och tidigare

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Matriks Doc 3 Import scannade leverantörsfakturor

Transkript:

Information source Information destination Normal flow Interruption Säkerhet Interception Modification Fabrication 267 268 Vilka är farorna? Sabotage (virus, trojaner, spionprogram) Intrång ( inbrott eller slarv) Olyckor (diskfel, fummel vid tgb) Handhavande (studenter som hittar tentor) Fysisk säkerhet (kommer man åt servern) Identitet (verifiering av maskiner och personer) Programfel (ex buffer overflow, lita på skitig information Systemfel (dåliga policybeslut) 269 De onda Spioner Crackern Slumpen Medarbetare - slarvern Medarbetare - spionen 270

Säkerhet Viktigt!!!! Stort och komplext Lite datorkommunikation Lite matte Lite programutveckling Lite organisation Lite planering & policy Programfel Ett alldeles för vanligt fel Slarviga eller ovetande programmerare Fel algoritmer Tankefel Testar inte alla fall 271 272 Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk en gång till... Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix loggar alla inloggningsförsök. Om en användare av misstag skriver in sitt lösenord istället för användarnamn kommer det att stå i klartext i logfilerna. Om det sedan loggar in en användare 3 sekunder senare är det inte svårt att lista ut och matcha användarnamn och lösenord. Problemet är att man vill kunna logga ev. intrångsförsök. Vid användarnamn som inte finns, ska man logga det automatiskt? 273 274

Loggning fortsättning Webservern Apache loggar komplett Url, även det som står efter?-tecknet. Det som står efter?-tecknet (query-strängen) brukar innehålla användarnamn och ev. lösenord för gästböcker och liknande. Behövs det verkligen dyka upp i log-filerna? Problemet är att man vill kunna se vem som gjort ett inlägg i en gästbok t.ex.. En lösning: använda metoden post istället för get när det gäller känslig data. Då måste man själv göra nödvändiga loggningar för att kunna kontrollera vem som gjort vad på sin hemsida. Tänk på vad som ska loggas när ni skriver ett program. Ska allt loggas även om det riskerar att innehålla känsliga uppgifter? Vem ska kunna läsa logfilerna? Lösenord - Hur säkert är det? Ett lösenord på 8 tecken kan vara ett av 256^8 kombinationer. Men i realiteten kan man lista ut ganska mycket om ett lösenord. För det första brukar man inte tillåta svenska tecken och tecken som man inte kan skriva på ett normalt tangentbord. Redan då är man nere i ca 127^8 kombinationer. Därefter kan man anta att ett lösenord inte innehåller fler siffror än tecken, inte fler specialtecken än vanliga tecken, inte fler versaler än gemener osv... Helt plötsligt är man nere i ännu färre kombinationer. 275 276 Lösenord forts Dessutom använder många användare samma lösenord på flera ställen. Vad finns det för garantier att ett lösenord lagras på ett säkert sätt på ett annat system? Vid ett nytt system, kan man tvinga användaren att använda ett nytt lösenord? Hur ska man lagra lösenordet så att det inte går att komma åt även om man hackar datorn som det ligger lagrat på? Mer läsning finns på http://www.psychpage.com/tech/passwords.html Programinfo - Vem är du? Många datorer och program sprider gladeligen ut information om vad och vilken version de kör. Om nu den versionen har en säkerhetsbrist är det väldigt enkelt för en hackare att skanna runt i ett nätverk för att få reda på vilka datorer som är känsliga för en attack. Om den inte på ett enkelt sätt visar versionsnummer är det svårt för sysadmins att hålla koll på att man har de senaste patcharna. Ska vem som helt kunna få ut information om ett system? Behöver alla användare få reda på vilken tid och med vilka flaggor ett visst program kompilerades? Om man portscannar en dator kan man få en hel del info om möjliga mål för en attack. 277 278

Programmering Varje program får ett eget minnesutrymme som det körs i (i exemplet nedan endast 256byte, i verkligheten 4GB. Principen är densamma). Själva programmet läses in och hamnar på ett ställe och variablerna hamnar på ett annat. För att man ska kunna ha lokala variabler i varje funktion reserveras nytt minne varje gång en funktion anropas. 279 280 Buffer overflow Varje instans av en funktion har en egen minnesplats för sina variabler. Men t.ex. printf kan ju anropas från flera ställen i koden, hur vet den då vart den var innan anropet? Genom att just innan det "lokala" minnet lägga upp den plats den var på, kan den sen hittat tillbaka till vart den var innan funktionsanropet. På så vis kan man anropa samma funktion från flera ställen i koden. När printf avslutar kollar den den sk återhoppsadressen och hoppar tillbaka dit i koden. Det som händer vid en buffer overflow är att man t.ex. skriver utanför en array. Eftersom allt ligger i närheten av varandra i minnet riskerar man då att skriva över adressen som den använder för att hitta tillbaka i koden. 281 282

Utnyttja buffer overflow Vid en exploit så gör man en kontrollerad buffer overflow. Istället för att skriva sönder återhoppsadressen skriver man dit ett värde som gör att programmet hoppar till den kod som man själv vill köra. Den programkoden får man oftast in via stdin, inläsning från en fil, en miljövariabel via en nätverksuppkoppling eller liknande. Huvudsaken att den finns någonstans i minnet. 283 284 KONTROLLERA ALL INDATA!! Speciellt om ni skriver ett nätverksprogram eller ett program som ska köras av root/med root-rättigheter. Annars kan programmet hackas på ett väldigt enkelt sätt... Har man en buffert på 10 byte ska man inte undra några omständigheter kunna försöka fylla den med mer än 10 byte. 285 286

Hur skyddar sig operativsystem mot detta? Vissa Lagrar en checksumma på vissa ställen i stacken och kan då märka om något som inte borde ha ändrats har gjort det Spärra stacken från att kunna exekveras Byta plats på stacken mellan körningar Alla dessa går att ta sig runt (även om det gör det hela betydligt bökigare) Olika typer av fel Segmentation fault Får man om man försöker komma åt en minnesadress man inte har tillgång till eller försöker skriva till en adress som är read-only. T.ex. (NULL). Vanligen har man tappat kontrollen över en pekare eller att återhoppsadressen är trasig och pekar på någon minnesposition som är fel. Illegal instruction Får man om man försöker köra kod som inte är giltig maskinkod. Trolig orsak: kvaddad återhoppsadressen. Bus error Beror på att processorn försöker optimera läsning till och från minnet. På en 32-bitarsmaskin läser den in 4 byte (32- bitar) åt gången. För att det ska bli snabbt måste adressen som den läser/skriver vara jämt delbar med 4. Är den inte det blir det ett bus error. Trolig orsak: man har tappat kontrollen över en pekare eller, återhoppsadressen är trasig. 287 288 Vidare läsning På webben finns mycket information om man letar. Secure-Programs-HOWTO.pdf är en ganska komplett genomgång på olika fel man kan göra. Inte enbart i C- programmering. Rekommenderas att skumma igenom om man vill få en överblick över vilka fallgropar som finns när man skriver kod. (Finns i exempelkatalogen för denna föreläsning.) 289