Механизмы защиты памяти OpenBSD, которые не включены default?

dpkg -L haskell-platform-doc перечислит файлы, установленные этим пакетом для вас. Однако это метапакет, он не устанавливает много содержимого, а использует другие пакеты документации в качестве зависимостей. Итак, введите dpkg-query -f '$ {Depends}' -W haskell-platform-doc , чтобы найти зависимости, и используйте с ними dpkg -L . Вы должны ожидать / usr / share / doc / libghc - * - doc / html / index.html и аналогичные файлы, которые можно просматривать в веб-браузере (с помощью file: /// URL).

2
14.02.2018, 08:58
1 ответ

"... what else memory-related hardening mechanism are in OpenBSD that can be turned on and it is not enabled by default?

Even options would be useful if we have to re-compile the kernel [or programs I use], if minimal source code modification is needed.".

Lo que desenterré hasta ahora:

Siempre actualice a la última versión estable del Kernel. Mire tambiénhttp://www.trustedbsd.org/. Lea referencias como la página web de características de seguridad de OpenBSD de Wikipedia .

Funciones de seguridad relacionadas con la memoria de OpenBSD :

  • Aleatorización del diseño del espacio de direcciones(ASLR ):configurar sysctl vm.randomize _mmap en 1(debería estar activado de forma predeterminada, pero está desactivado en DragonflyBSD y aparentemente no implementado en FreeBSD ).

  • Use timingsafe _bcmp(3 )y timingsafe _memcmp (3 )en lugar de bcmp (3 )o memcmp (3 ).

  • Use la variante explícita _bzero (3)en lugar de bzero (3 )para borrar la memoria sensible (como variables de contraseña ).

  • Colocar ejecutables independientes (PIE):Enlace con-pieo--pic -ejecutable

    Crear un ejecutable independiente de la posición. Actualmente solo es compatible con las plataformas ELF . Los ejecutables independientes de la posición son similares a las bibliotecas compartidas en el sentido de que el enlazador dinámico los reubica en la dirección virtual que el sistema operativo elige para ellos (, que puede variar entre invocaciones ). Al igual que los ejecutables vinculados dinámicamente normales, se pueden ejecutar y los símbolos definidos en el ejecutable no se pueden anular mediante bibliotecas compartidas.

  • Aleatorio mmap (2):No usar MAP _FIJO. Consulte con mquery.

  • Reemplace aleatorio():rand (3 ), aleatorio (3)y rand48 (3 ), etc. reemplazado con BSD arco4aleatorio (3).

  • Considere usar reallocarray (3)y replaceocarray (3 )y freezero (3 )para datos confidenciales en lugar de malloc (3 ), calloc (3 ), o reasignar (3 ).

  • Stack Smashing Protection(SSP ):GCC + Propolice (SSP )activado de forma predeterminada para compilar todas las bibliotecas y aplicaciones.

  • KERN _STACKGAPRANDOM(kern.stackgap _aleatorio)Establece el rango del valor aleatorio agregado al puntero de la pila en cada ejecución del programa. El valor aleatorio se agrega para hacer que la explotación del desbordamiento del búfer sea un poco más difícil. Cuanto mayor sea el número, más difícil será aplicar fuerza bruta a esta protección adicional, pero también significa un mayor desperdicio de memoria. Predeterminado:262144 .

  • Use el nuevo strlcpy (3)y strlcat (3 )en lugar de strcpy (3 ), strcat (3 ), strncpy (3 )o strncat (3)-permite copias seguras de cadenas.

  • Utilice la función strtonum (3)en lugar de la familia de interfaces atoi (3 )y strtol (3 ).

  • Política W^X:Una página puede ser escribible o ejecutable, pero no ambas. Por lo tanto W^X. La idea es crear un segmento .rodata con el atributo PROT _READ solo así pierde el atributo PROT _EXEC.

1
27.01.2020, 22:18

Теги

Похожие вопросы