Als je jouw blog of webserver niet zelf draait, ben je afhankelijk vaak van het beveiligingsniveau dat je provider hanteert. Het is vrij eenvoudig om te zien of je applicatie een recente versie draait, maar hoe dieper je het systeem ingaat, hoe lastiger het wordt. Je hebt als gebruiker roottoegang nodig om te zien hoe het zit met de databases, servercomponenten en scripting en die toegang is meestal voorbehouden voor klanten van dure hostingpakketten.

Nikto is een tool die je op een specifiek systeem kunt richten om een scan uit te voeren op allerlei eventueel verouderde onderdelen. De software is ontworpen om bijvoorbeeld een webserver door te lichten op beveiligingsissues, zoals foutief geconfigureerde Apache-extensies of verouderde softwareversies. Nikto wordt aan de andere kant ook ingezet door aanvallers die het als aanvulling op een scantool als nmap gebruiken. Deze tool brengt de servers in een netwerk in kaart, met Nikto jagen ze vervolgens dieper op een specifiek doelwit.

De meeste Linux-distributies bieden tegenwoordig Nikto aan in hun pakketbeheerprogramma, maar het is ook te downloaden als een in Perl geschreven programma vanaf de website van het project. Hij is uiteraard standaard geleverd in de beveiligingsonderzoekende Linux-distributie Kali Linux, die ook beschikbaar is als live-omgeving. Daarmee kun je snel een analyse uitvoeren vanaf elk mogelijk systeem, of het nu officieel een Windows-machine is of iets anders.

Je mag Nikto alleen gebruiken op systemen die van jezelf zijn, het scannen van andere webservers kan leiden tot allerlei ellende wegens potentieel computervredebreuk. Bovendien is zo'n scan eenvoudig op te merken, want er is geen stealth-modus. De analyses worden zo vlug mogelijk uitgevoerd: hij bevraagt zijn doelsysteem op een aantal onderdelen en dat is duidelijk zichtbaar als je er naar zoekt.

Vanuit de terminal start je het programma met de opdracht "nikto -h". Voor het in Perl geschreven programma zijn er grafische interfaces meegeleverd en je kunt ze gebruiken of gewoon een opdrachtregel gebruiken, afhankelijk van je persoonlijke smaak. Als je een computer specificeert kun je een IP-adres opgeven, maar ook een url is prima.

Houd er rekening mee dat een scan breder kan zijn dan je bedoelt als je bijvoorbeeld "www.domein.nl" bevraagt, want ook alle onderliggende domeinen en mappen worden onderzocht. Als je een vast pad opgeeft, zoekt Nikto alleen in de onderliggende mappenstructuur. Na bevestiging gaat het programma een tijdje aan de slag, maar je ziet de eerste resultaten al vrij snel verschijnen in de terminal, bijvoorbeeld welke serverversie wordt gebruikt. Het duurt even voordat alle tests zijn afgerond.

De software is behoorlijk gebruiksvriendelijk. Sommige resultaten zijn direct inzichtelijk, bijvoorbeeld als uit de analyse blijkt dat de licentiebestanden ("license.txt") openbaar toegankelijk zijn. Deze bestanden zijn niet nodig voor het uitvoeren van de programma's, maar bevatten wel informatie die aanvallers kunnen gebruiken over bijvoorbeeld geïnstalleerde software en de versies daarvan.

Andere resultaten zijn voor de leek wat ingewikkelder, bijvoorbeeld de genummerde resultaten als "OSVDB-3233". Die verwijzen namelijk naar de website van het project Open Source Vulnerability Database, maar dat project wordt inmiddels niet meer onderhouden.

Andere berichten zijn daarentegen niet gemakkelijk toegankelijk. In de resultaten zijn de genummerde aanwijzingen, bijvoorbeeld "OSVDB-3233", snel opgemerkt. Zij verwijzen naar de website van het project "Open Source Vulnerability Database", dat echter zijn diensten in 2016 heeft stopgezet en de site is niet meer bereikbaar. Je kunt deze OSVDB-codes opzoeken op Google om te vinden wat de gekoppelde CVE is en wat het specifieke probleem is.

De uitdaging zit hem in bijvoorbeeld SSL-certificaten of webservercomponenten. Als daar issues mee opduiken, ben je afhankelijk van je hostingpartijen. Sommige hosters zijn erg snel en goed in het aanbieden van oplossingen (Let's Encrypt wordt bijvoorbeeld steeds breder ondersteund) maar vaak zit je vast aan wat de leverancier aanbiedt. Dan moet je of een duurder pakket kopen met roottoegang, of overstappen op een hoster die wel snel is in het aanpakken van beveiligingsissues.

Het kan even duren voor Nikto zijn scan heeft afgerond, afhankelijk van hoe groot de omgeving is die hij scant. Je kunt de scantijd inkorten door van tevoren te selecteren welke tests de tool moet uitvoeren. Het is mogelijk om het resultaat van de scan op te slaan (zie hieronder) zodat je het op je gemak kunt nalezen.

Om een bepaalde sectie te controleren voeg je aan de opdracht de parameter "-Tuning" toe, gevolgd door een extra parameter die je hier kunt vinden om specifieke dingen te doorzoeken. Je opdracht wordt dan bijvoorbeeld "nikto -h -Tuning 1" om scantijd te besparen. Met de parameter "-Format" bepaal je hoe een bestand wordt opgeslagen, met outputparameter -o gevolgd door csv, htm, msf (voor Metasploit), txt of xml. Een opdracht ziet er dan uit als "nikto -h -Format -o BESTANDSNAAM.txt". Een overzicht van alle beschikbare parameters roep je op met "nikto -H"

Zo weet je waar je staat met de beveiliging van je webserver, maar dan begint het echte werk namelijk en dat is het oplossen van de gevonden issues, bijvoorbeeld met het patchen van gaten, upgraden naar nieuwe versies of aanvragen van nieuwe certificaten.