Update webpage "Documentation - hardened_malloc" from version "5.0.0-beta.1" to "5.0.1-beta.1"

This commit is contained in:
inference 2024-03-18 02:50:35 +00:00
parent 28542a450e
commit c2e6de397e
Signed by: inference
SSH Key Fingerprint: SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc

View File

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<!-- Inferencium - Website - Documentation - hardened_malloc --> <!-- Inferencium - Website - Documentation - hardened_malloc -->
<!-- Version: 5.0.0-beta.1 --> <!-- Version: 5.0.1-beta.1 -->
<!-- Copyright 2023 Jake Winters --> <!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause --> <!-- SPDX-License-Identifier: BSD-3-Clause -->
@ -34,14 +34,12 @@
<section id="introduction"> <section id="introduction">
<p>This documentation contains instructions to use <p>This documentation contains instructions to use
<a href="https://github.com/GrapheneOS/hardened_malloc">hardened_malloc</a> <a href="https://github.com/GrapheneOS/hardened_malloc">hardened_malloc</a>
memory allocator as the system's default memory allocator. These instructions memory allocator as the system's default memory allocator. These instructions apply to both musl and
apply to both musl and glibc C libraries on Unix-based and Unix-like glibc C libraries on Unix-based and Unix-like systems.</p>
systems.</p> <p>hardened_malloc can also be used per-application and/or per-user, in which case root permissions are
<p>hardened_malloc can also be used per-application and/or per-user, in which not required; this documentation focuses on system-wide usage of hardened_malloc, assumes root
case root permissions are not required; this documentation focuses on privileges, and assumes the compiled library will be located in a path readable and executable by all
system-wide usage of hardened_malloc, assumes root privileges, and assumes the users of the system.</p>
compiled library will be located in a path readable and executable by all users
of the system.</p>
<p>For the complete hardened_malloc documentation, visit its <p>For the complete hardened_malloc documentation, visit its
<a href="https://github.com/GrapheneOS/hardened_malloc#hardened_malloc">official documentation</a>.</p> <a href="https://github.com/GrapheneOS/hardened_malloc#hardened_malloc">official documentation</a>.</p>
<p>This documentation is also available in portable AsciiDoc format in my <p>This documentation is also available in portable AsciiDoc format in my
@ -60,9 +58,8 @@
</nav> </nav>
<section id="memory_pages"> <section id="memory_pages">
<h2><a href="#memory_pages">Increase Permitted Amount of Memory Pages</a></h2> <h2><a href="#memory_pages">Increase Permitted Amount of Memory Pages</a></h2>
<p>Add <code>vm.max_map_count = 1048576</code> to <p>Add <code>vm.max_map_count = 1048576</code> to <code>/etc/sysctl.conf</code> to accommodate
<code>/etc/sysctl.conf</code> to accommodate hardened_malloc's large amount of hardened_malloc's large amount of guard pages.</p>
guard pages.</p>
</section> </section>
<section id="clone_source_code"> <section id="clone_source_code">
<h2><a href="#clone_source_code">Clone hardened_malloc Source Code</a></h2> <h2><a href="#clone_source_code">Clone hardened_malloc Source Code</a></h2>
@ -75,13 +72,12 @@
<section id="compile"> <section id="compile">
<h2><a href="#compile">Compile hardened_malloc</a></h2> <h2><a href="#compile">Compile hardened_malloc</a></h2>
<p><code>$ make <var>&lt;arguments&gt;</var></code></p> <p><code>$ make <var>&lt;arguments&gt;</var></code></p>
<p><code>CONFIG_N_ARENA=<var>n</var></code> can be adjusted to increase parallel <p><code>CONFIG_N_ARENA=<var>n</var></code> can be adjusted to increase parallel performance at the
performance at the expense of memory usage, or decrease memory usage at the expense of memory usage, or decrease memory usage at the expense of parallel performance, where
expense of parallel performance, where <code><var>n</var></code> is a <code><var>n</var></code> is a non-negative integer. Higher values prefer parallel performance,
non-negative integer. Higher values prefer parallel performance, whereas lower whereas lower values prefer lower memory usage. Note that having too many arenas may cause memory
values prefer lower memory usage. Note that having too many arenas may cause fragmentation and decrease system performance. The number of arenas has no impact on the security
memory fragmentation and decrease system performance. The number of arenas has properties of hardened_malloc.</p>
no impact on the security properties of hardened_malloc.</p>
<table align="center"> <table align="center">
<thead> <thead>
<tr> <tr>
@ -98,19 +94,17 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>For extra security, <code>CONFIG_SEAL_METADATA=true</code> can be used in <p>For extra security, <code>CONFIG_SEAL_METADATA=true</code> can be used in order to control
order to control whether whether
<a href="https://www.kernel.org/doc/html/v6.7/core-api/protection-keys.html">Memory Protection Keys</a> <a href="https://www.kernel.org/doc/html/v6.7/core-api/protection-keys.html">Memory Protection Keys</a>
are used to disable access to all writable allocator state outside of the memory are used to disable access to all writable allocator state outside of the memory allocator code.
allocator code. It's currently disabled by default due to a significant It's currently disabled by default due to a significant performance cost for this use case on
performance cost for this use case on current-generation hardware. Whether or current-generation hardware. Whether or not this feature is enabled, the metadata is all contained
not this feature is enabled, the metadata is all contained within an isolated within an isolated memory region with high-entropy random guard regions around it.</p>
memory region with high-entropy random guard regions around it.</p> <p>For low-memory systems, <code>VARIANT=light</code> can be used to compile the light variant of
<p>For low-memory systems, <code>VARIANT=light</code> can be used to compile the hardened_malloc, which sacrifices some security for much less memory usage. This option still
light variant of hardened_malloc, which sacrifices some security for much less produces a more hardened memory allocator than both the default musl and glibc allocators, despite
memory usage. This option still produces a more hardened memory allocator than the security sacrifices over the full variant.</p>
both the default musl and glibc allocators, despite the security sacrifices over
the full variant.</p>
<p>For all compile-time options, see the <p>For all compile-time options, see the
<a href="https://github.com/GrapheneOS/hardened_malloc#configuration">configuration section</a> <a href="https://github.com/GrapheneOS/hardened_malloc#configuration">configuration section</a>
of hardened_malloc's extensive official documentation.</p> of hardened_malloc's extensive official documentation.</p>
@ -121,11 +115,9 @@
</section> </section>
<section id="preload_on_boot"> <section id="preload_on_boot">
<h2><a href="#preload_on_boot">Set System to Preload hardened_malloc on Boot</a></h2> <h2><a href="#preload_on_boot">Set System to Preload hardened_malloc on Boot</a></h2>
<p><b>musl-based systems:</b> Add <p><b>musl-based systems:</b> Add <code>LD_PRELOAD=<var>&lt;hardened_malloc path&gt;</var></code> to
<code>LD_PRELOAD=<var>&lt;hardened_malloc path&gt;</var></code> to
<code>/etc/environment</code></p> <code>/etc/environment</code></p>
<p><b>glibc-based systems:</b> Add <p><b>glibc-based systems:</b> Add <code><var>&lt;hardened_malloc path&gt;</var></code> to
<code><var>&lt;hardened_malloc path&gt;</var></code> to
<code>/etc/ld.so.preload</code></p> <code>/etc/ld.so.preload</code></p>
</section> </section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div> <div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>