[์๋ฒ๊ด๋ฆฌ] ์์คํ ์๋ฒ ์์์ ๊ฐ์๋จน๋ ์ ์ฑ ๋ด(Bot) ํธ๋ํฝ ์ฐจ๋จ๊ธฐ: ํด๋ผ์ฐ๋ํ๋ ์ด WAF ํ์ฉ ์ค์ ํ๊ธฐ
์น์ฌ์ดํธ๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด ๋๊ตฌ๋ ํ ๋ฒ์ฏค ์ด๋ฐ ๊ฒฝํ์ ๊ฒช๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ ๊ฐ์๊ธฐ ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค๋ ์๋ฒ ์ ์ ํต๊ณ์ ํธ๋ํฝ์ด ํญ๋ฐ์ ์ผ๋ก ์น์๋ ๊ฒ์ ๋ณด๊ณ "๋๋์ด ๋ด ์ฌ์ดํธ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ตฌ๋!"๋ผ๋ฉฐ ๊ธฐ๋ปํ์ง๋ง, ๋ง์ ๋๊ป์ ์ด์ด๋ณด๋ฉด ์ค์ ์ฌ๋์ ๋ฐฉ๋ฌธ์ด ์๋๋ผ ์ ์ฒด๋ถ๋ช ์ ์ ์ฑ ๋ด(Bot)๋ค์ด ์๋ฒ๋ฅผ ๋ฌด์ฐจ๋ณ์ ์ผ๋ก ๊ธ๊ณ ๊ฐ ํํํ ํ์ ์ธ ๊ฒฝ์ฐ ๋ง์ ๋๋ค.
์ด๋ฌํ ๋ฌด์๋ฏธํ ๋ด ํธ๋ํฝ์ ๋จ์ํ ๊ธฐ๋ถ์ ์ํ๊ฒ ํ๋ ๋ฐ ๊ทธ์น์ง ์์ต๋๋ค. ํ์ ๋ ์๋ฒ์ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ๊ณ , ์๊น์ด ๋คํธ์ํฌ ๋์ญํญ(ํธ๋ํฝ)์ ๋ญ๋น์์ผ ์ ์ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ '์ง์ง ์ฌ์ฉ์'๋ค์ ๋ก๋ฉ ์๋๋ฅผ ํ์ ํ ๋จ์ด๋จ๋ฆฌ๋ ์ฃผ๋ฒ์ด ๋ฉ๋๋ค. ์ฌ์ง์ด ํด๋ผ์ฐ๋ ํธ์คํ ์๊ธ ํญํ์ ์ ๋ฐํ๊ธฐ๋ ํ์ฃ .
๊ทธ๋์ ์ ๋ ์๋ฒ ์๋จ์ ๊ฐ๋ ฅํ ๋ฐฉํจ๋ฅผ ์ธ์ฐ๊ธฐ๋ก ๊ฒฐ์ฌํ์ต๋๋ค. ์ค๋์ ํด๋ผ์ฐ๋ํ๋ ์ด(Cloudflare)์ ์น ๋ฐฉํ๋ฒฝ(WAF)์ ํ์ฉํ์ฌ ์ ์ฑ ๋ด๋ค์ ์ ๊ทผ์ ์์ฒ ์ฐจ๋จํ ์ ์ ์ค์ ์ธํ ๊ณผ, ์ง๋ 24์๊ฐ ๋์ ๋ฐฉํจ๊ฐ ๋ง์๋ธ ์์ํ ์ ํฌ ๊ธฐ๋ก์ ๊ณต์ ํด ๋ณด๊ณ ์ ํฉ๋๋ค.
1์ฐจ ๋ฐฉ์ด์ : ํ์ด์ฌ(Python) ๋ฐ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ํฌ๋กค๋ฌ ์ฐจ๋จ

์ฒจ๋ถ๋ ํต๊ณ ์ฌ์ง์ ๊ฐ์ฅ ์๋จ์ ๋ณด์๋ฉด 'python bot block'์ด๋ผ๋ ์ด๋ฆ์ ๊ท์น์ด ์๋ํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ง๋ ํ๋ฃจ ๋์ ์ด 6๋ฒ์ ์ ๊ทผ์ ๋ง์๋๋ค์.
๋ณดํต ์น ์คํฌ๋ํ์ ์ฐ์ตํ๋ ์ด๋ณด ๊ฐ๋ฐ์๋ค์ด๋ ์
์์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ํฌ๋กค๋ฌ๋ค์ ํ์ด์ฌ์ requests ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Go ์ธ์ด์ Go-http-client๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ์ ๋ฌด์ํ ์์ฒญ์ ๋์ง๋๋ค. ์ด๋ ์ด๋ค์ ์์ ๋ค์ ์ ์ฒด๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ ๊น๋นกํ๊ณ ๊ธฐ๋ณธ ์ ์ ์์ด์ ํธ(User-Agent) ๊ฐ์ ๊ทธ๋๋ก ๋ฌ๊ณ ๋ค์ด์ค๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ ๋ WAF ์ค์ ์์ ์ ์ ์์ด์ ํธ ๋ฌธ์์ด์ 'python'์ด๋ 'Go-http-client'๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ์์ ์ฌ์ดํธ ๋ฌธํฑ์กฐ์ฐจ ๋ฐ์ง ๋ชปํ๋๋ก 'Block(์ฐจ๋จ)' ์กฐ์น๋ฅผ ๋ด๋ ธ์ต๋๋ค. ํ์๋ 6๋ฒ์ผ๋ก ์ ์ด ๋ณด์ด์ง๋ง, ์ด ํ ๋ฒ์ ์ ๊ทผ์ด ์ฌ์ดํธ ์ ์ฒด ๊ฒ์๊ธ์ ์์ฒ ๋ฒ ๊ธ์ด๊ฐ๋ ๋๋ ํฌ๋กค๋ง์ ์์์ ์ผ ์ ์๊ธฐ์ ์ด๊ธฐ์ ์น์ ์๋ฅด๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.
2์ฐจ ๋ฐฉ์ด์ : ํน์ ์ ์ฑ IP ํ๊ฒํ ๋ฐ '๋งค๋์ง๋ ์ฑ๋ฆฐ์ง' ๋์
์ฌ์ง์ ๋ ๋ฒ์งธ ํญ๋ชฉ์ ๋ณด๋ฉด ํน์ IP์์ ๋ค์ด์ค๋ ์์ฒญ๋ค์ ๋ํด 'Managed Challenge(๋งค๋์ง๋ ์ฑ๋ฆฐ์ง)'๊ฐ ๋ฌด๋ ค 422๋ฒ์ด๋ ์๋ํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์๋ฒ ๋ก๊ทธ๋ฅผ ๋ฉด๋ฐํ ๋ถ์ํ๋ค ๋ณด๋ฉด, ์ ์ ์์ด์ ํธ๋ฅผ ์ ์์ ์ธ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์ฒ๋ผ ์๋ฒฝํ๊ฒ ์์ฅํ๊ณ ๋ค์ด์ค๋ ๊ณ ๋ํ๋ ์ ์ฑ ๋ด๋ค์ ๋ฐ๊ฒฌํ๊ฒ ๋ฉ๋๋ค. ์ด๋ด ๋๋ ํจํด์ ํ์ ํ์ฌ ํด๋น IP ์ฃผ์ ์์ฒด๋ฅผ ํ๊ฒํ ํด์ผ ํฉ๋๋ค.
ํ์ง๋ง IP๋ฅผ ๋ฌด์์ ์ฐจ๋จ(Block)ํด๋ฒ๋ฆฌ๋ฉด, ํด๋น IP ๋์ญ์ ํจ๊ป ์ฐ๋ ์ ๋ํ ์ผ๋ฐ ์ฌ์ฉ์๊น์ง ์ ์์ด ๋งํ๋ ์ต์ธํ ํผํด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ '๋งค๋์ง๋ ์ฑ๋ฆฐ์ง'๋ฅผ ์ ์ฉํ์ต๋๋ค. ์ด ์ค์ ์ ํด๋น IP๋ก ์ ์์ ์๋ํ ๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ๊ฒ์ฌํ๊ฑฐ๋, ํ์์ ํ๋ฉด์ ์บก์ฑ (๋ก๋ด์ด ์๋๋๋ค ์ฒดํฌ)๋ฅผ ๋์ ์ฌ๋์ธ์ง ๊ธฐ๊ณ์ธ์ง ํ ๋ฒ ๋ ๊ฒ์ฆํ๋ ์ค๋งํธํ ๋ฐฉ์ด๋ง์ ๋๋ค. ํต๊ณ๋ฅผ ๋ณด๋ 422๋ฒ์ ์ฐ๋ฅด๊ธฐ ๊ณต๊ฒฉ์ ์๋ฒ์ ๋ถํ๋ฅผ ์ฃผ์ง ์๊ณ ์์ฃผ ์ฐ์ํ๊ฒ ํ๊ฒจ๋์์ ์ ์ ์์ต๋๋ค.
3์ฐจ ๋ฐฉ์ด์ : ๋ฐ์ดํฐ ์คํฌ๋ํ ๋ด ๋๋ ํ์ด
๊ฐ์ฅ ๋๋ผ์ด ๊ฒฐ๊ณผ๋ ์ธ ๋ฒ์งธ ํญ๋ชฉ์ธ 'Block Paging Bots' ๊ท์น์์ ๋ํ๋ฌ์ต๋๋ค. ๋ถ๊ณผ 24์๊ฐ ๋ง์ ๋ฌด๋ ค 1.56k(1,560๋ฒ)์ ์ฐจ๋จ ๊ธฐ๋ก์ด ๋ฐ์ํ์ต๋๋ค!
์ด ๊ท์น์ ๋ฌด๋ถ๋ณํ๊ฒ ํ์ด์ง๋ฅผ ๋๊ฒจ๊ฐ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ํผ๊ฐ๋ ํ์ด์ง ๋ด๋ค์ ๋ง๊ธฐ ์ํด ์ค์ ํ ๊ฒ์ ๋๋ค. ์ ์ ์์ด์ ํธ์ 'bot', 'spider', 'crawl'๊ณผ ๊ฐ์ด ๋ด์์ ์์ํ๋ ๋จ์ด๋ ๋ฌด๋ถ๋ณํ ๋งํฌ ์์ง์ฉ 'facebook' ๋ด ๋ฑ์ด ํฌํจ๋ ๊ฒฝ์ฐ ๊ฐ์ ๋ก ์ ์์ ๋์ด๋ฒ๋ฆฌ๋๋ก ์ธํ ํ์ต๋๋ค.
๋ง์ฝ ์ด ๋ฐฉ์ด๋ง์ด ์์๋ค๋ฉด ์ด๋ป๊ฒ ๋์์๊น์? 1,560๋ฒ์ ์์ฒญ์ด ๊ทธ๋๋ก ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)๋ฅผ ๋๋ฆฌ๊ณ , ์๋ฐฑ ๋ฉ๊ฐ๋ฐ์ดํธ์ ์ด๋ฏธ์ง์ HTML ํ ์คํธ๋ฅผ ์๋ตํ๋๋ผ ์๋ฒ์ ํฌ์ด ๊ต์์ ๋ด๋ฉฐ ๋์๊ฐ์ ๊ฒ์ ๋๋ค. ์ ๋นํ ๊ตฌ๊ธ ๊ฒ์ ๋ ธ์ถ์ ์ํ ์ฐฉํ ๋ด(Googlebot ๋ฑ)์ ํ์ดํธ๋ฆฌ์คํธ๋ก ํต๊ณผ์ํค๊ณ , ๋ด ํธ๋ํฝ๋ง ์ถ๋ด๋ ๋์ ๋ด๋ค๋ง ์ด๋ ๊ฒ ํ์ ์ผ๋ก ๊ณจ๋ผ๋ด์ด ์ฐจ๋จํ๋ ๊ฒ์ด ์๋ฒ ์ต์ ํ์ ํต์ฌ์ ๋๋ค.
๋ด ์ฐจ๋จ์ด ๊ฐ์ ธ์จ ๊ธ์ ์ ์ธ ๋๋นํจ๊ณผ
์ด๋ ๊ฒ ๊ฐ๋ ฅํ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ ์ฉํ๊ณ ๋ ๋ค, ์น์ฌ์ดํธ์๋ ๋๋ผ์ด ๋ณํ๊ฐ ์ฐพ์์์ต๋๋ค.
๋์ ๋๊ฒ ๋นจ๋ผ์ง ์ฒด๊ฐ ์๋: ์ธ๋ฐ์๋ ๋ด๋ค์ ์์ฒญ์ ์๋ตํ๋๋ผ ํ๋์ด๋ ๋ฐฑ์๋ ์๋ฒ๊ฐ ์ฌ์ ๋ฅผ ๋์ฐพ์ผ๋ฉด์, ์ค์ ๋ฐฉ๋ฌธ์๋ค์ด ๊ฒ์ํ์ ํด๋ฆญํ ๋ ์๋ฒ๊ฐ ์๋ตํ๋ ์๊ฐ(TTFB)์ด ๋น์ฝ์ ์ผ๋ก ๋จ์ถ๋์์ต๋๋ค.
์ ํํด์ง ํต๊ณ ๋ฐ์ดํฐ: ์ ๋ น ๋ฐฉ๋ฌธ์๋ค์ด ํต๊ณ์์ ์ก์ด์ฒ๋ผ ์ ๊ฑฐ๋๋, ์ด์ ๋ ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค์ ์ฐํ๋ ๋ฐฉ๋ฌธ์ ์ฒด๋ฅ ์๊ฐ๊ณผ ์ดํ๋ฅ ์ด ์ง์ง ์ฌ๋๋ค์ ํ๋ ๋ฐ์ดํฐ๋ก๋ง ์ฑ์์ง๊ฒ ๋์์ต๋๋ค. ํฅํ ๊ด๊ณ ์์ต์ ๋ถ์ํ๊ณ ๋ง์ผํ ์ ๋ต์ ์ธ์ฐ๋ ๋ฐ ํจ์ฌ ๋ ์ ๋ขฐํ ์ ์๋ ์งํ๊ฐ ๋ ๊ฒ์ ๋๋ค.
์๋ฒ ์ ์ง๋น์ฉ ์ ๊ฐ: ๋ถํ์ํ ์์๋ฐ์ด๋ ํธ๋ํฝ์ด ์ค์ด๋ค๋ฉด์, ํด๋ผ์ฐ๋ ํธ์คํ ์๋น์ค์ ํธ๋ํฝ ๊ณผ๊ธ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฝ๊ธฐ ๋น์ฉ์ ํฌ๊ฒ ์ ์ฝํ ์ ์๊ฒ ๋์์ต๋๋ค.
๋ง๋ฌด๋ฆฌํ๋ฉฐ: ๋ฐฉ์ด๋ ๋์๋ ์ฐฝ๊ณผ ๋ฐฉํจ์ ์ธ์
๋ณด์๊ณผ ์๋ฒ ๊ด๋ฆฌ์ ์๋ฒฝํ ๋์ด๋ ์์ต๋๋ค. ๋ด์ ๊ฐ๋ฐํ๋ ํด์ปค๋ ์คํฌ๋ํผ๋ค์ ๋ด์ผ์ด๋ฉด ๋ ๋ค๋ฅธ IP๋ก ๋ณ๊ฒฝํ๊ณ , ์ ์ ์์ด์ ํธ๋ฅผ ๊ต๋ฌํ๊ฒ ์์ฅํ์ฌ ์ฐ๋ฆฌ ์ฌ์ดํธ์ ๋ฌธ์ ๋๋๋ฆด ๊ฒ์ ๋๋ค.
ํ์ง๋ง ์ค๋ ํ์ธํ ํด๋ผ์ฐ๋ํ๋ ์ด WAF์ 24์๊ฐ ์ฐจ๋จ ๊ธฐ๋ก์, ์ฐ๋ฆฌ๊ฐ ๋ฌธ์ ๊ตณ๊ฑดํ ๊ฑธ์ด ์ ๊ทธ๊ณ ๋ฃฐ์ ๋ค๋ฌ๋ ๋ ธ๋ ฅ๋ง์ผ๋ก๋ ์์คํ ์น์ฌ์ดํธ ์์์ ์ผ๋ง๋ ํ๋ฅญํ๊ฒ ์ง์ผ๋ผ ์ ์๋์ง ์ฆ๋ช ํด์ฃผ๊ณ ์์ต๋๋ค. 1์ธ ๊ฐ๋ฐ์์ด๊ฑฐ๋ ๊ฐ์ธ ์น์ฌ์ดํธ๋ฅผ ์ด์ํ์๋ ๋ถ๋ค์ด๋ผ๋ฉด, ์ง๊ธ ๋น์ฅ ์๋ฒ์ ์ ์ ๋ก๊ทธ๋ฅผ ํ์ธํด ๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ ๋ณด์ด์ง ์๋ ๊ณณ์์ ํธ๋ํฝ์ ๊ฐ์๋จน๊ณ ์๋ ์ข๋น ๋ด๋ค์ ํฅํด ๊ณผ๊ฐํ ์ฐจ๋จ ๋ฒํผ์ ๋๋ฌ๋ณด์๊ธธ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค.
๐ฌ ๋๊ธ 0๊ฐ