Aanvallen op de toeleveringsketen van software nemen toe en de noodzaak om op deze aanvalsvector te reageren is van cruciaal belang geworden. Maar waar begin je?
Als je de gevechtsplannen van de aanvaller had, zou je je inspanningen dienovereenkomstig kunnen prioriteren. We hebben geen specifieke plannen voor een aanvaller, maar we hebben wel een blauwdruk van typische gevechtsplannen voor aanvallers: de CI\CD-dreigingsmatrix, gebaseerd op de MITRE aanvalsraamwerk.
Als we de onderstaande tabel van links naar rechts lezen, worden we door de aanvalscyclus geleid: de aanvaller moet initiële toegang verkrijgen, vervolgens de code uitvoeren, persistentie bereiken, capaciteiten opbouwen door escalatie van privileges, verdedigingsontduiking en toegang tot inloggegevens. Op deze manier kunnen aanvallers een zijwaartse beweging uitvoeren om hun prooi te bereiken en vervolgens aanvallen – ofwel exfiltreren ofwel andere schokken veroorzaken.
In elke kolom van de tabel staan technieken vermeld die de aanvaller kan gebruiken. De eerste kolom suggereert bijvoorbeeld dat initiële toegang kan worden verkregen door een eerdere inbreuk op de CI\CD, of door zwakke toegangscontroles (geldig account van een Git-service, geldig account van een CI\CD-service of geldig beheerdersaccount). van een kritische server).
De op bewijzen gebaseerde benadering van Scribe om de toeleveringsketen te beveiligen is in wezen eenvoudig:
Vertrouw een artefact alleen als het is gekoppeld aan ondersteunend bewijsmateriaal, ondertekend bewijsmateriaal dat wordt gedefinieerd als digitale attesten.
Om deze aanpak te implementeren, levert Scribe de softwaretools die nodig zijn om dergelijk bewijsmateriaal te verzamelen en te beheren en de betrouwbaarheid van het artefact te evalueren op basis van beleid en attesten (ondertekend bewijsmateriaal).
Oplossingsoverzicht ophalenVoorbeelden van beleid dat door Scribe wordt ondersteund:
Beleid voor beveiligingsinstellingen
Zorg ervoor dat de beveiligingsinstellingen van de services die tijdens het bouwproces worden gebruikt, voldoen aan een vooraf gedefinieerde standaard.
Bron\Bestand\Module-wijzigingsbeleid
Controleer of de broncode, configuraties, buildscripts en IoC-bestanden zijn gewijzigd volgens een vooraf gedefinieerde standaard die de identiteiten, processen, stappen en statussen definieert.
Source\File\Module-integriteitsbeleid
Zorg ervoor dat de broncode, bestanden en modules identiek zijn aan de vooraf bepaalde toegestane versies.
Afhankelijkheidsvertrouwensbeleid
Zorg ervoor dat de gebruikte afhankelijkheden voldoen aan een vooraf gedefinieerde standaard (zoals OSSF-scorekaart, versie-leeftijd, allow\ban-lijst).
Kwetsbaarhedenbeleid
Zorg ervoor dat afhankelijkheden en andere publieke (gesloten of open) componenten geen hoog beveiligingsrisico vormen.
Levenscyclusbeleid voor softwareontwikkeling
Zorg ervoor dat de code door belanghebbenden is beoordeeld, dat opmerkingen zijn opgelost en dat de tests en beveiligingstests met succes zijn voltooid.
Pipeline-gedragsbeleid
Houd het leidinggedrag volgens plan in stand. Vereist bijvoorbeeld dat een afbeelding wordt gepusht als uitvoer van de pijplijn en niet door een ander proces.
Voorbeelden van bewijsmateriaal dat Scribe continu en geautomatiseerd verzamelt voor elke build:
Fijnkorrelige SBOM's van de bron-SCM en uiteindelijke artefacten (containers)
Momentopnamen van de gebouwde omgeving
Momentopnamen van de bronrepository
Beveiligingsinstelling van de bronbeheer- en bouwomgeving
Relevante gebeurtenissen op besturingssysteemniveau verzameld van de bouwmachine