Graaudit๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๋ฉฐ ์ฝ๋๋ฒ ์ด์ค ๋ณด์ ํ ์คํธ๋ฅผ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ง์ ํตํฉํ ์ ์์ต๋๋ค.
์ถ์ฒ :
ํ ์คํธ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ๋ค์ํ ์ ํ์ ํ ์คํธ๊ฐ ์์ผ๋ฉฐ ๊ฐ ์ ํ์ ์์ฒด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ค๋์ ์ฝ๋์์ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค.
๋ถ๋ช
ํ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ค์์๋ ํ๋ก์ธ์ค ๋ณด์์ ๋ณด์ฅํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ๋ DevSecOps๋ผ๋ ํน์ ์ฉ์ด๋ ๋์
๋์์ต๋๋ค. ์ด ์ฉ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ์ ๊ฑฐํ๊ธฐ ์ํ ์ผ๋ จ์ ์ ์ฐจ๋ฅผ ๋ํ๋
๋๋ค. ํ์ค์ ๋ฐ๋ผ ์ทจ์ฝ์ ์ ์ ๊ฒํ๋ ํนํ๋ ์คํ์์ค ์๋ฃจ์
์ด ์์ต๋๋ค.
SAST(์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ), DAST(๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ), IAST(๋ํํ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ), ์ํํธ์จ์ด ๊ตฌ์ฑ ๋ถ์ ๋ฑ๊ณผ ๊ฐ์ ๋ณด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ค์ํ ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ๋ ์ด๋ฏธ ์์ฑ๋ ์ฝ๋์ ์ค๋ฅ๋ฅผ ์๋ณํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ ์ ๋ถ์์ด๋ผ๊ณ ํฉ๋๋ค.
์ ์ ์ฝ๋ ๋ถ์์ ์ค์ ์ ๋๊ณ ๊ฐ๋จํ ์คํ ์์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋ก ๋ชจ๋ ๊ฒ์ ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ ์ ์ฝ๋ ๋ณด์ ๋ถ์์ ์ํด ์คํ ์์ค ๋๊ตฌ๋ฅผ ์ ํํ ์ด์
์ฌ๊ธฐ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ๋ค๋ฅธ ๊ฐ๋ฐ์๋ฅผ ๋๊ณ ์ถ์ดํ๋ ๊ฐ์ ์๊ฐ์ ๊ฐ์ง ์ฌ๋๋ค์ ์ปค๋ฎค๋ํฐ์์ ๊ฐ๋ฐํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฌด๋ฃ์ ๋๋ค. ์๊ท๋ชจ ํ์ด๋ ์คํํธ์ ์ด ์๋ ๊ฒฝ์ฐ ์คํ ์์ค ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฒ ์ด์ค์ ๋ณด์์ ํ ์คํธํจ์ผ๋ก์จ ๋น์ฉ์ ์ ์ฝํ ์ ์๋ ์ข์ ๊ธฐํ๊ฐ ์์ต๋๋ค. ๋์งธ, ๋ณ๋์ DevSecOps ํ์ ๊ณ ์ฉํ ํ์๊ฐ ์์ด ๋น์ฉ์ด ๋์ฑ ์ ๊ฐ๋ฉ๋๋ค.
์ข์ ์คํ ์์ค ๋๊ตฌ๋ ํญ์ ์ ์ฐ์ฑ์ ๋ํ ์ฆ๊ฐ๋ ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ๋ง๋ค์ด์ง๋๋ค. ๋ฐ๋ผ์ ๊ด๋ฒ์ํ ์์ ์ ํฌํจํ์ฌ ๊ฑฐ์ ๋ชจ๋ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด๋ฏธ ๊ตฌ์ถํ ์์คํ ์ ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ ํํ ๋๊ตฌ์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด ํ์ํ ๋๊ฐ ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ํฌํฌํ๊ณ ํ์ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฒด ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์คํ ์์ค ์ํํธ์จ์ด ๊ฐ๋ฐ์ โโ์ปค๋ฎค๋ํฐ์ ์ ๊ทน์ ์ธ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ ๊ฒฐ์ ์ ๋งค์ฐ ๋น ๋ฅด๊ณ ๋ช ํํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ค. ์คํ ์์ค ํ๋ก์ ํธ ๊ฐ๋ฐ์๋ ๋ณด๊ณ ์์ ๋ํ ์ฌ์ฉ์์ ํผ๋๋ฐฑ๊ณผ ์ ์์ ์์กดํฉ๋๋ค. ๋ฐ๊ฒฌ๋ ์ค๋ฅ ๋ฐ ๊ธฐํ ๋ฌธ์ .
์ฝ๋ ๋ณด์ ๋ถ์์ ์ํด Graaudit ์ฌ์ฉ
์ ์ ์ฝ๋ ๋ถ์์ ์ํด ๋ค์ํ ์คํ ์์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ๋ฒ์ฉ ๋๊ตฌ๋ ์์ต๋๋ค. ์ผ๋ถ ๊ฐ๋ฐ์๋ OWASP ๊ถ์ฅ ์ฌํญ์ ๋ฐ๋ฅด๊ณ ๊ฐ๋ฅํ ํ ๋ง์ ์ธ์ด๋ฅผ ๋ค๋ฃจ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์ฌ์ฉํ ๊ฒ์
๋๋ค
์ ์ ์ฝ๋ ๋ถ์์ ์ํ ์ ์ฌํ ๋๊ตฌ(RATS(Rough Auditing Tool for Security), Securitycompass Web Application Analysis Tool(SWAAT), Flawfinder ๋ฑ)๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Graaudit์ ๋งค์ฐ ์ ์ฐํ๋ฉฐ ์ต์ํ์ ๊ธฐ์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Graaudit์ด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ๊ธฐ์์ ๋ค๋ฅธ ์ต์
์ ์ฐพ์ ์ ์์ต๋๋ค.
์ด ๋๊ตฌ๋ฅผ ํน์ ํ๋ก์ ํธ์ ํตํฉํ๊ฑฐ๋, ์ ํํ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๊ฑฐ๋, ๋ชจ๋ ํ๋ก์ ํธ์์ ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ Graaudit์ ์ ์ฐ์ฑ์ด ๋ฐํ๋๋ ๊ณณ์ ๋๋ค. ๋จผ์ ์ ์ฅ์๋ฅผ ๋ณต์ ํด ๋ณด๊ฒ ์ต๋๋ค.
$ git clone https://github.com/wireghoul/graudit
์ด์ Graaudit๊ฐ ๋ช ๋ น ํ์์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
.bashrc(๋๋ ์ฌ์ฉ ์ค์ธ ๊ตฌ์ฑ ํ์ผ)์ ๋ณ์นญ์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
#------ .bashrc ------
alias graudit="~/bin/graudit"
์ฌ๋ถํ :
$ source ~/.bashrc # OR
$ exex $SHELL
์ค์น๊ฐ ์ฑ๊ณตํ๋์ง ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
$ graudit -h
๋น์ทํ ๊ฒ์ด ๋ณด์ด๋ฉด ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
๊ธฐ์กด ํ๋ก์ ํธ ์ค ํ๋๋ฅผ ํ
์คํธํ๊ฒ ์ต๋๋ค. ๋๊ตฌ๋ฅผ ์คํํ๊ธฐ ์ ์ ๋ด ํ๋ก์ ํธ๊ฐ ์์ฑ๋ ์ธ์ด์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๋ฌํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ~/gradit/signatures ํด๋์ ์์ต๋๋ค.
$ graudit -d ~/gradit/signatures/js.db
๊ทธ๋์ ๋ด ํ๋ก์ ํธ์์ ๋ ๊ฐ์ js ํ์ผ์ ํ ์คํธํ๊ณ Graaudit๋ ๋ด ์ฝ๋์ ์ทจ์ฝ์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ฝ์์ ํ์ํ์ต๋๋ค.
๋์ผํ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ํ
์คํธํด ๋ณผ ์ ์์ต๋๋ค. ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
Graudit์ ์ฅ์ ๊ณผ ๋จ์
Graaudit๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค. ๋ฐ๋ผ์ ๊ด๋ฒ์ํ ์ฌ์ฉ์์๊ฒ ์ ํฉํฉ๋๋ค. ๋ฌด๋ฃ ๋๋ ์ ๋ฃ ์๋ ๋ก๊ทธ์ ์ ์ ํ๊ฒ ๊ฒฝ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ๊ฐ ๊ณ์ํด์ ๊ฐ์ ๋๊ณ ์๋ค๋ ์ ์ด ๋งค์ฐ ์ค์ํ๋ฉฐ, ์ปค๋ฎค๋ํฐ๋ ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ ๋๊ตฌ๋ฅผ ์์๋ด๋ ค๋ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ๋ ๋์์ด ๋ฉ๋๋ค.
์ด๊ฒ์ ํธ๋ฆฌํ ๋๊ตฌ์ด์ง๋ง ์ง๊ธ๊น์ง๋ ์์ฌ์ค๋ฌ์ด ์ฝ๋ ์กฐ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ํญ์ ์ ํํ ์ฐพ์๋ผ ์๋ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ ๊ณ์ํด์ Graaudit๋ฅผ ๊ฐ์ ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ค ๊ฒฝ์ฐ์๋ ์ด์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋๋ ์ฝ๋์ ์ ์ฌ์ ์ธ ๋ณด์ ๋ฌธ์ ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค.
์์โฆ
์ด ๊ธฐ์ฌ์์๋ ์ทจ์ฝ์ ์ ์ฐพ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋์ธ ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ์ ์ ์ฝ๋ ๋ถ์์ ์ํํ๋ ๊ฒ์ ์ฝ์ง๋ง ์์์ ๋ถ๊ณผํฉ๋๋ค. ์ฝ๋๋ฒ ์ด์ค์ ๋ณด์์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ค๋ฅธ ์ ํ์ ํ ์คํธ๋ฅผ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ํตํฉํด์ผ ํฉ๋๋ค.
๊ด๊ณ ์ ๊ถ๋ฆฌ์
์ถ์ฒ : habr.com