LINUX.ORG.RU

Как безопасно сделать «Отладочный Backdoor»


0

1

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

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

Первое решение: админ может сделать «login as <username>» со своим паролем.

Основной трабл: если угонят пароль админа (ага это само по себе плохо), то могут незаметно для всех логинится под кем угодно (очвеидно что под админом можно натворить всякого но основная задача чтобы это отражалось в логах и т.п. т.е. было заметно)

Deleted

Читай мастер класс по решению проблемы в последних новостях про роутеры

vasily_pupkin ★★★★★
()

Делал в одном проекте такую фигню: админ может залогиниться в любую учётку со своим паролём. Т.е.:

  • <admin>:<admin-pwd> -> admin account
  • <user>:<user-pwd> -> user account
  • <user>:<admin-pwd> -> user account
beastie ★★★★★
()
Ответ на: комментарий от beastie

ну я полагал в поле логина писать <admin_login> <user_login> просто потому что при наличии соленых хешей искать пользователя по паролю невозможно, да и фокус с одинаковыми паролями возможен

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

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

юзеры бывают нервные, хотя надо думать

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

У меня там было всё гораздо запущенней. ;) Был супер-админ, были ресейлеры, которые могли иметь других ресейлеров и были простые юзвери. И каждый мог логиниться на суб-уровень принадлежащих ему пользователей со своим паролем.

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

В таком случае псевдо-код:

struct user {
        char *username;
        char *passwd;
        struct user *parent;
}

int
chckpasswd(struct user *u, char *passwd)
{
        if (strcmp(u->passwd, passwd) == 0) {
                return 0;
        else if (u->parent)
                return chckpasswd(u->parent, passwd);
        return -1;
}
beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)

логов (трейсов пользователей) в вашей 'много пользовательской' системе нет?

mashina ★★★★★
()

Админ может сделать "login as <username>" со своим паролем, но только если username находится в файле разрешенных пользователей, к которому имеет доступ на запись только root той машины, где крутится сервак.

На время тестов добавлять в файл нужного юзера, после тестов убирать.

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