So Sona is hard countered by Thresh and Blitz (and Leona), as is Soraka. I think the best you can do is try and anticipate the hook and dodge it, since if you get hit, it's pretty tough to survive; basically try and poke them down (especially if their hook is on CD; you want to punish them hard for missing it) if you can so they're afraid to engage, but be wary of the hook. I generally play Braum (tanky plus has a dash to safety) into champs like Thresh or Blitz; Leona and Alistar are also good since they want to be in the enemy team tanking and locking people up. Sometimes I play Janna as well, but that's just because she's my best support; it's more difficult of a match up imo.
As far as dive-type assassins, Sona's ult is one of the most powerful counter engage tools in the game, imo. If you're in a teamfight and they dive your team, you can ult them and your team can just delete them. Basically they generally are going to try to engage on you, so look to counter engage if you can; the same is basically true for Soraka's E, though it's less effective vs. Yi.
EDIT: Some more general tips; Sona and Soraka are sustain supports, they naturally get targeted by the enemy team because they're squishy but also be cause they keep their team alive longer. I generally try to stick near my back line in teamfights and try to provide the utility I can from there. As far as poking in bot, you need to look for opportunities to do so; when an opponent missteps, misses a big spell, etc. don't just poke whenever you feel like it. Sometimes, if the match up is neutral or favorable, you can force trades; I've found that a lot of supports at lower elo (especially since oftentimes they don't play support) don't know how to react or zone properly, and it's easy to shove them out of lane by playing aggressively (use caution though).