Тестировщик безопасности ПО: почему он важен для проекта и как им стать

23 января 2020
Тестировщик безопасности ПО: почему он важен для проекта и как им стать

Если вы хотя бы иногда запускаете видеоигры, то знаете, как расстраивают зависания. И можете представить разочарование более чем 5 млн обладателей консоли PlayStation, которые как-то в четверг вечером не смогли загрузить любимую игру.

Дело в том, что 17 апреля 2014 года сервера компании атаковали хакеры. Утечка данных о 77 млн аккаунтов была обнаружена только через три дня. А на восстановление полноценной работы платформы в Северной Америке и Европе потребовалось два месяца.

На данный момент этот взлом является крупнейшим в истории. И не только по числу пострадавших пользователей и объёму украденных данных. Sony потеряла более $171 млн, а её акции упали на 5%. Компания упустила 10% от ожидаемой сезонной прибыли. Успешная атака на систему безопасности пошатнула репутацию Sony. Пользователи стали массово отменять свои предзаказы на популярные игры и даже обращаться к ретейлерам с просьбами о замене консоли моделью Xbox 360. В отчёте Sony говорилось об уязвимости сервера веб-приложений, которой воспользовались злоумышленники. Официальные представители также заявили, что им было известно о дефекте, но они не придали ему должного внимания.

Чему учит эта история? Пренебрежение безопасностью ПО может обернуться потерей миллионов долларов и деловой репутации. Как избежать подобных инцидентов? Привлекать к работе над программным продуктом тестировщиков безопасности ПО.

 Тестировщик безопасности ПО

Кто такой тестировщик безопасности программного обеспечения и что он делает

Security Engineer, Penetration Tester, Security Expert, специалист по информационной безопасности ПО. Названия данной позиции отличаются в зависимости от компании, но суть работы остаётся неизменной ― выявление уязвимостей ПО и оценка защищённости ИТ-систем.

Тестировщик безопасности работает не только с программными продуктами. Полноценная оценка надёжности ПО включает анализ тестового окружения, способов передачи и хранения данных.

Иногда о тестировщиках безопасности говорят как об этичных или «белых» хакерах. И это имеет смысл, ведь и тестировщики, и хакеры пытаются взломать систему, проникнуть в неё. Отличие в том, что первые работают в команде с другими инженерами по обеспечению качества и выявляют дефекты ПО, чтобы сделать продукт надёжнее.

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

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

В обязанности тестировщика также входит:

  • мониторинг безопасности продукта и его окружения;
  • проверка на соответствие стандартам безопасности;
  • оценка серьёзности выявленных дефектов;
  • составление тестовой документации.

 Тестировщик безопасности программного продукта

Какие навыки и знания необходимы тестировщику безопасности ПО

Развиваться в области безопасности ПО без базовых технических знаний практически невозможно.

С чего начать в этой сфере IT? С освоения основополагающих для тестировщика знаний:

  • этапы разработки программного обеспечения;
  • типы дефектов и их жизненный цикл;
  • виды и правила составления тестовой документации;
  • подходы к тестированию и его уровни.

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

  • типы кибератак;
  • особенности server-side- и client-side-уязвимостей;
  • методики анализа защищённости;
  • и многие другие.

Кроме того, тестировщику безопасности будет полезно иметь представление о следующих нюансах:

  • основы криптографии и подходы к шифрованию информации;
  • некоторые аспекты сетевых технологий (модель OSI, маршрутизация пакетов в сети и т. д.);
  • основы SQL и Javascript, языка разметки HTML.

Если же у вас не так много времени на самостоятельное обучение или вы планируете перейти в сферу тестирования из области, не связанной с IT, то стоит пойти на курсы тестировщиков безопасности ПО.

Каковы перспективы у такого ИТ-специалиста

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

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

Зарплаты в этой области складываются из опыта, уникальных навыков и знаний тестировщика, а также места работы. Начинающие специалисты могут рассчитывать на зарплату до $500 ― средний уровень для джуниоров в тестировании ПО. После нескольких лет работы и перехода на более высокие уровни тестировщики начинают зарабатывать $1000 и более. А вот потолка в данной области нет, и специалисты с редкими навыками и знаниями могут рассчитывать на очень высокую оплату труда.

QA-инженеры в области тестирования ПО

Если вы не хотите работать в офисе, то можете переквалифицироваться в багхантера – профессионального искателя багов. Специализированные сервисы и корпорации развивают программы bug bounty, в рамках которых компании платят соискателям за выявленные дефектов в своих системах безопасности.

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

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

Что же в итоге

На рынке ПО появляется всё больше и больше программных продуктов. Их надёжность и защищённость от внешних атак становится для пользователей важным критерием выбора, а для компаний ― условием успеха. Поэтому всё активнее развивается область тестирования безопасности программного обеспечения.

Это перспективное направление для тех специалистов, кто хочет освоить новую ИТ-профессию или сменить вектор её развития. Тестировщики безопасности специализируются на оценке защищённости ПО, имитации кибератак и анализе возможных уязвимостей.

Соискатели могут рассчитывать на приемлемые зарплаты уже на начальных этапах и стабильный рост дохода. Существуют и альтернативные варианты развития в этой отрасли ― участие в программах bug bounty.

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