์บ ๋ธ๋ฆฌ์ง ๋ํ์ ์ฐ๊ตฌ์๋ค์ ๋๋ฃ ๊ฒํ ๋ฅผ ๊ฑฐ์น ์์ค ์ฝ๋์ ์ ์ฑ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์ฝ์ ํ๋ ๊ธฐ์ ์ ๋ฐํํ์ต๋๋ค. ์ค๋น๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ(CVE-2021-42574)์ Trojan Source๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์๋๋ฉฐ, ์ปดํ์ผ๋ฌ/ํด์์ ๋ฐ ์ฝ๋๋ฅผ ๋ณด๋ ์ฌ๋์๊ฒ ๋ค๋ฅด๊ฒ ๋ณด์ด๋ ํ ์คํธ ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. C, C++(gcc ๋ฐ clang), C#, JavaScript(Node.js), Java(OpenJDK 16), Rust, Go ๋ฐ Python์ฉ์ผ๋ก ์ ๊ณต๋๋ ๋ค์ํ ์ปดํ์ผ๋ฌ ๋ฐ ์ธํฐํ๋ฆฌํฐ์ ๋ํ ๋ฉ์๋์ ์๊ฐ ์ค๋ช ๋์ด ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์๋ฐฉํฅ ํ ์คํธ์ ํ์ ์์๋ฅผ ๋ณ๊ฒฝํ๋ ์ฝ๋ ์ฃผ์์ ํน์ ์ ๋์ฝ๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด๋ฌํ ์ ์ด ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ ์คํธ์ ์ผ๋ถ ๋ถ๋ถ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ์ํ๊ณ ๋ค๋ฅธ ๋ถ๋ถ์ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ํ์ํ ์ ์์ต๋๋ค. ์ผ์์ ์ผ๋ก ์ด๋ฌํ ์ ์ด ๋ฌธ์๋ ์๋ฅผ ๋ค์ด ํ๋ธ๋ฆฌ์ด ๋๋ ์๋์ด๋ก ๋ ์ฝ๋ ์ค์ ํ์ผ์ ์ฝ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง์ ๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฐฉํฅ์ด ๋ค๋ฅธ ์ค์ ํ ์ค์ ๊ฒฐํฉํ๋ฉด ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ํ์๋๋ ํ ์คํธ ๊ตฌ์ ์ด ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ์๋๋ ๊ธฐ์กด ์ผ๋ฐ ํ ์คํธ์ ๊ฒน์น ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ์ ์์ ์ธ ๊ตฌ๋ฌธ์ ์ถ๊ฐํ ์ ์์ง๋ง ๋ค์ ์ฃผ์์ ์ถ๊ฐํ๊ฑฐ๋ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ํ์๋ ๋ฆฌํฐ๋ด ๋ฌธ์ ๋ด๋ถ์ ์ถ๊ฐํ์ฌ ์ฝ๋๋ฅผ ๋ณผ ๋ ์ด ๊ตฌ๋ฌธ์ด ํฌํจ๋ ํ ์คํธ๊ฐ ๋ณด์ด์ง ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ ์์ ์ธ ์ฝ์ ์ ๋ค๋ฅธ ๋ฌธ์๊ฐ ๊ฒน์ณ์ง๋๋ค. ์ด๋ฌํ ์ฝ๋๋ ์๋ฏธ์์ผ๋ก๋ ์ฌ๋ฐ๋ฅธ ์ํ๋ก ์ ์ง๋์ง๋ง ๋ค๋ฅด๊ฒ ํด์๋๊ณ ํ์๋ฉ๋๋ค.
์ฝ๋๋ฅผ ๊ฒํ ํ๋ ๋์ ๊ฐ๋ฐ์๋ ๋ฌธ์์ ์๊ฐ์ ์์์ ์ง๋ฉดํ๊ฒ ๋๋ฉฐ ์ต์ ํ ์คํธ ํธ์ง๊ธฐ, ์น ์ธํฐํ์ด์ค ๋๋ IDE์์ ์์ฌ์ค๋ฝ์ง ์์ ์ฃผ์์ ๋ณด๊ฒ ๋์ง๋ง ์ปดํ์ผ๋ฌ์ ํต์ญ์ฌ๋ ๋ฌธ์์ ๋ ผ๋ฆฌ์ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ธ์ ์๋ฐฉํฅ ํ ์คํธ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์๊ณ ์ ์์ ์ธ ์ฝ์ ์ ์๋ ๊ทธ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ค์ํ ์ฝ๋ ํธ์ง๊ธฐ(VS Code, Emacs, Atom)์ ๋ฆฌํฌ์งํ ๋ฆฌ(GitHub, Gitlab, BitBucket ๋ฐ ๋ชจ๋ Atlassian ์ ํ)์์ ์ฝ๋๋ฅผ ๋ณด๊ธฐ ์ํ ์ธํฐํ์ด์ค์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์์ ์ธ ์์ ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์จ๊ฒจ์ง "๋ฐํ" ํํ์์ ์ถ๊ฐํ์ฌ ๋ฏธ๋ฆฌ ๊ธฐ๋ฅ์ ์๋ฃํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ ํจํ ๊ตฌ๋ฌธ์ผ๋ก ํ์๋๋ ํํ์์ ์ฃผ์ ์ฒ๋ฆฌํฉ๋๋ค(์: ์ค์ํ ๊ฒ์ฌ๋ฅผ ๋นํ์ฑํํ๊ธฐ ์ํด). ๋ฌธ์์ด ๊ฒ์ฆ ์คํจ๋ก ์ด์ด์ง๋ ๋ค๋ฅธ ๋ฌธ์์ด ๊ฐ ํ ๋น.
์๋ฅผ ๋ค์ด ๊ณต๊ฒฉ์๋ ๋ค์ ์ค์ ํฌํจํ๋ ๋ณ๊ฒฝ์ ์ ์ํ ์ ์์ต๋๋ค. if access_level != "user{U+202E} {U+2066}// Check if admin{U+2069} {U+2066}" {
์ด๋ ๋ง์น access_level != โuserโ { // ๊ด๋ฆฌ์์ธ์ง ํ์ธํ๋ ๊ฒ์ฒ๋ผ ๊ฒํ ์ธํฐํ์ด์ค์ ํ์๋ฉ๋๋ค.
๋ํ, ๋ชจ์์ ๋น์ทํ์ง๋ง ์๋ฏธ๊ฐ ๋ค๋ฅด๊ณ ์ ๋์ฝ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ๋ฌธ์์ธ ๋ํ ๋ฌธ์(์: ๋ฌธ์ "ษ"๋ " a", "ษก" - "g", "ษฉ" - "l"). ์ผ๋ถ ์ธ์ด์์๋ ํจ์ ๋ฐ ๋ณ์ ์ด๋ฆ์ ์ ์ฌํ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ฅผ ์ค๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ก ๋ค๋ฅธ ์์ ์ ์ํํ๋ ๊ตฌ๋ณํ ์ ์๋ ์ด๋ฆ์ ๊ฐ์ง ๋ ๊ฐ์ ํจ์๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ถ์ ์์ด๋ ์ด ๋ ๊ธฐ๋ฅ ์ค ์ด๋ค ๊ธฐ๋ฅ์ด ํน์ ์์น์์ ํธ์ถ๋๋์ง ์ฆ์ ๋ช ํํ์ง ์์ต๋๋ค.
๋ณด์ ์กฐ์น๋ก์ ์ ๋์ฝ๋ ๋ฌธ์๋ฅผ ์ง์ํ๋ ์ปดํ์ผ๋ฌ, ์ธํฐํ๋ฆฌํฐ ๋ฐ ์ด์ ๋ธ๋ฆฌ ๋๊ตฌ๋ ์ฃผ์, ๋ฌธ์์ด ๋ฆฌํฐ๋ด ๋๋ ์ถ๋ ฅ ๋ฐฉํฅ์ ๋ณ๊ฒฝํ๋ ์๋ณ์(U+202A, U+202B, U +202C, U+202D, U+202E, U+2066, U+2067, U+2068, U+2069, U+061C, U+200E ๋ฐ U+200F). ์ด๋ฌํ ๋ฌธ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ฌ์์์๋ ๋ช ์์ ์ผ๋ก ๊ธ์ง๋์ด์ผ ํ๋ฉฐ ์ฝ๋ ํธ์ง๊ธฐ ๋ฐ ์ ์ฅ์ ์ธํฐํ์ด์ค์์ ์กด์ค๋์ด์ผ ํฉ๋๋ค.
๋ถ๋ก 1: GCC, LLVM/Clang, Rust, Go, Python ๋ฐ binutils์ ๋ํ ์ทจ์ฝ์ ํจ์น๊ฐ ์ค๋น๋์์ต๋๋ค. GitHub, Bitbucket ๋ฐ Jira๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. GitLab์ ๋ํ ์์ ์ด ์งํ ์ค์ ๋๋ค. ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋๋ฅผ ์๋ณํ๋ ค๋ฉด grep -r $'[\u061C\u200E\u200F\u202A\u202B\u202C\u202D\u202E\u2066\u2067\u2068\u2069]' /path/to/ ๋ช ๋ น์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ฒ
๋ถ๋ก 2: Plan 9 OS ๋ฐ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ธ Russ Cox๋ ์ค๋ช ๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ(Go, Rust, C++, Ruby)์ ๋ํด ์ง๋์น ๊ด์ฌ์ด ์ง์ค๋๊ณ ์ฌ๊ฐํ๊ฒ ๋ฐ์๋ค์ฌ์ง์ง ์๋๋ค๊ณ ๋นํํ์ต๋๋ค. . Cox์ ๋ฐ๋ฅด๋ฉด ์ด ๋ฌธ์ ๋ ์ฃผ๋ก ์ฝ๋ ํธ์ง๊ธฐ์ ์น ์ธํฐํ์ด์ค์ ์ ๋ณด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ์ด๋ ๊ฒํ ์ค์ ์ฌ๋ฐ๋ฅธ ๋๊ตฌ์ ์ฝ๋ ๋ถ์๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ถ์ธก์ฑ ๊ณต๊ฒฉ์ ์ฃผ๋ชฉํ๊ธฐ๋ณด๋ค๋ ์ฝ๋ ๋ฐ ์ข ์์ฑ ๊ฒํ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ์ง์คํ๋ ๊ฒ์ด ๋ ์ ์ ํ ๊ฒ์ ๋๋ค.
Ras Cox๋ ๋ํ ์ปดํ์ผ๋ฌ๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ ํฉํ ์ฅ์๊ฐ ์๋๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ์๋ํ๋ฉด ์ปดํ์ผ๋ฌ ์์ค์์ ์ํํ ๊ธฐํธ๋ฅผ ๊ธ์งํจ์ผ๋ก์จ ์ด๋ฌํ ๊ธฐํธ์ ์ฌ์ฉ์ด ํ์ฉ๋๋ ๋น๋ ์์คํ
, ์ด์
๋ธ๋ฌ, ํจํค์ง ๊ด๋ฆฌ์ ๋ฐ ๋ค์ํ ๊ตฌ์ฑ ํ์ ๋ฐ ๋ฐ์ดํฐ. ์๋ฅผ ๋ค์ด, ์ปดํ์ผ๋ฌ์์ LTR/RTL ์ฝ๋ ์ฒ๋ฆฌ๋ฅผ ๊ธ์งํ์ง๋ง Cargo.toml ํ์ผ์ ํตํด ์ ์ฌํ ๊ณต๊ฒฉ์ ํ์ฉํ๋ Cargo ํจํค์ง ๊ด๋ฆฌ์์ ์์ ์ฌํญ์ ์ถ๊ฐํ์ง ์์ Rust ํ๋ก์ ํธ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก BUILD.bazel, CMakefile, Cargo.toml, Dockerfile, GNUmakefile, Makefile, go.mod, package.json, pom.xml ๋ฐ ์๊ตฌ ์ฌํญ.txt์ ๊ฐ์ ํ์ผ์ ๊ณต๊ฒฉ ์์ค๊ฐ ๋ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru