LINUX.ORG.RU

PostgreSQL процесс OKA

 ,


1

3

Периодически (закономерность не смог установить) PostgreSQL 12 запускает некий процесс с названием OKA. Все бы ничего, но он сжирает почти всю память. Нашел в папке PostgreSQL файлы oka и oka.pid, судя по всему, отвечающие за этот процесс.

Что это за процесс и почему он отъедает столько памяти?

★★

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

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

Ну на проде это сделать не особо просто. Да и вирусу там не откуда взяться, т.к. все ставится из официальных репозиториев, а весь код туда затекает через git из моего репозитория.

Мне так кажется, что это какой-то внутренний процесс PostgreSQL, который в моем случае почему-то зависает.

dimuska139 ★★
() автор топика
Ответ на: комментарий от anonymous
ls /var/lib/postgresql/12/main

12.txt	 a     g       oka	pg_commit_ts  pg_logical    pg_notify	 pg_serial     pg_stat	    pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.pid  uli
12.txt?  base  global  oka.pid	pg_dynshmem   pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc	 PG_VERSION   pg_xact  postmaster.opts	     s		     w
dimuska139 ★★
() автор топика
Ответ на: комментарий от dimuska139

Вряд ли это процесс postgres'а. Так у тебя же pid есть, кто его владелец? Что происходит, если прибить?

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

Нет, это точно процесс postgres. Потому что htop показывает, что его юзер postgres запускает. Если прибить, что я каждый раз и делаю, ничего подозрительного не происходит. Просто освобождается куча занятой памяти и нагрузка на проц снижается ощутимо. Но мне вообще кажется, что так прибивать внутренний процесс СУБД не безопасно. Странно вообще, что про этот процесс ничего вообще не гуглится. Как это дело диагностировать - хз…

-rwxrwxrwx 1 postgres postgres     77 дек  1 14:31 12.txt
-rw------- 1 postgres postgres     77 дек  8 15:58 12.txt?
-rwxrwxrwx 1 postgres postgres    535 дек  8 15:58 a
drwxrwxrwx 8 postgres postgres   4096 дек  7 21:15 base
-rwxrwxrwx 1 postgres postgres  19522 дек  8 15:58 g
drwxrwxrwx 2 postgres postgres   4096 дек  7 21:19 global
-rwxrwxrwx 1 postgres postgres 829440 дек  8 15:58 oka
-rwxrwxrwx 1 postgres postgres      5 дек  8 15:58 oka.pid
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_commit_ts
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_dynshmem
drwxrwxrwx 4 postgres postgres   4096 дек  8 19:25 pg_logical
drwxrwxrwx 4 postgres postgres   4096 ноя 22 16:40 pg_multixact
drwxrwxrwx 2 postgres postgres   4096 дек  3 15:51 pg_notify
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_replslot
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_serial
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_snapshots
drwxrwxrwx 2 postgres postgres   4096 дек  3 15:51 pg_stat
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_stat_tmp
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_subtrans
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_tblspc
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_twophase
-rwxrwxrwx 1 postgres postgres      3 ноя 22 16:40 PG_VERSION
drwxrwxrwx 3 postgres postgres   4096 дек  7 21:22 pg_wal
drwxrwxrwx 2 postgres postgres   4096 ноя 22 16:40 pg_xact
-rwxrwxrwx 1 postgres postgres     88 ноя 22 16:40 postgresql.auto.conf
-rwxrwxrwx 1 postgres postgres    130 дек  3 15:51 postmaster.opts
-rwxrwxrwx 1 postgres postgres    100 дек  3 15:51 postmaster.pid
-rwxrwxrwx 1 postgres postgres   1180 дек  8 15:58 s
-rwxrwxrwx 1 postgres postgres      0 дек  8 15:58 uli
-rwxrwxrwx 1 postgres postgres      5 дек  8 15:58 w
dimuska139 ★★
() автор топика
Ответ на: комментарий от dimuska139

У меня этого нет, и я не встречал упоминаний про oka. Вот содержимое этой папки

base	      pg_multixact  pg_stat	 PG_VERSION	       postmaster.pid
global	      pg_notify     pg_stat_tmp  pg_wal
pg_commit_ts  pg_replslot   pg_subtrans  pg_xact
pg_dynshmem   pg_serial     pg_tblspc	 postgresql.auto.conf
pg_logical    pg_snapshots  pg_twophase  postmaster.opts

Поиском в google по oka нашёл Oracle Knowledge Advanced. Не пользовался им, поэтому не знаю, создаёт ли оно процесс.

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

Т.е. какие-то странные a, g, uli и т.д. тебя не смущают? Это явно какая-то левая приблуда, просто положили в каталог постгреса.

no-such-file ★★★★★
()
Ответ на: комментарий от dimuska139

Потому что htop показывает, что его юзер postgres запускает

Это ни о чём не говорит.

no-such-file ★★★★★
()
Ответ на: комментарий от dimuska139

Да и вирусу там не откуда взяться, т.к. все ставится из официальных репозиториев, а весь код туда затекает через git из моего репозитория.

А вариант того, что вас поломали, тебе в голову не приходил?

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

А если это вирусня, как ее правильно выпилить?) Сменить пароли, забэкапить базу, выпилить весь PostgreSQL, установить заново, и развернуть дамп базы?

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

как ее правильно выпилить

Да кто ж тебе скажет не зная как у тебя там всё устроено? По-хорошему у тебя должен быть готовый снапшот системы со всеми настройками (с установленным постгресом и т.д.) который нужно просто накатить на другой узел; и потом на него накатить бэкапы. А этот оставить для анализа, что и как поломали.

no-such-file ★★★★★
()
Ответ на: комментарий от dimuska139
XMRig 5.0.2-dev
 built on Nov 29 2019 with GCC

Это майнер.

Может в этом бинарнике ещё какие-то функции есть (удалённый шелл, например).

im-0
()
Ответ на: комментарий от im-0
    "pools": [
        {
            "algo": null,
            "coin": "monero",
            "url": "172.83.155.151:80",
            "user": "linux",
            "pass": "x",
            "rig-id": null,
            "nicehash": true,
            "keepalive": false,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
            "algo": null,
            "coin": "monero",
            "url": "linux443.xmrpool.ru:443",
            "user": "abcd1443",
            "pass": "x",
            "rig-id": null,
            "nicehash": true,
            "keepalive": false,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        }
    ],

Оба адреса на каких-то штатовских хостингах.

im-0
()
Ответ на: комментарий от dimuska139

т.к. все ставится из официальных репозиториев

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

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Была недавно новость что в пг умудрялись майнера подкидывать кстати.

Больше года назад, я кинул ссылки выше. Судя по тому, что майнер работает от имени постгреса, через это и заовнили. Скорее всего у автора темы в постгрес вообще весь интернет может ходить 8).

im-0
()
Ответ на: комментарий от im-0

Ага, я лох) Думаю теперь, как это дело выпилить по-нормальному

dimuska139 ★★
() автор топика

Всем спасибо, ребята! Очень выручили) Я напрочь забыл, что у меня в pg_hba.conf trust стоял, за что и поплатился.

dimuska139 ★★
() автор топика
Ответ на: комментарий от no-such-file

Но ведь, по идее, можно задампить базу, выпилить PostgreSQL и все файлы, принадлежащие юзеру postgres (find / -user postgres), после чего установить PostgreSQL заново и накатить дамп. Все файлы этого трояна, по идее, принадлежат юзеру postgres, как я понимаю.

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

Я напрочь забыл, что у меня в pg_hba.conf trust стоял

Все файлы этого трояна, по идее, принадлежат юзеру postgres, как я понимаю

Ну если всё случилось от этого, то видимо да.

задампить базу

А ты, кстати, уверен что тебе в базу не сделали триггер, или cron, который будет этот файлик восстанавливать?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

А ты, кстати, уверен что тебе в базу не сделали триггер, или cron, который будет этот файлик восстанавливать?

Ну дамп можно вообще грепнуть, он достаточно маленький - 200 Мб всего лишь. По идее, если этот триггер есть, то он в дампе окажется. А вообще проще и быстрее глянуть таблицу pg_trigger и поискать там. Потому что в проекте триггеры вообще не используются. Крон смотрел (crontab -l)- там все ок. Но за наводку спасибо.

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

Это не вирус был, а специальная утилита для прогрева помещения дата-центра в зимнее время путем увеличения нагрузки на сервере в заданные часы :)

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

Иной раз просто не ожидаешь, что можно настолько сильно лохануться

Я как-то давно на университетском фрэймворке в корневой директории нашёл файлы passwd и shadow (world-readable). Попробовал подобрать какой-нибудь пароль с jack the ripper - получилось. (конечно я сразу сообщил админу)

the1 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.