Расшифровка видео
Вступление
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 легко