AWS - Nitro Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS Nitro๋ AWS EC2 ์ธ์คํด์ค์ ๊ธฐ๋ณธ ํ๋ซํผ์ ํ์ฑํ๋ ํ์ ์ ์ธ ๊ธฐ์ ๋ชจ์์ ๋๋ค. Amazon์ ์ํด ๋ณด์, ์ฑ๋ฅ ๋ฐ ์ ๋ขฐ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ๋์ ๋ Nitro๋ ๋ง์ถคํ ํ๋์จ์ด ๊ตฌ์ฑ ์์์ ๊ฒฝ๋ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํ์ฉํฉ๋๋ค. ์ ํต์ ์ธ ๊ฐ์ํ ๊ธฐ๋ฅ์ ๋ง์ ๋ถ๋ถ์ ์ ์ฉ ํ๋์จ์ด์ ์ํํธ์จ์ด๋ก ์ถ์ํํ์ฌ ๊ณต๊ฒฉ ํ๋ฉด์ ์ต์ํํ๊ณ ์์ ํจ์จ์ฑ์ ๊ฐ์ ํฉ๋๋ค. ๊ฐ์ํ ๊ธฐ๋ฅ์ ์คํ๋ก๋ํจ์ผ๋ก์จ Nitro๋ EC2 ์ธ์คํด์ค๊ฐ ๊ฑฐ์ ๋ฒ ์ด ๋ฉํ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์๊ฒ ํ์ฌ, ์์ ์ง์ฝ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ ๋ฆฌํฉ๋๋ค. ๋ํ, Nitro ๋ณด์ ์นฉ์ ํ๋์จ์ด์ ํ์จ์ด์ ๋ณด์์ ๋ณด์ฅํ์ฌ ๊ฐ๋ ฅํ ์ํคํ ์ฒ๋ฅผ ๋์ฑ ๊ฐํํฉ๋๋ค.
AWS Nitro Enclaves๋ Amazon EC2 ์ธ์คํด์ค ๋ด์์ ๊ณ ๋๋ก ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ํน๋ณํ ์ค๊ณ๋ ์์ ํ๊ณ ๊ฒฉ๋ฆฌ๋ ์ปดํจํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. AWS Nitro ์์คํ ์ ํ์ฉํ์ฌ ์ด๋ฌํ ์ธํด๋ ์ด๋ธ๋ ๊ฐ๋ ฅํ ๊ฒฉ๋ฆฌ ๋ฐ ๋ณด์์ ๋ณด์ฅํ๋ฉฐ, PII ๋๋ ์ฌ๋ฌด ๊ธฐ๋ก๊ณผ ๊ฐ์ ๊ธฐ๋ฐ ์ ๋ณด ์ฒ๋ฆฌ์ ์ด์์ ์ ๋๋ค. ์ด๋ค์ ๋ฏธ๋๋ฉํ ํ๊ฒฝ์ ํน์ง์ผ๋ก ํ์ฌ ๋ฐ์ดํฐ ๋ ธ์ถ ์ํ์ ํฌ๊ฒ ์ค์ ๋๋ค. ๋ํ, Nitro Enclaves๋ ์ํธํ๋ ์ฆ๋ช ์ ์ง์ํ์ฌ ์ฌ์ฉ์๊ฐ ์น์ธ๋ ์ฝ๋๋ง ์คํ๋๊ณ ์๋์ง ํ์ธํ ์ ์๊ฒ ํ์ฌ, ์๊ฒฉํ ์ค์ ๋ฐ ๋ฐ์ดํฐ ๋ณดํธ ๊ธฐ์ค์ ์ ์งํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
Nitro Enclave ์ด๋ฏธ์ง๋ EC2 ์ธ์คํด์ค ๋ด๋ถ์์ ์คํ๋๋ฉฐ, AWS ์น ์ฝ์์์ EC2 ์ธ์คํด์ค๊ฐ Nitro Enclave์์ ์ด๋ฏธ์ง๋ฅผ ์คํ ์ค์ธ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ชจ๋ ์ง์นจ์ ๋ฌธ์์์๋ฅผ ๋ฐ๋ฅด์ญ์์ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ์ค์ํ ์ง์นจ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
Nitro Enclave์์ ์คํํ ์ ์๋ ์ด๋ฏธ์ง๋ ๋์ปค ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ด๋ฏ๋ก, ๋ค์๊ณผ ๊ฐ์ ๋์ปค ์ด๋ฏธ์ง์์ Nitro Enclave ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค:
Nitro Enclave ์ด๋ฏธ์ง๊ฐ eif
(Enclave Image File) ํ์ฅ์๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ถ๋ ฅ์ ๋ค์๊ณผ ์ ์ฌํ๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค:
๋ฌธ์์ ๋ฐ๋ฅด๋ฉด, enclave ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ ค๋ฉด eif
ํ์ผ ํฌ๊ธฐ์ ์ต์ 4๋ฐฐ์ ํด๋นํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ผ ํฉ๋๋ค. ํ์ผ์์ ๊ธฐ๋ณธ ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํ์ฌ ํ ๋นํ ์ ์์ต๋๋ค.
ํญ์ ๋ถ๋ชจ EC2 ์ธ์คํด์ค๋ฅผ ์ํด ์ผ๋ถ ๋ฆฌ์์ค๋ฅผ ์์ฝํด์ผ ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ธ์!
์ด๋ฏธ์ง์ ์ ๊ณตํ ๋ฆฌ์์ค๋ฅผ ์๊ณ ๊ตฌ์ฑ ํ์ผ์ ์์ ํ ํ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ํด๋ ์ด๋ธ ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ ์์ต๋๋ค:
EC2 ํธ์คํธ๋ฅผ ์์์ํค๋ฉด ๋ค์์ ์ฌ์ฉํ์ฌ ์คํ ์ค์ธ ์ํด๋ ์ด๋ธ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ์ป์ ์ ์์ต๋๋ค:
It's not possible to get a shell inside a running enclave image because thats the main purpose of enclave, however, if you used the parameter --debug-mode
, it's possible to get the stdout of it with:
๊ณต๊ฒฉ์๊ฐ EC2 ์ธ์คํด์ค๋ฅผ ์์์ํค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ ์์ ์ ธ์ ์ป์ ์๋ ์์ง๋ง, ๋ค์๊ณผ ๊ฐ์ด terminate them ํ ์ ์์ต๋๋ค:
enclave์์ ์คํ ์ค์ธ ์ด๋ฏธ์ง๋ฅผ ํต์ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ vsocks๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
**Virtual Socket (vsock)**์ Linux์์ ๊ฐ์ ๋จธ์ (VMs)๊ณผ ๊ทธ hypervisors ๊ฐ, ๋๋ VMs ์์ฒด ๊ฐ์ communication์ ์ด์งํ๊ธฐ ์ํด ํน๋ณํ ์ค๊ณ๋ ์์ผ ํจ๋ฐ๋ฆฌ์ ๋๋ค. Vsock์ ํธ์คํธ์ ๋คํธ์ํน ์คํ์ ์์กดํ์ง ์๊ณ ํจ์จ์ ์ธ bi-directional communication์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด๋ฅผ ํตํด VMs๋ ๋คํธ์ํฌ ๊ตฌ์ฑ ์์ด๋ 32-bit Context ID (CID) ๋ฐ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์๋ณํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. vsock API๋ TCP ๋ฐ UDP์ ์ ์ฌํ ์คํธ๋ฆผ ๋ฐ ๋ฐ์ดํฐ๊ทธ๋จ ์์ผ ์ ํ์ ๋ชจ๋ ์ง์ํ์ฌ ๊ฐ์ ํ๊ฒฝ์์ ์ฌ์ฉ์ ์์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ค๋ชฉ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฐ๋ผ์, vsock ์ฃผ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค: <CID>:<Port>
CIDs๋ฅผ ์ฐพ๊ธฐ ์ํด enclave์์ ์คํ ์ค์ธ ์ด๋ฏธ์ง๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ๋ค์ cmd๋ฅผ ์คํํ๊ณ **EnclaveCID
**๋ฅผ ํ์ธํ๋ฉด ๋ฉ๋๋ค:
ํธ์คํธ์์ CID๊ฐ ์ด๋ค ํฌํธ๋ฅผ ๋ ธ์ถํ๊ณ ์๋์ง ์ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค! vsock ํฌํธ ์ค์บ๋์ธ https://github.com/carlospolop/Vsock-scanner๋ฅผ ์ฌ์ฉํ์ง ์๋ ํ ๋ง์ ๋๋ค.
์ฌ๊ธฐ ๋ช ๊ฐ์ง ์์ ๊ฐ ์์ต๋๋ค: