I might at some point to invite another person into my software project. I don't mind sharing the code but the data I use is very sensitive. Once he gets hands on both pieces I wont see him again (if you know what I mean)..

The server is going to be collocated. He is going to want an admin access to the box remotely. So I am planning to have sensitive data to be in-memory only - I pump it up for a work day while I am around and then delete in the end of the day.

How naïve is this plan?

Can I have some sort of tool which will erase memory once someone is logged into the machine? Can he dump memory using iDRAC and out-of-band networking for instance (without being detected by the OS)?

OS is Windows Server 2012 R2

  • 3
    I would suggest that if you have valid reason to believe that this individual is particularly likely to abscond with your data, perhaps you should revisit your decision to trust this individual with access to your system at all.
    – Xander
    Oct 12, 2014 at 1:14
  • I agree with @Xander's comment. However, if a process really needs heightened security it shouldn't run on a shared system. Instead allocate dedicated resources with strict access controls. Jun 4, 2015 at 18:44

1 Answer 1


If someone legitimately has superuser access to a system, you can't stop them from accessing any data on the system given time. You can certainly have data encryption to encrypt the data at rest, but what's to stop them from capturing the keystrokes that are performed when you unlock it? Or, if you're copying the data to the system from somewhere, getting a copy of that data? The possibilities are endless when you consider full administrator access. Your only legitimate hope to protect this data is to create a user tailored to have the exact level of privileges he'd need, and no more. My suggestion would be to use dummy data and a staging environment that is completely separated from production. That way he could assist with the code but not ever realistically have access to your sensitive data.

Speaking from a more general security perspective, you put intrusion detection systems on a network generally in the hopes it will detect a compromise after it's happened. You could always detect a live attacker in progress, but how to filter that from all the noise that is constantly hitting you from the internet? Given your setup, you are unlikely to even be able to determine an attack happened, since you don't mention piping your logs to another system. That of course doesn't protect your data, only could help you detect its loss after the fact.

  • ok. let me explain the idea - I am going to copy data before each 'run' every morning and be online while it runs.. to copy remotely straight into the RAM. So the only way for someone to capture that is to either capture the network stream or dump the RAM. lets say I could manage to encrypt network data. So the question still is - how to prevent dumping the RAM. once there is alert on OS login I just erase the memory... not ideal but manageable.. Now my worry is two fold - I need 100% reliably be able to detect OS login.. and I need to make sure there is no access transparent to OS, like iDRAC Oct 12, 2014 at 23:57
  • P.S. there will be no noise from internet. this is not a public webserver I am talking about. P.P.S. I agree with your argument abt 'after its happened' but if after means couple of seconds - that's fine with me. After all I can write a prog which will erase RAM on a certain login event.. cant I ? Oct 13, 2014 at 0:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.