Protecting Against Software Attacks