OpenShift - Tekton

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Die oorspronklike skrywer van hierdie bladsy is Haroun

Wat is tekton

Volgens die dokument: Tekton is ’n kragtige en buigsame oopbronraamwerk vir die skep van CI/CD stelsels, wat ontwikkelaars in staat stel om te bou, te toets en te ontplooi oor wolkverskaffers en op-premise stelsels. Beide Jenkins en Tekton kan gebruik word om toepassings te toets, te bou en te ontplooi, maar Tekton is Cloud Native.

Met Tekton word alles verteenwoordig deur YAML-lĆŖers. Ontwikkelaars kan Aangepaste Hulpbronne (CR) van tipe Pipelines skep en verskeie Tasks daarin spesifiseer wat hulle wil uitvoer. Om ’n Pipeline te laat loop, moet hulpbronne van tipe PipelineRun geskep word.

Wanneer tekton geĆÆnstalleer word, word ’n diensrekening (sa) genaamd pipeline in elke naamruimte geskep. Wanneer ’n Pipeline uitgevoer word, sal ’n pod geskep word wat hierdie sa genaamd pipeline gebruik om die take wat in die YAML-lĆŖer gedefinieer is, uit te voer.

Getting Started with Pipelines | Tekton

Die Pipeline diensrekening vermoƫns

Standaard kan die pipeline diensrekening die pipelines-scc vermoĆ«ns gebruik. Dit is te danke aan die globale standaardkonfigurasie van tekton. Trouens, die globale konfigurasie van tekton is ook ’n YAML in ’n openshift objek genaamd TektonConfig wat gesien kan word as jy ’n paar leserrolle in die kluster het.

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"

In enige naamruimte, as jy die pipeline diensrekening token kan kry, sal jy in staat wees om pipelines-scc te gebruik.

Die Misconfig

Die probleem is dat die standaard scc wat die pipeline sa kan gebruik, gebruikersbeheerbaar is. Dit kan gedoen word deur ’n etiket in die naamruimte-definisie te gebruik. Byvoorbeeld, as ek ’n naamruimte kan skep met die volgende yaml-definisie:

apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged

Die tekton-operateur sal die pyplyn-diensrekening in test-namespace die vermoƫ gee om die scc privileged te gebruik. Dit sal die montering van die node toelaat.

Die oplossing

Tekton dokumenteer hoe om die oortreding van scc te beperk deur ’n etiket in die TektonConfig objek by te voeg.

Tekton

Hierdie etiket word max-allowed genoem.

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks