Close

Hoe wij kwetsbaarheidsbeheer aanpakken


Onze aanpak voor omgang met beveiligingskwetsbaarheden bij Atlassian

Atlassian erkent dat beveiligingskwetsbaarheden op een zeker niveau een inherent onderdeel zijn van elk softwareontwikkelingsproces. We streven er echter voortdurend naar om de ernst en frequentie waarmee deze kwetsbaarheden[1] verschijnen in onze eigen producten en diensten te verminderen.

Om dat te bereiken beschikken we over een veelzijdige aanpak van kwetsbaarheidsbeheer die gebaseerd is op een combinatie van geautomatiseerde en handmatige processen. We geloven dat dit de effectiefste manier is om de kans dat kwetsbaarheden langere tijd onopgemerkt blijven te beperken.

In dit paper geven we een overzicht van hoe we kwetsbaarheden beheren in onze producten en infrastructuur en hoe we die aanpak voortdurend ontwikkelen door de nieuwste tools, methoden en denkwijzen op te nemen, zodat we er zeker van zijn dat de manier waarop we omgaan met kwetsbaarheden ook in de toekomst effectief blijft.

Een overzicht van ons proces voor het identificeren en verhelpen van kwetsbaarheden

We hebben een methodisch concept om kwetsbaarheden te identificeren, bij te houden en op te lossen, ongeacht het type.

Kwetsbaarheden vaststellen

We gebruiken verscheidene hoog aangeschreven tools voor kwetsbaarheidsdetectie die regelmatig op onze producten en infrastructuur worden toegepast om kwetsbaarheden automatisch te scannen en identificeren. Dit omvat de producten van Atlassian Cloud en Server, Docker application images, interne, mobiele en externe applicaties en onze infrastructuur op locatie en in onze cloud. Deze hulpmiddelen scannen automatisch op bestaande kwetsbaarheden en identificeren deze en omvatten het volgende:

  • Netwerkscans: we gebruiken momenteel Nexpose als onze primaire tool voor kwetsbaarheidsbeheer, dat ons helpt om actieve services, open poorten en applicaties die in onze omgeving runnen te identificeren, evenals kwetsbaarheden op netwerkniveau;
  • Doorlopende externe assetontdekking: we gebruiken Assetnote om doorlopende assetontdekking en beveiligingsanalyses uit te voeren in onze externe netwerkperimeters.
  • Scans van container images: we gebruiken Docker containers om veel van onze applicaties te implementeren en we voeren een volledige beveiligingsscan uit die een diepe inspectie omvat van de inhoud van die containers, telkens wanneer ze in onze productie- of preproductieomgevingen worden geïmplementeerd. We doen dit met een tool die Anchore heet. Meer informatie is verder op deze pagina te vinden.
  • Open source afhankelijkheidsscans: we gebruiken SourceClear om alle kwetsbaarheden die kunnen bestaan in opensource-code of code van externe partijen die onze ontwikkelaars gebruiken te identificeren. Meer informatie is verder op deze pagina te vinden.
  • AWS-configuratiebewaking we gebruiken Cloud Conformity om doorlopende configuratiebewaking uit te voeren aan de hand van vastgestelde basislijnen voor onze AWS-omgevingen.

We houden altijd de nieuwste beschikbare tools in de gaten en voegen deze toe aan ons assortiment als we geloven dat ze onze mogelijkheden voor kwetsbaarheidsdetectie verbeteren.

We hebben ook allerlei aanvullende mogelijkheden die we gebruiken om kwetsbaarheden vast te stellen, naast de geautomatiseerde scans die we uitvoeren. Dit zijn onder andere:

Ons Bug Bounty-programma we gebruiken Bugcrowd om ons Bug Bounty-programma uit te voeren. Bugcrowd biedt ons toegang tot een betrouwbare community van experts, bestaande uit tienduizenden onderzoekers op het gebied van cyberbeveiliging die onze producten continu testen en alle kwetsbaarheden die ze vinden rapporteren. Ons Bug Bounty-programma wordt al twee jaar op rij erkend als de beste in de branche (2018-19).

Rapporten van klanten en gebruikers: gebruikers van onze producten kunnen alle bugs die ze vinden op ieder moment rapporteren via de Atlassian-support We werken dan samen met hen om alle nodige informatie te verkrijgen, zodat de kwetsbaarheid intern aangegeven kan worden en opgelost kan worden (onderhevig aan controle om er zeker van te zijn dat de kwetsbaarheid echt is en geen valse positief). Dit omvat ook personeel van Atlassian, die alle issues die ze vinden in onze producten (extern of intern) direct bij het beveiligingsteam kunnen aangeven of een supporticket kunnen indienen.

Externe penetratietests: we gebruiken gespecialiseerde beveiligingsconsultancybedrijven om white box, door code ondersteunde, penetratietests uit te voeren op risicovolle producten en infrastructuren. Zie 'Hoe wij externe beveiligingstests aanpakken' voor meer informatie.

Het productbeveiligingsteam van Atlassian: we voeren doelgerichte codebeoordelingen uit, zowel handmatig als met tools, en werken nauw samen met onze productontwikkelingsteams voor verbetering van hun vermogen om kwetsbaarheden zelf te ontdekken en op te lossen voordat de code ons bereikt.

Het Red Team van Atlassian: we hebben een intern Red Team dat als doel heeft om de rol van vijanden na te bootsen die proberen kwetsbaarheden in onze systemen, processen en omgevingen vast te stellen en er misbruik van te maken, zodat wij er zeker van zijn dat ze zo snel mogelijk gevonden en aangepakt worden.

Kwetsbaarheden bijhouden en verhelpen

Om de efficiëntie en effectiviteit van ons kwetsbaarheidsmanagementprogramma te optimaliseren, integreren we de processen die we gebruiken om kwetsbaarheden te detecteren met onze interne ticketsystemen. Specifieker: er wordt een toegewijd ticket gemaakt voor elke kwetsbaarheid die gerapporteerd wordt in de juist Jira-installatie, ongeacht of deze gevonden wordt met een van onze scanhulpmiddelen of via een andere hierboven besproken methoden, om er zeker van te zijn dat het relevante productteam op de hoogte wordt gebracht en het op kan lossen volgens de SLA's die we hebben gepubliceerd in ons beleid voor het oplossen van beveiligingsbugs.

Ons beveiligingsteam houdt toezicht op dit proces en werkt samen met onze product- en infrastructuurteams om er zeker van te zijn dat al onze kwetsbaarheden opgelost worden in overeenstemming met onze SLA-verplichtingen.

Bovendien hebben we een speciale tool ontwikkeld die de huidige status van kwetsbaarheden overal in de producten en infrastructuur van het Atlassian-ecosysteem weergeeft in één venster. Dit betekent dat we een centraal punt hebben van waaruit we elke gevonden kwetsbaarheid kunnen bijhouden om er zeker van te zijn dat er niets per ongeluk vergeten wordt of over het hoofd wordt gezien.

Zodra een oplossing voor een kwetsbaarheid is ontwikkeld, wordt deze grondig getest en vervolgens, in het geval van onze cloudproducten, opgenomen in onze CI/CD-pipeline voor implementatie. Oplossingen voor serverproducten worden opgenomen in een nieuwe release en op regelmatige basis geïmplementeerd met andere oplossingen, volgens ons standaard releaseschema.

Kwetsbaarheden tijdens het ontwikkelingsproces voorkomen

Container images scannen

Atlassian implementeert de meeste van onze applicaties met Docker container images. Docker containers bestaan uit een verpakte, op zichzelf staande omgeving die bestaat uit relevante systeemlibrary's, tools, configuratie-instellingen en alle andere afhankelijkheden die nodig zijn zodat onze producten gebruikt kunnen worden met iedere machineconfiguratieparameters. De container biedt effectief een abstractielaag, waardoor de softwarecode losgekoppeld wordt van de onderliggende infrastructuur, zodat onze producten probleemloos werken op verschillende machines.

Containers bieden onze ontwikkelaars en klanten allerlei voordelen, omdat ze code kunnen implementeren die in allerlei omgevingen gebruikt kunnen worden, maar ze kunnen ook beveiligingskwetsbaarheden met zich meebrengen als de inhoud van de images uit verouderde of anderszins onveilige bibliotheken of onderdelen bestaat.

Om dit aan te pakken, integreren we een volledig scanproces voor containerbeveiliging in onze CI/CD-pipeline voor alle containers die geïmplementeerd worden in onze ontwikkelings-, staging- of productieomgevingen. We gebruiken hier de opensource-engine Anchore voor. Anchore levert een set tools om diepe inspectie uit te voeren van alle containerimages die door onze ontwikkelaars worden geïmplementeerd. Dit omvat een gedetailleerde analyse van die images om de verschillende componenten waar ze uit bestaan vast te stellen (inclusief besturingssysteem en applicatiepakketten, externe library's en configuratiebestanden).

Opensource afhankelijkheden

Hoewel het belangrijk is om kwetsbaarheden in onze eigen code te vinden en op te lossen, zijn onze producten en services ook afhankelijk van verscheidene opensource-library's. Het is daarom net zo essentieel dat we ons bewust zijn van welke library's we gebruiken en dat ze actueel zijn met de nieuwste bugfixes. We gebruiken een tool die SourceClear heet om ons hierbij te helpen. SourceClear voorziet in een scanner om afhankelijkheden in onze softwarebuilds te identificeren en deze library's te vergelijken met een database van bekende beveiligingskwetsbaarheden.

Alle gevonden kwetsbaarheden, of deze nu via Anchore of SourceClear gevonden worden, worden automatisch gemeld bij het relevante productteam via een formeel Jira ticket, in navolging van het proces voor kwetsbaarheidsbeheer dat we eerder in deze paper beschreven.

Andere initiatieven die we gebruiken om kwetsbaarheden te bestrijden

Tot nu toe hebben we in dit paper voornamelijk de stappen besproken die we zetten om kwetsbaarheden in de 'back-end' te beheersen, dat wil zeggen wat we doen om een kwetsbaarheid aan te pakken die gevonden is in onze producten of platformen. We streven er echter voortdurend naar om te zorgen dat ze minder vaak voorkomen. Om dit te bereiken hebben we een aantal unieke initiatieven geïntegreerd in de 'front-end' van ons ontwikkelingsproces om er zeker van te zijn dat onze producten van begin af aan worden opgebouwd met het oog op veiligheid.

Security Champions-programma

We zijn in 2017 begonnen met het Security Champions-programma overal in Atlassian, waarbij we beveiligingsleiders toevoegen aan elk van onze product- en serviceteams. Onze Champions krijgen bovendien toegewijde training om ze te helpen beveiligingskwetsbaarheden van applicaties en processen voor het schrijven van veilige code te begrijpen en te identificeren. Het doel van dit programma is om een toegewijde Champion te hebben binnen elk team, die de verantwoordelijkheid op zich neemt voor het uitdragen van belangrijke beveiligingsberichten bij hun teamgenoten en beveiligingskwesties kan aankaarten bij ons centrale beveiligingsteam om communicatiestromen te verbeteren.

De Security Champions van Atlassian komen maandelijks bij elkaar om hulpmiddelen en kennis te delen over de nieuwste beveiligingsissues en de uitdagingen waarmee ze worden geconfronteerd, zodat alle teams daar hun voordeel mee kunnen doen. Het einddoel is om het Champions-programma te gebruiken als springplank om de veiligheid nog een integraler onderdeel van onze cultuur te maken. Wij geloven dat een dergelijke aanpak een essentiële pijler is in onze aanpak om kwetsbaarheden te minimaliseren.

Productbeveiligingstechnici

Geen enkele bespreking van kwetsbaarheidsbeheer zou compleet zijn zonder de essentiële rol te noemen die onze productbeveiligingstechnici vervullen, zowel in het wegstrijken van bugs als in het ontwerpen van betere strijkijzers.

Onze productbeveiligingstechnici voeren de eerste triage uit op nieuw gerapporteerde kwetsbaarheden en werken samen met onze productengineeringteams om de beste oplossing voor het probleem te vinden. Onze productbeveiligingstechnici zijn experts op het gebied van applicatiebeveiliging en zijn wereldwijd verspreid, zodat ze op de meest effectieve manier kunnen samenwerken met onze productengineers.

Onze beveiligingstechnici hebben zowel een proactieve als een reactieve rol in beveiliging met betrekking tot hun toegewezen product, waaronder, maar niet beperkt tot:

  • Actuele bedreigingsmodellen voor nieuwe en opkomende risico's beoordelen en analyseren
  • De veiligheid van nieuwe functies beoordelen en analyseren
  • Handmatige codebeoordeling uitvoeren
  • Penetratietests uitvoeren
  • Platform en architectuur beoordelen
  • Belangrijke activiteiten met betrekking tot projecten bijhouden en begeleiding geven waar nodig
  • Gerapporteerde problemen via ons Bug Bounty-programma triageren, archiveren, belonen en zorgen dat ze tijdig opgelost worden
  • Nieuwe automatisering schrijven en bestaande automatisering en tools onderhouden om dekking en efficiëntie te optimaliseren

Beveiligingsscorekaarten

Met de gegevens die we verzamelen met de systemen die in dit paper beschreven zijn kunnen we teams en producten tegen elkaar benchmarken om verbeteringspunten proactief te identificeren.

Samenvatting

Atlassian past een veelzijdige benadering van kwetsbaarheidsbeheer toe op onze producten en platformen en maakt daarbij gebruik van een combinatie van hoogwaardige scantools, ons Bug bounty-programma en allerlei andere mechanismen die constant blijven ontwikkelen om er zeker van te zijn dat we kwetsbaarheden die opkomen zo snel mogelijk vaststellen en oplossen en het aantal keer dat ze voorkomen minimaliseren.

Wil je meer te weten komen?

Er zijn allerlei andere resources waar we in deze paper naar verwezen hebben of die je anderszins kan raadplegen voor meer informatie over onze aanpak van kwetsbaarheidsmanagement en beveiliging in het algemeen.

[1] Wanneer we in deze paper verwijzen naar kwetsbaarheden, kan dit gezien worden als synoniem voor 'bugs', de term die we gebruiken in onze aparte paper over Hoe wij beveiligingstests aanpakken.