Каково обходное решение «ptrace_scope» для программ Wine и есть ли какие-либо риски?

Чтобы запустить определенные программы Windows в WINE, вам необходимо обходное решение:

echo 0|sudo tee /proc/sys/kernel/yama/ptrace_scope

. Согласно сайтам поддержки, это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное использование команд ptrace и WINE .

Используя приведенную выше команду, вы устанавливаете ptrace равным 0, который согласно проведенному мной исследованию (не спрашивайте меня, какие веб-сайты, как мне кажется, их много), ptrace имеет отношение к взаимодействия между программами. Установка 0 более разрешительна, чем 1.

Я должен предположить, что была хорошая причина, по которой Ubuntu хотел ptrace = 1, поэтому это возвращает меня к короткой форме вопроса.

Существуют ли какие-либо риски при установке ptrace = 0. Более низкая безопасность? проблемы отладки? любые другие, о которых я не думал ???

P.S. для любого, кто читает это, что задается вопросом о том, что вызывает ошибка, программы Windows вообще не открывается, в системном мониторе вы увидите много экземпляров программы, пытающихся открыть, а затем они в конечном итоге все выйдут, и если вы запустите прогаму для на терминале вы получите сообщение об ошибке, указывающее, что максимальное количество экземпляров программы достигнуто.

34
задан 22 June 2012 в 05:08

18 ответов

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 25 July 2018 в 18:39

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 31 July 2018 в 11:33

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 2 August 2018 в 00:48

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 4 August 2018 в 16:19

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 6 August 2018 в 00:57

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 7 August 2018 в 18:23

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 10 August 2018 в 07:07

Короткий ответ: никакой практической опасности пока нет, но читайте дальше для лучшего способа ...


Что это за ptrace в любом случае?

это связано с ошибкой в ​​ядре Ubuntu, которая предотвращает совместное выполнение команд ptrace и WINE.

  • Нет, защита ptrace - это преднамеренная мера безопасности ядра , впервые представленная в Ubuntu 10.10.
  • Проще говоря, значение ptrace_scope по умолчанию 1 блокирует один процесс от изучения и изменения другого процесса если второй процесс (дочерний) был запущен первым процессом (родителем).
  • Это может вызвать проблемы с некоторыми программами под Wine из-за того, что wineserver предоставляет «Службы Windows» для эти программы.

Каковы риски при настройке ptrace_scope на 0?

  • Это восстанавливает прежнее поведение, когда один процесс может «отслеживать», другой процесс, даже если между родительско-детскими отношениями нет.
  • Теоретически, вредоносное ПО может использовать это, чтобы навредить вам / вашему компьютеру; например он может подключаться к Firefox и записывать все ваши URL-адреса / пароли и т. д. На практике это крайне маловероятно, если вы не слепо установите двоичные debs из случайных сайтов и т. д.
  • Что касается отладки, то 0 на самом деле необходимы для gdb, strace и т. д. для прикрепления к не-детям, если вы не запускаете их с повышенными привилегиями (sudo).

В чем проблемы с обходной путь?

  • Обходной путь является несколько проблематичным, потому что ptrace_scope является глобальным значением, и пока он установлен в 0, все процессы в вашей системе освобождаются от ограничений, отличных от детей.
  • Если вы используете обходной путь, поместите его в простой скрипт bash, который его включает, запускает вашу программу Windows и затем отключает (устанавливает 1) при выходе. НЕ делайте ptrace_scope доступным для всего мира (666), как рекомендует пост форума - это огромный риск для безопасности, потому что теперь любой процесс может изменить его по своему желанию!

Есть ли лучшее решение?

  • Лучшее решение, которое более безопасно и не требует повторной модификации ptrace_scope, - это предоставить возможности Pines для Wineserver . В терминале:
    sudo apt-get install libcap2-bin 
    sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
    sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
    
    Это освобождает двоичные файлы wineserver и win-preloader от ограничения, отличного от дочернего ptrace, и позволяет им выполнять любой процесс. Это нужно сделать только один раз и безопаснее, потому что эти двоичные файлы обычно находятся в надежном источнике - официальных репозиториях или официальном Wine PPA, поэтому они не будут вредоносными.

Если вы используете Crossover

Установите libcap2:

sudo apt-get install libcap2-bin;

Затем добавьте исключение для кроссовера:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

Наконец, добавьте его библиотеки в ld.so.conf (или вы получите «ошибку при загрузке разделяемых библиотек: libwine.so.1: невозможно открыть файл общих объектов: нет такого файла или каталога»):

echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf
sudo /sbin/ldconfig
36
ответ дан 15 August 2018 в 19:05
  • 1
    Я думаю, что это называется ошибкой, потому что ptrace отлично работает в 10.10 после того, как Wine был исправлен, чтобы поддержать его. Он работает с 10.10-11.10, но регрессировал в 12.04. – TrailRider 23 June 2012 в 20:32
  • 2
    Спасибо за принятие @TrailRider; Я имел в виду ваше утверждение, что «это ошибка в ядре & quot; (что это не так); это, безусловно, ошибка в вине, и ее следует обманывать :) Вещи, конечно, меняются в ядре иногда, как правило, к лучшему, и это остается на пути к программному обеспечению, которое влияет на само исправление, а не на слова Linus & quot; yo man , вернитесь к себе " :П – ish 28 June 2012 в 10:11
  • 3
    Я понимаю, что вы здесь говорите и согласитесь, я только сказал, что это ошибка в ядре, поскольку несколько веб-сайтов поддержки, а также кодеки назвали это ошибкой ядра. Здесь находится страница кодовых страниц. codeweavers.com/support/wiki/linux/faq/ubuntu1204 – TrailRider 29 June 2012 в 01:41
  • 4
    Я установил глобальную ptrace равным 0 и вернусь к 1 через несколько секунд, когда приложение запустится; setcap намного безопаснее и не раздражает, так как ему все время нужно sudo .. thx vm! – Aquarius Power 1 July 2013 в 07:24
  • 5

В ubuntuforums.org я получил ответ со следующей ссылкой

ubuntuforums.org

вот паста из ссылки (с моей подчеркнуто добавлено)

По мере роста популярности Linux он станет все более популярной целью для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, злоумышленник мог бы подключиться к другим запущенным процессам (например, gpg-agent), чтобы извлечь дополнительные учетные данные и продолжить расширять сферу своей атаки. Это не теоретическая проблема. Захват сеанса SSH и даже произвольная инъекция кода вполне возможны, если ptrace разрешен в обычном режиме. Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение заключается в том, чтобы разрешить ptrace непосредственно от родителя к дочернему процессу (т. Е. Прятать gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root). Такое поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 25 May 2018 в 10:38

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 25 July 2018 в 18:39

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 31 July 2018 в 11:33

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 2 August 2018 в 00:48

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 4 August 2018 в 16:19

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 6 August 2018 в 00:57

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 7 August 2018 в 18:23

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 10 August 2018 в 07:07

В ubuntuforums.org я получил ответ со следующей ссылкой

https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace_Protection

вот паста из ссылки (с моим добавлением)

По мере роста популярности Linux она станет все более популярной угрозой для вредоносного ПО. Одной из особенно тревожных слабостей интерфейсов процесса Linux является то, что один пользователь может исследовать память и состояние работы любого из своих процессов. Например, если какое-либо приложение (например, firefox) было скомпрометировано, для злоумышленника можно было бы подключиться к другим запущенным процессам (например, gpg-agent) для извлечения дополнительных учетных данных и продолжения расширения сферы их атаки.

Это не теоретическая проблема. [3]

Для решения некоторые приложения используют prctl (), чтобы специально запретить такое приложение ptrace (например, ssh-agent). Более общее решение состоит в том, чтобы разрешить ptrace напрямую от родителя к дочернему процессу (т. Е. Прямой gdb и strace все еще работать) или как пользователь root (то есть gdb BIN PID и strace -p PID по-прежнему работают как root).

Это поведение контролируется с помощью значения sysctl / proc / sys / kernel / yama / ptrace_scope. По умолчанию используется значение «1», чтобы блокировать не-дочерние ptrace. Значение «0» восстанавливает прежнее более разрешительное поведение, которое может быть более подходящим для некоторых систем разработки и серверов с только учетными записями администратора. Использование «sudo» также может предоставлять временные разрешения ptrace с помощью возможности CAP_SYS_PTRACE, хотя этот метод позволяет использовать любой процесс.

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

4
ответ дан 15 August 2018 в 19:05

UPDATE Вышеуказанные инструкции:

sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver;
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;

не работает с 15/15/2018 по Ubuntu 18.04.1 и PlayOnLinux v.4.2.12 с использованием последних стабильная версия Wine, которая является v.3.0.1 libcap2, уже установлена.

Сообщение об ошибке в терминале Gnome выглядит следующим образом:

Failed to set capabilities on file `/usr/bin/wineserver' (Invalid argument)
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file

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

Спасибо.

0
ответ дан 9 October 2018 в 08:13

Другие вопросы по тегам:

Похожие вопросы: