РАЗРАБОТКА МЕТОДИКИ ТЕСТИРОВАНИЯ НА ПРОНИКНОВЕНИЕ МОБИЛЬНЫХ И ВЕБ-ПРИЛОЖЕНИЙ

Авторы:А.Е. Мельникова, И.Н. Карманов

Источник:Мельникова Анастасия Евгеньевна, and Карманов Игорь Николаевич. "РАЗРАБОТКА МЕТОДИКИ ТЕСТИРОВАНИЯ НА ПРОНИКНОВЕНИЕ МОБИЛЬНЫХ И ВЕБ-ПРИЛОЖЕНИЙ" Интерэкспо Гео-Сибирь, vol. 9, 2019, pp. 47-53.

Аннотация

Актуальность темы работы обусловлена тем, что тестирование на проникновение (тесты на преодоление защиты, penetration testing, pentest, пентест) является популярной во всем мире услугой в области информационной безопасности (ИБ). Суть таких работ заключается в санкционированной попытке обойти существующий комплекс средств защиты информационной системы. В ходе тестирования аудитор выполняет роль злоумышленника, мотивированного на нарушение ИБ сети заказчика. В работе подробно изучены особенности проведения тестирования на проникновение, выполнен детальный анализ существующих зарубежных решений в области тестирования на проникновение, разработана собственная методика и предложены рекомендации по улучшению имеющихся методик.

Введение

Тестирование на проникновение (тесты на преодоление защиты, penetration testing, pentest, пентест) является чрезвычайно популярной во всем мире услугой в области ИБ. Суть таких работ заключается в санкционированной попытке обойти существующий комплекс средств защиты информационной системы. В ходе тестирования аудитор выполняет роль злоумышленника, мотивированного на нарушение ИБ сети заказчика.

Целью работы является разработка, апробация и выработка рекомендаций по совершенствованию методики тестирования на проникновение мобильных и веб-приложений.

Методы и методики

Тестирование на проникновение не ограничивается простым обнаружени- ем способов, которыми преступник может получить несанкционированный доступ к конфиденциальным данным или захватить системы в злонамеренных целях. Тестирование также имитирует атаку в реальных условиях, чтобы опре- делить возможную величину ущерба и необходимые средства обеспечения защиты информации [1].

Комплексное тестирование на проникновение включает несколько областей:

  • тестирование на проникновение в приложения – выявляет недостатки прикладного уровня (подделка межсайтовых запросов, межсайтовое выполнение сценариев, дефекты внедрения уязвимого программного кода, управление слабыми сеансами, небезопасные прямые ссылки на объекты и т.д.) [2];
  • тестирование на проникновение в сеть – выявление уязвимостей на уровне сети и системы (неверные конфигурации, уязвимости для конкретного продукта, уязвимости беспроводной сети, мошеннические службы, слабые пароли и протоколы);
  • тестирование на физическое проникновение (вторжение) – взлом физических барьеров (замки, датчики, камеры и т.д.)
  • IoT (тестирование проникновения в устройства Интернета вещей) – выявление аппаратных и программных недостатков (слабые пароли, небезо- пасные протоколы, программный интерфейс приложения (API) или каналы свя- зи, неверные конфигурации и т.д.).

Рассмотрим несколько популярных методологий для проведения тестирования на проникновение (табл. 1) [3].

Первая методология, «Technical Guide to Information Security Testingand Assessment», создана и поддерживается подразделением NIST(National Institute of Standards and Technology) – Computer Security Resource Center, центром по компьютерной безопасности, объединяющим специалистов федеральных служб, университетов, крупнейших ИТ-компаний США [4, 5]. Последняя версия данной методологии выпущена в 2008 году и используется до сих пор, несмотря на то, что данные в ней устарели и нуждаются в детальной доработке [6].

Таблица 1 - Сравнительная таблица актуальности методологий
Разработчик Наименование Год выпуска
National Institute of Standards and Technology Technical Guide to Information Security Testing and Assessment 2008
Institute for Security and Open Methodologies Open Source Security Testing Methodology Manual 3 2010
Open Web Application Security Project Testing Guide 2014

Ассоциация ISECOM (Institute for Security and Open Methodologies) опубликовала методологию «Open Source Security Testing Methodology Manual» (OSSTMM) – «Руководство по методологии тестирования безопасности с открытым исходным кодом» версии №3 в 2010 году. Это достаточно формализованный и хорошо структурированный документ, по настоящее время используемый в некоторых компаниях, предоставляющих услуги по ИБ [7-10]. С версии 3 OSSTMM охватывает тесты по всем каналам утечки информации – человеческий, физический, беспроводной, телекоммуникационный и сети передачи данных. Разработка OSSTMMv4 ведется в данный момент, но пока точных сроков публикации не назначено.

Open Web Application Security Project (OWASP) – открытый проект обеспечения безопасности веб-приложений. Последняя версия «TestingGuide» датируется 2014 годом, что также является совершенно недопустимым в современных реалиях [11–12]. Разработка новой версии активно ведется на сервисе хранения исходного кода Github, но даже примерные даты релиза отсутствуют [13–14].

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

Результаты

При внешней и внутренней проверке безопасности исполнитель изучает возможные пути доступа в систему. Исполнитель будет использовать интерак- тивные методы тестирования [15].

Исполнитель проверяет согласованные с заказчиком IP-адреса и, в частности, предлагаемые на них сервисы в шесть этапов(рисунок 1). Порядок проведения проверки показан на рисунке. Исполнитель проводит тестирование в информационной среде заказчика [16].

Этапы анализа защищенности

Рисунок 1 - Этапы анализа защищенности

В итоге, предлагаемая методика включает следующие этапы:

  1. сбор информации – на первом этапе проводится сбор максимального количества информации из общедоступных баз данных (DNS, Whois, и т.д.), а также других источников (веб-сайт Заказчика, поисковые системы и т.д.), чтобы узнать о том, как можно эффективно атаковать конкретную организацию;
  2. сканирование портов – подлежащая проверке система подвергается процессу автоматического сканирования портов;
  3. анализ сервисов – сервисы, выявленные в ходе предыдущего этапа, подлежат изучению Исполнителем на предмет наличия уязвимостей в системе обеспечения безопасности заказчика. Тестирование охватывает как стандартные продукты (Microsoft IIS, ApacheWebserver, и т.д.), так и программное обеспечение, разработанное самим заказчиком или третьими лицами;
  4. уязвимости протокола канального уровня – проблемы безопасности в пределах второго уровня OSI-модели [17–18];
  5. уязвимости протоколов сетевого и транспортного уровней – проблемы безопасности в пределах третьего, четвертого и пятого уровней OSI-модели;
  6. проблемы межсетевого экрана (firewall) – проблемы безопасности, связанные с конфигурацией сетевого устройства защиты;
  7. конфигурация сервера – эта категория охватывает ошибки конфигура- ции для всех видов серверного программного обеспечения. Возможно использование известных уязвимостей, даже при наличии доступных обновлений;
  8. проблемы аутентификации и авторизации – приложение не обеспечивает достаточные средства аутентификации и/или авторизации для защиты своих ресурсов. Неавторизованный или не имеющий привилегий пользователь может получить доступ к ресурсам, которые защищены или должны быть защищены;
  9. проблемы бизнес-логики – злоумышленник может нарушить бизнес-логику приложения. Конкретные схемы попыток нарушения защиты зависят от конкретного приложения [19];
  10. раскрытие информации – злоумышленник может собирать информацию о внутреннем содержании приложения или конфигурации серверов;
  11. организация атак со стороны клиента (веб-браузер) – эта категория уязвимостей связана с сетью Интернет. Она охватывает атаки, нацеленные на веб-браузер;
  12. проблемы внедрения интерпретаторов/проверки вводимых значений – Приложение пропускает непроверенные параметры входящего потока в базу данных, ИПП операционной системы или другие интерпретаторы [20];
  13. проблемы управления соединением и небезопасное управление доверительными данными – переменные, участвующие в формировании соединения, могут быть использованы нецелевым образом. Злоумышленник может манипулировать доверительными данными или внутренними данными приложения;
  14. использование недокументированного или небезопасного функционала приложений, небезопасные алгоритмы – использование данных приложений изначально являются небезопасным. Использование небезопасных алгоритмов подвергает риску конфиденциальные данные;
  15. уязвимость к атакам на отказ в обслуживании – в результате атаки сервис может стать временно недоступным для использования;
  16. вторжение в сервисы из сети Интернет – выявленные уязвимости используются с целью получения доступа к системе. Анализ найденных уязвимостей позволяет исключить ложные опасности/аспекты, не представляющие реальной проблемы;
  17. оценка рисков – на основании результатов предыдущего этапа, сначала с использованием шкалы оценки риска определяется уровень риска каждой отдельной уязвимости и далее – общий риск, которому подвергается система.

По окончании оказания услуг заказчику в бумажном виде предоставляются консультационные и рекомендационные материалы по оптимизации настройки программных и аппаратных комплексов с целью устранения выявленных уязвимостей и общего повышения уровня безопасности информационных систем клиентов. Для каждого класса исследуемых уязвимостей необходимо составить таблицу, в которой будут отражены все виды уязвимостей. Обязательно требуется указать те уязвимости, на которые эксперт по ИБ проводил тестирование и те, которые в конечном итоге получилось успешно проэксплуатировать. Пример оформления приведен в табл. 2.

Таблица 2 - Демонстрация исследованных и проэксплуатированных уязвимостей
Проблемы с интерпретатором / проверкой ввод
Приложение передает входные параметры в базу данных, API операционной системы или другие интерпретаторы без надлежащей проверки
Наименование уязвимости Протестировано Проэксплуатировано
Accessing the file system ДА НЕТ
Code injection ДА ДА
Command injection ДА НЕТ
Format string injection ДА НЕТ
IMAP/SMTP injection НЕТ ДА
LDAP injection НЕТ НЕТ
ORM injection НЕТ НЕТ
Overflowing character buffers ДА ДА
Path traversal ДА НЕТ
SQL injection ДА ДА
SSI injection ДА НЕТ
XML injection ДА ДА
XPath injection ДА НЕТ

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

Выводы

Предложены следующие рекомендации по улучшению существующих методик проведения тестирования на проникновение:

  1. стабильное обновление методики раз в квартал – информационные технологии развиваются стремительно, необходимо всегда следовать актуальным трендам в области защиты информации;
  2. немедленное обновление методики при обнародовании новой уязвимости;
  3. постоянное информирование сотрудников о новых уязвимостях в виде статей на внутреннем ресурсе компании – исследователям требуется каждый день повышать свою квалификацию, а также делиться знаниями между собой;
  4. назначение ряда ответственных лиц – в компании следует уделять повышенное внимание вопросу актуальности используемой методики;
  5. регулярные обсуждения внутри компании на предмет актуальности используемой методики, исключение устаревших или добавление недавно опубликованных уязвимостей;
  6. анализ проведенной работы, доработка шаблонов и написание докумен- тации для новых сотрудников.

Заключение

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Pentest (penetrationtesting) [Электронный ресурс] / отдел «Penetrationtesting». – Электрон. дан. – СФ., 2018. – Режим доступа: https://searchsecurity.techtarget.com/definition/penetration-testing. – Загл. с экрана.
  2. Importance Of Information Security In Organizations Information Technology Essay [Электронный ресурс] / отдел « Information Technology». – Электрон. дан. – К., 2011. – Режим доступа: https://www.uniassignment.com/essay-samples/information-technology/. – Загл. сэкрана.
  3. Introduction: Intelligence Gathering & Its Relationship to the Penetration Testing Process [Электронный ресурс] / отдел «Penetration testing». – Электрон. дан. – НЙ., 2016. – Режим доступа: https://resources.infosecinstitute.com/penetration-testing-intelligence-gathering/. – Загл. сэкрана.
  4. Technical Guideto Information Security Testingand Assessment [Электронный ресурс] / отдел «Publications». – Электрон. дан. – МД., 2008. – Режим доступа: https://nvlpubs.nist.gov/ nistpubs/Legacy/SP/nistspecialpublication800-115.pdf. – Загл. с экрана.
  5. Introduction to Penetration Testing and Kali Linux. [Электронный ресурс] / отдел «Secu- rity» – Электрон. дан. – Б, 2015. – Режим доступа: https://hub.packtpub.com/introduction- penetration-testing-and-kali-linux/. – Загл. с экрана.
  6. Exploit database. Exploits for web applications. [Электронный ресурс] / отдел «Exploits» – Электрон. дан. – НЙ, 2016. – Режим доступа: https://www.exploit-db.com/webapps. – Загл. с экрана.
  7. Payment application data security standard. Requirements and security assessment proce- dures. Version 3.1. Payment Card Industry (PCI). [Электронный ресурс] / отдел «Стандарты PCI-DSS» – Электрон. дан. – НЙ, 2017. – Режим доступа: https://www.pcisecuritystandards.org/ documents/PADSS_v3-1.pdf. – Загл. с экрана.
  8. TheOpen Source Security Testing Methodology Manual [Электронныйресурс] / отдел «Research». – Электрон. дан. – НЙ., 2010. – Режим доступа: http://www.isecom.org/mirror/ OSSTMM.3.pdf. – Загл. с экрана.
  9. Mitnick, Kevin. Unauthorized Access: Physical Penetration Testing for IT Security Teams [Текст] – НЙ.: John Wiley & Sons, 2009. – 287 с.
  10. MobileTop 10 2016-Top 10 [Электронный ресурс] / отдел «Projects». – Электрон. дан. – ЛА., 2016. – Режим доступа: https://www.owasp.org/index.php/Mobile_Top_10_2016- Top_10. – Загл. с экрана.
  11. OWASP Mobile Security Testing Guide [Электронный ресурс] / отдел «Projects». – Элек- трон. дан. – ЛА., 2018. – Режим доступа: https://www.owasp.org/index.php/ OWASP_Mobile_Security_Testing_Guide. – Загл. с экрана.
  12. OWASP Testing Guide v4 [Электронный ресурс] / отдел «Publications». – Электрон. дан. – ЛА., 2014. – Режим доступа: https://www.owasp.org/images/1/19/OTGv4.pdf. – Загл. с экрана.
  13. OWASP Top Ten Project [Электронный ресурс] / отдел «Projects». – Электрон. дан. – ЛА., 2017. – Режим доступа: https://www.owasp.org/index.php/Category: OWASP_Top_Ten_Project. – Загл. с экрана.
  14. Testing Guide Introduction [Электронный ресурс] / отдел «Projects». – Электрон.дан. – ЛА., 2014. – Режим доступа: https://www.owasp.org/index.php/Testing_Guide_Introduction. – Загл. с экрана.
  15. Vacca, John R. Computer and Information Security Handbook [Текст] – ЛА.: Elsevier, 2017. – 1280 с.
  16. Black box, grey box, white box testing: what differences? [Электронный ресурс] / отдел «Blog». – Электрон. дан. – П., 2016. – Режим доступа: https://nbs-system.com/en/ blog/black-box-grey-box-white-box-testing-what-differences/. – Загл. с экрана.
  17. ARP Spoofing [Электронный ресурс] / отдел «Security». – Электрон. дан. – НЙ., 2016. – Режим доступа: https://www.veracode.com/security/arp-spoofing/. – Загл. с экрана.
  18. What is MAC Flooding? How to prevent it? [Электронный ресурс] / отдел «KB». – Электрон.дан. – ЛА., 2015. – Режим доступа: https://www.interserver.net/tips/kb/mac-flooding- prevent/. – Загл. с экрана.
  19. Microsoft Security Development Lifecycle. [Электронный ресурс] / отдел «Безопас- ный цикл разработки Microsoft» – Электрон.дан. – СФ, 2016. – Режим доступа: http://www.microsoft.com/security/sdl/default.aspx. – Загл. с экрана.
  20. XPathinjection. [Электронный ресурс] / отдел «IssueDefinitions» – Электрон.дан. – ЛА, 2018. – Режим доступа: https://portswigger.net/kb/issues/00100600_xpath-injection. – Загл. с экрана.