2019-11-09

November 2019 - OWASP Proactive C3: Secure Database Access

Några områden att beakta för säker databasaccess:

  1. Säkra SQL-frågor
  2. Säker konfiguration
  3. Säker autentisiering
  4. Säker kommunikation

Säkra SQL-frågor

Trots att de flesta känner till SQL injection så finns det ändå många fall där en applikation/webbplats är sårbar för det. Ofta kan man komma åt precis hela databasen genom att lämna ett enda hål öppet för SQL injection. Man undviker enkelt sårbarheten genom att parametrisera SQL-frågorna. Kolla på den här webbsidan för hur man gör det för de vanligaste programmeringsspråken:
Andra sätt är att validera indata och att hantera de specialtecken som skickas (ex. i PHP mysqli::real_escape_string).

Säker konfiguration

Kontrollera att databasens konfiguration är korrekt och att säkerhetskontroller är aktiverade. Sök nätet för att hitta det som gäller för din databas.

Säker autentisiering

All access till databasen ska vara autentiserad och gjord på ett säkert sätt.

Säker kommunikation

Använd säker kommunikation (autentisierad och krypterad) för all kommunikation med databasen.




Nyheter för månaden:
  • För att minska risken för att exponera sårbarheter kommer versionerna av olika mjukvaror att döljas och vilka uppdateringar som har gjorts kommer inte att publiceras. Uppdateringar av alla mjukvara sker kontinuerligt för att täppa till alla kända säkerhetshål.
  • Är man kund och behöver veta exakt vilken version som körs så skicka en fråga till supporten.

2019-09-30

Oktober 2019 - OWASP Proactive C2: Leverage Security Frameworks and Libraries


En utvecklare har inte alltid tillräckligt med kunskap, tid eller budget för att implementera den säkerhet som krävs. Genom att använda bibliotek och ramverk som tillhandahåller den säkerhet som behövs så uppnås säkerhetsmålen mer effektivt och mer korrekt.

Hur implementera?
1. Använda bibliotek och ramverk från kända källor som underhålls och används av många applikationer.
2. För en lista på alla tredjepartsbibliotek som används.
3. Håll bibliotek och komponenter uppdaterade. Använd gärna verktyg för att kontrollera mot kända sårbarheter: OWASP Dependency Check och Retire.JS.
4. Exponera så lite som möjligt av biblioteken för att minska attackmöjligheterna.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s04
    • Inget nytt.

2019-09-18

September 2019 - Backup av Google Calendar

Jag är till stor del beroende av Google Calender för att planera vad jag ska jobba med och göra på dagarna. Även saker som ska göras om exempelvis 5 år som att förnya mitt pass lägger jag in vid ett passande datum. Just pass är lagom att förnya 6 månader innan det går ut då det finns en del länder som kräver att man har ett pass med minst 6 månaders giltighetstid vid inresan. Även förnyelse av vaccinationer och allt annat jag tycker är viktigt att faktiskt inte tappa bort.

Om man som jag är så beroende av Google Calendar så skulle det vara ödesdigert om kalendern helt plötsligt inte fungerade av någon anledning. Det kan vara att Google Calendar ligger nere eller att någon tagit över ditt konto och rensat allt du lagt in eller att någon kalendermjukvara du använder för att hantera din kalender löper amok och rensar lite sporadiskt.

Den lösning jag som nu implementerat är att helt enkelt automatiskt ta regelbundna backuper av mina kalendrar i Google Calendar. För det så använder jag en Raspberry Pi med en extern hårddisk kopplad till sig. Den kör Raspian som är en version av Debian, dvs. Linux.

Surfa först till https://calendar.google.com/calendar/r/settings och klicka på den kalender du vill ta backup på. Skrolla ner tills du ser "Hemlig adress i iCal-format". Den ser ut ungefär så här:
https://calendar.google.com/calendar/ical/xxxxx/basic.ics

Skapa ett bash script på din Linuxmaskin:
#!/bin/bash
now=`date + “%Y-%m-%d”`
backup_folder=”/media/disk1/backup/google_calendar”
wget --output-document $backup_folder/calendar_name1_$now.ics <ical URL>

Byt ut name1 till vad filen ska heta och <ical URL> till rätt ical-adress. I mitt fall blir det:
wget --output-document $backup_folder/calendar_min_kalender_$now.ics https://calendar.google.com/calendar/ical/xxxxx/basic.ics

Jag lägger mina backuper i foldern /media/disk1/backup/google_calendar/ som går till den externa hårddisken. Har man flera kalendrar så är det bara att lägga till fler rader med wget. Jag har just nu 3 kalendrar som jag tar backup på.

Scriptet schemalägger jag med cron och kör det en gång per vecka.

Då varje fil får ett nytt namn så kommer det bli minst en ny fil varje vecka så tänk på att städa upp bland backuperna regelbundet. Jag har ett annat bash-script som jag kör varje vecka som tar bort alla filer som är äldre än 62 dagar (ca 2 månader):
#!/bin/bash
backup_folder=”/media/disk1/backup”
find $backup_folder/google_calendar -type f -mtime +62 -exec rm -f {} \;

Det är förberett för att hantera andra typer av backuper som ex. Google Drive, Wunderlist och Microsoft To Do och det är bara att lägga till de foldrar man vill rensa från.


System och tjänster som uppdaterats sedan förra uppdateringen:

2019-08-26

Augusti 2019 - OWASP Proactive C1: Define Security Requirements

Steg 1 är att upprätta en lista med de säkerhetskrav en mjukvara (applikation, webbplats o.dyl.) ska uppfylla.

OWASP har ett projekt där de tagit fram ett dokument med många av de säkerhetskrav som bör uppfyllas av en applikation: OWASP Application Security Verification Standard (ASVS) Project
Det är en ganska diger lista som bör täcka in det mesta som man bör tänka på.

Om man använder säkerhetskraven på ett lyckat sätt så består det av följande steg:
1. Välj ut - Välj ut de krav som ska uppfyllas i en release. Välj ut lagom många i varje release. Iterera sen och implementera fler och fler.
2. Undersök och dokumentera - Undersök hur väl applikationen uppfyller säkerhetskraven och dokumentera det.
3. Implementera - Modifiera applikationen till att uppfylla säkerhetskraven.
4. Testa - Testa att säkerhetskraven är uppfyllda.


System och tjänster som uppdaterats sedan förra uppdateringen:

2019-07-01

Juli 2019 - Inline Google Spreadsheet Viewer (Wordpress plugin)

Tips om Wordpress plugin - Inline Google Spreadsheet Viewer

På en av mina Wordpress-siter (min personliga sida där jag lägger upp resultat från alla tävlingar och lopp jag deltar i - https://www.e7andy.se/sport/) hade jag en stor HTML-tabell (old school!) med data som jag uppdaterade och underhöll. Visst tog jag backup av Wordpress-siten, men det kan vara ganska bökigt att återställa data så att den blir precis som tidigare. Då tänkte jag att jag tar en backup och lägger i ett kalkylark på Google Drive, men då blir det dubblering av data vilket är väldigt onödigt. Det kommer ofelbart att hamna ur synk. Det slog mig då att det kan ju finnas en plugin till Wordpress som kan läsa från ett kalkylark och visa upp det på en Wordpress-sida.

Det blev mycket bättre än jag någonsin kunde önska - https://www.e7andy.se/sport/
Funktioner som jag fick per automatik var sortering på valfri kolumn och en sökfunktion så att man blixtsnabbt kan filtrera fram det man önskar se. Den ser även till att anpassa tabellen utifrån bredden på den webbläsare man använder och kollapsar ner data som inte kan visas till en lista för varje rad.
Alla ändringar gör jag nu direkt i Google Drive istället för att gå in i Wordpress. Att redigera sidor i Wordpress är ju inte alltid det enklaste.
Det tar lite tid innan uppdateringarna visas på Wordpress-sidan. Det kan vara någon cachningsfunktion. Jag har inte kollat på det för så som jag använder pluginen så kvittar det att det tar en stund innan ändringarna visas.

Om man vill så går det att konfigurera väldigt mycket för hur kalkylarket ska visas. Jag har gjort några enklare ändringar:
[gdoc key="xxx" datatables_paging="false" datatables_order='%5B%5B 2, "desc" %5D%5D']My competitions and races[/gdoc]

key - Länk till kalkylarket. Det måste vara publikt minst via en länk.
datatables_paging="false" - Slår av paginering så att allt visas på en sida.
datatables_order='%5B%5B 2, "desc" %5D%5D' - Sorterar på kolumn 2 (kolumnindex startar på 0). %5B och %5D beror på att man måste koda om "[" och "]".



System och tjänster som uppdaterats sedan förra uppdateringen:
  • s04
    • Inga större ändringar.

2019-06-12

Juni 2019 - OWASP Top 10 Proactive controls

OWASP (Open Web Application Security Project) har tagit fram en lista med de viktigaste säkerhetsteknikerna som bör användas i alla mjukvaruprojekt:
OWASP Top 10 Proactive Controls

C1: Define Security Requirements
C2: Leverage Security Frameworks and Libraries
C3: Secure Database Access
C4: Encode and Escape Data
C5: Validate All Inputs
C6: Implement Digital Identity
C7: Enforce Access Controls
C8: Protect Data Everywhere
C9: Implement Security Logging and Monitoring
C10: Handle All Errors and Exceptions

Det finns en PDF som beskriver dem utförligt: Länk till PDF
Framöver kommer jag gå igenom alla punkterna en efter en.


System och tjänster som uppdaterats sedan förra uppdateringen:

2019-05-24

Maj 2019 - OWASP Zed Attack Proxy (ZAP)

OWASP Zed Attack Proxy (ZAP) är ett av världens mest populära gratis säkerhetsverktyg. Det kan automatiskt hitta säkerhetsproblem i webbapplikationer och webbsidor. Det är oerhört snabbt och enkelt så det finns inga ursäkter att låta bli.

I sin enklaste form så startar man ZAP och skriver in den URL man vill att den ska attackera och trycker på Attack. Den kommer då använda mängder med kända attackvektorer och försöka utnyttja dem.

Vill man göra lite mer utförliga tester så kan man starta en webbläsare där ZAP lägger sig som en proxy och fångar all kommunikation mellan klient (webbläsare) och webbserver. Klicka runt och använd webbapplikationen så mycket som möjligt eller fokusera på känsliga punkter som inloggning och inmatning av data.

ZAP kommer producera ett antal alerts som man kan sen kan undersöka vidare. Klicka på dem så får man mängder med information om vad det potentiella säkerhetsproblemet består av och hur man kan åtgärda det med länkar till ytterligare information.

Du kommer garanterat få många alerts, men de ska ha en risknivå som är låg eller möjligtvis medium. Ligger man högre än så så bör man verkligen ta tag i problemet genast.
Även om det är ens privata webbplats med lite bilder och text om en själv som är ointressant för de flesta så bryr sig inte de automatiska bot:arna om det. De ser bara ett öppet säkerhetshål och tar sig in där eller så kan det vara godartade bot:ar som accessar sidor för de indexerar webbsidor, typiskt Google och andra sökmotorer och råkar trilla in genom ett säkerhetshål och gör massor med skada. I mina yngre dagar så hade jag skapat ett admin-verktyg till en av mina webbplatser som hade ett allt för dåligt inloggningsskydd vilket gjorde att just en indexeringsbot gick in där och började indexera alla Delete-sidor vilket gjorde att den tömde halva min databas. Ingen större skada skedd då jag lade in en backup, men har man otur så sitter man där utan aktuell backup och förlorar mängder med data.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s04
    • Inga ändringar.