«Пентестер» — слово вообще-то не русское, заимствованное. Что приходит на ум людям не из ИТ, боюсь представить. Поэтому мы себя «на Руси» гордо зовём «специалисты по тестированию на проникновение». Что ещё за «проникновение» и зачем его нужно тестировать? В этой статье я постараюсь приоткрыть завесу тайны для непосвященных.
Есть большие компании, в которых работают уважаемые «дяди». На них трудятся программисты, которые пишут код и иногда совершают ошибки. Причины ошибок банальные: по глупости, из-за лени или из-за незнания технологии, а чаще всего из-за горящих
В программном продукте любая ошибка – это потенциальная уязвимость. Уязвимость – это уже потенциальный риск. А риск – это вроде как плохо, и можно потерять деньги (вообще много всего можно потерять: данные клиентов, интеллектуальную собственность, репутацию, но всё это высчитывается в деньгах).
И что вы думаете? «Большие дяди» решают не торопить программистов, свозить их на курсы безопасной разработки, дать время на доведение кода до совершенства и делают им массаж ступней? Конечно же, нет. «Большие дяди» решают эти риски «принять» (снизить, передать, застраховать и много других умных слов). В общем, программы крутятся – лавеха мутится. Хакеры немного воровали, и всё шло в стандартном потоке, но так было до поры до времени.
Со временем объем данных стал значительно расти, наглость хакеров росла еще быстрее. Вред от взлома стал превышать допустимые пределы. Еще и пользователи начали осознавать ценность своих «ну очень важных» персональных данных, а потом подъехали «ребята» из политики, и завертелось (прослушка первых лиц, вывод из строя Иранской АЭС, фальсификации выборов, свобода слова, право на приватность, право на забвение и наконец «кибероружие»!).
Все сразу поняли, что информационная безопасность – это вам не «хухры-мухры».
Тут самые уважаемые люди сказали, что злых хакеров-то они, конечно, посадят (до которых дотянутся), но и всем остальным нужно вроде как нести ответственность за свою деятельность и выполнять необходимые меры по информационной безопасности. Выпустили указания, стукнули молотком и разбежались.
Важный момент для читателя: «бизнес», конечно, может говорить, что ему очень важна ваша приватность, данные никому не передадут и каждый бит информации будет охранять специально обученный человек, но по факту это мало кого волнует. Основные мотиваторы для обеспечения ИБ – это «бабки», или точнее:
- требования регуляторов (иначе большие штрафы);
- не дать хакерам украсть много (может довести до банкротства);
- сохранить репутацию (чтобы доверчивые пользователи дальше несли денежки компании).
Вообще сначала никто сильно не напрягался, разрабатывали умные бумажки, закупали сертифицированное оборудование, нанимали сертифицированных специалистов (а, точнее, покупали бумажки своим бездарям), и вроде бы на первый взгляд стало всё безопасно. Но как все понимают, одними бумажками в реальной жизни не отделаться.
Снова «умные дяди» собрались и решили: чтобы защищаться от злоумышленника, нужно думать, как злоумышленник. Не обязательно самим, можно формализовать этот процесс, нанять специально обученных людей «в пиджачках», и пусть себе взламывают, а на выходе будет новая бумажка, но уже «технический отчет»!
Так вот, «пентестер» по-простому – это тот, кто имитирует работу реального злоумышленника, тем самым тестируя организацию на возможность проникновения (компрометации) и получения доступа к информационным активам (конфиденциальной информации).
Как тестировать? Откуда? Куда проникать? Какие сведения получить? Какие ограничения? – всё это детали, которые заранее оговариваются.
Со стороны кажется, что работенка легкая и высокооплачиваемая, плюс еще и рынок не насыщен специалистами, поэтому и формируется тренд, что многие школьники хотят стать «кул-хацкерами», сидя дома на диване и нажимая пару клавиш, взламывать ИТ-гигантов. Но так ли всё просто?
Жизненный опыт
Пентестер – это не просто тестировщик, лучше сюда не идти со школьной скамьи, не обладая опытом работы в качестве сотрудника обычной компании или компании вендора.
Вы должны пройти школу жизни, примеры:
- объяснить бухгалтеру, что принтер не работает, потому что провод не подключен к компьютеру;
- объяснить финансовому директору в компании, что писать пароль на стикере у компьютера очень плохо;
- установить на компьютер с 256Мб оперативной памяти программное обеспечение с минимальными требованиями на 4Gb;
- настроить корпоративную сетку на домашних роутерах так, чтобы всё летало;
- ждать согласования получения доступа к простой информационной системе пару месяцев;
- разработать политику информационной безопасности за пару дней, скачав «рыбу» с интернета;
- попросить бога, чтобы программа скомпилировалась и, ничего не изменив в коде, получить успех;
- сделать работу быстрее запланированного в 2 раза, а вместо премии получить еще больше работы;
- и т.д.
Иначе весь ваш отчет без понимания реальной практики и индивидуальности заказчика так и останется красивой бумажкой, а рекомендации никогда не выполнятся.
Найти одну «дырку» в многотысячной компании обычно не составляет труда, но не имея жизненного опыта, будет трудно полноценно анализировать и взламывать другие системы, не понимая:
- Как это было построено? (качественно, либо под веществами)
- Почему именно так? (лень, бюджет, условия, кадры)
- Что мог упустить разработчик/архитектор/сетевик?
- Почему ни на ком не лежит ответственность за взлом системы? (а такое бывает)
- Почему никто не хочет устранять вашу суперважную найденную уязвимость? (и такое бывает)
- Почему критичную уязвимость не могут устранить за пару часов? (может, у людей просто закончился рабочий день и за переработки никто не платит)
- Насколько легко устранить обнаруженную уязвимость? (может, там поддержка на просроченном аутсорсинге)
- И т.д.
Требования к пентестеру
Требования к такому специалисту, конечно, отличаются от требований к космонавту, здесь физически выносливым быть не обязательно, можно вообще с дивана долго не вставать, но свои нюансы есть.
Вот примерные должностные обязанности:
- Проведение тестов на проникновение (pentest):
- внешнее и внутреннее тестирование на проникновение;
- анализ защищенности веб-приложений;
- анализ защищенности беспроводных сетей;
- тестирование на проникновение с использованием методов социотехнической инженерии;
- Проведение тестов на проникновение в рамках требований стандарта PCI DSS.
- Разработка отчетов и рекомендаций по проведенным тестированиям.
- Собственное развитие и развитие компетенций отдела в области ИБ.
Примерные требования:
Наличие высшего технического образования в области ИБ.- Знания по администрированию *nix и Windows-систем, web-серверов.
- Знание сетевых протоколов (TCP/IP), защитных технологий (802.1x), а также основных уязвимостей сетевых протоколов (arp-spoofing, ntlm-relay).
- Знание работы веб-протоколов и технологий (http, https, soap, ajax, json, rest...), а также основных веб-уязвимостей (OWASP Top 10).
- Знание рынка продуктов ИБ (производители, поставщики, конкуренты, тенденции развития, особенности спроса, потребности и ожидания заказчиков).
- Понимание технологий защиты информации (WAF, VPN, VLAN, IPS/IDS, DLP, DPI и т.д).
- Опыт работы с программами nmap, sqlmap, dirb, wireshark, burp suite, Metasploit, Responder, Bloodhound.
- Опыт работы с ОС Kali Linux.
- Знание методологий OWASP, PCI-DSS.
- Опыт разработки на Python, PHP, Ruby, bash, Powershell, Java, C, Assembly.
- Понимание основ reverse engineering.
- Знание английского языка не ниже уровня Intermediate.
Знание китайского(скоро ждите).
Плюсом:
- Опыт реверс-инжиниринга и анализа вредоносного кода.
- Опыт эксплуатации бинарных уязвимостей.
- Наличие профессиональных сертификатов CEH, OSCP, OSCE и т.п.
- Участие в профессиональных соревнованиях (CTF, hackathon, олимпиадах).
- Участие в программах Bug Bounty.
- Наличие своих CVE.
- Выступление на профессиональных конференциях.
От себя:
Технический гений-социофоб в данном случае мало кого интересует, обычно здесь требуется коммуникабельный человек, умеющий:
- объяснить заказчику, что тот на самом деле хочет и как это будет выглядеть;
- грамотно изложить и защитить свои действия и рекомендации в письменной и устной форме;
- в случае успеха создать «вау-эффект»;
- в случае неуспеха создать «вау-эффект» (минусы пентеста – это плюсы ИБ);
- быть стрессоустойчивым (бывает жарко, особенно при скрытых работах);
- решать поставленные задачи в срок даже при перекрестных проектах.
- быть в тренде (о, да, быть в тренде – это «ноша» всех ИТ-специалистов):
- [Нельзя после работы просто так взять и не думать о работе].
- Нужно постоянно развиваться.
- Читать чатики в телеграмме, читать зарубежные блоги, читать новости, отслеживать Twitter, читать Habr, смотреть отчеты.
- Изучать новые инструменты, отслеживать изменения в репозиториях.
- Посещать конференции, выступать самому, писать статьи.
- Обучать новых сотрудников.
- Сертифицироваться.
- Не перегореть.
Философия пентеста
Не нужно думать, что пентест покажет все проблемы, что полученный результат будет объективной оценкой вашей ИБ в компании (продукта).
Пентест всего лишь показывает, какого результата команда конкретных специалистов в заданных условиях (время, место, модель злоумышленника, компетенции, разрешенные действия, законодательные ограничения, приоритеты,
Помните: пентестеры – это не реальные злоумышленники, которые могут комбинировать кражу, взлом, шантаж, подкуп сотрудников, подделку документов, своё влияние и другие общечеловеческие факторы, здесь всё согласуется по 100 раз, нагрузка контролируется и все в курсе.
Пентест — это еще и удача. Сегодня ты успел извлечь пароль администратора из оперативной памяти и поднялся до администратора домена на всю корпоративную сеть, а завтра его уже там нет, и в отчет пойдет только непривилегированный (простой) доступ на каком-то древнем, никому не интересном сервере.
Отличия от близких направлений
Помимо «пентестеров», есть еще «редтимеры», «багхантеры», «исследователи», «аудиторы», просто специалисты по ИБ – всё это может быть один человек, а могут быть и разные люди, только частично пересекающиеся по компетенциям. Но попробуем немного «разжевать» эти термины:
«Аудитор»
Данному специалисту предоставляются все документы, схемы сети, конфигурации устройств, на основе чего делаются выводы и рекомендации для организации в соответствии с лучшими стандартами и опытом аудитора. За счет открытости сведений он дает наибольшее покрытие по всем процессам ИБ и целостный взгляд на всю инфраструктуру.
Аудитор редко самостоятельно проверяет каждую настройку в организации, обычно сведения ему предоставляем сам заказчик, порой устаревшие или неверные.
Необходимо объединять усилия аудиторов и пентестеров для проверки как бумажек с бизнес-процессами, так и их реализации на практике.
«Исследователь»
Пентестер в чистом виде – это не исследователь, у него просто нет на это время. Под исследователем я подразумеваю специалиста, который может поднять стенд, развернуть определенное программное обеспечение и исследовать только его вдоль и поперек несколько недель, а то и месяцев.
А теперь представьте, вы нанимаете специалиста для тестирования вашей корпоративной инфраструктуры, а он весь срок сидел и исследовал ПО «для отправки валентинок», установленное на компе одного из сотрудников. Даже в случае успеха вам его результаты работы не сильно интересны.
«Редтимер»
Редтим – это совершенно другая философия тестирования. Подходит для компаний со зрелой ИБ, у которых уже проводились аудиты и пентесты, плюс все недостатки были устранены.
Здесь наиболее приближённо к реальному злоумышленнику, и уже под проверку попадает служба ИБ организации и смежные с ней (SOC ...).
Отличия от пентеста:
- О проведении работ знает только несколько человек, остальные будут в реальном времени штатно реагировать на атаки.
- Работы проводятся скрытно – можно атаковать с облачных хостеров в ночное время.
- Покрытие тестами делать не нужно – можно идти по пути наименьшего сопротивления и найти пароль на github.com.
- Более широкий диапазон воздействия – можно применять 0day, закрепляться в системе.
- Работы проводятся длительный период (несколько месяцев, год), не требуют спешки – как раз здесь и можно позволить себе исследования инфраструктуры заказчика на поднятых у себя стендах для минимизации срабатывания защитных средств.
«Багхантер»
Сравнивать багхантера с пентестером некорректно – это как теплое с мягким, одно другому не мешает. Но для разделения могу сказать, что пентестер – это больше должность, работа подразумевает целый ряд формальных задач по договору с заказчиком по заявленной методологии и с формированием рекомендаций.
Багхантеру достаточно найти дыру у кого-угодно (обычно из списка на площадке) и выслать доказательство наличия ошибки (предварительные условия, шаги).
Еще раз, никаких предварительных договоров, никаких согласований – просто нашел уязвимость и отправил заказчику через площадку (примером площадки может служить cайт www.hackerone.com). Можно даже посмотреть, как только что Петя это сделал в организации «А», и повторить тут же в организации «B». Конкуренция тут высокая, и «низко висящие фрукты» попадаются всё реже. Лучше рассматривать как вид дополнительного заработка для пентестера.
Специфика пентеста от компании-интегратора
Данный раздел может показаться рекламным, но от фактов не уйдешь.
Каждый пентест по-своему уникален (хотя методика и может быть шаблонной). Уникальным его делает множество факторов, но в основном это люди, команда специалистов, на стиль которых непременно влияет компания, где они работают.
Так, например, одной компании важен только сам пентест, его результаты, они делают деньги только на этом. Вторая компания хочет создать конкретные недостатки во время пентеста, чтобы продать своё защитное решение. Третья делает акцент больше на нарушенных бизнес-процессах для поднятия целого пласта проблем и предложения мер по их решению.
Работая в компании-интеграторе, расскажу об особенностях наших пентестов для внешних заказчиков. Специфика заключается в том, что:
- Мы не заинтересованы провести пентест ради пентеста и растягивать его на несколько месяцев.
- Работы проводятся в минимально необходимые сроки, и результаты нацелены на выявление реальной картины информационной безопасности заказчика.
- Необходимо подсветить проблемные бизнес-процессы ИБ за счет тестирования ключевых точек инфраструктуры. Так, если на 20 из 20 компьютеров обнаружена устаревшая операционная система, то какой смысл демонстрировать еще 200? Полное покрытие часто не требуется, да и кто его вообще может гарантировать?
- По результатам пентеста компания сразу может предложить провести аудит, выстроить бизнес-процессы, предложить защитные меры, внедрить их, сопровождать и мониторить. В России не так много компаний может похвастаться таким набором возможностей. Это удобно, когда весь пакет услуг может предоставить одна компания, имеющая огромный опыт в подобных проектах.
С точки зрения сотрудника, компания-интегратор — это множество проектов всех видов работ с мелкими и очень крупными заказчиками в масштабах страны. Это наличие командировок как по России, так и заграницу. И конечно, работа бок о бок в команде с аудиторами, инженерами внедрения, сопровождения, вендорами и т.п.
Трудовые будни
Представим, что вы уже работаете пентестером. Как будут выглядеть ваши трудовые будни?
С понедельника по пятницу вы проводите «внешний пентест» Заказчика1 на пару с коллегой. Работы ведутся на основе личного опыта и по международным методикам, с учетом специфики заказчика. Вы запускаете сканеры, составляете карту, сверяетесь с чек-листами, переписываетесь с коллегой об обнаруженных уязвимостях.
Параллельно другая команда начинает обзванивать сотрудников заказчика, представляясь службой безопасности, рассылать грозные письма с вредоносными вложениями, кто-то даже выезжает раскидать флешки и расклеить плакаты на территории заказчика.
Это не соревнования, тут не всегда находятся интересные уязвимости, не всегда люди сообщают пароли по телефону и не всегда защитные средства настроены «дыряво», поэтому в отчет может пойти только перечень проведенных работ, но вы не волнуетесь, ведь каждый пентест учит вас чему-то новому и демонстрирует интересные человеческие факторы.
Пару раз у заказчика после фаззинга входных данных деградирует работоспособность сервисов, и работы приостанавливаются. После корректировок ограничений они продолжаются. Всё в норме. Пишете отчет.
Дальше вас распределяют на «внутренний пентест» Заказчика2 с командировкой в город N, кому-то из ваших коллег достается тестирование мобильного приложения. По приезду вас провожают в отдельный кабинет, предоставляют рабочее место. Вы спокойно подключаете сетевой кабель в ноутбук и проводите «внутренний пентест», согласно заявленному договору. Возможно, вы захватываете контроллер домена через 3 часа после начала работ через ms17-010 и остальные дни коллекционируете другие векторы. Возможно, вы всю неделю пытаетесь «играть» с «делегированием полномочий Kerberos» на паре полученных учетных записей. К вам непременно подходят сотрудники ИБ и спрашивают, что нашли. Уже через 15 минут вы ожидаете вопрос: «Ну что? Удалось что-то взломать?», хотя nmap даже «не прогрелся». В любом случае вам обычно есть чем удивить безопасников, и даже с учетной записью из принтера вы можете забрать бэкапы Exchange-сервера. Дальше отчеты, рассказы «о великом путешествии» коллегам, удивление заказчика, много рекомендаций и еще больше уточнений, но в итоге компания действительно начинает понимать, что безопасность – это процесс, а не разовые меры, и вам от проделанной работы становится приятно.
Дальше вас распределяют на red team, вы едете с коллегой в машине, паркуетесь рядом с банком. Запускаете атаку на Wi-Fi с помощью ноутбука и специальной антенны. Вы не ГРУ, у вас нет корочки, можно реально «отхватить по шапке» от непредупрежденных охранников, поэтому антенна скрыта, и у вас есть легенда, что вы ожидаете друзей.
Но вот wifi-handshake корпоративного Wi-Fi получен, и ваши коллеги в офисе уже сбрутили его и зашли через интернет в почтовый ящик топ-менеджера. Это успех. Дальше сбор информации, отчеты, презентации.
Далее в будни вы пишете скрипты для оптимизации части вашей работы. Читаете новости и тестируете новые техники на стенде. Параллельно старые заказчики присылают вам вопросы по работам месячной давности.
Несколько часов в субботу (переработки оплачиваются) запланировано нагрузочное тестирование у заказчика, вы «роняете» сайт через 10 минут после начала, и угадайте, что? Пишете отчет о результатах.
Скоро будет интересный вам пентест АСУ ТП и поездка на конференцию по ИБ за счет компании. Вы роняете слезу счастья и вставляете кавычку в новую веб-форму.
В завершение
Тема пентестов уже не нова, о ней писали много и по-разному (можно почитать тут и тут),
в вузах появляются соответствующие дисциплины, устраиваются соревнования, проводятся различные конференции, но кадровый «голод» с каждым годом увеличивается. Помимо этого, зрелость информационной безопасности многих компаний растет, появляется всё больше средств защиты информации, от специалистов требуется высокая и разносторонняя компетенция. Каждому специалисту ИТ (не говоря уже о специалистах ИБ) будет полезным хоть раз поучаствовать в реальном пентесте.
И несмотря на зачатки автоматизации (пример тут), вряд ли что-то заменит живого компетентного человека в ближайший десяток лет.