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