Технологический Болт Генона
В результате абсолютной и безоговорочной победы голландского правительства Алекс Перцев получил максимально возможный срок заключения, несмотря на его полную неспособность предотвратить незаконное использование Tornado Cash. Тем самым голландская судебная…
https://x.com/alex_pertsev/status/1887859848492007833
Хорошие новости про Алексея Перцева
Алексей Перцев сообщил, что его перевели под домашний арест
https://www.rbc.ru/crypto/news/67a5b27a9a79471a0d441359
Хорошие новости про Алексея Перцева
Разработчик криптомиксера Tornado Cash Алексей Перцев сообщил, что 7 февраля выйдет из тюрьмы под домашний арест. Решение об освобождении принял суд Нидерландов, приостановив предварительное заключение.
«Это не настоящая свобода, но лучше, чем тюрьма», — написал Перцев в X. Он добавил, что теперь сможет работать над апелляцией и продолжать борьбу за справедливость.
Алексей Перцев сообщил, что его перевели под домашний арест
https://www.rbc.ru/crypto/news/67a5b27a9a79471a0d441359
🔥29👍6🌚3❤1⚡1🤬1
Блог*
TL:DR: Тем временем в Linux один активный долбоёб мейнтейнер Christoph Hellwig активно мешает #Rust for Linux. DMA (Direct memory access) — технология, предоставляющая (относительно) прямой доступ к RAM для периферии. Это позволяет процессору управлять IO…
Краткий пересказ очередной драмы в Linux сообществе относительно Rust for Linux (R4L) на первом скрине.
Линус там ворвался в своём фирменном стиле
https://lore.kernel.org/rust-for-linux/CAHk-=wi=ZmP2=TmHsFSUGq8vUZAOWWSK1vrJarMaOhReDRQRYQ@mail.gmail.com/
Начало истории тут форвардил - https://xn--r1a.website/tech_b0lt_Genona/5001
Новость на OpenNet
Кризис в продвижении Rust в ядро из-за опасений усложнения сопровождения
https://www.opennet.ru/opennews/art.shtml?num=62685
Ссылка на твит
https://x.com/lauriewired/status/1888018833505665532
Линус там ворвался в своём фирменном стиле
On Thu, 6 Feb 2025 at 01:19, Hector Martin <marcan@marcan.st> wrote:
>
> If shaming on social media does not work, then tell me what does,
> because I'm out of ideas.
How about you accept the fact that maybe the problem is you.
You think you know better. But the current process works.
It has problems, but problems are a fact of life. There is no perfect.
However, I will say that the social media brigading just makes me not want to have anything at all to do with your approach.
Because if we have issues in the kernel development model, then social media sure as hell isn't the solution. The same way it sure as hell wasn't the solution to politics.
Technical patches and discussions matter. Social media brigading - no than\k you.
https://lore.kernel.org/rust-for-linux/CAHk-=wi=ZmP2=TmHsFSUGq8vUZAOWWSK1vrJarMaOhReDRQRYQ@mail.gmail.com/
Начало истории тут форвардил - https://xn--r1a.website/tech_b0lt_Genona/5001
Новость на OpenNet
Кризис в продвижении Rust в ядро из-за опасений усложнения сопровождения
https://www.opennet.ru/opennews/art.shtml?num=62685
Ссылка на твит
https://x.com/lauriewired/status/1888018833505665532
🤡17🫡14😁8👍3❤1🔥1
Forwarded from Мемный Болт Генона
Изначальная картинка взята из этой статьи
NowSecure Uncovers Multiple Security and Privacy Flaws in DeepSeek iOS Mobile App
https://www.nowsecure.com/blog/2025/02/06/nowsecure-uncovers-multiple-security-and-privacy-flaws-in-deepseek-ios-mobile-app/
NowSecure Uncovers Multiple Security and Privacy Flaws in DeepSeek iOS Mobile App
https://www.nowsecure.com/blog/2025/02/06/nowsecure-uncovers-multiple-security-and-privacy-flaws-in-deepseek-ios-mobile-app/
😁25🤣7🔥6👍4⚡2🤡1🌚1💊1
13 февраля выступаю на ТБ Форуме в треке "Подходы и инструменты управления процессом РБПО (Разработки Безопасного Программного Обеспечения)".
Буду вести мастер-класс, где покажу и расскажу, как можно проводить анализ СЗИ (средств защиты информации) в контейнерном исполнении с помощью Luntry
https://www.tbforum.ru/2025/program/rbpo-mk
Собственно, я там буду весь день, кто хочет пересечься пишите в комменты или в личку - @rusdacent
Буду вести мастер-класс, где покажу и расскажу, как можно проводить анализ СЗИ (средств защиты информации) в контейнерном исполнении с помощью Luntry
Пройдем путь от полного неведения о попавшем нам в руки для анализа СЗИ в контейнерном исполнении до полного понимания, что это за средство, как оно устроено и насколько все хорошо с безопасностью.
Узнаем, как быстро понять исследуемое приложение с точки зрения его компонентов и активности, на какие аспекты образов контейнеров стоит обращать внимание с точки зрения информационной безопасности. Углубимся в свойства безопасности на уровне контейнеров и YAML файлов, описывающих их в Kubernetes.
https://www.tbforum.ru/2025/program/rbpo-mk
Собственно, я там буду весь день, кто хочет пересечься пишите в комменты или в личку - @rusdacent
👍13✍11🤡4🥱2🥴2❤1
Технологический Болт Генона
Краткий пересказ очередной драмы в Linux сообществе относительно Rust for Linux (R4L) на первом скрине. Линус там ворвался в своём фирменном стиле On Thu, 6 Feb 2025 at 01:19, Hector Martin <marcan@marcan.st> wrote: > > If shaming on social media does not…
Miguel Ojeda (https://ojeda.dev/) принёс в рассылку
https://lore.kernel.org/rust-for-linux/CANiq72m-R0tOakf=j7BZ78jDHdy=9-fvZbAT8j91Je2Bxy0sFg@mail.gmail.com/
Rust kernel policy
https://rust-for-linux.com/rust-kernel-policy
Спасибо подписчику за наводку
Hi all,
Given the discussions in the last days, I decided to publish this page
with what our understanding is:
https://rust-for-linux.com/rust-kernel-policy
I hope it helps to clarify things. I intend to keep it updated as needed.
https://lore.kernel.org/rust-for-linux/CANiq72m-R0tOakf=j7BZ78jDHdy=9-fvZbAT8j91Je2Bxy0sFg@mail.gmail.com/
Who maintains Rust code in the kernel?
The usual kernel policy applies. That is, whoever is the listed maintainer.
The "RUST" subsystem maintains certain core facilities as well as some APIs that do not have other maintainers. However, it does not maintain all the Rust code in the kernel — it would not scale.
. . .
Who is responsible if a C change breaks a build with Rust enabled?
The usual kernel policy applies. So, by default, changes should not be introduced if they are known to break the build, including Rust.
However, exceptionally, for Rust, a subsystem may allow to temporarily break Rust code. The intention is to facilitate friendly adoption of Rust in a subsystem without introducing a burden to existing maintainers who may be working on urgent fixes for the C side. The breakage should nevertheless be fixed as soon as possible, ideally before the breakage reaches Linus.
. . .
Are duplicated C/Rust drivers allowed?
The usual kernel policy applies. So, by default, no.
Rust kernel policy
https://rust-for-linux.com/rust-kernel-policy
Спасибо подписчику за наводку
👍15👀4🤡3😁1
🤔16🤡7👍6👎4🔥4🙈1
.
Для systemd развивается возможность загрузки системных образов по HTTP
https://www.opennet.ru/opennews/art.shtml?num=62711
Оригинальный тред
https://mastodon.social/@pid_eins/113979730693247159
Леннарт Поттеринг (Lennart Poettering) предложил включить в системный менеджер systemd изменение, позволяющие загружать систему с использованием образа корневой ФС, получаемого c внешнего хоста по протоколу HTTP. Изменение сводится к расширению systemd возможностью не только скачивать дисковый образ по HTTP на начальной стадии загрузки, но и распаковывать загруженный образ, связывать с блочным устройством в loopback-режиме, монтировать блочное устройство как /sysroot и загружать с него систему.
. . .
Предполагается, что загрузка с образов, получаемых с внешнего хоста, упростит организацию тестирования современных неизменяемых ("immutable") операционных систем на реальном оборудовании. Разработчик может на своём компьютере сформировать образ с системным окружением утилитой mkosi и сделать его доступным через HTTP командой "mkosi -f serve". На компьютере, на котором требуется протестировать работу системы, достаточно включить в EFI загрузку по HTTP и добавить URL загружаемого образа командой:
kernel-bootcfg --add-uri=http://192.168.47.11:8081/image.efi --title=testloop --boot-order=0
После чего можно просто перезагрузить компьютер и он загрузит типовой образ ядра UKI, который затем загрузит подготовленный разработчиком дисковый образ с корневой ФС. До отключения в EFI загрузки по HTTP каждая последующая перезагрузка компьютера будет приводить к загрузке свежего системного образа. При подобном тестировании никак не затрагиваются локальные диски.
Для systemd развивается возможность загрузки системных образов по HTTP
https://www.opennet.ru/opennews/art.shtml?num=62711
Оригинальный тред
https://mastodon.social/@pid_eins/113979730693247159
Telegram
Мемный Болт Генона
👀13🤡9🔥5🫡5👍4👌2🗿1
Четверг, а значит время проектов от подписчиков! 🌝
Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://xn--r1a.website/tech_b0lt_Genona/4983
Слово автору @Ihippik
---
Есть совершенно простое решение для публикации изменений данных в ваших таблицах PostgreSQL в брокер сообщений. Change Data Capture (CDC).
Например удалили какую-то строку, изменили или быть может добавили - вы сразу же получаете сообщение об этом со всеми подробностями в ваш брокер сообщений.
Благодаря этому вы сможете строить сложные event-driven системы или просто как-то реагировать на изменения ваших данных.
Механизм построен на логической репликации и использовании WAL.
https://github.com/ihippik/wal-listener
---
Слово автору @Ihippik
---
Есть совершенно простое решение для публикации изменений данных в ваших таблицах PostgreSQL в брокер сообщений. Change Data Capture (CDC).
Например удалили какую-то строку, изменили или быть может добавили - вы сразу же получаете сообщение об этом со всеми подробностями в ваш брокер сообщений.
Благодаря этому вы сможете строить сложные event-driven системы или просто как-то реагировать на изменения ваших данных.
Механизм построен на логической репликации и использовании WAL.
https://github.com/ihippik/wal-listener
---
👍23👎1🤡1
Технологический Болт Генона
13 февраля выступаю на ТБ Форуме в треке "Подходы и инструменты управления процессом РБПО (Разработки Безопасного Программного Обеспечения)". Буду вести мастер-класс, где покажу и расскажу, как можно проводить анализ СЗИ (средств защиты информации) в контейнерном…
Если всё пойдëт хорошо, то будут тут в ~12-40 по МСК вещать про то как смотреть с пристрастием на СЗИ в контейнерном исполнении с помощью Luntry
https://groteck.mts-link.ru/j/91042977/525311227/stream-new/1854043222
https://groteck.mts-link.ru/j/91042977/525311227/stream-new/1854043222
🔥10🐳3👍1🤡1🍌1
Продолжаем четверг!
В Москве есть абсолютно замечательный музей криптографии
https://cryptography-museum.ru/
А ещё там проводится разговорный клуб "Секреты стаи слонов"(в который как-то раз даже чуть не попал, когда был проездом)
И оказывается одним из соорганизаторов оного является моя подписчица
Я её как-то цитировал про Docs-as-Code
https://xn--r1a.website/tech_b0lt_Genona/4718
Слово автору @freyapero
---
На базе Музея криптографии у нас действует бесплатный разговорный клуб в формате открытых подкастов.
https://cryptography-museum.ru/events/klub-sekrety-stai-slonov
Темы самые разные: в ноябре говорили о роботах, в декабре обсудили LLM и интерпретируемость моделей, в феврале затронули тему электронных подписей. Иногда подкасты посвящены софт-скиллам — так в январе обсуждали выгорание айтишников и искусство публичных выступлений на конференциях.
Мы хотим привлекать в проект новых интересных людей из IT и не только — как спикеров, так и слушателей. А ещё мы собираемся неформально для нетворкинга и совместных активностей: спорта, досуга и т.п.
Вот немного о нас:
Телеграм-канал с анонсами - @slonomoikaevent
Сайт - https://www.slonomoika.space
Будем ждать новых слонов ❤️
---
В Москве есть абсолютно замечательный музей криптографии
https://cryptography-museum.ru/
А ещё там проводится разговорный клуб "Секреты стаи слонов"
И оказывается одним из соорганизаторов оного является моя подписчица
Я её как-то цитировал про Docs-as-Code
https://xn--r1a.website/tech_b0lt_Genona/4718
Слово автору @freyapero
---
На базе Музея криптографии у нас действует бесплатный разговорный клуб в формате открытых подкастов.
https://cryptography-museum.ru/events/klub-sekrety-stai-slonov
Темы самые разные: в ноябре говорили о роботах, в декабре обсудили LLM и интерпретируемость моделей, в феврале затронули тему электронных подписей. Иногда подкасты посвящены софт-скиллам — так в январе обсуждали выгорание айтишников и искусство публичных выступлений на конференциях.
Мы хотим привлекать в проект новых интересных людей из IT и не только — как спикеров, так и слушателей. А ещё мы собираемся неформально для нетворкинга и совместных активностей: спорта, досуга и т.п.
Вот немного о нас:
Телеграм-канал с анонсами - @slonomoikaevent
Сайт - https://www.slonomoika.space
Будем ждать новых слонов ❤️
---
🔥17❤5👎5❤🔥4⚡2
Правительство РФ утвердило параметры эксперимента по внедрению системы добровольного подтверждения компетенций для разработчиков ПО. Это возможность для работодателей и образовательных учреждений точнее определять уровень ИТ-компетенций и подбирать подходящих сотрудников, а для специалистов — проверить свои знания и получить сертификат, подтверждающий их уровень. С 31 мая 2025 года любой желающий, независимо от уровня образования, сможет пройти тесты и выполнить практические задания. В этом году на платформе планируется разместить материалы по 21 направлению (Python, Java, Git и другие).
Примечательно, что Ассоциация предприятий компьютерных и информационных технологий (АПКИТ; входят VK, 1C, Softline) работает над другим способом подтверждения компетенций в IT — путем сертификации, по аналогии с вендорскими системами ушедших из РФ компаний. Председатель совета АПКИТ по развитию сертификации IT‑специалистов Наталья Починок сообщила СМИ, что ассоциация, помимо создания своей системы, участвует в разработке аналогичной сторонней системы на правах экспертов. В инициативе АПКИТ «заложена гармонизация требований к сертификатам участников, включая идентификацию по СНИЛС, что даст возможность в будущем интегрироваться с госсервисами».
В «Хабре» пояснили СМИ, что видят интерес аудитории сайта к оценке навыков на базе сайта: «Считаем, что на российском рынке должен быть набор разных возможностей оценки от разных игроков».
У каждой компании существуют собственные требования к квалификации специалистов, уточнила СМИ директор по персоналу Postgres Professional Ксения Замуховская. По её словам, «если у IT‑компаний будут запрашивать такие данные, то маловероятно, что найдутся желающие их распространять — есть риск раскрытия чувствительной информации».
Основатель IT‑компании Tiqum Юрий Гизатуллин считает, что систему подтверждения навыков нужно строить не на базе текущего решения одной компании, а в формате отдельной платформы.
Утверждены параметры эксперимента по внедрению системы добровольного подтверждения компетенций для разработчиков ПО в РФ
https://habr.com/en/news/882096/
Оригинал
http://government.ru/news/54223/
🤡61👍7😁5👎3❤1✍1🥰1🤬1💊1
В экосистеме языка программирования Go обнаружен вредоносный пакет, остававшийся незамеченным три года...злоумышленники подменили популярный пакет базы данных BoltDB, используемый тысячами организаций, включая Shopify и Heroku
. . .
BoltDB, расположенный на GitHub по адресу github.com/boltdb/bolt , был создан девять лет назад и перестал обновляться спустя год после релиза. Атакующие использовали технику тайпосквоттинга, создав поддельный пакет github.com/boltdb-go/bolt. Разница в названии минимальна, но при установке подделки в проекте появляется бэкдор, позволяющий выполнять удалённый код.
. . .
Несмотря на то, что вредоносная версия оставалась доступной на Go Module Proxy в течение трёх лет, следов её массового использования не найдено. По данным Бойченко, поддельный пакет импортировался лишь дважды, причём оба раза — одним криптовалютным проектом, у которого всего семь подписчиков. Статистика скачиваний в Go не ведётся, но отсутствие звёзд и форков на GitHub за три года говорит о том, что модуль не получил широкого распространения.
Тем не менее, инцидент выявил уязвимость в системе управления пакетами Go. При первой загрузке новый пакет кешируется сервисом Go Module Mirror и остаётся доступным бессрочно. Злоумышленники воспользовались этим, сначала разместив безобидную версию, а затем изменив Git-теги, чтобы при проверке пакет выглядел легитимным. В то же время в кеше продолжала распространяться вредоносная версия.
. . .
неизменяемость модулей одновременно улучшает безопасность экосистемы и создаёт возможности для атак. Он призвал разработчиков тщательно проверять целостность пакетов перед установкой, анализировать зависимости и использовать инструменты для глубокого аудита кода.
Три года в тени: тайпсквоттинг стал угрозой для всей экосистемы Go
https://www.securitylab.ru/news/556167.php
Оригинал
Go Supply Chain Attack: Malicious Package Exploits Go Module Proxy Caching for Persistence
https://socket.dev/blog/malicious-package-exploits-go-module-proxy-caching-for-persistence
😁20👀10👍4🤯2👎1🤩1
Хороший пост от Cloudflare в котором показаны примеры различных ситуаций при, по сути, одинаковом уведомлении ядра Linux о зависшей задаче.
Searching for the cause of hung tasks in the Linux kernel
https://blog.cloudflare.com/searching-for-the-cause-of-hung-tasks-in-the-linux-kernel/
INFO: task XXX:1495882 blocked for more than YYY seconds.
Tainted: G O 6.6.39-cloudflare-2024.7.3 #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:XXX state:D stack:0 pid:1495882 ppid:1 flags:0x00004002
. . .
Example #1 or XFS
. . .
Summary: In this case, nothing critical happened to the system, but the hung tasks warnings gave us an alert that our file system had slowed down.
Example #2 or Coredump
. . .
Summary: This example showed that even if everything suggests that the application is the problem, the real root cause can be something else — in this case, coredump.
Example #3 or rtnl_mutex
. . .
Summary: The hung task messages were the only ones which we had in the kernel log. Each stack trace of these messages was unique, but by carefully analyzing them, we could spot similarities and continue debugging with other instruments.
Epilogue
Your system might have different hung task warnings, and we have many others not mentioned here. Each case is unique, and there is no standard approach to debug them. But hopefully this blog post helps you better understand why it’s good to have these warnings enabled, how they work, and what the meaning is behind them. We tried to provide some navigation guidance for the debugging process as well:
- analyzing the stack trace might be a good starting point for debugging it, even if all the messages look unrelated, like we saw in example #3
- keep in mind that the alert might be misleading, pointing to the victim and not the offender, as we saw in example #2 and example #3
- if the kernel doesn’t schedule your application on the CPU, puts it in the D state, and emits the warning – the real problem might exist in the application code
Searching for the cause of hung tasks in the Linux kernel
https://blog.cloudflare.com/searching-for-the-cause-of-hung-tasks-in-the-linux-kernel/
👍14☃1
🫡
Скончался болгарский художник и арт-директор видеоигр Виктор Антонов.
https://halflife.fandom.com/ru/wiki/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%BE%D0%B2
Скончался болгарский художник и арт-директор видеоигр Виктор Антонов.
Виктор Антонов — художник, дизайнер, режиссёр, писатель и сценарист, известный прежде всего как художественный директор и главный дизайнер игры Half-Life 2.
https://halflife.fandom.com/ru/wiki/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%BE%D0%B2
🫡87😢6🎉1🤩1🍾1
В результате атаки злоумышленникам удалось получить ключ для доступа к API, применяемому для удалённого оказания услуг технической поддержки клиентам SaaS-сервисов BeyondTrust. Данный API был использован для сброса пароля и компрометации инфраструктуры Министерства финансов США, пользующегося продуктами BeyondTrust. В ходе атаки злоумышленники смогли загрузить конфиденциальные документы и получили доступ к рабочим станциям сотрудников министерства.
Уязвимость проявляется в библиотеке libpq, предоставляющей API для взаимодействия с СУБД из программ на языке Си (поверх библиотеки также реализованы библиотеки-обвязки для C++, Perl, PHP и Python). Проблема затрагивает приложения, использующие для экранирования спецсимволов и нейтрализации кавычек функции PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() или PQescapeStringConn().
Атакующий может добиться подстановки своего SQL-кода, если получаемый извне текст перед использованием внутри SQL-запроса экранируется при помощи вышеотмеченных функций libpq. В приложениях BeyondTrust экранированные подобным образом запросы передавались через утилиту командной строки psql. Уязвимость вызвана отсутствием в функциях экранирования проверки корректности используемых в тексте Unicode-символов, что позволяет обойти нормализацию кавычек через указание некорректных многобайтовых последовательностей UTF-8.
Для эксплуатации уязвимость можно использовать некорректный UTF-8 символ, состоящий из байт 0xC0 и 0x27 ("└'"). Байт 0x27 в ASCII-кодировке соответствует одинарной кавычке ("'"), подлежащей экранированию. В коде экранирования сочетание байтов 0xC0 и 0x27 обрабатывается как один Unicode-символ. Соответственно, байт 0x27 в такой последовательности остаётся не экранирован, при том, что при обработке SQL-запроса в утилите psql он обрабатывается как кавычка.
При запуске SQL-запросов при помощи утилиты psql для организации выполнения произвольного кода можно использовать подстановку в строку команды "\!", предназначенной в psql для запуска произвольных программ. Например, для запуска на сервере утилиты "id" можно передать значение "hax\xC0'; \! id #". В примере ниже для экранирования вызывается PHP-скрипт dbquote, использующий PHP-функцию pg_escape_string, работающую поверх функции PQescapeString из libpq:
$ echo -e "hello \xC0'world'" | ./dbquote
'hello └'world'''
$ quoted=$(echo -e "hax\xC0'; \! id # " | ./dbquote)
$ echo "SELECT COUNT(1) FROM gw_sessions WHERE session_key = $quoted AND session_type = 'sdcust' AND (expiration IS NULL OR expiration>NOW())" | psql -e
SELECT COUNT(1) FROM gw_sessions WHERE session_key = 'hax└';
ERROR: invalid byte sequence for encoding "UTF8": 0xc0 0x27
uid=1000(myexamplecompany) gid=1000(myexamplecompany)
В PostgreSQL устранена уязвимость, использованная при атаке на BeyondTrust
https://www.opennet.ru/opennews/art.shtml?num=62722
Ссылка на подробный разбор баги
CVE-2024-12356
https://attackerkb.com/topics/G5s8ZWAbYH/cve-2024-12356/rapid7-analysis
🔥21🎉3🤩3😐2👍1🍾1
Forwarded from useful security dump
Вышла моя долгожданная статья по мотивам одного прошлогоднего пентеста. её я без при увеличения писал месяц, это был(о) тяжело
внутри вас ждет:
- небольшое погружение для того чтобы понять как видеокарты могут работать с контейнерами
- раскур патча и сорцов на C
- написание боевого сплойта
https://luntry.ru/lomaem-vashi-videokarty-raspakovka-eksplojta-dlya-cve-2024-0132-pod-nvidia-container-toolkit
внутри вас ждет:
- небольшое погружение для того чтобы понять как видеокарты могут работать с контейнерами
- раскур патча и сорцов на C
- написание боевого сплойта
https://luntry.ru/lomaem-vashi-videokarty-raspakovka-eksplojta-dlya-cve-2024-0132-pod-nvidia-container-toolkit
luntry.ru
Ломаем ваши видеокарты: распаковка эксплойта для CVE-2024-0132 под NVIDIA Container Toolkit
В сентябре 2024 года компания WIZ обнаружила критическую уязвимость в системе безопасности, обозначенную как CVE-2024-0132, которая затрагивала все версии NVIDIA Container Toolkit.
❤12🥴3☃2👍1