Archive for the ‘Säkerhet’ category

Läsvärt om kryptering

juni 24th, 2008

Per von Zweigbergk

Fler artiklar om säkerhet

juni 12th, 2008

Ännu en artikel om säkerhet har hittat ljuset, vilket är bra. Denna gången är det aftonbladet.se som skriver om diverse säkerhetsaspekter man som användare borde vara medveten om. Det som skrivs i artiklen är riktat mer åt dig som utövar ”Svensson-IT”… alltså helt normala dator & internetanvändare och kanske inte direkt, men absolut inte uteslutande, personer som jobbar med IT och säkerhet.

Läs artikeln 

Man pratar bland annat om internetcafé och vilka risker det finns med att använda utrustningen som finns där. Som normalanvändare är dessa risker kanske inte något man själv tänker på, det är därför artiklar som dessa är viktiga. Eftersom så många personer sitter vid dessa datorerna, laddar hem saker, går in på diverse sidor osv.. så kan datorn vara helt nerlusad av spionprogram, virus, trojaner osv osv. Visst, du kan absolut använda datorn för att slösurfa, spela eller något annat.. men för guds skull… kolla inte din mail, logga inte in på någon sida och gör definitivt inga bankärenden.

Man skriver också att man aldrig installerar om dessa mellan varje användare (vilket kanske hade behövts)…. men då finns det ju faktiskt en väldigt bra lösning….Virtualisering! Okej… det kanske inte är så optimalt för en speldatorn… men en vanlig ”surfdator” skulle man absolut kunna virtualisera. Det fina med virtualisering är att du, efter en användare är klar, bara kastar ”installationen/operativet” och kör in ett nytt på momangen.

Alternativet till detta är att man har en återställningspunkt kopplat till varje maskin, och efter varje användare, återställer datorn till den punkten…eller att man helt enkelt kör allting från en skiva.

Äh… jag vet inte… tänker mest högt när jag skriver detta inlägget…. hur som helst… bra gjort av aftonbladet.se att ta upp detta, samt andra intressanta saker.

SQL-Injections på tapeten igen

juni 9th, 2008

Idag skriver idg.se bland annat om SQL-injections i artikeln ”Inte ens experterna går säkra för hacken”. Jag tycker det är otroligt bra gjort av IDG.se att ta upp säkerhetsfrågan gång på gång. Det är uppenbart att just sql-injections ökat den senaste tiden och denna uppmärksamhet man nu ger ämnet är väldigt bra. Som programmerare måste man ständigt hålla sig uppdaterad om de senaste metoderna för att skydda sig mot diverse hack.

Hur skyddar man sig?
Om vi pratar rent tekniskt så skiljer det sig sinsemellan programmeringsspråken men det finns en gemensam nämnare. Kontrollera Allt som surfaren skickar eller kan påverka… alltså formulär, URL’en osv. Lita inte på någon. Du ska även alltid göra väldigt omfattande tester av din sida eller applikation innan den blir offentlig. Om du själv inte vet hur du ska testa din skapelse går det alltid att anlita profesionellt folk som kan göra detta åt dig. Det ska även nämnas att det finns ingenting som är 100% säkert och det är någonting man måste leva med.

Till er som är nya eller har precis börjat programmera i något språk… spendera mycket tid på säkerhetsbiten. Lär er om SQL-Injections, XSS och alla andra former av vanliga hack. Det är väldigt viktigt att ni har en bra grund att stå på, men även att ni håller er uppdaterade. Ett exempel på vad du kan vinna om du håller dig uppdaterad är t ex PDO med prepared statements. I PHP skyddade man sig ofta med addslashes, sen blev det mysql_real_escape_string, samt PHP’s egna magic_quotes i PHP.ini (Försvinner i PHP versionen 6.0.0)… ingen av dessa metoder är skulle jag rekommendera idag till någon. Lär er PDO med prepared statements istället.

Spray har hackats…igen!

maj 30th, 2008

Det var inte alls för många dagar sedan som jag uppmanade personer och verksamheter som driver sajter på nätet att ta tag i sina säkerhetsproblem… främst gällande lagring av användaruppgifter i databas. Nu har det hänt igen, spray har hackats. Första sidan har bytts ut och det sägs även att kontouppgifter läckt ut, precis som förra gången. Lösenorden lagras i klartext, vilket är rent ut sagt fucking crazy, speciellt när det handlar om en sida så stor som spray.se med väldigt många medlemmar…. de borde skämmas.

Om man besöker flashback.info kan man få se uppgifterna för ett adminkonto och hur pass bra lösenord dem själva har. I detta fallet var användarnamnet admin och lösenordet adminpassword vilket är i stil med aftonbladets IT-ansvariges(eller vad han nu va) lösenord anakin.

På idg.se skriver man att lösenord fortfarande kommer lagras i klartext i ytterligare en månad framöver tills man har gått över till sin nya mejplattform….

Ni kan läsa mer om denna nyhet på följande sidor

aftonbladet.se
flashback.info
idg.se

En uppmaning till er som driver sidor på nätet!

maj 24th, 2008

Trots att det nästan dagligen skrivs om sidor som blivit hackade så fortsätter folk att spara sina lösenord i klartext. Varför? Det finns också dem som tror att det räcker att hasha lösenorden med md5 eller sha1 en gång, sen lagra dem i databasen. Vi pratar inte om några små, hobby sidor, utan stora vinstdrivande sidor som inte tycks veta bättre, eller är för lata för att skydda sina användare.

Vi lever i 2008! En tid där vilken 12-åring som helst kan knäcka ett hashat ”svensson” lösenord med hjälp av gratis mjukvaror. Det finns så kallade rainbow tables där ute som också är gratis, eller om man har tid och ork, kan skapa själv.  Hur man skyddar sig mot att få sina lösenord knäckta är väldigt simpelt. Det du behöver göra är att lagra dina lösenord hashade och saltade. Vad detta innebär är att du skapar ett slumpalt salt på x antal tecken som du sedan bakar in i hashen med lösenordet. Du sparar sedan det hashade lösenordet+saltet och saltet i databasen, så att du vid inloggning kan matcha inskrivna lösenord mot de som finns i databasen.

Detta förebygger användningen av rainbow tables eftersom varje lösenord då är unikt. Enkelt förklarat så betyder det att om användaren ”Björn” och ”Per” har samma lösenord (potatis), ser hashsträngen inte lika dan ut. Hackaren måste bygga upp en rainbow table för varje användare (om man har unika, slumpade salt)…och detta är Otroligt tidskrävande.

Detta kan man kalla det sista skyddet eftersom om hackaren har fått tag på användaruppgifterna från databasen, betyder det att han antagligen har kontroll över databasen.. eller så har du extremt dåligt skydd mot SQL-injections och korkad konstruktion på din databas.

Säkerhet i lager

mars 3rd, 2008

Det pratas idag extremt mycket om säkerhet i media på grund av alla hemsidor som blivit utsatta för attacker, webbhotell som släckts ner och massa annat.  ”Säkerhet” har blivit ett extremt hett ämne att diskutera, vilket jag faktisikt tycker är bra. Vi lär oss av våra misstag, vi får ta del av andras misstag, vilket gynnar oss som jobbar med säkerhet… oavsett inom vilket område du jobbar. Jag vill dela med mig av en liten ”modell” eller vad man vill kalla det där jag genom olika lager illustrerar hur man skulle kunna tänka när det gäller säkerhet. Mer specifikt, säkerhet för en server… detta eftersom servern, och dess innehåll oftast är det man vill skydda.

Det här med lager är inte mitt påhitt, men jag tycker det är ett bra sätt att visa hur jag menar.  Jag ”lånar” OSI modellen lite för att illustrera. Sen vet jag inte om det jag illustrerar existerar (ni får gärna rätta mig)… om det Inte gör det så döper jag modellen till BSPIL – Model (Basic Security Protection In Layers)

Lager 1 – Fysiska lagret
Begränsa fysisk åtkomst till din server. Hur du begränsar det beror på vad du ska skydda, men någon form av kontroll där man endast tillåter viss personal åtkomst till det man vill skydda. Det svåra är att bestämma vilka man ska lita på. Fel person och du kan råka ut för sabotage!

Lager 2 – Remote
Om din server tillåter fjärraccess är det extremt viktigt att även här kontrollera vilka som ska få åtkomst, samt vad de kan göra. Utöver detta är det även extremt viktigt hur anslutingen till servern ser ut. Trafiken bör köras genom en VPN tunnel, samt om det finns ett webbinterface så bör du köra med SSL. Kort sagt.. kryptera allting som man kan få åtkomst till externt!

Lager 3 – Portar och Processer
Väldigt viktigt att ha koll på vad som är öppet utåt(internet), och vilka processer(tjänster) som servern kör. I standard utförandet av en server (nyinstallerad) finns det en bunte öppna portar och körande processer. Portar man inte använder vill man stänga, processer som inte används vill man stoppa. Du bör använda dig av en brandvägg och router (fristående enheter, eller kombinerade) för att begränsa vad som är öppet utåt (portar mm). Att endast ha en mjukvaru-brandvägg på samma dator/server som du vill skydda är fel. Du bör ha båda delarna.. alltså en enhet som finns mellan datorn/servern och internet och en mjukvaru-brandvägg i datorn. Blockera alla portar som inte behövs utifrån (21, 22, 23, 25, 53 mm).

Låt oss anta att du vill ha åtkomst porten 23(TELNET) extern för att kunna styra routern. Det man kan göra då är att blockera alla portarna så att externa användare inte kan ansluta till dessa portarna. Du skapar sedan en VPN tunnel mellan dig och det lokala nätverk du vill ha åtkomst till, får en lokal ip-adress och på så sätt kan du lokalt få åtkomst till telnet.

När det gäller processer som körs bör man först och främst ha koll på vad man behöver. Du kan därefter ”döda” de processer som inte är av nytta (hur man gör det beror på operativet). Du bör endast köra de processer som behövs… Inte mer.

Lager 4 – Lösenord
Detta är oftast det sista hindret för en hackare och man bör därför ta lösenord och hantering av lösenord på fullaste allvar. Ett svagt lösenord (god, qwerty, dog, boll, anakin…..) är bland det farligaste som finns. Med punkterna nedan vill jag visa hur man bör (enligt mig) hantera lösenord.

  • Använd inte kända ord (katt, hus, mamma, anakin)
  • Blanda gärna bokstäver, siffror och specialtecken (LE_p4zz0, 1r1nzid3_, ytm0nt-3rIn.g)
  • Att ha längre lösenord är bra, men man behöver inte överdriva (8-16 tecken räcker)
  • Byt lösenord så ofta du kan (varje eller vart annan månad)
  • Skriv inte ner lösenord. Memorera dem!
  • Använd sunt förnufft vid lagring av dem på webbserver. (Hash+salt för att skydda mot bland annat brute force attacker)Detta är inte alt man bör ha i åtanke.. men det är en början när det gäller säkerhet.Jag kommer fylla på ”modellen” efterhand och kanske även göra någon slags grafisk illustrering.