LINUX.ORG.RU

Самопроизвольное изменение исполняемого файла

 ,


0

4

Здравствуйте.

На моем debian 11 происходит что-то странное: после нескольких месяцев благополучия начал падать chromium; то вкладки падают, то - сам упадет. Файрволл установлен (ufw); chkrootkit & rkhunter ничего не находят; файловая система исправна.

#debsums -s -c указывает на то, что изменен файл /usr/lib/chromium/chromium. Переустанавливаю chromium, debsums говорит, что теперь все нормально. Запускаю chromium - работает стабильно и шустро (насколько это в принципе возможно на старом железе). Хватает на несколько часов или до перезагрузки; затем, все - по новой.

Ставлю запрет на изменение файла # chmod a=rx /usr/lib/chromium/chromium - не спасает. Хотя, команда stat говорит, что ни у кого нет права на изменение файла.

Это взлом?



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

  1. Изменяются ли другие файлы?
  2. Дата изменения /usr/lib/chromium/chromium совпадает с тем, когда он был установлен?
  3. Если изменяются или возможно изменяются, а дата совпадает, но файл всё равно изменился, можно в первую очередь проверить HDD/SSD — может сыпется.

Это взлом?

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

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

Это взлом?

Не обязательно. Есть ещё вариант, что откисает диск. Как вариант, можно попробовать глянуть smart и/или проверить файловую систему на ошибки.

У меня было такое, что один блок на ссд откис и в результате побились некоторые файлы на нём.

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

Другие файлы не изменяются. Сразу после переустановки (или спустя пару часов) изменений в файле не наблюдается. Проверил диск из gnome-disk-utilities - все ОК! До кучи проверил с помощью Crystal Disk Info из Windows XP - состояние диска хорошее.

matushkin
() автор топика

какой у тебя тип файловой системы?
имхо, вместо chmod a=rx /usr/lib/chromium/chromium нужно использовать chattr +i /usr/lib/chromium/chromium (хотя намного лучше было бы узнать, кто портит сам файл)

d00fy ★★★
()
Последнее исправление: d00fy (всего исправлений: 1)
Ответ на: комментарий от matushkin

Хорошее — это какое? Конкретные цифры.

Ну и что с остальным? Дата изменения файла меняется?


Если дело не в диске, и соответственно, дата меняется, то можно попробовать узнать, кто когда именно открывает файл на запись, или ещё что-то с ним делает, воспользовавшись incrontab. Тупо логгировать всё, что с ним происходит.


Ну и стоит скопировать этот файл ещё куда-то (желательно на другой носитель), пока он целый, потом сравнить, что именно в нём изменилось, когда испортился.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от matushkin

Сразу после переустановки (или спустя пару часов) изменений в файле не наблюдается.

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

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

UPD: Перечитал стартовое сообщение темы:

Хватает на несколько часов или до перезагрузки; затем, все - по новой.

Сильно похоже что у Вас накопитель «капризничает»…

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 2)
Ответ на: комментарий от CrX

Пока, только это.

serfer@serfer:~$ sudo su [sudo] пароль для serfer: root@serfer:/home/serfer# debsums -s -c /usr/share/desktop-base/homeworld-theme/grub/grub_background.sh root@serfer:/home/serfer# cp /usr/lib/chromium/chromium /home/serfer/Рабочий\ стол/ root@serfer:/home/serfer# stat /usr/lib/chromium/chromium Файл: /usr/lib/chromium/chromium Размер: 217059512 Блоков: 423960 Блок В/В: 4096 обычный файл Устройство: 802h/2050d Инода: 1835021 Ссылки: 1 Доступ: (0555/-r-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Доступ: 2024-05-06 19:56:49.341276817 +0500 Модифицирован: 2024-01-17 01:35:05.000000000 +0500 Изменён: 2024-05-05 00:09:55.374954800 +0500 Создан: 2024-05-04 23:16:45.571011400 +0500

SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x000f 109 091 006 Pre-fail Always - 24860174

3 Spin_Up_Time 0x0003 098 097 000 Pre-fail Always - 0

4 Start_Stop_Count 0x0032 091 091 020 Old_age Always - 9338

5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0

7 Seek_Error_Rate 0x000f 089 060 030 Pre-fail Always - 844074419

9 Power_On_Hours 0x0032 071 071 000 Old_age Always - 25931

10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0

12 Power_Cycle_Count 0x0032 091 091 020 Old_age Always - 9361

187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0

189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0

190 Airflow_Temperature_Cel 0x0022 070 048 045 Old_age Always - 30 (Min/Max 27/32)

194 Temperature_Celsius 0x0022 030 052 000 Old_age Always - 30 (0 16 0 0 0)

195 Hardware_ECC_Recovered 0x001a 083 063 000 Old_age Always - 203713075

197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0

198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0

199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 5

200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0

202 Data_Address_Mark_Errs 0x0032 100 253 000 Old_age Always - 0

matushkin
() автор топика
Ответ на: комментарий от CrX

Исправлено:

serfer@serfer:~$ sudo su
[sudo] пароль для serfer:
root@serfer:/home/serfer# debsums -s -c
/usr/share/desktop-base/homeworld-theme/grub/grub_background.sh
root@serfer:/home/serfer# cp /usr/lib/chromium/chromium /home/serfer/Рабочий\ стол/
root@serfer:/home/serfer# stat /usr/lib/chromium/chromium
Файл: /usr/lib/chromium/chromium
Размер: 217059512 Блоков: 423960 Блок В/В: 4096 обычный файл
Устройство: 802h/2050d Инода: 1835021 Ссылки: 1
Доступ: (0555/-r-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Доступ: 2024-05-06 19:56:49.341276817 +0500
Модифицирован: 2024-01-17 01:35:05.000000000 +0500
Изменён: 2024-05-05 00:09:55.374954800 +0500
Создан: 2024-05-04 23:16:45.571011400 +0500

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 109 091 006 Pre-fail Always - 24860174
3 Spin_Up_Time 0x0003 098 097 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 091 091 020 Old_age Always - 9338
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 089 060 030 Pre-fail Always - 844074419
9 Power_On_Hours 0x0032 071 071 000 Old_age Always - 25931
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 091 091 020 Old_age Always - 9361
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 070 048 045 Old_age Always - 30 (Min/Max 27/32)
194 Temperature_Celsius 0x0022 030 052 000 Old_age Always - 30 (0 16 0 0 0)
195 Hardware_ECC_Recovered 0x001a 083 063 000 Old_age Always - 203713075
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 5
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 Data_Address_Mark_Errs 0x0032 100 253 000 Old_age Always - 0

Сделать спойлер не получается:

>>>  
<<<  
matushkin
() автор топика

Если исключить тупняк (типа браузер автоматически обновляется или какой-нибудь, прости господи, антивирус «удаляет вирус»), то очень похоже на взлом.

Я бы переустановил всю систему и очень аккуратно бы восстанавливал данные из бэкапа, считая, что он заражён.

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

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 4)
Ответ на: комментарий от matushkin

Проверил диск из gnome-disk-utilities - все ОК! До кучи проверил с помощью Crystal Disk Info из Windows XP - состояние диска хорошее.

Вы с винды пришли? Зачем вам тонна сторонних утилит если вся нужная инфа выдается через smartctl?

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

Raw_Read_Error_Rate 109 из 006
Seek_Error_Rate 089 из 030
Hardware_ECC_Recovered 083 из 000

Ну да, ну да, а так с диском всё в порядке, ага.

Как я и сказал, выкиньте эти ссаные гуёвые тулзы, они хню показывают.

PPP328 ★★★★★
()
Последнее исправление: PPP328 (всего исправлений: 1)
Ответ на: комментарий от vbr

Чтобы диск выдавал неверные данные - такого не бывает.

Прекрасно бывает, особенно когда диск говно или старый. Еще кайфово, когда пишешь файл, write выдает OK, читаешь, а там говно и хорошо если в dmesg это видно.

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

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

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

Прекрасно бывает, особенно когда диск говно или старый.

Не бывает. На современных дисках все данные хранятся в зашифрованном виде с информацией о восстановлении. Изменение битов это нормальная ситуация, а если битов слишком много изменилось, то блок уже не расшифруется.

Еще кайфово, когда пишешь файл, write выдает OK, читаешь, а там говно и хорошо если в dmesg это видно.

Потому, что write пишет в дисковый кеш. На диск пишет отдельный ядерный процесс. fsync в такой ситуации вернёт ошибку.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S

Хуже нету, когда то работает, то не работает. Последний раз перезагрузился - chromium не изменился. Интересно, если полностью удалить chromium, и потом установить заново, он установится на те же сектора? На то же место, с точки зрения железа?

matushkin
() автор топика
Ответ на: комментарий от i-rinat

А кстати у меня было полгода назад - один файл показывал признаки битости, после отправки куда-то в /proc/ то ли /sys/ команды сброса дисковых кеешй - починился.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от matushkin

Вместо гаданий всё-таки сравни побайтово битый файл с небитым, и проверь изменилось ли что-то в выводе stat про него (кроме строчки с временем последнего чтения) после того как он побился.

firkax ★★★★★
()
Ответ на: комментарий от CrX
root@serfer:/home/serfer# stat /usr/lib/chromium/chromium  
Файл: /usr/lib/chromium/chromium  
Размер: 217059512 Блоков: 423960 Блок В/В: 4096 обычный файл  
Устройство: 802h/2050d Инода: 1835021 Ссылки: 1  
Доступ: (0555/-r-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)  
Доступ: 2024-05-06 19:56:49.341276817 +0500  
Модифицирован: 2024-01-17 01:35:05.000000000 +0500  
Изменён: 2024-05-05 00:09:55.374954800 +0500  
Создан: 2024-05-04 23:16:45.571011400 +0500

Странно: даты создания и изменения не совпадают, но debsums говорит, что файл не изменен.

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

Это был тот memtest, который загружается вместо ОС? Если нет, то стоит протестировать им. И ещё имеет смысл поискать там среди тестов bitfade test и включить его, потому что по умолчанию он отключен. Bitfade может обнаружить ошибки, которые не видны при активном использовании памяти в основном наборе тестов.

i-rinat ★★★★★
()
Ответ на: комментарий от firkax

Несколько часов ставил опыты над системой. Команды и их выхлопы приводить не буду. Суть такова:
До и после изменения /usr/lib/chromium/chromium права доступа не меняются (0555).
Когда debsums говорил, что файл не изменен, я его скопировал на Рабочий стол. Какое-то время помучал chromium, пока он не стал падать. debsums сказал, что файл изменился. Я создал контрольные суммы обоих файлов (md5sum): /usr/lib/chromium/chromium и того, что скопировал на Рабочий стол - они совпали. Я переустановил chromium # apt reinstall chromium (время создания и изменения файла изменились на текущие), создал контрольную сумму. Все три контрольные суммы совпали.
Т.е. дело, скорее всего, не в винчестере. Может быть, система совсем убита?

matushkin
() автор топика
Ответ на: комментарий от vbr

Браузер установлен из репозитория - сам не обновляется, наверное. Антивирусного монитора тоже нету. Переустановить систему можно, но где гарантия, что ее не взломают в тот же день?

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

Если перезапустить комп ничего не переустанавливая - всё чинится?

debsums сравнивает контрольные суммы с /var/lib/dpkg/info/имя_пакета.md5sums - там сумма совпадает или отличается от этих? И проверь её после только что перезапущеного компа ещё раз когда сломается.

И ещё сделай diff бекапа с битым файлом - он тоже скажет что они одинаковые?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от CrX

Для начала надо убедиться, что ФС не задействует CoW когда товарищ копирует файл. Потому что так как фс считает, что файл не поменялся - то при активном CoW он будет снимать чексумму одного и того же блока.

Как вариант - скопировать файл до модификации куда-то на другой физический диск и то же самое сделать после «поломки»

PPP328 ★★★★★
()

удваиваю Dr64h

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

ну и в dmesg после падения посмотри - может там что-то интересное появляется (apparmor, например)

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

если хочешь попробовать убрать подозрения с винчестера/ssd переименуй каталог к примеру в «/usr/lib/chromium2/». И просто переустанови хромиум. Если это влияние битого сектора, то оно останется со старым катлогом(если на новый битый сектор не наткнется)

Atlant ★★★★★
()