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

Answer: 
Контекстуальные (***контекстные***) антонимы – слова, которые вступают в антонимические отношения только в определенном контексте. Они не являются языковыми антонимами, не осознаются как слова с противоположным значением вне этого контекста.
Пример: И ненавидим мы и любим мы случайно, / Ничем не жертвуя *ни злобе, ни любви*. / И царствует в душе какой-то *холод* тайный, / Когда *огонь* кипит в крови. (М.Ю. Лермонтов) 
Большинство слов языка не содержит признака, способного к противопоставлению, следовательно, антонимические отношения для них невозможны, однако в переносном значении они могут обрести антоним.
Универсального антонима (ну кроме примитива) не существует. 
В этой ситуации нападать - вполне пойдет. Пожалуй, самый универсальный.   

Еще - атаковать (более точно, но только в определенных контекстах), обвинять (в суде), нарушать (гуманитарное право) и т.д.