Hoʻohui mau a me ka hoʻouna mau ʻana (CI/CD) pipelineʻO s ke kumu o kekahi hui polokalamu e kūkulu ana i nā polokalamu ma ke ʻano "hou". Hāʻawi ka automation i ka mana nui, akā naʻe, ʻaʻole i loaʻa i ka hapa nui o nā mea hoʻomohala ke kuleana e pili ana.
mea haku polokalamuʻAe, lawe mākou CI/CD maluhia me ke koʻikoʻi a loaʻa ka mana ikaika ma luna o nā mea mālama code, loiloi commitma mua o ka hui ʻana; nā hana a me pipelinemālama ʻia e nā limahana kiʻekiʻe, mālama lākou i ka hoʻokahe ʻole ʻana i nā mea huna i loko o ka pipelines. A ua hoʻokomo ʻia ka mea hana e nā limahana i ʻike i ka mea. He aha ka mea e hewa ai?
E ka mea hoʻomohala, CI/CD He paʻakikī nā ʻōnaehana. Ua huki kona ʻili ākea i nā mea hana ʻino. ʻOi aku ka maikaʻi o ka makaʻala a mai hilinaʻi nui.
Mālama ʻia ka hoʻonohonoho paʻamau i kekahi manawa a lilo i hoaaloha maikaʻi loa no nā hackers. Hiki ke loaʻa nā hemahema koʻikoʻi i loko CI/CD pipeline nā kumu, i ke hoʻonohonoho ʻana o ka ʻōnaehana, a i ʻole a puni ke kaʻina hana a me ka pōʻaiapili o ka pipeline a pehea e hoʻoulu ʻia ai.
Ma kēia pou e hoʻokomo mākou iā mākou iho i nā kāmaʻa o nā mea hana keaka maikaʻi ʻole. E noʻonoʻo e heluhelu ana mākou i nā noʻonoʻo o M3M3N70 (Memento Mori?) a me Huhū o ka Wai ma kekahi wahi o ka pūnaewele pouli, malia paha ma kahi ʻōlelo ʻē aʻe o ke Komohana, akā mai poina ua laha ka hewa ma ka honua holoʻokoʻa.
I nā wā kahiko maikaʻi, ua maʻalahi loa ia ...
M3M3N70I ka wā kahiko, ua maʻalahi loa kā mākou ʻoihana… He mau hua maʻalahi ʻo Zero-days, ua hāmama nā polokalamu me nā vulns maʻalahi e hoʻohana, a hiki iā mākou ke neʻe i ka ʻaoʻao i loko o kahi snap.
Huhū o ka WaiFu#@Gehena! Ua lolo iki kekahi poʻe ma laila, akā ua loli nā mea. Ua hoʻokau ka poʻe nui i ka nui o ka manaʻo ma kēlā ʻōpala AppSec.
M3M3N70ʻAe. Akā, ʻo nā mea hoʻomohala hou nā mea lapuwale. No mākou, ua maʻalahi ka hele ʻana no nā mea hana a kēia poʻe e hoʻohana ai. ʻO ka CI, ʻoi aku hoʻi, he lua gula! Nā hōʻailona komo ao, SCM nā hōʻoia, nā ʻōlelo huna o ka waihona hana, nā kī pilikino SSH, nā hōʻoia o nā mea hoʻohana CI ʻē aʻe… ʻO ka lele ʻana mai nā mea dev luhi i ka ʻiʻo maoli he mea maʻalahi loa ia.
ʻO ka automation no ke kūkulu ʻana, ka hoʻāʻo ʻana a me ka hoʻolaha ʻana i nā polokalamu me kahi CI/CD Pono pinepine ka mea hana e hoʻoili i nā mea huna i nā kauoha ma nā ʻanuʻu. A pinepine lākou e hoʻokahe ʻia, me nā hopena kaulana ʻole.
Pipelinepono nā mea huna i hoʻokahe ʻia i kekahi manawa
M3M3N70: The code monkeys slipped their AWS keys in a pipeline on a GitHub commit, later they removed the thing but not changed git history. For our scripts it was trivial to scan the history, grab the key and wreak havoc.
Malia paha ʻo ka wā kahiko maikaʻi ka loaʻa ʻana ma ka mōʻaukala Git .env faila (ua poina ka mea hoʻomohala e hoʻohui iā ia i .gitignore):
AWS_ACCESS_KEY_ID=AKIA...AWS_SECRET_ACCESS_KEY=wJalrXUtn...AWS_REGION=us-east-1APP_FOLDER=...S3BUCKET=...
ka mea i hoʻohana ʻia ma kahi kaʻina hana GitHub .github/deploy.yaml i loaʻa i loko kekahi mea e like me kēia:
jobs:
build:
name: Automated build and deployment into AWS
runs-on: ubuntu-22.04
steps:
# Load environment from .env file
- id: dotenv
uses: falti/dotenv-action@v1.0.2
- name: Configure AWS Credentials
uses:
with:
args: --acl public-read --follow-symlinks --delete
aws-access-key-id: $
aws-secret-access-key: $
aws-region: $
# ... build steps skipped ...
- name: Upload compiled code for deployment
working-directory: $/packaged_app
run: aws s3 cp my-app.zip s3://$
- name: Deploy the app
run: aws deploy create-deployment ...
M3M3N70: auē! Ke hana nei kēlā mau kī aws! Ua hoʻāʻo mua mākou i kahi hoʻololi inocuos i loko o ka app, a laila hoʻohui i ka sting no ka mea ua like kēlā poʻe me ka ʻike ʻole. Bingo! He hoʻolaha maikaʻi loa…
Ua hoʻohana wale ka mea hana ʻino i nā kī AWS e hoʻouka i kahi noi i hoʻololi ʻia me ka polokalamu ʻino a laila holo i ke kauoha hoʻolaha me ia mau palapala hōʻoia. ʻO nā mea huna i hoʻokuʻu ʻia, me ka ʻike i loko o ka pipeline"He hoʻolaha maoli!" ʻo ia hoʻi paha ua hoʻopau ʻo Memento i ka pōʻino i ka mea i hōʻeha ʻia.
ʻO ka mea a Memento e haʻi mai nei iā mākou ma aneʻi, i ka manawa i loaʻa ai kahi leaka huna, e like me nā kī komo AWS i ka laʻana, pono ʻoe e hoʻihoʻi i ka mea huna (e hoʻohuli i nā kī i luna) i ka manawa kokeAia mau kekahi puka makani hōʻike ma waena o ka liki ʻana commit a me ka hōʻole huna ʻia; he paʻakikī ke kākau hou ʻana i ka mōʻaukala Git (ʻoiai ke aupuni mana paʻakikī loa i hoʻāʻo e kākau hou i ka mōʻaukala, ʻaʻohe pono) a ʻaʻole paha i kūpono (ua clone paha kā mākou mau hoaaloha ma mua o ka waihona me ka leak huna commit). E hoʻohuli koke i nā kī, a pule i ka wā e heluhelu ana i nā moʻolelo hana no ka moʻokāki i kuhikuhi ʻia i ka wā o ka puka makani hōʻike!
Pono paha nā hui pāpā i ka hoʻohana ʻana i nā mea huna lōʻihi i loko CI/CD pipelines, a pani iā lākou me nā palapala hōʻoia manawa. Ma ka laʻana ma mua me nā kī AWS i nā hana GitHub, ʻoi aku ka palekana o ka hoʻohana ʻana i kahi Mea hoʻolako OpenID Connect (OIDC) e loaʻa nā palapala hōʻoia no ka manawa pōkole e pono ai no nā hana.
Huhū o ka WaiUa laki loa ʻoe! ʻO ka hoʻokahe ʻana i nā palapala me nā kī paʻa he hana maʻamau ia i ka wā kahiko, ʻoiai ma nā bākeke S3 i hiki ke loaʻa i ka lehulehu. ʻO kāu wale nō e hana ai, ʻo ke hele i nā mea i loko o ka bākeke a hana i kekahi mau hana e ʻimi ai i nā mea hoihoi.
I kekahi manawa ua wehe ʻia ka wahi i hoʻohana ʻia no ka hoʻolaha ʻana (kahi bākeke AWS S3 ma kēia laʻana) no ka heluhelu ʻana mai nā poʻe o waho, ma muli o kahi kīnā hoʻonohonoho (i ʻike ʻole ʻia). He aha Huhū o ka Wai mea i hoʻohana ʻia e like me kēia:
aws s3 ls --recursive s3://<bucket_name>/<path>/ | \
awk '{print $4}' | \
xargs -I FNAME sh -c "echo FNAME; \
aws s3 cp s3://<bucket_name>/FNAME - | \
grep '<regex_pattern>'"
Ua hana ʻia paha ka bākeke i loko o kahi kumu hoʻolako i hiki ke nānā ʻia no nā hemahema palekana.
He mea pāʻani ka hoʻonohonoho paʻamau o ka hāmeʻa no mākou
No ka hāʻawi ʻana i nā hiʻohiʻona paʻa, e kamaʻilio kākou e pili ana ʻO Jenkins, kekahi o nā mea hana CI kaulana loa.
Huhū o ka WaiKe hoʻomanaʻo nei ʻoe i kēlā pahu koho "Enable Security" ma Jenkins, a ehia mau hui i koho ʻole e hoʻāla iā ia no ka maʻalahi? A ʻo kēlā mau "Hiki i kekahi ke hana i kekahi mea"nā hui ʻae ma ke ʻano he paʻamau? A me kēlā mau plugin Jenkins hoʻonāukiuki, e like me ka Hoʻohui GitHub OAuthUa koho ke kanaka nāna i hoʻonohonoho iā ia i ka "Hāʻawi i nā ʻae READ i nā mea hoʻohana hōʻoia āpau" a me "E hoʻohana i nā ʻae waihona GitHub", e hāʻawi ana iā mākou i ke komo ʻana i kā lākou mau papahana āpau.
(E kala mai, e Jenkins, no kou hoʻolilo ʻana iā ʻoe i kumu hoʻohālike 😉
E hoʻomau i ka maʻa (ʻoiai he mea hoʻopilikia) i nā loina palekana. ʻO kekahi ka Palekana ma ka paʻamau kumumanaʻo: pono nā kaohi e hoʻololi i nā hoʻonohonoho palekana loa. Pono e kūkulu ʻia ka palekana i loko CI/CD mea paahana a pipelinemai ka lepo a luna, ma mua o ka lilo ʻana i mea ma hope. Akā, ʻo ka maʻalahi o ka hoʻohana a me ka pono e kūʻē pinepine i ka palekana.
No ka hihia Jenkins, palupalu loa ka hōʻoia i kūkulu ʻia: mai hoʻohana i nā ʻano hana hōʻoia i kūkulu ʻia ma Jenkins. ʻOi aku ka maikaʻi o ke koho ʻana i kahi ʻano hana ʻaoʻao ʻekolu (SAML, LDAP, Google ...), me ka plugin Role-based Authorization Strategy ("RBAC"). A e akahele loa me ka admin pūnaeke.
E mālama i ke ʻano o ka hana a me pipeline lawelawe ʻia nā faila ma Jenkins. Pēlā nō me Plugin hoʻonohonoho-e like me-Code a me kāna mau faila hoʻonohonoho, e pili ana i ka hoʻonohonoho Jenkins.
Ke neʻe nei mai ka hoʻokipa ponoʻī ʻana CI/CD ʻo nā ʻōnaehana i nā SaaS e pili ana i ke ao e hoʻopau i kekahi mau pilikia kūpono e ʻae ana i ka neʻe ʻana o ka ʻaoʻao i loko o ka pūnaewele o ka hui, akā ua hoʻohui ʻia nā mea ʻē aʻe, e like me ka wehe ʻana i nā pilina o waho ma waena o nā ʻōnaehana kūloko e kū nei a me ka externalized CI/CD mea hana.
Pono nā hui e hoʻoikaikaciska mālama pono ʻana i ka hoʻopaʻakikī ʻana i ka CI/CD ʻōnaehana, e hoʻomaka me nā hoʻonohonoho palena loa a wehe mālie me nā ʻae liʻiliʻi loa i koi ʻia no ka pipeline ʻanuʻu.
Ke hoʻonohonoho nei i ka palekana ma CI/CD Hiki i nā mea hana ke paʻakikī. He nui nā plugins a i ʻole nā hoʻonui i loaʻa ka hapa nui o nā nāwaliwali a pono e hoʻonui ʻia.
Hiki paha i nā mea nānā hoʻonohonoho hewa palekana no ia mau mea hana paʻakikī, a i ʻole nā hoʻohālikelike ke kōkua.
Ke hoʻokomo nei i ke code i loko pipeline nā kauoha no ka leʻaleʻa a me ka loaʻa kālā
M3M3N70Ua hoʻohana anei ʻoe i ka Untrusted Code Checkouts, nā hana palupalu a me nā palapala i palupalu i ka hoʻokomo kauoha?
Hōʻike kēia ʻāpana i ka pipeline hiki iā ia iho ke loaʻa nā hewa coding e hiki ai i nā mea hana ʻino ke hoʻokomo i ka hoʻokō code kūpono ʻole i loko o ka pipeline me ka hoʻololi ʻole ʻana i ka pipeline kumu ponoʻīNo ka laʻana me ka hoʻohana ʻana i kahi PR
ʻO kahi laʻana mua o kahi ka hana hana GitHub pōʻino:
# INSECURE. Provided as an example only.
on:
pull_request_target #1
jobs:
build:
name: Build and test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: $ #2
- uses: actions/setup-node@v1
- run: |
npm install #3
npm build
# ... more steps ...
Hoʻohui pull_request_target ʻO ka hoʻoulu ʻana i ke kahe hana me kahi nānā kikoʻī o kahi PR hilinaʻi ʻole he hana weliweli ia e alakaʻi ai i ka hoʻopilikia ʻana i ka waihona. Ma ka laʻana, ʻo ka hui pōʻino o:
pull_request_targethanana, kahi ma ka paʻamau i loaʻa ka ʻae kākau i ka waihona pahuhopu a me nā mea huna waihona pahuhopu, ʻoiai mai nā ʻōpuʻu waho, a holo i loko o ka pōʻaiapili o ka waihona pahuhopu o ka PR,- e nānā i ke code PR mai ke kumu, repo hilinaʻi ʻole,
- e hoʻāla i kekahi palapala e hana paha ma nā ʻike i kāohi ʻia e PR, e like me ke ʻano o
npm install, a - ʻaʻole e hoʻohana i kahi kūlana i ke kumu
pull_request_targete holo wale nō ka hanana inā ua hāʻawi ʻia kekahi ʻano lepili 'ua nānā ʻia kēia PR' i ka PR (ʻaʻole hiki i nā mea hoʻohana waho ke hāʻawi i nā lepili i ka PR).
Lawe kahi laʻana ʻelua i ka manaʻo hilinaʻi ʻole (mai kahi pilikia, manaʻo a i ʻole pull request) ma ke ʻano he kumu no nā hoʻopaʻapaʻa i hāʻawi ʻia i kahi pipeline kauoha ma o nā hōʻike. ʻO kēia ka pipeline mana o ka nāwaliwali o ka hoʻokomo kauoha OS.
- name: Check title
run: |
title="$"
if [[ ! $title =~ ^.*:\ .*$ ]]; then
echo "Bad issue title"
exit 1
fi
Hoʻopuka ka hana holo i kahi script shell manawa pōkole e pili ana i ka template, me $ ua pani ʻia, e hoʻolilo ana iā ia i mea palupalu i ka hoʻokomo kauoha shell. Hiki i kahi mea hoʻouka me kahi moʻokāki GitHub hoʻopunipuni ke hana i kahi pilikia me kahi inoa a"; bad_code_goes_here;#, a pū!
Huhū o ka WaiʻAuē, ua wehe kēlā poʻe i ka puka no ka hoʻokomo kauoha ma ka wehe wale ʻana i kahi pilikia…
Aia nā nāwaliwali o ka hoʻokō ʻana o ke code i nā hana GitHub, e like me manaʻo-gajira, ua hoʻoponopono ʻia i kēia manawa. E ʻoluʻolu e heluhelu "Hoʻokomo hilinaʻi ʻole ʻia i nā kahe hana GitHub" no nā kiko kiko piha.
ʻO ke aʻo o ka moʻolelo: Mai nānā a kūkulu i nā PR mai nā kumu hilinaʻi ʻole me ka nānā mua ʻole ʻana i ka PR. ʻO ke ʻano o ka "hilinaʻi ʻole ʻia" ma ʻaneʻi, ke ʻole ma lalo o ka hōʻoia paʻakikī o ke kumu, ʻo ia hoʻi kekahi moʻokāki mea hoʻomohala i kāʻili ʻia.
Ka hoʻolaha ʻana o ka polokalamu ʻino i manaʻo ʻole ʻia ma aneʻi!
Hoʻolaha mau ʻo ia ka hopena automation, akā hiki ke hoʻonāukiuki ʻia kēlā hopena e ka nele o nā kaohi ʻae kūpono ma ka pipeline kahe.
Nā pilikia o ka hoʻolaha piha ʻana mai ke kumu commit i nā ʻōnaehana hana e komo pū me ka hiki ke hoʻolaha ʻia ke code ʻino i nā wahi hana me ka ʻike ʻole ʻia, a me ka hiki ke loaʻa nā hewa i ke kaʻina hana hoʻolaha e hoʻopilikia ai a i ʻole nā outages.
I mea e hōʻemi ai i kēia mau pilikia, ua ʻōlelo pinepine ʻia e hoʻokō nā hui i kahi "paʻakikī" i kā lākou kaʻina hana hoʻolaha, kahi e koi ai ka ʻae kanaka ma mua o ka hoʻolaha ʻia ʻana o nā hoʻokuʻu i nā wahi hopena.
Ke pani nei lākou i nā puka
Huhū o ka WaiʻO kēlā mau ʻōlelo huna paʻamau hauʻoli i loko CI/CD ke holoi ʻia nei nā mea hana. Ke komo nei i ka
/var/lib/jenkins/secrets/initialAdminPasswordhe ala make i kēia manawa. Ke hāʻawi nei nā mea hana he nui i ka 2FA, i hoʻolaha ʻia e Covid, a ʻoiai ke hoʻohana nei ka monkey code palaualelo loa ma waho!M3M3N70Ke hakakā nei mākou me 2FA, akā ʻaʻole ia he mea maʻalahi. He mea paʻakikī ke hoʻopunipuni i kēlā poʻe, e like me Ua hana ʻo "Scatter Swine" me Twilio. Me nā kī WebAuthn, ʻoi aku ka paʻakikī. Ma ka liʻiliʻi loa, hiki iā mākou ke hoʻāʻo e ʻaihue i nā kuki e kāpae i ka MFA, akā pono e komo i loko o ka pahu o ka mea hoʻomohala.
He ʻanuʻu maikaʻi ka Multi-Factor Authentication ma ke ala kūpono no ka kaupalena ʻana i ka pilikia o nā leaka huna hōʻoia. Kākoʻo ka hapa nui o nā mea hana DevOps hou iā MFA. A me nā kī hōʻoia ma lalo o WebAuthn / U2F (e nānā Papahana FIDO2) ʻo ia paha ke koho maikaʻi loa no MFA ma DevOps, inā e hoʻokele pono ʻia.
Huhū o ka WaiKe ala aʻe nei nā kāne DevOps. Loaʻa iā lākou ka mea "liʻiliʻi loa o ke kuleana" i loko o ko lākou koko. ʻAʻole lākou he mau mōneki code hou. I kēia manawa ua hopu ʻia mākou e nā mea loiloi.
I ka ʻoiaʻiʻo, pipelineʻoi aku ka ikaika o kēia manawa ma mua o kekahi mau makahiki i hala aku nei, me nā hana nāwaliwali a me nā palapala i wehe ʻia, a me nā ʻanuʻu hoʻāʻo palekana hou aʻe i ʻike i kā mākou mau droppers i hūnā ʻia ma ka malū commita me nā pūʻolo a mākou i kāʻili ai.
He nīnau no ka mea heluhelu: he ʻoihana pilikia anei ke kaʻina hana o ke kūkulu ʻana i ka polokalamu mai nā kumu a me ka hoʻolaha ʻana i ka hana? Hiki iā ʻoe ke ʻike i kāu DevOps ma ke kahua o nā manawa maikaʻi no nā poʻe ʻino?
Nā'ōlelo hope loa
Ma hea e hoʻomaka ai CI/CD pipelines?
He maʻalahi ka ʻōlelo aʻoaʻo mua ma aneʻi: Me ke akahele manual pipelines (ʻo lākou mea koʻikoʻi nā kumuwaiwai) no nā pilikia palekana. He pipiʻi nā loiloi akā pono, a pono e hana pono ʻia. Pono nā mea loiloi e ʻike i ka mea e nānā ai. Pono e nānā ʻia kēlā me kēia ʻanuʻu no nā hemahema.
Malia paha e kōkua kahi hui pū ʻana o nā loiloi loea i lako me nā mea nānā code ʻino aunoa.
ʻO ka lua o ka ʻōlelo aʻoaʻo, ʻo ia ka e hoʻomaʻamaʻa i nā mea hoʻomohala e kākau pipelinea mālama iā lākou ma ka palekanaNā mea e noʻonoʻo ai:
- Pehea e lawelawe pono ai i ka hōʻoia me nā lawelawe kūloko a me ke ao, e pale ana i ka hoʻonāukiuki o ka lawelawe ʻana i nā hōʻoia lōʻihi.
- Pehea e kaupalena ai pipelinei ka hoʻonohonoho kikoʻī o nā kumuwaiwai e pono ai ke komo. Ke ʻālohilohi hou nei ke kumumanaʻo o ka pono liʻiliʻi loa.
- Pehea e kākau ai i nā ʻanuʻu e hana ai pipelinehiki ke hana hou ʻia e like me ka hoʻopili ʻana i ka mana, a me ka pale ʻana i nā nāwaliwali o ka hoʻokomo kauoha.
- Pehea e ʻāpono ai i nā hoʻolaha ʻana mai ka manaʻo palekana (ʻo lākou kekahi!): ʻo wai ka palekana standardpono e hoʻohālikelike ʻia nā s a pehea e hoʻohui ai i nā hōʻoia/puka kūpono i loko o ka pipelines.
ʻO ke kolu o ka ʻōlelo aʻoaʻo, ʻo ia ka hoʻonohonoho i ka CI/CD ʻōnaehana me ka mālama pono. Hōʻoia ikaika, ʻaʻohe ʻōlelo huna paʻamau a i ʻole nā hoʻonohonoho palekana ʻole, nā pono liʻiliʻi ... E mālama i nā nāwaliwali i nā plugins a me nā hoʻonui i hoʻokomo ʻia. ʻO kēia paha ke kikowaena o nā pou ma hope, e ʻoluʻolu e hoʻolohe.
ʻO ka ʻōlelo aʻoaʻo ʻehā, ʻo ia ka leverage i ka CI/CD pipelines no ka hana hoʻopaʻa palekana. Ka nānā ʻana i ke code kumu (SAST), ka loiloi ʻana o ke kumu (SCA), hiki ke holo maʻamau ka nānā ʻana i nā leaks huna, nā mea hana anti-malware, nā scanner palekana ipu, a i ʻole nā mea ʻike manawa holo aunoa (DAST a me malware) ma ka pipelineA hiki i kāu hui ke hoʻokō standarde pili ana i ka uhi ʻana ma ka scan palekana i loko CI/CD.
E hoʻomanaʻo, ʻaʻole naʻe e kāpae kēia mau mea hana i ka loiloi loea mai ka hoʻohālikelike, inā ʻaʻole hiki iā ʻoe ke loaʻa kahi manaʻo palekana wahaheʻe.
Inā akamai ʻoe i nā OWASP top-tens, he papahana maikaʻi hou kēia ʻOWASP Top 10 CI/CD Palekana palekana.
Hoʻomaopopo Hoʻokuʻu
(1) Ke hoʻohana nei nā hiʻohiʻona ma kēia pou iā GitHub e like me SCM, AWS ma ke ʻano he mea hoʻolako ao, a me GitHub Actions a i ʻole Jenkins e like me CI/CD mea hana. ʻAʻole lākou nāwaliwali / palekana ma mua o kā lākou mau koho ʻē aʻe. ʻAʻohe manaʻo paʻi maikaʻi ʻole! He ikaika kēia mau mea hana a pono e hoʻohana pono ʻia.
(2) M3M3N70 a Huhū o ka Wai he mau huapalapala moʻolelo. ʻO kēlā me kēia ʻano like me nā kānaka a i ʻole nā hui, ke ola nei a make paha, he mea kūlike wale nō ia ... a i ʻole?
E heluhelu hou aku
- ʻO Haymore, A. et al. "10 mau moʻolelo maoli o ke ʻano o kā mākou hoʻokuʻu ʻana CI/CD pipelines ”. Pūʻulu NCC, Ianuali 2022.
configure-aws-credentialsHana GitHub a Ke hoʻonohonoho nei iā OpenID Connect ma nā lawelawe pūnaewele Amazon no nā kikoʻī e pili ana i ka holo ʻana i nā kauoha AWS no ka hoʻolaha ʻana i nā kahe hana GitHub.- Lobacevski J. "Ke mālama nei i kāu mau hana a me nā kahe hana GitHub i ka palekana Māhele 1: Ke kāohi nei i nā noi pwn"Ke Keʻena Hoʻomalu ʻo GitLab, Kekemapa 2020.
- Lobacevski J. "Ke mālama nei i kāu mau hana a me nā kahe hana GitHub i ka palekana Māhele 2: Hoʻokomo hilinaʻi ʻole ʻia"Keʻena Hoʻomalu ʻo GitLab, Ianuali 2021.
- ʻOWASP. "ʻO OWASP Top 10 CI/CD Nā Pōpilikia Palekana"Iulai 2022.
- ʻO Saltzer J. & Schroeder M. "Ka Palekana ʻana i ka ʻIke ma nā ʻŌnaehana Kamepiula"ʻApelila 1975. Ua ulu pū nā loina palekana me ka ʻenehana, akā 47 mau makahiki ma hope mai ua mau ka hapa nui o nā manaʻo S&S.
- NCSC o ke Aupuni Mōʻī Hui Pū ʻIa. "E hoʻopaʻa i ke kūkulu ʻana a me ka hoʻolaha ʻana pipeline". Ke Kikowaena Palekana Pūnaewele Lahui o UK, Pepeluali 2019.




