์๋
์ ์ฐ๋ฆฌ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ๊ณต๊ฒฉ์ ์ฐจ๋จํ๋ NGINX์ฉ ๋์ ๋ชจ๋์ธ Nemesida WAF Free๋ฅผ ์ถ์ํ์ต๋๋ค. ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฐ์ ์์ฉ ๋ฒ์ ๊ณผ ๋ฌ๋ฆฌ ๋ฌด๋ฃ ๋ฒ์ ์ ์๋ช
๋ฐฉ์๋ง์ ์ด์ฉํด ์์ฒญ์ ๋ถ์ํ๋ค.
Nemesida WAF 4.0.129 ๋ฆด๋ฆฌ์ค์ ํน์ง
ํ์ฌ ๋ฆด๋ฆฌ์ค ์ด์ ์ Nemesida WAF ๋์ ๋ชจ๋์ Nginx Stable 1.12, 1.14 ๋ฐ 1.16๋ง ์ง์ํ์ต๋๋ค. ์ ๋ฆด๋ฆฌ์ค์๋ 1.17๋ถํฐ Nginx Mainline์ ๋ํ ์ง์๊ณผ 1.15.10(R18)๋ถํฐ Nginx Plus์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
๋ ๋ค๋ฅธ WAF๋ฅผ ๋ง๋๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
NAXSI์ mod_security๋ ์๋ง๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ฌด๋ฃ WAF ๋ชจ๋์ผ ๊ฒ์
๋๋ค. mod_security๋ ์ฒ์์๋ Apache2์์๋ง ์ฌ์ฉ๋์์ง๋ง Nginx์์ ์ ๊ทน์ ์ผ๋ก ํ๋ณดํฉ๋๋ค. ๋ ์๋ฃจ์
๋ชจ๋ ๋ฌด๋ฃ ์คํ ์์ค์ด๋ฉฐ ์ ์ธ๊ณ์ ์ผ๋ก ๋ง์ ์ฌ์ฉ์๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. mod_security์ ๊ฒฝ์ฐ ๋ฌด๋ฃ ๋ฐ ์์
์ฉ ์๋ช
์ธํธ๋ฅผ ์ฐ๊ฐ $500์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, NAXSI์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด๋ฃ ์๋ช
์ธํธ๊ฐ ์์ผ๋ฉฐ doxsi์ ๊ฐ์ ์ถ๊ฐ ๊ท์น ์ธํธ๋ ์ฐพ์ ์ ์์ต๋๋ค.
์ฌํด ์ฐ๋ฆฌ๋ NAXSI ๋ฐ Nemesida WAF Free์ ์๋์ ํ ์คํธํ์ต๋๋ค. ๊ฒฐ๊ณผ์ ๋ํด ๊ฐ๋ตํ ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- NAXSI๋ ์ฟ ํค์์ ์ด์ค URL ๋์ฝ๋ฉ์ ์ํํ์ง ์์ต๋๋ค.
- NAXSI๋ ๊ตฌ์ฑํ๋ ๋ฐ ๋งค์ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ณธ ๊ท์น ์ค์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ (์น์ธ, ํ๋กํ ๋๋ ์๋ฃ ํธ์ง, ์ค๋ฌธ ์กฐ์ฌ ์ฐธ์ฌ ๋ฑ) ์ ๋๋ถ๋ถ์ ์์ฒญ์ ์ฐจ๋จํ๋ฉฐ ์์ธ ๋ชฉ๋ก์ ์์ฑํด์ผ ํฉ๋๋ค. , ์ด๋ ๋ณด์์ ๋์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ธฐ๋ณธ ์ค์ ์ Nemesida WAF Free๋ ์ฌ์ดํธ ์์ ์ค์ ๋จ ํ ๋ฒ์ ์คํ๋ ์ํํ์ง ์์์ต๋๋ค.
- NAXSI์ ๋ํ ๊ณต๊ฒฉ ์คํจ ํ์๋ ๋ช ๋ฐฐ ๋ ๋์ต๋๋ค.
๋จ์ ์๋ ๋ถ๊ตฌํ๊ณ NAXSI์ mod_security์๋ ์คํ ์์ค์ ๋ง์ ์ฌ์ฉ์๋ผ๋ ๋ ๊ฐ์ง ์ด์์ ์ฅ์ ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ค ์ฝ๋ ๊ณต๊ฐ์ ๋ํ ์์ด๋์ด๋ฅผ ์ง์งํ์ง๋ง ์์ฉ ๋ฒ์ ์ "๋ถ๋ฒ ๋ณต์ " ๋ฌธ์ ๋ก ์ธํด ์์ง ์ด๋ฅผ ์ํํ ์ ์์ง๋ง ์ด๋ฌํ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์๊ทธ๋์ฒ ์ธํธ์ ๋ด์ฉ์ ์์ ํ ๊ณต๊ฐํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ค์ํ๊ฒ ์๊ฐํ๋ฉฐ ํ๋ก์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ง์ ํ์ธํ ๊ฒ์ ์ ์ํฉ๋๋ค.
Nemesida WAF ๋ฌด๋ฃ์ ํน์ง:
- ์ต์ํ์ False Positive ๋ฐ False Negative ์๋ฅผ ๊ฐ์ถ ๊ณ ํ์ง ์๋ช ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
- ์ ์ฅ์์์ ์ค์น ๋ฐ ์ ๋ฐ์ดํธ(๋น ๋ฅด๊ณ ํธ๋ฆฌํจ)
- NAXSI์ ๊ฐ์ "์๋ง"์ด ์๋ ์ฌ๊ฑด์ ๋ํ ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ด๋ฒคํธ์ ๋๋ค.
- ์์ ๋ฌด๋ฃ์ด๋ฉฐ ํธ๋ํฝ ์, ๊ฐ์ ํธ์คํธ ๋ฑ์ ์ ํ์ด ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก WAF์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ฟผ๋ฆฌ๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค(๊ฐ ์์ญ(URL, ARGS, ํค๋ ๋ฐ ๋ณธ๋ฌธ)์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค).
')) un","ion se","lect 1,2,3,4,5,6,7,8,9,0,11#"]
')) union/**/select/**/1,/**/2,/**/3,/**/4,/**/5,/**/6,/**/7,/**/8,/**/9,/**/'some_text',/**/11#"]
union(select(1),2,3,4,5,6,7,8,9,0x70656e746573746974,11)#"]
')) union+/*!select*/ (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
')) /*!u%6eion*/ /*!se%6cect*/ (1),(2),(3),(4),(5),(6),(7),(8),(9.),(0x70656e746573746974),(11)#"]
')) %2f**%2funion%2f**%2fselect (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
%5B%221807182982%27%29%29%20uni%22%2C%22on
%20sel%22%2C%22ect%201%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C%2some_text%27%2C11%23%22%5D
cat /et?/pa?swd
cat /et'c/pa'ss'wd
cat /et*/pa**wd
e'c'ho 'swd test pentest' |awk '{print "cat /etc/pas"$1}' |bas'h
cat /etc/passwd
cat$u+/etc$u/passwd$u
<svg/onload=alert()//
์์ฒญ์ด ์ฐจ๋จ๋์ง ์์ผ๋ฉด WAF๊ฐ ์ค์ ๊ณต๊ฒฉ์ ๋์น ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์์ ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ WAF๊ฐ ํฉ๋ฒ์ ์ธ ์์ฒญ์ ์ฐจ๋จํ๊ณ ์์ง ์์์ง ํ์ธํ์ธ์.
์ถ์ฒ : habr.com