A Novel Approach For Computer Worm Control Using Decentralized Data Structures
pdf.yt
pdf.yt
You don't need to query blockchain.info, all you need is a Bitcoin client that listens for incoming transactions.
I've been writing an implementation on and off for a while now. The general idea is as follows:
The botnet client connects to "n" Bitcoin nodes. If the same transaction is relayed by ceil(n/2) nodes, then we say that transaction is "confirmed" and examines the transaction to see if it's sent from botmaster's address (in fact we don't even have to use the botmaster's address, with BIP-0032 (https://github.com/bitcoin/bips/blob/master/bip-0032.mediawi...), we can use related public keys)
You don't even have to use transactions ("tx" messages), you can use the block messages if you are willing to tolerate an (on average) 10 minute delay, this would drastically reduce the network traffic sent/received by the botnet client.
But these guys forced my hand, so I suppose I'll have to release what I have so far. The current botcoin client (c++11 with boost::asio) connects to the network, and gets transactions. Data extraction from transactions is unfinished. The current problem I'm working on is making sure that people cannot easily scan the Blockchain to look for c&c transactions. This can easily be done by encrypting the messages with a client specific key. However, I would like to have perfect forward secrecy, that is, suppose a sample client was obtained by researchers, past c&c messages should not be able to be decrypted (otherwise the blockchain contains a log of all of your C&C messages).
[link redacted]
Does this mean you can send messages without transfering bitcoin from one account to another?
(I'm one of the authors of the paper)
The trend of throwing blockchains at problems for which they are totally uncalled for is profoundly annoying.
It could be as simple as storing the magnet links themselves.
As more general-purpose blockchains come out (Ethereum, for one example), this will get easier.
Since you can easily fit the Magnet hash in an OP_RETURN value, all required is to move the torrent's description (title, description, categories, magnet URL) into a torrent of its own. Indexers find the first hash via the blockchain, use it to fetch the full torrent description via DHT, which in turn allows it to find the torrent via the magnet URL (or alternatively, includes the .torrent file directly, but this trades network efficiency for hosting overhead)
To speed up bootstrapping new indexers, occasionally "rollup" descriptions could be published, which are just torrents that aggregate a large number of descriptions (bucketed say, by date, DHT swarm size, or similar). Add an identifier and public key to these roll-up releases, and you effectively have a trusted "channel" - one guy or group with editorial control over the index they publish, and magically you have something very close to ThePirateBay again.
Hardly inconspicuous.
But I like the idea.
And new blocks are "only" ~400KB in size - at 1/10min, that's less than 700B/s. (Of course, it'll be more in practice. But still, not much.)
An expensive, slow, and extremely CPU and network intensive protocol is not what you want to use for stealthy malware communications. It could be done; you could also hammer a nail with a trout, but you'd look pretty foolish in the process.
It does not need to be CPU or network intensive because it can basically use a light wallet implementation.
[1] http://news.ucsc.edu/2013/06/entrepreneurship-showcase.html
I guess I can understand what the blockchain is, but I struggle to understand how the number of bitcoin can be stable, and how transactions are achieved. I guess I like drawings better.