21.10.2013 Экспертиза, БезопасностьВ связи с растущим объемом разрабатываемого ПО проблема безопасности становится все более актуальной. Одним из вариантов ее решения может стать применение безопасного цикла создания продуктов, включая планирование, проектирование, разработку, тестирование. Такой подход позволяет на выходе получить решение с продуманной системой безопасности, которое не придется затем многократно “латать” из-за имеющихся уязвимостей. В данной статье речь пойдет об одной из важных практик, применяемых на этапе тестирования, — статическом анализе кода. Если при динамическом анализе кода программа анализируется в процессе её исполнения, то при статическом — в отсутствие такового. В большинстве случаев под статическим подразумевают анализ, осуществляемый с помощью автоматизированных инструментов исходного или исполняемого кода. Исторически первые инструменты статического анализа (часто в их названии используется слово “lint”) применялись для поиска простейших дефектов программы. Они использовали простой поиск по сигнатурам, то есть обнаруживали совпадения с имеющимися сигнатурами из базы проверок. Такие инструменты применяются до сих пор и позволяют определять “подозрительные” конструкции в коде, которые могут вызвать падение программы при её выполнении. Недостатков у этого метода немало. Основной состоит в том, что множество “подозрительных” конструкций в коде не всегда являются дефектами. В большинстве случаев такой код может быть ...
читать далее.