Question: Меня вчера озадачили вопросом: а какой антоним к слову "защищать"? Я сказал "нападать", но это не совсем антоним. А кто что думает по этому поводу?

Answer: 
Разные антонимы к разному значению слова "защищать". Антонимами будут или "нападать", или "обвинять"
Нападать - не антоним. С точки зрения теории отношений это не противоположное, а обратное значение. Иногда они совпадают, но не всегда. Например, ниже-выше можно понимать как антонимы, а можно - и как обратные друг к другу отношения (если А ниже В, то В выше А).  

В Вашем примере еще сложнее, так как отношение "защищать" трехместное: "А защищает В от С". Так вот, действие С в этом случае будет "нападать", а В - что-то вроде "быть защищаемым".  

А вообще-то "антоним" к "защищает" - "не защищает".  

**Дополнение**. После некоторых раздумий я поняла, почему меня не устраивает "нападать" как антоним к слову "защищать". Дело в том, что "нападать" связано с исходным словом двояко. Действительно, пусть А защищает В от С. При этом, видимо, С *нападает* на В (нападать-1). С другой стороны, А может перестать защищать В и даже полностью перемениться, нападать на В. Это - нападать-2. Именно его можно считать антонимом, а нападать-1 - нет. 

Кстати, второе понимание возникает не во всех случаях "защиты". Например, "Стена защищает город", "Знание защищает от ошибок", "Бронежилет защищает от пуль". Во всех этих случаях "действующее лицо" никак не может нападать!