์ฑ์ฅํ๋ ์คํํธ์
์ด ์ฑ๊ฒจ์ผ ํ ๊ฒ-2
์ง๋ ์๊ฐ์ ์ด์ด ๋ค๋ฃฐ ๋ด์ฉ์ ๋ณด์์ ๋ํ ๋ถ๋ถ์ด๋ค. ํํ ๋ณด์์ ๋์ค์ ์ฌ์ ๊ฐ ๋๋ฉด,์ด๋ผ๊ณ ๋ฏธ๋ฃจ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค์ง๋ง ์ํคํ
์ฒ๋ฅผ ์ฒ์ ๊ตฌ์ฑํ ๋๋ถํฐ ์ด๋ฅผ ์ผ๋์ ๋๋ค๋ฉด ๋์ค์ ๋ณด๋ค ์ ์ ๋
ธ๋ ฅ์ผ๋ก ์์
ํ ์ ์๋ค.ย
์ ์ ์ด์ผ๊ธฐํ ๋๋ก, ๋ง ์ฌ์ฉ์์๊ฐ ๋์ด๋๋ ๊ทธ๋ญ์ ๋ญย โํฅํ' ์๋น์ค๋ผ๋ฉด ์ด์ ์ ๋ฉ๋ฆฌ ์ค๊ตญ์ด๋ ์ฌ๋ฌ ๋ค๋ฅธ ๊ตญ๊ฐ๋ค์์ ํดํน ์๋๋ ๋ค์ด์ค๊ณ ์ฌ์ฌ ์
์ง์ด ์จ๋ค. ์ฒ์ ์๋น์ค ์คํํ ๋์ผ ์ผ๊ธฐ์ค๊ธฐ ๋ง ์ง์ฌ์ง ์ฝ๋๋ก ์ด๋ป๊ฒ๋ ๋์๊ฐ๊ธฐ๋ง ํ๋ฉด ๋์๋ค์ง๋ง ์ด์ ํ๋์ฉ ๋ฐ๋ก์ก์์ผ ํ ๋๊ฐ ์จ ๊ฒ์ผ์ง ๋ชจ๋ฅธ๋ค. ์์ฌ์๋ ๋ค๋ฅธ ํ ์ผ๋ ๋ง์๋ฐ ํํ์ด๋ฉด ์ ์ง๊ธ, ์ด ์์ ์์ ๋ณด์์ ์ ๊ฒฝ์จ์ผ ํ๋์ง, ๋ ์ด๋ค ์ฌํญ์ ์ด๋ป๊ฒ ์ฒดํฌํด์ผ ํ๋์ง ์ง๊ณ ๋์ด๊ฐ์.
๋ณด์, ์ ํ์ํ๊ฐ?
๋ฐ์ดํฐ ์ ์ถ์ ํผํด๋ ์๊ฐ๋ณด๋ค ์ฌ๊ฐํ๋ฐ, ๋ฌด์๋ณด๋ค ๊ณ ๊ฐ์ ์๋น์ค ์ ๋ขฐ๋๋ฅผ ๋ฌด๋๋จ๋ฆด ์ ์๋ค. ํ๋ฒ ๋ ๋๊ฐ ๊ณ ๊ฐ์ ๋์์ค์ง ์์ ๊ฒ์ด๋ค.
ํ์ฌ์ IP(์ง์ ์ฌ์ฐ๊ถ ์ปจํ
์ธ ๋ฑ)์ ๊ฐ์ข
๊ฐ์ธ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ์๋ค. ์ด๋ ๋ค๋ฅธ ๋ฒ์ ์ด์๋ฅผ ์ ๋ฐํ๋ฉฐ ํ์ฌ์ ์ํด๋ฅผ ์ค ๊ฒ์ด๋ค.
ํดํน ํผํด๋ฅผ ๋นํ๊ณ ๋ ๊ทธ ๋ฒ์๋ฅผ ์ถ์ฐํ ์ ์๋ค. ์ ์๊ณ ์ธ์๊ฐ๋ ๊ณ ์น์ง ๋ชปํ๋ค.
๊ฐ์๋ก ๊ฐ์ข
ํดํน๊ธฐ๋ฒ์ ๋๊ตฌ๊ฐ ๋ค์ํด์ง๊ณ ์
์์ ์ธ ๊ณต๊ฒฉ์ด ๋์ด๋๊ณ ์๋ค. ๋ง์ฐ์ค ํด๋ฆญ ํ๋ฒ์ ํดํน๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ ์๋๋ผ์, ์๋น์ค ์ด๊ธฐ์์๋ถํฐ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์ด์ฑ
์ ์ผ๋์ ๋๋ ๊ฒ์ด ํ์ํ๋ค.
์ด๋ป๊ฒ ๋๋นํด์ผ ํ ๊น?
๋๋ถ๋ถ ๋ณด์์ ๊ฐ์ฅ ๋์ค์ ์ฐ์ ์์๋ก ๋ฏธ๋ฃจ๋ค ๋ณด๋ ๋ง์ ๋๊ฐ ๋ฅ์ณ๋ ์ด๋์์๋ถํฐ ์์ ๋์ง ๋ง๋งํ๋ค. ๋ค์์ ์ฒดํฌ๋ฆฌ์คํธ๋ก ํ๋์ฉ ์ ๊ฒํด๋๊ฐ์.
์๋ฒ์ ์๋ฒ๊ฐ ํธ์ถ(RPC), ์๋ฒ์ ํด๋ผ์ด์ธํธ(๋ชจ๋ฐ์ผ, ์น๋ธ๋ผ์ฐ์ ) ๋ฑ ๋คํธ์ํฌ ํต์ ์ ๋ฌด์กฐ๊ฑด ์ํธํํ๋ผ. ๋ฐ๋กย TLS/SSL์ธ๋ฐ, ํ์กดํ๋ ๊ฐ์ฅ ์์ ํ๊ณ ๋ ๋ณดํธ์ ์ธ ๊ธฐ๋ฒ์ด๋ผ ํ ์ ์๋ค.ย
์ฌ์ฉ์ ์์ฒญ(Request)์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋ฒ ๊ฑธ๋ฌ๋ด๊ณ (Sanitize/escape) ํญ์ ๊ฒ์ฆํ๋ผ(Validate). ์๋ฐ์คํฌ๋ฆฝํธ ํ๊ทธ, ์์ฝ๋ ๋ฌธ์(์๋ฅผ ๋ค์ด ํ๋ฐ์ดํ)๋ค์ ์ฝ๋ ๋ด์์ ํผ๋๋์ง ์๋๋ก ์ ์ฒ๋ฆฌํ๋ฉฐ ์
๋ ฅ๊ฐ์ ๋ฒ์ (์ซ์๋ฉด ์ต์๊ฐ๊ณผ ์ต๋์น ๋ด์ ๊ฐ๋ง ๋ฐ์)๋ฅผ ๊ฒ์ฆํ๋๋ก ํ์.
Safe coding, secure coding์ผ๋ก ์ผ์ปฌ์ด์ง๋ ์ฝ๋ฉ ๊ท๋ฒ์ ์ตํ๊ณ ๋ฐ๋ผ์ผ ํ๋ค. ์๋ฅผ ๋ค๋ฉด ์๋ฌ ๋ก๊ทธ์ ์ถ๋ ฅ ๋ ๋ฒจ์ ์กฐ์ ํ๋ค๋ ์ง, ์ธ์ด๋ณ๋ก, ๋ ํ๋ซํผ ๋ณ๋ก ๊ณต๊ฐ๋ ์๋ฃ๋ฅผ ์ฐพ๊ณ ์์งํ์.
ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ
, SQL์ธ์ ์
๋ฑ์ ํญ์ ์๋๋๋ ๊ณต๊ฒฉ ํํ์ด๊ณ ์์คํ
์ ์๋นํ ํผํด๋ฅผ ์ค ์ ์์์ ๋ช
์ฌํ์.
์ฟ ํค, ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ์กฐ์ฌํ์. ๋ฏผ๊ฐํ ๋ด์ฉ์ด๋ผ๋ฉด ์ํธํํ์ฌ ์ฌ์ฉํ๊ณ ์ฌ์ฉ์ ํ๋๋ผ๋ ๋์์ ๊ผญ ์ง์์ฃผ์ด์ผ ํ๋ค.
์ฝ๋ ๋ฆฌ๋ทฐ ๋ฑ์ ํตํด ๋ฌธ์ ์ ์ ์ฐพ๊ณ ๊ณต์ ํ๋ฉฐ ์ด๋ฅผ ๊ถ์ฅํ๋ ๊ฐ๋ฐ ๋ฌธํ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ์ด๋ฅผ ์ํด์๋ ํ์ฌ ๊ฒฝ์์ง์ ๋
ธ๋ ฅ์ด ์ ์คํ๋ค.
ํนํ, ๋ณด์ ๊ด๋ จ ์ด๋ฒคํธ(Audit, ๊ฐ์ฌ)๋ฅผ ์์ฑํ๋ ๊ฒ ์ค์ํ๋ค. ํดํน์ ๊ฐ์งํ ์ ์๊ฒ ์ค์ํ ๋จ์๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ด๋ค.ย
๋ณด์ ๊ด๋ จ ๋ ํผ๋ฐ์ค๋ก๋ ๋ค์ ๋ ๊ฐ์ง๋ฅผ ๋ง์ด ์ฐธ๊ณ ํ๋ค.
๊ณตํต์ทจ์ฝ์ ๋ชฉ๋กย (Common Weakness Enumeration, CWE): CWE๋ ์ํํธ์จ์ด ๋ณด์ ๋ฐ ํ์ง ๊ฐํ๋ฅผ ์ํด ๊ฐ๋ฐ ์์ ์ฐธ๊ณ ํ ์ ์๋๋ก ์ ์ธ๊ณ ์ํํธ์จ์ด ์ทจ์ฝ์ ์ ํ์คํํ ๋ชฉ๋ก์ผ๋ก ๋ฏธ๊ตญ ๊ตญํ ์์ ๋ถ์ ๋ฏธ๊ตญ ๊ตญ๋ฆฝํ์ค๊ธฐ์ ์ฐ๊ตฌ์(NIST) ์ฐํ ๋น์๋ฆฌ ๊ธฐ๊ด์ธ ๋ฏธํธ๋ฆฌ(MITRE)์์ ํ์.
๊ณตํตํ๊ฐ๊ธฐ์คย (Common Criteria, ์ฝ์ด CC)๋ ์ปดํจํฐ ๋ณด์์ ์ํ ๊ตญ์ ํ์ค. IT ์ ํ์ด๋ ํน์ ์ฌ์ดํธ์ ์ ๋ณด ์์คํ
์ ๋ํด ์ ๋ณด ๋ณด์ํ๊ฐ ์ธ์ฆ์ ์ํ ํ๊ฐ ๊ธฐ์ค์ด๋ค.
์ฌ๊ธฐ์์๋ ์๋น์ค ์ด๊ธฐ์ ์ฑ๊ฒจ์ผํ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์๋ ๋ํ์ ์ธ ๊ฒ๋ค์ ์ฐธ๊ณ ์ผ์ ๊ณจ๋ผ๋ณด์๋ค.
๋ณด์ ๊ด๋ จ ์ด๋ฒคํธ (๊ฐ์ฌ) ์์ฑ ์ฝ๋๋ฅผ ๋ฃ๊ณ , ์ธ์ด ๋ ๋ฒจ, ํ๋ ์์ํฌ ๋ ๋ฒจ์์ ์ค์ ์ ์ ๊ฒํ์ (CWE-778 Insufficient Logging)
๊ฐ์ฌ์ ๋ํ ๊ฐ์ฌ๋ฅผ ์์ฑํด์ผ ํ๋ค. ๋ฌด์จ ๋ง์ด๋๋ฉด ํน์ ๊ฐ์ฌ์ ์ฑ
์ ๋๊ฑฐ๋ ์ผฐ์๋ ๊ทธ ์ด๋ฒคํธ ๋ํ ๊ธฐ๋ก์ด ๋์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ๋, ๋ก๊น
์ ๋น ์ง ์ฌํญ์ ์๋์ง ๋ค์์ ํญ๋ชฉ์ ์ฒดํฌํ์: ์์ฑ์์ , ์ด๋ฒคํธํ์
, ์ ์ ID, ์ฒ๋ฆฌ๊ฒฐ๊ณผ(์ฑ๊ณต์ธ์ง ์คํจ์ธ์ง) ๋ฑ์ ๊ธฐ๋กํ ๊ฒ (FAU_GEN.1.1)
๋ก๊น
๋๋ ๋ด์ฉ์ ๋ณด์ ๊ด๋ จ ์ด์๋ ์๋๊ฐ: ์ ์ ๊ฐ ์
๋ ฅํ ์ํธ๊ฐ, ๊ทธ๊ฒ๋ ํ๋ฌธ์ผ๋ก ์ ์ฅ๋๋ค๋ฉด? ํน์, ID ์
๋ ฅ๋์ ์ํธ๋ฅผ ์๋ชป ๋ฃ์๋๋ฐ ์ด๊ฒ์ด ๋ก๊ทธ๋ก ์ ์ฅ๋๋ค๋ฉด ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค. (FAU_GEN.1.2)
๋ก๊น
์ ์๊ณผ ๋ฒ์๋ฅผ ๊ณ ๋ คํ ์ฝ๋๋ฅผ ์์ฑํ์. ๋ฌดํฑ๋๊ณ ๋ก๊น
์ ์ํจ๋ค๋ฉด ์
์์ ์ธ ๋ก๊ทธ ์์ฑ ๊ณต๊ฒฉ์ ์์คํ
์ด ๋ง๋น๋ ์ง๋ ๋ชจ๋ฅธ๋ค. - CWE-779, CWE-406