However, if the attacker does not use a public mining pool, but private infrastructure, things get more complicated: The only way how Bitcoin clients can agree on a common view of the block chain is to treat the highest block number as the authoritative one. A malicious miner can now just generate new blocks and inject them over Tor to some of the Bitcoin nodes. As Bitcoin nodes distribute the blockchain amongst each others, those "malicious" blocks will quickly spread throughout the Bitcoin network.
The only way how you could prevent this problem is some kind of whitelisting approach, where miners need to be manually approved before their blocks are accepted. However, this would totally change the current Bitcoin infrastructure and turn a completely decentralized network into a more centralized one.