Sunday, November 6, 2011

Приз вместо оплаты услуг, продолжение.

Публикация вызвала любопытный спор в группе RISSPA на LinkedIn-е. Спор - это всегда хорошо, так как он позволяет приблизиться к истине (постараюсь быть самокритичным: есть у меня склонность к троллингу, но, зная за собой сей грешок, всегда стараюсь держать себя в руках) . Мне не показались убедительными доводы моих оппонентов, тогда как собственная логика вполне себе пригодной. В данном блоге я, все-таки, намерен излагать свои умозаключения, но быть объективным и привести доводы оппонентов и свои ответы на них. Пишу, главным образом, для тех, кто по каким-либо причинам не участвует в нашем RISSPA-LinkedIn-овском междусобойчике :-), но кому идея может показаться любопытной.

Итак, я пытаюсь применить
такие конкурсы в качестве средства анализа защищенности (теста на проникновение) интернет-сервисов коммерческой компании. Такой подход, на мой взгляд, имеет ряд серьезных преимуществ для Заказчика (коммерческой компании):

  1. Выбор подрядчика происходит по факту выполненных работ, а не на основании предположения как подрядчик, наверно, это сделает. Сложившаяся практика такова: Заказчик пишет Техтребования, требования к квалификации подрядчика, вывешивает их на свой сайт с предложением слать оферты. Потенциальные Подрядчики высылают в назначенный час свои оферты с информацией о том, какие они хорошие. Заказчик рассматривает предложения, отсеивает тех, кто не проходит по каким-либо квалификационным требованиям, а из оставшихся квалифицированных выбирает по минимальной цене победителя. Т.е. на момент выбора Подрядчика Заказчик не имеет ни малейшей уверенности, что Подрядчик отработает хорошо. Критерий минимальной цены здесь играет далеко не в интересах Заказчика.
  2. Множество независимых результатов позволит более объективно оценить качество работ. По "устоявшейся" схеме после отработки подрядчика Заказчик получит единственный результат, собственно, результат работы Подрядчика. Для оценки качества работы Подрядчика, Заказчику, в случае пентеста, надо провести свой пентест: ОК, если Подрядчик нашел хоть что-то, но если он не нашел ничего, означает ли это, что Заказчик хорошо защищен? Или просто Подрядчик так отработал (как смог)? Множество независимых результатов эту проблему смягчают: если Подрядчик1 не нашел ничего, а Подрядчик2 - что-то, - уже есть смысл задуматься.
  3. Заказчик гарантированно впишется в свой бюджет. Тут все понятно: Заказчик сам объявляет приз, и не возможна ситуация, когда запланированный на пентест бюджет ниже любой присланной оферты.
  4. Подобные конкурсы позволят открывать новые имена. При открытом конкурсе, когда участвовать сможет каждый желающий, больше шансов для формирования действительно конкурентной среды, что, безусловно, повысит качество услуг.
Изобретатели и яростные сторонники современных тендерных процедур мне возразят, что оплата всегда производится по факту выполненных работ и это гарантирует Заказчику защиту от некачественных услуг. Но, не все так просто. Крайне тяжело оценить качество пентеста, когда есть просто куча НО. Фактически, чтобы доказать Подрядчику, что работы, им проделанные, низкого качества, Заказчику надо провести аналогичные работы.... иначе, я не знаю как. Очевидно, нанимая Подрядчика, Заказчик тем самым подтверждает по тем или иным причинам свою неспособность в выполнении этих работ, а следовательно, Подрядчик неплохо устроился :-)

Теперь перейдем к аргументам моих оппонентов.

1. Возможна низкая эффективность такого конкурса.
Тут мне кажется, что все зависит от мотивации. Можно придумать неплохую стратегию проведения таких конкурсов, где продумать вопросы мотивации участников. Сейчас, банально, чем выше призовой фонд, тем бОльшая эффективность будет у конкурса. В любом случае, все работают за деньги. Можно продумать какие-либо еще варианты: какое-нибудь схемы взаимного сотрудничества, рекламы и т.п.
2. Подобные конкурсы будут работать только в разовых акциях и непригодны для постоянного процесса.
Во-первых, совсем не обязательно пентестить сайт на постоянной основе, скажем, раз в год. Во-вторых, все опять же упирается в мотивацию: никто не мешает, например, оплачивать любую информацию об обнаруженной уязвимости, - при такой постановке вопроса уже мы наблюдаем процесс. Примерно это может выглядеть так: Заказчик сделал Интернет-сервис, запустил конкурс. Условиями может быть оплата каждой найденной уязвимости в пропорции к ее критичности, например (все это можно прописать в техтребованиях).
3. Подобные конкурсы приведут к тому, что Черные шляпки будут использовать найденные уязвимости в своих грязных делишках. Мое мнение, что на этот риск наличие или отсутствие конкурса никакого влияния не имеет. Позиция, что меня никто не ломает, потому что обо мне никто не знает не очень вяжется с маркетингом, поскольку если Интернет-сервис должен приносить прибыль, он должен быть известен. Ну а с тем, что ломают то, что известно и посещаемо - надо мириться и как-то бороться.
4. Публичная огласка степени "дырявости" веб-ресурса серьезно подмочет репутацию компании Заказчика. Стратегия "молчания в тряпочку" - наиболее разумная. Во-первых, все зависит от важности сайта для бизнеса Заказчика. Если сайт является, что называется, core-бизнес, то, уверен, его надо публично исследовать. Во-вторых, публикации типа этой, даже если они вышли до фактического исправления, на мой взгляд, вызывают меньший резонанс, чем информация о том, что какой-нибудь Изя Питерский тайно заломал сайт 15 месяцев назад, извелкал из него какую-либо выгоду, а когда надоело - продал конкурентам, которые глумились уже более продуманным образом (еще раз, публичность или непубличность исследований не будет хоть как-то коррелировать с работой Изи). Выход публикаций об узявимостях уже означает, что по ним рабоатют и латают. К тому же, остается надежда на этичность исследователей и подобные уязвимости пойдут в публикацию уже после исправления. Я абсолютно уверен, что стратегия "молчания в тряпочку" значительно менее эффективна, чем всестороннее исследование.

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

4 comments:

simonov said...

Какой аттракцион жадности! :)

Несколько минусов:

1. Хорошие пентестеры на дороге не валяются. Что будет правильнее конторе с хорошими специалистами, отправить их к заказчику с договором, оплачивающим усилия, или просто в надежде "авось пробьёмся" рубиться с системами безопасности? Ничего серьёзного для демонстрации заказчику не нашли, время потратили, а деньги где? Непрогнозируемо. Ну и что, что большой выигрыш при наличии результатов? Серьёзные люди в казино играют обычно для развлечения.

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

2. Оплата труда фрилансеров довольно трудна с точки зрения большого предприятия. По факту трудно доказать необходимость заключения договора, перечисления денег итд. Будет сильно походить на попил.

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


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

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

Sergey Soldatov said...

Почему же жадности?! Заказчик готов платить, но хочется получить действительно качественный сервис!

1. Пентест, все-таки больше ремесло, чем наука. Следовательно, чтобы хороший пентестер не "загнивал" он должен постоянно упражняться. Поскольку пентест, все-таки, пока еще экзотика и мало кто его заказывает, а еще меньше это делают хорошо, бОльшую часть времени пентестер будет "простаивать". Нормально, что он это время будт третить на исследвоания, постить advisory в производителей (бесплатно!), что-то сам ковырять (тоже не за деньги Заказчика!). Так почему бы ему это время не деть в подобные конкурсы?! Да тут еще и затраты, возможно, окупятся. Тогда как можно бесконечно абсолютно бесплатно сидеть ковырять Oraclе, Microsoft или SAP только за то, что имя исследователя промельнет в длинном списке исследователей. Да, Заказчик, возможно, не сможет сделать такой PR исследователю, но он может это оплачивать. Думаю, нормальная $-альтернатива, своему имени на сайте sap или Oracle.

2. С фрилансерами проблемы, согласен. Но делать так можно.

3. Еще раз. От зловредных негодяев не застрахован никто. Неважно объявлен конкурс или нет, они "делают своё чёрное дело и пойдут дальше" если на то будет желание.

Спасибо за комментарий.

simonov said...

Конечно же, мечта заказчика - "я посмотрю, что сделали, и оценю работу по своему усмотрению". :)

А заказчик готов к тому, что в процессе пентеста ему могут уронить сервис? Готов потерять информацию? Причём не в оговоренное с исполнителем время, а в совершенно неожиданный момент. Такое запросто может случиться при краудсорсинге. Причём нисколько не умышленно, а просто "так получилось". Нужно быть вполне уверенным в стойкости своего сервиса, чтобы на такое идти.

Ещё момент: допустим, уязвимость нашёл некий Сунь Вынь Беги из Китая. Легко ли будет ему заплатить? Для крупных предприятий такое может стать серьёзной проблемой.

Но интересно посмотреть, что получится у Яндекса.

Sergey Soldatov said...

Заказчик готов к падению сервиса, так как:
1. Обычно пентестят системы которые еще не в продуктиве
2. Ничто не мешает сделать копию
3. Раз Заказчик ставит в Интернет свою систему, значит он готов ко всему. Или думаете он выставляет в Интернет и начинает молить Бога, чтобы стратегия "молчания в тряпочку" в его случае сработала?! Еще раз, если не улавливается логика: если Интернет-сервис никому не известен - он не нужен (=> зачем тогда его вообще делали?!, "чтобы был" - не ответ), но если Интернет-сервис должен приносить выгоду, он должен быть известен. А раз он ивестен, надо быть готовым ко всему!