Wat betekent code-injectie?
Code-injectie is de kwaadwillige injectie of introductie van code in een toepassing. De geïntroduceerde of geïnjecteerde code is in staat om de integriteit van de database aan te tasten en/of privacy-eigenschappen, beveiliging en zelfs correctheid van gegevens aan te tasten. Het kan ook gegevens stelen en/of toegangs- en authenticatiecontrole omzeilen. Aanvallen waarbij code-injectie wordt gebruikt kunnen applicaties teisteren die afhankelijk zijn van gebruikersinvoer voor uitvoering.
Techopedia legt code-injectie uit
Er zijn vier hoofdtypen aanvallen waarbij code wordt geïnjecteerd:
- SQL-injectie
- Scriptinjectie
- Shell-injectie
- Dynamische evaluatie
SQL-injectie is een aanvalsmethode die wordt gebruikt om een legitieme databasequery te vervalsen en vervalste gegevens te leveren. Scriptinjectie is een aanval waarbij de aanvaller programmeercodes levert aan de serverzijde van de scripting-engine. Shell-injectie aanvallen manipuleren toepassingen die worden gebruikt om commando’s voor het besturingssysteem te formuleren. Bij een dynamische evaluatie-aanval vervangt een willekeurige code de standaardinvoer, waardoor die code wordt uitgevoerd door de applicatie. Het verschil tussen code-injectie en commando-injectie, een andere vorm van aanval, is de beperking van de functionaliteit van de geïnjecteerde code voor de hacker.
Kwetsbaarheden voor code-injectie variëren van eenvoudige tot moeilijk te vinden kwetsbaarheden. Er zijn veel oplossingen ontwikkeld om dit soort code-injectie aanvallen tegen te gaan, zowel voor applicaties als voor het architectuurdomein. Enkele voorbeelden zijn toegangsvalidatie, parametrisatie, het instellen van privileges voor verschillende acties, het toevoegen van extra beschermingslagen en andere.