Здравствуйте, товарищи!
Эта статья посвящена очень важной для меня теме, до этого не обсуждавшейся — к счастью, очередь дошла и до нее.
Сначала я хочу рассказать вам о процессе разработки веб-приложений в компании CCP — не о том, почему мы выбираем те или иные технологии, а об обеспечении их безопасности (чем я, собственно, и занимаюсь). Мы работаем по выверенной схеме: сперва мы сами проверяем весь написанный код, а затем передаем его доверенной независимой компании, проводящей аудит уязвимостей. От результатов этого аудита зависит, выйдет ли приложение в срок: если уязвимости не удается устранить вовремя, то срок выхода приложения откладывается. Разрабатываемые нами веб-приложения весьма сложны ― ведь они взаимодействуют со многими другими системами. Это не может не сказываться на сложности тестирования; мы никогда не ограничиваемся проверкой лишь одного элемента системы (например, форумов) ― все элементы нужно испытывать вместе, что делает стоящую перед нами задачу значительно более трудной. Иногда нам не удается найти ошибки на этапе подготовки сайта к выпуску; эта статья расскажет вам о том, что следует делать в случае их обнаружения.
Со времени нашей первой попытки выпустить в свет новую версию форумов я работал над планом, который позволил бы вам своевременно сообщать об уязвимостях в наших системах, получая за это соответствующее вознаграждение. Перед вами ― первая версия этого плана; в основу дальнейшей работы над ним лягут ваши комментарии. Кто лучше вас знает, какой наградой вы действительно будете гордиться?
В настоящий момент игроки сообщают нам об уязвимостях следующими способами:
- С помощью петиций. Это не очень эффективный способ — гейм-мастер, который будет рассматривать вашу петицию, не является экспертом в области безопасности. Он может неправильно оценить степень важности вопроса — пока информация дойдет до нас, пройдет слишком много времени. Вопросы, связанные с безопасностью, нужно решать в течение нескольких минут или часов, а не дней.
- С помощью отчета об ошибке, отправляемого через сайт. Этот способ обладает всеми недостатками предыдущего — ваши отчеты вполне могут завалиться в дальний угол багтрекера.
- С помощью темы, создаваемой на официальном форуме. Это плохая идея — очень, ОЧЕНЬ плохая идея. В результате открытого распространения информации об уязвимости узнают злоумышленники ― они смогут беспрепятственно пользоваться ею до тех пор, пока мы не отреагируем на ваше сообщение.
- С помощью темы, создаваемой на любом другом форуме. Без комментариев.
Одним словом, ни один из этих способов не годится для своевременного донесения до нас важной информации. Мы хотим исправить эту ситуацию следующим образом:
- Предоставить в ваше распоряжение надежный и быстрый канал для передачи нам информации о найденных уязвимостях — канал, позволяющий нам моментально проверять сообщения пользователей и устранять дефекты.
- Объяснить, какая именно информация будет нам полезна.
Что такое «ответственное раскрытие информации»?
Согласно «Википедии», «ответственное раскрытие информации» ― это термин из области компьютерной безопасности, описывающий один из способов раскрытия информации о найденных уязвимостях. Он мало чем отличается от полного раскрытия информации, однако имеет одно важное отличие: те, кто обнаружил уязвимость, соглашаются дать разработчикам время на ее устранение; информация об уязвимости разглашается лишь по истечении этого срока. Подробнее об ответственном раскрытии информации можно узнать, прочитав соответствующую статью «Википедии».
Мы хотим создать механизм, при помощи которого вы сможете не только конфиденциально сообщать нам об уязвимостях, но и получать за это вознаграждение. Мы считаем, что усилия по улучшению игры и повышению безопасности ее участников должны соответствующим образом поощряться — но об этом мы поговорим чуть позже, когда речь зайдет о характере этих наград.
Какая информация нам нужна?
Мы не хотим начинать наше сотрудничество с разработки безумных шаблонов отчетов и правил их заполнения. Скажем просто — нам нужна максимально подробная информация. Приведу два примера, связанных с запуском нового форума:
- Плохой пример: пользователь пишет отчет об ошибке, состоящий из одного предложения: «Вы все идиоты, ничего не работает».
- Хороший пример: пользователь отправляет по адресу security@ccpgames.com письмо следующего содержания — «дорогой CCP Sreegs, я нашел уязвимость в коде официального форума, связанную с межсайтовым скриптингом. Пожалуйста, посмотри на эксплойт, который я написал — я его проверил, он работает».
Хотите ― верьте, хотите ― нет, но оба примера взяты из реальной жизни. Первый «отчет» так и не добрался до разработчиков, способных устранить уязвимость; кроме того, в наших логах были зафиксированы лишь попытки использования эксплойта — без учета фактических намерений пользователя. Мы могли бы счесть эти действия попыткой взлома — и наказали бы горе-помощника по всей строгости наших законов. Во втором случае игрок действительно помог нам и получил вознаграждение; теперь мы хотим формализовать правила выдачи подобных наград.
PLEX в обмен на информацию
Грубо говоря, мы хотим простимулировать добропорядочное поведение. Нам уже приходилось вознаграждать игроков за сообщения о найденных уязвимостях, но размер награды в каждом случае определялся индивидуально. Главная проблема ― определить, что именно вас интересует. Ваше имя в новостях (это всегда полезно при составлении резюме)? Бесплатное продление подписки? Что-то иное? Мы учтем все ваши комментарии — хочется, чтобы наше сотрудничество было по-настоящему эффективным.
Мы исходим из того, что все сообщения об уязвимостях делаются на условиях полной конфиденциальности; если вы хотите сохранить анонимность ― нет проблем, но если вам нужна слава, то вы ее получите. Некоторые идеи по поводу наград у нас уже есть, однако окончательное решение будет принято лишь с учетом ваших пожеланий.
Хочу сразу оговориться: вознаграждения заслуживают далеко не все отчеты. Чтобы получить награду, вам придется снабдить нас действительно ценной информацией; например, мало кого удивишь тем фактом, что CCP Soundwave собрал самую большую в Исландии коллекцию аниме — а вот рассказом о том, как он взялся учить японский, чтобы ничего не упустить из-за перевода, грех не поделиться с окружающими. В нашем случае пример звучит так: вместо «у вас там что-то сломано» мы хотели бы услышать «у вас там что-то сломано — сломал я его так-то и так-то». Если мы сможем воспроизвести условия, позволяющие вам пользоваться эксплойтом, и устранить их, то нашей признательности не будет границ; чем больше информации вы сможете нам предоставить, тем лучше.
Все, убедили; как с вами связаться?
Самый лучший способ связи с нами — отправка подробного письма по адресу security@ccpgames.com; лишь в этом случае мы можем гарантировать, что ваше сообщение доберется до людей, в нем заинтересованных. Несмотря на то, что правила сотрудничества с пользователями еще не утверждены, я лично прослежу за тем, чтобы важные отчеты об уязвимостях соответствующим образом вознаграждались. Жду ваших соображений о характере наград!
CCP Sreegs