- Key Takeaways
- Strategieën ter verdediging tegen ongeautoriseerde code-uitvoering
- Veilige ontwikkelingspraktijken (SDP's)
- Inbraakdetectie- en preventiesystemen (IDS/IPS)
- Code ondertekening
- Bouwverificatie
- Naleving bij het beperken van aanvallen met ongeautoriseerde code-uitvoering
- Nieuwe trends in aanvallen met ongeautoriseerde code-uitvoering
- Conclusie
- Hoe kan Encryption Consulting helpen?
- Veelgestelde Vragen / FAQ
Ongeautoriseerde code-uitvoeringsaanvallen vormen een aanzienlijke bedreiging voor organisaties van elke omvang. Deze aanvallen stellen kwaadwillenden in staat om op afstand de systemen van een organisatie te infiltreren en hun code uit te voeren, wat mogelijk catastrofale schade kan veroorzaken.
Deze aanvallen maken gebruik van kwetsbaarheden in software, besturingssystemen en applicaties. Hieronder volgt een overzicht van het aanvalsproces:
Verdediging tegen ongeautoriseerde code-uitvoering, kort gezegd: het aanvalspad loopt van het identificeren van een kwetsbaarheid, via het verspreiden van een exploit, tot het uitvoeren van de code; verschillende beveiligingsmaatregelen onderbreken verschillende fasen. Veilige ontwikkelmethoden en patches dichten de kwetsbaarheid zelf; codeondertekening en buildverificatie voorkomen dat een gemanipuleerd artefact wordt uitgevoerd, zelfs als er elders in de keten een kwetsbaarheid bestaat.
Key Takeaways
- Buildverificatie en patchbeheer lossen verschillende problemen op: buildverificatie spoort een gemanipuleerde of vervangen afhankelijkheid op; patchbeheer pakt een bekende kwetsbaarheid aan in een legitieme, ongewijzigde afhankelijkheid. Equifax (2017) had het laatste nodig; SolarWinds (2020) had het eerste nodig.
- Deze pagina koppelt beheersmaatregelen aan de verschillende aanvalsfasen. Voor de specifieke incidentresponsprocedure tijdens een actieve inbreuk op de codeondertekening, zie Versterk de beveiliging van codeondertekening tegen integriteitsomzeilingen..
-
Identificatie van kwetsbaarheden
Aanvallers scannen netwerken en systemen voortdurend op zwakke plekken, variërend van ongepatchte software tot fouten in de applicatielogica. Ze richten zich op diverse softwarezwakheden, zoals:
-
Bufferoverloop: Deze treedt op wanneer een applicatie probeert meer gegevens naar een daarvoor bestemde geheugenbuffer (opslaggebied) te schrijven dan deze kan bevatten. Dit kan aangrenzende geheugenlocaties overschrijven, waardoor aanvallers mogelijk hun eigen code kunnen injecteren.
-
SQL-injectie: Hierbij worden kwetsbaarheden in de manier waarop applicaties gebruikersinvoer verwerken binnen databasequery's misbruikt. Kwaadaardige SQL-code kan worden geïnjecteerd via ogenschijnlijk onschuldige gebruikersinvoer, waardoor de database wordt misleid om ongeautoriseerde opdrachten uit te voeren.
-
Cross-Site Scripting (XSS): Aanvallers injecteren kwaadaardige scripts in webpagina's. Bij het bezoeken van de pagina wordt het script uitgevoerd in de browser van de gebruiker, waardoor mogelijk sessiecookies worden gestolen, gebruikers worden doorgestuurd naar kwaadaardige sites of de website wordt beschadigd.
-
Logische fouten: Soms ontstaan ​​kwetsbaarheden door fouten in de logica van de applicatie zelf. Aanvallers kunnen deze logische fouten misbruiken om beveiligingsmaatregelen te omzeilen en ongeautoriseerde code uit te voeren.
-
-
Exploitlevering
Zodra een kwetsbaarheid is geïdentificeerd, levert de aanvaller een schadelijke payload af: een code die is ontworpen om de kwetsbaarheid te misbruiken. Dit kan op verschillende manieren, zoals:
-
Phishing-e-mails: e-mails met schadelijke bijlagen of links die, wanneer erop geklikt wordt, de schadelijke software downloaden naar het systeem van het slachtoffer.
-
Drive-by downloads: Kwaadaardige code kan ingebed zijn in gecompromitteerde websites. De code wordt gedownload en kan automatisch worden uitgevoerd wanneer de gebruiker de website bezoekt.
-
Social engineering: Aanvallers kunnen social engineering-tactieken gebruiken om gebruikers ertoe te verleiden de schadelijke software te downloaden of uit te voeren.
-
-
Code-uitvoering
Als de gebruiker slachtoffer wordt van de exploit, wordt de schadelijke code uitgevoerd op het doelsysteem. Deze code kan vervolgens verschillende acties uitvoeren, zoals:
-
Het stelen van gevoelige gegevens (bijvoorbeeld klantgegevens, financiële gegevens)
-
Volledige controle over het systeem krijgen
-
Extra malware implementeren
-
Het verstoren van kritieke operaties
-
Strategieën ter verdediging tegen ongeautoriseerde code-uitvoering
Hoewel deze aanvallen een ernstige bedreiging vormen, zijn er proactieve stappen die de kwetsbaarheid van de organisatie aanzienlijk kunnen verminderen:
Veilige ontwikkelingspraktijken (SDP's)
Integreer beveiligingsaspecten gedurende de gehele softwareontwikkelingscyclus. Dit omvat het implementeren van veilige codeerpraktijken, het uitvoeren van regelmatige codereviews om potentiële kwetsbaarheden te identificeren en aan te pakken, en het uitvoeren van kwetsbaarheidsbeoordelingen tijdens de ontwikkeling.
Specifieke stappen
-
Veilige coderingstraining
Deze training helpt ontwikkelaars de kennis en tools te verwerven die nodig zijn om veilige code te schrijven. De training omvat training over veelvoorkomende kwetsbaarheden in coderen, zoals bufferoverlopen en SQL-injectie, en best practices voor veilige codeertechnieken, zoals invoervalidatie en correct geheugenbeheer.
-
Statische applicatiebeveiligingstesten (SAST)
Integreer SAST-tools in de ontwikkelpijplijn. Deze tools analyseren code al vroeg in het ontwikkelingsproces op kwetsbaarheden, zodat ontwikkelaars problemen kunnen identificeren en oplossen voordat de code wordt geïmplementeerd.
-
Coderecensies
Implementeer een codebeoordelingsproces waarbij ontwikkelaars elkaars code beoordelen op functionaliteit en best practices voor beveiliging. Deze gezamenlijke aanpak helpt potentiële kwetsbaarheden te ontdekken voordat ze de productiefase bereiken.
-
Dynamische toepassingsbeveiligingstests (DAST)
Vul SAST aan met DAST-tools die echte aanvallen op applicaties simuleren om kwetsbaarheden te ontdekken die met statische analyses mogelijk over het hoofd worden gezien.
Best Practices
-
Principe van de minste privileges
Verleen toegang op basis van minimale vereisten voor taken. Dit vermindert de potentiële schade die wordt veroorzaakt door een ongeautoriseerde aanval.
-
Invoervalidatie en opschoning
Valideer en zuiver alle gebruikersinvoer grondig voordat deze wordt verwerkt. Dit helpt voorkomen dat aanvallers kwaadaardige code injecteren, vermomd als ogenschijnlijk onschadelijke gegevens.
-
Regelmatige beveiligingsupdates
Werk alle ontwikkelingsbibliotheken en -frameworks regelmatig bij om ervoor te zorgen dat de nieuwste, veilige versies worden gebruikt.
Voorbeeld uit de echte wereld
Heartbleed , een ernstige kwetsbaarheid voor het uitvoeren van ongeautoriseerde code die in 2014 werd ontdekt in de OpenSSL -cryptografiebibliotheek , is een belangrijke herinnering aan het belang van SDP's (Security Development Protocols). Deze kwetsbaarheid ontstond door een bufferoverloopfout in de code van de bibliotheek. Als er strikte veilige codeerpraktijken en codebeoordelingen waren toegepast, had deze kwetsbaarheid mogelijk eerder ontdekt en verholpen kunnen worden, voordat aanvallers er op grote schaal misbruik van maakten.
Inbraakdetectie- en preventiesystemen (IDS/IPS)
Een IDS/IPS kan kwaadaardig verkeer detecteren en blokkeren voordat het de systemen bereikt. Het inzetten van deze tools om netwerkverkeer te monitoren op verdachte activiteiten kan wijzen op een poging tot ongeautoriseerde code-uitvoering.
Specifieke stappen
-
Strategische implementatie
Om al het inkomende en uitgaande verkeer te kunnen bewaken, kunt u IDS/IPS-sensoren plaatsen op belangrijke netwerkknelpunten, zoals firewalls en gateways.
-
Handtekeningupdates
Zorg voor een regelmatig updateschema voor de IDS/IPS- signatures . Deze signatures zijn als digitale vingerafdrukken die het systeem helpen bekende kwaadaardige verkeerspatronen te identificeren die verband houden met de aanvallen.
-
Regelafstemming
Verfijn de IDS/IPS-regels om een ​​balans te vinden tussen beveiliging en het minimaliseren van valse positieven (waarschuwingen die worden geactiveerd door onschuldige activiteiten). Dit zorgt ervoor dat het systeem zich richt op het detecteren van echte bedreigingen.
-
Beveiligingsinformatie en gebeurtenisbeheer (SIEM)
Integreer het IDS/IPS-systeem met een SIEM-systeem om logboeken en beveiligingsgebeurtenissen uit verschillende bronnen te centraliseren. Dit maakt een uitgebreide dreigingsanalyse mogelijk en zorgt voor een snellere reactie op potentiële incidenten met ongeautoriseerde code-uitvoering.
Best Practices
-
Voer regelmatig tests uit
Plan regelmatig penetratietests om aanvallen te simuleren en de effectiviteit van IDS/IPS bij het detecteren van ongeautoriseerde toegangspogingen te beoordelen.
-
Incident Response Plan
Ontwikkel een goed gedefinieerd incidentresponsplan met de stappen die moeten worden genomen als een IDS/IPS een potentiële aanval detecteert. Dit plan moet procedures bevatten voor het onderzoeken van het incident, het beperken van de dreiging en het verhelpen van eventuele kwetsbaarheden.
Voorbeeld uit de echte wereld
De WannaCry-ransomwareaanval uit 2017 , die misbruik maakte van een kwetsbaarheid in Microsoft Windows Server Message Block (SMB), herinnert ons aan het belang van IDS/IPS. Organisaties met correct geconfigureerde en bijgewerkte IDS/IPS-systemen konden het kwaadaardige verkeer dat met WannaCry gepaard ging detecteren en blokkeren voordat het hun systemen kon infecteren.
Code ondertekening
Codeondertekening houdt in dat de code digitaal wordt ondertekend met een digitaal certificaat dat is uitgegeven door een vertrouwde certificeringsinstantie (CA) . Deze handtekening fungeert als authenticatiemiddel en verifieert de herkomst en integriteit van de code. Het detecteert eventuele wijzigingen die na de ondertekening in de code zijn aangebracht. Elke poging tot manipulatie maakt de handtekening ongeldig en waarschuwt voor potentiële bedreigingen.
Specifieke stappen
-
Verkrijg een digitaal certificaat
Dit certificaat fungeert als de digitale identiteit voor het ondertekenen van de code. De CodeSign Secure-oplossing maakt het mogelijk om alle ondertekeningscertificaten en -beleidsregels te beheren vanuit een gebruiksvriendelijke interface, waardoor handmatige configuratie op individuele ontwikkelaarscomputers overbodig wordt.
-
Integreer codeondertekening in het bouwproces
Automatiseer codeondertekening als onderdeel van de software-bouwpijplijn. Dit zorgt ervoor dat alle vrijgegeven code vóór implementatie wordt ondertekend.
-
Veilig sleutelbeheer
Gebruik hardwarebeveiligingsmodules (HSM's) voor de veilige opslag en het beheer van de codeondertekeningssleutels, waardoor het risico op ongeautoriseerde toegang wordt geminimaliseerd.
-
Gedetailleerde audittrails
Houd een uitgebreid audittraject bij van alle ondertekeningsactiviteiten. Dit levert waardevolle inzichten op voor compliance-doeleinden en vergemakkelijkt de identificatie van potentiële beveiligingsincidenten.
Best Practices
-
Gecompromitteerde certificaten intrekken
Zorg dat u een plan hebt om gecompromitteerde certificaten onmiddellijk in te trekken, zodat aanvallers deze niet kunnen gebruiken om schadelijke code te ondertekenen.
-
Ontwikkel ontwikkelaars
Informeer ontwikkelaars over het belang van codeondertekening en over de beste werkwijzen voor het integreren hiervan in het ontwikkelingsproces.
Voorbeeld uit de echte wereld
De beruchte SolarWinds-aanval op de toeleveringsketen , waarbij aanvallers het ondertekeningscertificaat van een legitieme softwareleverancier wisten te bemachtigen om kwaadaardige code in hun software-updates te injecteren, onderstreept het belang van codeondertekening.
Organisaties met een robuust codeondertekeningsproces, inclusief veilig sleutelbeheer en procedures voor het intrekken van certificaten, waren minder vatbaar voor deze aanval, omdat de gemanipuleerde code de verificatie van de handtekening niet zou hebben doorstaan.
Bouwverificatie
Buildverificatie gaat verder dan codeondertekening en voegt een extra controlelaag toe. Het omvat het gebruik van geautomatiseerde tools om het buildproces te analyseren en de integriteit van de uiteindelijke softwarecode te verifiëren. Het helpt de integriteit van externe bibliotheken te waarborgen en minimaliseert het risico op kwetsbaarheden die via de softwaretoeleveringsketen worden geïntroduceerd.
Specifieke stappen
-
Broncode hashing
Berekening van een unieke hash (een digitale vingerafdruk) van de broncode vóór het buildproces. Deze hash dient als basis voor vergelijking nadat de build is voltooid.
-
Verificatie van codeondertekening
Verifiëren van de aanwezigheid en geldigheid van digitale handtekeningen op de codecomponenten. Dit garandeert dat er na ondertekening niet met de code is geknoeid.
-
Hash-validatie
Nadat het buildproces is voltooid, berekent de buildverificatietool een nieuwe hash van het uiteindelijke softwarepakket. Deze hash wordt vervolgens vergeleken met de originele hash van de broncode. Eventuele afwijkingen wijzen op mogelijke manipulatie of wijzigingen tijdens het buildproces, wat waarschuwt voor mogelijke beveiligingsrisico's.
Best Practices
-
Regelmatige updates
Zorg voor een regelmatig updateschema voor de buildverificatietools om ervoor te zorgen dat ze over de meest recente kwetsbaarheidsdatabases en detectiemechanismen beschikken.
-
Continue integratie/continue levering (CI/CD) pijplijnintegratie
Integreer buildverificatie naadloos in de CI/CD-pipeline . Hierdoor kunnen potentiële integriteitsproblemen vroegtijdig in de ontwikkelingsfase worden opgespoord en opgelost, voordat de code in productie wordt genomen.
-
Rapportage en herstel
Stel duidelijke procedures op voor het melden en verhelpen van kwetsbaarheden die tijdens het buildverificatieproces worden geïdentificeerd. Dit zorgt ervoor dat er tijdig actie wordt ondernomen om potentiële beveiligingsrisico's aan te pakken.
Voorbeeld uit de echte wereld
Het datalek bij Equifax in 2017 wordt vaak aangehaald in verband met buildverificatie, maar het is eigenlijk een waarschuwend voorbeeld van gebrekkig patchbeheer, niet van het manipuleren van builds. De aanvallers maakten misbruik van een bekende, reeds openbaar gemaakte kwetsbaarheid (CVE-2017-5638) in het open-source Apache Struts-framework, die Equifax maandenlang niet had verholpen nadat er een oplossing publiekelijk beschikbaar was.
Buildverificatie (hashvalidatie ten opzichte van een bekende, correcte build) zou dit niet hebben opgemerkt, omdat de draaiende Struts-bibliotheek zelf niet was gemanipuleerd of vervangen; het was legitieme, ongepatchte software met een publiekelijk bekende kwetsbaarheid. Dit onderscheid is belangrijk: buildverificatie beschermt tegen een gecompromitteerde of gewijzigde afhankelijkheid, terwijl tijdig patchbeheer en het scannen op kwetsbaarheden in afhankelijkheden beschermen tegen een bekende kwetsbaarheid in een verder legitieme afhankelijkheid.
Naleving bij het beperken van aanvallen met ongeautoriseerde code-uitvoering
Laten we eens kijken hoe de strategieën die we hebben besproken bijdragen aan compliance en de beveiliging van de organisatie versterken:
-
Veilige ontwikkelingspraktijken (SDP's)
-
Compliance: Veel regelgeving, zoals PCI DSS, NIST CSF en HIPAA, legt de nadruk op veilige softwareontwikkelingslevenscycli (SDLC's). Het implementeren van SDP's tijdens de ontwikkeling, zoals veilige codeerpraktijken, codebeoordelingen en kwetsbaarheidsanalyses, voldoet aan deze compliance-vereisten.
Door beveiliging vanaf de grond af aan op te bouwen, wordt het aanvalsoppervlak voor kwetsbaarheden met betrekking tot ongeautoriseerde code-uitvoering aanzienlijk verkleind.
-
-
Inbraakdetectie- en preventiesystemen (IDS/IPS)
-
Compliance: Regelgeving schrijft vaak proactieve maatregelen voor ter detectie en preventie van bedreigingen. IDS/IPS-systemen die worden ingezet om netwerkverkeer te monitoren op verdachte activiteiten die verband houden met geautoriseerde pogingen, helpen organisaties aan deze eis te voldoen.
Vroege detectie zorgt ervoor dat er tijdig kan worden ingegrepen om te voorkomen dat aanvallen de systemen bereiken.
-
-
Code ondertekening
-
Compliance: Regelgeving zoals PCI DSS en HIPAA vereist vaak maatregelen om de authenticiteit en integriteit van software die binnen een organisatie wordt gebruikt te waarborgen.
Codeondertekening ondersteunt deze compliance-eisen direct door de bron en integriteit van de code digitaal te verifiëren. Dit verkleint het risico dat software onbewust wordt gecompromitteerd met schadelijke code.
-
-
Bouwverificatie
-
Compliance: Regelgeving die veilige softwareontwikkelingspraktijken voorschrijft, omvat vaak ook het waarborgen van de integriteit van het bouwproces. Buildverificatie, door middel van technieken zoals hashvalidatie en afhankelijkheidsverificatie, helpt organisaties aan deze eisen te voldoen.
Hiermee wordt gegarandeerd dat het uiteindelijke softwarepakket precies aan uw wensen voldoet, zonder enige manipulatie of kwetsbaarheden die via de softwareleveringsketen zijn ontstaan.
-
Nieuwe trends in aanvallen met ongeautoriseerde code-uitvoering
Cyberdreigingen evolueren voortdurend en schenden de beveiliging van een organisatie, wat leidt tot wijdverbreide verstoringen en dataverlies. Hier zijn enkele opkomende trends waar u rekening mee moet houden:
-
Supply Chain-aanvallen
Aanvallers richten zich steeds vaker op softwareleveringsketens om kwetsbaarheden in veelgebruikte applicaties te injecteren, waardoor veel systemen kwetsbaar worden voor deze aanvallen.
-
Zero-Day-exploits
Dit zijn exploits voor kwetsbaarheden waarvan softwareleveranciers zich niet bewust zijn. Zero-day-aanvallen zijn bijzonder gevaarlijk omdat er geen patches beschikbaar zijn om de kwetsbaarheid te verhelpen.
-
Bestandsloze aanvallen
Bij deze aanvallen wordt gebruikgemaakt van legitieme functionaliteiten binnen besturingssystemen om schadelijke code uit te voeren zonder dat er traditionele sporen in de vorm van bestanden achterblijven. Hierdoor zijn ze moeilijker te detecteren.
Conclusie
Ongeautoriseerde code-uitvoeringsaanvallen vormen een ernstige bedreiging voor organisaties en kunnen leiden tot datalekken, systeemstoringen en reputatieschade. Door deze strategieën te implementeren en een cultuur van beveiligingsbewustzijn binnen de organisatie te creëren, kan het risico op dergelijke aanvallen echter aanzienlijk worden verminderd.
Hoe kan Encryption Consulting helpen?
Het CodeSign Secure-product van Encryption Consulting kan de beveiliging van een organisatie verbeteren door het codeondertekeningsproces te vereenvoudigen. Het biedt een robuust ondertekeningsproces en fraudebestendige functies zoals hashvalidatie om de authenticiteit en integriteit van de softwarebuild te waarborgen.
Het maakt ook gebruik van de functie voor reproduceerbare builds om de integriteit van de softwarebuild te identificeren en valideren en het risico op kwetsbaarheden door handmatige wijzigingen of inconsistenties in het buildproces te verkleinen. CodeSign Secure helpt de authenticiteit van de code te verifiëren en vermindert ongeautoriseerde code-uitvoeringsaanvallen aanzienlijk.
Veelgestelde Vragen / FAQ
Zou het gebruik van codeondertekening het datalek bij Equifax hebben kunnen voorkomen?
Nee. De Struts-bibliotheek die Equifax gebruikte, was legitiem en correct ondertekend; het probleem was een bekende kwetsbaarheid die niet was verholpen, niet een gemanipuleerd of vervangen onderdeel. Codeondertekening verifieert de herkomst en integriteit, niet of een component bekende, niet-verholpen kwetsbaarheden bevat.
Als ik buildverificatie heb geïmplementeerd, heb ik dan nog steeds een patchbeheerprogramma nodig?
Ja. Ze beschermen tegen verschillende risico's. Buildverificatie bevestigt dat er tijdens het bouwproces niet met een artefact is geknoeid; patchbeheer pakt bekende kwetsbaarheden aan in afhankelijkheden die verder ongewijzigd en legitiem zijn. Geen van beide vervangt de ander.
- Key Takeaways
- Strategieën ter verdediging tegen ongeautoriseerde code-uitvoering
- Veilige ontwikkelingspraktijken (SDP's)
- Inbraakdetectie- en preventiesystemen (IDS/IPS)
- Code ondertekening
- Bouwverificatie
- Naleving bij het beperken van aanvallen met ongeautoriseerde code-uitvoering
- Nieuwe trends in aanvallen met ongeautoriseerde code-uitvoering
- Conclusie
- Hoe kan Encryption Consulting helpen?
- Veelgestelde Vragen / FAQ
