I'm jumping into this late, I know. While my general work is not controversial at all, some people do have strong opinions about what I'm doing (both on the positive and negative side).
I think you react to the "what do you do" question depends on how important it is to you that you talk freely about your work and who you are talking to. For instance, I do think you should be proud of what you do and you shouldn't have to feel like you can't be honest about what you do and who you work for. But, if you're talking to someone who is just going to go off on you, waste your time, and you either don't care about personally, or will not see again, then is it really worth it to tell them the very thing that will set them off? Maybe...only you can decide.
However, talking to someone you care about...family, close friends, an SO, I really think that you should be able to talk freely. And those people, despite their opinions, will hopefully respect you enough to understand that you are doing something you love, that is legal, presumably safe, and likely not as "evil" as some may think.
How do you react once they start going off? "Thank you for sharing your thoughts. There are some other details and viewpoints that you may not be aware of and I'd love to sit down and chat about it, but I'm running late for X". or "If you're interested in talking about this more I'm availabe at X time." (All depending on how much you want to get into it).
For family/close friends/SO's: "I appreciate your opinion, but it hurts me that you put something I love down that way. The media has not been kind to my company/industry and if you're interested in learning more, I'd be happy to talk about it. If not, then can you please do me a favor and not mention how evil my career is? I know how you feel. I don't need you to keep reinforcing it."