Als onderdeel van onze ISO-27001-certificering is het onze taak om de trends en ontwikkelingen rondom beveiliging in de gaten te houden, zodat we hiermee onze processen up-to-date houden.
Maar het gaat verder dan alleen beveiliging: hoewel de kern van ISO-27001 informatiebeveiliging betreft, dwingt de norm je om naar de context van de organisatie te kijken (clausule 4.1). Dit betekent dat je ook algemene technologische en maatschappelijke trends moet volgen.
Het meldpunt
Wij hebben dit proces ingericht rondom ons 'meldpunt', waar deze trends en ontwikkelingen komen te staan. Zo'n meldpunt klinkt heel indrukwekkend, maar het is gewoon een wekelijks terugkerend nieuw ticket in ons project-managementsysteem.
Het vullen van dit meldpunt gaat natuurlijk niet vanzelf. Om dit te doen moeten verschillende nieuwsbronnen in de gaten gehouden worden. Het is zonde als iedereen dat moet doen, en daarom dien ik hier als filter. Ik volg een groot aantal nieuwsbronnen, en als ik iets interessants of relevants tegenkom zet ik het neer in ons meldpunt, zodat de rest van mijn collega's het later kunnen lezen.

Maar, wat is een efficiënte manier om alle berichtgeving te verzamelen? Je wilt immers niet iedere dag, of een aantal keer per dag, één voor één alle websites af hoeven gaan. Want dan mis je dingen, of bezoek je sommige websites juist te vaak. Dat moet toch beter kunnen?
Ja, dat kan het zeker: want juist voor dit probleem hebben ze in de jaren '90 al een oplossing bedacht, namelijk: RSS.
RSS
RSS is een afkorting voor Really Simple Syndication. Ik twijfelde een tijdje over hoe ik dit concept uit kon leggen, maar bedacht me toen dat YouTube wereldwijd meer dan 2,5 miljard gebruikers heeft. Dus vrijwel iedereen die dit leest is wel bekend met het concept van 'subscriben', waarbij je 'subscribet' op een YouTube-kanaal, en vervolgens meldingen krijgt van nieuwe video's.
Het principe van RSS is hetzelfde: je abonneert je op een 'feed' van een website, en als een website nieuwe content plaatst, word je daarvan op de hoogte gesteld. Dit gebeurt allemaal vanuit je RSS-reader: dit is een applicatie waarin je deze abonnementen beheert en berichten kunt lezen en markeren als gelezen - vergelijkbaar met een mailbox.
Mijn werkwijze is dus simpel: ik abonneer me op een flinke lijst van websites die nieuwsberichten plaatsen over de verschillende trends in onze industrie. Wanneer er een bericht voorbij komt dat ik relevant vind, kopieer ik dat naar ons meldpunt.
Deze werkwijze werkte prima, alleen... het werd uiteindelijk best een hoop werk. Het klinkt niet als veel werk. Maar bij ieder interessant artikel moesten er toch weer een aantal acties uitgevoerd worden. Zoals het kopiëren van de URL, naar het meldpunt. Daarna het kopiëren van een relevant stukje tekst. Het liefst wil je de titel er ook nog in hebben, en het geheel ook nog een beetje leesbaar formatteren. Ik had niet altijd het meldpunt open staan, dus dat moest dan ook weer geopend worden. Ik was al snel één tot twee minuten bezig met de acties voor één artikel, en dat deed ik soms wel tien keer per dag. Net als deze paragraaf, begon het best lang te duren. En ik merkte dat ik soms artikelen begon over te slaan, om die reden.
Met andere woorden: het meldpunt veranderde al snel in een knelpunt.

Automatisering via webhook
Trouwe lezers van dit blog weten hopelijk inmiddels wel: ik ben lui. En ik hou van automatiseren. Het duurde dus niet lang, voordat ik hier begon na te denken over de mogelijkheden.
Ik ging speuren in de mogelijkheden die mijn RSS-reader hiervoor had. Ik kwam er al snel achter dat ze ondersteuning hadden voor automatisering via rules, en dat één van de acties van de rules het aanroepen van een webhook was. Ook is er ondersteuning voor tags, waarbij je berichten een tag kunt geven, en rules kunt laten uitvoeren op basis van tags.
Ik had dus al snel een plannetje bedacht: Ik maak een rule, die zodra een bericht de tag meldpunt
krijgt een webhook op webenable.nl aanroept. Deze webhook verzamelt alle ontvangen berichten, extraheert
de relevante stukken eruit (zoals de titel, de URL, een mooie omschrijving; alles wat ik eerst
handmatig deed), en presenteert dat vervolgens aan mij, wanneer ik dat opvraag.
Ik hoef het daarna alleen nog maar eenmalig te kopiëren naar ons eigen meldpunt - dit had ik ook kunnen automatiseren, maar ik wilde graag nog de handmatige stap ertussen hebben waarbij ik de inhoud nog even door kan nemen.
Het uitvoeren van dit plannetje ging bijna net zo snel als het bedenken ervan. In korte tijd had ik dus een werkend concept. En, zoals ik wel vaker schrijf, eindigen we na de automatisering met een systeem dat niet alleen sneller, maar ook beter werkt. Want ons meldpuntticket ziet er door deze formatting een stuk beter uit, het toevoegen van nieuwe berichten is ongeveer twee seconden werk (drie toetsaanslagen), en ik sla nu geen relevante berichten meer over omdat het te veel werk is.
Sterker nog: soms word ik iets te enthousiast en verzamel ik iets te veel berichtgeving, omdat het nu zo makkelijk en soepel gaat.

Minder dan 150 berichten per week? Ik ben een meldpunt, geen telpunt!
Rommel opruimen
Automatisering is altijd wel iets complexer dan je denkt; er zijn altijd wat 'onverwachte' gevolgen. In dit geval: het taggen van deze berichten betekende dat ze ook 'bewaard' bleven. Toen ik ging kijken in mijn 'saved' folder, zag ik dat er wekelijks vaak wel 140+ stonden.
Rommel, daar hou ik niet zo van. Dus ze moesten opgeruimd worden. En het opruimen was weer zo'n typisch stom klusje. Één keer per week ging ik dus naar die saved folder, filterde ik op de tag 'meldpunt', en ging ik ze vanuit de selectie-modus selecteren en verwijderen. Maar, dat kon met maximaal 50 tegelijk, meer dan dat mocht je er niet selecteren. Dus dat moest weer in meerdere etappes worden uitgevoerd.
Een vervelend klusje, maar goed, het was iedere week misschien twee minuten werk.
Dus je snapt waarschijnlijk wel dat ik dat vrij snel ging automatiseren. Die bende moet gewoon automatisch opgeruimd worden!
Want twee minuten werk per week veranderde het meldpunt voor mij in een kwelpunt.

Automatisering via API
Dus ik ging verder speuren, en kwam er toen achter dat ze een enigszins verborgen API hadden. Wel apart; deze was lang niet zo prominent getoond als hun 'Rules Automation', de documentatie was al helemaal lastig te vinden en ik denk dat ik nog nooit zulke lage rate-limits heb gezien op een API (100 requests per dag).
Achteraf snap ik waarom ze deze API zo ontoegankelijk hebben gemaakt. Want zo soepel als mijn werk met hun prachtige rules en mijn webhook ging, zo ongelooflijk stroef verliep het werken met hun API. Ik heb door de jaren heen met heel wat vreemde en lastige API's mogen werken, maar dit was waarschijnlijk de ergste tot nu toe. Het was een combinatie van heel onduidelijke documentatie en een API-URL-structuur en manier van aanroepen die ik nog nooit eerder gezien had.
De documentatie was zelfs zo onduidelijk, dat ik eigenlijk dacht dat het helemaal niet mogelijk was. Ik was er vrijwel van overtuigd, maar uit koppigheid bleef ik toch doorzoeken en proberen, tot het uiteindelijk wel mogelijk bleek.
Het was twee avonden zweten en ploeteren. Wat een drama.
Met andere woorden: het meldpunt werd tijdelijk een scheldpunt.

Conclusie
Maar, zoals met de meeste softwaretrajecten, na voldoende koffie en schelden, komen we er uiteindelijk
wel. En ik heb nu dus een mooi script dat iedere avond bij alle berichten de tag meldpunt weghaalt -
ik hoef het gelukkig dus niet meer zelf te doen. Zodra je automatisering eenmaal goed draait, is het achteraf
alle moeite meestal wel waard.

Grappen over het meldpunt bereikten het smeltpunt.