Pages:
Author

Topic: Stop telling people that VMs could protect anything - page 3. (Read 9143 times)

sr. member
Activity: 308
Merit: 250
I was thinking about that, too. It should be perfect in principle. But to make it comfortable, we need to implement a lot and it takes a while until it all works safely.

Yeah, I mean I haven't really looked at the RPC stuff for Bitcoind at all... it could theoretically be done simply by generating the 100 addresses, sticking them in a DB in my billing software, then raping blockexplorer all day looking for those addresses - but that really wouldn't scale well.

I was thinking about writing up an RPC daemon which simply watched for transactions, reported them to the billing software and immediately shipped the money off to another box. But that has two downsides that immediately spring to mind: 1) it'll get eaten alive by transaction fees and 2) if the box running bitcoind gets owned, they could change the payout address and you may not notice until some BTC is gone.

I think not having the private keys anywhere online is a much more suitable idea.
full member
Activity: 168
Merit: 103
Hosting a VM does provide an advantage of obscurity.
99.9% of the people with bitcoin wallets will not use VMs, therefore most BTC-stealing malwares will not target VMs (even if it's "easy", you still need to target a VM specifically when trying to steal wallets from it. A simple approach of scanning your HD for "wallet.dat" will not find it if it's encoded in a VM filesystem).

It's not a good solution, but it adds one more layer of abstraction an attacker has to get over.

It's a good thing to do until your BTC are worth enough $ to make you buy a dedicated machine for BTC access, that will be "100%" malware free.

Yes, of course it is a way of obscuring, but the wasting of ressources is huge. You could have such an effect much cheaper.
full member
Activity: 168
Merit: 103
It ups the bar (malware can't just look in common locations for wallet.dat, it would have to understand that a VM is there and how to look at the FS in the VM), but you're right - VMs/jails/zones/sandboxes/whatever are only really any use to protect the host from the jail... there is nothing protecting the jail from the host.

A wallet file does not have to be online to receive money.

I was thinking about this for securely processing BTC transactions in an automated fashion... I wonder if it's possible to hack up bitcoind to watch addresses it doesn't possess the private key for?

I create a new wallet, generate say, 100 addresses, and dump the public keys for them all. I setup bitcoind on my billing server, and feed it those 100 addresses. My billing software talks to it when someone wants to make a payment, and it hands them one of the addresses not in use. bitcoind reports confirmed payments to those addresses back to my billing software, which credits the account appropriately. A script checks, to complain very loudly, when it gets below a certain threshold of free addresses.

Then the only time the wallet needs to be opened and vulnerable is when I'm transferring money out to spend it, or when I'm generating new addresses. It could spend the rest of the time on a USB key in a safe.

Would that work that way, or am I missing some showstopper?

I was thinking about that, too. It should be perfect in principle. But to make it comfortable, we need to implement a lot and it takes a while until it all works safely.
full member
Activity: 168
Merit: 103
It doesn't matter.

VMWare is designed to protect the host from the guest. That's not what you need when talking about using VMs for bitcoin.


You could use it the other way around: Install a minimal operating system on the computer hardware, and then add a VM for all the unsecure fun stuff (games, browsing etc.). But that wouldn't work well, because it is the fun stuff what requires so much ressources.
legendary
Activity: 1358
Merit: 1003
Ron Gross
Hosting a VM does provide an advantage of obscurity.
99.9% of the people with bitcoin wallets will not use VMs, therefore most BTC-stealing malwares will not target VMs (even if it's "easy", you still need to target a VM specifically when trying to steal wallets from it. A simple approach of scanning your HD for "wallet.dat" will not find it if it's encoded in a VM filesystem).

It's not a good solution, but it adds one more layer of abstraction an attacker has to get over.

It's a good thing to do until your BTC are worth enough $ to make you buy a dedicated machine for BTC access, that will be "100%" malware free.
sr. member
Activity: 308
Merit: 250
It ups the bar (malware can't just look in common locations for wallet.dat, it would have to understand that a VM is there and how to look at the FS in the VM), but you're right - VMs/jails/zones/sandboxes/whatever are only really any use to protect the host from the jail... there is nothing protecting the jail from the host.

A wallet file does not have to be online to receive money.

I was thinking about this for securely processing BTC transactions in an automated fashion... I wonder if it's possible to hack up bitcoind to watch addresses it doesn't possess the private key for?

I create a new wallet, generate say, 100 addresses, and dump the public keys for them all. I setup bitcoind on my billing server, and feed it those 100 addresses. My billing software talks to it when someone wants to make a payment, and it hands them one of the addresses not in use. bitcoind reports confirmed payments to those addresses back to my billing software, which credits the account appropriately. A script checks, to complain very loudly, when it gets below a certain threshold of free addresses.

Then the only time the wallet needs to be opened and vulnerable is when I'm transferring money out to spend it, or when I'm generating new addresses. It could spend the rest of the time on a USB key in a safe.

Would that work that way, or am I missing some showstopper?
legendary
Activity: 1764
Merit: 1002
If you set up a guest VM on a host computer, the programs in the guest VM can not (easily) attack the host computer.

But in the other direction, it is not true. Programs on the host machine can just manipulate the guest VM, e.g. just modify the disk image file.

Thus, a guest machine for bitcoin does not make sense at all (at least when the intended goal is protection).




But a hint may help:
A wallet file does not have to be online to receive money. You can just create a wallet on a offline computer and use the addresses.
Only if you want to spend money from that wallet, it has to be taken to an online machine.

tell me how VMWare Fusion with Win 7 works on a Mac.  same principle?  in this situation, would u put the client on the Mac or Windows side?
full member
Activity: 168
Merit: 103
If you set up a guest VM on a host computer, the programs in the guest VM can not (easily) attack the host computer.

But in the other direction, it is not true. Programs on the host machine can just manipulate the guest VM, e.g. just modify the disk image file.

Thus, a guest machine for bitcoin does not make sense at all (at least when the intended goal is protection).




But a hint may help:
A wallet file does not have to be online to receive money. You can just create a wallet on a offline computer and use the addresses.
Only if you want to spend money from that wallet, it has to be taken to an online machine.
Pages:
Jump to: