title: Explicitly removing sensitive data from memory?
body: <p>The recent leak from Wikileaks <a href="https://wikileaks.org/ciav7p1/cms/page_14587109.html" rel="noreferrer">has the CIA doing the following</a>:</p>
  
  <blockquote>
    <p>DO explicitly remove sensitive data (encryption keys, raw collection
    data, shellcode, uploaded modules, etc) from memory as soon as the
    data is no longer needed in plain-text form.</p>
    
    <p>DO NOT RELY ON THE OPERATING SYSTEM TO DO THIS UPON TERMINATION OF
    EXECUTION.</p>
  </blockquote>
  
  <p>Me being a developer in the *nix world; I'm seeing this as merely changing the value of a variable (ensuring I do not pass by value; and instead by reference); so if it's a string thats 100 characters; writing 0's thats 101 characters. Is it really this simple? If not, why and what should be done instead?</p>
  
  <p>Note: There are similar question that asked this; but it's in the C# and Windows world. So, I do not consider this question a duplicate.</p>