ืจืขืกืขืึทืจืืฉืขืจืก ืคืื ืืื ืืืืขืจืกืืืขื ืคืื ืงืืืืืจืืืืฉ ืืึธืื ืืจืืืก ืึท ืืขืื ืืง ืคึฟืึทืจ ืืืฉืืืงืข ืื ืกืขืจืืื ื ืืืืืข ืงืึธื ืืื ืคึผืืืจ-ืจืืืืืื ืืงืืจ ืงืึธื. ืืขืจ ืฆืืืขืืจืืื ืึทืืึทืง ืืืคึฟื (CVE-2021-42574) ืืื ืืขืจืืื ืื ืืื ืืขืจ ืื ื ืึธืืขื Trojan Source ืืื ืืื ืืืืืจื ืืืืฃ ืื ืคืึธืจืืืจืื ื ืคืื ืืขืงืกื ืืืึธืก ืงืืงื ืึทื ืืขืจืฉ ืคึฟืึทืจ ืื ืงืึทืืคึผืืืืขืจ / ืื ืืขืจืคึผืจืืืขืจ ืืื ืืขืจ ืืขื ืืฉ ืืืืืื ื ืื ืงืึธื. ืืืืฉืคืืื ืคืื ืืขื ืืืคึฟื ืืขื ืขื ืืขืืึทื ืกืืจืืืืื ืคึฟืึทืจ ืคืึทืจืฉืืื ืงืึทืืคึผืืืืขืจื ืืื ืื ืืขืจืคึผืจืึทืืขืจื ืกืึทืคึผืืืื ืคึฟืึทืจ C, C ++ (ืืงืง ืืื ืงืืึทื ื), C #, ืืืฉืึทืืืึทืกืงืจืืคึผื (Node.js), Java (OpenJDK 16), Rust, Go ืืื Python.
ืืขืจ ืืืคึฟื ืืื ืืืืืจื ืืืืฃ ืื ื ืืฆื ืคืื ืกืคึผืขืฆืืขื ืืื ืืงืึธื ืืืชืืืช ืืื ืงืึธื ืืึทืืขืจืงืื ืืขื ืืืึธืก ืืืืฉื ืื ืึทืจืืืกืืืืึทืื ืกืืจ ืคืื ืืืืืืจืขืงืืืึธื ืึทื ืืขืงืกื. ืืื ืื ืืืืฃ ืคืื ืึทืืึท ืงืึธื ืืจืึธื ืืืชืืืช, ืขืืืขืืข ืืืืื ืคืื ืืขื ืืขืงืกื ืงืขื ืขื ืืืื ืืขืืืืื ืคืื ืืื ืงืก ืฆื ืจืขืื, ืืฉืขืช ืื ืืขืจืข - ืคืื ืจืขืื ืฆื ืืื ืงืก. ืืื ืืืึธืืขืืืง ืคืืจ, ืึทืืึท ืงืึธื ืืจืึธื ืืืชืืืช ืงืขื ืขื ืืืขืจื ืืขื ืืฆื, ืืืฉื, ืฆื ืึทืจืืึทื ืืืืื ืงืึธื ืฉืืจืืช ืืื ืืขืืจืขืืฉ ืึธืืขืจ ืึทืจืึทืืืฉ ืืื ืึท ืืขืงืข. ืืืขืจ ืืืื ืืืจ ืคืึทืจืืื ืื ืฉืืจืืช ืืื ืคืึทืจืฉืืืขื ืข ืืขืงืกื ืืื ืกืืจืืงืฆืืขืก ืืื ืืืื ืฉืืจื, ื ืืฆื ืื ืกืคึผืขืกืืคืืขื ืืืชืืืช, ืคึผืึทืกืืืืฉืื ืคืื ืืขืงืกื ืืขืืืืื ืคืื ืจืขืื ืฆื ืืื ืงืก ืงืขื ืขื ืึธืืืืขืจืืึทืคึผ ืืืืืกืืื ื ืจืขืืืืขืจ ืืขืงืกื ืืขืืืืื ืคืื ืืื ืงืก ืฆื ืจืขืื.
ืืื ืืขื ืืืคึฟื, ืืืจ ืงืขื ืขื ืืืืื ืึท ืืืืืข ืงืึทื ืกืืจืึทืงื ืฆื ืื ืงืึธื, ืึธืืขืจ ืืึทืื ืืขื ืืขืงืกื ืืื ืืขื ืงืึทื ืกืืจืึทืงื ืืืืขืืง ืืืขื ืืืจ ืืขื ืืขื ืงืึธื, ืืืจื ืึทืืื ื ืืื ืื ืคืืืืขื ืืข ืืึทืืขืจืงืื ื ืึธืืขืจ ืืื ืื ืืืืขืจืึทื ืืืชืืืช ืืขืืืืื ืคึฟืื ืจืขืื ืฆื ืืื ืงืก, ืืืึธืก ืืืขื ืคืืจื ืฆื ืืึธืจ. ืคืึทืจืฉืืืขื ืข ืืืชืืืช ืืขื ืขื ืกืืคึผืขืจืึทืืคึผืึธืืื ืืืืฃ ืื ืืืืืข ืื ืกืขืจืฉืึทื. ืึทืืึท ืงืึธื ืืืขื ืืืืึทืื ืกืขืืึทื ืืืงืึทืืื ืจืืืืืง, ืึธืืขืจ ืืืขื ืืืื ืื ืืขืจืคึผืจืึทืืึทื ืืื ืืขืืืืื ืืืคืขืจืขื ืืื.
ืืฉืขืช ืจืืืืืืื ื ืงืึธื, ืึท ืืขืืืขืืึธืคึผืขืจ ืืืขื ืืืื ืงืึธื ืคืจืึธื ืืขื ืืื ืื ืืืืืฉืึทืืืึทื ืกืืจ ืคืื ืื ืืืชืืืช ืืื ืืืขื ืืขื ืึท ื ืื-ืกืึทืกืคึผืืฉืึทืก ืืึทืืขืจืงืื ื ืืื ืึท ืืึธืืขืจื ืืขืงืกื ืจืขืืึทืงืืึธืจ, ืืืขื ืฆืืืื ื ืึธืืขืจ IDE, ืึธืืขืจ ืื ืงืึทืืคึผืืืืขืจ ืืื ืืืขืจืืขืฆืขืจ ืืืขื ื ืืฆื ืื ืืึทืืืฉืืงืึทื ืกืืจ ืคืื ืื ืืืชืืืช ืืื ืืืขื ืคึผืจืึธืฆืขืก ืื ืืืืืข ืื ืกืขืจืฉืึทื ืืื ืืื, ืึธื ืคึผืืืื ื ืืคืืขืจืงืืึทืืงืืึทื ืฆื ืื ืืืืืืจืขืงืืืึธื ืึทื ืืขืงืกื ืืื ืื ืืึทืืขืจืงืื ืืขื. ืื ืคึผืจืึธืืืขื ืึทืคืขืงืฅ ืคืึทืจืฉืืื ืคืึธืืงืก ืงืึธื ืจืขืืืงืฆืืข (VS Code, Emacs, Atom), ืืื ืืขืืื ื ืืื ืื ืืขืจืคืืืกืื ืคึฟืึทืจ ืืืืืื ื ืงืึธื ืืื ืจืืคึผืึทืืึทืืึธืจืื (GitHub, Gitlab, BitBucket ืืื ืึทืืข Atlassian ืคึผืจืึธืืืงืื).
ืขืก ืืขื ืขื ืขืืืขืืข ืืืขืื ืฆื ื ืืฆื ืืขื ืืืคึฟื ืฆื ืื ืกืืจืืืขื ื ืืืืืข ืึทืงืฉืึทื ื: ืึทืืื ื ืึท ืคืึทืจืืึธืจืื "ืฆืืจืืงืงืืืขื" ืืืืกืืจืืง, ืืืึธืก ืคืืจื ืฆื ืื ืงืึทืืคึผืืืฉืึทื ืคืื ืื ืคืื ืงืฆืืข ืคืึธืจืืืก ืคืื ืฆืืึทื; ืงืึทืืขื ืืื ื ืืืืก ืืืืกืืจืืงื ืืืึธืก ืืืึธืื ื ืึธืจืืึทืื ืืืื ืงืขื ืืืง ืืื ืืืืืืง ืงืึทื ืกืืจืึทืงืฉืึทื ื (ืืืฉื, ืฆื ืืืกืืืืึทื ืืืืืืืง ืืฉืขืงืก); ืึทืกืืื ืื ื ืื ืืขืจืข ืฉืืจืืงื ืืืึทืืืขืก ืืืึธืก ืคืืจื ืฆื ืฉืืจืืงื ืืืึทืืึทืืืืฉืึทื ืคืืืืืขืจื.
ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืึท ืึทืืึทืงืขืจ ืงืขื ืคืึธืจืฉืืึธืื ืึท ืขื ืืขืจืื ื ืืืึธืก ืืืื ืื ืฉืืจื: ืืืื ืึทืงืกืขืก_ืืขืืืขื != "ืืึทื ืืฆืขืจ{U+202E} {U+2066}// ืงืืง ืืืื ืึทืืืื{U+2069} {U+2066}" {
ืืืึธืก ืืืขื ืืืื ืืขืืืืื ืืื ืื ืึธืคึผืฉืึทืฆืื ื ืฆืืืื ื ืืื ืืืื ืึทืงืกืขืก_ืืขืืืขื != "ืืึทื ืืฆืขืจ" { // ืงืืง ืืืื ืึทืืืื
ืืื ืืขืจืฆื, ืื ืื ืืขืจ ืืึทืคืึทืื ืืืึทืจืืึทื ื ืืื ืคืืจืืขืืืืื (CVE-2021-42694), ืคึฟืึทืจืืื ืื ืืื ืื ื ืืฆื ืคืื ืืึธืืึธืืืืคืก, ืืืชืืืช ืืืึธืก ืืขื ืขื ืขื ืืขื ืืื ืืืืกืืขื, ืึธืืขืจ ืึทื ืืขืจืฉ ืืื ืืืึทืืฉ ืืื ืืึธืื ืคืึทืจืฉืืืขื ืข ืืื ืืงืึธื ืงืึธืืื (ืืืฉื, ืืขืจ ืืึทืจืึทืงืืขืจ "ษ" ืจืืืขืืืึทืื " ืึท, "ษก" - "ื", "ษฉ" - "ื"). ืขื ืืขืืข ืืืชืืืช ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืขืืืขืืข ืฉืคึผืจืึทืื ืืื ืื ื ืขืืขื ืคืื ืคืึทื ืืงืฉืึทื ื ืืื ืืืขืจืืึทืืึทืื ืฆื ืคืึทืจืคืืจื ืืขืืืขืืึธืคึผืขืจืก. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืฆืืืื ืคืึทื ืืงืฉืึทื ื ืืื ืื ืืืกืืื ืืืืืืฉืึทืืึทื ื ืขืืขื ืงืขื ืขื ืืืื ืืืคืืื ื ืืืึธืก ืืืจืืคืืจื ืคืึทืจืฉืืืขื ืข ืึทืงืฉืึทื ื. ืึธื ืึท ืืืืืืื ืึทื ืึทืืืกืืก, ืขืก ืืื ื ืืฉื ืืื ืงืืึธืจ ืืืึธืก ืคืื ืื ืฆืืืื ืคืึทื ืืงืฉืึทื ื ืืื ืืขืจืืคื ืืื ืึท ืกืคึผืขืฆืืคืืฉ ืึธืจื.
ืืื ืึท ืืืืขืจืืืื ืืึธืก, ืขืก ืืื ืจืขืงืึทืืขื ืืื ืึทื ืงืึธืืคึผืืืขืจืก, ืื ืืขืจืคึผืจืึทืืขืจื ืืื ืคึฟืึทืจืืึทืืืื ื ืืืฉืืจืื ืืืึธืก ืฉืืืฆื ืืื ืืงืึธื ืืืชืืืช ืืืืึทืื ืึท ืืขืืช ืึธืืขืจ ืืืืจืขื ืื ื ืืืื ืขืก ืืขื ืขื ืึทื ืคึผืขืจื ืงืึธื ืืจืึธื ืืืชืืืช ืืื ืืึทืืขืจืงืื ืืขื, ืืืืขืจืึทื ืืืืขืจืึทืื ืึธืืขืจ ืืืขื ืืืคืืขืจืก ืืืึธืก ืืืืฉื ืื ืจืืืืื ื ืคืื ืจืขืืืืืึทื (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 ืืื ืืื ืืืืืก. GitHub, Bitbucket ืืื Jira ืืืื ืคืึทืจืคืขืกืืืงื ืืขื ืึทืจืืืกืืขืื. ื ืคืึทืจืจืืืื ืคึฟืึทืจ GitLab ืืื ืืื ืคึผืจืึธืืจืขืก. ืฆื ืืืขื ืืืคืืฆืืจื ืคึผืจืึธืืืขืืึทืืืง ืงืึธื, ืขืก ืืื ืกืึทืืืืฉืขืกืืื ืฆื ื ืืฆื ืื ืืึทืคึฟืขื: grep -r $'[\u061C\u200E\u200A\u202A\u202B\u202C\u202D\u202E\u2066\u2067\u2068\u2069\uXNUMX/' ืืงืืจ
Addendum 2: Russ Cox, ืืืื ืขืจ ืคืื ืื ืืขืืืขืืึธืคึผืขืจืก ืคืื ืื Plan 9 OS ืืื ืื Go ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื, ืงืจืืืืงืืจื ืื ืืืขืจืืง ืืคืืขืจืงืืึทืืงืืื ืฆื ืื ืืืกืงืจืืืื ืึทืืึทืง ืืขืืึธื, ืืืึธืก ืืื ืืึทื ื ืืึทืืืืกื (Go, Rust, C ++, Ruby) ืืื ืืื ื ืืฉื ืืขื ืืืขื ืขืืขืก. . ืืืื Cox, ืื ืคึผืจืึธืืืขื ืืขืจ ืืืืคึผื ืงืึทื ืกืขืจื ื ืื ืจืืืืืง ืึทืจืืืกืืืืึทืื ืคืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืงืึธื ืจืขืืืงืฆืืข ืืื ืืืขื ืื ืืขืจืคืืืกืื, ืืืึธืก ืงืขื ืขื ืืืื ืกืึทืืืื ืืืจื ื ืืฆื ืื ืจืืืืืง ืืืฉืืจืื ืืื ืงืึธื ืึทื ืึทืืืืขืจื ืืขืฉืึทืก ืึธืคึผืฉืึทืฆืื ื. ืืขืจืืืขืจ, ืึทื ืฉืืึธื ืคืื ืืคืืขืจืงืืึทืืงืืื ืฆื ืกืคึผืขืงืืืึทืืืืืข ืื ืคืืื, ืขืก ืืืึธืื ืืืื ืืขืจ ืฆืื ืขืืขื ืฆื ืคืึธืงืืก ืืืืฃ ืืืคึผืจืืืืื ื ืงืึธื ืืื ืืขืคึผืขื ืืขื ืกื ืจืขืฆืขื ืืืข ืคึผืจืึทืกืขืกืึทื.
Ras Cox ืืืืืื ืืืื ืึทื ืงืึทืืคึผืืืืขืจื ืืขื ืขื ื ืืฉื ืื ืจืขืื ืึธืจื ืฆื ืคืึทืจืจืืืื ืืขื ืคึผืจืึธืืืขื, ืืืืึทื ืืืจื ืคืึทืจืืึธื ืืขืคืขืจืืขื ืกืืืืึธืืก ืืืืฃ ืื ืงืึทืืคึผืืืืขืจ ืืืจืื, ืขืก ืืืืืื ืึท ืจืืืืง ืคึผืืึทืกื ืคืื ืืืฉืืจืื ืืื ืืืึธืก ืื ื ืืฆื ืคืื ืื ืกืืืืึธืืก ืืื ืคึผืึทืกืืง, ืึทืืึท ืืื ืืืืขื ืกืืกืืขืืขื, ืึทืกืขืืืึทืืขืจื, ืคึผืขืงื ืืึทื ืึทืืืฉืขืจื ืืื ืคืึทืจืฉืืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืคึผืึทืจืกืขืจื ืืื ืืึทืื. ืืื ืึท ืืืืฉืคึผืื, ืื ืจืืกื ืคึผืจืืืขืงื ืืื ืืขืืขืื, ืืืึธืก ืคึผืจืึธืืืืืึทืืึทื ืื ืคึผืจืึทืกืขืกืื ื ืคืื LTR / RTL ืงืึธื ืืื ืื ืงืึทืืคึผืืืืขืจ, ืึธืืขืจ ืืื ื ืืฉื ืืืืื ืึท ืคืึทืจืจืืืื ืฆื ืื ืงืึทืจืืึธ ืคึผืขืงื ืคืึทืจืืืึทืืืขืจ, ืืืึธืก ืึทืืึทืื ืึท ืขื ืืขื ืืึทืคืึทืื ืืืจื ืื Cargo.toml ืืขืงืข. ืกืืืืืึทืจืื, ืืขืงืขืก ืึทืืึท ืืื BUILD.bazel, CMakefile, Cargo.toml, Dockerfile, GNUmakefile, Makefile, go.mod, package.json, pom.xml ืืื ืจืขืงืืืืจืขืืขื ืฅ.ืืงืกื ืงืขื ืขื ืืืขืจื ืงืืืืื ืคืื ืื ืคืืื.
ืืงืืจ: opennet.ru