๐Ÿ”’๐Ÿ’ฐ LockBit (2019โ€“) โ€” ๋žœ์„ฌ์›จ์–ด๋ฅผ '์‚ฐ์—…'์œผ๋กœ ๋งŒ๋“  RaaS: LockBit 2.0/3.0 Black ยท StealBit ์ด์ค‘ ๊ฐˆ์ทจ ยท ์œ ์ถœ๋œ ๋นŒ๋” ยท Operation Cronos

2026-10-17 ยท Malware Deep-Dive (Ransomware ยท RaaS ยท Double Extortion ยท LockBit Black ยท StealBit ยท VMware ESXi ยท Operation Cronos)
๊ธฐ์ˆ  ์ •๋ณด
  • ์•…์„ฑ์ฝ”๋“œ๋ช…: LockBit โ€” ์ดˆ๊ธฐ ๋ณ„์นญ .abcd, 2.0์€ LockBit Red, 3.0์€ LockBit Black, 2025๋…„ LockBit 5.0
  • ๋“ฑ์žฅ: 2019๋…„ 9์›” ์ตœ์ดˆ ๊ด€์ธก(.abcd) โ†’ 2020๋…„ 1์›” ๋Ÿฌ์‹œ์•„์–ด ์‚ฌ์ด๋ฒ„๋ฒ”์ฃ„ ํฌ๋Ÿผ์— 'LockBit' ๋“ฑ์žฅ โ†’ 2021๋…„ 6์›” 2.0 โ†’ 2022๋…„ ์ƒ๋ฐ˜๊ธฐ 3.0(3์›” ๋ฒ ํƒ€ยท6์›” ์ •์‹) โ†’ 2025๋…„ 9์›” 5.0
  • ์šด์˜ ๋ชจ๋ธ: RaaS(Ransomware-as-a-Service) โ€” ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ง„์€ ์•”ํ˜ธํ™” ํ”„๋กœ๊ทธ๋žจยท๊ฒฐ์ œยท์œ ์ถœ ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜๊ณ , ์ œํœด์‚ฌ(affiliate)๊ฐ€ ์นจํˆฌยทํšก์  ์ด๋™ยท์œ ์ถœ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ถ„์—… ๊ตฌ์กฐ
  • ํ•ต์‹ฌ ๋ฌด๊ธฐ: ์ด์ค‘ ๊ฐˆ์ทจ(double extortion) โ€” ์•”ํ˜ธํ™” ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ํ›”์น˜๊ณ (์ „์šฉ ๋„๊ตฌ StealBit), ๋ˆ์„ ์•ˆ ๋‚ด๋ฉด ์œ ์ถœ ์‚ฌ์ดํŠธ์— ๊ณต๊ฐœํ•˜๊ฒ ๋‹ค๊ณ  ํ˜‘๋ฐ•
  • ์•”ํ˜ธํ™” ํ”์ : ํŒŒ์ผ๋ช… ๋’ค .lockbit ํ™•์žฅ์ž, lockbit_readme.txt ๊ณ„์—ด ๋žœ์„ฌ๋…ธํŠธ, ๋ฐ”ํƒ•ํ™”๋ฉดยท์•„์ด์ฝ˜ ๋ณ€๊ฒฝ, ์—ฐ๊ฒฐ๋œ ํ”„๋ฆฐํ„ฐ๋กœ ๋…ธํŠธ ์ถœ๋ ฅ
  • ๊ธฐ์ˆ ์  ํŠน์ง•: ํŒŒ์ผ๋ณ„ AES-256 ํ‚ค + ๊ทธ ํ‚ค๋ฅผ RSA ๊ณต๊ฐœํ‚ค๋กœ ๋ด‰์ธ, ํŒŒ์ผ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์•ž๋ถ€๋ถ„ ์ผ๋ถ€๋งŒ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ณ ์† ๋ชจ๋“œ, ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ, WindowsยทLinuxยทVMware ESXi ํŽ˜์ด๋กœ๋“œ
  • ๊ทœ๋ชจ: 2020๋…„ 1์›”~2023๋…„ 5์›” ๋ฏธ๊ตญ์—์„œ ์•ฝ 1,700๊ฑด ๊ณต๊ฒฉยท9,100๋งŒ ๋‹ฌ๋Ÿฌ ๋ชธ๊ฐ’, 2022๋…„ ์ „ ์„ธ๊ณ„ ๋žœ์„ฌ์›จ์–ด ์‚ฌ๊ฑด์˜ ์•ฝ 44%๋กœ ์ถ”์ •. ๋ฒ•์ง‘ํ–‰ ์••์ˆ˜ ์ž๋ฃŒ์—์„œ ์ œํœด์‚ฌ 188๋ช… ์ด์ƒ ํ™•์ธ
  • ๋ฒ•์ง‘ํ–‰: 2024๋…„ 2์›” Operation Cronos(NCA ์ฃผ๋„ยท์œ ๋Ÿฝ์—ฐํ•ฉ ์กฐ์ •)๋กœ ์ธํ”„๋ผ ์••์ˆ˜, 2024๋…„ 5์›” ๊ด€๋ฆฌ์ž Dmitry Khoroshev ๊ธฐ์†Œยท์ œ์žฌ, 2025๋…„ ๊ฐœ๋ฐœ์ž Rostislav Panev ๋ฏธ๊ตญ ์ธ๋„
  • ์˜์˜: ๋žœ์„ฌ์›จ์–ด๋ฅผ 'ํ•ด์ปค ๊ฐœ์ธ์˜ ๋ฒ”์ฃ„'์—์„œ ๋ธŒ๋žœ๋“œยท์ œํœด์‚ฌยท๊ธฐ์ˆ ์ง€์›ยทํ‰ํŒ ๊ด€๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋ฒ”์ฃ„ ์„œ๋น„์Šค ์‚ฐ์—…์œผ๋กœ ๋ฐ”๊พผ ๋Œ€ํ‘œ ์‚ฌ๋ก€. 2022๋…„ ๋นŒ๋” ์œ ์ถœ์€ ์ดํ›„ ๋ณ€์ข…๋“ค์˜ '๊ณตํ†ต ์กฐ์ƒ'์ด ๋๋‹ค

1. ๋ฐฐ๊ฒฝ/์—ญ์‚ฌ โ€” '๊ฐœ์ธ์˜ ๋ชธ๊ฐ’ ํ˜‘๋ฐ•'์—์„œ 'ํ”„๋žœ์ฐจ์ด์ฆˆ ๋ฒ”์ฃ„'๋กœ

2010๋…„๋Œ€ ์ค‘๋ฐ˜๊นŒ์ง€ ๋žœ์„ฌ์›จ์–ด๋Š” ๋Œ€์ฒด๋กœ ํ•œ ์กฐ์ง์ด ์ง์ ‘ ๋งŒ๋“ค๊ณ  ์ง์ ‘ ๋ฟŒ๋ฆฌ๋Š” ๋ชจ๋ธ์ด์—ˆ๋‹ค. LockBit์ด ๋ฐ”๊พผ ๊ฒƒ์€ ์•”ํ˜ธํ™” ๊ธฐ์ˆ  ์ž์ฒด๋ณด๋‹ค ๋น„์ฆˆ๋‹ˆ์Šค ๊ตฌ์กฐ์˜€๋‹ค. ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ง„์€ ์ฝ”๋“œ์™€ ์ธํ”„๋ผ๋งŒ ๊ด€๋ฆฌํ•˜๊ณ , ์‹ค์ œ ์นจํˆฌ๋Š” ์‹ค๋ ฅ ์žˆ๋Š” ์™ธ๋ถ€ ํ•ด์ปค(์ œํœด์‚ฌ)์—๊ฒŒ ๋งก๊ธด๋‹ค. ์ œํœด์‚ฌ๋Š” ๋ชธ๊ฐ’์˜ ๋Œ€๋ถ€๋ถ„์„ ๊ฐ€์ ธ๊ฐ€๊ณ , ์šด์˜์ง„์€ '๋ธŒ๋žœ๋“œ ์‚ฌ์šฉ๋ฃŒ'๋ฅผ ์ฑ™๊ธด๋‹ค. ์ด ๊ตฌ์กฐ ๋•๋ถ„์— LockBit์€ 2020๋…„๋Œ€ ์ดˆ๋ฐ˜ ํญ๋ฐœ์ ์œผ๋กœ ์‚ฌ๊ฑด ์ˆ˜๋ฅผ ๋Š˜๋ ธ๊ณ , 2022๋…„์—๋Š” ์ „ ์„ธ๊ณ„ ๋žœ์„ฌ์›จ์–ด ์‚ฌ๊ฑด์˜ ์•ฝ 44%๋ฅผ ์ฐจ์ง€ํ•œ ๊ฒƒ์œผ๋กœ ์ถ”์ •๋๋‹ค.

์ดˆ๊ธฐ ์ด๋ฆ„์€ ์•”ํ˜ธํ™” ํ›„ ๋ถ™์ด๋˜ ํ™•์žฅ์ž์—์„œ ๋”ฐ์˜จ .abcd์˜€๋‹ค. 2020๋…„ 1์›” ๋Ÿฌ์‹œ์•„์–ด๊ถŒ ๋ฒ”์ฃ„ ํฌ๋Ÿผ์— 'LockBit'์ด๋ผ๋Š” ์ด๋ฆ„์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ๋ธŒ๋žœ๋“œ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๊ณ , 2021๋…„ 6์›” LockBit 2.0(LockBit Red)์ด ๋‚˜์˜ค๋ฉด์„œ ํŒ์ด ์ปค์กŒ๋‹ค. 2.0์˜ ํ•ต์‹ฌ์€ ๋‘ ๊ฐ€์ง€์˜€๋‹ค. ์ฒซ์งธ, ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ๋นผ๋‚ด๋Š” ์ „์šฉ ๋„๊ตฌ StealBit์„ ๊ธฐ๋ณธ ํƒ‘์žฌํ•ด ์ด์ค‘ ๊ฐˆ์ทจ๋ฅผ ํ‘œ์ค€ํ™”ํ–ˆ๋‹ค. ๋‘˜์งธ, "์—…๊ณ„์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ์•”ํ˜ธํ™”"๋ฅผ ๋งˆ์ผ€ํŒ… ๋ฌธ๊ตฌ๋กœ ๋‚ด์„ธ์šฐ๋ฉฐ ์ œํœด์‚ฌ๋ฅผ ๋ชจ์ง‘ํ–ˆ๋‹ค. 2021๋…„ 10์›”์—๋Š” Linux-ESXi Locker๋ฅผ ๋‚ด๋†“์•„ ๊ฐ€์ƒํ™” ์ธํ”„๋ผ๊นŒ์ง€ ํ‘œ์ ์„ ๋„“ํ˜”๋‹ค.

2022๋…„ ์ƒ๋ฐ˜๊ธฐ LockBit 3.0(LockBit Black)์€ ๋žœ์„ฌ์›จ์–ด ์—…๊ณ„ ์ตœ์ดˆ๋กœ ๋ฒ„๊ทธ๋ฐ”์šดํ‹ฐ๋ฅผ ๋„์ž…ํ–ˆ๋‹ค. ๋ณด์•ˆ ์—ฐ๊ตฌ์ž์—๊ฒŒ 1,000๋‹ฌ๋Ÿฌ์—์„œ 100๋งŒ ๋‹ฌ๋Ÿฌ๊นŒ์ง€ ๋ณด์ƒํ•˜๊ฒ ๋‹ค๊ณ  ๊ณต๊ฐœ์ ์œผ๋กœ ์ œ์•ˆํ•˜๋ฉฐ "์šฐ๋ฆฌ ์ฝ”๋“œ์˜ ์ทจ์•ฝ์ ์„ ์ฐพ์•„๋‹ฌ๋ผ"๊ณ  ํ–ˆ๋‹ค. ๋ฒ”์ฃ„ ์กฐ์ง์ด ์ œํ’ˆ ํ’ˆ์งˆ ๊ด€๋ฆฌ์™€ ํ‰ํŒ ๊ฒฝ์˜์„ ์‹œ์ž‘ํ•œ ์ˆœ๊ฐ„์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 2022๋…„ 9์›”, ํ•œ ์ œํœด์‚ฌ๊ฐ€ ๋นŒ๋”(builder)๋ฅผ ์œ ์ถœํ•˜๋ฉด์„œ ์ƒํ™ฉ์ด ๊ผฌ์ธ๋‹ค. ๋นŒ๋”๋Š” ์•”ํ˜ธํ™” ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์ •๊ฐ’์— ๋งž์ถฐ ์ฐ์–ด๋‚ด๋Š” ๋„๊ตฌ๋กœ, ์ด๊ฒƒ์ด ํผ์ง€์ž LockBit ๋ธŒ๋žœ๋“œ์™€ ๋ฌด๊ด€ํ•œ ๋ฒ”์ฃ„์ž๋“ค๊นŒ์ง€ ์†์‰ฝ๊ฒŒ ๋ณ€์ข…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

2023๋…„ LockBit์€ ๋ฏธ๊ตญ ์žฌ๋ฌด๋ถ€ ์ œ์žฌ ๋Œ€์ƒ์ด ๋  ๋งŒํผ ํฐ ์‚ฌ๊ฑด๋“ค์„ ๋ƒˆ๋‹ค. ์ค‘๊ตญ ๊ณต์ƒ์€ํ–‰ ๋ฏธ๊ตญ ์ง€์ (ICBC Financial Services) ๊ณต๊ฒฉ์œผ๋กœ ๋ฏธ๊ตญ ๊ตญ์ฑ„ ์‹œ์žฅ ๊ฒฐ์ œ๊ฐ€ ํ”๋“ค๋ ธ๊ณ , ์˜๊ตญ Royal Mail์˜ ๊ตญ์ œ ๋ฐฐ์†ก์ด ๋งˆ๋น„๋์œผ๋ฉฐ, BoeingยทContinentalยทํ•ญ๊ณต์šฐ์ฃผ ๊ณต๊ธ‰๋ง์ด ์—ฐ๋‹ฌ์•„ ํ‘œ์ ์ด ๋๋‹ค. 2024๋…„ 2์›” ์˜๊ตญ ๊ตญ๊ฐ€๋ฒ”์ฃ„์ฒญ(NCA)์ด ์ฃผ๋„ํ•œ Operation Cronos๊ฐ€ ๋‹คํฌ์›น ์ธํ”„๋ผ๋ฅผ ์••์ˆ˜ํ•˜๊ณ  LockBit 3.0 ๋ณตํ˜ธํ™” ๋„๊ตฌ๋ฅผ ๋ฌด๋ฃŒ ๋ฐฐํฌํ•˜๋ฉด์„œ ํ•œ ๋ฒˆ ๊บพ์ด๋Š” ๋“ฏํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์กฐ์ง์€ ๊ณง ์žฌ๊ฑด์„ ์„ ์–ธํ–ˆ๊ณ , 2025๋…„ 5์›”์—๋Š” LockBit ์ธํ”„๋ผ ์ž์ฒด๊ฐ€ ํ•ดํ‚น๋‹นํ•ด ๋‚ด๋ถ€ ์ž๋ฃŒ๊ฐ€ ์œ ์ถœ๋˜๋Š” ๊ตด์š•์„ ๊ฒช์—ˆ๋‹ค. ๊ฐ™์€ ํ•ด 9์›” LockBit 5.0์ด ๋“ฑ์žฅํ•ด WindowsยทLinuxยทESXi์šฉ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ฐ–์ถ˜ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์กฐ์ง์œผ๋กœ ๋Œ์•„์™”๋‹ค.

์‹œ๊ธฐ์‚ฌ๊ฑด์˜๋ฏธ
2019.09.abcd ์ตœ์ดˆ ๊ด€์ธกLockBit์˜ ์ „์‹ 
2020.01๋Ÿฌ์‹œ์•„์–ด ํฌ๋Ÿผ์— LockBit ๋“ฑ์žฅRaaS ๋ธŒ๋žœ๋“œํ™”
2021.06LockBit 2.0 (Red)StealBitยท์ด์ค‘ ๊ฐˆ์ทจยท๊ณ ์† ์•”ํ˜ธํ™”
2021.10Linux-ESXi Locker 1.0๊ฐ€์ƒํ™” ์ธํ”„๋ผ ํ‘œ์ 
2022.03โ€“06LockBit 3.0 (Black)๋ฒ„๊ทธ๋ฐ”์šดํ‹ฐยท๊ฐœ์ธํ™” ํ˜‘๋ฐ•
2022.09๋นŒ๋” ์œ ์ถœ๋ณ€์ข… ์ƒํƒœ๊ณ„์˜ ์‹œ์ž‘
2023.11ICBC FSยทBoeing ๊ณต๊ฒฉ๊ธˆ์œตยท๊ณต๊ธ‰๋ง ์ถฉ๊ฒฉ
2024.02Operation Cronos์ธํ”„๋ผ ์••์ˆ˜ยท๋ฌด๋ฃŒ ๋ณตํ˜ธํ™” ๋„๊ตฌ
2024.05Khoroshev ๊ธฐ์†Œยท์ œ์žฌ์ˆ˜๋ฐฐ๊ธˆ 1,000๋งŒ ๋‹ฌ๋Ÿฌ
2025.09LockBit 5.0Windows/Linux/ESXi ๋ฉ€ํ‹ฐํ”Œ๋žซํผ

2. ๊ฐ์—ผยท์ „ํŒŒ ๊ฒฝ๋กœ โ€” '๋ฌธ์„ ์—ฌ๋Š” ์‚ฌ๋žŒ'๊ณผ '๋ฐฉ์„ ํ„ฐ๋Š” ์‚ฌ๋žŒ'์˜ ๋ถ„์—…

LockBit ๋ณธ์ฒด๋Š” ์Šค์Šค๋กœ ์ธํ„ฐ๋„ท์„ ๊ธฐ์–ด๋‹ค๋‹ˆ๋Š” ์›œ์ด ์•„๋‹ˆ๋‹ค. ๋Œ€์‹  ์ œํœด์‚ฌ๊ฐ€ ์ด๋ฏธ ๋šซ์–ด ๋†“์€ ๋ฌธ์„ ํ†ตํ•ด ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ์—ผ ๊ฒฝ๋กœ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด '์•…์„ฑ์ฝ”๋“œ์˜ ์ „ํŒŒ'๊ฐ€ ์•„๋‹ˆ๋ผ ์ดˆ๊ธฐ ์ ‘๊ทผ(initial access) ์‹œ์žฅ์„ ๋ด์•ผ ํ•œ๋‹ค.

์นจํˆฌ ํ›„์—๋Š” 'ํ„ฐ๋„์„ ๋„“ํžˆ๋Š”' ๋‹จ๊ณ„๊ฐ€ ์ด์–ด์ง„๋‹ค. ์ž๊ฒฉ์ฆ๋ช… ํƒˆ์ทจ์—๋Š” Mimikatz์™€ LSASS ๋ฉ”๋ชจ๋ฆฌ ๋คํ”„๊ฐ€ ์“ฐ์ด๊ณ , ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ ํŒŒ์•…์—๋Š” Advanced Port Scanner ๊ฐ™์€ ์Šค์บ๋„ˆ๊ฐ€ ๋™์›๋œ๋‹ค. ํšก์  ์ด๋™์€ PsExec, SMB ๊ณต์œ , ์†์ƒ๋œ ๊ทธ๋ฃน์ •์ฑ…(GPO), Cobalt Strike ๋น„์ฝ˜์œผ๋กœ ์ด๋ค„์ง„๋‹ค. ์›๊ฒฉ ์ œ์–ดยทC2์—๋Š” AnyDesk, Atera RMM, ScreenConnect, TeamViewer ๊ฐ™์€ ์ •์ƒ ์›๊ฒฉ๊ด€๋ฆฌ ๋„๊ตฌ๊ฐ€ ์•…์šฉ๋œ๋‹ค. ์ด ๋„๊ตฌ๋“ค์€ ๋ฐฑ์‹ ์ด '์—…๋ฌด์šฉ ํ”„๋กœ๊ทธ๋žจ'์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์‰ฌ์›Œ ํƒ์ง€๋ฅผ ํ”ผํ•œ๋‹ค.

์•”ํ˜ธํ™” ์ง์ „์—๋Š” ๋ฐฑ์—…๊ณผ ํ”์ ์„ ๋จผ์ € ์ •๋ฆฌํ•œ๋‹ค. ์„€๋„ ๋ณต์‚ฌ๋ณธ ์‚ญ์ œ(vssadmin delete shadows), ๋ณต๊ตฌ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™”(bcdedit recoveryenabled No), ์ด๋ฒคํŠธ ๋กœ๊ทธ ์‚ญ์ œ(wevtutil cl), ํœด์ง€ํ†ต ๋น„์šฐ๊ธฐ, ๋ฐฑ์—…ยทDB ์„œ๋น„์Šค ์ค‘์ง€๊ฐ€ ๊ทธ๊ฒƒ์ด๋‹ค. ์ฆ‰ LockBit์˜ ๊ณต๊ฒฉ ์ฒด์ธ์€ "๋“ค์–ด์˜จ๋‹ค โ†’ ๊ถŒํ•œ์„ ๋„“ํžŒ๋‹ค โ†’ ๋ฐฑ์—…์„ ์ง€์šด๋‹ค โ†’ ํ›”์นœ๋‹ค โ†’ ์ž ๊ทผ๋‹ค"์˜ 5๋‹จ ๊ตฌ์กฐ๋กœ ์š”์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ๋™์ž‘ ์›๋ฆฌ ์ƒ์„ธ โ€” ํŒŒ์ผ ํ•˜๋‚˜์— ์—ด์‡  ํ•˜๋‚˜, ์—ด์‡ ๋Š” RSA๋กœ ๋ด‰์ธ

3.1 ์‹คํ–‰ ์ฒด์ธ

  1. ๋กœ๋” ์‹คํ–‰ โ€” ํ”ผ์‹ฑ ์ฒจ๋ถ€, PsExec ์›๊ฒฉ ์‹คํ–‰, GPO ๋ฐฐํฌ, ์Šค์ผ€์ค„๋“œ ํƒœ์Šคํฌ ๋“ฑ์œผ๋กœ ๋ณธ์ฒด๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ๋ช…๋ น์ค„ ์ธ์ž๋กœ ์•”ํ˜ธํ™” ๋ชจ๋“œยท๋น„๋ฐ€๋ฒˆํ˜ธยท๊ฒฝ๋กœยทํ™•์‚ฐ ์˜ต์…˜์„ ๋ฐ›๋Š”๋‹ค.
  2. ๊ถŒํ•œ ์ƒ์Šนยท๋ฐฉ์–ด ๋ฌด๋ ฅํ™” โ€” ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ํ™•๋ณดํ•˜๊ณ , ๋ณด์•ˆ ์ œํ’ˆยท๋ฐฑ์—… ์—์ด์ „ํŠธ๋ฅผ ์ค‘์ง€์‹œํ‚ค๊ฑฐ๋‚˜ ์–ธ๋กœ๋“œํ•œ๋‹ค. Process HackerยทGMER ๊ฐ™์€ ๋„๊ตฌ๋กœ ๋ถ„์„ ํ™˜๊ฒฝ์„ ์ ๊ฒ€ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
  3. ๋ฐฑ์—… ํŒŒ๊ดด โ€” ์„€๋„ ๋ณต์‚ฌ๋ณธ๊ณผ ๋ณต๊ตฌ ์ง€์ ์„ ์ง€์šฐ๊ณ , ๋ฐฑ์—… ์„œ๋น„์Šค์™€ DB ์„œ๋น„์Šค๋ฅผ ๋ฉˆ์ถ˜๋‹ค. ์ด ๋‹จ๊ณ„๊ฐ€ ๋ณต๊ตฌ ์‹œ๊ฐ„์„ ๋ช‡ ๋ฐฐ๋กœ ๋Š˜๋ฆฐ๋‹ค.
  4. ํ‘œ์  ์—ด๊ฑฐ โ€” ๋กœ์ปฌ ๋””์Šคํฌ์™€ ๋„คํŠธ์›Œํฌ ๊ณต์œ ๋ฅผ ํ›‘์–ด ๋ฌธ์„œยทDBยท๊ฐ€์ƒ๋””์Šคํฌ ํŒŒ์ผ์„ ๊ณ ๋ฅธ๋‹ค. ํŒŒ์ผ ์ž ๊ธˆ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด Windows Restart Manager API๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ ์ ์œ ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐพ์•„ ์ข…๋ฃŒ์‹œํ‚ค๋Š” ๊ธฐ๋ฒ•๋„ ์‚ฌ์šฉ๋œ๋‹ค.
  5. ์œ ์ถœ(์„ ํƒ) โ€” StealBit๋ฅ˜ ๋„๊ตฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒญํฌ ๋‹จ์œ„๋กœ ์™ธ๋ถ€์— ์ „์†กํ•˜๊ณ  ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๋‚จ๊ธด๋‹ค. ํ˜‘๋ฐ•์˜ '๋‘ ๋ฒˆ์งธ ์นด๋“œ'๋ฅผ ๋จผ์ € ํ™•๋ณดํ•˜๋Š” ๋‹จ๊ณ„๋‹ค.
  6. ์•”ํ˜ธํ™” โ€” ํŒŒ์ผ๋งˆ๋‹ค ์ƒˆ AES ํ‚ค๋ฅผ ์ƒ์„ฑํ•ด ์•ž๋ถ€๋ถ„์„ ์•”ํ˜ธํ™”ํ•˜๊ณ , ๊ทธ ํ‚ค๋ฅผ ๋‚ด์žฅ RSA ๊ณต๊ฐœํ‚ค๋กœ ๋ด‰์ธํ•ด ํŒŒ์ผ ๋์— ๋ถ™์ธ๋‹ค.
  7. ํ˜‘๋ฐ• ํ‘œ๋ฉดํ™” โ€” ํ™•์žฅ์ž ๋ณ€๊ฒฝ, ๋žœ์„ฌ๋…ธํŠธ ์ƒ์„ฑ, ๋ฐ”ํƒ•ํ™”๋ฉดยท์•„์ด์ฝ˜ ๊ต์ฒด, ํ”„๋ฆฐํ„ฐ ์ถœ๋ ฅ, ์œ ์ถœ ์‚ฌ์ดํŠธ ๋“ฑ๋ก.
  8. ํ˜‘์ƒ โ€” ๋‹คํฌ์›น ํ˜‘์ƒ ์ฑ„ํŒ…์—์„œ ๊ธˆ์•กยท๊ธฐํ•œยท๋ฐ์ดํ„ฐ ์‚ญ์ œ ์•ฝ์†์„ ํ˜‘์˜ํ•œ๋‹ค. ์‹ค์ œ๋กœ๋Š” ๋ˆ์„ ๋ฐ›์•„๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ์ง€ ์•Š์€ ์‚ฌ๋ก€๊ฐ€ ๋ฒ•์ง‘ํ–‰ ์••์ˆ˜ ์ž๋ฃŒ์—์„œ ํ™•์ธ๋๋‹ค.

3.2 ์•”ํ˜ธํ™” ๊ตฌ์กฐ โ€” ์™œ '์—ด์‡ ๋ฅผ ๋ด‰์ธ'ํ•˜๋Š”๊ฐ€

LockBit ๊ณ„์—ด์€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•”ํ˜ธํ™”๋ฅผ ์“ด๋‹ค. ๋Œ€์นญํ‚ค(AES)๋Š” ๋น ๋ฅด์ง€๋งŒ ํ‚ค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์–ด๋ ต๊ณ , ๊ณต๊ฐœํ‚ค(RSA)๋Š” ์•ˆ์ „ํ•˜์ง€๋งŒ ๋А๋ฆฌ๋‹ค. ๊ทธ๋ž˜์„œ ํŒŒ์ผ๋งˆ๋‹ค AES ํ‚ค๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ , ๊ทธ AES ํ‚ค๋งŒ RSA ๊ณต๊ฐœํ‚ค๋กœ ๊ฐ์‹ผ๋‹ค. ๊ณต๊ฐœํ‚ค๋Š” ์•…์„ฑ์ฝ”๋“œ ์•ˆ์— ๋“ค์–ด ์žˆ์œผ๋ฏ€๋กœ ๊ณต๊ฒฉ์ž๋Š” ๊ฐœ์ธํ‚ค ์—†์ด๋„ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”ผํ•ด์ž๋Š” ๊ฐœ์ธํ‚ค ์—†์ด๋Š” ์–ด๋–ค ํŒŒ์ผ๋„ ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๋‹ค. ํŒŒ์ผ๋งˆ๋‹ค ํ‚ค๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ์ผ๋ถ€ ํŒŒ์ผ์˜ ํ‚ค๊ฐ€ ๋…ธ์ถœ๋ผ๋„ ์ „์ฒด๊ฐ€ ๋ฌด๋„ˆ์ง€์ง€ ์•Š๋Š”๋‹ค.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ํŒŒ์ผ F โ”€โ”€โ–บ AES-256 ํ‚ค K_F (ํŒŒ์ผ๋งˆ๋‹ค ์ƒˆ๋กœ ์ƒ์„ฑ)              โ”‚
โ”‚              โ”‚                                              โ”‚
โ”‚              โ”œโ”€โ–บ F์˜ ์•ž๋ถ€๋ถ„(์ˆ˜ KB)๋งŒ AES๋กœ ์•”ํ˜ธํ™”  โ”€โ”€โ–บ C_F  โ”‚
โ”‚              โ”‚                                              โ”‚
โ”‚              โ””โ”€โ–บ K_F๋ฅผ ๋‚ด์žฅ RSA-2048 ๊ณต๊ฐœํ‚ค๋กœ ๋ด‰์ธ โ”€โ”€โ–บ E(K_F)โ”‚
โ”‚                                                             โ”‚
โ”‚  ์ €์žฅ ํ˜•์‹: [marker][nonce][C_F][E(K_F)] + [์•”ํ˜ธํ™” ์•ˆ ํ•œ ๋‚˜๋จธ์ง€] โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  ๋ณต๊ตฌ ์กฐ๊ฑด: RSA ๊ฐœ์ธํ‚ค ๋ณด์œ  (ํ”ผํ•ด์ž์—๊ฒŒ๋Š” ์—†์Œ)
  ์†๋„ ๋น„๊ฒฐ: ํŒŒ์ผ ์ „์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์•ž๋ถ€๋ถ„๋งŒ ์•”ํ˜ธํ™” + ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ

'๋ถ€๋ถ„ ์•”ํ˜ธํ™”'๋Š” ์„ฑ๋Šฅ๊ณผ ํƒ์ง€ ํšŒํ”ผ๋ฅผ ๋™์‹œ์— ๋…ธ๋ฆฐ ์„ค๊ณ„๋‹ค. ์ˆ˜ GB์งœ๋ฆฌ DB ํŒŒ์ผ์„ ์ „๋ถ€ ์•”ํ˜ธํ™”ํ•˜๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  I/O ๊ธ‰์ฆ์œผ๋กœ EDR์— ๊ฑธ๋ฆฌ๊ธฐ ์‰ฝ๋‹ค. ์•ž๋ถ€๋ถ„ ์ˆ˜ KB๋งŒ ์ž ๊ฐ€๋„ ํŒŒ์ผ์€ ์—ด๋ฆฌ์ง€ ์•Š๊ณ , ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” '์ „๋ถ€ ์ž ๊ฒผ๋‹ค'๊ณ  ๋А๋‚€๋‹ค. ๊ณต๊ฐœ ๋ถ„์„์—์„œ๋Š” ํŒŒ์ผ ์ข…๋ฅ˜ยทํฌ๊ธฐ์— ๋”ฐ๋ผ ์•”ํ˜ธํ™” ๋ฒ”์œ„๋ฅผ ๋‹ฌ๋ฆฌํ•˜๋Š” ์ตœ์ ํ™”๊ฐ€ ๋ณด๊ณ ๋๋‹ค.

3.3 StealBit๊ณผ ์ด์ค‘ ๊ฐˆ์ทจ โ€” '์ž ๊ทธ๊ธฐ ์ „์— ํ›”์นœ๋‹ค'

LockBit 2.0๋ถ€ํ„ฐ ๊ธฐ๋ณธ ํƒ‘์žฌ๋œ StealBit์€ ํ‘œ์  ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ํŒŒ์ผ์„ ๋ชจ์•„ ์™ธ๋ถ€๋กœ ๋นผ๋‚ด๋Š” ์ „์šฉ ๋„๊ตฌ๋‹ค. ์•”ํ˜ธํ™”๋Š” '๊ฐ€์šฉ์„ฑ'์„ ์ธ์งˆ๋กœ ์žก๊ณ , ์œ ์ถœ์€ '๊ธฐ๋ฐ€์„ฑ'์„ ์ธ์งˆ๋กœ ์žก๋Š”๋‹ค. ํ”ผํ•ด ์กฐ์ง์ด ๋ฐฑ์—…์œผ๋กœ ์‹œ์Šคํ…œ์„ ์‚ด๋ ค๋„, ์œ ์ถœ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต๊ฐœ๋  ์œ„ํ—˜์€ ๋‚จ๋Š”๋‹ค. ์ด ๊ตฌ์กฐ๊ฐ€ ๋ชธ๊ฐ’ ์ง€๋ถˆ๋ฅ ์„ ๋Œ์–ด์˜ฌ๋ ธ๊ณ , ๋‹ค๋ฅธ ๋žœ์„ฌ์›จ์–ด ์กฐ์ง๋“ค์ด ๋„ˆ๋„๋‚˜๋„ ๋”ฐ๋ผ ํ–ˆ๋‹ค.

์œ ์ถœ ์‚ฌ์ดํŠธ๋Š” ๋‹จ์ˆœํ•œ ๊ฒŒ์‹œํŒ์ด ์•„๋‹ˆ๋ผ ํ‰ํŒยท์••๋ฐ• ์ธํ”„๋ผ๋‹ค. ํ”ผํ•ด ์กฐ์ง๋ช…, ์œ ์ถœ๋Ÿ‰, ์นด์šดํŠธ๋‹ค์šด, ์ผ๋ถ€ ์ƒ˜ํ”Œ ํŒŒ์ผ์„ ๊ณต๊ฐœํ•ด "๋ˆ์„ ์•ˆ ๋‚ด๋ฉด ๋‹ค์Œ์€ ์ „์ฒด ๊ณต๊ฐœ"๋ผ๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค. ํ˜‘์ƒ ์ฑ„ํŒ…์—์„œ๋Š” ๊ธฐํ•œ ์—ฐ์žฅ๊ณผ ๊ธˆ์•ก ํ• ์ธ์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์‹ฌ๋ฆฌ์ „์„ ๊ฑด๋‹ค. ๋ณ‘์›์„ ๊ณต๊ฒฉํ–ˆ๋‹ค๊ฐ€ ์—ฌ๋ก ์ด ๋‚˜๋น ์ง€์ž ์‚ฌ๊ณผํ•˜๊ณ  ๋ฌด๋ฃŒ ๋ณตํ˜ธํ™” ๋„๊ตฌ๋ฅผ ์ค€ ์‚ฌ๋ก€(SickKids)๋Š” ์ด 'ํ‰ํŒ ๊ด€๋ฆฌ'๊ฐ€ ๋ฒ”์ฃ„ ์กฐ์ง์—๋„ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค.

3.4 ํฌ๋กœ์Šค ํ”Œ๋žซํผ โ€” ESXi์™€ LockBit 5.0

2021๋…„ 10์›”์˜ Linux-ESXi Locker๋Š” ๋žœ์„ฌ์›จ์–ด์˜ ํ‘œ์ ์ด PC์—์„œ ๊ฐ€์ƒํ™” ํ˜ธ์ŠคํŠธ๋กœ ์˜ฎ๊ฒจ๊ฐ€๋Š” ๋ถ„๊ธฐ์ ์ด์—ˆ๋‹ค. ESXi ํ˜ธ์ŠคํŠธ๋ฅผ ์ž ๊ทธ๋ฉด ๊ทธ ์œ„์˜ ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ ๊ฐœ ๊ฐ€์ƒ๋จธ์‹ ์ด ํ•œ๊บผ๋ฒˆ์— ๋ฉˆ์ถ˜๋‹ค. ๋ฐฑ์—… VM๊นŒ์ง€ ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€์— ์žˆ์œผ๋ฉด ๋ณต๊ตฌ๊ฐ€ ์‚ฌ์‹ค์ƒ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. 2025๋…„ 9์›”์˜ LockBit 5.0์€ WindowsยทLinuxยทESXi์šฉ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ฐ๊ฐ ๊ฐ–์ถ”๊ณ , ๋กœ๊ทธ ์‚ญ์ œยทETW ํŒจ์นญยท๋‚œ๋…ํ™”๋ฅผ ๊ฐ•ํ™”ํ–ˆ์œผ๋ฉฐ XChaCha20 + Curve25519 ์•”ํ˜ธํ™” ๋ฃจํ‹ด์„ ๋„์ž…ํ•œ ๊ฒƒ์œผ๋กœ ๋ถ„์„๋๋‹ค. ์ด๋Š” 2024๋…„ ์••์ˆ˜ ์ดํ›„์—๋„ ๊ฐœ๋ฐœ์ด ๋ฉˆ์ถ”์ง€ ์•Š์•˜์Œ์„ ๋ณด์—ฌ์ค€๋‹ค.

3.5 ์™œ '์‚ฐ์—…'์ด ๋๋‚˜ โ€” ๋นŒ๋” ์œ ์ถœ์˜ ์žฅ๊ธฐ ํšจ๊ณผ

2022๋…„ 9์›” ์œ ์ถœ๋œ LockBit 3.0 ๋นŒ๋”๋Š” ์ดํ›„ ์ƒํƒœ๊ณ„์˜ '๊ณตํ†ต ์กฐ์ƒ'์ด ๋๋‹ค. 2025๋…„ ๋ฐœ๊ฒฌ๋œ SuperBlack์€ LockBit Black ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋žœ๋”ฉ์„ ์ง€์šฐ๊ณ , ๋žœ์„ฌ๋…ธํŠธ๋ฅผ ๋ฐ”๊พธ๊ณ , ์ž์ฒด ์œ ์ถœ ๋ชจ๋“ˆ์„ ๋ถ™์ธ ๋ณ€์ข…์ด๋‹ค. ๋ฒ•์ง‘ํ–‰์ด LockBit ์ธํ”„๋ผ๋ฅผ ์••์ˆ˜ํ•œ ๋’ค์—๋„ ์œ ์ถœ๋œ ๋นŒ๋”๋ฅผ ๊ฐ€์ง„ ๋ฒ”์ฃ„์ž๋“ค์€ ๊ณ„์† ๊ณต๊ฒฉ์„ ์ด์–ด๊ฐ”๊ณ , ์ผ๋ถ€๋Š” AkiraยทRansomHub ๊ฐ™์€ ๊ฒฝ์Ÿ ์กฐ์ง์œผ๋กœ ์ด๋™ํ–ˆ๋‹ค. ํ•œ ์กฐ์ง์„ ์—†์• ๋„ ๋„๊ตฌ๊ฐ€ ๋‚จ์œผ๋ฉด ๋ฒ”์ฃ„๋Š” ๊ณ„์†๋œ๋‹ค๋Š” ๊ฒƒ์ด ์ด ์‚ฌ๊ฑด์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ตํ›ˆ์ด๋‹ค.

4. ํ”ผํ•ด ๊ทœ๋ชจ/์˜ํ–ฅ โ€” ์ˆซ์ž๋กœ ๋ณด๋Š” LockBit

์ง€ํ‘œ์ˆ˜์น˜์ถœ์ฒ˜/๊ธฐ์ค€
๋ฏธ๊ตญ ๋‚ด ๊ณต๊ฒฉ ๊ฑด์ˆ˜์•ฝ 1,700๊ฑด2020.01โ€“2023.05, ๋ฏธ ์ •๋ถ€ ํ•ฉ๋™ ์„ฑ๋ช…
๋ฏธ๊ตญ ๋‚ด ์ง€๋ถˆ๋œ ๋ชธ๊ฐ’์•ฝ 9,100๋งŒ ๋‹ฌ๋Ÿฌ๊ฐ™์€ ๊ธฐ๊ฐ„
์„ธ๊ณ„ ๋žœ์„ฌ์›จ์–ด ์‚ฌ๊ฑด ์ ์œ ์œจ์•ฝ 44%2023๋…„ ์ดˆ ์ถ”์ •
ํ™•์ธ๋œ ์ œํœด์‚ฌ188๋ช… ์ด์ƒOperation Cronos ์••์ˆ˜ ์ž๋ฃŒ
์••์ˆ˜๋œ ๋น„ํŠธ์ฝ”์ธ ์ฃผ์†Œ30,000๊ฐœ / 2,200 BTC(์•ฝ 1.12์–ต ๋‹ฌ๋Ÿฌ)Operation Cronos
2024๋…„ FBI ์ง‘๊ณ„๋ฏธ๊ตญ ํ•ต์‹ฌ ์ธํ”„๋ผ ๋Œ€์ƒ ๊ฐ€์žฅ ๋งŽ์ด ์‹ ๊ณ ๋œ ๋žœ์„ฌ์›จ์–ดFBI 2024 Internet Crime Report
Cisco Talos ์ ์œ ์œจ์ „์ฒด ๊ณต๊ฒฉ์˜ ์•ฝ 16%2024๋…„ ๋ถ„์„

๊ฐœ๋ณ„ ์‚ฌ๊ฑด์˜ ํŒŒ๊ธ‰๋ ฅ์€ ์ˆซ์ž๋ณด๋‹ค ํฌ๋‹ค. ICBC Financial Services(2023.11) ๊ณต๊ฒฉ์€ ๋ฏธ๊ตญ ๊ตญ์ฑ„ ์‹œ์žฅ์˜ ๊ฒฐ์ œ ํ๋ฆ„์„ ํ”๋“ค์–ด ๋‹น๊ตญ์ด ์ˆ˜๋™ ๊ฒฐ์ œ๋ฅผ ๊ฒ€ํ† ํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. Royal Mail(2023.1)์€ ํ•ด์™ธ ๋ฐฐ์†ก์ด ์ˆ˜ ์ฃผ๊ฐ„ ๋ง‰ํ˜”๊ณ , Boeing(2023.11)์€ ๋ถ€ํ’ˆยท์œ ํ†ต ๋ถ€๋ฌธ์ด ์˜ํ–ฅ์„ ๋ฐ›์•˜๋‹ค. Continental์€ 5,000๋งŒ ์œ ๋กœ, TSMC๋Š” 7,000๋งŒ ๋‹ฌ๋Ÿฌ์˜ ๋ชธ๊ฐ’ ์š”๊ตฌ๋ฅผ ๋ฐ›์•˜๊ณ , ๋‚˜๊ณ ์•ผ ํ•ญ๋งŒ(2023.7)์€ ์ปจํ…Œ์ด๋„ˆ ํ•˜์—ญ์ด ์ค‘๋‹จ๋๋‹ค. ์ž๊ทธ๋ ˆ๋ธŒ ๋Œ€ํ•™๋ณ‘์›(2024.6)์€ "์ข…์ด์™€ ์—ฐํ•„๋กœ 50๋…„ ์ „์œผ๋กœ ๋Œ์•„๊ฐ”๋‹ค"๊ณ  ํ‘œํ˜„ํ•  ์ •๋„๋กœ ์ง„๋ฃŒ๊ฐ€ ๋งˆ๋น„๋๋‹ค. ๋ณ‘์›ยทํ•™๊ตยท์ง€๋ฐฉ์ •๋ถ€์ฒ˜๋Ÿผ ๋‹ค์šดํƒ€์ž„์ด ์ƒ๋ช…ยท์•ˆ์ „๊ณผ ์ง๊ฒฐ๋˜๋Š” ์กฐ์ง์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ํ‘œ์ ์ด ๋๋‹ค.

5. PoC โ€” ๋™์ž‘ ์›๋ฆฌ๋ฅผ '์šฐ๋ฆฌ ์‹ค์Šต์‹ค'์—์„œ ์žฌํ˜„ํ•˜๊ธฐ

โš ๏ธ ์•ˆ์ „ ๊ทœ์น™
์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ต์œก์šฉ ์ถ•์†Œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ LockBit ํŽ˜์ด๋กœ๋“œยท๋นŒ๋”ยท์œ ์ถœ ๋„๊ตฌ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹ค์Šต์€ ์ธํ„ฐ๋„ท์ด ์ฐจ๋‹จ๋œ ๊ฒฉ๋ฆฌ VM์˜ /tmp/lockbit_lab ์•ˆ์—์„œ, ๋ณธ์ธ์ด ๋งŒ๋“  ๊ฐ€์ƒ ํŒŒ์ผ์—๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”ยท์‚ญ์ œยทํ™•์‚ฐ ๊ธฐ๋Šฅ์€ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์‹ค์ œ ์‹œ์Šคํ…œยท๋„คํŠธ์›Œํฌยทํƒ€์ธ ์†Œ์œ  ์ž์‚ฐ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๋ฒ•์ž…๋‹ˆ๋‹ค.

PoC 1 โ€” ๋ถ€๋ถ„ ์•”ํ˜ธํ™” + RSA ํ‚ค ๋ด‰์ธ + ๋ณต์› ์™•๋ณต

ํŒŒ์ผ๋งˆ๋‹ค AES-256 ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ  ์•ž 4KB๋งŒ ์•”ํ˜ธํ™”ํ•œ ๋’ค, ๊ทธ ํ‚ค๋ฅผ RSA-2048 ๊ณต๊ฐœํ‚ค๋กœ ๋ด‰์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธํ‚ค๊ฐ€ ์žˆ์–ด์•ผ๋งŒ ์›๋ณธ ๋ณต์›์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์™•๋ณต ๊ฒ€์ฆ์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

# lab_partial_crypto.py โ€” ๋กœ์ปฌ ์ƒŒ๋“œ๋ฐ•์Šค ์ „์šฉ (๋ฐœ์ทŒ)
from pathlib import Path
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes
import hashlib, secrets

LAB  = Path("/tmp/lockbit_lab/victim")
HEAD = 4096          # ์‹ค์ œ '๋ถ€๋ถ„ ์•”ํ˜ธํ™”'์˜ ์ถ•์†Œ ๋ชจ๋ธ
MARK = b"MOCKLB1"

def encrypt_file(path, key):
    data = path.read_bytes()
    head, tail = data[:HEAD], data[HEAD:]
    nonce = secrets.token_bytes(12)
    ct = AESGCM(key).encrypt(nonce, head, None)
    path.write_bytes(MARK + nonce + ct + tail)

def decrypt_file(path, key):
    blob  = path.read_bytes()
    nonce = blob[len(MARK):len(MARK) + 12]
    ct    = blob[len(MARK) + 12:]
    enc   = HEAD + 16                      # GCM ์ธ์ฆ ํƒœ๊ทธ ํฌํ•จ
    return AESGCM(key).decrypt(nonce, ct[:enc], None) + ct[enc:]

priv = rsa.generate_private_key(public_exponent=65537, key_size=2048)
pub  = priv.public_key()
sealed = {}
for p in sorted(LAB.iterdir()):
    key = AESGCM.generate_key(bit_length=256)
    sealed[p.name] = pub.encrypt(key, padding.OAEP(
        mgf=padding.MGF1(hashes.SHA256()),
        algorithm=hashes.SHA256(), label=None))
    encrypt_file(p, key)
    print(f"[enc] {p.name:14s} {p.stat().st_size:6d}B  sealed={len(sealed[p.name])}B")

# ๊ณต๊ฐœํ‚ค๋งŒ์œผ๋กœ๋Š” AES ํ‚ค๋ฅผ ํ’€ ์ˆ˜ ์—†๋‹ค โ†’ ๊ฐœ์ธํ‚ค ์—†์ด๋Š” ๋ณต๊ตฌ ๋ถˆ๊ฐ€
# (๊ฐœ์ธํ‚ค ๋ณด์œ ์ž์ธ '์šด์˜์ž'๋งŒ ๋ณต์› ๊ฐ€๋Šฅ)
for p in sorted(LAB.iterdir()):
    key = priv.decrypt(sealed[p.name], padding.OAEP(
        mgf=padding.MGF1(hashes.SHA256()),
        algorithm=hashes.SHA256(), label=None))
    p.write_bytes(decrypt_file(p, key))
    print(f"[dec] {p.name:14s} restored=True")

์‹คํ–‰ ๊ฒฐ๊ณผ (์‹ค์ œ ๋กœ์ปฌ ์‹คํ–‰):

[enc] db_dump.sql    size= 12035  sealed_key=256B
[enc] notes.txt      size=  9035  sealed_key=256B
[enc] report.docx    size=  5035  sealed_key=256B
[key ] ๊ณต๊ฐœํ‚ค ๊ฐ์ฒด์—๋Š” decrypt()๊ฐ€ ์—†๋‹ค โ†’ ๋ด‰์ธ ํ•ด์ œ ๋ถˆ๊ฐ€ (= ๊ฐœ์ธํ‚ค ์—†์ด๋Š” ๋ณต๊ตฌ ๋ถˆ๊ฐ€)
[note] ๊ฐ€์ƒ์˜ ๋žœ์„ฌ๋…ธํŠธ: 'lockbit_readme.txt' (์—ฌ๊ธฐ์„œ๋Š” ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)
[dec] db_dump.sql    restored=True sha256=14fc7d0614ee4c4dโ€ฆ
[dec] notes.txt      restored=True sha256=78bd367073786b59โ€ฆ
[dec] report.docx    restored=True sha256=0786f809f430e419โ€ฆ
[done] ๋ถ€๋ถ„ ์•”ํ˜ธํ™” โ†’ ํ‚ค ๋ด‰์ธ โ†’ ๊ฐœ์ธํ‚ค ๋ณต์› ์™•๋ณต ๊ฒ€์ฆ ์™„๋ฃŒ (์‹ค์Šต์‹ค ๋ฐ– ์‹คํ–‰ ๊ธˆ์ง€)

ํ•ต์‹ฌ์€ ์•”ํ˜ธ๋ฌธ ์˜†์— ๋ถ™์€ ๋ด‰์ธ ํ‚ค์ž…๋‹ˆ๋‹ค. ํ”ผํ•ด์ž๋Š” ์•”ํ˜ธ๋ฌธ๊ณผ ๋ด‰์ธ ํ‚ค๋ฅผ ๋‘˜ ๋‹ค ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ, ๋ด‰์ธ์„ ํ’€ RSA ๊ฐœ์ธํ‚ค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ๊ณ ์—์„œ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋Š” โ‘  ๊ณต๊ฒฉ์ž๊ฐ€ ๊ฐœ์ธํ‚ค๋ฅผ ๋„˜๊ฒจ์ค€ ๊ฒฝ์šฐ, โ‘ก ๋ฒ•์ง‘ํ–‰์ด ์ธํ”„๋ผ์—์„œ ํ‚ค๋ฅผ ํ™•๋ณดํ•œ ๊ฒฝ์šฐ(Operation Cronos), โ‘ข ๊ตฌํ˜„ ๊ฒฐํ•จ์ด๋‚˜ ํ‚ค ์žฌ์‚ฌ์šฉ์œผ๋กœ ํ‚ค๊ฐ€ ๋…ธ์ถœ๋œ ๊ฒฝ์šฐ๋ฟ์ž…๋‹ˆ๋‹ค.

PoC 2 โ€” RaaS '๋นŒ๋” ์„ค์ •'์ด ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ๋“ค

๋นŒ๋”๋Š” ์ฝ”๋“œ๋ฅผ ์ƒˆ๋กœ ์งœ๋Š” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ, ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์•”ํ˜ธํ™” ์—”์ง„์— ์„ค์ •๊ฐ’์„ ์ฃผ์ž…ํ•ด ๋ณ€์ข…์„ ์ฐ์–ด๋‚ด๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ณต๊ฐœ ๋ถ„์„์—์„œ ์–ธ๊ธ‰๋œ ํ•ญ๋ชฉ์„ ์ถ•์†Œ ์žฌ๊ตฌ์„ฑํ•œ ์ฝ๊ธฐ ์ „์šฉ ๊ฒ€์ฆ๊ธฐ์ž…๋‹ˆ๋‹ค.

# lab_builder_config.py โ€” ์„ค์ • ๊ฒ€์ฆ๋งŒ ์ˆ˜ํ–‰ (์•”ํ˜ธํ™”/ํ™•์‚ฐ/์‚ญ์ œ ๋ฏธ๊ตฌํ˜„)
CONFIG = {
    "extension": ".lockbit",
    "ransom_note": "lockbit_readme.txt",
    "wallpaper": True,
    "self_delete": True,
    "encrypt_mode": "partial",      # full | partial | fast
    "partial_bytes": 4096,
    "threads": 8,
    "spread_gpo": False,            # ๊ทธ๋ฃน์ •์ฑ…์„ ํ†ตํ•œ ๋„๋ฉ”์ธ ํ™•์‚ฐ
    "kill_services": ["backup", "sql"],
    "exfil": {"tool": "stealbit_like", "chunk_mb": 32},
}

DANGEROUS = {
    "spread_gpo":    "๋„๋ฉ”์ธ ์ „์ฒด๋กœ ํ™•์‚ฐ (GPO)",
    "self_delete":   "์‹คํ–‰ ํ”์  ์ž๊ธฐ ์‚ญ์ œ",
    "kill_services": "๋ฐฑ์—…/DB ์„œ๋น„์Šค ์ค‘์ง€ โ†’ ๋ณต๊ตฌ ์ง€์—ฐ",
    "wallpaper":     "๋ฐ”ํƒ•ํ™”๋ฉด ํ˜‘๋ฐ• ๋ฉ”์‹œ์ง€",
}

for k in ("extension", "ransom_note", "encrypt_mode", "partial_bytes", "threads"):
    print(f"  {k:14s}: {CONFIG.get(k)}")
print("  ํƒ์ง€ ํšŒํ”ผ/ํ™•์‚ฐ ์Šค์œ„์น˜:")
for k, why in DANGEROUS.items():
    if CONFIG.get(k):
        print(f"    - {k:14s} โ†’ {why}")
== ๋นŒ๋” ์„ค์ • dry-run ==
  extension     : .lockbit
  ransom_note   : lockbit_readme.txt
  encrypt_mode  : partial
  partial_bytes : 4096
  threads       : 8
  ํƒ์ง€ ํšŒํ”ผ/ํ™•์‚ฐ ์Šค์œ„์น˜:
    - self_delete    โ†’ ์‹คํ–‰ ํ”์  ์ž๊ธฐ ์‚ญ์ œ
    - kill_services  โ†’ ๋ฐฑ์—…/DB ์„œ๋น„์Šค ์ค‘์ง€ โ†’ ๋ณต๊ตฌ ์ง€์—ฐ
    - wallpaper      โ†’ ๋ฐ”ํƒ•ํ™”๋ฉด ํ˜‘๋ฐ• ๋ฉ”์‹œ์ง€
[!] ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ์„ค์ •์„ '์ฝ๊ธฐ'๋งŒ ํ•œ๋‹ค. ์•”ํ˜ธํ™”ยทํ™•์‚ฐยท์‚ญ์ œ ๋™์ž‘์€ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์Œ.

์ด ์ž‘์€ ์„ค์ • ํŒŒ์ผ์ด LockBit์˜ '์ œํ’ˆํ™”'๋ฅผ ์ƒ์ง•ํ•ฉ๋‹ˆ๋‹ค. ํ™•์žฅ์žยท๋…ธํŠธ ๋ฌธ๊ตฌยท์•”ํ˜ธํ™” ๋ฒ”์œ„ยท์Šค๋ ˆ๋“œ ์ˆ˜ยทGPO ํ™•์‚ฐ ์—ฌ๋ถ€ยท์ž๊ธฐ ์‚ญ์ œ ์—ฌ๋ถ€๋ฅผ ๋ฐ”๊พธ๋ฉด ๊ฐ™์€ ์—”์ง„์ด ์ „ํ˜€ ๋‹ค๋ฅธ ๋ธŒ๋žœ๋“œ์˜ ๋žœ์„ฌ์›จ์–ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. 2022๋…„ ๋นŒ๋” ์œ ์ถœ์ด ์œ„ํ—˜ํ–ˆ๋˜ ์ด์œ ๋„ ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ ํ•˜๋‚˜๊ฐ€ ์ˆ˜์‹ญ ๊ฐœ์˜ ๋ฒ”์ฃ„ ๋ธŒ๋žœ๋“œ๋กœ ๋ณต์ œ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

PoC 3 โ€” StealBit๋ฅ˜ '์ฒญํฌ ๋ถ„ํ•  + ๋งค๋‹ˆํŽ˜์ŠคํŠธ' ์œ ์ถœ ์ค€๋น„

์ด์ค‘ ๊ฐˆ์ทจ์˜ ์ฒซ ๋‹จ๊ณ„์ธ ์œ ์ถœ ์Šคํ…Œ์ด์ง•์„ ๋ชจ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ „์†ก์€ ํ•˜์ง€ ์•Š๊ณ , ๋กœ์ปฌ์— ์กฐ๊ฐ๊ณผ ํ•ด์‹œ ๋ชฉ๋ก๋งŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ๊ณ ์—์„œ๋Š” ์ด ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ "๋ฌด์—‡์„ ์–ผ๋งˆ๋‚˜ ํ›”์ณค๋Š”์ง€"๋ฅผ ํ˜‘์ƒ ํ…Œ์ด๋ธ”์— ์˜ฌ๋ฆฌ๋Š” ์ฆ๊ฑฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

# lab_exfil_manifest.py โ€” ์ „์†ก ๋‹จ๊ณ„ ์—†์Œ (dry-run)
from pathlib import Path
import hashlib, json

SRC, STAGE = Path("/tmp/lockbit_lab/victim"), Path("/tmp/lockbit_lab/stage")
CHUNK = 4 * 1024        # ์‹ค์ œ ๋„๊ตฌ๋Š” ์ˆ˜ MB~์ˆ˜์‹ญ MB ๋‹จ์œ„

manifest = []
for f in sorted(SRC.glob("*")):
    data  = f.read_bytes()
    parts = [data[i:i + CHUNK] for i in range(0, len(data), CHUNK)]
    for idx, part in enumerate(parts):
        name = f"{f.name}.part{idx:03d}"
        (STAGE / name).write_bytes(part)
        manifest.append({"file": f.name, "part": name,
                         "bytes": len(part),
                         "sha256": hashlib.sha256(part).hexdigest()[:16]})
    print(f"[stage] {f.name:14s} {len(data):6d}B โ†’ {len(parts)} chunk(s)")

(STAGE / "manifest.json").write_text(json.dumps(manifest, indent=2))
print(f"[stage] manifest.json: {len(manifest)}๊ฐœ ์กฐ๊ฐ")
print("[dry-run] ์ „์†ก ๋‹จ๊ณ„ ์ƒ๋žต โ€” ์‹ค์ œ ์œ ์ถœ์€ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.")
[stage] db_dump.sql     12000B โ†’ 3 chunk(s)
[stage] notes.txt        9000B โ†’ 3 chunk(s)
[stage] report.docx      5000B โ†’ 2 chunk(s)
[stage] manifest.json: 8๊ฐœ ์กฐ๊ฐ, ์ด 26000B
[dry-run] ์ „์†ก ๋‹จ๊ณ„ ์ƒ๋žต โ€” ์‹ค์ œ ์œ ์ถœ์€ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์‹ค์ œ StealBit์€ ์••์ถ•ยท๋ถ„ํ• ยท์žฌ์‹œ๋„ยท๋ณ‘๋ ฌ ์ „์†ก์„ ์ž๋™ํ™”ํ•˜๊ณ , ์ „์†ก์ด ๋๋‚˜๋ฉด ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ํ˜‘์ƒ ์„œ๋ฒ„์— ์˜ฌ๋ฆฐ๋‹ค. ๋ฐฉ์–ด์ž ์ž…์žฅ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋Œ€๋Ÿ‰ ์—…๋กœ๋“œ์˜ ํ”์ ์ž…๋‹ˆ๋‹ค. ํ‰์†Œ๋ณด๋‹ค ํฐ ์•„์›ƒ๋ฐ”์šด๋“œ ์ „์†ก, ๋Šฆ์€ ์‹œ๊ฐ„์˜ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์—…๋กœ๋“œ, RMM ๋„๊ตฌ์˜ ๋น„์ •์ƒ ์‚ฌ์šฉ์€ ์•”ํ˜ธํ™” ์ด์ „์— ์žก์„ ์ˆ˜ ์žˆ๋Š” ๋งˆ์ง€๋ง‰ ์‹ ํ˜ธ๋‹ค.

PoC 4 โ€” ๋ฐฉ์–ด: ํ–‰์œ„ ์ƒ๊ด€ ํƒ์ง€ (๋ชจ์˜ ๋กœ๊ทธ)

LockBit์€ ๋‹จ์ผ ํŒŒ์ผ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ณด๋‹ค ํ–‰์œ„์˜ ์ˆœ์„œ๋กœ ์žก๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—… ๋ฌด๋ ฅํ™” โ†’ ๋ณต๊ตฌ ๋น„ํ™œ์„ฑํ™” โ†’ ๋กœ๊ทธ ์‚ญ์ œ โ†’ ๋Œ€๋Ÿ‰ ํ™•์žฅ์ž ๋ณ€๊ฒฝ โ†’ ๋žœ์„ฌ๋…ธํŠธ ์ƒ์„ฑ์ด ์งง์€ ์‹œ๊ฐ„์— ์ด์–ด์ง€๋ฉด ์ ์ˆ˜๋ฅผ ๋ˆ„์ ํ•ด ๊ฒฝ๋ณดํ•ฉ๋‹ˆ๋‹ค.

# lab_detect_lockbit.py โ€” ๋ชจ์˜ EDR ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ƒ๊ด€ ํƒ์ง€ (๋ฐœ์ทŒ)
EVENTS = [
    {"t": "...21:01:02", "host": "LAB-FS01", "event": "process",
     "cmd": r"C:\Windows\System32\vssadmin.exe delete shadows /all /quiet"},
    {"t": "...21:01:07", "host": "LAB-FS01", "event": "process",
     "cmd": r"bcdedit /set {default} recoveryenabled No"},
    {"t": "...21:01:12", "host": "LAB-FS01", "event": "process",
     "cmd": r"wevtutil cl System"},
    {"t": "...21:01:30", "host": "LAB-FS01", "event": "file_rename",
     "count": 412, "ext": ".lockbit"},
    {"t": "...21:01:33", "host": "LAB-FS01", "event": "file_create",
     "path": r"D:\share\lockbit_readme.txt"},
    {"t": "...21:02:10", "host": "LAB-DC01", "event": "process",
     "cmd": r"PsExec.exe \\LAB-FS02 -s cmd.exe /c lockbit.exe"},
]

RULES = [
    ("๋ฐฑ์—… ๋ฌด๋ ฅํ™”",     lambda e: "vssadmin" in e.get("cmd","") and "delete shadows" in e.get("cmd",""), 40),
    ("๋ณต๊ตฌ ๋น„ํ™œ์„ฑํ™”",   lambda e: "recoveryenabled" in e.get("cmd","").lower(), 25),
    ("๋กœ๊ทธ ์‚ญ์ œ",       lambda e: "wevtutil cl" in e.get("cmd","").lower(), 20),
    ("๋Œ€๋Ÿ‰ ํ™•์žฅ์ž ๋ณ€๊ฒฝ", lambda e: e.get("event")=="file_rename" and e.get("count",0) > 200, 35),
    ("๋žœ์„ฌ๋…ธํŠธ ์ƒ์„ฑ",   lambda e: "lockbit_readme" in e.get("path","").lower(), 40),
    ("์›๊ฒฉ ์‹คํ–‰(PsExec)", lambda e: "psexec" in e.get("cmd","").lower(), 20),
]

score = 0
for e in EVENTS:
    for name, test, weight in RULES:
        if test(e):
            print(f"[{e['t']}] {e['host']:9s} {name} (+{weight})")
            score += weight
print("CRITICAL โ€” ์ฆ‰์‹œ ๊ฒฉ๋ฆฌ" if score >= 80 else "HIGH" if score >= 40 else "LOW")
== LockBit ํ–‰์œ„ ์ƒ๊ด€ ํƒ์ง€ (๋ชจ์˜ ๋กœ๊ทธ) ==
  [2026-10-17T21:01:02] LAB-FS01  ๋ฐฑ์—… ๋ฌด๋ ฅํ™” (+40)
  [2026-10-17T21:01:07] LAB-FS01  ๋ณต๊ตฌ ๋น„ํ™œ์„ฑํ™” (+25)
  [2026-10-17T21:01:12] LAB-FS01  ๋กœ๊ทธ ์‚ญ์ œ (+20)
  [2026-10-17T21:01:30] LAB-FS01  ๋Œ€๋Ÿ‰ ํ™•์žฅ์ž ๋ณ€๊ฒฝ (+35)
  [2026-10-17T21:01:33] LAB-FS01  ๋žœ์„ฌ๋…ธํŠธ ์ƒ์„ฑ (+40)
  [2026-10-17T21:02:10] LAB-DC01  ์›๊ฒฉ ์‹คํ–‰(PsExec) (+20)

  ๋ˆ„์  ์ ์ˆ˜: 180 โ†’ CRITICAL โ€” ์ฆ‰์‹œ ๊ฒฉ๋ฆฌ
  ๋Œ€์‘: ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ โ†’ ๋ฐฑ์—… ์˜คํ”„๋ผ์ธ ํ™•์ธ โ†’ ํฌ๋ Œ์‹ ์ด๋ฏธ์ง€ โ†’ ๋ณต๊ตฌ๋Š” ๊ฒ€์ฆ๋œ ๋ฐฑ์—…์—์„œ

์‹ค๋ฌด์—์„œ๋Š” ์ด ๋กœ์ง์„ SIEM ์ƒ๊ด€ ๊ทœ์น™์ด๋‚˜ EDR ํ–‰์œ„ ๋ฃฐ๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฐœ๋ณ„ ์ด๋ฒคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹œ๊ฐ„ ์ฐฝ(window)๊ณผ ํ˜ธ์ŠคํŠธ ๊ฐ„ ์—ฐ์‡„์ž…๋‹ˆ๋‹ค. vssadmin ํ•œ ๋ฒˆ์€ ์ •์ƒ ๊ด€๋ฆฌ ์ž‘์—…์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, 30์ดˆ ๋’ค .lockbit ๋Œ€๋Ÿ‰ ๋ณ€๊ฒฝ์ด ๋’ค๋”ฐ๋ฅด๋ฉด ์ด์•ผ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

6. Operation Cronos โ€” ์••์ˆ˜, ๊ธฐ์†Œ, ๊ทธ๋ฆฌ๊ณ  '์žฌ๊ฑด'

2024๋…„ 2์›” 19โ€“20์ผ, ์˜๊ตญ NCA๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์œ ๋Ÿฝ์—ฐํ•ฉ ์กฐ์ • ์•„๋ž˜ 11๊ฐœ๊ตญ ๋ฒ•์ง‘ํ–‰ ๊ธฐ๊ด€์ด LockBit์˜ ๋‹คํฌ์›น ์ธํ”„๋ผ๋ฅผ ์žฅ์•…ํ–ˆ๋‹ค. ์ด ์ž‘์ „์˜ ์ด๋ฆ„์ด Operation Cronos๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ƒ์ง•์ ์ด๋ฉด์„œ ์‹ค์งˆ์ ์ด์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ž‘์ „์€ '๋'์ด ์•„๋‹ˆ์—ˆ๋‹ค. ์••์ˆ˜ ์งํ›„์—๋„ LockBit ์•”ํ˜ธํ™”๋Š” ๊ณ„์† ๋Œ์•˜๊ณ , ์กฐ์ง์€ ์ƒˆ ์‚ฌ์ดํŠธ๋ฅผ ์—ด์–ด FBIยท๋ณ‘์›ยท์ง€๋ฐฉ์ •๋ถ€๋ฅผ ํ”ผํ•ด์ž ๋ชฉ๋ก์— ์˜ฌ๋ฆฌ๋ฉฐ ์žฌ๊ฑด์„ ๊ณผ์‹œํ–ˆ๋‹ค. 2025๋…„ 5์›”์—๋Š” LockBit ์ธํ”„๋ผ๊ฐ€ ๋‹ค์‹œ ํ•ดํ‚น๋‹นํ•ด ๋‚ด๋ถ€ ์ฑ„ํŒ…ยท์ง€๊ฐ‘ ์ฃผ์†Œยท์ œํœด์‚ฌ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋๊ณ , 9์›”์—๋Š” 5.0์ด ๋“ฑ์žฅํ–ˆ๋‹ค. ๋ฒ•์ง‘ํ–‰์€ ์กฐ์ง์„ ํฌ๊ฒŒ ํ”๋“ค์—ˆ์ง€๋งŒ, ์œ ์ถœ๋œ ๋นŒ๋”์™€ ๋ฒ”์ฃ„ ๊ฒฝ์ œ๋Š” ๋‚จ์•˜๋‹ค. ์ด ์‚ฌ๊ฑด์€ "ํ…Œ์ดํฌ๋‹ค์šด์€ ํ•„์š”์กฐ๊ฑด์ด์ง€ ์ถฉ๋ถ„์กฐ๊ฑด์ด ์•„๋‹ˆ๋‹ค"๋ผ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค.

7. ๋ฐฉ์–ด ๋ฐฉ๋ฒ•/๊ตํ›ˆ โ€” '๋ฌธ'๊ณผ '๋ฐฑ์—…'์„ ๋™์‹œ์— ์ง€์ผœ๋ผ

7.1 ์ดˆ๊ธฐ ์ ‘๊ทผ ์ฐจ๋‹จ

7.2 ๊ถŒํ•œยทํšก์  ์ด๋™ ์–ต์ œ

7.3 ๋ฐฑ์—… โ€” ๋งˆ์ง€๋ง‰ ๋ฐฉ์–ด์„ ์„ '์ง€์›Œ์ง€์ง€ ์•Š๊ฒŒ'

7.4 ํƒ์ง€ยท๋Œ€์‘

7.5 ๊ตํ›ˆ โ€” LockBit์ด ๋‚จ๊ธด ๊ฒƒ

์ถœ์ฒ˜ ๋ฐ ํ•จ๊ป˜ ์ฝ๊ธฐ

โ† ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ