Неприбыльная организация Software Assurance Forum for Excellence in Code при спонсорской поддержке компаний EMC, Juniper, Microsoft, SAP и Symantec выпустила отчет с рекомендациями по проектированию и созданию ПО, более-менее защищенного от типовых ошибок и уязвимостей. В частности, предложено:
- минимизировать использование стандартных функций, некорректный вызов которых приводит к ошибкам (например, переполнению буфера при неаккуратно заданных параметрах), и применять их защищенные аналоги;
- использовать самые последние версии компиляторов, настраивая их на защиту от ошибок времени выполнения;
- применять средства статического и динамического анализа исходных и двоичных кодов на корректность;
- вручную проверять наиболее критичные участки кода;
- программно тестировать корректность входных и выходных данных;
- применять при создании веб-систем библиотеки, препятствующие XSS-атакам (“межсайтовому скриптингу”);
- формировать SQL-запросы не конкатенацией строк с константами, а с помощью параметров;
- отказаться от скомпрометированных алгоритмов шифрования (MD4, MD5, SHA1 и др.);
- организовать внутри приложения ведение рабочих и трассировочных протоколов.