2018-12-04

December 2018 - Bokföring i Bokio

Under sommaren har jag kört lönehantering i Bokio och sedan över ett år har jag kört mina fakturor där. På grund av att Speedledger kostar så mycket för en liten företagare så har jag tidigarelagt att börja med bokföring i Bokio för att kunna säga upp Speedledger innan årsskiftet då ny avtalsperiod börjar.
Det gick alldeles utmärkt att exportera min bokföring från Speedledger och importera in i Bokio. Enda problemet är att det blev en annan bokföringsserie och att lite olika konton används. För att justera skillnaderna så gjorde jag ett extra verfikat som justerade alla saldon. De olika bokföringsserierna får jag leva med. Det är en struntsak i sammanhanget. Så länge man har ordning på sina verifikat så är det inget problem.

Jag gjorde parallell bokföring i Bokio och Speedledger för oktober och det fungerade bra. Det är lite skillnader som man får lära sig. En sån sak är Bokios manuella import av banktransaktioner. Det man gör är att man kopierar texten på kontoutdraget och klistrar in i Bokio. Sen läser Bokio texten och föreslår verifikat utifrån vad som står. På det sättet slipper Bokio ha integrationer till bankerna, men ändå ha samma funktionalitet som Speedledger där bokföringen stäms av mot bankkontot.

Allt talar för att det blir Bokio som jag fortsätter med och slutar med Speedledger innan årsskiftet för att inte riskera att betala 3 månader till.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s04
    • Spamassassin blir tweakad för att bli effektivare. Spamassassin sköter spamfiltering. Den bygger på ett antal olika regler som ger olika poäng. När antalet poäng kommer upp i 5 så markeras mailet som spam. Det jag gör är att ändra poängen för olika regler för att få fler spam att markeras som spam. 
    • Fail2Ban tweakas för att blockera fler. Fail2Ban analyserar loggar och letar efter vissa textsträngar, typiskt felaktiga inloggningar och attacker. Om samma textsträng dyker upp x antal gånger så blockeras den IP-adressen en tid. Blir IP-adressen blockerad upprepade gånger så läggs IP-adressen till i en blacklist som innehåller de IP-adresser som ska blockeras för evigt.
    • Webmin 1.900
    • Usermin 1.750

2018-11-01

November 2018 - MX Toolbox

MX Toolbox är ett verktyg jag använder väldigt ofta för att felsöka problem och för att kolla hälsan på servrar och domäner. De har ett verktyg som de kallar för SuperTool som innehåller alla tjänster de har. Ett litet urval av tjänsterna: MX Lookup, DNS Lookup, DNS Check, Reverse Lookup, Whois Lookup, SPF Record Lookup, Domain Health, Ping, Trace.
Jag har svårt att se att du skulle sakna någon tjänst bland alla de erbjuder.

Surfar man omkring på sidan ett tag så hittar man ännu fler tjänster. Investigator verkar intressant. Den använder flera av tjänsterna och kombinerar dem till en enda rapport.

Om man skapar ett konto (basplanen är gratis) så får man även en blacklist monitor som kör en gång i veckan och kontrollerar mot 30 listor. Den kollar att din domän inte listas på någon av de svarta listor där servrar som skickar ut spam läggs upp.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s04
    • Den 21 oktober inträffade ett databashaveri som ställde alla rutiner på sin spets. Databasen blev korrupt. Databasservern installerades om och alla databaser har lagts till på nytt. Mycket manuellt arbete. Jag jobbar nu på att förhindra att det sker igen.

2018-10-16

Oktober 2018 - Monitorering av webbplatser

Alla system behöver övervakning för att man ska upptäcka eventuella problem och när de går ner. Samma sak med webbplatser.
Förutom att servern själv monitorer alla tjänster, larmar och startar om de tjänster som eventuellt skulle gå ner så använder jag två externa tjänster.
Uptime Robot - Här får man 50 monitorer som kontrolleras var 5:e minut gratis. Lägg upp de webbadresser som ska kontrolleras och sen är man igång. Jag monitorerar flera domäner på servern för att snabbt upptäcka problem och se om det är servern som har problem eller bara enskilda domäner.
Exactstate - Det finns en gratisversion (Basicstate), men den kontollerar bara var 15:e minut så om man vill ha kortare intervall så får man betala en liten slant för Exactstate. På Exactstate går det att ställa in kontroll så ofta som 1 gång i minuten, men då försvinner krediterna (som man köpt) ganska snabbt. Eftesrom Uptime Robot kontrollerar var 5:e minut så räcker det med att backuptjänsten kontrollerar var 10:e eller 20:e minut.

Så fort en monitor upptäcker att ett konto inte längre fungerar så skickar den ett mail till mig om det. Den skickar även ett mail när kontot fungerar igen. 

På det här sättet har jag både hängslen och livrem. Servern ska sköta allt själv, men gör den inte det så har jag en monitortjänst som larmar snabbt och om det inte skulle fungera så har jag en till som larmar efter ytterligare en stund.


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

2018-09-18

September 2018 - Bokföring, fakturering och lönehantering online


För ett år sedan bytte jag från mitt egenutvecklade faktureringssystem till Bokio för jag saknade en hel del funktioner och det kostar inte minst tid att utveckla det själv. Bokio hade de funktioner jag sökte och det var gratis.
I år så skulle jag börja betala skatt för mina sommarjobbare eftersom de nu tjänar mer under året än grundavdraget. Jag försökte först göra det manuellt, men det var ganska pilligt och det kan lätt bli fel. Då upptäckte att Bokio faktiskt har en helt ok lönehantering.
Det jag ännu inte använt är Bokios bokföring, men vid årsskiftet tänkte jag testa och köra det parallellt med Speedledger som jag använder just nu och är väldigt nöjd med. Enda nackdelen är kostnaden. För ett litet företag är några tusenlappar i något man helst inte vill lägga.


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

2018-08-20

Augusti 2018 - The OWASP Zed Attack Proxy (ZAP)

The OWASP Zed Attack Proxy (ZAP). ZAP är ett av världens mest populära säkerhetsverktyg och hjälper dig att leta reda på sårbarheter i dina webbapplikationer.
ZAP är helt gratis och är snabbt och enkelt att komma igång med. Starta ZAP, mata in webbadressen i ZAP och trycka på Attack. Sen när man vill fördjupa sig så går det att göra mer djupgående tester, men börja enkelt.

Du laddar ner det här: OWASP ZAP

System och tjänster som uppdaterats sedan förra uppdateringen:
  • s04
    • Justeringar av fail2ban som tillfälligt blockerar attacker vid upprepade försök. Även en blacklist införd som permanent blockerar IP-adresser som blivit blockerade många gånger.

2018-07-23

Juli 2018 - Gamla servern nu nedstängd

Den gamla servern (s02) är till slut avstängd.
Den gamla servern körde Debian 6 och hade en 32-bitars installation. Det var en LTS (Long Term Support) version men även en sån når till slut sitt slut. Den tidpunkten nåddes så den var tvungen att ersättas och då ville jag gå hela vägen till PHP 7 och det kom först med Debian 9 vilket nya servern (s04) då kör. s03 var en server jag satte upp med Debian 8, men saknade då stöd för PHP 7 out-of-the-box. När sen Debian 9 kom så skrotade jag s03. Inga kundkonton hann flyttas dit utan där körde endast några testkonton.

Under våren har alla konton flyttats och för ett par veckor sedan så flyttades det sista och servern kunde då stängas av.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
    • Alla konton är flyttade.
    • Servern avstängd och raderad.
  • s04

2018-06-14

Juni 2018 - SPF - Sender Policy Framework

SPF står för Sender Policy Framework. Det är ett sätt för mottagare (egentligen mottagande mailserver) av mail att avgöra om ett meddelande är legitimt eller inte.

När man skickar mail så kan avsändaren själv ange vilken avsändaradress som ska stå i mailet och då uppge vilken adress som helst. Vanliga användare får automatiskt sin egen adress, men en person som vill skicka ut spam eller virus uppger en för mottagaren trovärdig adress så att mottagaren luras till att lita på mailet.

För att komma åt det här problemet så använder man SPF. SPF använder DNS-records (namnservrar). Man specificerar där vilka servrar som får skicka meddeladen för en viss domän.

En mailserver som har SPF aktiverad slår upp eventuellt SPF-record i domänens namnserver och kontrollerar om mail får skickas från den mailserver som den skickades från. Om den är godkänd så händer ingenting. Om den inte är godkänd så markerar mailservern det som spam.

Det här är det SPF-record som används just nu på domänen nettools.se:
v=spf1 include:_spf.nettools.se ~all

Det betyder:
v=spf1 - Versionen på SPF
include:_spf.nettools.se - Inkludera SPF-records som är definerat i _spf.nettools.se
~all - softfail. Om avsändaren inte matchar servrarna så ska mail ändå tillåtas

Tittar man sen på _spf.nettools.se så hittar man:
v=spf1 ip4:46.21.103.22 ip4:46.21.104.117 ip6:2a02:750:9::36e ip6:2a02:750:5::16e ~all

Där står vilka IP-adresser som servrarna måste ha. Både IPv4 och IPv6 är angivna för att stödja båda protokollen.

Eftersom det står ~all så tillåts alla avsändare, men de markeras med softfail. Nästa steg när man sett att man har konfigurerat alla servrar korrekt är att ändra till -all. Det betyder att endast de listade servrarna tillåts.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
    • Resurserna allokerade till servern minskas mer och mer eftersom det är så få konton kvar. De sista bör flyttas innan semestern och då kan servern stängas.
  • s04
    • Majoriteten av alla konton är nu flyttade. Hör av er om ni upptäcker något som inte fungerar som det ska.

2018-05-29

Maj 2018 - OWASP 2017 - A10 - Insufficient Logging & Monitoring

OWASP står för The Open Web Application Security Project och är en öppen global organisation som arbetar för säkerhet i mjukvaruapplikationer, främst webbapplikationer.


Den tredje och sista nya på OWASP Top Ten 2017 är A10 - Insufficient Logging & Monitoring

Det här är den sista sårbarheten och den är lite annorlunda och inte riktigt lika teknisk. Den handlar om att man inte loggar tillräckligt och inte övervakar loggarna.

Exempel:

  • Inloggningar, misslyckade inloggningar och betydelsefulla transaktioner loggas inte.
  • Varningar och fel genererar inga, otillräckliga eller oklara loggar.
  • Loggar övervakas inte.
  • Ingen informeras när något misstänkt inträffar eller så bryr sig ingen om de meddelanden som skickas ut.
  • Applikationerna upptäcker inte tillräckligt snabbt när något misstänkt inträffar.
Hur kan det utnyttjas?
  • Brute force-attacker. Loggar man inte felaktiga inloggningsförsök så kan man jobba ostört och testa alla möjliga lösenord.
  • Om ingen bryr sig om de meddelanden som applikationen skickar ut eller de fel som loggas så kan man även då jobba ostört.
Hur skyddar man sig?
  • Logga inloggningar, misslyckade inloggningar och andra viktiga transaktioner.
  • Processa loggarna automatiskt. Kolla manuellt då och då också för att upptäcka brister i den automatiska hanteringen.
  • Sätt upp larmfunktioner som meddelar när något misstänkt inträffar.

OWASP Cheat Sheet: Logging Cheat Sheet


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
    • Usermin 1.741
  • s04
    • Roundcube 1.2.3
    • Apache 2.4.25

2018-04-06

April 2018 - OWASP 2017 - A8 - Insecure Deserialization

OWASP står för The Open Web Application Security Project och är en öppen global organisation som arbetar för säkerhet i mjukvaruapplikationer, främst webbapplikationer.


Den andra nya på OWASP Top Ten 2017 är A8 - Insecure Deserialization

Serialisering är en process där man "plattar" till objekt och data så att det enkelt kan sparas eller skickas. Att deserialisera är den motsatta processen där man tar den tillplattade informationen och läser in den och skapar upp de objekt och den data som plattades till.
Man serialiserar till formaten JSON, XML eller något annat textformat.

Sårbarheten här är att applikationen deserialiserar data från osäkra källor och om den datan har manipulerats så öppnar det upp för många olika attacker.

Exempel:
Ett forum skrivet i PHP serialiserar information om inloggad användare och sparar det som en kaka i webbläsaren:
a:4:{i:0;i:132;i:1;s:7:"Mallory";i:2;s:4:"user"; i:3;s:32:"b6a8b..bc960";}
Genom att manipulera den informationen så kan en annan användare potentiellt skaffa sig adminbehörighet:
a:4:{i:0;i:1;i:1;s:5:"Alice";i:2;s:5:"admin"; i:3;s:32:"b6a8b..bc960";}

Hur skyddar man sig?
Acceptera bara serialiserade objekt från säkra källor.
Tillåt bara JSON och XML som format för (de)serialisering.
Kontrollera datan som deserialiseras så att den inte har manipulerats. Exempelvis genom digitala signaturer.
Se cheat sheet för mer detaljer hur man kan göra.

OWASP Cheat Sheet: Deserialization Cheat Sheet


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
    • Webmin 1.881
    • Usermin 1.740
    • Subdomänen "webmail" är borttagen från alla konton eftersom det inte var någon som använder Squirrelmail. Roundcube som hittas på subdomänen "email" är så mycket bättre.
    • Subdomänen "user" försvinner efter hand. Använd istället subdomämen "mail" för den går till samma tjänst.
  • s04

2018-03-27

Mars 2018 - OWASP 2017 - A4 - XML External Entities (XXE)

OWASP står för The Open Web Application Security Project och är en öppen global organisation som arbetar för säkerhet i mjukvaruapplikationer, främst webbapplikationer.


Den första nya på OWASP Top Ten 2017 är A4 - XML External Entities (XXE)

Tjänster som hanterar XML kan vara sårbara för den här attacken. Typiskt webbservices.
Attacken utförs genom att manipulerad XML skickas till tjänsten. Det som manipulerats eller lagts till är i taggen <!ENTITY> och de referenser som får skrivas där. Tjänsten läser in XML-dokumentet, ersätter referensen med innehållet för referensen och returnerar svaret.
Det finns även en del andra attacker som kommer av samma sårbarhet. Bland annat Billion Laughs Attack som är en överbelastningsattack där minnet tar slut.

Ett exempel från den här sidan där de förklarar väldigt bra:
https://www.acunetix.com/blog/articles/xml-external-entity-xxe-vulnerabilities/
Request:
POST http://example.com/xml HTTP/1.1

<!DOCTYPE foo [
  <!ELEMENT foo ANY>
  <!ENTITY bar SYSTEM
  "http://192.168.0.1/secret.txt">
]>
<foo>
  &bar;
</foo>

Response:
HTTP/1.0 200 OK

Hello, I'm a file on the local network (behind the firewall)

Det som händer är att referensen http://192.168.0.1/secret.txt kopplas till variablen bar. När XML:en parsas så hämtats innehållet i filen secret.txt som ligger på servern och ersätter variabeln bar i XML:en och returneras till användaren.

För att förhindra det här så byt om möjligt till tjänster som använder JSON istället för XML. Fler och fler tjänster använder det så vi är redan på väg. Om det inte går att byta till JSON så se till att använda SOAP 1.2 eller högre. Slå av External Entity processing (se Cheat sheet nedan). Validera innehållet.

OWASP har tagit fram ett Cheat Sheet för hur man åtgärdar sårbarheten. Det är här:
XML External Entity (XXE) Prevention Cheat Sheet


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
  • s03
    • Alla konton är flyttade till s04.
    • Server avstängd och raderad.
  • s04
    • Uppsättningen är klar och allt fungerar perfekt! Det mest intressanta är att den kör PHP7 och alla konton, mail, ftp etc. har TLS-kryptering (https).
    • Alla konton från s03 är flyttade hit.
    • Testperiod innan externa kunder flyttas.
    • Webmin 1.880

2018-02-15

Februari 2018 - OWASP Top 10 2017

OWASP står för The Open Web Application Security Project och är en öppen global organisation som arbetar för säkerhet i mjukvaruapplikationer, främst webbapplikationer.


De har precis släppt OWASP Top 10 2017.
Vilka skillnader finns jämfört med listan från 2013?

2013
A1 - Injection
A2 - Broken Authentication and Session Management
A3 - Cross-Site Scripting (XSS)
A4 - Insecure Direct Object Reference
A5 - Security Misconfiguration
A6 - Sensitive Data Exposure
A7 - Missing Function Level Access Control
A8 - Cross-Site Request Forgery (CSRF)
A9 - Using Components with Known Vulnerabilities
A10 - Unvalidated Redirects and Forwards

2017
A1- Injection
A2 - Broken Authentication
A3 - Sensitive Data Exposure
A4 - XML External Entities (XXE) [NEW]
A5 - Broken Access Control [Merged - 2013 A3 och A7]
A6 - Security Misconfiguration
A7 - Cross-Site Scripting (XSS)
A8 - Insecure Deserialization [NEW, Community]
A9 - Using Components with Known Vulnerabilities
A10 - Insufficient Logging&Monitoring [NEW,Community]

Det som har hänt är att A8 - Cross-Site Request Forgery (CSRF) och A10 - Unvalidated Redirects and Forwards har trillat bort i nya listan. A4 och A7 slogs ihop till A5. Sen tillkom det tre nya varav två kom från communityn, dvs. från användare och andra intresserade. Ordningen har ändrats något på grund av att hoten inte är lika vanliga eller allvarliga.

Att hot tas bort betyder inte att de inte längre är några hot, men OWASP anser inte att de är lika allvarliga eller lika vanliga.

Jag kommer framöver att skriva lite om vad de tre nya innebär och hur man kan skydda sig mot dem.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
  • s03
    • Inga uppdateringar
  • s04
    • Installationen av servern är klar. Det är några småsaker som inte fungerar helt ännu och SSL/TLS behöver ordnas för alla tjänster. Nu fungerar det bara för webbsidorna.
    • Testperiod och finjustering börjar.

2018-01-13

Januari 2018 - Nytt år!

Jag ser att jag nu skriver det varje år, men jag tycker att det är en så smart idé att den tål att upprepas om och om igen.
Ta det lugnt i december. Fokusera på att ha det trevligt innan jul. Varva ner för att förbereda inför julledigheten. Pressa inte igenom massor av projekt bara för att hinna klart innan nyår. Börja sedan det nya året i januari och ägna den månaden åt att avsluta 2018. För företaget handlar det mycket om bokföring även om det mesta inte behöver vara klart förrän framåt sommaren så är det lika bra att få det gjort nu direkt när det förra året fortfarande är fräscht. Då kommer inte bokföring och deklaration som en chock senare i år utan allt är klart.

Agendan för det nya året på nettools.se är att färdigställa en ny server och att flytta alla konton dit. Varför det är samma mål i år som förra året är för att innan jag hann slutföra förra årets mål så släpptes Debian 9 med PHP7. Jag beslutade då att inte flytta kunderna till den då färdiga nya servern utan istället bygga en helt ny server på Debian 9 och gå över till PHP7. Det är inte klart ännu. Den nya versionen av PHP gör att jag behöver se över säkerhetslösningen där och troligtvis utforma en ny. Det är där jag är just nu.


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