Chat with us, powered by LiveChat

NEWS

Latest updates and information from the online security industry.

Vad är en SQL-injektion?

Vad är en SQL-injektion?

SQL-injektion är en av de metoder hackers använder för att stjäla värdefull eller känslig data från företag. Kanske är det en av den mest utbredda applikationsattackstekniker som används idag. Den här typen av hackningsteknik utnyttjar felaktig kodning av webbplatser genom att injicera SQL-kommandon i inmatningsfält, såsom inloggningsformulär, för att få tillgång till databaser.

I huvudsak har inmatningsfältet på din webbplats som syfte att tillåta användare att skriva in information till din databas. Hackers utnyttjar den här funktionen genom att skriva in SQL-satser i sådana fält och därigenom få direktkontakt med databasen.

En mer djupgående förklaring av SQL-injektioner

Internetapplikationer tillåter verkliga webbplatsbesökare som du och jag att föra in information till en databas över internet. Databaser är avgörande för att upprätthålla moderna webbplatser – du kan till och med säga att databasen är dess själva hjärta. De lagrar den information som behövs för att webbplatsen ska fungera. Webbplatser förlitar sig på att dessa databaser levererar innehåll till webbplatsens besökare. Personlig information, ekonomiska register, känslig affärsdata och så vidare, kan lätt hittas på databaser och kan enkelt ges tillgång till genom individers personliga konton. Även om databaser och internetapplikationer skapar enkla vägar för hackers till den känsliga informationen är dessa också centrala delar i hur dina affärer sköts online.

SQL-injektion är den hackningsteknik som går ut på att föra in SQL-kommandon i inmatningsfälten på din webbplats för att nå backend-databasen. Om det finns sårbarheter i ditt system blir tillgången till databasen genast enkel med en SQL-injektion. Hackers kan till och med manipulera databasen eller slå ut den helt och hållet.

Funktioner som kontaktformulär, login-sidor, söksidor, shoppingvagnar, användarprofiler och andra former av dynamiskt innehåll är integrerade på moderna webbplatser för att de ger företag möjligheten att kommunicera med sina kunder. Men de här funktionerna är sårbara för SQL-injektionsattacker så länge inmatningsfälten kan utnyttjas av hackers med SQL-satser för att ta sig genom nätverkssäkerheten direkt in till databasen. De flesta webbplatser har ju trots allt en dygnet-runt åtkomst direkt mot databasen, och den porten står öppen 24/7.

Ett enkelt exempel på en SQL-injektion

Om du fortfarande inte helt förstår hur hackers kan utnyttja de enklaste funktionerna på en webbplats (ex. kontaktformulär) för att komma åt databasen och stjäla data så kommer det här därför ett exempel för att illustrera hur hackers använder denna metod.

En legitimerad användare skulle vanligtvis ange sitt användarnamn och lösenord på en vanlig login-sida för att kunna se ett säkert område på webbplatsen. Ett säkert område skulle kunna vara en shoppingvagn på en e-handel, eller inställningssidan på dennes sociala medier.

Med SQL-injektion har hackern möjlighet att föra in specifikt skapade SQL-kommandon i kontaktformuläret för att kringgå det och se den känsliga datan i databasen. Hackern kan bara få tillgång till databasen med hjälp av denna metod om din webbplats har sårbarheter i inmatningsfälten (dvs, dina inmatningsfält är inte sanerade eller gjorda osårbara). Sårbarheterna låter hackern direkt skicka SQL-förfrågningar till databasen. Följaktligen fungerar svagheter för SQL-injektioner som en enkel väg för hackers, och ger hackern medel att kommunicera direkt med databasen.

Teknologierna som är sårbara för denna typ av attack är dynamiska skriptspråk som ASP, ASP.NET, PHP, JSP och CGI. Så länge som någon har en webbläsare, lite kunskap om SQL-förfrågningar och lite tur och gissar de viktiga inmatningsfälten, kommer hen kunna genomföra en SQL-injektion. På grund av SQL-injektionens enkla natur har det därför blivit en populär hackningsmetod de senaste åren.

Hur är det möjligt för SQL-förfrågningar att ta sig genom brandväggar och andra säkerhetsmekaniker?

Flertalet brandväggar och andra säkerhetsmekanismer står lönlösa mot en fullskalig SQL-attack.

Din webbplats måste vara public för att legitima användare ska kunna använda den, och säkerhetsmekanismer kommer tillåta en öppen trafik till webbplatsen och kommer låta de användarna få tillgång till kommunikation med databasen (vanligtvis över port 80/443). Följaktligen kommer vilken användare som helst ha tillgång till databasen, eftersom webbplatsen måste kunna uppdatera ändrad information.

SQL, eller Structured Query Language, är ett vanligt datorspråk. Det här datorspråket ger hackaren förmågan att spara, manipulera och samla in data från databasen. Faktiskt så är SQL det enda sättet på vilket webbplatser kan kommunicera med databasen. Exempel på databaser som är djupt beroende av SQL inkluderar MySQL, Oracle, Microsoft Access och många, många fler.

Här är ett exempel på ett SQL-kommando som kan ta sig förbi ett login-formulär som vi nämnt ovan:

SELECT count(*)
FROM users_list_table
WHERE username=’FIELD_USERNAME’
AND password=’FIELD_PASSWORD”

Det är helt enkelt bara att skriva in det här kommandot för att få reda på användarnamn och lösenord för den valda användaren. Med andra ord kan själva inloggningen, som ska skydda din känsliga information, exploatera inloggningsinformation för en hacker.

Varje webbplats har sina egna specifika uppsättningar av SQL-frågor som ska ställas för att funktioner på webbplatsen ska fungera. Om något inmatningsfält fortfarande är sårbara för hackare, kan en hacker injicera ytterligare kommandon för att manipulera webbplatsen att utföra vissa uppgifter från sin egen kapacitet, vilket breddar gränserna för vilken information webbplatsen ger tillgång till – som tidigare kanske inte var tillgänglig.

Som ett resultat av detta kan vilken hackare som helst som använder SQL-injektioner få fri tillgång till hjärtat av webbplatsen oavsett kvaliteten eller kvantiteten av din nätverkssäkerhet som du skyddar din webbplats med – såvida man inte använder en ytterst avancerad molnbrandvägg såsom Incapsula Enterprise som filtrerar all inkommande trafik mot servern.

Finns den en möjlighet att en SQL-injektion påverkar min databas?

SQL-injektioner är en av de mest populära intrångstekniker bland moderna hackers. Dock är det relativt lätt att skydda webbplatsen mot SQL-injektioner.

Innan 27e juli 2006 var bara totalt 9 % av det totala antalet hackningsincidenter rapporterade i medier enligt WASC (WEB Application Security Consortium). Mer nyligen har det upptäckts att uppskattningsvis 50 % av alla webbplatser är sårbara för SQL-injektioner. När hela 50 % av alla webbplatser är sårbara för SQL-injektioner, löper din egen webbplats ganska stor risk att vara en av dem.

Även om det är säkert att hackers kan göra SQL-kommandon på din webbplats, är den viktiga frågan hur din webbplats svarar på SQL-kommandona, och om hackaren får tillgång till känslig information eller inte.

Om din webbplats inte är riktigt kodad för att hantera sådana hot, löper den stor risk att få sitt företagsdata, och till och med kunddata kompromissad.

Varje databas säkerhetsnivå kan sättas manuellt av en utvecklare. Om en hacker kan få tillgång till databasen eller inte beror mycket på den säkerhetsnivån. Tyvärr är de flesta databaser inställda på ”read access”, så även om inkräktaren inte kan manipulera din databas kan de ändå enkelt läsa dina känsliga uppgifter.

Hur kan SQL-injektioner påverka min webbplats?

Som tidigare förklarat kan en hacker få enkel tillgång till din webbplats databas med hjälp av SQL-injektioner. När hen får reda på att din webbplats är sårbar, kan hen injicera ett SQL-kommando i ett inmatningsfält på webbplatsen. Det här betyder att hackaren ges full tillgång att utföra sina SQL-kommandon på webbplatsen.

Beroende på det backend-databassystem du använder, kan en SQL-injektion leda till olika nivåer av systemtillgång för hackaren. I vissa fall kan det till och med bli möjligt att ändra om i dina filer eller gå att utföra skalkommandon på det underliggande operativsystemet, vilket skulle betyda en katastrof för vissa SQL-servrar som till exempel Microsoft SQL Server, som innehåller databasserverfunktioner.

Tyvärr kan effekten av SQL Injektion endast upptäckas efter hackaren har stulit data eller manipuleras servern, och många av experthackers åker sällan fast.

Hur kan jag säkra min databas från SQL-injektioner?

Som vi nämnt tidigare är dina vanliga antivirus – eller nätverkssäkerhetssystem relativt meningslösa mot fullskaliga SQL-injektionsattacker, eftersom dessa hackare attackerar din webbplats genom de ingångar vanliga användare kommunicerar med er genom. De tar sig in i din databas via inloggningsformulär, kontaktformulär, sökfält eller andra inmatningsfält som är utformade för att tillåta allmänna användare att kommunicera med databasen.

Därför behöver du upptäcka och reparera alla sårbarheter på din webbplats så att inte hackare kan utnyttja dem. Att lappa ihop dina servrar, databaser osv. hjälper, och gör att de kommer kunna stå emot fullskaliga SQL-injektionsattacker. Här har vi möjlighet att hjälpa till. Klicka här om du vill veta mer om våra tjänster och hur vi kan hjälpa dig säkra din verksamhet online.