ํด๋น ํ๋ก์ ํธ๋ KISA์์ ์ฃผ์ตํ 2021 ์ฌ์ด๋ฒ๋ณด์ AI*๋น ํ ์ดํฐ ๊ฒฝ์ง๋ํ์ ๋ณธ์ ์์ ์งํํ ํ๋ก์ ํธ์ ๋๋ค.
- ์ฐธ์ฌ์ธ์ : 3์ธ ํ(ํ์ฅ ์ญํ )
- ๊ธฐ๊ฐ : 2021๋ 09์ ~ 2021๋ 12์(3๊ฐ์)
- ๋์ ์ญํ
- โ๏ธ ์๋์ฐ ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ๋ฐ์ดํฐ ๋ถ์
- ๐ ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ํ์ง ๋ ผ๋ฌธ ์ ๋ฆฌ
- ๐ก ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ํ์ง ๋ชจ๋ธ ๊ฐ๋ฐ
- Github : https://github.com/ghkdqhrbals/Malware_LSTM
- ๊ฒฐ๊ณผ : 4๋ฑ
โ๏ธ ์๋์ฐ ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ๋ฐ์ดํฐ ๋ถ์
ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ๋ถ์
์๋์ฐ์ ์ ์ฑ์ฝ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ ๋๊ธฐ ์ํด์๋ ๋๋ถ๋ถ Powershell ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋๋ถ๋ถ์ ํ์ง๋ ๋์คํฌ๋ฅผ ๋ถ์ํ๋ฉฐ ํ์งํ๊ธฐ์, ๋ฉ๋ชจ๋ฆฌ์์์๋ง ์กด์ฌํ๋ ์ ์ฑ์ฝ๋๋ฅผ ์ก๊ธฐ๋ ์ฝ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ ์ด์ ๋ฉ๋ชจ๋ฆฌ์ ์ฝ์ ๋๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ก์์ผ ํ๋๊ฒ์ด์ฃ !
์์์ ๋ณด์ด๋ Stage๋ ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋์ ๊ณต๊ฒฉ Stage ์ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฑ์ฝ๋ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋๊ธฐ๊น์ง Stage 1,2 ์์ ์ฐํ๋ฅผ ํ๊ณ ์ต์ข ์ ์ผ๋ก Stage 3์์ ์คํ๋์ฃ .
์ด๋ฌํ ๊ณต๊ฒฉ๋ฐฉ๋ฒ์์๋ ๊ณต๊ฒฉ์๋ Powershell ์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. Powershell ์ด ๊ถํํ๋/์ฐํ ์ ์์ด ๋งค์ฐ ๊ฐ๋ ฅํ๊ธฐ ๋๋ฌธ์ด์ฃ !
์๋๋ WMI ๋ฅผ ํตํ ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ์คํ ์์์ ๋๋ค.
์์ ๊ณผ์ ์ ์ง๋๋ฉด ์๋์ ๊ฐ์ด ์๋์ฐ ์์คํ ํ๋กํผํฐ์๋ค๊ฐ ์คํฌ๋ฆฝํธ๊ฐ ๋ฐํ๋๋ค.
์ด๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ๋ฐฑ๋์ด๋ฅผ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์์ด์.
๊ทธ๋์ ์ข ํฉํด๋ณด๋ฉด, ์๋์ ๊ฐ์ด ์ข ํฉํด๋ณผ ์ ์์ด์.
ํ์ผ๋ฆฌ์ค๋ ๊ถํํ๋/์ฐํ ๊ฐ ์ฌ์ด PowershellScript ๋ฅผ ํตํด ๋ค์ด์ค๋ฉฐ, ๋๋ ํ๋ฅผ ๊ฑฐ์ณ, ์๋์ฐ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ WMI ์ ์ ๊ทผํฉ๋๋ค. ์ด WMI ๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ์์คํ ์ด ์ฌ๋ถํ ๋ ๋ ๊ณต๊ฒฉ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํ์ํฌ ์ ์์ด์(์ด๋ฅผ ์ง์์ฑ-Persistance ๋ผ๊ณ ํฉ๋๋ค).
๐ ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ํ์ง ๋ ผ๋ฌธ ์ ๋ฆฌ
๋ ผ๋ฌธ ์ ๋ฆฌ
ํ์ฌ(2021๋ 9์) ๋์ฌ๊ฒจ๋ณผ ๋ ผ๋ฌธ๋ค์ ์ด 8๊ฐ๋ก ์๋์ ๊ฐ์ด ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
์ด ๋ ๊ฐ์ ๋ฐ์ดํฐ์ ์ ๊ฐ์ง๊ณ ํ์งํ๋ ๋ชจ๋ธ๋ผ๋ฆฌ ๋น๊ตํ๋ ๊ฒ์ด ๋ชจ๋ธ์ฑ๋ฅ์ ๋น๊ตํ๊ธฐ์ ์ข์ต๋๋ค.
๋ฐ๋ผ์ 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) ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ ํฉ๋๋ค.
์ดํ์ ์ ์ ๋ AST๋ฅผ ๊ฐ์ง๊ณ RF(๋๋ค ํฌ๋ ์คํธ)๋ก ๊ฐ๊ธฐ์ ์ ์๋์ ๊ฐ์ด ๋ฒกํฐํ๋ฅผ ์์ผ์ผํด์. ์ฌ๊ธฐ์ ๋จ์ํ ์-ํซ์ผ๋ก ๊ฐ๊ฐ์ AST ๋ ธ๋๋ค์ ์ธ์ฝ๋ฉํ๊ธฐ์๋ ์ ์ฑ์ฝ๋๊ฐ ๊ฐ์ง๋ ํน์ฑ์ ๊ฐ์ง์ง ๋ชปํ๊ฒ ์ฃ ? ์-ํซ์ ์๋ก ์ฐ๊ด๊ด๊ณ๋ฅผ ๋ฒกํฐ๋ง ๋ดค์ ๋ ์ ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ .
์ด ๋
ผ๋ฌธ์ด ๊ฐ์ง๋ ๊ณ ์ ํน์ฑ์ด ์๋์์ ๋๋ฌ๋ฉ๋๋ค. ์๋ค๋ ์ฝ๋๊ฐ์ ์ฐ๊ด๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๋ฒกํฐ๋ฅผ ์ง์ ์ปค์คํฐ๋ง์ด์ง ํ์ด์. Type๋ค์ AST ๋
ธ๋๋ค์ด๊ตฌ์. AST ๋
ธ๋ ๊ฐ ์ฐ๊ด๊ด๊ณ๋ฅผ tanh ๋ก ์์ํน์ฑ์ ๋ฃ์ด์ฃผ๊ณ , Weight๋ฅผ ์์๋
ธ๋์ ์์๊ฐ์
/๋ถ๋ชจ๋
ธ๋์ ์์๊ฐ์
์ ์ํฅ๋ฐ๋๋ก ์ค์ ํ์์ต๋๋ค.
๋ง์ฝ ์์ ์์์ฒ๋ผ AST ๋ ธ๋๊ฐ ๊ตฌ์ฑ๋๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ฒกํฐ๋ฅผ ๊ตฌํ ์ ์๊ฒ์ฃ ?
์ฌ๊ธฐ์ cost function์ ๊ตฌ์ฑํ ๋, ์๋์ ๊ฐ์ด ||vec(p)-vec'(p)||^2
๋ก ๊ตฌํ๊ฒ ๋๋ค๋ฉด d
๋ 0์ ๋น ๋ฅด๊ฒ ์๋ ดํ๊ฒ ๋ฉ๋๋ค. ์ฆ, overfitting๋๋ค๋ ์๊ธฐ์ด์ฃ .
๊ทธ๋์ L2 norm ์ ์ ์ฉ์์ผ์ ์ค๋ฒํผํ ์ ์๋์ ๊ฐ์ด ๋ง๊ฒ ๋ฉ๋๋ค.
์๋์ ๊ฐ์ด AST ๋ ธ๋์ ํน์ฑ์ด ๊ตฌ๋ณ๋จ๊ณผ ๋์์ ์๋ก์ ์ฐ๊ด๊ด๊ณ๋ฅผ ์ ์ ์์ฃ ?
๊ฒฐ๋ก ์ ์ผ๋ก ๋๋ค ํฌ๋ ์คํธ ๋ชจ๋ธ ์ ์ฉ ํ, Confusion ๋งคํธ๋ฆญ์ค ํ์ธํด๋ณด๋ฉด ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ถ๋ฉ๋๋ค.
์์ฌ์ด ์ ์ ๋ฐ์ดํฐ์ ํธํฅ์ ๋ํ ์ฒ๋ฆฌ(์๋ก Duplication์ผ๋ก ๋ณต์ ์ํค๋ ๋ฐฉ๋ฒ)๊ฐ ๋ถ์กฑํ์ต๋๋ค. ๋ํ SET ํ์ง ๊ฒฐ๊ณผ๊ฐ ShellCode Inject๋ก ๋์ค๋ ๊ฒ๊ณผ ๊ฐ์ด ์ฑ๋ฅ๋ํ ๋ถ์กฑํ์ต๋๋ค.
๐ก ํ์ผ๋ฆฌ์ค ์ ์ฑ์ฝ๋ ํ์ง ๋ชจ๋ธ ๊ฐ๋ฐ
์ฌ์ฉ ๋ชจ๋ธ ์ํคํ ์ฒ ๋ฐ ๊ฒฐ๊ณผ
Frequency Model ์ ํตํ ํน์ฑ ๋์ถ
๊ฒฐ๊ณผ
์ ๋ฐ๋ : 0.8562 ์ฌํ์จ : 0.7057 F1-score : 0.7737
ํ๊ธฐ
์ฌ์ค LSTM ๊ณผ TF-IDF ๋ฅผ ์์๋ธํ์ฌ ๋ชจ๋ธ๋ง ํด๋ณด์์ง๋ง, LSTM ์ด ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ ํ์ตํ์ง ๋ชปํ์ต๋๋ค. ์๋ง AST ๋ก๋ ์ ์ฑ ์คํฌ๋ฆฝํธ์ ํน์ฑ์ด ๋ฐ์๋์ง ๋ชปํ๊ฒ ๊ฐ์ฅ ํฐ ์ด์ ๊ฐ ์๋๊น ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์์๋ธ์ ์ค๊ฐ์ ์ ์ธํ๊ณ TF-IDF ๋ก๋ง ๋ฐ์ํ์ฌ ํ์ตํ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ์ ๊ณต๋ ๋ฐ์ดํฐ์ ์ ๋๋ ํ๊ฐ ๋์ด ์์์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ๋ถ๋ถ์ ๋น๋๋ ํํ๊ณ ์ Revoke Expression/PowerDecoder ๋ฑ ์ฌ๋ฌ ํด์ ์ฌ์ฉํ์ฌ ์งํํ์์ง๋ง, ์ฝ 5%๋ ๋๋ ํ๊ฐ ์ ๋๋ก ์งํ๋์ง ์์์ต๋๋ค. ์ฆ, ๋ชจ๋ธํ์ต์ ์น๋ช ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ค๋ ๊ฒ์ด์ฃ ! ๊ฒฐ๊ณผ๋ก ๊ฝค ๋ฎ์ ์ ๋ฐ๋๊ฐ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.