freestone-carryout
freestone-carryout
freestone-carryout
freestone-carryout
Visar inlägg med etikett server. Visa alla inlägg
Visar inlägg med etikett server. Visa alla inlägg

ARCServe Backup LDBserver sårbar

En säkerhetsbrist i Computer Associates ARCServe Backup LDBserver kan tillåta en angripare att fjärrexekvera kod med SYSTEM-rättigheter. En lyckad attack kan därmed ge angriparen total kontroll över det sårbara systemet. En misslyckad attack
kommer sannolikt att krascha LDBserver applikationen.

Observera att klient installationer inte påverkas av detta.

Uppdateringar finns att hämta hos leverantören.

Påverkade versioner:
Computer Associates Server Protection Suite r2
Computer Associates BrightStor ARCServe Backup for Windows 11.1.0
Computer Associates BrightStor ARCServe Backup for Windows 11.5.0
Computer Associates BrightStor ARCServe Backup r12.0 Windows
Computer Associates Business Protection Suite r2
Computer Associates Business Protection Suite for Microsoft SBS Pre ed r2
Computer Associates Business Protection Suite for Microsoft SBS Std Ed r2

Källa: CA




DoD har hittat en säkerhetsbrist i flera av VMwares produkter

VMwareAndrew Honig vid Department of Defense har upptäckt en sårbarhet i produkter från VMware. Genom att skicka en riggad förfrågan från gäst-operativsystemet till den virtuella hårdvaran kan en angripare potentiellt skriva till valfritt minne på värdsystemet.

Uppdateringar till de olika produkterna finns att tillgå från VMware.

Påverkade versioner:

  • VMware Workstation 6.0.5 och tidigare
  • VMware Workstation 5.5.8 och tidigare
  • VMware Player 2.0.5 och tidigare
  • VMware Player 1.0.8 och tidigare
  • VMware Server 1.0.9 och tidigare
  • VMware ESX(i) 3.5 och 3.0.2

Källa: VMware



Vad är DNS Cache Poisoning?

Det finns en lång historia av attacker riktade mot DNS. I historien finns bland annat DDoS-attacker, attacker direkt mot vissa root-servrar där man använt specialskrivna program för att kunna utföra attacken.

Det som skrivits mest om under den senare tiden är nog "DNS Cache Poisoning"-attacker (DCP). En sådan attack kräver inte speciellt mycket bandbred, snabba CPU:er eller förfinade tekniker för att genomföras.

DCP kan användas genom att en angripare t.ex. injicerar en falsk IP-adress för en Internet-domän (domain.com) i en DNS. Om DNSen kan luras att acceptera IP-adressändringen så ersätts DNS-cachen med den falska adressen. Följaktligen så får alla förfrågningar om domain.com den falska IP-adressen (som kontrolleras av angriparen) som svar.

Så länge som den falska adressen finns i cachen (TTL-värdet för en domän är vanligtvis några timmar) så skickas surfande användare e-postservrar med mera automatiskt till adressen som servas av den infekterade DNSen.

Den här typen av attack kallas vanligen för "Pharming" och skapar flera problem. En användare tror att han/hon har hamnat på rätt webbplats, URLen är riktig, därför är det svårt att avgöra om något misstänkt som pågår.

Andra problem är att om domänen är populär så skickas hundra- eller tusentals användare till den falska webbservern. Detta kan ställa till stora problem om servern innehåller trojaner eller liknande ondsint kod som laddas ner av den intet ont annande användaren.

Ett annat scenario är att injicera en falsk IP-adress för en e-postserver, vilket innebär att t.ex. en organisations e-post skickas via en server som kontrolleras av en angripare.

...hur går det då till för att lura en "caching DNS server" att acceptera en falsk DNS-post?

När en "caching DNS server" får en förfrågan angående en adress för en domän så tittar den först i sin cache för att se om adressen redan är lagrad (detta för att spara tid och kraft), om informationen inte är lagrad så skickas frågan vidare till auktoritativa DNSer för domänen i fråga.

Innan den senaste beryktade publicerade sårbarheten av DNS-systemet, behövde en angripare tävla med en auktoritativa DNSer för att injicera adress-poster. Skicka ett falskt DNS-svar med rätt parametrar satta i DNS-paketet och hoppas att svaret når målet innan det legitima svaret. Detta gav angriparen en väldigt kort tidlucka att lyckas (det är frågan om hundra- / tiondels sekunder)

I och med den senaste sårbarheten kan tidluckan drastiskt utökas genom att skicka förfrågningar för domäner som - angriparen vet - inte existerar (t.ex b1o2n3n559dzzz.domain.com) till "caching"-servern. Detta genererar mängder av frågor från "caching"-servern, vilket i sin tur öppnar för miljontals möjligheter att skicka falska DNS-svar.

I stället för endast en chans att förfalska svaret får användaren massor av chanser (per tidlucka) att sätta rätt parametrar i DNS-svaren.

Att förfalska en DNS-post för b1o2n3n559dzzz.domain.com är vanligtvis inte användbart eftersom (troligen) ingen kommer att skicka förfrågningar för den domänen - det är då det magiska sker i den sista delen av attacken...

I det falska DNS-svaret pekar angriparen "caching"-servern till en falsk DNS-server för domänen som ska angripas. Denna information sparas av "caching"-servern.

På detta sätt kan angriparen kontrollera för den angripna domänen. Alla förfrågningar som gäller domänen skickas till angriparens server, vilket innebär att angriparen har kontroll över alla sub-domäner för domänen: www.a.domain.com, mail.b.domain.com osv. Angriparen har nu ett kontroll över domänen och kan skicka förfrågningar för alla sub-domäner till en server som är under angriparens kontroll.

Hur kan man då skydda sig mot dessa attacker?

Det finns ett antal olika föreslagna metoder som kan användas till exempel:

  • Slumpa fram källportar för DNS-kommunikation (UDP SPR), försvårar för en angripare att gissa rätt parametrar för ett DNS-paket.
  • DNSSEC


För att känna sig någorlunda säker vill man kunna svara på frågor som:

  1. Hur vet jag att det är rätt DNS-server som svarar på förfrågan?
  2. Hur vet jag att DNS-datat inte har blivit förvanskat?

Som det ser ut just nu är svaret på dessa frågor DNSSEC: en standard för autentisering av DNSer och DNS-data genom kryptografiska nycklar samt elektroniska signeturer.

Varför DNSSEC?
  • DNSSEC använder DNS för distribution av kryptografiska nycklar, signaturer och certifikat.
  • DNSSEC minskar risken för manipulation av namnuppslagningar. T.ex. förfalskningar av webbplatser.
  • DNSSEC möjliggör flexibel infrastruktur för distribution av nycklar och certifikat till t.ex. Epost, IPSec, TLS/SSL, VPN, SSH osv.
  • DNSSEC skyddar namnuppslagningar och erbjuder nyckeldistribution.
  • DNSSEC är flexibelt, enkelt, billigt, skalbart, och interoperabelt.

För mer information och länkar kring DNSSEC:
http://www.iis.se/domains/sednssec
http://en.wikipedia.org/wiki/DNSSEC


Förklaringar:
DNS: Domain Name System (Domännamnssystemet)
CACHE: Mellanlagringsminne
DNS CACHE POISONING: Injicering av falsk information i DNS-cache
DNSSEC: Domain Name System Security Extensions
NAT: Network Address Translation (IP-adressöversättning)
UDP SPR: User Datagram Protocoll Source Port Randomization
DDoS: Distributed Denial-Of-Service


Ny kristisk säkerhetsbrist funnen i Microsofts Server service

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

En säkerhetsbrist har upptäckts i MS Windows Server service. Bristen beror på att server-tjänsten felar i hanteringen av specialformaterade RPC-förfrågningar. En angripare kan manipulera ett RPC-paket som skickas till det sårbara systemet. Om attacken lyckas kan angriparen få total kontroll över systemet.

För att utnyttja sårbarheten i Windows Vista samt Windows Server 2008 krävs att angriparen har ett lokalt konto på systemet.

Microsoft har kategoriserat sårbarheten som "kritisk".

Påverkade versioner:

  • Microsoft Windows 2000 SP4
  • Microsoft Windows XP SP1/SP2/SP3
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Professional x64 Edition SP1/SP2
  • Microsoft Windows Server 2003 SP1/SP2
  • Microsoft Windows Server 2003 x64 Edition
  • Microsoft Windows Server 2003 x64 Edition SP2
  • Microsoft Windows Server 2003 SP1/SP2 (Itanium)
  • Microsoft Windows Vista
  • Microsoft Windows Vista SP1
  • Microsoft Windows Vista x64 Edition
  • Microsoft Windows Vista x64 Edition SP1
  • Microsoft Windows Server 2008 (32-bit/x64/Itanium)

Källa: Microsoft




Mycket kristiskt fel funnen i Microsoft IIS

En sårbarhet har rapporterats i Microsoft Internet Information Server, som kan utnyttjas av angripare att kompromettera ett sårbart system.

Sårbarheten orsakas på grund av ett "integer overflow" fel inom IPP (Internet Printing Protocol) ISAPI-tillägg till IIS vid behandling av särskilt utformad IPP svar. Detta kan utnyttjas för att exekvera godtycklig kod genom att lura en påverkas webbserver i anslutning till en skadlig IPP-server via en särskilt utformad HTTP "POST" begäran.

Ett framgångsrikt utnyttjande kräver att IPP är aktiverat i IIS.

Källa: Secunia


Säkerhetsbrister i VMware Workstation, VMware Player, VMware ACE, VMware Server och VMware ESX.

VMware har släppt uppdateringar till ett stort antal produkter. Uppdateringarna åtgärdar säkerhetsbrister så som informationsläckage, eskalering av rättigheter och potentiell kodexekvering.

För mer specifik information läs VMware's säkerhets meddelande.

Påverkade versioner:

  • VMware Workstation 6.0.4 och tidigare
  • VMware Workstation 5.5.7 och tidigare
  • VMware Player 2.0.4 och tidigare
  • VMware Player 1.0.7 och tidigare
  • VMware ACE 2.0.4 och tidigare
  • VMware ACE 1.0.6 och tidigare
  • VMware Server 1.0.6 och tidigare
  • VMware ESX 3.0.3 (utan rättningarna ESX303-200808404-SG, ESX303-200808403-SG, ESX303-200808406-SG)
  • VMware ESX 3.0.2 (utan rättningarna ESX-1005109, ESX-1005113, ESX-1005114)
  • VMware ESX 3.0.1 (utan rättningarna ESX-1005108, ESX-1005112, ESX-1005111, ESX-1004823, ESX-1005117)



Vad är en SQL-injektion?

En webbapplikation är sårbar för SQL-injektion då icke-validerad indata används för att bygga upp en SQL-sats. Antag att parametrarna "username" och "password" inte valideras i metoden "loginUser" (se kodexempel nedan). En användare kan då ange "' or '1'='1" i lösenordsfältet vilket ger följande SQL-sats (indata från lösenordsfältet är markerat i fet stil): select * from user_login where user='hubba' and pwd='' or '1'='1';

Denna SQL-sats returnerar aldrig ett tomt "result set" varför "loginUser" alltid returnerar "true". Angriparen har således kommit förbi autentiseringen. Eftersom SQL är uttrycksfullt är denna typ av sårbarhet allvarlig. Exempelvis kan angriparen utföra CRUD-operationer (Create, Read, Update, Delete), läsa meta-data eller anropa "stored procedures" vilka kan ha kopplingar till operativsystemet. För att skapa en applikationsanvändare i vårt exempel kan följande anges (";" terminerar en SQL-sats och "--" inleder kommentar):

  • select * from user_login where user='hubba' and pwd=''; insert into user_login values ('99', 'lucifer', 'dfgGSba71X_'); --';

// -- Sårbar Java-kod --
public boolean loginUser(Connection dbConn, String username, String password) throws SqlException {
String sql = "select * from user_login where user='" + username + "' and pwd='" + password + "'";
Statement stmt = dbConn.createStatement();
try {
return stmt.executeQuery(sql).next();
} finally {
stmt.close();
}
}


Lösningen på problemet är att aldrig konkatenera ihop en SQL-sats utan parametrisera den. Det går att göra i de flesta programmeringsspråk. Så här ser det ut i Java:

// -- Säker Java-kod --
public boolean loginUser(Connection dbConn, String username, String password) throws SqlException {
String sql = "select * from user_login where username=? and password=?";
PreparedStatement stmt = dbConn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
try {
return stmt.executeQuery().next();
} finally {
stmt.close();
}
}

Webbplatser baserade på ASP har varit mest drabbade av automatiserade attacker. Här att ett exempel i ASP:

' -- Sårbar ASP-kod --
' Assume that objConn holds connection to db.
strCmd = "select user_id, user_name from users where user_name='" + strUserName + "' AND password='" + strPassword + "'"
Set objCommand.ActiveConnection = objConn
objCommand.CommandText = strCmd
objCommand.CommandType = adCmdText
Set objRS = objCommand.Execute()
' Process the resultset

Problemet är att SQL-satsen konkateneras ihop med indata, precis som i Java-exemplet. Lösningen är densamma, nämligen att parametrisera SQL-satsen genom att använda "CreateParameter" och "Parameters.Append".


' -- Säker ASP-kod --
' Assume that objConn holds connection to db.
strCmd = "select user_id, user_name from users where user_name=? AND password=?"
Set objCommand.ActiveConnection = objConn
objCommand.CommandText = strCmd
objCommand.CommandType = adCmdText
Set param1 = objCommand.CreateParameter ("user", adWChar, adParamInput, 20)
param1.value = strUserName
objCommand.Parameters.Append param1
Set param2 = objCommand.CreateParameter ("password", adWChar, adParamInput, 50)
param1.value = strPassword
objCommand.Parameters.Append param2
Set objRS = objCommand.Execute()
' Process the resultset

Skydd mot SQL-injektion

Följande kan göras för att skydda sig då applikationen utvecklas:

  • Använd parametrisera SQL-satser. Bygg aldrig ihop en SQL-sats med indata. Se ovan för kodexempel.
  • Sanitetskontrollera och validera indata. All indata ska behandlas som ond! Använd ett klassbibliotek för validering av strängfält, datum, heltal, e-postadresser med mera. Viktigt är att valideringen inte sprids ut i koden, utan samlas på ett ställe. JavaScript-validering i klienten kan förhöja användbarheten men går inte att förlita sig på ur ett säkerhetsperspektiv. All indata måste valideras igen på servern eftersom en angripare lätt kan manipulera ett HTTP-anrop. Var restriktiv där det går, undvik exempelvis [<, >, ", #, --, ;, %, ?, @] i ett förnamnsfält. I vissa fall måste "farliga" tecken tillåtas, exempelvis kan citationstecken och "enkelfnutt" förekomma i kommentarsfält.
  • Anropa enbart "Stored Procedures" (SP). För att öka skiktningen kan alla SQL-satser i applikationen innehålla anrop till en SP istället för exempelvis en "select"-sats. Fördelen är att applikationen arbetar mot ett väl definierat gränssnitt, och det underliggande databasschemat kan ändras utan att gränssnittet och därmed applikationen påverkas. Lösningen ger även säkerhetsmässiga fördelar då det är mer naturlig att parametrisera SP-kod. Observera dock att det ingen garanti, eftersom det även i en SP går att konkatenera ihop SQL-satser. En annan fördel med skiktningen är att all SQL-kod samlas på ett och samma ställe, vilket underlättar kodgranskning.
  • Kodgranskning. Det finns två typer av kodgranskning:
    • Manuell: En utvecklare går igenom någon annans kod för att hitta buggar och säkerhetshål. Nyttigt och lärorikt om det görs kontinuerligt i utvecklingsteamet. För att leta efter SQL-injektionshål kan koden genomsökas efter förekomster av exempelvis "executeQuery()" (Java), "Execute()" i "ADODB.Command"-klassen (ASP) eller "Open()" i "ADODB.RecordSet"-klassen (ASP). En modern IDE underlättar arbetet, där det går att söka på exempelvis "alla anrop till denna metod" istället för rena textsökningar.
    • Automatiserad: En applikation går igenom källkoden och utför en statisk analys av den. MSCASI (Microsoft Source Code Analyzer for SQL Injection) är ett gratisverktyg som letar efter SQL-injektionsproblem i ASP-kod. För Java finns liknande verktyg, exempelvis Findbugs som är mycket användbar för generell analys. Findbugs är öppen källkod och är även integrerad i en kommersiell produkt som är mer inriktad på att hitta säkerhetsrelaterade buggar.
  • Automatiserade testverktyg. Denna typ av verktyg letar efter säkerhetshål genom att "spindla" applikationen för att ta reda på potentiellt sårbara sidor, och skickar sedan specialkonstruerade HTTP-anrop till dessa sidor. Microsoft har tillsammans med HP tagit fram verktyget Scrawlr som finns i en nerbantad gratisversion. Sqlmap är ett annat alternativ baserat på öppen källkod. Denna typ av verktyg är inte språkspecifika, exempelvis kan Sqlmap användas för att testa både Java- och ASP-applikationer. Samtidigt är vissa typer av sårbarheter knutna till plattformen, varför vissa testverktyg lämpar sig bättre än andra till en specifik applikation. Verktygen är också olika duktiga på olika typer av SQL-injektion. Att använda flera verktyg kan därför vara en bra lösning.
  • Logga. Vettig loggning i applikationen kan vara till stor hjälp vid en incident. Loggning förhindrar inte en SQL-injektion, men loggarna kan avslöja vilken del av koden som är sårbar.


Följande kan göras för att skydda en befintlig applikation:

  • Databasanvändare med begränsade privilegier. Webbapplikationen ska använda en egen användare i databasen med så få privilegier som möjligt. Använd aldrig "sa"-användaren eller motsvarande.
  • Applikationsbrandvägg. En applikationsbrandvägg fungerar som ett filter. Om URL:en innehåller en misstänkt SQL-injektion omdirigeras besökaren till en felsida. För Apache finns mod_security. Microsoft erbjuder gratis programmet UrlScan. Tyvärr är UrlScan 2.5 för primitiv för att skydda effektivt mot SQL-injektionsattacker eftersom det inte går att filtrera på "query"-delen av URL:en (dvs. allt efter "?"). Den nya versionen, UrlScan v3.0 Beta, är mer kraftfull och tillåter filtrering på "query strings". Tänk på att testa filtret ordentligt innan det tas i produktion. Blockas de URL:er som ska blockas? Håll koll på loggarna eftersom det finns risk att legitim trafik filtreras bort. De finns en rad kommersiella alternativ till UrlScan som ofta innehåller fler funktioner.
  • Övervaka webbserverns loggarna. Använd ett övervakningsprogram, exempelvis OSSEC, för att upptäcka möjliga attacker. Liksom applikationsloggar är webbserverns loggar vara värdefulla vid en incident.
  • En IDS (Intrusion Detection System), till exempel Snort, som lyssnar på trafiken till webbservern på paketnivå och varnar vid potentiella attacker är också ett värdefullt skydd. En IDS upptäcker endast angrepp medan en IPS (Intrusion Prevention System) även kan förhinda angrepp då den blockerar otillåten trafik.
Gunnar Sträng använde både hängslen och livrem, och satte dessutom fast sin plånbok i fickan med en säkerhetsnål. Han visste att god säkerhet bygger på många lager. Förlita dig inte på en metod eller ett verktyg, utan använd alltid flera.

Avslutningsvis vill vi tipsa om WebGoat, vilket är en applikation full av säkerhetshål gjorda med flit. Genom att exprimentera runt i applikationen fås en bra förståelse för hur en SQL-injektion fungerar.

Ibland tror man inte sina ögon

I jakten på information om nya säkerhetsbrister/virus/maskar etc, gjordes ett besök till Netcraft.com. Netcraft är ett företag som håller lite allmän kontoll över vas som händer på internet. Detta är vad jag hittade:
Netcraft övervakar: 71 723 098 siter
En ökning med: 1,33 millioner sedan i augusti

1,33 millioner webadresser på en månad.... Jeses och hur många av dessa tror ni är seriösa och nyttiga? Inte många tror jag personligen. Av alla dessa siter ligger 70% på Apache servrar och 20% på Microsoft servrar, och vid månadsskiftet beräknas det att Apache servrarna huserar över 50 millioner websiter.

Inte undra på att det börjar bli svårt att hitta information numera på internet.