/nl-kat-coordination

Repo nl-kat-coordination for minvws

Primary LanguageMakefileEuropean Union Public License 1.2EUPL-1.2

Wat is OpenKAT?

OpenKAT heeft als doel het monitoren, registreren en analyseren van de status van informatiesystemen. OpenKAT scant netwerken, analyseert kwetsbaarheden en maakt toegankelijke rapporten. Het integreert de meest gebruikte netwerktools en scansoftware in een modulair framework, heeft toegang tot externe databases zoals shodan en combineert de informatie uit al deze bronnen in overzichtelijke rapportages.

OpenKAT scant, verzamelt, analyseert en rapporteert in een permanent proces:

Flow van OpenKAT

Wil je meer weten, lees dan de uitgebreide documentatie. Een toegankelijk startpunt is de informatiebrochure, waarin ook bovenstaand model wordt uitgelegd. Alle informatie over OpenKAT en de functionaliteit van het pakket is te vinden op de wiki.

OpenKAT is nog volop in ontwikkeling. Hiervoor is input welkom!

Welke code bevat OpenKAT?

OpenKAT omvat de volgende repositories:

NL-KAT-Coordination

De centrale repo van OpenKAT bevat alle documentatie en informatie om OpenKAT zelf te installeren.

NL-KAT-mula

Mula is de scheduler, die in OpenKAT de boefjes aanstuurt.

NL-KAT-octopoes

Octopoes is het datamodel met alle objecten. Octopoes omvat ook de XTDB, waarin alle objecten zijn opgeslagen.

NL-KAT-rocky

Rocky is de frontend van OpenKAT. Rocky maakt gebruik van Manon Open voor de scheiding van stijl en inhoud.

NL-KAT-bytes

Bytes bevat de database met ruwe informatie en metadata, met externe signing voor de forensische borging.

NL-KAT-boefjes

Boefjes bevat twee onderdelen van OpenKAT: boefjes, de plugins die scans uitvoeren en whiskers, de normalizers die de data normaliseren en er objecten van maken.

Hoe kan ik OpenKAT installeren en gebruiken?

OpenKAT kan direct worden geinstalleerd met behulp van de installatiehandleiding op de wiki. De standaard installatie werkt in elk geval met Ubuntu en met MacOS X. Er zijn ook debian packages beschikbaar.

Bij het bouwen van een productieomgeving bepalen de beschikbare bronnen en de toepassing hoe ver je de systemen splitst en schaalt. Voorbeelden van de installatiemogelijkheden zijn beschikbaar.

Welke ondersteuning krijgt het project?

OpenKAT is gebouwd door het Ministerie van VWS, Directie Informatiebeleid, programma Realisatie Digitale Ondersteuning. Dit is een tijdelijk programma in verband met de pandemie. De komende periode is er ondersteuning voor de doorontwikkeling van OpenKAT. Onder andere Z-Cert heeft ontwikkeltijd ter beschikking gesteld. Het team staat open voor samenwerking met gebruikers en andere partijen.

Wat levert dit op voor andere open source projecten?

OpenKAT en onderdelen ervan kunnen onder de voorwaarden van de EU PL 1.2 licentie worden toegepast in andere projecten. Zo maakt de frontend gebruik van Manon-Open, een framework waarin content en styling zijn gescheiden en dat goed bruikbaar is voor andere projecten. Daarnaast is het mogelijk om OpenKAT te integreren in andere systemen. Het uitgangspunt is dat het als framework functioneert en aanpasbaar is aan verschillende situaties.

Licenties

Onder welke licentie wordt OpenKAT vrijgegeven?

OpenKAT wordt beschikbaar onder de EU PL 1.2 licentie. Deze licentie is gekozen omdat het een redelijke mate van vrijheid biedt, maar wel het publieke karakter waarborgt. De EU PL 1.2 licentie blijft behouden bij verdere verspreiding van de software. Wijzigingen en toevoegingen kunnen plaatsvinden onder de EU PL 1.2 licentie of onder verenigbare licenties, die een vergelijkbaar karakter hebben.

De tools die door OpenKAT worden aangesproken kunnen hun eigen licentie hebben, uit het OS/S domein of vanuit commerciele toepassing. De eigenaar van het systeem dat deze tools aanspreekt is hier zelf verantwoordelijk voor. De opname van nieuwe boefjes in de KAT-alogus wordt geregeld in een aparte overeenkomst.

Plugins bouwen

Het gebruik van plugins zoals boefjes (scraper), whiskers (normalizer) of bits (businessrule) die informatie uit andere tools analyseren maakt het mogelijk om systemen met een ander type licentie met OpenKAT te laten samenwerken. Plugins zijn eenvoudig te bouwen en vallen onder de EU PL 1.2 licentie, voor zover je ze in de KATalogus wilt laten opnemen voor verdere verspreiding. OpenKAT als systeem kan hierdoor prima in een corporate omgeving functioneren.

Meedoen!

Hoe kan ik meedoen en meehelpen?

Je kunt direct meedoen en betrokken zijn bij de ontwikkeling van OpenKAT:

  • Installeer het systeem en gebruik het, geef ons feedback

  • Boef je eigen boefjes, whiskers en bits

  • Help mee om het datamodel uit te breiden

  • Stel nieuwe features voor

  • Stuur bugreports in als issue

  • Help mee met het beschikbaar maken van OpenKAT voor andere operating systems

Kunnen externe ontwikkelaars ook code toevoegen aan het project?

Ja, dat is zeker de bedoeling van het openbaar maken van de broncode. We zijn op zoek naar mensen die willen meehelpen. In eerste instantie ligt de coordinatie van het project bij het ontwikkelteam bij het Ministerie van VWS, maar we staan open voor alle bijdragen. De opzet is om rond OpenKAT een community op te bouwen die de software gebruikt en helpt ontwikkelen, om er zo voor te zorgen dat het een goede bijdrage kan leveren aan de informatiebeveiliging.

Hoe kan ik wijzigingen zoals bugfixes, patches en nieuwe features toevoegen?

Je kunt direct PR’s insturen via Github, of contact opnemen met de community manager via meedoen@openkat.nl.

OpenKAT hanteert de volgende uitgangspunten voor het schrijven van code:

  • python 3.8

  • Alle code via pullrequests met reviews

  • Python met PEP8:

  • Pylint

  • Black, 120 tekens regellengte:

  • Type hinting

  • Tests

Op Github tref je een development branch aan. Hiervoor kunnen pull requests voor review worden aangeleverd. Op basis van de development branch wordt de main branch gevoed, ten behoeve van productiereleases. De reviews worden gedaan door VWS developers.

Als je wilt dat je boefje wordt opgenomen in de KAT-alogus geldt er een aparte regeling, waar we je graag over vertellen. Stuur een mailtje naar meedoen@openkat.nl.

Ik run Arch/NetBSD/OpenVMS of iets anders leuks, hoe kan ik zorgen dat OpenKAT het ook op mijn systeem doet?

OpenKAT gaat er vanuit dat je ubuntu of debian gebruikt, maar de community manager kreeg het onder Mac OS X zo aan de gang. Probeer het dus gerust, en help ons vooral met fixes en documentatie voor de installatie op je favoriete systeem!

Internationalisatie

In welke talen is OpenKAT beschikbaar?

OpenKAT ondersteunt op dit moment de volgende talen:

  • Engels

  • Nederlands

  • Papiamento

De meeste documentatie in de software zelf is in het Engels geschreven. De handleidingen en de wiki zijn in het Nederlands, maar willen we graag ook in andere talen beschikbaar maken.

Contact met het team

Er een aantal opties om contact te leggen het met team van OpenKAT: