1. Теоретически, антивирус написать можно. Но для более-менее вменяемого антивируса нужны производительность и доступ к более низкоуровневым вещам, чем Python позволяет из коробки.
Многие библиотеки Python -- это обёртки над библиотеками на C/C++. А в коде на C/C++ вообще могут использоваться ассемблерные вставки. В этом смысле, в Python можно прокинуть вызов любого низкоуровневого кода.
Всё, что необходимо для написания антивируса давно должно иметь свободную реализацию на C/C++ и лежать в открытом доступе. Многое уже может иметь обёртки или биндинги для Python, а что не имеет -- так со знанием C/C++ их можно сделать.
Конечная программа на Python может полностью полагаться на скомпилированный Си-шный код, так что производительность будет не намного ниже, а возможности те же.
Основные недостатки разработки настольных программ на Python:
- трудно скрыть исходники от любопытных;
- не очень удобно собирать и распространять под разные ОС;
- для низкоуровневых вещей и/или высокой производительности может потребоваться знание C/C++.
2. Для специалиста по информационной безопасности, Python -- несущественный язык программирования.
Специалист по информационной безопасности должен знать низкоуровневые языки -- ассемблер и Си.
Помимо этого, полезно знать:
- архитектуру ЭВМ (особенно, как работает процессор и оперативная память -- тема пересекается со знанием ассемблера),
- архитектуру операционных систем (близко к архитектуре ЭВМ, но тема больше пересекается с языками программирования C/C++),
- технологии компьютерных сетей,
- алгоритмизацию,
- криптографию.