Siemens เป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบง Jailhouse 0.12 hypervisor

เบšเปเบฅเบดเบชเบฑเบ” Siemens เบˆเบฑเบ”เบžเบตเบกเบกเบฒ เบเบฒเบ™เบ›เปˆเบญเบ hypervisor เบŸเบฃเบต เบ„เบธเบ 0.12. hypervisor เบฎเบญเบ‡เบฎเบฑเบšเบฅเบฐเบšเบปเบš x86_64 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ VMX+EPT เบซเบผเบท SVM+NPT (AMD-V), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต ARMv7 เปเบฅเบฐ ARMv8/ARM64 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ virtualization. เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ เบเบณ เบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒ เป€เบ„เบทเปˆเบญเบ‡เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบš Jailhouse hypervisor, เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเปเบžเบฑเบเป€เบเบฑเบ” Debian เบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™ เปเบˆเบเบขเบฒเบเป‚เบ”เบ เบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰ GPLv2.

hypervisor เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เป‚เบกเบ”เบนเบ™เบชเปเบฒเบฅเบฑเบš Linux kernel เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡ virtualization เปƒเบ™เบฅเบฐเบ”เบฑเบš kernel. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเปเบ‚เบเปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ kernel Linux เบ•เบปเป‰เบ™เบ•เปเปเบฅเป‰เบง. เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง, เบเบปเบ™เป„เบ virtualization เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ CPUs เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เบ‚เบญเบ‡ Jailhouse เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเปเบฅเบฐเบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ virtual เบเบฑเบš CPU เบ„เบปเบ‡เบ—เบตเปˆ, เบžเบทเป‰เบ™เบ—เบตเปˆ RAM เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบฎเบฒเบ”เปเบง. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ multiprocessor เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก virtual เป€เบญเบเบฐเบฅเบฒเบ”เบซเบผเบฒเบเบญเบฑเบ™, เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบเบฑเบšเบซเบผเบฑเบเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบ”เป‰เบงเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบเบฑเบš CPU, overhead เบ‚เบญเบ‡ hypervisor เป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™ - เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบผเบฑเบ CPU เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบงเบฝเบเบ‡เบฒเบ™เบญเบทเปˆเบ™เป†. เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ CPU เบ™เบตเป‰. เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ Jailhouse เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”, เบˆเปเบฒเบเบฑเบ”เป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ CPU cores.

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเปƒเบ™เบ„เบธเบ, เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก virtual เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "เบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบš" (เบซเป‰เบญเบ‡, เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ„เบธเบ). เบžเบฒเบเปƒเบ™เบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบš, เบฅเบฐเบšเบปเบšเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ”เบฝเบงเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš เปƒเบเป‰ เบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบซเบผเบฑเบ CPU เบ—เบตเปˆเบญเบธเบ—เบดเบ”เบ•เบปเบ™. เบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบšเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ•เบปเบ™เป€เบญเบ‡เบกเบฑเบ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบ–เบญเบ”เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ—เบตเปˆเบเบฐเบเบฝเบกเบžเบดเป€เบชเบ”เบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ เป„เบŸเบฅเปŒ .cell, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ” CPU, เบžเบฒเบเบžเบทเป‰เบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเบฐเบžเบญเบ” I/O เบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™เปƒเบซเป‰เบเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก.

Siemens เป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบง Jailhouse 0.12 hypervisor

เปƒเบ™เบฅเบธเป‰เบ™เปƒเปˆ

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบต Raspberry Pi 4 Model B เปเบฅเบฐ Texas Instruments J721E-EVM;
  • เป€เบฎเบฑเบ”เปƒเปเปˆ เบญเบธเบ›เบฐเบเบญเบ™ ivshmem เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบŠเบฅ. เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ ivshmem เปƒเบซเบกเปˆ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบชเปเบฒเบฅเบฑเบš VIRTIO;

    Siemens เป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบง Jailhouse 0.12 hypervisor

  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡เบซเบ™เป‰เบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ (hugepage) เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ CVE-2018-12207 เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบดเปƒเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบซเป‰เบญเบเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐ "เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”";
  • เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเป‚เบ›เป€เบŠเบ”เป€เบŠเบต ARM64, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ SMMUv3 (เบซเบ™เปˆเบงเบเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš) เปเบฅเบฐ TI PVU (เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™ Peripheral Virtualization). เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ PCI เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบฎเบฒเบ”เปเบง (เป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒ);
  • เปƒเบ™เบฅเบฐเบšเบปเบš x86 เบชเปเบฒเบฅเบฑเบšเบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบšเบฎเบฒเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบซเบกเบ” CR4.UMIP (User-Mode Instruction Prevention) เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเป‰เบฒเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™ SGDT, SLDT, SIDT. , SMSW เปเบฅเบฐ STR, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เป‚เบˆเบกเบ•เบต, เปเบ™เปƒเบชเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เปƒเบ™เบฅเบฐเบšเบปเบš.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™