WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur skapar man en säker webbplats? (https://www.wn.se/forum/showthread.php?t=27261)

Adam N 2008-02-18 20:12

Som jag nämnt i några andra trådar, så håller jag på med en sajt där
säkerhet kommer vara viktigt. Jag har då tänkt använda SSL på allt,
dvs allt kommer gå via https. Besökare som försöker använda http
kommer automatiskt dirigeras om till https. FTP kommer inte finnas
utan istället kommer jag använda SSH/SCP.

Låter det som en bra början?

Vidare kommer jag använda Drupal (baserat på PHP), MySQL, Linux (eller
FreeBSD). Kommer då säkra upp dessa efter konstens alla regler och
prenumerera på update-alerts så jag kan hålla dessa up-to-date med alla
säkerhetspatchar etc.

Är det naivt att tro att jag kan få till detta på egen hand?

Tar tacksamt emot både konkreta tips och länkar till webbsidor där jag
kan läsa på mer om detta.

Har själv hittat följande sida som verkar vara en bra start:

http://www.cgisecurity.com/questions...ewebsite.shtml

MMC 2008-02-19 09:47

Det beror helt på vilken typ av information som kommer hanteras på sajten, och kostnaden för ett eventuellt säkerhetsintrång. All kod som körs på din server kan innehålla potentiella säkerhetsproblem, från OS:et genom webbservern till Drupal. Om säkerheten är viktig för att dina användare kommer att spara lite känsliga fyllebilder, så är det nog helt OK. Om dina användare sparar information om sina ljusskygga skatteupplägg däremot...

Jämför kostnaden för ett eventuellt intrång med kostnaden för en säkerhetsgenomgång av erfarna säkerhetskonsulter (nej, jag är inte en sådan). Givet alla intrång på stora sajter den senaste tiden så känns det ju i och för sig inte som du har mycket att leva upp till ;)

Kurdix 2008-02-19 09:59

Citat:

Som jag nämnt i några andra trådar, så håller jag på med en sajt där
säkerhet kommer vara viktigt.

Tror nog alla tar sina sajters säkerhet som viktigast.

Adam N 2008-02-19 12:25

Citat:

Originally posted by Kurdix@Feb 19 2008, 10:59
Citat:

Som jag nämnt i några andra trådar, så håller jag på med en sajt där
säkerhet kommer vara viktigt.

Tror nog alla tar sina sajters säkerhet som viktigast.

Nja, har man sin sajt på ett vanligt webbhotell-konto,
så ser man nog inte säkerheten som det viktigaste.

Kurdix 2008-02-19 12:36

Det är för att man lägger all ansvar för säkerheten på webbhotellet.

Adam N 2008-02-19 13:31

Citat:

Originally posted by MMC@Feb 19 2008, 10:47
Det beror helt på vilken typ av information som kommer hanteras på sajten, och kostnaden för ett eventuellt säkerhetsintrång. All kod som körs på din server kan innehålla potentiella säkerhetsproblem, från OS:et genom webbservern till Drupal. Om säkerheten är viktig för att dina användare kommer att spara lite känsliga fyllebilder, så är det nog helt OK. Om dina användare sparar information om sina ljusskygga skatteupplägg däremot...

Sajten kommer bland annat innehålla dolda forum och medlemmarna ska kunna
skicka privata meddelanden till varandra (precis som man kan göra här på WN).
Jag kommer inte ha råd att garantera medlemmarna 100% säkerhet, så jag
kommer friskriva mig från sånt ansvar. Ett intrång skulle troligtvis göra att
medlemmarnas förtroende för sajten och mig skulle sjunka rejält och därmed
skulle det bli en indirekt ekonomisk förlust i alla fall.

Det är också viktigt att medlemmarna får en känsla av att sajten är säker och
seriös. Jag vill också personligen veta på vilket sätt sajten är säker, så jag
kan besvara en del frågor från medlemmar som kan mer om säkerhet än vad
jag kan.

Adam N 2008-02-19 13:42

Citat:

Originally posted by Kurdix@Feb 19 2008, 13:36
Det är för att man lägger all ansvar för säkerheten på webbhotellet.

Ok, det är en betydligt högre säkerhet jag är ute efter. Vill ha egen server eller
VPS som bara jag själv har möjlighet att logga in på och all trafik till och från servern
ska vara krypterad på ett eller annat sätt.

Jag tror inte det går att helt förlita sig på webbhotellet heller. Om jag t ex ska köra
Drupal så kan jag väl inte förvänta mig att att webbhotellet håller den up-to-date
eller finns det webbhotell som erbjuder sånt?

Kurdix 2008-02-19 14:40

Nej självklart inte, det var inte det jag menade.
Men ingenting är ändå säkert, hackarna är alltid ett steg före.
Hursomhelst, har själv 2 st servrar med w2k3 server, en php och en asp server.
Har endast port 80 öppen och har läst på överallt för att göra den så säker som möjligt.
Tvivlar starkt på att den skulle vara öppen för hack.
Själv kommer jag åt allting, ftp och remote desktop m.m.

SSH gör den inte mer hacksäker mot servern, utan det är mer att hackarna inte kan komma åt den information som sänds mellan servern och klienten (o vice versa).

Adam N 2008-02-19 16:25

Citat:

Ursprungligen postat av Kurdix
Men ingenting är ändå säkert, hackarna är alltid ett steg före.

Det där låter som en dålig ursäkt för att inte göra någonting åt
säkersbrister. Alla hackers är inte superhackers som tar sig in
var de vill när de vill. Skulle tro att de flesta bara klarar av att
ta sig in på dåligt uppdaterade servrar och det kan vara
halvdåliga hackers som är farligast när de väl har tagit sig in.

Citat:

Originally posted by -Kurdix@Feb 19 2008, 15:40

Hursomhelst, har själv 2 st servrar med w2k3 server, en php och en asp server.
Har endast port 80 öppen och har läst på överallt för att göra den så säker som möjligt.
Tvivlar starkt på att den skulle vara öppen för hack.
Själv kommer jag åt allting, ftp och remote desktop m.m.

Om du kör ftp och remote desktop så har du nog mer än port
80 öppen.

Citat:

Ursprungligen postat av Kurdix
SSH gör den inte mer hacksäker mot servern, utan det är mer att hackarna inte kan komma åt den information som sänds mellan servern och klienten (o vice versa).

Det stämmer att SSH (och https) inte i sig skyddar mot hack,
men det gör det definitivt svårare för hackers att lyssna av
användarnamn, lösenord och annat som skickas mellan klienten
och servern. Alltså information som kan användas för att ta sig
in på servern.

Nu vill jag inte vara otrevlig, men det känns som att du inte är
riktigt insatt i den typ av säkerhet som jag är ute efter. Det är
inte jag heller, så jag hoppas någon annan än vi två kan
skriva lite mer i den här tråden. :unsure:

MMC 2008-02-19 18:26

Håll all mjukvara uppdaterad och ha bara tre öppna portar på servern: 80, 443 och 22. Kör bara stabila versioner av all din mjukvara, inga betavarianter eller liknande.

80 ska bara redirecta till din SSL-sajt på 443. Kör kanske till och med en lättviktsserver typ lighttpd på port 80 som redirectar till apache på 443.

Använd public key authentication för SSH och stäng av lösenordsinloggning. IP-lås SSH-inloggningen om du är paranoid. Tillåt bara att din användare loggar in via SSH och får shell. Kör krypterade backups så ofta som är rimligt beroende på innehållet. Använd tripwire. Etc.

Använd inga webbaserade system för att administrera servern, eller om du måste, kör dom på en egen server och port, som bara lyssnar på localhost, och tunnla över SSH.

Där har du några tips :)

Adam N 2008-02-19 22:15

Tack MMC. Precis den typen av info jag är ute efter.

Angående Tripwire, duger open source alternativen till samma sak? Kollade lite på Osiris för ett par år sedan.

MMC 2008-02-20 09:47

Citat:

Originally posted by Adam N@Feb 19 2008, 23:15
Angående Tripwire, duger open source alternativen till samma sak? Kollade lite på Osiris för ett par år sedan.
Jag har inte själv använt det, men det funkar säkert också. En fördel med Open Source är ju att du har källkoden om du vill göra en säkerhetsgenomgång i ett senare skede.

Adam N 2008-02-20 10:27

Ok, gratis är ju alltid trevligt om det ger tillräckligt resultat.

Jag har en galen idé att använda brandväggen IPCop som operativsystem på
servern. Skulle det kunna funka eller är det bara galet. IPCop är alltså en
brandvägg baserad på Linux och den innehåller Snort som IDS. Alternativet
är att köra någon vanlig säker Linux-distro eller FreeBSD och konfa upp med
brandvägg etc.

MMC 2008-02-20 10:46

Citat:

Originally posted by Adam N@Feb 20 2008, 11:27
Jag har en galen idé att använda brandväggen IPCop som operativsystem på
servern. Skulle det kunna funka eller är det bara galet. IPCop är alltså en
brandvägg baserad på Linux och den innehåller Snort som IDS. Alternativet
är att köra någon vanlig säker Linux-distro eller FreeBSD och konfa upp med
brandvägg etc.

Jag tror ärligt talat inte att du vinner så mycket på det, och det kan lätt bli riktigt jobbigt att få en brandväggsdistro att bli webb- och databasserver. Vill du glassa med ditt OS-val kan du ju titta på OpenBSD - om paranoikern själv får välja.

JonathanJames 2008-02-20 13:29

Kör exempelvis OpenBSD + ipchains

Kör för guds skull inga tjänster (sendmail/qmail, apache etc) som root

Inloggning via SSH på en icke-standard port med starka lösenord (12 tecken +) som
bytes åtminstone en gång i månaden. Använd inte ett lösenord här som du använder
någon annanstans (om ex. ditt konto på bilddagboken.se eller liknande blir hackat).

Begränsa åtkomst via SSH. Köp in en extern VPN-tjänst med statiskt IP som du
använder för att ansluta mot servern. I värsta fall så kan du ju även begränsa åtkomst
till din SSH till din ISP:s C eller B-nät (om du har en dynamisk IP-adress)

Stäng alla portar förutom de du absolut behöver..
HTTP+HTTPS+SMTP+FTP+POP3+DNS+SSH brukar räcka för de flesta.

Gå med i mailinglistor som bugtraq och leverantörernas egna mailinglistor för att snabbt få information om nyupptäckta säkerhetshål, kolla även milw0rm, packetstormsecurity då och då. Uppdatera mjukvarorna kontinuerligt :)

Ha alltid daglig eller veckovis backup, beroende på vad du kör för tjänster och vad du har för kunder.

Kör inga PHP-lösningar som du hittat på torrent-siter eller bloggphpwarez.superblogrussia.ru osv.. Om inte pga det omoraliska att köra piratkopior så i alla fall pga bakdörrsrisken.

Om du vill köra CPanel/Plesk eller liknande, gör det ENDAST över SSL. ALDRIG över vanlig HTTP-förbindelse eftersom inloggningsuppgifterna då skickas i klartext och kan snappas upp.

Ställ in i din e-mailklient att endast skicka och ta emot mail via SSL/TLS.

Ge inte ut massa shell-access till kompisar eller kunder.

Spara inte ned användarnamn och lösenord på din dator. Om du känner att du ändå vill göra det, tanka hem Truecrypt (Truecrypt.org), lägg textfiler med användaruppgifter på en krypterad partition som du endast mountar om du skulle glömma dessa uppgifter.

Använd inte cachade-lösenord i din webbrowser (om du t ex använder CPanel/Plesk, webmail eller liknande). Använd INTE samma lösenord för SSH som du gör för info@dindomän.com.

Installera antivirus på din klientmaskin (som du arbetar mot servern med). Kasperskys paket är bra (www.kaspersky.com). Uppdatera antivirusprogrammet minst en gång om dagen. Lösenordsskydda även nedstängning av antiviruset (finns som inställning i de flesta antivirus idag, inklusive Kaspersky).

Finns hur mycket råd som helst att ge egentligen, detta var några iaf..

JJ

Kurdix 2008-02-20 15:49

Citat:

Originally posted by Adam N@Feb 19 2008, 17:25

Om du kör ftp och remote desktop så har du nog mer än port
80 öppen.

Alla portar är öppna inom nätverket. Endast 80 är öppen för alla.

Men hoppas allt löser sig för dig =)

Adam N 2008-02-20 15:51

Wow! Tusen tack Jonathan (och även MMC)!

Det där var 10 gånger mer än jag någonsin hade väntat mig. Känns
lite som att jag beställde en korv med mos och fick en trerätters
middag serverad av kocklandslaget. :)

Jag tar gärna emot fler tips, men nu har jag så jag klarar mig några
månader tror jag.

Hoppas jag kan göra något i gengäld en vacker dag.

Adam N 2008-02-20 16:20

Citat:

Ursprungligen postat av Kurdix
Citat:

Ursprungligen postat av Adam N
Om du kör ftp och remote desktop så har du nog mer än port
80 öppen.

Alla portar är öppna inom nätverket. Endast 80 är öppen för alla.

Men hoppas allt löser sig för dig =)

Aha, det var så du menade. Det förklarar saken. Tackar. Det ska nog
bli bra det här.

Ska sätta mig in så mycket som möjligt kommande veckorna så får jag
sen avgöra om jag behöver anlita någon expert eller om det verkar
räcka med det jag har lärt mig.

Sajten kommer delvis rikta sig till säkerhetsexperter, så det är mycket
möjligt att någon av medlemmarna kommer hjälpa till frivilligt på sikt,
men det är bra att ha en bra grund att bygga vidare på.

Kiper 2008-02-20 16:31

Måste också tacka JJ för tipsen. Gav mig lite mer idéer om hur man ska gå tillväga för att höja säkerheten. Jag har suttit och tittat i böcker som "Hacking Linux" men det har känts som för mycket uppförsbacke. Nu kändes allt plötsligt så enkelt! :)

Adam N 2008-02-20 19:05

Jonathan (eller någon annan som vet), om man följer dina råd ovan, bör man då ha
en dedicerad server eller går det lika bra med VPS?

JonathanJames 2008-02-20 20:48

Tänkte sätta samman en mindre guide (dock större än den som finns här) med lite praktiska tips vad gäller webserversäkerhet, det mesta baserat på praktisk erfarenhet från min IT-säkerhetskonsultverksamhet. Blir nog ett projekt som jag kan jobba på ett tag framöver.. lägger väl upp första revisionen senare ikväll någon gång.

Tänkte komplettera rätt mycket med struktur, länkar och lite mer ingående tips för bl a PHP-utvecklare.

Vi får se hur det går, rätt mycket som ska skrivas ;)

JonathanJames 2008-02-20 20:53

Citat:

Originally posted by Adam N@Feb 20 2008, 20:05
Jonathan (eller någon annan som vet), om man följer dina råd ovan, bör man då ha
en dedicerad server eller går det lika bra med VPS?

Finns nog rätt mycket mer erfaret folk här som kan VPS bättre.. Men om jag ska ta det från säkerhetsperspektivet så ska det generellt sett inte spela någon roll eftersom VPS:er funkar ungefär på samma sätt som en dedikerad server med undantaget för att man delar på resurserna med andra som har VPS:er på samma maskin.

Däremot kanske man kan fundera över skillnaden mellan "Operativsystemvirtualisering" och "Hårdvaruvirtualisering". Möjligtvis kan det finnas buggar eller säkerhetsproblem i Operativsystemsvirtualiseringen som man inte känner till än.

Kanske är jag ute och cyklar..

Ska man köra en större lösning är nog dedikerad server bättre eftersom en större VPS kostar ungefär lika mycket som en dedikerad server.

Svamlar jag? :)

SimonP 2008-02-20 22:46

Forum brukar ofta ha många buggar, här kan det vara värt att köra kommersiella varienter, som t.ex vBulletin. Modifiera själva forum-inloggningen så att din inloggning blir unik.

Lås alla sessionsID till IP-nummer för att minimera problemen med XSS/Session HiJacking - attacker.

SSL är bra men det kan även ge en "falsk" säkerhetskänsla, skicka aldrig lösenord i klarttext över nätet, även om man kör SSL.

JonathanJames 2008-02-21 00:45

Med risk för att få ett ont öga eller två av moderatorn här så har jag postat min lilla vidareutveckling av säkerhetstipsen på min blogg:

http://www.jonathanj.com/2008/02/21/...ur-web-server/
Funkar inte så bra att paste:a hela blogg-artikeln i IPB's post-ruta. Blir inte så snyggt om man säger så.

Adam N 2008-02-21 09:04

Jonathan: Underbart att du delar med dig av din kunskap på detta
sätt. Den där sidan kan mycket väl bli en klassiker. Än en gång stort
TACK! Jag har några små synpunkter, men det tar jag via PM senare.

SimonP: Tack för tipsen. Jag hade tänkt köra Drupal som CMS. Ska
se om den är tillräckligt säker. Om inte, så ska jag tipsa dem om hur
de kan göra den säkrare och kanske själv bidra med utveckling om
jag kan.

JonathanJames 2008-02-21 13:07

Har uppdaterat blogg-posten litegrann (SFTP/FTPS, osv).

Är det något annat specifikt IT-säkerhetsmässigt som kan vara av intresse för någon här?

Eventuellt tänkte jag att jag kan skriva en post om hur man kodar säkra inloggningsscript som inte tillåter SQL-injection samt hur man hanterar lösenord/kreditkort på ett hyfsat säkert sätt.

Det bör väl vara rätt intressant med tanke på vad som hänt de senaste månaderna (hacken av piratebay, bilddagboken, webhotell osv).

SimonP 2008-02-21 13:13

Det finns en del gamla trådar också, här är några:

http://www.webmasternetwork.se/f4t26147hl-st0.html
http://www.webmasternetwork.se/f2t26277hl-st0.html

Adam N 2008-03-23 13:40

Många rekommenderar OpenBSD, men jag hittar ingen VPS-leverantör
som specifikt stödjer detta. Samma sak med FreeBSD. Vad beror det på?


Alla tider är GMT +2. Klockan är nu 19:38.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson