Soooo...
Basically, you have a problem with public addresses for your pool.
If only you could ensure that no one knew how to find your pool unless they had trust... you could just use a static IP and have people mine there.
Here is one REALLY good litmus to determine whether or not a user should have trust... hashing.
If you pull from your DB of users, those who have hashed over a certain amount in the last couple weeks for instance... you could tell with a degree of certainty that these are all trusted people.
So... then you email all those users (I would be one of these people)...
Just email a private ip for the server to those users... or perhaps a domain name whatever... just something you don't post on here.
Sure, you'll lose a lot of hashing power, but it would let you continue to operate. I liked mining with your pool, I was doing quite well.
That way maybe you can operate in the short term as a private pool using trusted participants.
The reason I do not suggest that you allow ALL miners that have been working to get the address is that quite likely, your attackers have been mining the pools somewhat to ensure they were functionally down.
And, if the bot net owner has an actual miner or two of their own? What then?