Как узнать как именно взломали сайт, и как защитить?
Для начала сделайте бекап своего сайта, скачайте и проверьте антивирусом, мб что поймаете. Еще может у Вас есть какие-то косяки с правами на каталоги или файлы, благодаря которым их какой-то бот или редиска их правит, тут тоже нужно внимательно поискать. 
@lukoie плагины есть, но все сразу ставить не советую. Пробуйте по одному, если после установки плагина защиты взлом повторится, этот плагин вырубаете и ставите другой. Eyesite мониторит сайт и файлы и шлет уведомления о изменениях Вам.JHacker Watch похож на EyesiteAdmin Tools может и мониторить и дает возможность удобно править разные настройки, связанные с защитой сайта. Но как-то подзаморочено и про версию плагина купить предлагают.Marco's SQL Injection по названию понятно что :)Securitycheck, здесь всё, от настроек, до фаервола и различных мониторов.
Если у Вас воруют пароли от FTP, то тут нужно прежде всего логи доступа поднимать и как посоветовал @alexclear проверять все машины, с которых имеется доступ к сайту, на наличие дырок.
Насчёт плагинов выше Natan всё правильно сказал. А вот антивирус тут бесполезен, это же веб-безопасность. Тут надо сканеры уязвимостей использовать, можно гуглить по слову DAST. 
Из хороших с триалом советую https://detectify.com, https://metascan.ru, https://acunetix.com. По результатам поймёшь, каким образом тебя взломали: дыры, sql-инъекции, xss, забытые порты какие-нибудь, легкие пароли и так далее.