LINUX.ORG.RU

Нужно ли противодействовать зловредному ПО? Как вы это делаете?

 , , , ,


3

2

И снова здравствуйте, мои дорогие. Как вы боритесь с неблагонадёжным программным обеспечением? Вот, возьмём к примеру браузер. Браузер тащит подсистему печати и следовательно дырявый как ситечко ghostscript. Ни то ни другое мне не нужно (в браузере так точно).

Итак, я создаю заглушку, делаю следующее:

desktop ~ # cat cupsnop.c
void cupsGetOption(void){return;}
void cupsLastError(void){return;}
void cupsFreeDests(void){return;}
void cupsGetDests2(void){return;}
void cupsGetDests(void){return;}
void cupsGetDest(void){return;}
void cupsGetNamedDest(void){return;}
void cupsGetPPD2(void){return;}
void httpError(void){return;}
void cupsGetPPD(void){return;}
void httpConnectEncrypt(void){return;}
void httpClose(void){return;}
void httpBlocking(void){return;}
void ppdOpenFile(void){return;}
void ppdMarkDefaults(void){return;}
void ppdLastError(void){return;}
void ppdErrorString(void){return;}
void cupsParseOptions(void){return;}
void cupsMarkOptions(void){return;}
void cupsFreeOptions(void){return;}
void ppdFindMarkedChoice(void){return;}
void ppdFindOption(void){return;}
void ppdFindChoice(void){return;}
void ppdFindAttr(void){return;}
void ppdClose(void){return;}
desktop ~ # cat make.sh
#!/bin/sh

gcc -s -shared -fpic -march=native -O2 -pipe -fstack-clash-protection -fstack-protector-strong --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,relro -Wl,-z,now -Wl,--hash-style=gnu -Wl,--no-copy-dt-needed-entries -Wall -Wextra cupsnop.c -olibcups.so.2

mv -v libcups.so.2 /lib64/libcups.so.2
desktop ~ # ./make.sh
renamed 'libcups.so.2' -> '/lib64/libcups.so.2'

И всё хорошо, все довольны и счастливы. Но браузер также тащит кучу дряни вроде gtk, а та в свою очередь тащит atk, at-spi2-atk с at-spi2-core, причём, не найдя любую из зависимостей категорически отказывается собираться. Я считаю, это не дело, так не должно быть.

В браузерах есть огромная беда с файловыми диалогами на гтк – они неудобные, выглядят очень инородно, и сразу затирают иксовый буфер выделения среди прочего. Это ужасно. Как мне рассказывали старшие товарищи, в opensuse файловые диалоги как-то патчили, чтобы сделать те человеческими. Можно ли такое же сделать, например, с хромом?

И ещё, браузер запускается без ffmpeg (выдаёт libffmpeg.so => not found), при этом с видео даже проблем нет. Ну или они есть, это не важно (их нет). А вот с cups так не работает, приложение отказывается запускаться, если библиотека не найдена. Что это такое? Пробовал patchelf или что-то подобное для удаления зависимостей, так программа молча зависала при попытке её запустить.

Ответ на: комментарий от linuxnewb13

Это норм, только у меня бинарное проприетарное ПО.

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

Да и не хочу каждый день тратить 30 часов полной загрузки пк на компиляцию хромиума.

В этом предложении неправильно все ― хром собирается значительно быстрее, и обновляется не каждый день.

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

Deleted ()
Ответ на: комментарий от anonymous

Он слишком часто обновляется. «Стабильная» ветка обычно содержит неисправленные дыры и тоже каждую неделю обновляется. Обидно, что с жирнолиса меня согнали, тот 15 минут компилировался против часов хромума.

linuxnewb13 ()
Ответ на: комментарий от Deleted

У меня генту, если что. Ну вот зависимость софта от купс я починил. Первое, что пришло в голову. Как ни странно, это прекрасно работает. Теперь надо починить зависимость от гтк. На самом деле от libatspi, libatk-bridge и libatk, но неплохо бы выкинуть и кривые файловые диалоги заодно. Просто примем за данность, что исходников нет, можно поиграться только c LD_LIBRARY_PATH или подменить файлы.

хром собирается значительно быстрее, и обновляется не каждый день

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

linuxnewb13 ()
Ответ на: комментарий от anonymous

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

linuxnewb13 ()

Хочу установить xdg-desktop-portal-kde согласно заветам пользователей из интернета:

[ebuild   R    ] dev-libs/glib-2.60.6:2::gentoo  USE="dbus* mime xattr -debug (-fam) -gtk-doc (-selinux) -static-libs -systemtap -test -utils" ABI_X86="(64) -32 (-x32)" 4,482 KiB
[ebuild  N    #] dev-lang/vala-0.45.91:0.46::gentoo  USE="-test -valadoc" 3,280 KiB
[ebuild  N     ] gnome-base/dconf-0.30.1::gentoo  USE="-gtk-doc -test" 102 KiB
[ebuild  N     ] dev-libs/json-glib-1.4.4::gentoo  USE="-gtk-doc -introspection" ABI_X86="(64) -32 (-x32)" 162 KiB
[ebuild  N     ] sys-apps/xdg-desktop-portal-1.4.2::gentoo  USE="-doc -geolocation -screencast" 412 KiB
[ebuild   R    ] dev-qt/qtprintsupport-5.12.4:5/5.12::gentoo  USE="cups* -debug -gles2 -test" 47,296 KiB
[ebuild  N     ] kde-plasma/xdg-desktop-portal-kde-5.16.4:5::gentoo  USE="-debug -screencast -test" 61 KiB

Total: 7 packages (5 new, 2 reinstalls), Size of downloads: 55,794 KiB

The following mask changes are necessary to proceed:
 (see "package.unmask" in the portage(5) man page for more details)
# required by gnome-base/dconf-0.30.1::gentoo
# required by dev-libs/glib-2.60.6::gentoo[dbus]
# required by dev-libs/json-glib-1.4.4::gentoo
# required by sys-apps/xdg-desktop-portal-1.4.2::gentoo
# required by kde-plasma/xdg-desktop-portal-kde-5.16.4::gentoo[-screencast]
# required by kde-plasma/xdg-desktop-portal-kde (argument)
# /var/db/repos/gentoo/profiles/package.mask:
# Mart Raudsepp <leio@gentoo.org> (2019-07-28)
# GNOME 3.33 development release packages
=dev-lang/vala-0.45.91

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by kde-plasma/xdg-desktop-portal-kde-5.16.4::gentoo
# required by kde-plasma/xdg-desktop-portal-kde (argument)
>=dev-qt/qtprintsupport-5.12.4 cups
# required by sys-apps/xdg-desktop-portal-1.4.2::gentoo
# required by kde-plasma/xdg-desktop-portal-kde-5.16.4::gentoo[-screencast]
# required by kde-plasma/xdg-desktop-portal-kde (argument)
>=dev-libs/glib-2.60.6 dbus

воу воу палехчи.

Тут что-то ещё написано, но сайт лежит и я не могу посмотреть. Посмотрел в кэше, чего-то не работает у меня.

linuxnewb13 ()
Ответ на: комментарий от Iron_Bug

Да на что угодно. Иксы нормально в кутях с кде поддерживаются, в гноме видимо уже давно на иксы забили. Причём ладно бы там что-то важное было, так нет, там одни модальные окна для файловых диалогов скорее всего. Ну может ещё для печати что-то. Все браузеры давно на своих тулкитах, а гтк всё так и тянут в зависимостях.

linuxnewb13 ()
Ответ на: комментарий от Deleted

Ну субъективно CDE очень красивый был. Разве что CRT монитор нужен, чтобы оценить.

NOD32

Чёт это какая-то пассивная борьба, больше интересуют активные методы противодействия.

linuxnewb13 ()
Ответ на: комментарий от linuxnewb13

Ну субъективно CDE очень красивый был.

Мне кажется Windows 2000 была куда красивее. Но мне CDE тоже нравится, жаль неюзабельный, но вид интересный.

Чёт это какая-то пассивная борьба

Не особо понимаю что не нравица.

Deleted ()
Ответ на: комментарий от anonymous

Спасибо, я уже пользуюсь elinks. Меня более чем устроит curl -o, если подскажете что нужно переопределить у браузера, чтобы тот скачивал файлы при нажатии «сохранить как». Заодно пропадёт проблема с тем, что хромиум не хочет скачивать тарболы с 1 раза. И apk тоже.

linuxnewb13 ()
Ответ на: комментарий от amd_amd
[ebuild  N     ] acct-group/lp-0::gentoo  0 KiB
[ebuild  N     ] app-text/libpaper-1.1.24_p5::gentoo  ABI_X86="(64) -32 (-x32)" 48 KiB
[ebuild  N     ] app-text/qpdf-8.4.2:0/21::gentoo  USE="-doc -examples -perl -static-libs -test" 16,591 KiB
[ebuild  N    #] net-print/cups-2.3.0::gentoo  USE="X acl pam ssl threads -dbus -debug -kerberos -lprng-compat (-selinux) -static-libs -systemd -usb -xinetd -zeroconf" ABI_X86="(64) -32 (-x32)" 7,939 KiB
[ebuild  N     ] net-print/cups-filters-1.25.4::gentoo  USE="foomatic -dbus -ipp_autosetup -jpeg -ldap -pclm -pdf -perl -png -postscript -static-libs -test -tiff -zeroconf" 1,416 KiB
[ebuild  N     ] www-client/google-chrome-76.0.3809.132::gentoo  L10N="-am -ar -bg -bn -ca -cs -da -de -el -en-GB -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh-CN -zh-TW" 57,785 KiB

Total: 6 packages (6 new), Size of downloads: 83,777 KiB
linuxnewb13 ()
Ответ на: комментарий от amd_amd

Кстати вот голый хромиум

[ebuild  N     ] net-libs/http-parser-2.9.2:0/2.9.0::gentoo  USE="-static-libs" ABI_X86="(64) -32 (-x32)" 51 KiB
[ebuild  N     ] dev-libs/re2-0.2019.08.01:0/gentoo-2019-01-01::gentoo  USE="icu" ABI_X86="(64) -32 (-x32)" 382 KiB
[ebuild  N     ] media-libs/flac-1.3.3::gentoo  USE="cxx ogg (-altivec) -debug -static-libs" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse" 1,020 KiB
[ebuild  N     ] net-libs/nghttp2-1.39.2:0/1.14::gentoo  USE="cxx threads -debug -hpack-tools -jemalloc -libressl -static-libs -test -utils -xml" ABI_X86="(64) -32 (-x32)" 1,598 KiB
[ebuild  N     ] virtual/jpeg-compat-62:62::gentoo  ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild  N     ] dev-util/gn-0.1616::gentoo  USE="-vim-syntax" 645 KiB
[ebuild  N     ] media-libs/openh264-1.7.0-r1::gentoo  USE="plugin -utils" ABI_X86="(64) -32 (-x32)" 37,792 KiB
[ebuild  N     ] app-arch/snappy-1.1.7:0/1::gentoo  USE="(-static-libs) -test" ABI_X86="(64) -32 (-x32)" 1,065 KiB
[ebuild  N     ] net-dns/c-ares-1.15.0:0/2::gentoo  USE="-static-libs" ABI_X86="(64) -32 (-x32)" 1,317 KiB
[ebuild  N     ] net-libs/nodejs-12.9.1::gentoo  USE="icu inspector npm snapshot ssl -debug -doc -systemtap -test" CPU_FLAGS_X86="sse2" 22,183 KiB
[ebuild  N     ] gnome-base/gsettings-desktop-schemas-3.28.1::gentoo  USE="-introspection" 638 KiB
[ebuild  N     ] x11-themes/gnome-themes-standard-3.28::gentoo  2,885 KiB
[ebuild   R    ] media-libs/harfbuzz-2.6.1:0/0.9.18::gentoo  USE="cairo glib graphite icu* truetype -debug -introspection -static-libs -test" ABI_X86="(64) -32 (-x32)" 5,607 KiB
[ebuild  NS   #] x11-libs/gtk+-2.24.32-r1:2::gentoo [3.24.10:3::gentoo] USE="(-aqua) -cups -examples -introspection -test -vim-syntax -xinerama (-X%*) (-broadway%) (-cloudprint%) (-colord%) (-gtk-doc%) (-wayland%)" ABI_X86="(64) -32 (-x32)" 12,339 KiB
[ebuild  N    #] x11-themes/gtk-engines-adwaita-3.28::gentoo  ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild  N     ] dev-java/icedtea-bin-3.13.0:8::gentoo  USE="alsa gtk (-big-endian) -cups -doc -examples -headless-awt -multilib -nsplugin -pulseaudio (-selinux) -source -webstart" ABI_X86="(64) -32 (-x32)" 60,614 KiB
[ebuild  N     ] virtual/jdk-1.8.0-r4:1.8::gentoo  0 KiB
[ebuild  N     ] virtual/jre-1.8.0-r2:1.8::gentoo  0 KiB
[ebuild  N     ] www-client/chromium-77.0.3865.56::gentoo  USE="closure-compile custom-cflags hangouts (pic) proprietary-codecs suid system-ffmpeg system-icu tcmalloc -component-build -cups -gnome-keyring -jumbo-build -kerberos -pulseaudio (-selinux) (-system-libvpx) -widevine" L10N="-am -ar -bg -bn -ca -cs -da -de -el -en-GB -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh-CN -zh-TW" 716,072 KiB

Total: 19 packages (17 new, 1 in new slot, 1 reinstall), Size of downloads: 864,200 KiB

Что они там в него напихали? Весь жирнолис со всеми зависимостями меньше выходит.

linuxnewb13 ()
Ответ на: комментарий от Deleted

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

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

aeralahthu ()
Ответ на: комментарий от anonymous

Да у меня всё нормально, уже овер 4 года пользуюсь Оперой. Был ещё жирнолис и одно время пытался хромиум приводить в божеский вид — не зашло, надоело, что каждое обновление всё больше часов компиляции занимает. Я хочу чистые быстрые кеды без проблем гтк и у меня вполне всё получилось с полпинка. Кроме диалогов. Почему эти люди создают мне проблемы? Я их не трогал, зачем они ко мне в кеды лезут со своим гтк?

linuxnewb13 ()
Ответ на: комментарий от linuxnewb13

Ещё иногда притягивают полсотни пакетов перла ни с того ни с сего. Ну и зачем они все это делают? Им надоест через неделю, а дырявые зависимости так и будут десятилетиями висеть в проекте.

linuxnewb13 ()
Ответ на: комментарий от aeralahthu

Со вторым вариантом у меня проблемы возникли. Куча зависимостей и одно от другого жёстко зависит, у меня нет ни времени ни желание в них копаться. Третий может и грязно немного, зато замечательно решает все проблемы. И самый распространённый метод исправления софта испокон веков, я смотрю некоторые совсем зажрались уже, исходники им подавай.

linuxnewb13 ()
Ответ на: комментарий от anonymous

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

linuxnewb13 ()

Как вы боритесь с неблагонадёжным программным обеспечением?

с хромом?

Не устанавливаю. Ты бы ещё с виндой боролся.

браузер также тащит кучу дряни вроде gtk, а та в свою очередь тащит atk, at-spi2-atk с at-spi2-core, причём, не найдя любую из зависимостей категорически отказывается собираться.

Быть может это критическая зависимость без которой он не может нормально функционировать? (Твой Ко).
Как вылечить? Найди или создай браузер, который будет стабильно работать без того что тебе не нужно.

Promusik ★★★★★ ()
Ответ на: комментарий от linuxnewb13

яростно воюю с потенциально опасными программами

уже овер 4 года пользуюсь китайским браузером с закрытым кодом

Полку клоунов прибыло, что тут ещё скажешь.

Deleted ()
Ответ на: комментарий от linuxnewb13

На самом деле от libatspi, libatk-bridge

От этих двух зависит только третий гтк. Раньше эта зависимость у него настраивалась опцией компиляции, потом эту опцию убрали. Чтобы избавить его от этих зависимостей, несколько лет назад я сделал простенький патчик:

diff -u -Nrb configure.orig configure
--- configure.orig      Sun Aug 20 00:16:43 2017
+++ configure   Sun Aug 20 00:17:07 2017
@@ -26901,7 +26901,7 @@
 ########################################

 if test x$enable_x11_backend = xyes; then
-   ATK_PACKAGES="atk atk-bridge-2.0"
+   ATK_PACKAGES="atk"
 else
    ATK_PACKAGES="atk"
 fi
diff -u -Nrb gtk/a11y/gtkaccessibility.c.orig gtk/a11y/gtkaccessibility.c
--- gtk/a11y/gtkaccessibility.c.orig    Sun Aug 20 00:16:43 2017
+++ gtk/a11y/gtkaccessibility.c Sun Aug 20 00:17:16 2017
@@ -38,7 +38,6 @@
 #include <gtk/gtkaccessible.h>

 #ifdef GDK_WINDOWING_X11
-#include <atk-bridge.h>
 #endif

 static gboolean gail_focus_watcher      (GSignalInvocationHint *ihint,
@@ -989,7 +988,6 @@
   do_window_event_initialization ();

 #ifdef GDK_WINDOWING_X11
-  atk_bridge_adaptor_init (NULL, NULL);
 #endif

   atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
aeralahthu ()
Ответ на: комментарий от Deleted

Ой прекрати, это лучшая сборочка хромиума так-то. И уже запалили бы, будь дело не чисто. Как запалили предыдущий браузер владельца Оперы, лол. Дело не в опасности, а в том, что мне навязывают лишнюю дрянь, о которой я не просил.

linuxnewb13 ()
Ответ на: комментарий от linuxnewb13

Дак за гтк шляпа. А порядочную компанию шляпой не назовут, тем более красной. И да, у куте есть свой выход в веб, и движок, и им ОЧЕНЬ нужна помощь в этом направлении. Считаю, что ты сам не знаешь чего хочешь. Женись, тут где-то рядом какая-то Анастасия была. Если женат, то делай +1, ибо страдаешь ты ерундой, на мой взгляд. Можешь настрогать людей, организовать и написать свой браузер. От части это решит твои проблемы.

anonymous ()
Ответ на: комментарий от linuxnewb13

есть что-то лучшее ?

Прежде чем утверждать о гибкости попробуйте все-же порулить юз-флагами. Например отключите поддержку во всей системе cups или выборочно - после пересборки, система просто предложить удалить лишнее. Разве наличие отсутствия cups недостаточно?

Заглушками затыкать то-же есть возможность всякий раз автоматом в принципе.

Мне кажется use-flags работают для большинства usecase-ов

anonymous ()
Ответ на: комментарий от linuxnewb13

Они кстати собираются выкинуть jumbo-build — скоро компиляция больше суток придёт в дом к каждому. Ну, это непроверенная информация, конечно.

пруфы пожалуйста

на каком дистре компиляция ожидается больше суток?

anonymous ()
Ответ на: комментарий от aeralahthu

Варианта три: либо написание своего браузера с полным контролем

Даже так оно не работает. Мозги не калькулятор, ошибки допускают и как следствие уязвимости появляются.

peregrine ★★★★★ ()
Ответ на: комментарий от anonymous

И да, у куте есть свой выход в веб

там же хромиум внутри, не? старый, обкусанный, но хромиум.

и культя тоже собирается часов так десять.

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)