macOS Process Abuse
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
Processes Basic Information
ํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ์คํ ํ์ผ์ ์ธ์คํด์ค์ด์ง๋ง, ํ๋ก์ธ์ค๋ ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ , ์ด๋ค์ ์ค๋ ๋์ ๋๋ค. ๋ฐ๋ผ์ ํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ์ค๋ ๋๋ฅผ ์ํ ์ปจํ ์ด๋์ผ ๋ฟ์ ๋๋ค ๋ฉ๋ชจ๋ฆฌ, ์ค๋ช ์, ํฌํธ, ๊ถํ ๋ฑ์ ์ ๊ณตํฉ๋๋คโฆ
์ ํต์ ์ผ๋ก, ํ๋ก์ธ์ค๋ **fork**๋ฅผ ํธ์ถํ์ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค ๋ด์์ ์์๋์์ผ๋ฉฐ, ์ด๋ ํ์ฌ ํ๋ก์ธ์ค์ ์ ํํ ๋ณต์ฌ๋ณธ์ ์์ฑํ๊ณ , ์์ ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก **execve**๋ฅผ ํธ์ถํ์ฌ ์๋ก์ด ์คํ ํ์ผ์ ๋ก๋ํ๊ณ ์คํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์, **vfork**๊ฐ ๋์
๋์ด ๋ฉ๋ชจ๋ฆฌ ๋ณต์ฌ ์์ด ์ด ํ๋ก์ธ์ค๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค์์ต๋๋ค.
๊ทธ ํ **posix_spawn**์ด ๋์
๋์ด **vfork**์ **execve**๋ฅผ ํ๋์ ํธ์ถ๋ก ๊ฒฐํฉํ๊ณ ํ๋๊ทธ๋ฅผ ์์ฉํฉ๋๋ค:
POSIX_SPAWN_RESETIDS: ์ ํจํ ID๋ฅผ ์ค์ ID๋ก ์ฌ์ค์ POSIX_SPAWN_SETPGROUP: ํ๋ก์ธ์ค ๊ทธ๋ฃน ์์ ์ค์ POSUX_SPAWN_SETSIGDEF: ์ ํธ ๊ธฐ๋ณธ ๋์ ์ค์ POSIX_SPAWN_SETSIGMASK: ์ ํธ ๋ง์คํฌ ์ค์ POSIX_SPAWN_SETEXEC: ๋์ผํ ํ๋ก์ธ์ค์์ exec (๋ ๋ง์ ์ต์ ์ด ์๋execve์ ์ ์ฌ)POSIX_SPAWN_START_SUSPENDED: ์์ ์ ์ผ์ ์ค์ง_POSIX_SPAWN_DISABLE_ASLR: ASLR ์์ด ์์_POSIX_SPAWN_NANO_ALLOCATOR:libmalloc์ Nano ํ ๋น๊ธฐ ์ฌ์ฉ_POSIX_SPAWN_ALLOW_DATA_EXEC:๋ฐ์ดํฐ ์ธ๊ทธ๋จผํธ์์rwxํ์ฉPOSIX_SPAWN_CLOEXEC_DEFAULT: exec(2)์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ์ผ ์ค๋ช ์ ๋ซ๊ธฐ_POSIX_SPAWN_HIGH_BITS_ASLR:ASLR ์ฌ๋ผ์ด๋์ ๋์ ๋นํธ ๋ฌด์์ํ
๊ฒ๋ค๊ฐ, posix_spawn์ ์์ฑ๋ ํ๋ก์ธ์ค์ ์ผ๋ถ ์ธก๋ฉด์ ์ ์ดํ๋ posix_spawnattr ๋ฐฐ์ด์ ์ง์ ํ ์ ์์ผ๋ฉฐ, ์ค๋ช
์์ ์ํ๋ฅผ ์์ ํ๊ธฐ ์ํด **posix_spawn_file_actions**๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋๋ฉด ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๋ฐํ ์ฝ๋๋ฅผ ์ ์กํฉ๋๋ค (๋ถ๋ชจ๊ฐ ์ข
๋ฃ๋ ๊ฒฝ์ฐ ์๋ก์ด ๋ถ๋ชจ๋ PID 1) ์ ํธ SIGCHLD์ ํจ๊ป. ๋ถ๋ชจ๋ wait4() ๋๋ waitid()๋ฅผ ํธ์ถํ์ฌ ์ด ๊ฐ์ ๊ฐ์ ธ์์ผ ํ๋ฉฐ, ๊ทธ๋๊น์ง ์์์ ์ข๋น ์ํ์ ๋จธ๋ฌผ๋ฉฐ ์ฌ์ ํ ๋์ด๋์ง๋ง ์์์ ์๋ชจํ์ง ์์ต๋๋ค.
PIDs
PID, ํ๋ก์ธ์ค ์๋ณ์๋ ๊ณ ์ ํ ํ๋ก์ธ์ค๋ฅผ ์๋ณํฉ๋๋ค. XNU์์ PIDs๋ 64๋นํธ๋ก ๋จ์กฐ๋กญ๊ฒ ์ฆ๊ฐํ๋ฉฐ ์ ๋ ๋ฉํ๋์ง ์์ต๋๋ค (๋จ์ฉ ๋ฐฉ์ง๋ฅผ ์ํด).
Process Groups, Sessions & Coalations
ํ๋ก์ธ์ค๋ ๊ทธ๋ฃน์ ์ฝ์
๋์ด ์ฒ๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์
ธ ์คํฌ๋ฆฝํธ์ ๋ช
๋ น์ ๋์ผํ ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ์์ผ๋ฏ๋ก kill์ ์ฌ์ฉํ์ฌ ํจ๊ป ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
๋ํ ์ธ์
์ ํ๋ก์ธ์ค๋ฅผ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ํ๋ก์ธ์ค๊ฐ ์ธ์
์ ์์ํ๋ฉด (setsid(2)), ์์ ํ๋ก์ธ์ค๋ ์์ ์ ์ธ์
์ ์์ํ์ง ์๋ ํ ์ธ์
๋ด์ ์ค์ ๋ฉ๋๋ค.
Coalition์ Darwin์์ ํ๋ก์ธ์ค๋ฅผ ๊ทธ๋ฃนํํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฝ์ผ๋ฆฌ์ ์ ๊ฐ์ ํ ํ๋ก์ธ์ค๋ ํ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์์ฅ ๊ณต์ ๋๋ Jetsam์ ์ง๋ฉดํ ์ ์์ต๋๋ค. ์ฝ์ผ๋ฆฌ์ ์ ๋ค์ํ ์ญํ ์ ๊ฐ์ง๋๋ค: ๋ฆฌ๋, XPC ์๋น์ค, ํ์ฅ.
Credentials & Personae
๊ฐ ํ๋ก์ธ์ค๋ ์์คํ
์์ ๊ถํ์ ์๋ณํ๋ ์๊ฒฉ ์ฆ๋ช
์ ๋ณด์ ํฉ๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ํ๋์ ๊ธฐ๋ณธ uid์ ํ๋์ ๊ธฐ๋ณธ gid๋ฅผ ๊ฐ์ง๋ฉฐ (์ฌ๋ฌ ๊ทธ๋ฃน์ ์ํ ์ ์์).
์ด์ง ํ์ผ์ด setuid/setgid ๋นํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน ID๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.
์๋ก์ด uid/gid๋ฅผ ์ค์ ํ๊ธฐ ์ํ ์ฌ๋ฌ ํจ์๊ฐ ์์ต๋๋ค.
์์คํ
ํธ์ถ **persona**๋ ๋์ฒด ์๊ฒฉ ์ฆ๋ช
์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ๋ฅด์๋๋ฅผ ์ฑํํ๋ฉด uid, gid ๋ฐ ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ์ ํ ๋ฒ์ ๊ฐ์ ํฉ๋๋ค. ์์ค ์ฝ๋์์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค:
struct kpersona_info { uint32_t persona_info_version;
uid_t persona_id; /* overlaps with UID */
int persona_type;
gid_t persona_gid;
uint32_t persona_ngroups;
gid_t persona_groups[NGROUPS];
uid_t persona_gmuid;
char persona_name[MAXLOGNAME + 1];
/* TODO: MAC policies?! */
}
์ค๋ ๋ ๊ธฐ๋ณธ ์ ๋ณด
- POSIX ์ค๋ ๋ (pthreads): macOS๋ C/C++์ ํ์ค ์ค๋ ๋ฉ API์ ์ผ๋ถ์ธ POSIX ์ค๋ ๋(
pthreads)๋ฅผ ์ง์ํฉ๋๋ค. macOS์์ pthreads์ ๊ตฌํ์/usr/lib/system/libsystem_pthread.dylib์ ์์ผ๋ฉฐ, ์ด๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํlibpthreadํ๋ก์ ํธ์์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. - ์ค๋ ๋ ์์ฑ:
pthread_create()ํจ์๋ ์๋ก์ด ์ค๋ ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก ์ด ํจ์๋ XNU ์ปค๋(์ฆ, macOS๊ฐ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ปค๋)์ ํน์ ํ ์ ์์ค ์์คํ ํธ์ถ์ธbsdthread_create()๋ฅผ ํธ์ถํฉ๋๋ค. ์ด ์์คํ ํธ์ถ์ ์ค๋ ๋ ๋์์ ์ง์ ํ๋pthread_attr(์์ฑ)์์ ํ์๋ ๋ค์ํ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ค์ผ์ค๋ง ์ ์ฑ ๊ณผ ์คํ ํฌ๊ธฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
- ๊ธฐ๋ณธ ์คํ ํฌ๊ธฐ: ์๋ก์ด ์ค๋ ๋์ ๊ธฐ๋ณธ ์คํ ํฌ๊ธฐ๋ 512 KB๋ก, ์ผ๋ฐ์ ์ธ ์์ ์๋ ์ถฉ๋ถํ์ง๋ง ๋ ๋ง์ ๊ณต๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ ์ค๋ ๋ ์์ฑ์ ํตํด ์กฐ์ ํ ์ ์์ต๋๋ค.
- ์ค๋ ๋ ์ด๊ธฐํ:
__pthread_init()ํจ์๋ ์ค๋ ๋ ์ค์ ์ค์ ์ค์ํ๋ฉฐ,env[]์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์คํ์ ์์น์ ํฌ๊ธฐ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํฌํจํ ์ ์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๋ค.
macOS์ ์ค๋ ๋ ์ข ๋ฃ
- ์ค๋ ๋ ์ข
๋ฃ: ์ค๋ ๋๋ ์ผ๋ฐ์ ์ผ๋ก
pthread_exit()๋ฅผ ํธ์ถํ์ฌ ์ข ๋ฃ๋ฉ๋๋ค. ์ด ํจ์๋ ์ค๋ ๋๊ฐ ๊น๋ํ๊ฒ ์ข ๋ฃ๋๋๋ก ํ๋ฉฐ, ํ์ํ ์ ๋ฆฌ๋ฅผ ์ํํ๊ณ ์ค๋ ๋๊ฐ ๋ชจ๋ ์กฐ์ธ์์๊ฒ ๋ฐํ ๊ฐ์ ๋ณด๋ผ ์ ์๋๋ก ํฉ๋๋ค. - ์ค๋ ๋ ์ ๋ฆฌ:
pthread_exit()๋ฅผ ํธ์ถํ๋ฉดpthread_terminate()ํจ์๊ฐ ํธ์ถ๋์ด ๋ชจ๋ ๊ด๋ จ ์ค๋ ๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ด ํจ์๋ Mach ์ค๋ ๋ ํฌํธ๋ฅผ ํด์ ํ๊ณ (Mach๋ XNU ์ปค๋์ ํต์ ํ์ ์์คํ ) ์ค๋ ๋์ ๊ด๋ จ๋ ์ปค๋ ์์ค ๊ตฌ์กฐ๋ฅผ ์ ๊ฑฐํ๋ ์์คํ ํธ์ถ์ธbsdthread_terminate๋ฅผ ํธ์ถํฉ๋๋ค.
๋๊ธฐํ ๋ฉ์ปค๋์ฆ
๊ณต์ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ์ ๊ด๋ฆฌํ๊ณ ๊ฒฝ์ ์กฐ๊ฑด์ ํผํ๊ธฐ ์ํด macOS๋ ์ฌ๋ฌ ๋๊ธฐํ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์์คํ ์์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ค ์ค๋ ๋ฉ ํ๊ฒฝ์์ ์ค์ํฉ๋๋ค:
- ๋ฎคํ ์ค:
- ์ผ๋ฐ ๋ฎคํ ์ค (์๋ช : 0x4D555458): ๋ฉ๋ชจ๋ฆฌ ํํ๋ฆฐํธ๊ฐ 60๋ฐ์ดํธ(๋ฎคํ ์ค 56๋ฐ์ดํธ ๋ฐ ์๋ช 4๋ฐ์ดํธ)์ธ ํ์ค ๋ฎคํ ์ค์ ๋๋ค.
- ๋น ๋ฅธ ๋ฎคํ ์ค (์๋ช : 0x4d55545A): ์ผ๋ฐ ๋ฎคํ ์ค์ ์ ์ฌํ์ง๋ง ๋ ๋น ๋ฅธ ์์ ์ ์ํด ์ต์ ํ๋ ๋ฎคํ ์ค์ด๋ฉฐ, ํฌ๊ธฐ๋ 60๋ฐ์ดํธ์ ๋๋ค.
- ์กฐ๊ฑด ๋ณ์:
- ํน์ ์กฐ๊ฑด์ด ๋ฐ์ํ ๋๊น์ง ๋๊ธฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ํฌ๊ธฐ๋ 44๋ฐ์ดํธ(40๋ฐ์ดํธ ๋ฐ 4๋ฐ์ดํธ ์๋ช ํฌํจ)์ ๋๋ค.
- ์กฐ๊ฑด ๋ณ์ ์์ฑ (์๋ช : 0x434e4441): ์กฐ๊ฑด ๋ณ์์ ๊ตฌ์ฑ ์์ฑ์ผ๋ก, ํฌ๊ธฐ๋ 12๋ฐ์ดํธ์ ๋๋ค.
- ํ ๋ฒ ๋ณ์ (์๋ช : 0x4f4e4345):
- ์ด๊ธฐํ ์ฝ๋๊ฐ ํ ๋ฒ๋ง ์คํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ํฌ๊ธฐ๋ 12๋ฐ์ดํธ์ ๋๋ค.
- ์ฝ๊ธฐ-์ฐ๊ธฐ ์ ๊ธ:
- ์ฌ๋ฌ ๋ ์๊ฐ ๋์์ ๋๋ ํ ๋ช ์ ์์ฑ์๊ฐ ๋์์ ์ ๊ทผํ ์ ์๋๋ก ํ์ฌ ๊ณต์ ๋ฐ์ดํฐ์ ๋ํ ํจ์จ์ ์ธ ์ ๊ทผ์ ์ด์งํฉ๋๋ค.
- ์ฝ๊ธฐ ์ฐ๊ธฐ ์ ๊ธ (์๋ช : 0x52574c4b): ํฌ๊ธฐ๋ 196๋ฐ์ดํธ์ ๋๋ค.
- ์ฝ๊ธฐ ์ฐ๊ธฐ ์ ๊ธ ์์ฑ (์๋ช : 0x52574c41): ์ฝ๊ธฐ-์ฐ๊ธฐ ์ ๊ธ์ ์์ฑ์ผ๋ก, ํฌ๊ธฐ๋ 20๋ฐ์ดํธ์ ๋๋ค.
Tip
์ด๋ฌํ ๊ฐ์ฒด์ ๋ง์ง๋ง 4๋ฐ์ดํธ๋ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๊ฐ์งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ค๋ ๋ ๋ก์ปฌ ๋ณ์ (TLV)
**์ค๋ ๋ ๋ก์ปฌ ๋ณ์ (TLV)**๋ Mach-O ํ์ผ(์ฆ, macOS์ ์คํ ํ์ผ ํ์)๊ณผ ๊ด๋ จํ์ฌ ๋ค์ค ์ค๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ ์ค๋ ๋์ ํน์ ํ ๋ณ์๋ฅผ ์ ์ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๊ฐ ์ค๋ ๋๊ฐ ๋ณ์์ ๋ณ๋ ์ธ์คํด์ค๋ฅผ ๊ฐ์ง๋๋ก ํ์ฌ ์ถฉ๋์ ํผํ๊ณ ๋ฎคํ ์ค์ ๊ฐ์ ๋ช ์์ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ ์์ด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
C ๋ฐ ๊ด๋ จ ์ธ์ด์์๋ __thread ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ ๋ ๋ก์ปฌ ๋ณ์๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค. ๋ค์์ ์์ ์์ ์๋ํ๋ ๋ฐฉ์์
๋๋ค:
cCopy code__thread int tlv_var;
void main (int argc, char **argv){
tlv_var = 10;
}
์ด ์ค๋ํซ์ tlv_var๋ฅผ ์ค๋ ๋ ๋ก์ปฌ ๋ณ์๋ก ์ ์ํฉ๋๋ค. ์ด ์ฝ๋๋ฅผ ์คํํ๋ ๊ฐ ์ค๋ ๋๋ ์์ ์ tlv_var๋ฅผ ๊ฐ์ง๋ฉฐ, ํ ์ค๋ ๋๊ฐ tlv_var์ ๊ฐํ ๋ณ๊ฒฝ์ ๋ค๋ฅธ ์ค๋ ๋์ tlv_var์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
Mach-O ๋ฐ์ด๋๋ฆฌ์์ ์ค๋ ๋ ๋ก์ปฌ ๋ณ์์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ํน์ ์น์ ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
__DATA.__thread_vars: ์ด ์น์ ์ ์ค๋ ๋ ๋ก์ปฌ ๋ณ์์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ฉฐ, ๋ณ์์ ์ ํ ๋ฐ ์ด๊ธฐํ ์ํ์ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.__DATA.__thread_bss: ์ด ์น์ ์ ๋ช ์์ ์ผ๋ก ์ด๊ธฐํ๋์ง ์์ ์ค๋ ๋ ๋ก์ปฌ ๋ณ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ์ ๋ก ์ด๊ธฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ํด ๋ฐ๋ก ์ค์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ์ ๋๋ค.
Mach-O๋ ์ค๋ ๋๊ฐ ์ข
๋ฃ๋ ๋ ์ค๋ ๋ ๋ก์ปฌ ๋ณ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด **tlv_atexit**๋ผ๋ ํน์ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด API๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ ๋๊ฐ ์ข
๋ฃ๋ ๋ ์ค๋ ๋ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๋ ์๋ฉธ์๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค.
์ค๋ ๋ ์ฐ์ ์์
์ค๋ ๋ ์ฐ์ ์์๋ฅผ ์ดํดํ๋ ค๋ฉด ์ด์ ์ฒด์ ๊ฐ ์ด๋ค ์ค๋ ๋๋ฅผ ์ธ์ ์คํํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ์ดํด๋ด์ผ ํฉ๋๋ค. ์ด ๊ฒฐ์ ์ ๊ฐ ์ค๋ ๋์ ํ ๋น๋ ์ฐ์ ์์ ์์ค์ ์ํด ์ํฅ์ ๋ฐ์ต๋๋ค. macOS ๋ฐ ์ ๋์ค ๊ณ์ด ์์คํ
์์๋ nice, renice, ๋ฐ ์๋น์ค ํ์ง(QoS) ํด๋์ค์ ๊ฐ์ ๊ฐ๋
์ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
Nice ๋ฐ Renice
- Nice:
- ํ๋ก์ธ์ค์
nice๊ฐ์ ์ฐ์ ์์์ ์ํฅ์ ๋ฏธ์น๋ ์ซ์์ ๋๋ค. ๋ชจ๋ ํ๋ก์ธ์ค๋ -20(๊ฐ์ฅ ๋์ ์ฐ์ ์์)์์ 19(๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์)๊น์ง์ nice ๊ฐ์ ๊ฐ์ง๋๋ค. ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋ ๊ธฐ๋ณธ nice ๊ฐ์ ์ผ๋ฐ์ ์ผ๋ก 0์ ๋๋ค. - ๋ฎ์ nice ๊ฐ( -20์ ๊ฐ๊น์ด)์ ํ๋ก์ธ์ค๋ฅผ ๋ โ์ด๊ธฐ์ โ์ผ๋ก ๋ง๋ค์ด, ๋ ๋์ nice ๊ฐ์ ๊ฐ์ง ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋นํด ๋ ๋ง์ CPU ์๊ฐ์ ๋ถ์ฌํฉ๋๋ค.
- Renice:
renice๋ ์ด๋ฏธ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ nice ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ช ๋ น์ ๋๋ค. ์ด๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ์๋ก์ด nice ๊ฐ์ ๋ฐ๋ผ CPU ์๊ฐ ํ ๋น์ ์ฆ๊ฐ์ํค๊ฑฐ๋ ๊ฐ์์ํฌ ์ ์์ต๋๋ค.- ์๋ฅผ ๋ค์ด, ํ๋ก์ธ์ค๊ฐ ์ผ์์ ์ผ๋ก ๋ ๋ง์ CPU ๋ฆฌ์์ค๊ฐ ํ์ํ๋ค๋ฉด
renice๋ฅผ ์ฌ์ฉํ์ฌ nice ๊ฐ์ ๋ฎ์ถ ์ ์์ต๋๋ค.
์๋น์ค ํ์ง(QoS) ํด๋์ค
QoS ํด๋์ค๋ ํนํ **Grand Central Dispatch (GCD)**๋ฅผ ์ง์ํ๋ macOS์ ๊ฐ์ ์์คํ ์์ ์ค๋ ๋ ์ฐ์ ์์๋ฅผ ์ฒ๋ฆฌํ๋ ๋ณด๋ค ํ๋์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. QoS ํด๋์ค๋ ๊ฐ๋ฐ์๊ฐ ์์ ์ ์ค์์ฑ์ด๋ ๊ธด๊ธ์ฑ์ ๋ฐ๋ผ ๋ค์ํ ์์ค์ผ๋ก ์์ ์ ๋ถ๋ฅํ ์ ์๋๋ก ํฉ๋๋ค. macOS๋ ์ด๋ฌํ QoS ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ ๋ ์ฐ์ ์์๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค:
- ์ฌ์ฉ์ ์ํธ์์ฉ:
- ์ด ํด๋์ค๋ ํ์ฌ ์ฌ์ฉ์์ ์ํธ์์ฉ ์ค์ด๊ฑฐ๋ ์ฆ๊ฐ์ ์ธ ๊ฒฐ๊ณผ๊ฐ ํ์ํ ์์ ์ ์ํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์์ ์ ์ธํฐํ์ด์ค๋ฅผ ๋ฐ์์ ์ผ๋ก ์ ์งํ๊ธฐ ์ํด ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌ๋ฐ์ต๋๋ค(์: ์ ๋๋ฉ์ด์ ๋๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ).
- ์ฌ์ฉ์ ์์:
- ์ฌ์ฉ์๊ฐ ์์ํ๊ณ ์ฆ๊ฐ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํ๋ ์์ ์ผ๋ก, ๋ฌธ์๋ฅผ ์ด๊ฑฐ๋ ๊ณ์ฐ์ด ํ์ํ ๋ฒํผ์ ํด๋ฆญํ๋ ๊ฒ๊ณผ ๊ฐ์ ์์ ์ ๋๋ค. ์ด๋ค์ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง์ง๋ง ์ฌ์ฉ์ ์ํธ์์ฉ๋ณด๋ค๋ ๋ฎ์ต๋๋ค.
- ์ ํธ๋ฆฌํฐ:
- ์ด๋ฌํ ์์ ์ ์ฅ๊ธฐ ์คํ๋๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์งํ ํ์๊ธฐ๋ฅผ ํ์ํฉ๋๋ค(์: ํ์ผ ๋ค์ด๋ก๋, ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ). ์ด๋ค์ ์ฌ์ฉ์ ์์ ์์ ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ์ผ๋ฉฐ ์ฆ์ ์๋ฃ๋ ํ์๋ ์์ต๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋:
- ์ด ํด๋์ค๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์๋ํ๋ฉฐ ์ฌ์ฉ์์๊ฒ๋ ๋ณด์ด์ง ์๋ ์์ ์ ์ํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์์ ์ ์ธ๋ฑ์ฑ, ๋๊ธฐํ ๋๋ ๋ฐฑ์ ๊ณผ ๊ฐ์ ์์ ์ผ ์ ์์ต๋๋ค. ์ด๋ค์ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ ์์คํ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ด ์ต์ํ๋ฉ๋๋ค.
QoS ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ์ ํํ ์ฐ์ ์์ ์ซ์๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์์ผ๋ฉฐ, ์์ ์ ์ฑ๊ฒฉ์ ์ง์คํ๊ณ ์์คํ ์ด CPU ๋ฆฌ์์ค๋ฅผ ์ต์ ํํ๋๋ก ํ ์ ์์ต๋๋ค.
๋ํ, ์ค๋ ๋ ์ค์ผ์ค๋ง ์ ์ฑ
์ด ์์ผ๋ฉฐ, ์ด๋ ์ค์ผ์ค๋ฌ๊ฐ ๊ณ ๋ คํ ์ค์ผ์ค๋ง ๋งค๊ฐ๋ณ์ ์งํฉ์ ์ง์ ํ๋ ํ๋ฆ์
๋๋ค. ์ด๋ thread_policy_[set/get]๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒฝ์ ์กฐ๊ฑด ๊ณต๊ฒฉ์ ์ ์ฉํ ์ ์์ต๋๋ค.
MacOS ํ๋ก์ธ์ค ๋จ์ฉ
MacOS๋ ๋ค๋ฅธ ์ด์ ์ฒด์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ก์ธ์ค๊ฐ ์ํธ์์ฉํ๊ณ , ํต์ ํ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ๊ณผ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ํจ์จ์ ์ธ ์์คํ ๊ธฐ๋ฅ์ ํ์์ ์ด์ง๋ง, ์ํ ํ์์์ ์ํด ์ ์์ ์ธ ํ๋์ ์ํํ๋ ๋ฐ ๋จ์ฉ๋ ์ ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฃผ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฃผ์ ์ ๊ณต๊ฒฉ์๊ฐ ํ๋ก์ธ์ค๊ฐ ์ ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๋ํ๋๋ก ๊ฐ์ ํ๋ ๊ธฐ์ ์ ๋๋ค. ์ฃผ์ ๋ ํ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ํ๋ก์ธ์ค์ ์ปจํ ์คํธ์์ ์คํ๋๋ฉฐ, ๊ณต๊ฒฉ์์๊ฒ ํ๋ก์ธ์ค์ ๋์ผํ ๊ถํ๊ณผ ์ ๊ทผ์ ์ ๊ณตํฉ๋๋ค.
ํจ์ ํํน
ํจ์ ํํน์ ์ํํธ์จ์ด ์ฝ๋ ๋ด์์ ํจ์ ํธ์ถ ๋๋ ๋ฉ์์ง๋ฅผ ๊ฐ๋ก์ฑ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ํจ์๋ฅผ ํํนํจ์ผ๋ก์จ ๊ณต๊ฒฉ์๋ ํ๋ก์ธ์ค์ ๋์์ ์์ ํ๊ฑฐ๋, ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๊ด์ฐฐํ๊ฑฐ๋, ์คํ ํ๋ฆ์ ์ ์ดํ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค ๊ฐ ํต์
ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC)์ ๋ณ๋์ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ๊ตํํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ํ๋ ๋๋ค. IPC๋ ๋ง์ ํฉ๋ฒ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ด์ง๋ง, ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ๋ฅผ ๋ฌด๋๋จ๋ฆฌ๊ฑฐ๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ ์ถํ๊ฑฐ๋ ๋ฌด๋จ ์์ ์ ์ํํ๋ ๋ฐ ๋จ์ฉ๋ ์ ์์ต๋๋ค.
macOS IPC - Inter Process Communication
Electron ์ ํ๋ฆฌ์ผ์ด์ ์ฃผ์
ํน์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋ Electron ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์ธ์ค ์ฃผ์ ์ ์ทจ์ฝํ ์ ์์ต๋๋ค:
macOS Electron Applications Injection
Chromium ์ฃผ์
--load-extension ๋ฐ --use-fake-ui-for-media-stream ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ๋ด ๊ณต๊ฒฉ์ ์ํํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ํค ์
๋ ฅ, ํธ๋ํฝ, ์ฟ ํค๋ฅผ ํ์น๊ณ ํ์ด์ง์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค:
๋๋ฌ์ด NIB
NIB ํ์ผ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์์ ์ํธ์์ฉ์ ์ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค์ ์์์ ๋ช ๋ น์ ์คํํ ์ ์์ผ๋ฉฐ, NIB ํ์ผ์ด ์์ ๋๋ฉด ์ด๋ฏธ ์คํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ์ Gatekeeper๊ฐ ๋ง์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ค์ ์์์ ํ๋ก๊ทธ๋จ์ด ์์์ ๋ช ๋ น์ ์คํํ๋๋ก ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค:
Java ์ ํ๋ฆฌ์ผ์ด์ ์ฃผ์
ํน์ Java ๊ธฐ๋ฅ(์: _JAVA_OPTS ํ๊ฒฝ ๋ณ์)์ ๋จ์ฉํ์ฌ Java ์ ํ๋ฆฌ์ผ์ด์
์ด ์์์ ์ฝ๋/๋ช
๋ น์ ์คํํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
macOS Java Applications Injection
.Net ์ ํ๋ฆฌ์ผ์ด์ ์ฃผ์
.Net ๋๋ฒ๊น ๊ธฐ๋ฅ์ ๋จ์ฉํ์ฌ .Net ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋๋ฅผ ์ฃผ์ ํ ์ ์์ต๋๋ค(์ด๋ macOS ๋ณดํธ(๋ฐํ์ ๊ฐํ)๋ก ๋ณดํธ๋์ง ์์).
macOS .Net Applications Injection
Perl ์ฃผ์
Perl ์คํฌ๋ฆฝํธ๊ฐ ์์์ ์ฝ๋๋ฅผ ์คํํ๋๋ก ๋ง๋๋ ๋ค์ํ ์ต์ ์ ํ์ธํ์ญ์์ค:
macOS Perl Applications Injection
Ruby ์ฃผ์
Ruby ํ๊ฒฝ ๋ณ์๋ฅผ ๋จ์ฉํ์ฌ ์์์ ์คํฌ๋ฆฝํธ๊ฐ ์์์ ์ฝ๋๋ฅผ ์คํํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค:
macOS Ruby Applications Injection
Python ์ฃผ์
ํ๊ฒฝ ๋ณ์ **PYTHONINSPECT**๊ฐ ์ค์ ๋๋ฉด Python ํ๋ก์ธ์ค๋ ์๋ฃ๋๋ฉด Python CLI๋ก ์ง์
ํฉ๋๋ค. ๋ํ **PYTHONSTARTUP**์ ์ฌ์ฉํ์ฌ ๋ํํ ์ธ์
์์ ์ ์คํํ Python ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ **PYTHONINSPECT**๊ฐ ๋ํํ ์ธ์
์ ์์ฑํ ๋ PYTHONSTARTUP ์คํฌ๋ฆฝํธ๋ ์คํ๋์ง ์์ต๋๋ค.
PYTHONPATH ๋ฐ **PYTHONHOME**๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๊ฒฝ ๋ณ์๋ Python ๋ช
๋ น์ด ์์์ ์ฝ๋๋ฅผ ์คํํ๋๋ก ๋ง๋๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
**pyinstaller**๋ก ์ปดํ์ผ๋ ์คํ ํ์ผ์ ๋ด์ฅ Python์ ์ฌ์ฉํ๋๋ผ๋ ์ด๋ฌํ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
Caution
์ ๋ฐ์ ์ผ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ๋จ์ฉํ์ฌ Python์ด ์์์ ์ฝ๋๋ฅผ ์คํํ๋๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ Homebrew๋ฅผ ์ฌ์ฉํ์ฌ Python์ ์ค์นํ๋ฉฐ, ์ด๋ ๊ธฐ๋ณธ ๊ด๋ฆฌ์ ์ฌ์ฉ์์๊ฒ ์ฐ๊ธฐ ๊ฐ๋ฅํ ์์น์ Python์ ์ค์นํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฅผ ํ์ทจํ ์ ์์ต๋๋ค:mv /opt/homebrew/bin/python3 /opt/homebrew/bin/python3.old cat > /opt/homebrew/bin/python3 <<EOF #!/bin/bash # ์ถ๊ฐ ํ์ทจ ์ฝ๋ /opt/homebrew/bin/python3.old "$@" EOF chmod +x /opt/homebrew/bin/python3์ฌ์ง์ด root๋ Python์ ์คํํ ๋ ์ด ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
ํ์ง
Shield
Shield (Github)๋ ํ๋ก์ธ์ค ์ฃผ์ ์์ ์ ํ์งํ๊ณ ์ฐจ๋จํ ์ ์๋ ์คํ ์์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค:
- ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ: ๋ค์ ํ๊ฒฝ ๋ณ์ ์ค ํ๋์ ์กด์ฌ๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค:
DYLD_INSERT_LIBRARIES,CFNETWORK_LIBRARY_PATH,RAWCAMERA_BUNDLE_PATH๋ฐELECTRON_RUN_AS_NODE task_for_pidํธ์ถ ์ฌ์ฉ: ํ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์ ํฌํธ๋ฅผ ์ป์ผ๋ ค๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ต๋๋ค. ์ด๋ ํ๋ก์ธ์ค์ ์ฝ๋๋ฅผ ์ฃผ์ ํ ์ ์๊ฒ ํด์ค๋๋ค.- Electron ์ฑ ๋งค๊ฐ๋ณ์: ๋๊ตฐ๊ฐ
--inspect,--inspect-brk๋ฐ--remote-debugging-port๋ช ๋ น์ค ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฒ๊น ๋ชจ๋์์ Electron ์ฑ์ ์์ํ๊ณ , ๋ฐ๋ผ์ ์ฝ๋ ์ฃผ์ ์ ํ ์ ์์ต๋๋ค. - ์ฌ๋ณผ๋ฆญ ๋งํฌ ๋๋ ํ๋ ๋งํฌ ์ฌ์ฉ: ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ํํ ๋จ์ฉ์ ์ฐ๋ฆฌ ์ฌ์ฉ์ ๊ถํ์ผ๋ก ๋งํฌ๋ฅผ ์์ฑํ๊ณ , ๋ ๋์ ๊ถํ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ๋๋ค. ๋งํฌ๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค์ ๊ถํ ์์ค์ด ๋์ ํ์ผ๊ณผ ๋ค๋ฅด๋ฉด ๊ฒฝ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค. ๋ถํํ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ ๊ฒฝ์ฐ, ์์ฑ ์ ์ ๋งํฌ์ ๋ชฉ์ ์ง์ ๋ํ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฐจ๋จ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ Apple์ EndpointSecurity ํ๋ ์์ํฌ์ ํ๊ณ์ ๋๋ค.
๋ค๋ฅธ ํ๋ก์ธ์ค์์ ๋ง๋ ํธ์ถ
์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ task_name_for_pid ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ๋ก์ธ์ค์ ์ฝ๋๋ฅผ ์ฃผ์
ํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ทธ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ด ํจ์๋ฅผ ํธ์ถํ๋ ค๋ฉด ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๋์ผํ uid์ฌ์ผ ํ๊ฑฐ๋ root์ฌ์ผ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ ์ด ํจ์๋ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐํํ๋ฉฐ, ์ฝ๋๋ฅผ ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ์ ์๋๋๋ค).
์ฐธ๊ณ ์๋ฃ
- https://theevilbit.github.io/shield/
- https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


