Рубрика:
Безопасность /
Аудит
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АНДРЕЙ БИРЮКОВ, системный архитектор по информационной безопасности, abiryukov@samag.ru
Проводим тест на проникновение Часть 5. Поиск уязвимостей в «самописных» приложениях
Проводить проверку на уязвимости для «самописного» ПО также необходимо, как и для сторонних приложений. Расскажем, как это сделать самостоятельно
В предыдущих статьях цикла [1-4] подробно рассмотрены различные способы проникновения в корпоративную сеть. При этом был затронут вопрос поиска и эксплуатации уязвимостей. Продолжим обсуждение проведения аудита информационной безопасности и поговорим о поиске уязвимостей в «самописном» программном обеспечении.
Суть вопроса
Не секрет, что многие компании используют в своих бизнес-процессах программное обеспечение собственной разработки. При этом качество данного ПО может быть различным. Крупные организации для разработки ПО прибегают к услугам компаний-разработчиков или нанимают квалифицированных программистов себе в штат. Те, у кого денег не такмного, для разработки ПО могут привлекать фрилансеров и студентов. С точки зрения безопасности и качества ПО наилучшим является первый вариант, когда для создания приложения привлекается компания-разработчик. В этом случае она не только несет ответственность за создаваемое ею программное обеспечение, но и за исправление найденных внем ошибок. Очевидным недостатком такого метода является высокая стоимость разработки. Второй вариант предполагает нанимать программистов в штат компании на постоянной основе. Здесь качество софта будет во многом зависеть от квалификации нанятых специалистов. С точки зрения экономии зачастую данный вариант не сильно дешевле первого. Ну атретий вариант наиболее распространенный. Компании привлекают людей на стороне для выполнения разовых задач. Зачастую приложение разрабатывает один человек, а егодоработку и модернизацию ведет уже другой. Еще «веселее» бывает, когда доработка ведется в отсутствии исходных кодов приложения. В этом случае качество разрабатываемого ПО страдает сильнее всего.
Зачем это нужно
Любое ПО содержит ошибки. Разработчика, будь то серьезная компания, или фрилансера, как правило, поджимают сроки. Чтобы успеть, он осознанно или нет допускает ошибки впрограммном обеспечении. Однако программные продукты (как бесплатные, так и коммерческие), которые разрабатываются для массового использования, находятся, чтоназывается, у всех на виду. На портале Securityfocus.com [5] ежедневно публикуются отчеты о десятках новых дыр, найденных экспертами по информационной безопасности совсего мира. А вот ПО, разрабатываемое для нужд конкретных заказчиков, независимые специалисты не проверяют. Многие могут возразить, что раз об этих приложениях никто незнает, то и эксплуатировать уязвимости в них будет сложнее. Но «безопасность через неизвестность» (security through obscurity) – это не очень хорошая практика, так как проникший в корпоративную сеть злоумышленник сможет без труда найти дыру в самописном ПО.
Таким образом, мы приходим к выводу, что проводить проверку на уязвимости для «самописного» ПО также необходимо, как и для сторонних приложений. Однако в силу приведенных выше причин описанные в предыдущих статьях инструменты Nessus, Open VAS и Metasploit будут нам не слишком полезны. В лучшем случае мы сможем идентифицировать открытые порты и уязвимые библиотеки, которые использовали разработчики (например, OpenSSL).
Далее мы будем рассматривать два варианта поиска уязвимостей: с исходными текстами программы и без него.
Статью целиком читайте в журнале «Системный администратор», №10 за 2016 г. на страницах 38-43.
PDF-версию данного номера можно приобрести в нашем магазине.
- Бирюков А. Проводим пентест. Часть 1. Проникаем в беспроводную сеть. //«Системный администратор», №4, 2016 г. – С. 40-44 (http://samag.ru/archive/article/3171).
- Бирюков А. Проводим пентест. Часть 2. Сбор необходимой информации. //«Системный администратор», №5, 2016 г. – С. 27-31 (http://samag.ru/archive/article/3190).
- Бирюков А. Проводим пентест. Часть 3. Ищем уязвимости. //«Системный администратор», №6, 2016 г. – С. 24-29 (http://samag.ru/archive/article/3211).
- Бирюков А. Проводим пентест. Часть 4. Используем уязвимости. //«Системный администратор», №7-8, 2016 г. – С. 47-51 (http://samag.ru/archive/article/3237).
- Портал, посвященный различным уязвимостям – http://securityfocus.com.
- Дистрибутив RATS – https://packages.debian.org/wheezy/rats.
- Описание RATS. Анализатор исходных кодов RATS – https://habrahabr.ru/post/241648.
- Статья, посвященная работе памяти при переполнении буфера – https://habrahabr.ru/post/266591.
- Сайт minidump – http://www.microsoft.com/downloads/details.aspx?FamilyID=b2307ca4-638f-4641-9946-dc0a5abe8513&displaylang=en.
- Сайт filefuzz – http://filefuzz.software.informer.com/2.0.
- Сайт peachfuzzer – http://www.peachfuzzer.com.
- Сайт Immunity Debugger – http://www.immunitysec.com/products/debugger.
- Саттон М., Грин А., Амини П. Fuzzing: Brute Force Vulnerability Discovery / Fuzzing: Исследование уязвимостей методом грубой силы.
- Penetration Testing with Kali Linux – учебные материалы Offensive Security – https://www.offensive-security.com/information-security-training/penetration-testing-training-kali-linux.
- Application Inspector – http://www.ptsecurity.ru/products/ai.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|