[erlang-questions] Erlang VM: how clean is our memory?

Alex Arnon alex.arnon@REDACTED
Thu Apr 28 10:46:59 CEST 2011


Hi All,

We've recently been discussing the security of OS and VM stacks here, and
several questions came up with regards to the Erlang VM. Specifically, the
values of "new" and "old" memory.
As an example, take the OpenBSD Unix-like OS. These guys are fanatics for
security, and take various steps to ensure that the system is as unbreakable
as possible, and in the event of breakage - to make life hard (if not
impossible) for the intruder.
This includes:
- Randomization of integer handles, e.g. accepted socket ports.
- Randomization of memory mapping location, e.g. DLLs (SO) will be loaded in
random locations in memory.
- Newly mapped memory pages are always zeroed before attachment to a
process's virtual space.
- Swap can be encrypted, or zeroed, on the fly.
- The memory allocator also zeroes out freed space.

In the context of the Erlang BEAM VM, we're interested in the contents of
memory. What happens, for instance, when:
- A process is garbage collected.
- A process is terminated.
Are the memory locations that have been "cleaned", zeroed out? Is it is, is
it possible to control it?


Regards,
Alex.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110428/7aececa6/attachment.htm>


More information about the erlang-questions mailing list