<div dir="ltr">Hi All,<br><br>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.<br>
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.<br>
This includes:<br>- Randomization of integer handles, e.g. accepted socket ports.<br>- Randomization of memory mapping location, e.g. DLLs (SO) will be loaded in random locations in memory.<br>- Newly mapped memory pages are always zeroed before attachment to a process's virtual space.<br>
- Swap can be encrypted, or zeroed, on the fly.<br>- The memory allocator also zeroes out freed space.<br><br>In the context of the Erlang BEAM VM, we're interested in the contents of memory. What happens, for instance, when:<br>
- A process is garbage collected.<br>- A process is terminated.<br>Are the memory locations that have been "cleaned", zeroed out? Is it is, is it possible to control it?<br><br><br>Regards,<br>Alex.<br><br></div>