Недавно мне посчастливилось пройти курс от Offensive Security под названием Penetration Testing with Kali Linux, который знакомит слушателей с основами тестирования на проникновение. С моей точки зрения, этот курс один из самых лучших, которые я когда-либо проходил. Мне приходилось участвовать в различном типе тренингах и курсах в разных областях теории и практики, но этот произвел на меня одно из сильнейших впечатлений в жизни.
Услуги в области информационной безопасности, называемые тестированием на проникновение или пентест, в нашей стране (Узбекистан) по сути не представлены, специалистов надлежащего уровня и подготовки нет. Для меня было крайне интересно понять внутренности того, как работают специалисты по тестированию на проникновение, а с учетом того, что Offensive Security считается признанным мировым лидером в сфере обучения данному мастерству, выбор данного тренинга был идеальным вариантом.
В этой статье хотелось бы поделиться своим опытом от прикосновения к миру специалистов по информационной безопасности высочайшего уровня и уроками, которые я извлек для себя из этого. Давайте пойдем по порядку – расскажу в рамках дозволенного по соглашению с Offensive Security о самом курсе. Он состоит из видеоматериалов и письменных материалов в формате pdf, которые предоставляются обучающемуся для самостоятельного изучения. Однако вся прелесть курса не в этом. Все самое интересное начинается в лабораторной работе, в которой предлагается проверить на имеющиеся уязвимости ряд виртуальных машин, которые организованы как корпоративная сеть потенциального заказчика.
Что же дает слушателю курс от Offensive Security
Не вдаваясь в технические подробности учебных материалов курса и лабораторной работы, которые запрещено разглашать, хочется выделить следующие моменты, с которыми столкнется каждый слушатель курса:
1. Основной девиз курса, которым пропитано все обучение – “Try Harder” или в переводе на русский – «Пробуй сильнее». Мой главный урок, полученный во время обучения заключается в том, что нужно исследовать все возможное программное обеспечение на целевом компьютере, проанализировать что и как должно работать, что и как работает на самом деле. Исследование работающего сервера или пользовательского компьютера является основой успеха любого тестирования на проникновение. Эта работа может занимать многие часы и даже дни, но, если она не выполнена должным образом, скорее всего, Вы потерпите неудачу. Именно упорство, настойчивость и любознательность позволяют пентестеру быть успешным.
2. В процессе работы специалисту, занимающемуся исследованием безопасности информационных систем, приходится сталкиваться со множеством различных фреймворков, языков программирования, операционных систем, типов программного обеспечения. Современный мир IT настолько велик и разнообразен, что знать все одному человеку не под силу. Зачастую специалист, занимающийся тестированием защищенности системы, должен проводить серьезную исследовательскую работу новой для себя системы, для понимания уязвимостях. Во многом, эта работа аналогична работе научных сотрудников по исследованию и изысканию. В качестве результата – нахождение слабых мест в программных комплексах, которые ведут к компрометации системы в том или ином виде. Курс учит быть готовым к постоянному знакомству с новыми программными системами, их анализу и выявлению уязвимостей.
3. Знание непосредственных инструментов, с помощью которых проводятся работы специалистов по тестированию, а также оттачивание навыков по их применению – одна из наиполезнейших вещей, которую получают слушатели курсы. Задачи в области исследования информационной безопасности зачастую просто невозможно решить без знания нужных инструментов и утилит. Такие программные комплексы, как Metasploit, NMAP, SQLmap позволяют автоматизировать большой объем рутинной работы пентестера, не изобретать каждый раз заново велосипед и придумывать программный код для решения стандартных задач исследователя информационной безопасности. Программных утилит для проведения работ по пентесту в дистрибутиве Kali Linux большое количество, запоминать наизусть как работает каждая из них, наверное, не имеет большого смысла, но базовые навыки по использованию основных утилит должны быть уверенно наработанными, чтобы проводить качественное тестирование различных информационных систем.
4. Самое интересное и важное в курсе – тестовая лабораторная среда с большим количеством виртуальных машин, каждая из которых имеет определенные уязвимости, которые позволяют обучающемуся студенту отточить те или иные навыки по проникновению на компьютеры и серверы. Степень сложности для проникновения на каждую машину очень сильно отличается, начиная от очень простых, которые покоряются благодаря одному известному эксплойту и заканчивая такими, в которых нужно проделать огромную интеллектуальную работу по поиску потенциально проблемного приложения, модификацию имеющихся эксплойтов, а также выявлению внутренних механизмов работы приложений и операционных систем. В лабораторной работе представлен широкий спектр операционных систем, как клиентских, так и серверных, а также большое разнообразие приложений и языков программирования, которые они используют.
Подготовка к курсу
После того, как курс закончен, сравнивая свои предварительные ожидания, и то что получилось фактически можно сказать следующее. Во-первых, по моим предварительным оценкам для прохождения курса нужно было порядка 100 часов. Однако, в реальности затраты времени на этот курс были в разы больше. Я думаю, суммарные затраты моего времени на курс были порядка 300 часов. Свою экспертизу в целом по информационным технологиям я оцениваю на достаточно высоком уровне, есть неплохие знания как по операционным системам и серверным приложениям, так и по сетевым технологиям, а также базовые знания и навыки по написанию программ на различных языках программирования. Но какого-либо серьезного опыта или знаний в области тестирования на проникновения у меня до этого не было. И данный курс был для меня настоящим вызовом, который требует специфичных навыков и нестандартного
Что хотелось бы сказать тем, кто планирует пройти этот курс, но не имеет богатого опыта по пентесту за плечами – заказывайте курс на максимальное количество дней, которые вы можете себе позволить по финансам. Готовьтесь к тому, что все свободное время будет уходить на прохождение этого курса. Вы будете заниматься курсом на работе, дома, на отдыхе, во сне вам будут сниться сны о том, как получить доступ на тот или иной компьютер в лаборатории. Скорее всего Ваши близкие «потеряют» Вас на время, которое Вы будете заняты курсом и к этому надо быть готовым. Если по тем или иным причинам Вы не готовы будете выделить достаточно большое количество часов на прохождение курса, то лучше отложить его и не выкидывать деньги на ветер.
Один из моих коллег когда-то спрашивал можно ли проводить для заказчиков экспресс тесты на проникновение, которые не занимают много времени и позволяют быстро выявить проблемы с безопасностью. Сейчас для меня очевидно, что если организации заказчики не являются однотипными в области организации IT инфраструктуры, то каждая новая работа по пентесту будет во многом представлять новое исследование и требовать для своей реализации приличного количества времени. Выявить реальные проблемы в безопасности IT инфраструктуры без серьезной подготовки и глубокого изучения сети маловероятно.
Мысли об информ безопасности на практике
В процессе, а также уже после того, как курс был завершен, в голове было много мыслей о том, что полезного можно вынести для себя в дальнейшем для использования в работе и в жизни. Особое внимание хотелось бы обратить на следующие вещи:
1. Первое, о чем начинаешь думать, изучая материалы курсы – антивирусное программное обеспечение и персональный брандмауэр на своем персональном компьютере. Даже если они и не обеспечивают полноценную защиту вашего рабочего места, то по крайне мере делают задачу злоумышленника, собирающегося похитить данные с вашего компьютера, намного сложнее. То как с помощью общедоступных данных из Интернета взламываются многие компьютеры приводит в замешательство – на курсе показаны различные методики, которые позволяют использовать как уязвимости самой операционной системы и программного обеспечения, установленного на ней, с удаленных компьютеров, так и уязвимости в интернет бразуерах, что дает возможность злоумышленникам проникнуть на ваш компьютер без вашего ведома, во время просмотра различного веб контента в сети.
Методики проникновения настолько разнообразны, а уязвимости появляются новые во множестве каждый день, что быть уверенным в безопасности своего персонального компьютера становится непозволительной роскошью.
Не хочется рекламировать какой-то специфичный продукт, но для себя сделал вывод еще один раз – на компьютере обязательно должен быть антивирус, и он должен постоянно обновляться. Каждый конечно же должен сам выбирать тип антивирусного программного обеспечения, которому он доверяет.
2. Второе, что наиболее важно при построении защиты своей сети, и в чем опять же убеждает курс – необходимость в регулярном обновлении всех программных компонентов IT инфраструктуры. Большая часть известных уязвимостей и уж тем более известных эксплойтов существует только в программном обеспечении, которое не обновляется, либо обновляется нерегулярно. Первостепеннейшая задача любых администраторов, как сетевых, так и системных – установка обновлений, особенно критически важных связанных с безопасностью, на все контролируемые сервера, компьютера, сетевые устройства и т.д. Только выполняя эти простые действия, можно в разы сократить риск проникновения злоумышленников в свою корпоративную сеть и сделать ее мало доступной для посторонних.
3. Чтобы заниматься тестированием на проникновение нужно безумно любить это дело. Не получится это делать между делом или из-под палки. Большая часть работы представляет собой неформализованные первоначально задачи, которые пентестер должен понять и разрешить. Готовых путей и рецептов по поиску уязвимостей зачастую нет, каждый сервер, каждая виртуальная машина имеет свои особенности, которые зачастую мешают работе готовых эксплойтов. Но до того, как использовать эксплойты, нужно еще найти уязвимости в том или ином приложении, понять, как работают эти приложения и где слабость. Как уже писал выше отточенные навыки работы с инструментами пентестера, а также четкое понимание методологии тестирования позволяют сделать этот процесс более прозрачным и легким для реализации. Однако даже с учетом этих навыков и знаний от пентестера требуется нетривиальный подход к решению возникающих задач, а также усердие и трудолюбие по доведению своих работ до логического конца. Весь описанный процесс работы пентестера выливается в огромные затраты времени при проведении работ. Работу пентестеров можно сравнить с профессией врача – нужна обширная теоретическая база и знания плюс увлеченность своим делом и усидчивость.
Резюме
Обобщив все написанное, хотелось бы дать вкратце резюме о самом тестировании на проникновении в комплексе услуг информационной безопасности, а также о том, нужно ли проводить такое исследование своей инфраструктуры. Пентест, как услуга, позволяет выявить в работе сети, серверов, приложений и различных IT сервисов уязвимые места, которые могут быть использованы злоумышленниками, и привести к потере или модификации данных. Само тестирование очень сильно зависит от людей, которые его проводят, от их экспертизы и навыков. Чем более теоретически и практически подкованы участвующие пентестеры, тем более качественным будет результат работы. Необходимость в проведении таких работ в первую очередь зависит от того, насколько важна и критична информация, работа IT систем и всей IT инфраструктуры для руководства организации. Если соблюдать безопасность внутренней IT инфраструктуры для организации не требуется, а время восстановления работы сервисов в случае сбоя может быть довольно большим, то проведение пентеста, однозначно, не нужны. Пентест служит как один из кирпичиков в информационной безопасности организации, позволяющий с технической точки зрения провести реальный аудит безопасности систем организации и выявить те места, которые нужно усилить и над чем нужно поработать. На бумаге и на словах защита организации может быть выстроена прекрасна, однако на практике все может быть не так радужно, и забывчивость администраторов или небрежность программистов зачастую может приводить к огромным брешам в безопасности. Мне видится, что пентест, позволит руководителям организаций быть уверенными, что их система защиты информации выстроена правильно и функционирует так, как и задумывалась.
Автор: andreyus