
Разработчик бесплатного дополнения VS Code Stories Бен Авад (Ben Awad) рассказал, что принял решение расстаться с проектом почти сразу после его запуска. Оказалось, что он слишком понадеялся на честность и понимание пользователей, и не учел их темную сторону в API проекта, который, по словам автора, очень простой.
Бен Авад пояснил, что после первого боевого запуска сервера проекта все шло замечательно — программисты регистрировались и публиковали в историях гифки со своим кодом. Потом начались проблемы.
Некоторые пользователи начали публиковать откровенные картинки, включая порнографические изображения. Через некоторое время почти все истории превратились в порно инсталляции.
Бен Авад отключил сервер, удалил из базы данных все загруженные изображения, настроил фильтры для картинок, чтобы убирать взрослый контент. Но это не сильно помогло. После второго включения сервера ситуация только усугубилась.
Оказалось, что пользователи смогли провести реверс-инжиниринг API дополнения и научились публиковать анимированные картинки от любого пользователя в системе. Коллеги Авада, когда кликали на его историю, видели там совсем непотребный контент, который Бен не выкладывал.
Авад опять отключил сервер, опять удалил все порно изображения из базы и внес изменения в API, отключив разрешение на публикацию картинок от анонимных пользователей. Он разрешил загружать истории только пользователям с аккаунтом на GitHub, остальные были в режиме read-only. Бен добавил возможность изменять скорость воспроизведения историй, а саму запись экрана для них решил делать с помощью asciinema, отказавшись от гифок. И вот в процессе внедрения этих изменений с Беном связался другой программист, который захотел купить это дополнение. Бен принял это предложение, так как видел потенциал проекта, но понял, что не сможет его реализовать дальше своими силами.
Код API проекта VS Code Stories выложен на GitHub. Так же там опубликован исходный код бессерверного загрузчика изображений для проекта.
Описание работы первой версии дополнения Stories для VS Code от автора.
Бен Авад в этом видео рассказал, что произошло с его проектом после его запуска и какие выводы он сделал. Также автор VS Code Stories пояснил, что продал свою разработку за $9 тыc. программисту Роланду Бренду (Roland Brand).
Maccimo
Сразу видно качественно сделанный продукт.
ArsenAbakarov
зато за 9к ушел
0xd34df00d
Меньше одной месячной зарплаты синиора в Нью-Йорке.
unsignedchar
Вряд ли это синьор делал ;)
saboteur_kiev
Ну в общем-то автор как раз имеет достаточно видяшек в ютубе — разработчик из Техаса, похоже как раз сеньор, несмотря на то, что довольно молод.
edogs
«Как рассказывают»
Как говорилось в том анекдоте — Вы тоже рассказывайте:)
vmkazakoff
Ну почтой электронной до сих пор пользуются. Там по сути тоже можно от любого имени отправить.
Maccimo
Но в папке «Отправленые» поддельные письма у вас не появятся.
Тут же:
Почта в качестве аналогии подходит плохо, правильнее было бы провести аналогию с онлайн-площадкой, тем же «Хабрахабром».
Loggus66
Зато в папке «входящие» могут, если сервер свой. Не всё сразу, все эти milter'ы с проверкой подписей и спам-списков надо подключать самостоятельно.
alex6999
Когда-то да, можно было, но теперь надо указывать в ДНС записях сервера с которых идёт отправка, а если сервера там нет, письмо 100% ляжет в спам.
Если в записях нету доверенных серверов отсылки почты, будет 99% вероятность попадания в спам
vmkazakoff
Ну если вы пользуетесь гмейлом, мейлом, Яндексом или что там ещё то да. Но так то вообще технология это более чем позволяет.
У меня на работе сервер отдельный шлёт письма именно от имени юзеров (удобнее список глазами смотреть) и аутлук все спокойно показывает.
С другой стороны — эти спамфильтры ровно потому и появились, что технология сама себя не защищала никак.
fougasse
Ну вы не путайте on-behalf и прочие рассылки конторлируемым корпоративным сервером с подделкой оправителя на общедоступном почтовике, а тем более с манипуляциями папкой исходящие на аккаунтах третьих лиц не в корпоративной среде.
vmkazakoff
Да нет тут никакого on behalf. Куда-то мои изначальные слова не туда увели. Я написал, что у совершенно любого почтового сервера (sendmail или postfix) есть возможность указать from как переменную и вы можете туда вписать совершенно что угодно (даже несуществующий адрес на несуществующем домене) и письмо уйдет и будет получено вторым сервером. То что второй сервер может его сразу отклонить, или может его принять, но поменять тему на [suspected spam] и сложить в отдельную папку это уже дело десятое. Кстати гмейл такое письмо примет нормально, конечно в папке спама надо искать, но тем не менее.
В общем был комментарий про "качественно сделанный продукт". Я заметил, что емейл начинался с весьма сопоставимым косяком. И дожил до наших дней.
unsignedchar
Email начинался, когда никто и представить не мог такого, чтобы письмо отправлялось от чужого имени. Но в 21 веке как-то странно наступать на столь древние грабли.
vmkazakoff
Ну честно говоря сториз в редакторе кода это ещё более странно чем кривой код в пет-проекте…
imanushin
Вообще, это нарушение безопасности, раздел "защита от spoofing". Я знаю как минимум одну защиту от подобного — https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/email-validation-and-authentication?view=o365-worldwide (я думаю, для других серверов и сервисов есть аналоги).
В этом случае письмо от робота (который мимикрирует под пользователя) показывалось бы в Outlook как
username@domain [untrusted]
(то есть Exchange сообщает детали Outlook'у).В вашем случае, условный злоумышленник-инсайдер может послать письмо, где в поле from будет, например, директор. И тем самым можно на ровном месте создать проблем фирме. Чтобы не палить свой ip адрес, тот же злоумышленник может подправить немного билд файл в одном из проектов, и сделать отправку письма с билд машины (ветку надо потом удалить). В последнем случае расследование будет еще более сложным.
vmkazakoff
Да, вы правы, конечно, абы какой сервер так делать не должен и не может. Само собой у нас это сервер в том контуре, в котором в принципе можно так сделать + сервер в явном виде получил такой доступ.
В свою защиту скажу, что мы о таком подумали. Код на проде без попадания на проверку ИБ у нас не оказывается никак (я физически не имею доступа). С той проверки его не удалить никак, это статический анализатор на уязвимости, в нем каждая версия хранится и только ИБ может ее удалить (и то хз как). И это ещё у меня лайт версия — я всего то в отделе обучения делаю электронные инструменты для обучения )))