Одно дело — почитать теорию об уязвимостях и совсем другое — увидеть последствия и защититься на практике. Специалист по защите приложений в DINS Иван Юшкевич предлагает испробовать это во время конференции PHP Russia 2021, где он представит свой практический доклад «Веб-безопасность для начинающих».  А в качестве небольшого тизера к выступлению Иван рассказал нам о том, зачем вообще программистам нужно разбираться в вопросах безопасности. Прочитав статью, вы узнаете, как начать свой путь к Application Security, какой профит это принесет и как часто стоит проводить аудит в компаниях разной величины. — Расскажи о себе и своей работе, чем ты занимаешься? — Я специалист по защите приложений. Занимаюсь Application Security в компании DINS. В этой области я уже лет десять. Начинал как специалист по защите информации, потом занимался тестированием на проникновение. — Что планируется на конференции и почему именно такая тема доклада? — Несколько лет назад я решил заняться преподавательской деятельностью, вести курс защиты приложений. Тогда я начал формировать некоторую программу, часть которой и будет презентована. Доклад называется «Веб-безопасность для начинающих», в нем я расскажу об угрозах информационной безопасности в веб-приложениях.  Чтобы не растекаться мыслью по древу, мы изучим каждый из разделов на практике и разберем несколько реальных задач. Вы узнаете, на что необходимо обращать внимание при тестировании и реализации различной функциональности в веб-приложениях, и что может произойти в случае несвоевременного использования тех или иных функций. На конференции я расскажу, почему prepared statements только усложняют код, а возможность внедрения JavaScript-кода на сайте не является багом. Кроме того, на практике мы с участниками попробуем накрутить лайков в социальных сетях, украдем криптовалюту и получим доступ к самым большим секретам пользователей. А потом я объясню, что нужно делать, чтобы не допустить подобных случаев в веб-приложении. — Как ты думаешь, кому будет полезен твой доклад? Узнает ли, например, сеньор что-то новое, если он пойдет на этот доклад? Нет.  Узнает ли что-то миддл? Вполне. Возможности, ничего нового в инструментах он и не узнает, но может задуматься над некоторыми аспектами безопасности. Узнает ли что-то джун, который пойдет на доклад? Абсолютно точно. Почему так? Потому что есть более интересные доклады для сеньоров. Что-то небанальное, о том, как построить самолет из желудей и спичечных коробочек. А для миддла написание кода — одна из актуальных задач. — Программисту действительно нужна практика в вопросах безопасности? Если да, то зачем? — Да. Если говорить возвышенными словами это нужно, чтобы допускать меньше ошибок в коде. А если спуститься к материальному языку, то проблема безопасности обходится для компании в определенное количество денег. Поэтому любая ошибка, которую изначально не допустили или обнаружили на этапе создания, обходится компании дешевле, чем ее исправление потом. В чем профит для разработчика? Ведь у компании куча денег, зачем ему их считать? Он может расширить свои компетенции и в некоторых случаях претендовать на звание Security Champion в компании.  — Что нужно сделать, чтобы стать специалистом в твоей области? Пройти обучение и стать сертифицированным специалистом, или есть другой путь? — Мне кажется, в первую очередь должно быть желание: вам должно быть интересно этим заниматься. Большую часть информации о безопасности приложений сегодня можно почерпнуть из интернета. Есть куча ресурсов, где можно прокачать свои навыки. Заниматься вопросами безопасности можно и без трудоустройства в компании. Можно  участвовать в bug bounty и получать за это хорошие деньги.  Главное — иметь страсть, желание работать в области практической безопасности. Сертификаты, обучение не помогут, если вы по-настоящему не захотите этим заниматься. Среди безопасников очень многие люди не имеют вообще никаких сертификатов, но они являются первоклассными специалистами. Почему у них нет сертификатов? Потому что им просто это не нужно. А есть люди, у которых список сертификатов на целую страницу А4, они их просто собирают, для галочки. Любая компания может сказать, что она выдает сертификат, другой вопрос, что действительно стоит за этим сертификатом. Если есть желание, от любых курсов и от любого сертификата можно получить намного больше преимуществ, чем если вы просто ждете, что в какой-то момент станете профессионалом. — Как можно убедить бизнес уделить время вопросам безопасности? Какие ты слова подбираешь для того, чтобы этого добиться? — Слова очень простые. Причем, не мои, эту мысль озвучили уже до меня: исправление уязвимости на этапе разработки стоит около ста долларов, а исправление уязвимости в выпущенном продукте — на порядки дороже. Вот и все.  Никому не интересны высокие материи, но всем интересны деньги. Если можно измерять деньгами, делайте это. Если не заморочиться вопросом безопасности, например, утечет база клиентов компании. И убытки компании составят 100 млн рублей. А, например, услуги пентестера, который найдет эти уязвимости до злоумышленника, обойдутся, скажем, в миллион. Разработчик же, разбирающийся в вопросах безопасности, вообще мог не допустить этой ситуации. Сами подумайте, чего вы хотите. Надо понимать, что мы пишем код безопасно, скажем, месяц. Можем написать тот же самый код за неделю, не особенно запариваясь. Если оценить время разработчика, на безопасное написание тратятся лишние деньги. Но из-за этого заблуждения, желания сэкономить и написать побыстрее, ружье может выстрелить, и эта экономия не окупится. Можно провести такую параллель: радость от сэкономленных денег намного короче, чем слезы от плохой татуировки. Сэкономили денег, сделали татуировку, радуемся два дня, а потом думаем: там же какой-то черт нарисован, а я тигра хотел! И от этого уже никуда не деться.  — Достаточно ли сделать один раз аудит, или нужно выстраивать процесс внутри компании? — Большие компании всегда выстраивают процесс безопасной разработки приложения. Сразу скажу, этот процесс очень сложный и в нем участвуют много специалистов. Небольшие компании обычно себе позволить такого не могут, потому что им может быть больше интересен выпуск продуктов на регулярной основе. Поэтому для них лучше проводить аудиты периодически, раз в квартал, раз в полгода или раз в год. Просто чтобы получилось закрыть основные бреши. — Считаешь ли ты свой доклад нетривиальным? — Не считаю. Все вещи, о которых я собираюсь рассказывать, можно найти в интернете в общем виде. Мой доклад носит скорее развлекательный характер. Я выдам информацию сразу же, и вы сможете пощупать то, о чем я буду говорить. А также увидеть на практике последствия возможных ошибок. PHP Russia 2021 пройдет 28 июня в Москва, Radisson Slavyanskaya. Но уже сегодня можно ознакомиться с расписанием и присмотреть доклады, которые вы точно не захотите пропустить.  А еще вы можете выбрать формат участия: онлайн или оффлайн. Не забудьте купить билеты заранее: стоимость конференции постоянно растет — чем ближе к мероприятию, тем дороже.  PHP, Yii