컀λμ cgroups v1 리μμ€ μ ν λ©μ»€λμ¦ κ΅¬νμμ λ°κ²¬λ μ·¨μ½μ (CVE-2022-0492)μ λν μΈλΆ μ λ³΄κ° κ³΅κ°λμμ΅λλ€. Linuxμ΄λ 격리λ 컨ν μ΄λμμ νμΆνλ λ° μ¬μ©ν μ μμ΅λλ€. λ¬Έμ λ 컀λλΆν° λνλκΈ° μμν©λλ€. Linux 2.6.24 λ²μ μμ λ°μνλ λ¬Έμ κ° μ»€λ λ¦΄λ¦¬μ€ 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 λ° 4.9.301μμ μμ λμμ΅λλ€. κ° λ°°ν¬νμ ν¨ν€μ§ μ λ°μ΄νΈ 릴리μ€λ λ€μ νμ΄μ§μμ νμΈν μ μμ΅λλ€. Debian, μμΈ, UbuntuRHEL, Fedora, Gentoo, Arch Linux.
μ΄ μ·¨μ½μ μ μ 체 κΆνμΌλ‘ νΈλ€λ¬λ₯Ό μ€νν λ μ μ ν κ²μ¬λ₯Ό μννμ§ λͺ»νλ release_agent νμΌ νΈλ€λ¬μ λ Όλ¦¬ μ€λ₯λ‘ μΈν΄ λ°μν©λλ€. release_agent νμΌμ cgroupμ νλ‘μΈμ€κ° μ’ λ£λ λ 컀λμ΄ μ€νν νλ‘κ·Έλ¨μ μ μνλ λ° μ¬μ©λ©λλ€. μ΄ νλ‘κ·Έλ¨μ λ£¨νΈ μ΄λ¦ 곡κ°μ λͺ¨λ "κΈ°λ₯"μ μ¬μ©νμ¬ λ£¨νΈλ‘ μ€νλ©λλ€. release_agent μ€μ μ κ΄λ¦¬μλ§ μ κ·Όν μ μλ€κ³ κ°μ νμ§λ§ μ€μ λ‘λ λ£¨νΈ μ¬μ©μμκ² μ κ·Ό κΆνμ λΆμ¬νλ κ²μΌλ‘ μ νλμ΄ μμ΄ μ»¨ν μ΄λμμ μ€μ μ΄ λ³κ²½λκ±°λ κ΄λ¦¬μ κΆνμ΄ μλ λ£¨νΈ μ¬μ©μ(CAP_SYS_ADMIN)κ° μ€μ μ λ³κ²½νλ κ²½μ°λ μ μΈλμ§ μμμ΅λλ€. ).
μ΄μ μλ μ΄λ¬ν κΈ°λ₯μ΄ μ·¨μ½μ μΌλ‘ μΈμλμ§ μμμΌλ, 컨ν μ΄λμ λ£¨νΈ μ¬μ©μμ κ²ΉμΉμ§ μλ λ³λμ λ£¨νΈ μ¬μ©μλ₯Ό 컨ν μ΄λμ μμ±ν μ μλ μ¬μ©μ λ€μμ€νμ΄μ€(μ¬μ©μ λ€μμ€νμ΄μ€)μ μΆνμΌλ‘ μν©μ΄ λ°λμμ΅λλ€. μ£Όμ νκ²½. λ°λΌμ 곡격μ κ²½μ° λ³λμ μ¬μ©μ ID 곡κ°μ μ체 λ£¨νΈ μ¬μ©μκ° μλ 컨ν μ΄λμ release_agent νΈλ€λ¬λ₯Ό μ°κ²°νλ κ²μΌλ‘ μΆ©λΆνλ©°, νλ‘μΈμ€κ° μλ£λ ν κΈ°λ³Έ νκ²½μ μ 체 κΆνμΌλ‘ μ€νλ©λλ€.
κΈ°λ³Έμ μΌλ‘ cgroupfsλ μ½κΈ° μ μ© λͺ¨λλ‘ μ»¨ν μ΄λμ λ§μ΄νΈλμ§λ§, CAP_SYS_ADMIN κΆνμ΄ μκ±°λ unshare μμ€ν νΈμΆμ μ¬μ©νμ¬ λ³λμ μ¬μ©μ λ€μμ€νμ΄μ€κ° μλ μ€μ²© 컨ν μ΄λλ₯Ό μμ±νλ©΄ μ°κΈ° λͺ¨λμμ μ΄ pseudofsλ₯Ό λ€μ λ§μ΄νΈνλ λ° λ¬Έμ κ° μμ΅λλ€. μμ±λ 컨ν μ΄λμ λν΄ CAP_SYS_ADMIN κΆνμ μ¬μ©ν μ μμ΅λλ€.

μ΄ κ³΅κ²©μ 격리λ 컨ν μ΄λμμ λ£¨νΈ κΆνμΌλ‘ μννκ±°λ, μΆκ° κΆν λΆμ¬λ₯Ό λ°©μ§νλ no_new_privs νλκ·Έ μμ΄ μ»¨ν μ΄λλ₯Ό μ€νν λ μνν μ μμ΅λλ€. μμ€ν μμ μ¬μ©μ λ€μμ€νμ΄μ€κ° νμ±νλμ΄ μμ΄μΌ ν©λλ€(κΈ°λ³Έμ μΌλ‘ νμ±νλ¨). Ubuntu Fedoraμμλ μ¬μ© κ°λ₯νμ§λ§ νμ±νλμ΄ μμ§λ μμ΅λλ€. Debian RHELμ ν¬ν¨ν λ€μν μ΄μ체μ μμ μ¬μ© κ°λ₯ν λ£¨νΈ cgroup v1μ λν μ κ·Ό κΆνμ΄ νμν©λλ€(μ: Dockerλ λ£¨νΈ RDMA cgroupμμ 컨ν μ΄λλ₯Ό μ€νν©λλ€). CAP_SYS_ADMIN κΆνμ μ¬μ©ν΄λ κ³΅κ²©μ΄ κ°λ₯νλ©°, μ΄ κ²½μ°μλ μ¬μ©μ λ€μμ€νμ΄μ€ μ§μ λ° λ£¨νΈ cgroup v1 κ³μΈ΅ ꡬ쑰μ λν μ κ·Ό κΆνμ΄ νμνμ§ μμ΅λλ€.
격리λ 컨ν μ΄λμμ νμΆνλ κ² μΈμλ μ·¨μ½μ μ "κΈ°λ₯"μ΄ μλ λ£¨νΈ μ¬μ©μ λλ CAP_DAC_OVERRIDE κΆνμ΄ μλ μ¬μ©μκ° μμν νλ‘μΈμ€λ νμ©ν©λλ€(곡격μ μν΄μλ /sys/fs/cgroup/*/release_agent νμΌμ λν μ‘μΈμ€κ° νμν©λλ€. λ£¨νΈ μμ ) λͺ¨λ μμ€ν μ "κΈ°λ₯"μ μ‘μΈμ€ν μ μμ΅λλ€.
μ°Έκ³ λ‘, Seccomp, AppArmor λλ SE λ³΄νΈ λ©μ»€λμ¦μ μ¬μ©νλ κ²½μ°μλ ν΄λΉ μ·¨μ½μ μ μ
μ©ν μ μμ΅λλ€.Linux 컨ν
μ΄λμ μΆκ°μ μΈ κ²©λ¦¬λ₯Ό μν΄ Seccompλ unshare() μμ€ν
νΈμΆμ μ°¨λ¨νκ³ AppArmor λ° SEλ λ§μ°¬κ°μ§μ
λλ€.Linux cgroupfsλ₯Ό μ°κΈ° λͺ¨λλ‘ λ§μ΄νΈνλ κ²μ νμ©νμ§ λ§μμμ€.
μΆμ² : opennet.ru
