Disabled security features in binary libraries

Норм ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ это для iOS: https://sensepost.com/blog/2021/on-ios-binary-protections/

ASLR β€” Защитная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ эксплуатации Ρ†Π΅Π»ΠΎΠ³ΠΎ ряда Ρ€Π°Π·Π½Ρ‹Ρ… уязвимостСй. Π•Π΅ активация ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ адрСсов Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. -fPIC β€” для Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ адрСсов shared-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, -fPIE β€” для Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ адрСса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ исполняСмого модуля.

NX-Π±ΠΈΡ‚ (noexecstack) β€” Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ эксплуатации пСрСполнСния Π±ΡƒΡ„Π΅Ρ€Π° Π½Π° стСкС

Активация CFI (-flto, -fvisibility=hidden, -fsanitize=cfi) β€” Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Use after free ΠΈ Type confusion уязвимостСй.

-z relro, -z now β€” Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ эксплутации GOT Overwrite (активация read only allocations Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π±Π΅Π· ΠΊΡ€Π΅ΡˆΠ° ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ GOT ΠΈ PLT)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания для ΠΎΡ‚Ρ‡Π΅Ρ‚Π°:

CVSS https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N

**ОписаниС:** 

БпСциалистами Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Ρ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ срСдств Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, пСрСчислСнныС Π² @tbl:libraries, собранныС Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² бСзопасности ([True]{.low} β€” ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ поддСрТиваСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, [False]{.high} β€” Π½Π΅ поддСрТиваСтся). Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… уязвимостСй.

| Shared Object | PIE | STACK CANARY | RELPO |
| -------- | -------- | -------- | -------- |
| lib/arm64-v8a/libopencv_imgproc.so  | [False]{.high} | [False]{.high} | [False]{.high} |
| lib/arm64-v8a/libopencv_core.so | [False]{.high} | [False]{.high} | [False]{.high} |
| lib/arm64-v8a/libcardioRecognizer_tegra2.so | [False]{.high} | [True]{.low} | [False]{.high} |
| lib/arm64-v8a/libcardioDecider.so | [False]{.high} | [True]{.low} | [False]{.high} |

: Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Android-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ {#tbl:libraries}

PIE β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собрана Π±Π΅Π· Ρ„Π»Π°Π³Π° `-fPIC`, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈ исполнСнии ΠΊΠΎΠ΄Π° этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ASLR.

STACK CANARY β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собрана Π±Π΅Π· Ρ„Π»Π°Π³Π° `-fstack-protector-all`, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈ исполнСнии ΠΊΠΎΠ΄Π° этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ пСрСполнСния стСка.

RELPO β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собрана Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° RELRO, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ структуры исполняСмого ELF-Ρ„Π°ΠΉΠ»Π° (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… позволяСт Π²Π·Π»ΠΎΠΌΡ‰ΠΈΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ…ΠΎΠ΄ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) ΠΏΡƒΡ‚Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСкций PLT (Procedure Linking Table) ΠΈΠ»ΠΈ GOT (Global Offset Table) ELF-Ρ„Π°ΠΉΠ»Π°.

FORTIFY β€” Π±Π΅Π· Ρ„Π»Π°Π³Π° `-D_FORTIFY_SOURCE=2` Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π½Π΅ встроСны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° нСбСзопасных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ `glibc`.



**Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ:**

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, собранныС с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ„Π»Π°Π³ΠΎΠ² `-fPIC`, `-fstack-protector-all`, `-z,relro,-z,now` ΠΈ `-D_FORTIFY_SOURCE=2`.

Last updated

Was this helpful?