TL; αα»α. αα αααα»αα’αααααααα ααΎαααααααααααΈαααααααΆαααααΉααααααααΎαααΆαα ααααΈαααα’αααα ααΎααΆαα ααα αΆαααΈαα»α ααααααα·ααα ααα½αααααΆαα αααααΆααααΈαα½αα ααΎαααΆαααααΆαααααααα ααΆααααααααααΊαααααααΆαααΎα αααα»ααααα ααααΆααα’αα αα·ααα·ααΆααααααααΆααααα»ααααα·ααΆααα αααα»ααααααααααααααΈααααααΆαααααΆααα ααΆαα ααα αΆααααααααΌαααΆααα·α αΆαααΆααΊ OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 αα·α 7 ααααΌα ααΆ Ubuntu 14.04, 12.04 αα·α 18.04 LTS α
αααααααααααΆααααΆ ααΌααααΈαααααααααΆαααααΌαααααΆα ααΌα
ααΆααΆαααΆααααα Canaries αα·ααααααΌαα―αααΆαααααΈααΆαα αα·αααΆααααααΌαααΆαααα½ααααααααα»ααααααααααααΆαα
α‘αΎαα ααααΆαααΆαααΆααααα’αΆααααααααααΆααα’αααα
ααααααα
ααααα·ααΆαα’αααΈααΆαααΆαααΆααααααΆααααΉαααΆαααΆααααααααααΌα
ααΆ stack clash αααααΆαα
αΆααα’αΆαααααααα
αααα»αααααααΆαααααΆααααΈααΆαααααα»αααααααΆα
ααΆααα·αα·αααα‘αΎααα·αααΆααααα αΆαααΆαα·ααΈααΆαααααααΆαααΆαα
ααα½αα
αααΎααααα»αααααΌαααΆαα’αα»αααααα
αααα»α Ubuntu 18.04 αα
ααααα·α OS αα·ααααααα·ααΈ αααααΆααααααα Debian 9α αααααΆααα·αααα OpenSUSE 12.4, CentOS 7 αα·α RHEL 7 ααα’αα»αααααααααααΆαααααΆαααΆαααΆααΌαααααΆα αα·αααΆαααΆαααΆαααΆααααααααα·α
ααααααααα ααααΌαβααΆαβααααΎβααΆααβααβααΌααβααΌααΆαβααΆαα½αβααΉαβαααα»αβαααα
ααβααααΆαααΎαβαααβααααΆααβααΆαα
ααα ααααΈααααΆα
ααΆαα·ααΆααααα»αααΆαααΆααΆααΌααααααα·ααΈαααααΆααα»αααΆααααααα αααααΈααΆααΆαα§αααααααααΎααααΆα αααΎααααααΆααααΆααα·ααΆαααΌααα·αα·αααα αα·αααΆααα·ααΆααααααααΎαααΆαααΆααααα ααααΌα ααΆααΆααα·ααααααααααααΆαααααα»αααΆαα’αα·αααααααααααα·ααΈα ααααα αα·αααΆααΆααααααααααα·ααΈααααα αααααααα·ααΈααααΎααα ααααα½αααααΌαααΆαααΆαααααααααααααααΌαααΆαααΆααααα αΆααααα’αααααΆααααα αΆαα₯ααααααα ααααΆαααΆαααΆααααα’αΆααααααα αααα»αααααααααα’αααΌα‘αΌαααΈααααα½ααααα αΌαααΌααααααα·αα αααα»αααααΈαααααα ααΎααα·αααααΉαααααααααα»αααΉααααα αΆα’ααααααααΆαα·α αα ααααΆααααααααααα α»ααααα’αΆα ααααααααααα ααΆαααα»ααααααα ααα»ααααααΎαααααααΌαααΆαααααααααααααααααααΆαααααΌαααααΆααααααααααΆαααΉαααΉα αααααΆααΏαααααααΌαα±ααααΎααααααΆααΌααααααΆαααααα·α α¬ααΆααααα’αΆαααααααΆαααααα ααα ααΆαααααααα α¬ααΌαααα α»αα
αααααΊααΆααααααααααα·ααΈααΆαααααααααΆαααΆαααΆα α¬αααααα·ααΈααΉαααΆαα
αΌααααααα ααΎααα·αα’αΆα
ααΆαααΆαααααααααααα α»ααα½αα
ααα½αααΆααα ααα»ααααααΎαα’αΆα
ααααΎα±ααααΈαα·αααααα’αααααΆααααα αΆαααΆααααααααΆα αα·ααααααααΆααααα αΆαααααααααααααΆααααααααΆαα α¬ααΆαααΆαα ααΆαααααααααααα
ααα α»αααΆαααααα ααΆαααΆαααΆαααααααααααΌαααΆαααααΎαα
αααα»αααααααααααααα·ααααα·ααΆαααααΎαααΆααα’αα ααα»αααααα·ααΈααΆααααααα»αααααΆαααΆαααααΆαααα
αααα»αααΆααααα»αααααΆα ααααα·αααααΆα αα·αααΆαα’αα»ααααα ααΈααα Canaries αα·α
CVE αα·ααα»ααααα·ααΆα
ααΎαααΆααα’ααααααΆααΆαααΎαα’ααααααααααΆαα
αααααΎαααΌα
ααΆ "αααααα·ααΈαααααΆαααααααααααα»ααααα
αΆαααααΆα" α¬ "ααααααααααααα·ααααα·ααΆααααααΆαααααααααααα»α"α ααΆααααααΆαα½αααααααααααα·αα·ααΎα
ααα½αααα»ααααααααααααΆα’αααΈααΆαααΆααααααααααΌα
ααΆ
ααΆα§ααΆα ααα ααΌααα·α αΆαααΆα ααα½αααα»ααα CVEs αααα»ααααααα XNUMX ααααΆαα α»ααααααααααααααΆααααΊαααααΈαα»α αα·αααΆαα ααα αΆααααΆαααΈαααααααααα·αααααα»αα ααα½αααααΆαααΊ Ubuntu, Debian, Red Hat Enterprise Linux αα·α OpenSUSE α
ααΌαααα αα½α
ααΎααααΆα αααααααααΆααααΎαα’αααΈαααα? ααΎα ααα½α CVEs αααααααΆααααααΆααΆαα ααα αΆααα½αααΊααΆααααααααααΆααα½ααααααααα? ααααΆαβα ααααΎαα ααΆα§ααΆα ααα αα αααα»αα’αααααααα α’αααααΉαααΎαααΆ Debian ααΆαααααααΆααα»ααααα·ααΆαααααΆααααΆαααΎαααααααααα ααΉα OpenSUSE α¬ RedHat Linux α αΎα Debian ααΆα CVEs α αααΎαααΆααααα αααααΆαααΆαααΆααααα αα½αααΆαα·αααΆααααααΆαα»ααααα·ααΆαααααααααααα ααΌααααΈααααααααΆααααα CVE αααα·ααααα αΆαααΆααΎααΆαααΆααααααααααΊ ααααααααααα . αα·αααα»ααααΆαααααααααααααααααΌαααΆαα ααα’α»ααααα αΆαααΈαααα αααα ααααΆ ααΆαααααααααααα ααΎααΆαααΆαααααααα ααα»ααααααΈαααα»αααΆαααααααααααα ααΊααΉαααα’αααααΆαααααΆαααα ααΎααΆαααΆαααΆααααααΆααα αααα»αααααααααααααααααααααΆαα αα·αααααΆα αα·ααααααααΆαααααα’αααααΆααααα αΆαα ααΎαααΈααααα ααα α’ααααααΆααααααΆαααΆααα CVE αα·ααα·ααΆαα’αααΈα’αααΈα’ααααααααα αα·αααΆαα α»αααααα α¬αα·αααααΆαα ααΆαααΆααααααααα ααΆααα»αααααΆαα αααα»α CVE α’αΆα αααααΆαααααΈαααααΆαααααααΈαα»αααΆααααααα·ααΈ αα½αααΆααααααΆααααααΆαααααα»ααα»ααααααΆααααΆαααααΎααααα α¬ααα αααααΌαααααΆαα’αααααααΎααααΆααα αααα»αα§ααΆα αααααααααΎα α ααα½α CVEs ααααααααα Debian α’αΆα αααα αΆααααΆαααΆααααααΆ Debian ααΉααααααΌααααα αααααααα·ααΈααΆααααα αααΎαα
ααΆααΆααα·αααΆαα αααααααα CVE αααααααααααΆαααΆααααααααα αααα’αα»ααααΆαα±ααα’ααααααααΎαααΆαααΆαααΆαααααααα ααΆαααΆααΎααααααΆααααα
αααΆααα’αααΈααΌαα ααα»ααααΆααααΆααααααααααα·ααΈ αααααΆααΆααααααΆααααα½ααααα»αααΆαααααααα·ααΈααΆαααααααααΆαααααααααααα
αα·ααααααΎαααααααΆααααααα ααΆαααααΎααα·αααΆαααααΎααα. αα
αααα»αααΌαααα ααΌαααΆαααΈ 2 αααα αΆαααΈααααααααΆαααΆαααααααααααααΆααααΆαα
ααα
αΆαααΆααα’αααααα»ααααααα XNUMX ααααΆαα
α»ααααααααα (
ααΌαααα αα½α
ααΆααα·α αα
αα αααα»αα’αααααααα ααΎαα ααααααΎααααα½αααΆααααααα
- ααΎα’αααΈαα ααΆαα»ααααα·ααΆαααααΆαα ααα αΆαααΈαα»α ααααααααααΆ? ααΎααααααΆαααΆαααΆαα’αααΈαααααααααΆααα αααα»αααΊααα αα·ααααααα·ααΈα αααααα’αααααααΎααααΆαα?
- ααΎααΆαααα½αααααααααΆαααααα·αα»αααΆαααααΆααααααΌαααΆααααααααΆ ααΆααααααΆαα ααα αΆααααΆαααΌα ααααα ?
- ααΎα’αααΈαα ααΆααΆαα’αΆαααααααΆααααααααααα αα αα·ααααααΆααααααααΆααααΆαα ααα αΆαααΈαα½αα?
- ααΎααΆαααΆαααΆαα’αααΈααααααααΌαααΆαα’αα»αααααααααΆαααααααααααααααΈαααΈαα½αα?
ααΆαααααΎαααΎαααΆαα ααα αΆα
ααΆααααααΆααΆαα·ααΆααααα»αααΆαααααααααααα·αα·ααααΉαααααΌαααΎααΆαααα‘αΎαααΆαα
ααα
αΆαααααααααα»αααααΈααΆαα
αααΎαα
ααα½αααααΆαααΆααααα·ααααα αΆαααΈα
ααα½αααααΆαααα‘αΎααα·αααααΆαααααααα αααααΆαααΆαααΆααααα αααΆαααααα Unix αααααΎαααΆαααΆαααααααααααΆαααΈαααααΆαα
αααΎα (αα
ααΎαααΆαααΈααααααααΆα 69,2%, ααα
ααΆαα
ααα
αΆα / αααα
ααααΌα
ααΆαααα
α’αΌααΉααααΌαααΈ α‘α₯
4.12.14-95.3-ααααΆαααΎα
#1 SMP αααααα»α ααΈ 5 ααααααΌ αααα 06:00:48 UTC ααααΆα 2018 (63a8d29)
Debian 9 (ααΆααααααΉα)
4.9.0-8-amd64
#1 SMP Debian 4.9.130-2 (2018-10-27)
CentOS 6.10
2.6.32-754.10.1.el6.x86_64
#1 SMP ααααα’ααααΆα ααΈ 15 ααααααΆ αααα 17:07:28 UTC ααααΆα 2019
CentOS 7
3.10.0-957.5.1.el7.x86_64
#1 SMP αααααα»ααα ααΈ 1 αααα»αααα αααα 14:54:57 UTC ααααΆα 2019
Red Hat Enterprise Linux Server 6.10 (Santiago)
2.6.32-754.9.1.el6.x86_64
#1 SMP αααααα»α ααΈ 21 αααα·α
ααα·ααΆ αααα 15:08:21 EST 2018
Red Hat Enterprise Linux Server 7.6 (Maipo)
3.10.0-957.1.3.el7.x86_64
#1 SMP Thu Nov 15 17:36:42 UTC 2018
α’ααΌααα»αααΌ 14.04 (Trusty Tahr)
4.4.0β140-ααΌαα
#166~14.04.1-α’ααΌααα»αααΌ SMP αα
αα 17 αα·α
ααα·ααΆ 01:52:43 UTC 20β¦
α’ααΌααα»αααΌ 16.04 (Xenial Xerus)
4.15.0β1026-gcp
#27~16.04.1-α’ααΌααα»αααΌ SMP αααααα»ααα ααΈ 7 ααααααΌ 09:59:47 UTC 2018
α’ααΌααα»αααΌ 18.04 (Bionic Beaver)
4.15.0β1026-gcp
#27- Ubuntu SMP Thu Dec 6 18:27:01 UTC 2018
ααΆααΆα 1
ΠΠ½Π°Π»ΠΈΠ·
α αΌαααΎααα·ααααΆααΆαααααααα ααΆααααααααααΊαααααααΆαααΎα ααααΌα ααΆαααααααααααααα·αααααα αααααααΆαααΆαααααααααα·ααΈααααααααααααα ααααααΆαα ααα αΆαααΈαα½ααα ααααΈαααα’ααα ααΌα ααααα αΎα ααΎααα·α αΆαααΆαααααα ααααΈαααα ααααααΆαααΎαααααΆαα ααα αΆαααΈαα½αα ααααα·αα’αΎααΎαααα ααααΈααααΆαααα·ααααα·αααααα (ααΌα ααΆαααα αα 'ααΆαααΆααααα' αααα Debian) αα·ααααα ααααΆααΈααΈααΈ (ααΌα ααΆαααα αα Nvidia ααΈαααα αααααααααΆα)α ααΎαααΈαααααα ααΎααα·ααα·αααΈααΆαα αααααααΊαααααααΆαααααα½α α¬ααΆαααααααα ααΆααααααααααΉαααααα»ααααα·ααΆαααα
ααΆααα·ααΆαααΆαααααααα ααΆααααααααααΊααα
ααΎαααΆαα’αα»ααααααααααΈαααΆααα·ααΆααααααα’ααααΎ
ααΆααΌαα
ααΊαααααααΈααΆαααΆααααααααΆααααααΉααααΉαα
ααααΈαααα’ααα α§ααΆα ααα CentOS 6.10 αα·α RHEL 6.10 αα
ααΎααΊααα 2.6.32 αααααααααααα·αααααααΆαααααΆα
αααΎααααααααΌαααΆαα’αα»αααααα
αααα»αααΊαααααααΈαααΌα
ααΆ
α ααα»α αα½αααααααααααΌααα·α αΆαααΆαα αααααααααΆαααααααα ααΆαααααααα ααΆααααααααααΊααααα½αα ααα½αααααααααΎαααααααΆααααα αΆαααα’αΆα ααααΎαααααΆαααα»ααααα·ααΆααααααα α§ααΆα ααααααααααα½αααΆα uprobes αα·α kprobes αααΌαα»αααΊααα αα·α BPF/eBPF α α’αα»ααΆαααααααααΎαααΊααααΌαααααΎααααααΆαααΆαααΎ ααΎααααΈαααααααΆαααΆαααΆααα·αααααΆαα αααααααΆαα½αααΆαα·ααααααΆααΏαααΌα ααΆα αααα»αααΆαααααΎααααΆαα α αΎαααΆαααααααααααα αααααα½αααααααααααΆα’ααααααααααΉαααα’αΆαααααααΆααααααΎαααΌαααααΆααα αααα»ααααααααααα½α α αΎαα ααα»ααααααααα·αααΎαααααΎαααΆαααααααααΌαααΆαααΎα α’ααααααααααααααααααααααααΌααααααα½ααα·αα·ααααααΆααααααα ααααααΆαααααΆαα
αααα‘ααααΎαααααααααΎααΆαα»αα
αααα»αααΆααΆαααΈ 2 ααΎαααΎαααΆ ααΊαααααααΎααααααααΌααααααΎαααΆα
αααΎααααααΆααααΆαααΆαααΆααααααΆααααΉαααΆαααααααααααα
ααααΆαααΆαααααααα ααΌα
ααΆααΆαααα
ααααΆαααααααΆα αα·αααΆαα αΌαα ααααα/α ααΆαα αααααΆαααΆαααΆααααα ααΎαααααααααΎαααΆ ααΌααααΈααααΆαα
ααα
αΆαααααααα·ααααααΈααααα»α αα·αααΆααααΆαα’αα»ααααααΆαααΆαααΆααααα»αααααΆαααΆαααααα (α§ααΆα ααα ααΆαα½ααααα
ααΆααα·ααΆααααααα·ααΈ
αα·ααα½αα±ααααααΆααααα’αΎααα ααΆαα
ααα
αΆαααααααααααΆααΆααααααααααα
αααα»ααααααΆ αααααΎαααααΆαα
ααααα ααΆαα’αΆααααααααααΆαααααα ααΆααα»αααααΆααΆαααΌααααΈαααααααΆαα
ααΆαα ααα αΆα
ααα»ααα ααΎαααΆαααΆααααααα ααα ααα½α 361 αααααΆααααΆαα ααα αΆαααΆααα’αα αααααΆααααααααα ααααΈαααα ααααααΆαααΎαααα»αααααα ααΎαααΆααααααΎααααααΎαα αααααααα ααααααα·αααΆααααααα·ααΈ ELF αααα’αΆα ααααα·ααααα·ααΆα ααΌα ααΆααααα αα»αααα’ααααα ααΆαα ααα αΆααααα αα αα·αα―αααΆαααααααΆααααΆαα ααα αΆαααααΌαααΆααααα αΆααααα»αααΌαα α£.
ααΌαααα αα½α
α’αααα’αΆα αααααΆααααΎαααΆ ααΆαα ααα αΆαααΆααααααααΎα αααα αα αα·ααααααααααααααΈαααΆααααα αααΎα αααααΆααΆαα‘αΌααΈααα αααααΆαααΆαααΆααααα αααα αα Ubuntu αα·α Debian αα½αααΆααααααααααααααΈαααΆα αααΎαααα (ααΆαααααΌαα»ααααα’αΆα ααααα·ααααα·ααΆα αα·αααΆααααα αα·ααααααΆααα) ααΆα CentOS, SUSE αα·α RHEL αααααΆααααααΆαα»αααααααΆαααααααααααΆααααα αΆααααα Ubuntu αα·α Debian (αα½ααααααααΆααααΆααααααα»ααααα αΆααααΈαααααααααααααΈαααααααααΆααα’αα αααα αα αααααΊα―αααΆαααααααααΌαααΆααα·ααΆαα αααΎααα)α αααααΆαααΆααααααΆααααΆαα·ααααα αααα’ααααα·α αΆαααΆααΎααΆαα’αΆααααααααΆααααα ααα ααΌα αααα ααΆαααΆαααααααααα αααα»ααααααααααααααΈααααα αααααα½αα’αΆα αααααΆααααααααααααΆα αααΎαααααααααααα’αααΌ ααΌα ααΆαααααΆααααααααΆααααααααα’αΆα αααααΆααααααααααααααααααΈαααΆααα’αααααααΆαα αΌαααΆα ααΆα ααα»α α αΆααααααΎα ααΌααααα‘ααααΎαααΆαα ααα αΆαααα ααα½αααΆαα’αΆααααααααα»αα αααααααα αααα αααα»αααααααααααααα·ααααα·ααΆαααααααααααΆα
αα αααα»αααΆαα ααα αΆαααααΎαααααΆααα’αα 60% αααααα ααααΆααααΆαα αα ααΆαα 10 ααΆαα’αΆαααααα ααΎαααΈααα αααα ααααααααΆαα ααα½αα αααΎαααααΆαα’αΆααααα (α αααΎαααΆα 100)α α’αα»ααααααΌα ααααΆα ααααααΆαα’αΆααααααααααα αααααα αααΆαα ααΌα αααααΆαααααΉααα»α αααα αααα½αα ααα½αααααΌαααΆαααααΎααααΆααααααααα ααααααααααααΆα αααΎααααα»αααΆαα ααα αΆα ααΌα ααααααΆαααΆαααααααααααα»ααααααΎααα½αα ααα½αααΆαα αΆαα·ααααααααα ααΆα§ααΆα ααα ααΆααΆαααΆααααααααΆααααααΈαααα ααα ααα½α 20 αααααΆαα ααα½αα’αα·ααααΆααααΆαα’αΆααααααααα αααΆααα αααα»α SLES, Centos 7, Debian 9 αα·α Ubuntu 18.04 (αααα‘αΆααΈαα½αααααα αΆαααΈαααα αα αα·αα ααα½αααααΆαααΉαααα’αααααα αααΆα)α
ααΆααΆα 3
ααΆααα·ααα½αα±ααα αΆααα’αΆααααααα αααααΈααΆααααααααααααα·ααααα·ααΆαααΆααα’αααααααΆααα·ααΆαααααΌαααΆααααααΎαα‘αΎααααααΆααααααΆαααααααα x86_64 α αΎααααα ααααΆαα αααΎαααΆαααααΆαααααααααααααΆααααααααΆ x86_64 αα·α x86 αααα ααααΆααΉαααΆααααΆααααααααααααααΈααααααΆααααααΆααααααααααααααααααΌα αααααΆααααα αΆααααα»αααΌαααΆαααΈ 5 α α₯.
ααΌαααα αα½α
αα ααααααααααΆαα ααΎαααΉαααααααααα’αααΈαααααααααααααΈααααααΆααα·ααΆαα
αααα·αα·ααΆαααΆαα―αααΆααααααΈα
αα α’αααααααΆααΆα αααΆα α’αααααααΌαααααααααααα»ααααααΎααα»ααααα·ααΆαααΆααΌαααααΆααααααΆαααααααααααααααΈααααααΆαααααΆααααααα’αααα ααΆαα ααα αΆαααΈαα»α ααΆα αααΎαααααΆαα½αααααααΈααααααααΎααΆααααα½ααα·αα·αααααααααα α§ααΆα ααα Debian/Ubuntu ααΆαααααααΈαααααααα αααααΆα§ααΆα αααααααΆαααΆαααααααΆααα
$ hardening-check $(which docker)
/usr/bin/docker:
Position Independent Executable: yes
Stack protected: yes
Fortify Source functions: no, only unprotected functions found!
Read-only relocations: yes
Immediate binding: yes
ααααααΈααα·αα·αααααΎαααααΆα
- Position Independent Executable (PIE): αααα αΆαααΆααΎαααααα’ααααααααααααα·ααΈα’αΆα ααααΌαααΆαααααΆααααΈαααα»αααα· ααΎααααΈαααααα ααΆαααΌαα ααααα ααααα·αααΎ ASLR ααααΌαααΆαααΎααα αααα»αααΊαααα
- Stack Protected: ααΆααΎααα Canaries ααααΌαααΆαααΎαααΎααααΈααΆαααΆααααααΆααααΉαααΆαααΆααααα αΆαααααααα
- ααααα Fortifyα ααΆααΎαα»αααΆααα·αααΆααα»ααααα·ααΆα (α§ααΆα ααα strcpy) ααααΌαααΆααααα½ααααααααΆααΈαααααΆααα»ααααα·ααΆαααΆααααααα½ααααα α αΎαααΆαα α ααΌααααααααααΆααα·αα·ααααα αααααααΎαααΆαααααΌαααΆααααα½ααααααααΆααΈααααα·αααΆααααα½ααα·αα·ααααααααα½ααα (α§ααΆα ααα memcpy αααα½αα±αα __memcpy_chk)α
- ααΆαααααΆααααΈαααα ααΆαααα’αΆα (RELRO)α ααΆααΎααΆαα»ααΆααΆαααααΆααααααΌαααΈααΆααααααΌαααΆααααααΆααααΆα’αΆαααΆαααααααα·αααΎααΆααααΌαααΆαααααα»ααααα αΆααααααΎαααααα·ααααα·ααΆαα
- ααΆαα αααααΆααα ααΆααΎαααααα·ααΈααααΆαααααααααΎαααΆαα’αα»ααααΆαα±ααααααΆααααΈααΆααα’αα αα»ααααααΆαααααα·ααααα·αααααα·ααΈα αΆααααααΎα (ααΆααααΎααΉα RELRO αααααα)α
ααΎααααααΆαααΆαααΎαααααααααΆαααα? ααΆα’αα»ααααα ααΆααα·ααΈαααααααααΆααααΎααααΈααααα»αααΈααΆαααΆαααΆαααΆααα’ααααΆαααΎ ααα»ααααααΆαααΆαααΆαααΆααααααΉααααΉα αααΆααααααΆααα’αααααΆααααα αΆαααΆαααααααααα α§ααΆα ααα,
ααΎαα αααα·ααααΆααΆααΎα―αααΆααααααααααααααΈαααα»ααααΆααα αααα»αααΆαα ααα αΆααααααΆααααα½αααααΌαααΆαααΆαααΆαααααα·ααΈααΆααααα αα·ααα·ααΈααΈααααααααα
- αααΈαααααα·αα’αΆα
ααααα·ααααα·ααΆα (
NX ) ααΆαααΆαααΆαααααα·ααααα·αααα»ααααααααΆαα½αααααα·ααα½αααααα·ααααα· ααΌα ααΆ stack heap ααΆααΎαα RPATH/ααααααΆα αααααΆααααααΌαααααα·ααααα·αααααααΎααααααααα·ααΈαααα»αααΆααααα ααΎααααΈααααααααααααΆααααααααααΌαααααΆα ααΈαα½αααΊ ααΆααΆαααααα·α αα αααααΆααααααααααααααΎαααΆαα½αα α’ααααααΆαααααααΆα’αα»ααααΆαα±ααα’αααααΆααααα αΆαα’αΆα αααααααααα»ααα αααα»αα’αααα αα αΆαααΆαα’αααΎα α·ααα α αΎαααααα·ααααα·ααΆααΆαα’αααΎα α·αααα αααααΆααααΈααΈα ααΆαααααααα ααΆααααααααααααΌαααααα·ααααα·αα·αααααΉαααααΌααα½ααααα»αααΆαααααΆαααΌαααααα·ααα½αα±αααα»αα α·ααααααα’αΆα ααΆαα±ααααΆααααα αΆαα½αα ααα½α (α§.ααΆαααΎαα‘αΎαα―ααα·αααα· , ααααΌα ααΆαααα αΆαααααα ).- ααΆαααΆαααΆαααΆααααααααα·α
ααααΆααΆααααααααααΆαααΆαααΆααααααΆααααΉαααΆαααΆααααα αΆαααααααααΆαα±ααααααααα½αααΎαααααααααααααααα’αααα
αα
αΆα (ααΌα
ααΆα ααΆ)α ααΆαβαααβαααααααα
βααααΈαβαααβααΆαβαααααβα±ααβαααβααααΆα
ααΆαααΆααααααααααααΆααααααααα·α ααααΆααΆαααααααα ααΎαααΆαα’αΆααααααααΆααΆαααααααααα»αααΆααααα αΌαααααααΆαααααα αααα»ααααα»ααα·ααααααααααααΎαα
ααΌα αααα ααΎβαα·αβα αΆαβααΆα αβαααβαα α αΌαβα α»αβαααβαααα ααΆααΆαααΈ 4 αα·αααΈ 5 ααΆαααα ααααΈααααααααααΆααα·ααΆαααα―αααΆααααα’αΆα ααααα·ααααα·ααΆα αα·ααααααΆαααααααΆαα ααα αΆααααααααααααααα½αα
- ααΌα αααα’αααα’αΆα ααΎαααΆαααΆαααΆα NX ααααΌαααΆαα’αα»αααααα αααααααΈαααααααααααΆαααααΈααΎααααααααααα ααΆαα·ααα ααα»αααααααΆααα’αΆα ααααααααΆααααΆαααααΎααααΆααααααααΆααΆαααΆαααααα·α αα αααα»αααΆαα ααα αΆα Ubuntu αα·α Debian ααΎαααααααααα ααΉα CentOS, RHEL αα·α OpenSUSE α
- ααα Canaries ααααΌαααΆαααΆαααα ααααααααΆα αααΎα ααΆαα·ααααα αααα»αααΆαα ααα αΆαααΆαα½αααΊαααα αΆαααα αααααααΆααα½αα ααα½αααααΌαααΆαααααΎαααΎααα αααα»αααΆαα ααα αΆαα α»αααααααααα»ααα Centos, RHEL, Debian αα·α Ubuntu α
- ααΎαααααα Debian αα·α Ubuntu 18.04 ααΆαα ααα αΆαααΆαα αααΎαααΆαααΆαααΆαααα PIE αα·αααα’α
- ααΆαααΆαααΆαααΆααααααααα·α ααααΆααΆαααααΊααααααα αααα»α OpenSUSE, Centos 7 αα·α RHEL 7 α αΎαααααΎααααα·αααΆααα αααα»αα§αααααααααααααα
- ααΆαα ααα αΆαααΆααα’ααααΆαα½αααΉαααΊαααααααΎαααΆαααΆαααΆαααααα½αα ααα½ααααααΆαα RELRO ααα Ubuntu 18.04 ααΆααα»ααα α αΎα Debian α αΌαααααΈααΈαα
ααΌα
αααααΆααααααΆαααα½α
ααα αΎα αααααΆαααα
αααα»αααΆααΆααααααΊααΆααααααααααΆααααααααΆααα’ααααα―αααΆααααααΈαα ααααα·αααΎα’αααααΎαααα―αααΆαααααα
α»αααααααααα»α αααααΉααα»αααααΆ (α§ααΆα ααα ααΌαααΎα
ααΆααΆαααΈ 4. αααααααα»ααααα·ααΆααααααΆααα―αααΆααααα’αΆα
ααααα·ααααα·ααΆαααααααα αΆααααα»αααΌαα 3 (ααΆαα’αα»αααααα»αααΆαααΆαααααααααΆααΆαααααα
ααα½αααα»αααα―αααΆααααα’αΆα
ααααα·ααααα·ααΆα)
ααΆααΆαααΈ 5. αααααααα»ααααα·ααΆααααααΆαααααααΆαααααααααα αΆααααα»αααΌαα 3 (ααΆαα’αα»αααααα»αααΆαααΆααααααααα·αααΆααΆαααααα
ααα½ααααααΆαααααα»α)
ααΌα
ααααααΎααΆαααΆαααΈαα
ααααΎααα? αα·αααΆααΆαα αααα’αΆα
ααΎαααΎαααΈαααα·αα·αααααΆααααΆαα
ααα
αΆααα»αααα (α§ααΆα ααα
ααΆα’αα»αα α―αααΆααααα’αΆα ααααα·ααααα·ααΆααα½αα ααα½ααα αααα»αααΆαα ααα αΆαααααααααααΆαα αααα·αααΆαααΆαααΆαααΆαααΆαααΎα α§ααΆα ααα αααα‘ααααΎα Ubuntu 18.04 α’αααααΉααααααΆααααΎα ngetty binary (ααΆααααα½α getty) ααααΌα ααΆ mksh αα·α lksh shells α’ααααααααα picolisp αααα αα nvidia-cuda-toolkit (αααα ααααααα·αααααααΆαααααααα·ααΈ GPU-accelerated ααΌα ααΆ αααααααααα·ααααΆαααΆαααΈα) αα·α klibc -utils α ααΌα ααααΆαααααα αααααααααααααΈα mandos-client (α§αααααααααααΆααααα’αα»ααααΆαα±ααα’αααα αΆααααααΎααααΆαααΈαα‘αΎααα·ααααααααααααααααα·ααΆαα½αααΉαααααααααα―αααΆααααααΆαα’αα·αααααΈα) ααααΌα ααΆ rsh-redone-client (ααΆαα’αα»ααααα‘αΎααα·ααα rsh αα·α rlogin) αααααααΆαααΆαααΆαααΆα NX αααααΈααΆαα½αααααΆααα·αααα· SUID αααααα (α ααααα αααααααααααααΈα suid ααΆα αααΎαααααααΆαααΆαααΆαααΆααΌαααααΆαααΌα ααΆ stack canaries (α§ααΆα ααα Xorg.wrap binary ααΈαααα αα Xorg)α
ααα ααααΈαααααα αα·αααα ααααΈααααα·ααααΆα
αα αααα»αα’αααααααα ααΎαααΆαααΌααααααΆααααΈαααααααα»ααααα·ααΆααα½αα ααα½αααααΆαα ααα αΆαααΈαα»α ααααΎαα ααΆααα·ααΆαααΆααααα αΆαααΆααΆαα ααα αΆα Ubuntu LTS α α»αααααααααα»α (18.04) α’αα»ααααααΆααααα ααΆαααΆαααΆαααααα·αααααα·ααααα·ααΆα αα·ααααααα·ααΈααααΆαααααα»ααααα»αα ααααααΆαα ααα αΆαααΆαα½αααΊαααααααΈαααΌα ααΆ Ubuntu 14.04, 12.04 αα·α Debian 9α αααααΆαααΆαααΆααααα ααΆαα ααα αΆααααααΆααα·αα·ααα CentOS, RHEL αα·α OpenSUSE αα αααα»αααΆααααααααααααΎαααΆαααααΆαααΎα αα½αααααα·ααααα αααααααααΆααααΆααα»α α αΎααα αααα»αααααα α»αααααααααα»α (CentOS αα·α RHEL) αα½αααααΆαααΆααααααααααααΆαααΆαααΆαααΆααααααααα·α ααααΆααΆααααααααΉαααΌααααα½ααααααααααααΆαααΌαααααΆαααΎ Debian (Debian αα·α Ubuntu)α ααΆααααααααααααα CentOS αα·α RedHat ααΎααααααααΆααααΈααΆααααααΎαα‘αΎααααααα»αααΆαα’αα»αααα stack canaries αα·α RELRO ααΈαααα 6 ααα 7 ααα»ααααααΆααααα CentOS ααΆααα»αααΆαα αααΎαααΆα RHEL α ααΆααΌαα ααΆαα ααα αΆαααΆααα’αααα½αααααα α·ααααα»αααΆααααΆαα·αααα ααααααΆαααΆαααΆα PIE αααααΎαααααα Debian 9 αα·α Ubuntu 18.04 ααααΌαααΆαα’αα»αααααα·α ααΆα 10% αααααααααααααααΈααα αααα»ααααα»ααα·ααααααααααααΎαα
ααΆα
α»αααααα ααΆαα½αααααααΌαααΆαααααααααΆααααΆ αααααΈααΆααΎαααααΎααΆαααααΆαααααΆααααααααααα ααΆαα§ααααααα»ααααα·ααΆαααΆα
αααΎααααααΆα (α§.
ααααα: www.habr.com