This is actually an interesting question, and I am going to give a long complicated and inconclusive answer.
Why are Criminals Good
So to start off, why are criminals considered the best to begin with? I think that there are many reasons for this. They have the most powerful suite of events in the game (account siphon, emergency shutdown, etc), both of their identities are very strong with solid abilities, and in general Criminal does a very good job of punishing bad luck.
All of that said, I think that really the key to the strength of Criminal is that they are the faction that plays best with the action “make a run”. The advantage that runners have over corps is that they have the ability to make a run. Making a run on it’s own applies pressure, forces ice to be rezzed, and scores agendas all without spending credits or cards. Criminals have the cards (and in Gabe’s case the ability) that synergizes most with making runs. Between Desperado, Emergency Shutdown, Bank Job, etc, no other faction stands to gain the most from making runs.
This is very important! Often when you play Shaper or Anarch, making runs really sets you back and stifles your game plan. Not so with Criminals. I think this single fundamental difference goes a long way to explaining why Criminals really are the best runner faction. ( Account Siphon certainly helps too)
Building Against Criminal
Ok, so how do we build against that? In general whenever I have made anti-criminal specific plans, it has not targetted something fundamental to Criminals, but aspects that are common to Criminal decklists. It is difficult to just build a list that counters aggression. Currently the state of ice in the game is rather poor. You can build lots of small cheap ice to keep out the early runs. But then the runner simply play a corroder or Yog, etc and blows through with no problems. There is a lack of good midrange ice (HB has the best) that can help to keep early runners our without being a total cakewalk as the runner plays breakers. I do not think there are any “good” answers to punishing aggression outside of playing enough ice intelligently.
Instead I have sometimes done things like targeting specific card choices. For example, playing lots of code gates that a Yog.0 cannot break to punish all of the Criminals playing Yog.0. This is obviously only partially successful, and isn’t really the solution you seem to be looking for. Sometimes people talk about doing things like saving Eve Campaigns or SanSans to rez in response to an Account Siphon. These are good tactical choices to make, but not really anything to keep in mind during deck building as much as reasonable plays to make against a specific criminal card.
Right now corporations do not have comparable silver bullet style cards like Plascrete Carapce or E3 Implants, so they cannot make targeted choices against specific runner factions. I don’t think there are any corp cards out right now that are specifically good against criminals.
Realistically the best you can do is to change your style of play and strategy against Criminal. You can play solid corp lists that are good at fast advancing or rushing agendas through, but these are not meant to beat Criminal specifically as much as existing as good generic corp lists.
So to sum up. This is not an easy task, and I think that what you would probably come up with when trying to target Criminals would just be something we considered a good list in general.