Skip to main content Link Menu Expand (external link) Document Search Copy Copied

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋Š” KISA์—์„œ ์ฃผ์ตœํ•œ 2021 ์‚ฌ์ด๋ฒ„๋ณด์•ˆ AI*๋น…ํ…Œ์ดํ„ฐ ๊ฒฝ์ง„๋Œ€ํšŒ์˜ ๋ณธ์„ ์—์„œ ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

  • ์ฐธ์—ฌ์ธ์› : 3์ธ ํŒ€(ํŒ€์žฅ ์—ญํ• )
  • ๊ธฐ๊ฐ„ : 2021๋…„ 09์›” ~ 2021๋…„ 12์›”(3๊ฐœ์›”)
  • ๋‚˜์˜ ์—ญํ• 
    • โœ๏ธ ์œˆ๋„์šฐ ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ๋ฐ์ดํ„ฐ ๋ถ„์„
    • ๐Ÿ“ƒ ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ํƒ์ง€ ๋…ผ๋ฌธ ์ •๋ฆฌ
    • ๐Ÿ’ก ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ํƒ์ง€ ๋ชจ๋ธ ๊ฐœ๋ฐœ
  • Github : https://github.com/ghkdqhrbals/Malware_LSTM
  • ๊ฒฐ๊ณผ : 4๋“ฑ

โœ๏ธ ์œˆ๋„์šฐ ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ๋ฐ์ดํ„ฐ ๋ถ„์„

ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ๋ถ„์„

์œˆ๋„์šฐ์— ์•…์„ฑ์ฝ”๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฝ์ž…๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋Œ€๋ถ€๋ถ„ Powershell ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ํƒ์ง€๋Š” ๋””์Šคํฌ๋ฅผ ๋ถ„์„ํ•˜๋ฉฐ ํƒ์ง€ํ•˜๊ธฐ์—, ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ๋งŒ ์กด์žฌํ•˜๋Š” ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์žก๊ธฐ๋ž€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์• ์ดˆ์— ๋ฉ”๋ชจ๋ฆฌ์— ์‚ฝ์ž…๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์žก์•„์•ผ ํ•˜๋Š”๊ฒƒ์ด์ฃ !

p1

์œ„์—์„œ ๋ณด์ด๋Š” Stage๋Š” ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ์˜ ๊ณต๊ฒฉ Stage ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ์•…์„ฑ์ฝ”๋“œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž…๋˜๊ธฐ๊นŒ์ง€ Stage 1,2 ์—์„œ ์šฐํšŒ๋ฅผ ํ•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ Stage 3์—์„œ ์‹คํ–‰๋˜์ฃ .

์ด๋Ÿฌํ•œ ๊ณต๊ฒฉ๋ฐฉ๋ฒ•์—์„œ๋Š” ๊ณต๊ฒฉ์ž๋Š” Powershell ์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Powershell ์ด ๊ถŒํ•œํš๋“/์šฐํšŒ ์— ์žˆ์–ด ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ !

p1

์•„๋ž˜๋Š” WMI ๋ฅผ ํ†ตํ•œ ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ์‹คํ–‰ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

p1 p1 p1 p1 p1 p1 p1 p1 p1

์œ„์˜ ๊ณผ์ •์„ ์ง€๋‚˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์œˆ๋„์šฐ ์‹œ์Šคํ…œ ํ”„๋กœํผํ‹ฐ์—๋‹ค๊ฐ€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ฐ•ํž™๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” ๋ฐฑ๋„์–ด๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.

p1

๊ทธ๋ž˜์„œ ์ข…ํ•ฉํ•ด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์ข…ํ•ฉํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

p1

ํŒŒ์ผ๋ฆฌ์Šค๋Š” ๊ถŒํ•œํš๋“/์šฐํšŒ ๊ฐ€ ์‰ฌ์šด PowershellScript ๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜ค๋ฉฐ, ๋‚œ๋…ํ™”๋ฅผ ๊ฑฐ์ณ, ์œˆ๋„์šฐ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ WMI ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์ด WMI ๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” ์‹œ์Šคํ…œ์ด ์žฌ๋ถ€ํŒ…๋  ๋•Œ ๊ณต๊ฒฉ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”(์ด๋ฅผ ์ง€์†์„ฑ-Persistance ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค).

๐Ÿ“ƒ ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ํƒ์ง€ ๋…ผ๋ฌธ ์ •๋ฆฌ

๋…ผ๋ฌธ ์ •๋ฆฌ

ํ˜„์žฌ(2021๋…„ 9์›”) ๋ˆˆ์—ฌ๊ฒจ๋ณผ ๋…ผ๋ฌธ๋“ค์€ ์ด 8๊ฐœ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

p1

์ด ๋•Œ ๊ฐ™์€ ๋ฐ์ดํ„ฐ์…‹์„ ๊ฐ€์ง€๊ณ  ํƒ์ง€ํ•˜๋Š” ๋ชจ๋ธ๋ผ๋ฆฌ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ธ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๊ธฐ์— ์ข‹์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Pulling Back the certain on EncodedCommand PowerShell Attacks ์ด๋ผ๋Š” ๊ธฐ์ˆ ๋ฌธ์„œ์˜ ๋ฐ์ดํ„ฐ์…‹์„ ๊ณตํ†ต์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋ธ 5๊ฐ€์ง€๋ฅผ ๋น„๊ตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค(๊ทธ ์ค‘ ๋Œ€ํ‘œ๋˜๋Š” ๋…ผ๋ฌธ์ธ AST-Based Deep Learning for Detecting Malicious PowerShell ๋งŒ ๊ธฐ์ˆ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋…ผ๋ฌธ์ •๋ฆฌ๋Š” ๋‹ค์Œ ๋งํฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”! ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ๋ถ„์„ ์ž๋ฃŒ).

AST-Based Deep Learning for Detecting Malicious PowerShell ๋…ผ๋ฌธ ์ •๋ฆฌ

๋จผ์ € ๋ฐ์ดํ„ฐ์…‹ ์ •์ œ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด AST(Abstract Syntax Tree) ๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์ œํ•ฉ๋‹ˆ๋‹ค. p1

์ดํ›„์— ์ •์ œ๋œ AST๋ฅผ ๊ฐ€์ง€๊ณ  RF(๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ)๋กœ ๊ฐ€๊ธฐ์ „์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒกํ„ฐํ™”๋ฅผ ์‹œ์ผœ์•ผํ•ด์š”. ์—ฌ๊ธฐ์„œ ๋‹จ์ˆœํžˆ ์›-ํ•ซ์œผ๋กœ ๊ฐ๊ฐ์˜ AST ๋…ธ๋“œ๋“ค์„ ์ธ์ฝ”๋”ฉํ•˜๊ธฐ์—๋Š” ์•…์„ฑ์ฝ”๋“œ๊ฐ€ ๊ฐ€์ง€๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€์ง€ ๋ชปํ•˜๊ฒ ์ฃ ? ์›-ํ•ซ์€ ์„œ๋กœ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋ฒกํ„ฐ๋งŒ ๋ดค์„ ๋•Œ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . p1

์ด ๋…ผ๋ฌธ์ด ๊ฐ€์ง€๋Š” ๊ณ ์œ ํŠน์„ฑ์ด ์•„๋ž˜์—์„œ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ์–˜๋„ค๋Š” ์ฝ”๋“œ๊ฐ„์˜ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๋ฒกํ„ฐ๋ฅผ ์ง์ ‘ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ–ˆ์–ด์š”. Type๋“ค์€ AST ๋…ธ๋“œ๋“ค์ด๊ตฌ์š”. AST ๋…ธ๋“œ ๊ฐ„ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ tanh ๋กœ ์ž„์˜ํŠน์„ฑ์„ ๋„ฃ์–ด์ฃผ๊ณ , Weight๋ฅผ ์ž์‹๋…ธ๋“œ์˜ ์ž์‹๊ฐœ์ˆ˜/๋ถ€๋ชจ๋…ธ๋“œ์˜ ์ž์‹๊ฐœ์ˆ˜ ์— ์˜ํ–ฅ๋ฐ›๋„๋ก ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. p1

๋งŒ์•ฝ ์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ AST ๋…ธ๋“œ๊ฐ€ ๊ตฌ์„ฑ๋œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒกํ„ฐ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŸ์ฃ ? p1

์—ฌ๊ธฐ์„œ cost function์„ ๊ตฌ์„ฑํ•  ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์ด ||vec(p)-vec'(p)||^2๋กœ ๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด d๋Š” 0์— ๋น ๋ฅด๊ฒŒ ์ˆ˜๋ ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, overfitting๋œ๋‹ค๋Š” ์–˜๊ธฐ์ด์ฃ . p1

๊ทธ๋ž˜์„œ L2 norm ์„ ์ ์šฉ์‹œ์ผœ์„œ ์˜ค๋ฒ„ํ”ผํŒ…์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ง‰๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. p1

์•„๋ž˜์™€ ๊ฐ™์ด AST ๋…ธ๋“œ์˜ ํŠน์„ฑ์ด ๊ตฌ๋ณ„๋จ๊ณผ ๋™์‹œ์— ์„œ๋กœ์˜ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ์•Œ ์ˆ˜ ์žˆ์ฃ ? p1

๊ฒฐ๋ก ์ ์œผ๋กœ ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ ๋ชจ๋ธ ์ ์šฉ ํ›„, Confusion ๋งคํŠธ๋ฆญ์Šค ํ™•์ธํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋„์ถœ๋ฉ๋‹ˆ๋‹ค. p1

์•„์‰ฌ์šด ์ ์€ ๋ฐ์ดํ„ฐ์…‹ ํŽธํ–ฅ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ(์˜ˆ๋กœ Duplication์œผ๋กœ ๋ณต์ œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•)๊ฐ€ ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ SET ํƒ์ง€ ๊ฒฐ๊ณผ๊ฐ€ ShellCode Inject๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์„ฑ๋Šฅ๋˜ํ•œ ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ํŒŒ์ผ๋ฆฌ์Šค ์•…์„ฑ์ฝ”๋“œ ํƒ์ง€ ๋ชจ๋ธ ๊ฐœ๋ฐœ

์‚ฌ์šฉ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๊ฒฐ๊ณผ

Frequency Model ์„ ํ†ตํ•œ ํŠน์„ฑ ๋„์ถœ

p1 p1 p1 p1 p1

๊ฒฐ๊ณผ

์ •๋ฐ€๋„ : 0.8562 ์žฌํ˜„์œจ : 0.7057 F1-score : 0.7737

ํ›„๊ธฐ

์‚ฌ์‹ค LSTM ๊ณผ TF-IDF ๋ฅผ ์•™์ƒ๋ธ”ํ•˜์—ฌ ๋ชจ๋ธ๋ง ํ•ด๋ณด์•˜์ง€๋งŒ, LSTM ์ด ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž˜ ํ•™์Šตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ AST ๋กœ๋Š” ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์„ฑ์ด ๋ฐ˜์˜๋˜์ง€ ๋ชปํ•œ๊ฒŒ ๊ฐ€์žฅ ํฐ ์ด์œ ๊ฐ€ ์•„๋‹๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•™์ƒ๋ธ”์„ ์ค‘๊ฐ„์— ์ œ์™ธํ•˜๊ณ  TF-IDF ๋กœ๋งŒ ๋ฐ˜์˜ํ•˜์—ฌ ํ•™์Šตํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ์…‹์€ ๋‚œ๋…ํ™”๊ฐ€ ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋น„๋‚œ๋…ํ™”ํ•˜๊ณ ์ž Revoke Expression/PowerDecoder ๋“ฑ ์—ฌ๋Ÿฌ ํˆด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€์ง€๋งŒ, ์•ฝ 5%๋Š” ๋‚œ๋…ํ™”๊ฐ€ ์ œ๋Œ€๋กœ ์ง„ํ–‰๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋ธํ•™์Šต์— ์น˜๋ช…์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ ! ๊ฒฐ๊ณผ๋กœ ๊ฝค ๋‚ฎ์€ ์ •๋ฐ€๋„๊ฐ€ ๋‚˜์™”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.