Tegenwoordig leven we in de wereld van onveiligheid en gebrek aan privacy. Van de besturingssystemen zelf tot de programma's die we dagelijks gebruiken, het is heel gewoon om allerlei kwetsbaarheden te vinden die onze veiligheid in gevaar kunnen brengen. Maar wiens fout is het dat er beveiligingsfouten zijn? Van de ontwikkelaars? Van programmeertalen? Zijn er veilige en onveilige programmeertalen? Of hebben beide partijen echt de schuld?
Besturingssystemen van vandaag en programma's zijn echt complexe projecten. De geringste fout of fout in een van de honderden bibliotheken kan ertoe leiden dat ons programma gebruikers in gevaar brengt. Alle programmeertalen zijn standaard veilig. Als we ze goed gebruiken, hoeven ze geen gebruikers in gevaar te brengen. Hoewel, nu zijn er talen die veel meer vatbaar zijn voor fouten (door ongelukken, complexiteit of gebrek aan beveiligingsmaatregelen) die tot allerlei kwetsbaarheden kunnen leiden.
Veiliger programmeertalen
Van alle meest gebruikte programmeertalen is die met de minste kwetsbaarheden Robijn. Deze programmeertaal is slechts door 5% van de kwetsbaarheden getroffen. Bovendien is het in grote lijnen een van de veiligste en meest robuuste talen, aangezien er weliswaar verschillende kwetsbaarheden zijn gemeld, maar de enige die echt zorgwekkend is, is de mogelijkheid om XSS-aanvallen uit te voeren. Als de veiligste programmeertaal zouden worden aanbevolen, zou dit de ideale zijn voor de titel.
C ++ is een van de programmeertalen met de minste kwetsbaarheden die we kunnen vinden, met slechts 6% kwetsbare code. Het is echter niet bepaald een van de meest foutopsporing, omdat het een groot aantal geheugenbeschadigingsproblemen en bufferfouten heeft die kunnen leiden tot complexere computeraanvallen.
We gaan verder met de lijst van veilige programmeertalen met minder kwetsbaarheden waar we bij komen Python. In het verleden was deze taal een van de slechtste op het gebied van beveiliging. De afgelopen jaren is hij echter veel verbeterd en heeft hij de meeste problemen aangepakt die hem in het verleden hebben aangedaan. Natuurlijk heeft het nog steeds de meest kritieke kwetsbaarheden die we vandaag kunnen vinden, zoals gebrek aan validatie van toegang, escalatie van bevoegdheden, informatielekkage en XSS. Als we weten hoe we in Python moeten programmeren, kunnen we een robuust programma hebben. Maar als we verkeerd programmeren, hebben we letterlijk een zeef.
En het heeft ook iets speciaals JavaScript noemen . Dit wordt ook veel gebruikt in webontwikkeling en verbergt slechts 11% van de kwetsbaarheden. Een van de belangrijkste zwakke punten zijn cryptografische problemen, die ons zullen dwingen API's van derden te gebruiken om ze op te lossen.
Talen met meer kwetsbaarheden
Aan de andere kant is een van de meest kwetsbare programmeertalen de eerste die we zullen vinden C. En dit is duidelijk, omdat het een van de programmeertalen is waarin er meer geschreven code is (vooral oude code), dus de kans dat kwetsbaarheden in deze code ontdekt worden is erg groot. Van de totale gevonden kwetsbaarheden zit 47% in code die in deze programmeertaal is geschreven. Echter, bugs als zodanig specifiek voor de taal zijn slechts twee gevonden, een bufferfout en verschillende validatieproblemen.
PHP is een van de meest gebruikte talen in webprogrammering (backend) en daarom een van de meest opvallende voor hackers. Dit is de tweede programmeertaal met de meeste kwetsbaarheden (17% van het totaal), en het meest opvallende is dat deze taal de enige is die kritieke kwetsbaarheden heeft zoals SQL Injection, en die ook via XSS kan worden misbruikt. Twee zeer misbruikte kwetsbaarheden in het netwerk en moeilijk op te lossen.
En natuurlijk konden we niet eindigen zonder erover te praten Java. De multiplatform-programmeertaal die een paar jaar geleden zo werd gebruikt, is vanwege de complexiteit ook een van de meest verborgen kwetsbaarheden binnenin. 12% van de kwetsbaarheden wordt aangetroffen in deze programmeertaal, die, hoewel deze de laatste tijd behoorlijk aan populariteit heeft ingeboet, nog steeds een van de fundamentele pijlers is van Android.
Code hergebruiken: voordeel of risico?
Momenteel is het mogelijk om een grote hoeveelheid open source te vinden op platforms zoals GitHub. Deze code kan, afhankelijk van de licentie die u heeft, vrij worden gebruikt in andere soorten projecten, wat ons veel tijd kan besparen bij het vormgeven van onze programma's. Code hergebruik verbergt echter een van OpenSource's grootste problemen : kwetsbaarheden.
Het is heel gebruikelijk voor allerlei soorten ontwikkelaars, inclusief grote bedrijven zoals Microsoft of Google, om te profiteren van open bibliotheken om gebruikers bepaalde functies en mogelijkheden te bieden. So far so good, omdat het bovendien een beetje transparantie geeft aan de ondoorzichtige projecten die deze bedrijven meestal maken. We moeten echter een zeer belangrijke handicap in gedachten houden: een kwetsbaarheid in een open source-bibliotheek brengt automatisch alle projecten die er gebruik van maken in gevaar.
We hebben het al gezien grote kwetsbaarheden (zoals OpenSSL) die de beveiliging van duizenden programma's en platforms over de hele wereld in gevaar hebben gebracht. Bovendien, wanneer een kwetsbaarheid van dit type wordt ontdekt, is het enerzijds nodig dat de ontwikkelaar van het oorspronkelijke project zijn bibliotheek bijwerkt, en anderzijds dat de ontwikkelaars van de kwetsbare programma's de nieuwe versie opnemen in hun programma via een update.
Code hergebruik is een van de kenmerken van moderne programma's en systemen. Maar we mogen onszelf nooit vertrouwen, omdat de kans op een kwetsbaarheid in de code die we hebben gebruikt veel groter is dan wanneer we de code zelf hadden gemaakt.