The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Атака по захвату кошельков Electrum через zero-day уязвимость в PyBitmessage

15.02.2018 11:42

В PyBitmessage, эталонной реализации клиента для пересылки сообщений в децентрализованной p2p-сети Bitmessage, выявлена критическая уязвимость, позволяющая удалённо выполнить сторонний Python-код на стороне пользователя. Проблема устранена в выпуске 0.6.3.2, но имеются сведения об организации атаки по похищению файлов с кошельками Electrum, которая началась ещё до публичного раскрытия сведений об уязвимости. Уязвимости подвержены только ветки 0.6.2 и 0.6.3, в 0.6.1 проблема отсутствует. Всем пользователям уязвимых версий PyBitmessage рекомендуется срочно перегенерировать ключи и сменить пароли.

Проблема вызвана применением в коде функции eval(), в которой выполнялось содержимое, составленное на основе внешних данных. Злоумышленник мог отправить сообщение, приводящее к выполнению произвольного Python-кода. Уязвимость активно использовалась для копирования файлов с кошельками ("~/.electrum/wallets/") с системы пользователей. В ходе атаки также зафиксирован запуск бэкдора для организации доступа извне, позволяющего получить содержимое любых файлов в системе.

Атаке подвергся в том числе Peter Šurda, создатель Bitmessage, ключи которого были скомпрометированы. Тем не менее, судя по всему, основной целью атаки стали распространители вредоносных шифровальщиков, которые в последнее время активно используют Bitmessage для организации каналов связи с жертвами.

Децентрализованная p2p-сеть Bitmessage использует похожие на Bitcoin принципы построения распределённой шифрованной цепочки блоков, но вместо хранения информации о денежных транзакциях, ориентирована на пересылку сообщений. Сообщения в Bitmessage рассылаются широковещательно, но только получатель может расшифровать адресованное ему сообщение. Адресат не указывается, поэтому каждый участник получает все сообщения в сети и пытается расшифровать каждое сообщение и если сообщение адресовано ему, то расшифровка удаётся и в хранилище сообщений добавляется подтверждение получения. Если сообщение не было расшифровано в течение двух дней, оно удаляется из распределённого хранилища.

  1. Главная ссылка к новости (https://www.reddit.com/r/bitme...)
  2. OpenNews: Выпуск bitmessage-клиента Pechkin 0.3
  3. OpenNews: Уязвимость в Apache Struts стала причиной утечки персональных данных 143 млн американцев
  4. OpenNews: Выявлена крупнейшая коллекция учётных записей с открытыми паролями
  5. OpenNews: Вредоносное ПО организует майнинг криптовалют на серверах с незакрытыми уязвимостями
  6. OpenNews: Мошенники смогли разместить на YouTube рекламу с кодом для майнинга криптовалюты
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48080-bitmessage
Ключевые слова: bitmessage, bitcoin
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (123) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:11, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    > eval()

    Игрушечные языки такие игрушечные.

     
     
  • 2.3, A.Stahl (ok), 12:15, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +13 +/
    В своё время была истерия по поводу goto в результате которой про эту команду уже не каждый программист и знает-то иначе кроме как из анекдотов.
    Может стоит среди скриптовиков поднять такую же бучу по поводу eval?
     
     
  • 3.17, pavlinux (ok), 14:01, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • –9 +/
    >  goto в результате которой про эту команду уже не каждый программист и знает-то

    Это копипастакодеры, а не программисты.

     
  • 3.38, eganru (?), 17:09, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/



    ...
    __label__ exit;

    for(u32 foo = HUGE; foo; --foo){
        for(u32 bar = HUGE2; bar; --bar){
            if(unlikely(cond(bar)){
                foobar(foo, bar);
                goto exit;
            }
        }
    }
    exit:
    ...



     
     
  • 4.41, A.Stahl (ok), 17:25, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    И?
     
  • 4.71, Аноним (-), 22:30, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вложенный цикл лучше в отдельную функцию выделить, и goto станет не нужен.
     
     
  • 5.77, eganru (?), 00:15, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    [i]лучше в отдельную функцию выделить[/i] - и это будет яркий пример костыля(лишь бы не использовать goto). и дело не только в затруднении читаемости кода на ровном месте.

    ясное есть языки без goto. и ничего.

    я последние годы пишу на С и asm. в воображаемом мире пугливые розовые единороги решают все свои проблемы избежанием goto.
    в реальном мире есть куча куда как более глубоких логических промахов, с которыми не всегда ясно, что вообще делать.

     
     
  • 6.82, iPony (?), 05:58, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > в воображаемом мире пугливые розовые единороги решают все свои проблемы избежанием goto.

    Кстати про единорогов... Правильность кода - это не пустые слова.
    Можешь хоть сколько смеяться, но когда вот такое <CENSORED> пишут не для чисто своей подделки, то за это надо бить томиком чего-нибудь этакого фундаментального по голове.

     
     
  • 7.87, eganru (?), 08:32, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    [i]этакого фундаментального по голове[/i] - я неоднократно видел как куски <CENSORED> своими фундаментальными томами вгоняли в гроб трезвые идеи.

    по поводу goto - можете к слову полезть поспорить к Adam Dunkels с его protothreads (c labels as values). рассказать ему как Вы круто все знаете.

    *впрочем спорить не намерен. ясное дело что в своих кодах Вы можете делать что хотите.

     
  • 6.83, iPony (?), 05:59, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    PS: https://twitter.com/Code_Analysis/status/963450814059696129
     
  • 5.113, anomymous (?), 12:55, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вложенный цикл лучше в отдельную функцию выделить, и goto станет не нужен.

    Даёшь каждому циклу по функции. А лучше - по целому классу.
    ... о времена, о нравы ...

     
  • 4.80, Аноним (-), 02:30, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ...
    bool cancel = false;
    for(u32 foo = HUGE; foo && !cancel; --foo){
        for(u32 bar = HUGE2; bar && !cancel; --bar){
            if(unlikely(cond(bar)){
                foobar(foo, bar);
                cancel = true;
            }
        }
    }
    ...
     
     
  • 5.88, mickvav (?), 09:26, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По производительности уступает варианту с goto. Всё в функцию и return - это да.
     
     
  • 6.90, eganru (?), 11:12, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    на создание дополнительной функции должны быть серьезные аргументы.

    добавит ли в таком случае функция ясности? точно нет. зачем тогда кого-то этим всем путать?

     
     
  • 7.104, А (??), 23:13, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > на создание дополнительной функции должны быть серьезные аргументы.
    > добавит ли в таком случае функция ясности? точно нет. зачем тогда кого-то
    > этим всем путать?

    Конечно. Гораздо же лучше одна функция на тысячи две строк и с кучей вложенных друг в друга циклов. С массой goto в произвольные места. Печатаешь потом такую <censored>, прибиваешь распечатку на стену от потолка до пола и разноцветными маркерами размечаешь начала и окончания разных вложенных друг в друга циклов. Очень эффективный метод изучения того что же это <censored> делает. Прежде чем его выбросить в мусор, заменив на обозримый и читабельный код...

     
     
  • 8.109, eganru (?), 08:58, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    i Гораздо же лучше одна функция на тысячи две строк i - это Вы написали Я эт... текст свёрнут, показать
     
  • 8.115, anomymous (?), 12:56, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В ядре Linux полно таких goto И ничего - всё нормально ... текст свёрнут, показать
     
     
  • 9.122, Anonymoustus (ok), 19:02, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так это твоих рук дело, аноним Приберись там, негоже оставлять после себя мусор... текст свёрнут, показать
     
     
  • 10.127, Аноним (-), 17:09, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Таки goto обычное дело в обработке ошибок Потому что если все профакапилось, вл... текст свёрнут, показать
     
     
  • 11.134, Anonymoustus (ok), 20:31, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Уговорил ... текст свёрнут, показать
     
  • 5.114, anomymous (?), 12:56, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >     for(u32 bar = HUGE2; bar && !cancel; --bar){
    >         if(unlikely(cond(bar)){
    >            
    > foobar(foo, bar);
    >            
    > cancel = true;
    >         }
    >     }
    > }
    > ...

    Сами догадаетесь, почему этот метод является ущербным?

     
  • 4.119, Аноним (-), 15:59, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    for(u32 foo = HUGE; foo; --foo){
        for(u32 bar = HUGE2; bar; --bar){
            if(unlikely(cond(bar)){
                foobar(foo, bar);
                foo = 0;
                break;
            }
        }
    }
     
     
  • 5.140, Аноним (-), 12:29, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > foo = 0;

    классический костыль. руки отрывать.

     
  • 3.58, adolfus (ok), 19:19, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    GOTO -- нормальная команда. Без нее нет жизни. Для выскочить из вложенного цикла при синтаксическом разборе вообще нет альтернативы. Везде, где использование GOTO дает выигрыш в ясности и производительности, его нужно использовать.
     
     
  • 4.60, A.Stahl (ok), 19:41, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты забыл сообщить нам что вода мокрая и у квадрата целых 4 прямых угла.
     
  • 4.66, Аноним (-), 20:59, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > вложенного цикла

    А нечего вложенные циклы лепить. Функциональщики и вовсе без них как-то живут, и ниче.

     
     
  • 5.69, Аноним (-), 22:20, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Функциональщики и прочие маргиналы неплохо обходятся и без программирования вообще - пишут полторы хрени на всю планету, которые погоду не делают. А чтобы страдать этим - используют софт и операционки писаные на чем-нибудь "менее функциональном" и все такое.

    С питонистами тоже прикольно вышло. Они так на пхп пшикали, а оказалось что от пхпшников отличаются только названием своего фетиша.

     
  • 5.141, Аноним (-), 12:30, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Функциональщики и вовсе без них как-то живут

    У функциональщиков есть лямбды

     
  • 4.89, mickvav (?), 09:29, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > GOTO -- нормальная команда. Без нее нет жизни. Для выскочить из вложенного
    > цикла при синтаксическом разборе вообще нет альтернативы. Везде, где использование GOTO
    > дает выигрыш в ясности и производительности, его нужно использовать.

    Если синтаксический разбор делать yacc-ом, то все goto он создаст сам, а в коде на нём уже никакие goto не нужны. Как следствие - исходный код чист, но не совсем на C ;)

     
  • 3.84, Онаним (?), 06:09, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Согласен. В школьные годы всегда считал, что в каждом нормальном языке должна быть возможность загрузить код на нём из строки, и GOTO мне нравилась, но только чуть подрос - сразу понял, что и то и то - зло.
     
     
  • 4.123, Аноним (-), 20:31, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > но только чуть подрос - сразу понял

    Насколько "чуть"? Полгода хотя бы прошло?

     
  • 3.96, Аноним (-), 14:37, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Про ассемблерный JMP такой бучи не было
     
     
  • 4.116, anomymous (?), 12:57, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Про ассемблерный JMP такой бучи не было

    Вот да, только хотел предложить убрать JMP и оформлять всё CALL/RET'ами.

     
  • 2.32, pda (?), 15:48, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Т.е. использование eval() вас смущает, а широковещательная рассылка сообщений с попыткой их расшифровки и масштабирование этой схемы на весь мир - нет? ;-)
     
     
  • 3.42, Аноним (-), 17:39, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а широковещательная рассылка сообщений с попыткой
    > их расшифровки и масштабирование этой схемы на весь мир - нет?
    > ;-)

    И что именно там смущать должно?

     
     
  • 4.142, Аноним (-), 12:35, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> а широковещательная рассылка сообщений
    > И что именно там смущать должно?

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

     
  • 3.53, Аноним84701 (ok), 18:14, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возможно, изучение протокола по новостям на опеннете - не самый лучший подход ... большой текст свёрнут, показать
     
  • 3.70, Аноним (-), 22:30, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ты все правильно понял, у штуки проблемы с масштабированием В конце концов хипс... большой текст свёрнут, показать
     

  • 1.2, Аноним (-), 12:12, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эталон дырявости.
     
  • 1.5, Аноним (-), 12:31, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Питон, одним словом.
     
     
  • 2.6, курлык курлык (?), 12:36, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, не проверите границы массивов в С - привет переполнение, рут права... Не в питоне дело, а в людях.
     
     
  • 3.14, Аноним (-), 13:51, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Используй range-based for loop, передавай по ссылке, и не будет переполнения.
     
     
  • 4.15, trolleybus (?), 13:56, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так вот в чистом Си range-based и нет, она только в плюсах.
     
     
  • 5.18, Аноним (-), 14:04, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В Си есть макросы.
    Python лучше сравнивать с C++. Си - скорее системный язык.
     
     
  • 6.135, Аноним (-), 21:42, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В Си есть макросы.

    Для любителей хайлевела на си есть libcello. Там и итераторы есть, и лямбды, и чего там еще. Си вообще штука довольно гибкая на самом деле.


     
     
  • 7.139, Аноним (-), 22:30, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Но и скорость у этого либчелло соответствующая, ближе к жабе и ЖС Сборщик мусо... большой текст свёрнут, показать
     
  • 5.54, Crazy Alex (ok), 18:34, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну вот и пользуйтесь плюсами
     
     
  • 6.62, Он самый (?), 19:56, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ... а мы будем и дальше за границы массива выходить. Думаю так задумывалось
     
     
  • 7.67, Crazy Alex (ok), 21:08, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Э... кем задумывалось? Если обо мне речь - то наоборот, я не вижу ни одной причины писать на сях там, где можно писать на плюсах. Ну, или D в режиме "better C" - и там и там можно получить сравнимую проиводительность и потребление с сильно уменьшенными шансами на сишные ошибки и гораздо лучшую читабельность.
     
     
  • 8.128, Аноним (-), 17:13, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    На сях в коде больше народа потом может разобраться На плюсах заканчивается тем... текст свёрнут, показать
     
  • 3.16, Аноним (-), 13:59, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Питон - высокоуровневый язык. И программист, и пользователи за это платят гигантскую цену - капитальный жор памяти и ресурсов итоговым приложением. И при этом питон даже не обеспечивает безопасноть...
     
     
  • 4.19, нах (?), 14:06, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    удивленно глядя на пару питоновских сервисов (не микро, в смысле, не падают, их не надо быстро-быстро-клонировать) - что я делаю не так, что у меня никаких ужасов не наблюдается?

    > И при этом питон даже не обеспечивает безопасноть...

    к счастью. А то зачем нам еще одна жаба-EE?

     
     
  • 5.25, Аноним (-), 14:40, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дело не в Ваших сервисах. Дело в том, что подобные вещи пропагандируются и пропихиваются как стандарт разработки прикладного ПО массового потребления. И в результате экономия нескольких часов программистов выливается в миллионы потерянных минут пользователями по всему миру. Примеры: ubuntu software center, который запускался минутами, и который Canonical так и не удалось доработать до приемлемой скорости работы; скайпом (я знаю что он не на питоне) и т.д. При том общепризнанный факт - питон не быстрый на столько, что это надо учитывать.
     
     
  • 6.26, Аноним (-), 14:52, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    убунтовцы упаковщики, а не разработчики.
    если у них нет денег, чтобы спроектировать и заплатить за нормальный Sowftware Center, это не значит, что "стандарт".
    Вон стим почему-то на спп написан и работает хорошо. А это гораздо более массовый продукт, чем сама убунта.
     
     
  • 7.35, Аноним (-), 16:29, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Стим работает приемлемо. Не так плохо, как скайп, но и не хорошо. При том до этого лет 10 работал плохо.
     
     
  • 8.129, Аноним (-), 17:53, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Как угодно но игроделы это все-же не хипстеры И плохо, не плохо, напиши лучше и... текст свёрнут, показать
     
  • 6.51, Anonymoustus (ok), 18:06, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И в результате экономия нескольких часов программистов выливается в миллионы потерянных минут пользователями по всему миру.

    Всё правильно. Поэтому надо строить фабрики по сжиганию программистов. Слишком их много стало, обленились и обнаглели.

     
  • 3.29, Iaaa (ok), 15:25, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Точнее не в людях, а в пороге вхождения.

    Пока научишься на С делать что-то удобоваримое, поневоле изучишь базовые понятия правильного кодирования; а в питонах всяких или, прости господи, джаваскриптах - xуяк, xуяк и ты уже что-то написал и запустил, можешь гордиться и распространять. Не имея вообще никакого понятия о правилах хорошего тона.

    Беда.

     
  • 2.47, Аноним (-), 17:55, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Питон, одним словом.

    А что скажут анонимные аналитки о недавней уязвимости в КДЕ?
    https://www.opennet.ru/opennews/art.shtml?num=48038
    > Уязвимость в KDE, позволяющая выполнить код при подключении внешнего носителя
    > Если метка раздела VFAT содержит символы '' или $(), то при монтировании через диалог с уведомлением о подключении устройства данные символы интерпретируются как команды shell.

    Тоже питон виноват? :)


     
     
  • 3.63, Нет ты (?), 20:53, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А вот в Rust такого не было бы!
    https://doc.rust-lang.org/std/process/struct.Command.html#me...
     
  • 3.124, Аноним (-), 10:37, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Втыкал флешку в Plasma 5.10 с меткой тома 'kcalc', не запускается. Похоже, что именно в 5.12.0 эту "фичу" запилили.
     

  • 1.7, Пиони (?), 12:46, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Кучу лет пишу на Питоне, и до сих пор не встречал ситуаций где нужно было бы использовать eval
     
     
  • 2.8, анончег (?), 13:12, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Это Вы эталонную реализацию клиента для p2p-сети Bitmessage ещё не пробовали писать! Вот там без eval-а никак!
     
     
  • 3.9, Анонй (?), 13:26, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Если без eval никак да еще и со взодящими данными то это уже вопрос компетентности писателя
     
     
  • 4.10, A.Stahl (ok), 13:35, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не знаю как там с компетентностью писателей, но твой детектор сарказма явно неисправен :)
     
  • 4.22, Аноним (-), 14:15, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Говорить о компетентности среди гвидобейсиководов, это как говорить в доме повешенного о верёвке.
     
     
  • 5.45, Аноним (-), 17:48, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Говорить о компетентности среди гвидобейсиководов,

    https://www.opennet.ru/opennews/art.shtml?num=48038
    > Уязвимость в KDE, позволяющая выполнить код при подключении внешнего носителя
    > Если метка раздела VFAT содержит символы '' или $(), то при монтировании через диалог с уведомлением о подключении устройства данные символы интерпретируются как команды shell.

    Всегда знал, что кедерасты на самом деле латентные гвидобейсиковцы!

     
  • 2.43, Аноним (-), 17:44, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пишу на perl и не один раз встречал ситуацию где оптимальнее использовать eval. На самом деле ничего страшного нет если уметь пользоваться. Если уж совсем расширять возможности, что perl позволяет, к примеру, блочить/разрешать на выполнение определенных операторов. Ругаться на eval - это как ругаться на ножи, это как инструмент (как goto). Дело в том кто и как используется, а проблема в инструменте.
     
     
  • 3.52, Anonymoustus (ok), 18:09, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Иногда (в ИТ — очень часто) проблема в инструменте. Точнее в том, что не существует способов не дать обезьяне в руки гранату. А дальше уже обезьяна найдёт способ отыскать в гранате чеку.
     
     
  • 4.61, Аноним (-), 19:56, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы видите проблему в инструменте, но проблема возникает чуть раньше - когда обезьяна попадает в ИТ индустрию. Если сделать невозможным попадание обезьян в ИТ, то проблем в инструменте нет. Так что ..
     
     
  • 5.65, Аноним (-), 20:58, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Вы видите проблему в инструменте, но проблема возникает чуть раньше - когда
    > обезьяна попадает в ИТ индустрию. Если сделать невозможным попадание обезьян в
    > ИТ, то проблем в инструменте нет. Так что ..

    И кто же тогда будет писать и переписывать "приложения" для браузеров, менять местами кнопочки, скруглять и распрямлять рамочки?

     
     
  • 6.78, Аноним (-), 00:51, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > И кто же тогда будет писать и переписывать "приложения" для браузеров, менять местами кнопочки, скруглять и распрямлять рамочки?

    Действительно, я упустил из виду необходимые и важные для обезьян вещи.

     
  • 5.73, Anonymoustus (ok), 22:36, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы видите проблему в инструменте, но проблема возникает чуть раньше - когда
    > обезьяна попадает в ИТ индустрию. Если сделать невозможным попадание обезьян в
    > ИТ, то проблем в инструменте нет. Так что ..

    А как это сделать? Раньше этому препятствовал сравнительно высокий порог вхождения. Сегодня не препятствует ничто. Фреймворки «Для обезьян» и книги «Как стать гуру написания гoвнoкoда за 3 часа» общедоступны.

     
     
  • 6.79, Аноним (-), 00:52, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    заменить их работу алгоритмами
     
  • 4.117, anomymous (?), 12:59, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Иногда (в ИТ — очень часто) проблема в инструменте. Точнее в том, что не
    > существует способов не дать обезьяне в руки гранату. А дальше уже
    > обезьяна найдёт способ отыскать в гранате чеку.

    Проблема не в инструменте. Проблема в доступе обезьяны к таковому.

     
  • 3.94, Аноним (-), 14:26, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вы не путайте перловый эвал, который eval { code here ; } с питоновским эвалом, который принимает строку.
     
     
  • 4.97, Аноним (-), 14:40, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы не путайте перловый эвал, который eval { code here ; }
    > с питоновским эвалом, который принимает строку.

    подскажите в чем отличие?
    Перл может евалить как выражение, так и блок по сути
    это вопрос контекста

     
     
  • 5.107, Аноним (-), 06:17, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ~ $ perldoc -f eval

    Достаточно исчерпывающая дока.

     
  • 4.106, Аноним (-), 06:16, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В перле две формы eval'a, если что: eval { }, оно не влияет на скорость выполнения и используется как замена эксепшонов, и обычный медленный eval "string" (широко используется для загрузки модулей в рантайме, например).
     
  • 3.95, Аноним (-), 14:37, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Честно говоря не встречал в перле случаев, когда
    евал нужен не для обработки исключения.
    Я инженер правда, не зарабатываю деньги на перле,
    но он мне необхадим как язык. А скажите, реально,
    когда еще оптимально использовать этот оператор?
    Так, чисто опыта для.
     
     
  • 4.108, Аноним (-), 06:20, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Выше, #106
     
  • 2.76, Аноним (-), 23:37, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Кучу лет пишу на Питоне, и до сих пор не встречал ситуаций
    > где нужно было бы использовать eval

    Либо вам не надо было встраивать бекдоры, либо вы взяли что-то похитрее вроде pickle

     
     
  • 3.85, pangolin (?), 08:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    на самом деле pickle для внешних данных это тоже бекдор :)
    Если нужно обмениваться сложными данными - используйте json/xml/yaml и т.п. ну или свой язык реализуйте...
     
     
  • 4.132, Аноним (-), 18:42, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > на самом деле pickle для внешних данных это тоже бекдор :)

    Именно так. Но половина пакетов поставляется с пиклами. Вторая половина не имеет механизмов серализации вообще и пишет в доках "для сериализации юзайте пикл".

     
  • 4.136, Аноним (-), 21:51, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Понимаешь, веб-макака, шифрованные сообщения и криптографические ключи не очень ... большой текст свёрнут, показать
     

  • 1.11, Аноним (-), 13:42, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот вам и типа безопасные языки. И они от уязвимостей не застрахованы, а то тут принято на Сишечку наезжать.
     
     
  • 2.20, Аноним (-), 14:10, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Фронты производительности, потребления ресурсов и безопасности питона прорваны. Кросплатформенности никогда и не было. Теперь у питонистов один аргумент - скорость разработки. И то C++ Qt ставит его под большой вопрос.
     
     
  • 3.125, Аноним (-), 10:42, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Такое и других скриптовых языков может касаться и исполняемой в JVM Жабы тоже.
     
  • 2.39, PnDx (ok), 17:17, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    php не менее безопасный. И (местами) более производительный. А толку?
     

  • 1.12, тоже Аноним (ok), 13:46, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Eval внешних данных - это не уязвимость.
    Это бэкдор.
     
     
  • 2.120, Нанобот (ok), 16:17, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Бэкдор - это если добавлено умышленно с целью получения несанкционированного доступа. И я в жизни не поверю, что рядовой аноним опеннета владеет ясновидением и может гарантировано отличить "умышленно" от "неумышленно"
     
     
  • 3.121, Аноним84701 (ok), 18:02, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Бэкдор - это если добавлено умышленно с целью получения несанкционированного доступа.

    "Правдоподобное отрицание" (plausible deniability), как термин, не зря придумали.


    PS:
    > И я в жизни не поверю, что рядовой аноним опеннета владеет ясновидением

    Зачем владеть?
    [CODE]
    % ll /dev/crystalball
    crw-r-----  0 ???  ???   0x?? Jan 31 2021 /dev/crystalball
    % ll /lib/libastral*
    -rw-r----- 777 ??? ???  ??? Feb 29  2033 /lib/libastral.so.42
    [/CODE]
    Правда да, есть временные сложности с доступом к оборудованию.


     

  • 1.13, Xasd (ok), 13:48, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > Проблема вызвана применением в коде функции eval(), в которой выполнялось содержимое, составленное на основе внешних данных

    вот бывают же идииоты..

    человеку не хватило возможностей языка СВЕРХвысокого уровня и он решил расширить их за счёт eval()

     
     
  • 2.27, Аноним (-), 14:54, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Люди не хотят думать и работать. Поэтому питон, электрон и им подобные в тренде. Вот только выясняется, что не панацея, что думать то все равно надо...
     
  • 2.56, Crazy Alex (ok), 18:38, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Мозгов ему не хватило
     

  • 1.24, ILoveIslam (?), 14:16, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ничего страшного, там ещё есть запас в 2 eval'a, для любителей похакать:

    https://github.com/Bitmessage/PyBitmessage/search?q=eval&type=Code&utf8=%

     
     
  • 2.28, Аноним (-), 15:08, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Второй вполне себе напоминает бэкдор:

    address = userInput("What address would you like to subscribe to?")
    ...
    address_information = api.decodeAddress(address)
    address_information = eval(address_information)

     
     
  • 3.102, username (??), 21:09, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это божественно
     
     
  • 4.137, Аноним (-), 21:55, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Это божественно

    С каких пор codermonkey относят к священным животным?!

     

  • 1.30, Аноним (-), 15:26, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > 2018
    > уязвимость с eval
     
     
  • 2.118, anomymous (?), 13:01, 17/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> 2018
    >> уязвимость с eval

    Не просто уязвимость с eval, а передача untrusted input для выполнения в eval.
    Это отдельная, элитная категория.

     

  • 1.31, Аноним (-), 15:42, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ~/.electrum/wallets/

    Они же шифрованные, пока пароль не введёшь Electrum не знает что с ними делать. Толку их копировать?

     
     
  • 2.34, Аноним (-), 16:27, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну может пароль в глобальной переменной? скриптонщиков всего можно ожидать. Тогда в контексте eval он будет. Осталось его только вывести как и содержимое кошельков.
     
  • 2.36, Аноним (-), 16:52, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    прям все шифрованные?
     

  • 1.33, Аноним (-), 15:57, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а дальше беспощадный брут
     
     
  • 2.40, PnDx (ok), 17:22, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > а дальше беспощадный брут

      Делать больше нечего? Вешаешь кей-логгер. Если не терпится, можно спровоцировать ребут. eval в дикой природе — прекрасен. </sarcasm>

     

  • 1.37, Аноним (-), 17:04, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    я, видимо, туповат.
    Поясните, пожалуйста, какая взаимосвязь между
    PyBitmessage (никогда о нем не слышал)
    и Electrum (использую)
    кроме как язык ЯП?
     
     
  • 2.57, Crazy Alex (ok), 18:39, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    То, что Bitmessage используют в основном те, кто занимается криптовалютами - оно и родилось из разговоров на bitcointalk, если я правильно помню.
     
     
  • 3.59, Аноним (-), 19:20, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    я с 2013-го года имею дело с криптой
    в основном по работе
    ни разу не слышал про Bitmessage

    чего тока люди не готовы написать на питоне :)

    спасибо за инфо буду на хайпе теперь.

     
     
  • 4.68, Crazy Alex (ok), 21:17, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    По-моему хайп на эту тему был лет пять назад, вместе с хайпом по поводу неймкоина, так что здесь вы чуток опоздали ;-)

    Есть разница между утверждением "большинство тех, кто связан с криптой, пользуются bitmessage" и "Большинство тех, кто пользуется bitmessage, связаны с криптой". Я говорил о втором - в основном это разного рода cypherpunks и прочие криптоанархисты, но и некоторые из core пользовались. Даже в BIP попало - https://github.com/bitcoin/bips/commits/master/bip-0047.mediawiki

     
  • 3.130, Аноним (-), 17:58, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > То, что Bitmessage используют в основном те, кто занимается криптовалютами

    Его пишут хипстеры и пользуются такие же хипстеры. Даже не панки. Cypherpunks при взгляде на это быстро понимают куда ветер дует и сносят от греха этот кусок питона. И таки циферпанков настолько халявно и нагло все-таки не нагревают.

     

  • 1.49, Anonymoustus (ok), 18:02, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Атаке подвергся в том числе Peter Šurda, создатель Bitmessage, ключи которого были скомпрометированы.

    Это прекрасно и православно.

     
  • 1.72, Аноним (-), 22:31, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Авот на телеграме...
     
     
  • 2.86, Аноним (-), 08:31, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Минимум у одного свидетеля безопасного телеграма рвануло, найс.
     

  • 1.74, Аноним (-), 22:59, 15/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это не уязвимость, а бекдор Если проект использует eval, compile, pickle, shelv... большой текст свёрнут, показать
     
     
  • 2.91, Аноним (-), 11:32, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Насчет бэкдора - согласен.

    Насчет припарок к питону - нет. Так можно на каждый скрипт лепить сложную систему, которая не защитит в результате ни от чего. Почему не настроить профиль Selinux или Apparmor? Профиль на конкретное приложение, а не на сам питон.

     
     
  • 3.103, Аноним (-), 22:43, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сама по себе система не защищает Зато она даёт индикацию, что может скомпромити... большой текст свёрнут, показать
     
  • 2.93, неймфаг (?), 11:46, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    After all, we are all consenting adults here.
     
     
  • 3.105, Аноним (-), 23:58, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Оно и видно, что доступ к кошелькам был санкционированным.
     
  • 2.101, Crazy Alex (ok), 20:25, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Милашка.
    Как простыню бреда  писать - так пожалуйста, как запостить туда, где она хоть как-то условно была бы уместна - "Регаться на баг-трекере не буду, залейте туда текст этого сообщения за меня".
     
  • 2.131, Аноним (-), 18:01, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не уязвимость, а бекдор.

    Знаешь, если хоть раз в жизни bitmessage увидеть - это таки может быть и уязвимость. Он целиком являет собой кусок наколенной стремной кривизны. Так что это всего лишь вишенка на торте, а вовсе не какое-то там исключение. Протокол непродуманный, костыли навешивали по ходу пьесы и эти костыли больно лупили по практическому использованию. Чего такое удивление очередному мелкому тупняку? Эта штука целиком состоит из "сперва накодим, потом подумаем". Обычное дело для питонистов.

     
     
  • 3.133, Аноним (-), 18:45, 18/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Чего такое удивление очередному мелкому тупняку?

    Тупняк это, возможно, мельтдаун. eval же удаленной строки данных - это не тупняк, это бекдор самый натуральный, слепым шеллом называется.

     
     
  • 4.138, Аноним (-), 22:04, 19/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ты все-же посмотри код этого bitmessage, или вообще попробуй его скачать Что ту... большой текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру