Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Actionsにおけるサプライチェーン攻撃とその緩和策の検討 / Supply-...

GitHub Actionsにおけるサプライチェーン攻撃とその緩和策の検討 / Supply-Chain Attacks in GitHub Actions and Considerations for Mitigation

2025年3月に発覚したCVE-2025-30066およびCVE-2025-30154のサプライチェーン攻撃を題材に、侵害手口を各種公開レポートから簡単にひも解きます。また、このような攻撃に備えるために利用者とGitHub Enterprise管理者が実践できる緩和策について検討していきます。

More Decks by LINEヤフーTech (LY Corporation Tech)

Other Decks in Technology

Transcript

  1. :VUB)BSJNB • $BSFFS • +PJOFE:BIPP+BQBO$PSQPSBUJPOBTBOFXHSBEVBUFJO • 4JODFUIFO IBWFCFFOEFWFMPQJOHBOEPQFSBUJOHJOUFSOBMEFWFMPQFSQMBUGPSNT • $VSSFOUMZGPDVTPONBOBHJOHPVS(JU)VC&OUFSQSJTF4FSWFSJOTUBODFT

    • )PCCJFT • $5' • (BNF • 'BDUPSJP4QBHF"HF %-$ 4QBDF&YQMPSBUJPO .PE 'JU#PYJOH 4QMBUPPOPO4XJUDI "TUSPOPLB FUD • -JWFDPODFSUT • /JKJHBTBLJ )JHI4DIPPM*EPM$MVC Jˑ3JT 4FSFOB,P[VLJ FUD 8IP*"N
  2. • .BSDI5XP(JU)VC"DUJPOTDPNQSPNJTFE • $7&UKBDUJPOTDIBOHFEGJMFT • $7&SFWJFXEPHBDUJPOTFUVQ •   SFQPTJUPSJFTXFSFVOEFSUISFBU

    • 4PNFSFQPTMFBLFETFDSFUTPG(JU)VC"DUJPOT • *HOPSJOHTVQQMZDIBJOSJTLTJTOPMPOHFSBOPQUJPO 5IF5ISFBUPG4VQQMZ$IBJO"UUBDLT Actual malicious code that was introduced to reviewdog/action-setup
  3. • "OBUUBDLFSDPNQSPNJTFT TPNFUIJOHZPV"-3&"%: USVTUŠ MJCSBSJFT CVJMEUPPMT FUD • .BMJDJPVTDIBOHFJTEFMJWFSFE UISPVHIUIF4".&

    MFHJUJNBUF DIBOOFMT (JU /1. %PDLFS  (JU)VC"DUJPOT TPJUMPPLT /03."- • 0OFVQTUSFBNCSFBDIDBO DBTDBEFUPBMPUPGEPXOTUSFBN QSPKFDUT 8IBU*TB4PGUXBSF4VQQMZ$IBJO "UUBDL Library Our system Depended Attacker Inject malicious code Infected on next delivery Attack carry out
  4. • 4UFQr 6QTUSFBNDPNQSPNJTF • $7&SFWJFXEPHBDUJPOTFUVQDPNQSPNJTFE • 4UFQr %FQFOEFODZTQSFBE • $7&UKBDUJPOTDIBOHFEGJMFT

    XIJDIDBMMTSFWJFXEPHBDUJPOTFUVQ  JTQPJTPOFEOFYU • 4UFQr 5BSHFUBUUFNQU • "UUBDLFSBJNTDPJOCBTFBHFOULJU VTJOHQPJTPOFEUKBDUJPOTDIBOHFEGJMFT • 4UFQr .BTTQJWPU • "GUFSUIBU BUUBDLFSSFXSJUFT"-- HJUUBHTPGUKBDUJPOTDIBOHFEGJMFT  UISFBUFOJOH  SFQPTJUPSJFT "UUBDL0WFSWJFX
  5. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE

    QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF
  6. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE

    QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (1)
  7. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT •  1BSTFTQSPDQJENBQTUP HFUSFBEQFSNJUUFE NFNPSZ TFHNFOUT

    $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (2)
  8. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT •  1BSTFTQSPDQJENBQTUP HFUSFBEQFSNJUUFE NFNPSZ TFHNFOUT

    •  3FBETQSPDQJENFNBOE XSJUFTFWFSZSFBEBCMFCZUF UP TUEPVU $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (3) (2)
  9. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT •  1BSTFTQSPDQJENBQTUP HFUSFBEQFSNJUUFE NFNPSZ TFHNFOUT

    •  3FBETQSPDQJENFNBOE XSJUFTFWFSZSFBEBCMFCZUF UP TUEPVU $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (3) (2)
  10. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT •  1BSTFTQSPDQJENBQTUP HFUSFBEQFSNJUUFE NFNPSZ TFHNFOUT

    •  3FBETQSPDQJENFNBOE XSJUFTFWFSZSFBEBCMFCZUF UP TUEPVU $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (3)
  11. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT •  1BSTFTQSPDQJENBQTUP HFUSFBEQFSNJUUFE NFNPSZ TFHNFOUT

    •  3FBETQSPDQJENFNBOE XSJUFTFWFSZSFBEBCMFCZUF UP TUEPVU $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (3)
  12. •  (SBCTUIF1*%ŠUIF(JU)VC "DUJPOTSVOOFSQSPDFTT •  1BSTFTQSPDQJENBQTUP HFUSFBEQFSNJUUFE NFNPSZ TFHNFOUT

    •  3FBETQSPDQJENFNBOE XSJUFTFWFSZSFBEBCMFCZUF UP TUEPVU $PNNPO.BMJDJPVT1BZMPBE VTSCJOFOWQZUIPO TOJQ JG@@OBNF@@@@NBJO@@ QJE HFU@QJE QSJOU QJE NBQ@QBUI GQSPD\QJE^NBQT NFN@QBUI GQSPD\QJE^NFN XJUIPQFO NBQ@QBUI S BTNBQ@G PQFO NFN@QBUI SC  BTNFN@G GPSMJOFJONBQ@GSFBEMJOFT GPSFBDINBQQFESFHJPO NSFNBUDI S <"'BG>  <"'BG>  <S>  MJOF JGNHSPVQ  SSFBEBCMFSFHJPO TUBSUJOU NHSPVQ   FOEJOU NHSPVQ   IPUGJY0WFSGMPX&SSPS1ZUIPOJOUUPPMBSHFUPDPOWFSUUP$MPOH  JGTUBSUTZTNBYTJ[F DPOUJOVF NFN@GTFFL TUBSU TFFLUPSFHJPOTUBSU USZ DIVOLNFN@GSFBE FOE TUBSU SFBESFHJPODPOUFOUT TZTTUEPVUCVGGFSXSJUF DIVOL FYDFQU04&SSPS DPOUJOVF (3)
  13. • "CVTFPGQVMM@SFRVFTU@UBSHFU PO TQPUCVHTTPOBSGJOECVHT SFQPTJUPSZMFBLTNBJOUBJOFS`T 1"5" • 1"5"VTFEUPBEEBUUBDLFS BDDPVOU6TFS"UP TQPUCVHTTQPUCVHT

    4UFQ6QTUSFBN$PNQSPNJTF spotbugs/sonar-findbugs Attacker Pull request(PPE) spotbugs/spotbugs Attacker(User A) Add User A to spotbugs/spotbugs using PAT-A Leak maintainer’s PAT-A
  14. • "CVTFPGQVMM@SFRVFTU@UBSHFU PO TQPUCVHTTPOBSGJOECVHT SFQPTJUPSZMFBLTNBJOUBJOFS`T 1"5" • 1"5"VTFEUPBEEBUUBDLFS BDDPVOU6TFS"UP TQPUCVHTTQPUCVHT

    • 6TFS"JOUSPEVDFTBOFX XPSLGMPXUIBUEVNQTBMMTFDSFUT PGUIFSFQPTJUPSZ 4UFQ6QTUSFBN$PNQSPNJTF spotbugs/sonar-findbugs Attacker Pull request(PPE) spotbugs/spotbugs Attacker(User A) Push malicious workflow Add User A to spotbugs/spotbugs using PAT-A Leak maintainer’s PAT-A
  15. • "CVTFPGQVMM@SFRVFTU@UBSHFU PO TQPUCVHTTPOBSGJOECVHT SFQPTJUPSZ MFBLTNBJOUBJOFS`T1"5" • 1"5"VTFEUPBEEBUUBDLFS BDDPVOU6TFS"UP TQPUCVHTTQPUCVHT

    • 6TFS"JOUSPEVDFTBOFXXPSLGMPX UIBUEVNQTBMMTFDSFUTPGUIF SFQPTJUPSZ • "NPOHUIFEVNQFETFDSFUTJT 1"5# PXOFECZUIFNBJOUBJOFSPG SFWJFXEPHBDUJPOTFUVQ 4UFQ6QTUSFBN$PNQSPNJTF spotbugs/sonar-findbugs Attacker Pull request(PPE) spotbugs/spotbugs Attacker(User A) Push malicious workflow Leak all secrets including PAT-B Add User A to spotbugs/spotbugs using PAT-A Leak maintainer’s PAT-A
  16. • "UUBDLFSGPSLT SFWJFXEPHBDUJPOTFUVQBOEBEET NBMJDJPVT$PNNJU" • 8JUITUPMFO1"5# SFQPJOUT VQTUSFBNUBHW UP$PNNJU" 4UFQ%FQFOEFODZ4QSFBE

    fork Push malicious commit v1 tag Re-point tag to malicious commit using PAT-B Attacker reviewdog/action-setup
  17. • "UUBDLFSGPSLT SFWJFXEPHBDUJPOTFUVQBOEBEET NBMJDJPVT$PNNJU" • 8JUITUPMFO1"5# SFQPJOUT VQTUSFBNUBHW UP$PNNJU" •

    $IBJOSFBDUJPO • UKBDUJPOTFTMJOUDIBOHFEGJMFT EFQFOETPOSFWJFXEPHBDUJPO TFUVQ!W • UKBDUJPOTDIBOHFEGJMFTEFQFOETPO FTMJOUDIBOHFEGJMFT 4UFQ%FQFOEFODZ4QSFBE fork Push malicious commit v1 tag Re-point tag to malicious commit using PAT-B Depended Depended using v1 tag Attacker reviewdog/action-setup tj-actions/changed-files tj-actions/eslint-changed-files
  18. • "UUBDLFSGPSLTSFWJFXEPHBDUJPO TFUVQBOEBEETNBMJDJPVT$PNNJU " • 8JUITUPMFO1"5# SFQPJOUT VQTUSFBNUBHW UP$PNNJU" •

    $IBJOSFBDUJPO • UKBDUJPOTFTMJOUDIBOHFEGJMFTEFQFOET POSFWJFXEPHBDUJPOTFUVQ!W • UKBDUJPOTDIBOHFEGJMFTEFQFOETPO FTMJOUDIBOHFEGJMFT • .BMJDJPVTXPSLGMPXSVOTJOTJEFUK BDUJPOTDIBOHFEGJMFT$*BOETUFBMT 1"5$ IBTXSJUFQFSNJTTJPO 4UFQ%FQFOEFODZ4QSFBE Attacker reviewdog/action-setup fork Push malicious commit v1 tag Re-point tag to malicious commit using PAT-B tj-actions/changed-files tj-actions/eslint-changed-files Depended Depended using v1 tag Leak secrets include PAT-C
  19. • "UUBDLFSGPSLTUK BDUJPOTDIBOHFEGJMFTBOEBEET NBMJDJPVT$PNNJU# • 8JUITUPMFO1"5$ SFQPJOUT VQTUSFBNUBHW UP$PNNJU# 4UFQ5BSHFUFE"UUFNQU

    fork Push malicious commit v39 tag Re-point tag to malicious commit using PAT-C Attacker tj-actions/changed-files
  20. • "UUBDLFSGPSLTUK BDUJPOTDIBOHFEGJMFTBOEBEET NBMJDJPVT$PNNJU# • 8JUITUPMFO1"5$ SFQPJOUT VQTUSFBNUBHW UP$PNNJU# •

    .BMJDJPVTXPSLGMPXSVOTBOE MFBLT5PLFOT 4UFQ5BSHFUFE"UUFNQU fork Push malicious commit v39 tag Re-point tag to malicious commit using PAT-C Depended using v39 tag Leak secrets Attacker tj-actions/changed-files coinbase/agentkit
  21. • "UUBDLFSGPSLTUK BDUJPOTDIBOHFEGJMFTBOEBEET NBMJDJPVT$PNNJU# • 8JUITUPMFO1"5$ SFQPJOUT VQTUSFBNUBHW UP$PNNJU# •

    .BMJDJPVTXPSLGMPXSVOTBOE MFBLT5PLFOT • 1BMP"MUP/FUXPSLTBMFSUT NBJOUBJOFS$PJOCBTFGJYFTUIBU BOEDPOGJSNTOPBEEJUJPOBM DPNQSPNJTF 4UFQ5BSHFUFE"UUFNQU Attacker tj-actions/changed-files fork Push malicious commit v39 tag Re-point tag to malicious commit using PAT-C coinbase/agentkit Depended using v39 tag Leak secrets
  22. • 6TJOH1"5$ BUUBDLFSGPSDFQVTIFEFWFSZUBH UPBNBMJDJPVTDPNNJU • "OZXPSLGMPXQJOOJOH!W XPVMESVOUIFQBZMPBEPOUIFOFYUFYFDVUJPO QVUUJOH  

    SFQPTJUPSJFTBUSJTL • 1BZMPBEVODIBOHFEEVNQTTFDSFUTPG(JU)VC"DUJPOT • .PUJWFVODMFBS 4UFQ.BTT1JWPU