Если вы хотя бы иногда запускаете видеоигры, то знаете, как расстраивают зависания. И можете представить разочарование более чем 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 и более. А вот потолка в данной области нет, и специалисты с редкими навыками и знаниями могут рассчитывать на очень высокую оплату труда.
Если вы не хотите работать в офисе, то можете переквалифицироваться в багхантера – профессионального искателя багов. Специализированные сервисы и корпорации развивают программы bug bounty, в рамках которых компании платят соискателям за выявленные дефектов в своих системах безопасности.
На сайтах подобным HackerOne взаимодействие компании и багхантеров происходит в рамках одностороннего публичного договора. Такие документы необходимы, ведь без них попытки протестировать систему безопасности превращаются в кибератаку, которая может быть наказуема. В подобных соглашениях зачастую прописываются условия участия в программе и размер вознаграждения.
Платформы bug bounty служат отличным тренажёром с денежными бонусами для начинающих тестировщиков. Сложнее превратить вознаграждения в постоянный источник дохода. Ведь вы можете найти уязвимость сегодня, а завтра и послезавтра ― нет. К тому же, компании неохотно платят за уже известные им ошибки, а значит, отправлять отчёты о найденных дефектах следует оперативно.
Что же в итоге
На рынке ПО появляется всё больше и больше программных продуктов. Их надёжность и защищённость от внешних атак становится для пользователей важным критерием выбора, а для компаний ― условием успеха. Поэтому всё активнее развивается область тестирования безопасности программного обеспечения.
Это перспективное направление для тех специалистов, кто хочет освоить новую ИТ-профессию или сменить вектор её развития. Тестировщики безопасности специализируются на оценке защищённости ПО, имитации кибератак и анализе возможных уязвимостей.
Соискатели могут рассчитывать на приемлемые зарплаты уже на начальных этапах и стабильный рост дохода. Существуют и альтернативные варианты развития в этой отрасли ― участие в программах bug bounty.
Для перехода в тестирование безопасности следует обладать базовыми техническими знаниями и иметь представление о работе по выявлению дефектов программного обеспечения.