κ·ΈλΌμΈ 곡과λν(μ€μ€νΈλ¦¬μ) μ°κ΅¬μ μ 3μ μ±λμ ν΅ν μλ‘μ΄ κ³΅κ²© λ°©λ²μ λν μ 보 ()λ₯Ό μ¬μ©νλ©΄ λ€λ₯Έ νλ‘μΈμ€, μ΄μ 체μ , κ°μ λ¨Έμ λ° λ³΄νΈλ μν΄λ μ΄λΈ(TEE, Trusted Execution Environment)μμ κΈ°λ° μ 보λ₯Ό μΆμΆν μ μμ΅λλ€. μ΄ λ¬Έμ λ Intel νλ‘μΈμμλ§ μν₯μ λ―ΈμΉ©λλ€. λ¬Έμ λ₯Ό μ°¨λ¨νλ κ΅¬μ± μμ μ΄μ .
λ¬Έμ λ MDS(Microarchitectural Data Sampling) ν΄λμ€μ μνλ©° νλνλ λ²μ μ λλ€. 2.0μμλ ZombieLoad κ³΅κ²©μ΄ λ°μνμ΅λλ€. ZombieLoad XNUMXμ λ€λ₯Έ MDS 곡격과 λ§μ°¬κ°μ§λ‘ λ§μ΄ν¬λ‘μν€ν μ² κ΅¬μ‘°(μ: Line Fill Buffer λ° Store Buffer)μ λ°μ΄ν°μ μ¬μ΄λ μ±λ λΆμ κΈ°μ μ μ μ©νμ¬ νλ‘μΈμ€μ μ¬μ©λλ λ°μ΄ν°λ₯Ό μμλ‘ μ μ₯νκ³ λ‘λ λ° μ μ₯ μμ μ μνν©λλ€. .
μλ‘μ΄ Zombieload 곡격 λ³μ’ TSX(νΈλμμ λκΈ°ν νμ₯) νμ₯μ ꡬνλ λΉλκΈ° μμ μ€λ¨(TAA, TSX Asynchronous Abort) λ©μ»€λμ¦μ μλ μ€μ λ°μνλ λμμ λν΄ νΈλμμ λ©λͺ¨λ¦¬ μμ μ μν λꡬλ₯Ό μ 곡νμ¬ μ±λ₯μ ν₯μμν΅λλ€. λΆνμν λκΈ°ν μμ (νμ©λκ±°λ μ€λ¨λ μ μλ μ§μλλ μμ νΈλμμ )μ λμ μΌλ‘ μ κ±°νμ¬ λ©ν°μ€λ λ μ ν리μΌμ΄μ μ ꡬνν©λλ€. μ€λ¨λλ©΄ νΈλμμ λ©λͺ¨λ¦¬ μμμμ μνλ μμ μ΄ λ‘€λ°±λ©λλ€.
νΈλμμ μ€λ¨μ λΉλκΈ°μ μΌλ‘ λ°μνλ©°, μ΄ μκ° λμ λ€λ₯Έ μ€λ λλ νκΈ°λ νΈλμμ λ©λͺ¨λ¦¬ μμμμλ μ¬μ©λλ μΊμμ μ‘μΈμ€ν μ μμ΅λλ€. λΉλκΈ° νΈλμμ μ€λ¨μ μμλΆν° μ€μ μλ£κΉμ§μ μκ° λμ νλ‘μΈμκ° μμ μ μΆμΈ‘ μ€ν μ€μ λ΄λΆ λ§μ΄ν¬λ‘μν€ν μ² λ²νΌμμ λ°μ΄ν°λ₯Ό μ½κ³ μ΄λ₯Ό μΆμΈ‘ μμ μΌλ‘ μ μ‘ν μ μλ μν©μ΄ λ°μν μ μμ΅λλ€. κ·Έλ° λ€μ μΆ©λμ΄ κ°μ§λκ³ μΆμΈ‘ μμ μ΄ μμ λμ§λ§ λ°μ΄ν°λ μΊμμ λ¨μ μμΌλ©° λΆμ±λ μΊμ 볡ꡬ κΈ°μ μ μ¬μ©νμ¬ κ²μν μ μμ΅λλ€.
곡격μ TSX νΈλμμ μ μ΄κ³ λΉλκΈ° μ€λ¨μ μν 쑰건μ μμ±νλ κ²μΌλ‘ μμ½λ©λλ€. μ΄ κΈ°κ° λμ λμΌν CPU μ½μ΄μμ μνλλ λ©λͺ¨λ¦¬ μ½κΈ° μμ μ λ°μ΄ν°λ‘ μΆμ μ μΌλ‘ μ±μμ§ λ΄λΆ λ²νΌμ λ΄μ©μ΄ λμΆλλ μ‘°κ±΄μ΄ λ°μν©λλ€. λμλ 곡격μμ μ½λκ° μ€ν μ€μΈ νμ¬ λ¬Όλ¦¬μ CPU μ½μ΄λ‘ μ νλμ§λ§ νμ΄νΌμ€λ λ© λͺ¨λμμλ λ§μ΄ν¬λ‘μν€ν μ² λ²νΌκ° μλ‘ λ€λ₯Έ μ€λ λ κ°μ 곡μ λλ―λ‘ λ€λ₯Έ CPU μ€λ λμμ μνλλ λ©λͺ¨λ¦¬ μμ μ΄ λμλ μ μμ΅λλ€.
곡격 5000μΈλ, 2.0μΈλ, XNUMXμΈλ Intel Core νλ‘μΈμμ μΌλΆ λͺ¨λΈκ³Ό Intel Pentium Gold, Intel Celeron XNUMX, Intel Xeon E, Intel Xeon W λ° XNUMXμΈλ Intel Xeon Scalableμ΄ μμ΅λλ€. XNUMXμμ μΆμλ Cascade Lake λ§μ΄ν¬λ‘μν€ν μ²λ₯Ό κΈ°λ°μΌλ‘ ν μλ‘μ΄ Intel νλ‘μΈμλ μ²μμλ RIDL λ° Fallout 곡격μ μ·¨μ½νμ§ μμμΌλ 곡격μ μ·¨μ½ν©λλ€. μ°κ΅¬μλ€μ Zombieload XNUMX μΈμλ 컀λμμ μ¬μ©μ 곡κ°μΌλ‘ λμκ° λ λλ μ μ΄κΆμ μ¬μ©μ 곡κ°μΌλ‘ μ μ‘ν λ λ§μ΄ν¬λ‘μν€ν μ² λ²νΌμ λ΄μ©μ μ§μ°λ VERW λͺ λ Ήμ μ¬μ©νμ¬ μ΄μ μ μ μλ MDS 곡격 λ³΄νΈ λ°©λ²μ μ°νν κ°λ₯μ±λ νμΈνμ΅λλ€. κ²μ€νΈ μμ€ν .
Intel λ³΄κ³ μμ λ°λ₯΄λ©΄ μ΄κΈ°μ’
λ‘λκ° μλ μμ€ν
μμλ 곡격μ μννλ λ₯λ ₯μ΄ μ΄λ ΅μ΅λλ€. λ§μ΄ν¬λ‘μν€ν
μ² κ΅¬μ‘°μ λμΆμ μμ€ν
μ λͺ¨λ νλμ ν¬κ΄νκ³ κ³΅κ²©μλ μΆμΆλ λ°μ΄ν°μ μμ€μ μν₯μ λ―ΈμΉ μ μκΈ° λλ¬Έμ
λλ€. νΉμ λ©λͺ¨λ¦¬ μ£Όμμ κ΄λ ¨λ λ°μ΄ν°λ₯Ό μλμ μΌλ‘ κ°λ‘μ±λ λ₯λ ₯ μμ΄ λμΆλ‘ μΈν΄ λνλλ μ λ³΄λ§ μΆμ νκ³ μ΄ λ°μ΄ν° μ€μμ μ μ©ν μ 보λ₯Ό μλ³νλ €κ³ μλν μ μμ΅λλ€. κ·Έλ¬λ μ°κ΅¬μ§μ λ°ν ,μμ μμ
Linux ΠΈ Windowsλν, 곡격μ ν΅ν΄ λ£¨νΈ μ¬μ©μ μνΈμ ν΄μκ°μ μμλΌ μ μλ€λ κ°λ₯μ±λ 보μ¬μ£Όμμ΅λλ€.
λ€λ₯Έ κ²μ€νΈ μμ€ν
, νΈμ€νΈ νκ²½, νμ΄νΌλ°μ΄μ λ° Intel SGX μν΄λ μ΄λΈμ μλμ λνλλ λ°μ΄ν°λ₯Ό μΆμ νκΈ° μν΄ κ²μ€νΈ μμ€ν
μμ 곡격μ μνν©λλ€.

μ·¨μ½μ μ μ°¨λ¨νκΈ° μν μμ μ¬ν 컀λ μ½λλ² μ΄μ€μ Linux κ·Έλ¦¬κ³ ν΄λΉ 릴리μ€μ ν¬ν¨λμμ΅λλ€. . μ£Όμ λ°°ν¬νμ λν 컀λ λ° λ§μ΄ν¬λ‘μ½λ μ λ°μ΄νΈλ μ΄λ―Έ 릴리μ€λμμ΅λλ€(, , , , , ). λ¬Έμ λ 4μμ νμΈλμμΌλ©° Intelκ³Ό μ΄μ 체μ κ°λ°μ κ°μ μμ μ¬νμ΄ μ‘°μ λμμ΅λλ€.
Zombieload 2.0μ μ°¨λ¨νλ κ°μ₯ κ°λ¨ν λ°©λ²μ CPUμμ TSX μ§μμ λΉνμ±ννλ κ²μ λλ€. 컀λμμ μ μν λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€. Linux μ΄ ν¨μΉμλ μ¬λ¬ μν μ΅μ μ΄ ν¬ν¨λμ΄ μμ΅λλ€. 첫 λ²μ§Έ μ΅μ μ "tsx=on/off/auto" λ§€κ°λ³μλ₯Ό μ 곡νλ©°, μ΄λ CPUμμ TSX νμ₯ κΈ°λ₯μ νμ±νν μ§ μ¬λΆλ₯Ό μ μ΄ν©λλ€(auto κ°μ μ·¨μ½ν CPUμ λν΄μλ§ TSXλ₯Ό λΉνμ±νν©λλ€). λ λ²μ§Έ μν μ΅μ μ "tsx_async_abort=off/full/full,nosmt" λ§€κ°λ³μλ₯Ό ν΅ν΄ νμ±νλλ©°, 컨ν μ€νΈ μ€μμΉ μ€μ λ§μ΄ν¬λ‘μν€ν μ² λ²νΌλ₯Ό μ§μ°λ λ°©μμ λλ€(nosmt νλκ·Έλ SMT/νμ΄νΌμ€λ λλ₯Ό μΆκ°λ‘ λΉνμ±νν©λλ€). μμ€ν μ μ·¨μ½μ λ ΈμΆ μ¬λΆλ₯Ό νμΈνλ €λ©΄ sysfsμ μ 곡λ "/sys/devices/system/cpu/vulnerabilities/tsx_async_abort" λ§€κ°λ³μλ₯Ό μ°Έμ‘°νμμμ€.
λν, λ§μ΄ν¬λ‘μ½λ λ€λ₯Έ κ² () Intel νλ‘μΈμμμλ μ΅μ λ²μ μμλ μ°¨λ¨λ©λλ€. ν΅μ¬ Linux. μ·¨μ½μ κΆν μλ 곡격μκ° μλΉμ€ κ±°λΆλ₯Ό μμνμ¬ μμ€ν
μ΄ "λ¨Έμ κ²μ¬ μ€λ₯" μνμμ μ μ§λλλ‘ ν©λλ€.
λ€μμ ν¬ν¨ν 곡격 κ²μ€νΈ μμ€ν
μμ.
μΆμ² : opennet.ru
