We tend to misread our dogs, and our dogs tend to misread our words. He might like the way you speak to him when it happens ( while you think you pronounce forbidding command - he thinks you are simulating him), the way you touch him, and that which follows he might like as well. Young males like to pretend that they are guarding you. Their natural instinct tries to find some situation, and, if there's none, it will use avaliable means. When we watch puppies playing - we smile, but, in fact, that are their natural instincts revealing themselves, in any puppy play you can see a bloodthirsty predator and a fearless fighter if you try. I wouldn't punish him with "time-out", but would rather ignore his behaviour
. But, if he's such a character, ignoring him growling at your son will stop him growling only at your son, his instinct would find another opportunity somehow, which might occur even less desirable than with the son. You have to redirect his instinct
. Provide him with the object to protect you from, place and specific time. 15 min walk together with your son around your block just before going to bed may not only solve your problem, but will put your son into different position in the eyes of your dog. Being protective is in blood of GSD, your dog should learn protecting members of your family from something (at night), not practicing within the family.