Введение

We use cookies. Read the Privacy and Cookie Policy

Введение

Как правило, одну и ту же задачу можно решать несколькими способами. Выбранный способ зависит от ресурсов, имеющихся в распоряжении исполнителя, и методов решений, которыми он лучше всего владеет. В случае исследования уязвимостей ресурсами являются программный код, время и инструментарий исследователя.

В некоторых случаях исследователь может легко получить исходный текст анализируемой программы. Для большинства людей экспертиза исходного текста программ – наиболее легкий способ определения наличия или отсутствия в программе уязвимостей. Причина многих уязвимостей состоит в использовании в программе специфических функций языка программирования и способов вызова внешних функций. Анализ исходного текста программы часто позволяет выявить уязвимости и понять их причины.

Другим способом определения возможных ошибок программы служит реинжиниринг, который позволяет восстановить структурную схему программы и алгоритм ее работы. Для реинжиниринга требуется специальный программмный инструментарий: дизассемблеры и отладчики. Любая трансляция программы сопровождается потерей части исходного текста программы или его неочевидными преобразованиями. Другими словами, при трансляции программы исходный текст заменяется объектным кодом таким образом, что точное обратное восстановление исходного текста в большинстве случаев невозможно. Поэтому, основываясь только на результатах реинжиниринга, понять логику работы программы очень сложно.

И наконец, последний рассматриваемый способ – тестирование методом «черного ящика». Тестирование методом «черного ящика» позволяет определить зависимость между входными и выходными данными программы без выяснения ее внутреннего устройства. В некоторых случаях тестирование методом «черногоящика» – единственно возможный метод анализа программы на начальном этапе, в других – позволяет определить пути анализа программы, на которых следует сконцентрироваться.

В этой главе будут рассмотрены различные методы изучения уязвимости и показаны примеры их использования.

Данный текст является ознакомительным фрагментом.