McCain said both China and Russia are "trying to assert their own spheres of influence" and the U.S. must respond more firmly. He accused President Barack Obama of "leading from behind" in an interview with CNN.
McCain also said he believes the 30-year-old Snowden is in Russia, even though its foreign minister, Sergey Lavrov, vehemently denied that Tuesday.
The Arizona Republican called on Obama to get tougher with Russian President Vladimir Putin, saying he "continues to stick his thumb in our eye."
McCain called Putin "an old KGB colonel apparatchik."