Популярные Python-библиотеки воруют ваши данные

Расшифровка видео

Вступление

0:01 [музыка]

0:04 вот здесь всегда стояло много-много

0:06 много много-много-много машин но

0:09 парковку сделали платной и теперь теперь

0:12 есть места Я здесь писал небольшой

0:14 скрипт для пайплайн и мне нужно было

0:16 использовать цвета для того чтобы

0:18 выводить информацию разного цвета в

0:20 зависимости от того успешна она или нет

0:22 Я написал Вот такие небольшие переменные

0:25 которые собственно цвета и хранят вообще

0:27 я практически всегда стараюсь

0:28 использовать цвета Когда вы ва что-то в

0:30 консоль чтобы мне было понятнее хороший

0:32 Это вывод плохой обращать на него

0:33 внимание или это просто какая-то

0:35 информация и Например если бы я это

0:37 делал на питоне Я бы использовал

0:38 библиотеку colorama Я думаю все о ней

0:40 знают Она позволяет и менять цвет фона и

0:42 менять цвет текста и такая прикольная

0:44 лёгкая в использовании так вот с помощью

0:46 колорама как оказалось было загружено

0:48 более 170.000 компьютеров различных

0:50 пользователей и в том числе

0:52 разработчиков и вот почему это произошло Как код попал в библиотеки (например Colorama) и распространился

0:54 Как ни странно это снова история про

0:56 Open Source невнимательных разработчиков

0:58 и абсолютное доверие comunity есть вот

1:01 эта вот библиотека colorama и она

1:03 распространяется через PP Это самый

1:06 популярный способ использования

1:08 сторонних библиотек каких-то и

1:09 управления зависимости так вот колорама

1:11 и все остальные библиотеки хост по

1:13 адресу Python hosted org Там они все

1:16 лежат И когда вы пишите например в

1:18 requirements какую-то библиотеку и Затем

1:20 вы её устанавливаете она именно оттуда и

1:21 скачивается и поменять адрес того Откуда

1:24 будет скачиваться библиотека Можно

1:26 например мы на проекте используем свой

1:27 собственный Nexus для того чтобы там

1:29 были только только библиотеки

1:30 проверенные и не могли мы скачивать

1:32 какие-то новые обновления самостоятельно

1:34 без предварительной проверки некто Пока

1:36 неизвестно кто зарегистрировал другой

1:38 адрес который звучит как PP hosted org

1:41 что не выглядит даже подозрительно для

1:43 других людей потому что PP – это

1:46 средство с для с помощью инструмент с

1:48 помощью которого управляют зависимостями

1:50 а PP Host звучит логично для места где

1:53 будут храниться библиотеки следующий шаг

1:55 который при этой атаке был сделан – это

1:56 распространение вредоносного кода и

1:59 самый простой способ это сделать – это

2:01 заразить какую-то популярную библиотеку

2:03 в данном случае колорама в неё внесли

2:06 вредоносный код положили её также на вот

2:09 этот вот поддельный новый хостинг и

2:12 оставалось только распространить эту

2:14 колорама вместо нормальной что они

2:15 делали Дальше они просто ходили по

2:17 многим популярным репозитория например

2:19 Python sdk которым многие-многие

2:21 пользуются и сообщество topg – это

2:24 сообщество в котором больше 170.000

2:26 пользователей так вот плохой код

2:28 заражённый или вот этот код который

2:30 будет вырывать данные он попал в это

2:32 сообщество он попал в Python sdk через

2:34 Pull request делался Pull request с

2:36 большим количеством изменённых файлов и

2:38 одним из изменённых файлов был также

2:40 файл с настройками PP репозитория где

2:44 для колора просто прописывал не Python

2:47 hosted org а PP hosted org То есть

2:50 каждый разработчик или пользователь

2:52 который устанавливал себе тот же Python

2:53 СДК устанавливал себе и вредоносный код

2:56 потому что СДК скачивает колора но не её

3:00 оригинального адреса А с поддельного А в

3:02 этой колора тот самый код который данные

3:04 воруют И Python sdk условно и всякие

3:06 другие библиотеки в том числе они

3:08 запускают этот вредоносный код и очень

3:11 трудно понять что идёт не так Даже если

3:13 ты видишь что что-то не так у тебя

3:15 какие-то странные запросы куда-то уходят

3:17 какие-то данные ворую то ты не можешь

3:19 понять почему и Откуда это происходит

3:22 ведь ты не запускал каких-то сторонних

3:24 программ не дел чего-то ещё ты просто

3:26 пишешь себе код на пайтоне и вроде бы

3:28 ничего плохого ти не должно в общем

3:30 очень-очень очень трудно найти такой

3:32 нестандартный подход после того как этот

3:34 вредоносный код запускается сам по себе

3:36 он абсолютно Безопасен потому что

3:38 встроенный в колорама код ничего не

3:40 делает но он скачивает другой код и

3:42 спускает его Через eval что позволяет

3:44 как бы выполнить вот эти нехорошие

3:46 действия и основными типами нехороших Что именно воровал этот код на компьютере разработчика

3:48 действий которые в данном случае мы

3:50 имеем – это воровство данных браузеров

3:53 какие там кульки ещё какие-то данные

3:55 Потому что если удастся в свой браузер

3:57 затем эти все данные спорова вставить то

3:59 ты будешь залогинен от имени другого

4:00 человека затем почему-то злоумышленникам

4:02 очень хотелось данные из Дискорда Они

4:04 искали популярные криптокошельки

4:06 отправляли себе информацию и файлы

4:08 конфигурации популярных криптокошельков

4:10 на компьютере пользователя если они там

4:11 установлены тем самым Они могли получить

4:14 доступ к криптовалютам также Ну я не

4:16 знаю откуда эти злоумышленники но мыслят

4:18 они как так попо советски я бы сказал

4:20 они также воровали данные телеграма

4:24 всякие переписки всё до чего могли

4:25 дотянуться опять-таки с попыткой с

4:28 надеждой в будущем исполь эти данные для

4:30 того чтобы залогиниться от имени другого

4:32 пользователя много-много стандартных

4:33 папок таких как файлы документы то есть

4:36 последние использованные файлы и так

4:38 далее Всё это тоже В архивах

4:39 отправлялось пользователям на сервера и

4:42 и данные Я не понимаю зачем

4:43 пользователям информация об Инстаграме

4:45 пользователям затем злоумышленникам

4:47 информации об Инстаграме но видимо они

4:49 тоже хотели логинится от других

4:50 пользователей и её тоже себе отправляли

4:52 известно что многими из этих данных

4:54 злоумышленники воспользовались Потому

4:56 что от имени этих пользователей они гили

4:59 или звёзды гитхабе заражённый

5:01 репозиторием опять-таки делали какие-то

5:03 пурекс в другие репозитории с пайном для

5:05 того чтобы колорама скачивалось вот

5:06 этого вот фейкового сервера зависимост и

5:09 много других активностей то есть да

5:11 данные были украдены и даже использованы

5:13 для плохих целей знаете как Забавно они

5:15 прятали вредоносный код в нормальном

5:16 коде они просто двигали его очень далеко

5:18 вправо в файле с кодом получается Если

5:21 ты внимание на горизонтальную прокрутку

5:23 не обратил А на Маке она например не

5:24 показывается то Е вредоносный код ты

5:26 тоже вряд ли найдёшь последний шаг

5:28 который делали злоумышленники с помощью

5:29 своего кода они в Windows добавляли

5:32 специальную команду в реестр для того

5:34 чтобы их код каждый раз запускался когда

5:36 система перезагружается соответственно

5:38 Каждый раз когда пользователь включает

5:40 свой компьютер тут же этот запускается

5:43 код и злоумышленники могут отслеживать

5:45 все действия пользователя и вырывать

5:47 данные Как вы видите в современном мире

5:49 разработки очень легко на самом деле

5:52 стать жертвой злоумышленников особенно

5:54 если ты работаешь с какой-то большой и

5:56 популярной Open Source библиотекой над

5:58 которой трудится огромная количество

6:00 людей пушат туда различные коммиты

6:02 вносят изменения проверяют пурекс а Вся

6:04 проблема в том что среди этого большого

6:06 количества людей могут быть люди

6:08 недобросовестные плохие Ну назовём их

6:10 жулики а ввиду того что комит пушатся

6:12 часто большие а людей которые готовы

6:15 тратить своё время на проверку этих

6:17 коммитов на самом деле не так и много то

6:19 в этих комита может быть Вот что-то

6:21 похожее на такое вот изменение адреса

6:23 для всего лишь одной библиотеки а сама

6:26 библиотека по новому адресу может

6:27 оказаться заражённой что ставит под

6:30 угрозу огромное количество пользователей Что делать программистам?

6:31 я могу здесь сказать банальные фразы

6:33 внимательно Работайте с пурекс смотрите

6:35 какие библиотеки вы используете

6:37 обновляйте До новых версий этих

6:38 библиотек не сразу Подождите какого-то

6:40 фидбека вдруг там что-то вот такое

6:41 найдётся как здесь Но всё равно я

6:44 прекрасно понимаю что скорее всего таких

6:46 ошибок в будущем нам не избежать Ну

6:47 потому что их очень легко сделать очень

6:49 трудно отследить и найти Используйте

6:53 чеке сорс кода которые позволит вам

6:56 отлавливать всякие спрятанные ключи или

6:58 вот такой вот вредоносный код и не

7:00 забывайте что разработка – это очень

7:02 ответственный процесс Нельзя просто

7:04 взять и накидать чего-то закинуть в

7:06 интернет и надеяться что всё будет

7:08 хорошо Это не Rocket Science к счастью

7:10 но всё равно надо быть очень

7:11 внимательным потому что вот такую ошибку

7:13 вот так вот скомпрометировать свой

7:15 компьютер или компьютер другого человека

7:17 очень-очень

7:22 легко

Поделиться: