На мой взгляд стоит еще добавить, что обфускация бывает не только явной и не только умышленной. То есть, бывает, что разработчик из-за довольно фривольного отношения к хорошим практикам и хорошему стилю разработки ПО нарочно или нечаянно создают условия, когда в их исходниках, конфигурациях, серверах и базах данных буквально черт ногу сломит.
Тут при конфликте такому программисту не требуется ни винт форматровать, ни бэкдоров оставлять для вредительства. Уход такого «специалиста» (а если философски подойти, то скорее приход его) автоматически несет массу неудобств.
«Не отдать» исходники ему не удастся — раз программа зарегистрирована, их текст был представлен в Роспатент вместе с заявлением, а значит, они есть у заказчика.
Вот тут на лицо какой-то наивный или устаревший подход. В общем случае программа — это огромное количество данных. Они не все текстовые и напечатать какие-то куски на 100500 страниц — это бред, на мой взгляд. Если бы речь шла о разработке какой-то достаточно статичной библиотеки или кодека — это ещё ок, но поднять большой сайт или сборку нативного приложения имея на руках только исходники, возможно даже без понимания как их применять — это довольно больно ударит по бизнесу, вернее фактически парализует его.
Если разработчик предполагает потенциальный вариант военных действий с владельцем бизнеса, то водить за нос последнего у него есть просто огромное количество возможностей:
— В исходники для заявки на регистрацию попадёт тонна макулатурных и фактически бесполезных данных, которые таковыми трудно признать без въедливого аудита.
— На прилагающийся диск с, якобы, актуальным исходным кодом продукта ляжет древняя ревизия из системы контроля версий.
— Явная или неявная обфускация, проведенная в «официальном» исходном коде сделает его бесполезным для интеграции другими программистами.
— За скобками системы контроля версий могут (умышленно или «нечаянно») остаться большие и важные пласты знаний и материалов, без которых осуществлять поддержку, а иногда даже и использование продукта, не говоря уже о развитии, становится примерно сопоставимым по затратам с написанием продукта заново (особенное если учесть наличие глубоко вовлеченного в предметную область и разработку продукта специалиста, пусть даже не программиста).
Я это к чему. Вроде понятие репозитория еще не прижилось в нормах юридической практики. Если программа для юристов — это буковки на листочках, то у меня плохие новости, есть докер-контейнеры, системы сборки и тестирования, аккаунты и виртуальные машины в амазоне или у других хостеров…
Когда речь о компании из нескольких человек, проводить профилактику против гипотетических конфликтов мудрый руководитель начнёт задолго до того, как они смогут больно долбануть по бюджету и продукту. И рычаг тут один — аккуратное разбавление незаменимых участников проекта
новыми грамотными специалистами плюс обучение молодых. Это дорого, но лишняя корзина для яиц может уберечь от потери всего.
Сразу вспомнилась концепция биржи убийств. Эдакий краудфандинг в форме лотереи. Настоящий убийца предскажет какие-то обстоятельства с большей вероятностью и благодаря этому получит гонорар. Анонимные ставки в таком тотализаторе выглядят как-то так:
— Ставлю 100$ что Пупкин не помрёт в этом году.
— Ставлю 10$ на то же…
…
— 1000$ на то, что его не станет во второй половин дня в среду четного числа.
…
Ну и угадавшие забирают часть банка пропорционально своему прогнозу.
Неужели такое никто не реализовал хотя бы по приколу?
У вас что, аллергия на Навального? А по поводу других примеров у вас нет возражений? Я, вот, тоже про эту схему из блога Лебедева впервые услышал. Ассоциация с недавними дебатами напрашивается сама собой. Желтый оттенок нынче только «оппозиция» излучает, или, там, блоггеры всякие тоже?
Примеры таких взломов, мне кажется, нужно обязательно добавлять в обязательную программу для обучения любых IT-специалистов, связанных с программированием и настройкой, а не только с безопасностью. Это должно сформировать ощущение хрупкости безопасности проектируемых систем. А-то сплошь и рядом вижу недооценку опасности и наивное пренебрежение даже простейшими мерами безопасности а-ля «да что через такую ошибку можно сделать?..»
Ещё надо больно бить программистов по фиговому листочку принципа неуловимого Джо, коим те любят прикрываться, мол, «кому это надо нас ломать». Такие атаки можно автоматизировать, а значит цена поиска и эксплуатации уязвимости может стремиться к нулю. Вас могут сломать просто так, нечаянно или просто за компанию, сломать и, возможно, даже не заметить. Какова будет цена вопроса для вашего производства, бизнеса? Даже это трудно предугадать. Нужно воспитывать в себе здоровый и конструктивный страх и осторожность в этих джунглях.
И в этом уникальном случае хрен с ним с хранилищем. Если это у нас единственное место, где хранится бэкап, то это не бэкап, ибо пожар, наводнение соседями, снайперский энурез кота, попугай ара с инженерными задатками по демонтажу технических устройств… Всё это намекает на необходимость географически распределенного бэкапа. А ваш проблемный транзистор с тяжелыми последствиями, возможно, не более вероятен, чем тот же пожар.
Значит надо стабилизатор на входе. Кстати, это же будет медленное сетевое хранилище, в котором большинство накопителей будет перманентно отключено в том числе по питанию, а включаться будут по расписанию под контролем вольт-амперных характеристик потребления энергии. Всегда можно забить тревогу и остановить тест или рефреш по температурным показателям или по превышению потребления тока.
Основная идея — разделить оперативный набор накопителей и долговременно резервный.
Помимо голографического принципа резервирования будет и несколько слоёв функциональной деградации хранилища.
Само собой дешевле, потому и сказано было, что проект для кик-стартера. Сделать интересный девайс, потешить гиков эдакой работающей убер-машиной, в которую любовно засунуты диски, которые иначе жалко было выкинуть… Всякие там «зеленые» могут денег занести, ибо вторичное использование же, кремний экономим, спасаем пляжи… Тут речь не об экономической выгоде совсем.
Это как идея с хосписом для старых гаджетов. Эдакий ящик с отделениями, где подключенные лежат старые любимые ненужные телефоны и плееры. Оптимально контролируются параметры заряда аккумулятора, температуры и влажности. Можно даже пинговать их и монтор жизненных показателей как в реанимации зафигачить с характерным звуком и кардиограммой. Это не про экономику, да.
Этот стандарт для меня оказался откровенным и приятным сюрпризом.
Оказывается на али есть и драйверы типа такого, и выключатели, и даже модули на dyn-рейку… Пошел переосмысливать свой «колхозный» потенциально умный дом.
О, может имеет смысл делать такие хранилища с огромным количеством гнёзд для флеш-накопителей и микроконтроллером, который по графику будет питание подавать, перезаписывать, обновлять и тестировать. Данные, конечно, должны храниться с большой избыточностью.
Короче. Девайс для кикстартера.
— Эдакий здоровый ящик с большой кассетой пронумерованных картридеров для MicroSD и SD и USB.
— Можно добавить отсек для подключения кучи SATA-дисков.
— Вся эта штука подключается в розетку и к ethernet.
— Данные должны храниться прохешированными кусками сразу на всех носителях по голографическому принципу. То есть почти пустое хранилище — огромная избыточность, наполовину заполненное — минимальная избыточность.
— Хранилище должно постоянно или с заданной интенсивностью по расписанию заниматься самостоятельным подключением физических носителей (флешек, винтов), освежением (перезаписью), тестированием чтения/записи, контролем S.M.A.R.T.
— Время от времени хранилище просит пользователя извлечь и выкинуть самые плохие носители, частично неисправные можно оставить, если есть свободные слоты.
Получится эдакий автоматизированный программно-аппаратный рейд-массив с бешеной избыточностью.
Если получится сделать блок более-менее типовым и универсальным, то можно предусмотреть масштабирование. Возможно появятся конторы, которым можно отправить свои ненужные флешки и винты, а они за это будут хранить некую квоту твоего цифрового хлама.
Как ещё одно облако для домашней коллекции фото-видео и бэкапов — самое то.
Действительно не застал. Или, впрочем, не заметил. Давайте опустим вопрос о том, нужно ли включать автообновление софта, особенно если вы этому софту уже доверились, установив его.
Конечно обновляться, если обновления отключены в настройках — это тот еще зашквар. Однако я не имел чести послушать другую сторону. Я не хочу гадать ошибкой это было, или закрытием критической уязвимости, которая показалась авторам важнее галочки настроек, или интерфейс настроек был плохо локализован и галочка подразумевала меньшую степень категоричности…
То, что одна прога обновилась без спросу никак не меняет вероятности, ее вредоносного использования авторами или посторонними лицами. По крайней мере корреляция надумана и не доказана. Суть — предрассудки. Закрытое ПО под виндой по определению может в один прекрасный день проснуться и сделать всё что угодно.
Переживать никогда не рано, иначе риск оказаться в роли той варёной лягушки становится вовсе не риском, а вполне устоявшейся практикой.
Надеюсь времена дельфёвых кнопок «скопировать» прошли и человечество перешагнуло это как детский лепет. По современным стандартам должен появиться софт, который будет прозрачно и незаметно обфусцировать и деобфусцировать файлы на стороне клиентов, а торрент-клиенты научатся учитывать обфускацию.
Но вы прав и это классическое противостояние брони и пули. Правообладателей меньше, чем пользователей, но они сообща и знают чего хотят, в отличие от народных масс.
И тут я бы сам рад был видеть решение в стиле PGP, SSL, P2P, VPN, а не партизанского колхоза.
Но не переживайте. Как только корпоративные облака станут тесными и душными, появится спрос и возникнут предложения в виде нормальных P2P решений. BTSync был только первым шагом, причем проприетарным. Все впереди. Будет интересно.
Я не предлагал ни от чего отказываться. Система дистрибьюции уже есть. Есть майкрософтовский стор. Я не пробовал, может на него трудно попасть?
Правильно сделанный инсталлятор — это тоже довольно удобно. Для автообновления нужно всего лишь скачать свежую версию инсталлятора и запустить на «тихую» установку.
Не хватает только облачного хранения настроек.
Кстати, а почему не вошло в практику хранить настройки приложения на специально выделенном почтовом ящике? Это ж готовое бесплатное облачко для хранения конфигурации и небольшого количества данных.
Вот даже не знаю с чего начать… Всё прекрасно в это комментарии. Я понимаю, почему описанный вами сценарий непрофильного использования дропбокса может быть удобнее. Но это же не от жизни хорошей, а от изначальных проблем с реализацией всей этой кухни.
Почему опасно держать бинари на дропбоксе, думаю, вам объяснять не надо. Но своим лайфхаком вы, простите, наколхозили распределенную файловую систему и держите на ней часть софта. очевидно, что это не полностью и не единообразно решает ваши проблемы.
В правильном, кстати, направлении в этом плане идет андроид. Почему в винде никак не перейдут к нормальной дистрибуции ПО я не знаю. В убунте давно есть волшебный и великолепный apt, и он прекрасен. Абсолютно всё, что нужно для жизни ставться одинаковым образом, удаляется одинаковым образом, хранит настройки одинаковым образом… Экономить размер программы, чтобы они влезали на дропбокс, чтобы решить часть проблем деплоя и синхронизации окружения между разными компами… Это всё половинчатые кустарные решения от сохи. Это как лайфхаки «как сделать люстру из бутылки и миски».
Ок. Выбора у нас нет, порой. И я тоже храню какие-то портабельные программы на дропбоксе. Но это не потому, что это идеальный вариант и лучше не придумать, а потому что выбора нет и никто не сделал лучше, а у меня на всё рук не хватит.
И к автору той проги логичная претензия: нужно делать так, чтобы не требовалось уметь пользоваться вашей прогой. Помещение ее в аппстор, например — это хороший кейс.
Ок. Тут я с вами согласен.
Но так однозначно сравнивать вероятности взлома с того или иного вектора… Попахивает когнитивными искажениями. Майнтейнеру не нужны списки пользователей, он билдит бинарь, который пользователи тянут сами и запускают у себя.доверяя полностью. Опять же, вы, наверно билдите сами после ревью исходников, но большинство берет бинарные сборки, особенно для винды.
Да и в целом вы меня не так поняли. Я не пытаюсь убедить, что гугл безопаснее Mahou. Я пытаюсь сказать, что не всё так просто и однозначно, что любая паранойя должна быть консистентной и перестраховываться от метеорита катаясь на автомобиле по городу — это не логично.
1. Вы серьёзно? Кого сейчас волнует размер? Да к тому же эти жалкие 10 метров. Нет, ок, похоже вас-таки волнует, но, черт подери, почему?! Тем более 10 метров — это действительно мелчи. Я надеюсь на первое место этот пункт попал не по важности для вас.
2. Зачем портативность программе, которая вешает системные хуки и висит в трее? Я бы назвал это скорее минусом, поскольку это просто очередной уход от стандартизации. Пользователю надо как-то по-особенному работать с вашей прогой. Это в век удобных аппсторов, репозиториев и прочих достижений прогресса.
3-6. Ок
7. Автообновление у пантосвитчера, вроде есть, или вы о чем? Игнорирование там тоже есть, иначе как бы они делали автоконвертацию?
Тут при конфликте такому программисту не требуется ни винт форматровать, ни бэкдоров оставлять для вредительства. Уход такого «специалиста» (а если философски подойти, то скорее приход его) автоматически несет массу неудобств.
Вот тут на лицо какой-то наивный или устаревший подход. В общем случае программа — это огромное количество данных. Они не все текстовые и напечатать какие-то куски на 100500 страниц — это бред, на мой взгляд. Если бы речь шла о разработке какой-то достаточно статичной библиотеки или кодека — это ещё ок, но поднять большой сайт или сборку нативного приложения имея на руках только исходники, возможно даже без понимания как их применять — это довольно больно ударит по бизнесу, вернее фактически парализует его.
Если разработчик предполагает потенциальный вариант военных действий с владельцем бизнеса, то водить за нос последнего у него есть просто огромное количество возможностей:
— В исходники для заявки на регистрацию попадёт тонна макулатурных и фактически бесполезных данных, которые таковыми трудно признать без въедливого аудита.
— На прилагающийся диск с, якобы, актуальным исходным кодом продукта ляжет древняя ревизия из системы контроля версий.
— Явная или неявная обфускация, проведенная в «официальном» исходном коде сделает его бесполезным для интеграции другими программистами.
— За скобками системы контроля версий могут (умышленно или «нечаянно») остаться большие и важные пласты знаний и материалов, без которых осуществлять поддержку, а иногда даже и использование продукта, не говоря уже о развитии, становится примерно сопоставимым по затратам с написанием продукта заново (особенное если учесть наличие глубоко вовлеченного в предметную область и разработку продукта специалиста, пусть даже не программиста).
Я это к чему. Вроде понятие репозитория еще не прижилось в нормах юридической практики. Если программа для юристов — это буковки на листочках, то у меня плохие новости, есть докер-контейнеры, системы сборки и тестирования, аккаунты и виртуальные машины в амазоне или у других хостеров…
Когда речь о компании из нескольких человек, проводить профилактику против гипотетических конфликтов мудрый руководитель начнёт задолго до того, как они смогут больно долбануть по бюджету и продукту. И рычаг тут один — аккуратное разбавление незаменимых участников проекта
новыми грамотными специалистами плюс обучение молодых. Это дорого, но лишняя корзина для яиц может уберечь от потери всего.
— Ставлю 100$ что Пупкин не помрёт в этом году.
— Ставлю 10$ на то же…
…
— 1000$ на то, что его не станет во второй половин дня в среду четного числа.
…
Ну и угадавшие забирают часть банка пропорционально своему прогнозу.
Неужели такое никто не реализовал хотя бы по приколу?
Ещё надо больно бить программистов по фиговому листочку принципа неуловимого Джо, коим те любят прикрываться, мол, «кому это надо нас ломать». Такие атаки можно автоматизировать, а значит цена поиска и эксплуатации уязвимости может стремиться к нулю. Вас могут сломать просто так, нечаянно или просто за компанию, сломать и, возможно, даже не заметить. Какова будет цена вопроса для вашего производства, бизнеса? Даже это трудно предугадать. Нужно воспитывать в себе здоровый и конструктивный страх и осторожность в этих джунглях.
Ой. А как их теперь убрать? Плагин завернул, а я не заметил.
Основная идея — разделить оперативный набор накопителей и долговременно резервный.
Помимо голографического принципа резервирования будет и несколько слоёв функциональной деградации хранилища.
Это как идея с хосписом для старых гаджетов. Эдакий ящик с отделениями, где подключенные лежат старые любимые ненужные телефоны и плееры. Оптимально контролируются параметры заряда аккумулятора, температуры и влажности. Можно даже пинговать их и монтор жизненных показателей как в реанимации зафигачить с характерным звуком и кардиограммой. Это не про экономику, да.
Оказывается на али есть и драйверы типа такого, и выключатели, и даже модули на dyn-рейку… Пошел переосмысливать свой «колхозный» потенциально умный дом.
Короче. Девайс для кикстартера.
— Эдакий здоровый ящик с большой кассетой пронумерованных картридеров для MicroSD и SD и USB.
— Можно добавить отсек для подключения кучи SATA-дисков.
— Вся эта штука подключается в розетку и к ethernet.
— Данные должны храниться прохешированными кусками сразу на всех носителях по голографическому принципу. То есть почти пустое хранилище — огромная избыточность, наполовину заполненное — минимальная избыточность.
— Хранилище должно постоянно или с заданной интенсивностью по расписанию заниматься самостоятельным подключением физических носителей (флешек, винтов), освежением (перезаписью), тестированием чтения/записи, контролем S.M.A.R.T.
— Время от времени хранилище просит пользователя извлечь и выкинуть самые плохие носители, частично неисправные можно оставить, если есть свободные слоты.
Получится эдакий автоматизированный программно-аппаратный рейд-массив с бешеной избыточностью.
Если получится сделать блок более-менее типовым и универсальным, то можно предусмотреть масштабирование. Возможно появятся конторы, которым можно отправить свои ненужные флешки и винты, а они за это будут хранить некую квоту твоего цифрового хлама.
Как ещё одно облако для домашней коллекции фото-видео и бэкапов — самое то.
Конечно обновляться, если обновления отключены в настройках — это тот еще зашквар. Однако я не имел чести послушать другую сторону. Я не хочу гадать ошибкой это было, или закрытием критической уязвимости, которая показалась авторам важнее галочки настроек, или интерфейс настроек был плохо локализован и галочка подразумевала меньшую степень категоричности…
То, что одна прога обновилась без спросу никак не меняет вероятности, ее вредоносного использования авторами или посторонними лицами. По крайней мере корреляция надумана и не доказана. Суть — предрассудки. Закрытое ПО под виндой по определению может в один прекрасный день проснуться и сделать всё что угодно.
Надеюсь времена дельфёвых кнопок «скопировать» прошли и человечество перешагнуло это как детский лепет. По современным стандартам должен появиться софт, который будет прозрачно и незаметно обфусцировать и деобфусцировать файлы на стороне клиентов, а торрент-клиенты научатся учитывать обфускацию.
Но вы прав и это классическое противостояние брони и пули. Правообладателей меньше, чем пользователей, но они сообща и знают чего хотят, в отличие от народных масс.
И тут я бы сам рад был видеть решение в стиле PGP, SSL, P2P, VPN, а не партизанского колхоза.
Но не переживайте. Как только корпоративные облака станут тесными и душными, появится спрос и возникнут предложения в виде нормальных P2P решений. BTSync был только первым шагом, причем проприетарным. Все впереди. Будет интересно.
Забавно, но для многих это будет довод в пользу гомеопатии, а не против. «Проверено веками», «мудрость предков», «утраченные знания» и всё такое…
Правильно сделанный инсталлятор — это тоже довольно удобно. Для автообновления нужно всего лишь скачать свежую версию инсталлятора и запустить на «тихую» установку.
Не хватает только облачного хранения настроек.
Кстати, а почему не вошло в практику хранить настройки приложения на специально выделенном почтовом ящике? Это ж готовое бесплатное облачко для хранения конфигурации и небольшого количества данных.
Почему опасно держать бинари на дропбоксе, думаю, вам объяснять не надо. Но своим лайфхаком вы, простите, наколхозили распределенную файловую систему и держите на ней часть софта. очевидно, что это не полностью и не единообразно решает ваши проблемы.
В правильном, кстати, направлении в этом плане идет андроид. Почему в винде никак не перейдут к нормальной дистрибуции ПО я не знаю. В убунте давно есть волшебный и великолепный apt, и он прекрасен. Абсолютно всё, что нужно для жизни ставться одинаковым образом, удаляется одинаковым образом, хранит настройки одинаковым образом… Экономить размер программы, чтобы они влезали на дропбокс, чтобы решить часть проблем деплоя и синхронизации окружения между разными компами… Это всё половинчатые кустарные решения от сохи. Это как лайфхаки «как сделать люстру из бутылки и миски».
Ок. Выбора у нас нет, порой. И я тоже храню какие-то портабельные программы на дропбоксе. Но это не потому, что это идеальный вариант и лучше не придумать, а потому что выбора нет и никто не сделал лучше, а у меня на всё рук не хватит.
И к автору той проги логичная претензия: нужно делать так, чтобы не требовалось уметь пользоваться вашей прогой. Помещение ее в аппстор, например — это хороший кейс.
Ок. Тут я с вами согласен.
Но так однозначно сравнивать вероятности взлома с того или иного вектора… Попахивает когнитивными искажениями. Майнтейнеру не нужны списки пользователей, он билдит бинарь, который пользователи тянут сами и запускают у себя.доверяя полностью. Опять же, вы, наверно билдите сами после ревью исходников, но большинство берет бинарные сборки, особенно для винды.
Да и в целом вы меня не так поняли. Я не пытаюсь убедить, что гугл безопаснее Mahou. Я пытаюсь сказать, что не всё так просто и однозначно, что любая паранойя должна быть консистентной и перестраховываться от метеорита катаясь на автомобиле по городу — это не логично.
2. Зачем портативность программе, которая вешает системные хуки и висит в трее? Я бы назвал это скорее минусом, поскольку это просто очередной уход от стандартизации. Пользователю надо как-то по-особенному работать с вашей прогой. Это в век удобных аппсторов, репозиториев и прочих достижений прогресса.
3-6. Ок
7. Автообновление у пантосвитчера, вроде есть, или вы о чем? Игнорирование там тоже есть, иначе как бы они делали автоконвертацию?