Есть старое правило: если можно сделать быстро и удобно, кто‑то обязательно сделает это в ущерб безопасности. В инфраструктурных командах это особенно заметно. Сетевики часто решают задачи «с лёту», и это прекрасно. Пока речь не заходит про пароли. Один из таких случаев стал для нас уроком На первый взгляд — мелочь, но последствия могли быть куда серьёзнее.

Как всё началось

Обычный рабочий день. Я проверял список процессов на сервере (ps aux) и вдруг вижу:

bash
sshpass -p 'Qwerty123' ssh admin@10.0.5.21

Пароль. В открытом виде. В командной строке.

Подошёл к коллеге:

— Это что за магия?

— Скрипт для быстрого доступа, чтобы пароль не вводить каждый раз.

— Ты в курсе, что этот пароль может увидеть любой пользователь на сервере?

— Ну мы же внутри сети

— До первого ps или попадания в логи.

Через пару часов у нас уже был внеплановый аудит.

Почему это проблема:

Передача пароля в аргументах — это классический антипаттерн.

  • Аргументы команд видны в ps, /proc/[PID]/cmdline, Task Manager.

  • Они могут попасть в логи CI/CD.

  • Мониторинг и аудит тоже их подхватят.

  • Многие утилиты (sshpass, plink, WinSCP CLI, rsync, mysql, curl, mRemoteNG) позволяют так передавать пароль — и это соблазн для быстрого «костыля».

В итоге получить пароль можно, даже не трогая сам SSH.

Как искать такие случаи

Windows (PowerShell)

powershell
$insecureProcs = Get-CimInstance Win32_Process | Where-Object {
    $_.CommandLine -match '\-p\s' -or $_.CommandLine -match '\-pw\s' -or $_.CommandLine -match '--password=' -or $_.CommandLine -match '/password='
} | Select-Object ProcessId, Name, CommandLine
$insecureProcs | Format-Table -AutoSize

Linux (bash)

bash
ps -eo pid,user,command --no-header | while read PID USER CMD; do
  if [[ "$CMD" =~ -p ]] || [[ "$CMD" =~ -pw ]] || [[ "$CMD" =~ --password= ]] || [[ "$CMD" =~ /password= ]]; then
    echo "PID=$PID USER=$USER CMD=$CMD"
  fi
done

Как мы «засветили» пароль в проде

Оказалось, что у нас крутился ночной бэкап через cron с командой:

bash
sshpass -p 'MySecret123' ssh backup@10.1.1.25

На сервере работали и другие пользователи. Пароль всплыл в мониторинге процессов. 

В довесок Jenkins сохранил эту же команду в логи пайплайна, доступные всем участникам проекта. Пришлось срочно менять ключи, чистить задачи и усиливать контроль.

Мини-справочник уязвимых инструментов

Инструмент 

Параметр пароля   

Где светится

sshpass  

-p 

ps, /proc

plink / pscp

-pw 

Task Manager

WinSCP CLI 

/password= 

cmdline 

rsync  

--password-file   

при доступном файле

curl / wget  

http://user:pass@

аргументы

mysql   

--password= 

предупреждение

smbclient

user%pass   

ps  

Jenkins  

sh "sshpass..."

логи 

Что внедрить в процесс

Linux — cron‑сканеры, Ansible, shell‑скрипты.

Windows — PowerShell + логирование.

CI/CD — линтеры и сканеры (Checkov, KICS, Semgrep).

IDE — pre‑commit хуки, запрещающие команды с паролем в аргументах.

Пример правила для Semgrep:

yaml
pattern: sshpass -p $PASS ...
message: 'Пароль передается в командной строке — это небезопасно.'
severity: ERROR

Как делать безопасно:

  • Использовать ssh-agent и ключи без паролей в скриптах.

  • Хранить секреты в Vault, AWS Secrets Manager, Ansible Vault. 

  • Прятать учётки в .pgpass, .my.cnf, .netrc (права 600). 

  • Разграничивать доступ: никто кроме root не должен видеть чужие процессы. 

  • Ограничивать или удалять опасные утилиты (sshpass и пр.). 

  • В случаях когда необходимо хранить секреты в файлах использовать кодировку

Вывод

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

Совет: проверьте свои сервера прямо сейчас. Если пароли в аргументах есть — убирайте немедленно. Такие мелочи могут стоить гораздо дороже, чем пять минут на настройку.

P. S. Был ли у вас подобный опыт? Расскажите, как находили и закрывали такие дыры. Возможно, получится собрать полезную подборку практик.

Комментарии (130)


  1. Melkij
    12.08.2025 09:26

    а лучше сразу раскатить PasswordAuthentication no


    1. Lazhu
      12.08.2025 09:26

      Заодно и PermitRootLogin no


      1. powerman
        12.08.2025 09:26

        Это не про усиление безопасности в контексте текущей статьи. Это скорее про аудит - при условии, что он настроен, что его логи кто-то смотрит, и что никто не использует `sudo bash` и аналоги (впрочем, помним про то, что выйти в шелл можно из многих других приложений, включая vim, так что это не панацея и желающие выполнить команды мимо аудита всё-равно смогут это сделать). В остальном большой пользы от этой настройки нет.


        1. DMGarikk
          12.08.2025 09:26

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

          ==

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


          1. powerman
            12.08.2025 09:26

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

            Это традиционный контр-аргумент. Проблема в том, что он больше теоретический, нежели практический - в теории чем больше уровней защиты тем лучше. А на практике первым возникает вопрос: а каким конкретно способом злоумышленник попал на сервер через ssh не под рутом? И дальше обычно выясняется, что в реалистичных сценариях у него в любом случае будет рут, если рут есть у владельца текущего аккаунта.

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

            Ну так не кладите ключи в /root/.ssh/authorized_keys2 и их там не будет. А если серьёзно, то, опять же, в теории это возможно, но на практике даже при использовании IaaC изредка всё-равно нужен прямой доступ под root - когда случается что-то нештатное (железо частично поломалось, нужно отлаживать какие-то серьёзные странности в поведении ядра, нужно разобраться с идущей прямо сейчас атакой или провести расследование последствий атаки, etc.). И в таких случаях PermitRootLogin no просто мешается под ногами, без какой-либо пользы от него ни в этот момент ни в остальное время (потому что полноценного аудита при котором от него польза может быть на практике даже в средних компаниях почти не встречается).


            1. ValdikSS
              12.08.2025 09:26

              И в таких случаях PermitRootLogin no просто мешается под ногами

              Это решается sudo. PermitRootLogin нужен фактически только для единственной функции: туннели (VPN) через sshd (не путать с пробросом портов).


              1. powerman
                12.08.2025 09:26

                sudo решает (частично) вопрос аудита, не более того. Если в компании полноценного аудита нет - то PermitRootLogin yes может быть даже безопаснее, потому что sudo создаёт дополнительный вектор атаки (напр. вот, эскалация привилегий месячной давности: CVE-2025-32463).


              1. inkelyad
                12.08.2025 09:26

                Это решается sudo

                Наоборот, это sudo заменяется ssh с разрешенным входом по root. Просто выполняешь соединение на localhost с нужной командой.

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

                Недостаток - все эти правила, что в sudo есть, теряются, но оно далеко не всегда надо.


                1. mayorovp
                  12.08.2025 09:26

                  Преимущество - можно ssh-agent пробросить...

                  …и получить дырищу в безопасности! Мало того что этот проброс by design дырявый, так ещё и были связанные с ним уязвимости.


                  1. inkelyad
                    12.08.2025 09:26

                    …и получить дырищу в безопасности!

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

                    Кроме того, если к этому сокету злодей может прицепиться - то он и к tty, через который пароль для sudo набирается, тоже может.


                    1. mayorovp
                      12.08.2025 09:26

                      Если "повесить" троян на старт сессии - то время жизни этой сессии роли играть не будет.
                      Что же до пароля - вот потому пароль для sudo и должен либо быть уникальным, либо отсутствовать.


            1. DMGarikk
              12.08.2025 09:26

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

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

              меня отлично научили на одном из тестов проникновения как ломануть доменный контроллер просто отправкой письма на комп сотрудника с гостевыми привелегиями...15 минут хватило чтобы показать как ломануть доменный контроллер через эксплойт на который апдейт вчера вышел..зайдя туда админом от пользователя с правами "пользователь" - который априори туда доступа иметь не должен вообще никакого кроме АД-шных сервисов типа получения gpo и прочей авторизации

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

              тут конечно вопрос в изоляции контуров и ограничений доступа по портам в сочетании IP+user ...но это уже прям жирно хорошо, для этого надо чтобы инфраструктура была готова к таим приседаниям..и то не факт что дыры в фаерволле не будет

              И в таких случаях PermitRootLogin no просто мешается под ногами, без какой-либо пользы от него ни в этот момент ни в остальное время (потому что полноценного аудита при котором от него польза может быть на практике даже в средних компаниях почти не встречается).

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

              а если у вас 192.168.0.1 login root в логах, то это уже фейл


              1. powerman
                12.08.2025 09:26

                реалистичные сценарии есть такие о которых вы не догадаетесь

                Есть. Но это не повод для карго-культа и театра безопасности. Предпринимая какие-то действия "для безопасности" стоит понимать, какие конкретно риски и сценарии атак эти действия прикрывают. Тупо механически выключать везде PermitRootLogin просто потому, что так 20 лет назад порекомендовали где-то в интернете плюс в директиве есть страшное слово "root" - так себе идея.

                если в логах написано

                Как я с самого начала говорил, если в компании настроен полноценный аудит - то PermitRootLogin действительно нужно отключить, иначе он этому аудиту будет мешать. Но - это далеко не единственное, что нужно сделать, потому что sudo bash этому аудиту будет мешать ровно так же. И нет, надеяться на то, что "если что - что-нибудь по логам накопаем" - это и близко не эквивалент состоянию "настроен полноценный аудит".

                Вообще, я в эту сторону давненько не смотрел, но вроде были какие-то способы логировать все exec-и на уровне сисколов. Если аудит делать на этом уровне, а не надеяться на "непробиваемый" /etc/sudoers, то и PermitRootLogin может аудиту не особо мешать - кто именно зашёл под рутом видно по тому, какой из ключей использовался, а дальше к нему привязан аудит по exec-ам.


                1. DMGarikk
                  12.08.2025 09:26

                  упо механически выключать везде PermitRootLogin просто потому, что так 20 лет назад порекомендовали где-то в интернете плюс в директиве есть страшное слово "root" - так себе идея.

                  да всё просто, почти в любом стандарте ИБ, PCI-DSS, SOX и прочихз аббривеатурах, всегда первыми пунктами парольно-пользовательской политики идет запрет работы под анонимными привелигированными пользователями, не потому что "20 лет ктото порекомендовал, а ща всё устарело"..а потому что за этим есть смысл в виде логирования, мониторинга и контроля

                  sudo bash этому аудиту будет мешать ровно так же.

                  не будет, в логах будет запись что pupkin.v зашел на сервак и сделал sudo bash, в результате сгенерирован автоматический инцидент ИБ и безопасник дал васе по шее

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

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

                  кто именно зашёл под рутом видно по тому, какой из ключей использовался, а дальше к нему привязан аудит по exec-ам.

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

                  блин вы усложняете сценарии ИБ только ради того чтобы под рутом на серваки ходить напрямую? это того стоит? я очень давно не брал в руки шашку в админской сфере, но помню что там от ИБ других более серьёзных граблей больше и запрет входа под рутом самая ерундовая история

                  лучше давайте про selinux и прочие apparmor вспомним и динамический фаерволл зависящий от юзера и приложений которые ему разрешено запускать...или это тоже не нужно и мы всецело доверяем админам?

                  стоит понимать, какие конкретно риски и сценарии атак эти действия прикрывают.

                  а это я люблю

                  помню такую фразу "нам не надо усиливать безопасность, нам надо только точно знать кто виноват в инциденте, мы на него в суд подадим и инцидент будет исчерпан" (с)

                  буквально, васян потерял ноут с ключами ssh, у банка украли 100500млн денег...ну так Васян виноват, пускай суд его покарает...а 100500млн..ну украли и украли..бывает..ВИНОВНЫЙ НАЙДЕН! (рукалицо)

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

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

                  p.s. меня испортила работа в финтехе


                  1. powerman
                    12.08.2025 09:26

                    Вы всё говорите правильно, и я с этим не спорю. В компаниях где реально внедрены любые стандарты ИБ есть адекватный аудит, и там отключать PermitRootLogin действительно есть смысл. Но помимо таких компаний есть те, которые до этого уровня зрелости ещё не доросли - их намного больше, и в них зачастую процветают карго-культы и театры безопасности вместо реальной ИБ.

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

                    Я тоже да. Поэтому и говорю, что надеяться на это нельзя - пока процессы аудита не были поставлены и протестированы всегда есть высокая вероятность, что в логах будет что-то бесполезное вроде локального IP или вообще не будет нужного или сами логи будут удалены. Иными словами, я не против отключения PermitRootLogin, я за то, чтобы его выключали не "по умолчанию", а при наличии понимания что конкретно это даст в текущей ситуации. Хотя бы на минимальном уровне: адекватно настроенный sudoers, наличие алертов на sudo bash сотоварищи которые кто-то реально получает и на которые обязательно реагирует, проведённый анализ логов показывающий возможность отследить кто и что делает, хоть какая-то защита логов от удаления.

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

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


                    1. gecube
                      12.08.2025 09:26

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

                      чтобы избежать проблем - достаточно мыть руки перед едой и после туалета. Не просто так цветет наследие Земмельвайса. Но если этого не делать - дальше не пройдешь. Поэтому запрет PermitRootLogin- хорошее умолчание.


                      1. emink
                        12.08.2025 09:26

                        Добра вам, но это не так. Какая сейчас существует защита в ci/cd инструментах? Вроде где-то маскируется, но работает по-разному, может в логе пайплайна мы не увидим пароль, но если отпочковаться в другую бранчу, то у любого девопса будет возможность этот пароль скинуть в свою хелло ворлд приложуху и там его сохранить, как и любую другую переменную ci. Можно ли защитить ci, конечно, ваулт апрол и т.д., только назовите компанию где настолько не доверяют своим сотрудникам (которым выдают доступ в проекты инфры ci), чтобы городить на каждый чих такие строгие меры? Вы заеб... такие пайплайна писать, а сколько времени потратят сотрудники на реализацию такой "безопасности". А теперь про permitrootlogin yes, что если вам нужен доступ к либвирту по сокету, а у пользака таких прав нет, будете колхоз городить и палки в работу вставлять? Вы меня извините, но порядочному толковому сотруднику точно нужен рут, все данные, расклад, архитектура, без этого админ не сможет грамотно научится управлять инфрой/процессами. Я работал в компаниях с такими стремными мерами безопасности, и от всего сердца шлю их подальше, порой ИБ зазнается, и, чтобы оправдать свою востребованность, вместо пользы приносят одни неудобства. При этом ещё ни разу меня такие меры не останавливали от получения всех необходимых мне секретов для комфортной работы. Короче, все это чушь, лучше занимайтесь своими сотрудниками, не проверять часы в жире, а разговаривать и понимать мотивацию людей нужно, насколько толковые, какие амбиции и какой опыт, это даёт гораздо больше чем вот эта вот снимая безопасность


      1. lightman
        12.08.2025 09:26

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


        1. gecube
          12.08.2025 09:26

          конфиги надо не бекапить, а

          • либо бекапим виртуалку целиком средствами облака

          • а еще лучше - раскладываем конфиги любимым средством puppet/salt/ansible и вместо бекапа просто имеем единую точку правды.


      1. netch80
        12.08.2025 09:26

        Лучше forced-commands-only, при этом в authorized_keys записаны команды и их легко верифицировать.


    1. hogstaberg
      12.08.2025 09:26

      Не всё сетевое железо так умеет. Далеко не всё.


  1. Cyber_Griffin
    12.08.2025 09:26

    Классика жанра:
    «Зачем хранить пароли в секретах, если можно просто sshpass -p "12345"
    Реальность: Через 5 минут этот пароль уже в логах, мониторинге и чате DevOps-ов.


    1. volshara85
      12.08.2025 09:26

      Реальность, сами Девопсы этот скрипт и накарябали на коленке)


      1. gecube
        12.08.2025 09:26

        Девопс Инженера не существует! Это МИФ


        1. Cyber_Griffin
          12.08.2025 09:26

          Если бы его не было, кто бы: Рвал волосы из-за kubectl apply -f, который снова упал? Объяснял продакшн-инженерам, что «в докере не надо sudo rm -rf /»? Терпел вопросы в духе «Почему CI/CD пайплайн сломался? Мы же ничего не меняли!», проходили)))


          1. gecube
            12.08.2025 09:26

            Admin v2.0


          1. Lazhu
            12.08.2025 09:26

            звучит красиво, а значит - "эникей"


          1. KennyGin
            12.08.2025 09:26

            продакшн-инженерам

            а это кто? "профессия" даже не гуглится


            1. DMGarikk
              12.08.2025 09:26

              догадываюсь что это господа из отдела эксплуатации, админы которые за прод отвечают


  1. ValdikSS
    12.08.2025 09:26

    Использовать ssh-agent и ключи без паролей в скриптах.

    Это плохой совет, потому что стандартный ssh-agent просто предоставляет доступ к ключу, без всяких ограничений и подтверждений. Любое вредоносное ПО на сервере сможет пользоваться ключом подключённого администратора и подключаться к другим серверам.


    1. powerman
      12.08.2025 09:26

      Ну, это всё-таки лучше, чем светить паролем. Кроме того - а какие есть доступные альтернативы?


      1. ValdikSS
        12.08.2025 09:26

        Для резервного копирования по SSH?

        1. На сервере, где хранятся копии, создаём отдельного пользователя с домашней директорией, и добавляем его в группу chrooted

        2. Для домашней директории выставляем права доступа drwxr-x--x, пользователь и группа — root

        3. В домашней директории создаём каталоги backup с правами drwxr-x-wx и backup-backup с drwx-----, оба также root:root.

        4. В crond на сервере добавляем mv /home/backup-user/backup/* /home/backup-user/backup-backup/

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

        6. В sshd_config добавляем то, что ниже

        Match Group chrooted
                ChrootDirectory %h
                ForceCommand internal-sftp
                AllowTcpForwarding no
                GatewayPorts no
                X11Forwarding no
                PermitUserRC no
        

        Получили в итоге:

        • Доступ к SSH-консоли отключён, работает только SFTP

        • По SFTP клиент может зайти только в директорию backup внутри собственной домашней директории, при этом не может сделать листинг файлов в ней (нет +r, есть только +x), а может только «вслепую» загрузить (или прочитать) файл бэкапа. Создание файлов и директорий вне backup невозможно.

        • Сервер по cron'у перемещает загруженные в backup бэкапы в директорию backup-backup, куда доступа у SSH-клиента нет никакого, чтобы нельзя было изменить или удалить загруженные файлы даже вслепую

        Это костыль, но рабочий. Лучше, конечно, применять специализированные решения, изначально рассчитанные на write-only доступ.


        1. powerman
          12.08.2025 09:26

          Да нет, с бэкапом всё просто - у меня сервера его сами делают и заливают в облако, ssh тут вообще не нужна. Я в общем случае про задачу "ssh в скрипте", для которой обычно и используются беспарольные ключи - когда такая задача триггерится не на самом сервере (как возможно сделать в случае с бэкапами) а снаружи.


          1. ValdikSS
            12.08.2025 09:26

            Я обычно завожу уникальный ключ, которому указываю command=… (forced command), чтобы этим ключом нельзя было сделать ничего недозволенного.


            1. powerman
              12.08.2025 09:26

              О, точно, есть же такая фича! Спасибо.


            1. altman
              12.08.2025 09:26

              А если надо несколько command?


              1. ValdikSS
                12.08.2025 09:26

                Делаете враппер и обрабатываете SSH_ORIGINAL_COMMAND.


            1. artemisia_borealis
              12.08.2025 09:26

              Отличный способ. Издавна так делаю для специального пользователя для доступа к репам. И у этого пользователя в authorized_keys прописано для каждого ключа, куда именно владелец ключа имеет доступ. Именно через command="..."


        1. Fedorkov
          12.08.2025 09:26

          Приватный SSH-ключ лежит ведь в домашней директории пользователя? Чем это лучше, чем хранить его в агенте?


          1. ValdikSS
            12.08.2025 09:26

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


        1. powerman
          12.08.2025 09:26

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


        1. mayorovp
          12.08.2025 09:26

          Для домашней директории выставляем права доступа drwxr-x--x, пользователь и группа — root

          А это разве работает? Обычно же выдаёт ошибку "домашняя директория пользователя должна принадлежать ему самому" и отказывает в подключении.


          1. ValdikSS
            12.08.2025 09:26

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


      1. slonopotamus
        12.08.2025 09:26

        какие есть доступные альтернативы?

        ProxyJump


        1. powerman
          12.08.2025 09:26

          А чем это поможет в скрипте? ProxyJump нужен чтобы пройти через периметр, но никак не поможет в скрипте обойтись без пароля или беспарольного сертификата.


          1. slonopotamus
            12.08.2025 09:26

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


            1. omaxx
              12.08.2025 09:26

              Вот только это работает до тех пор пока особенно рьяный безопасник не поставит AllowTcpForwarding=no на сервере.


              1. kmeaw
                12.08.2025 09:26

                На такие случаи есть ssh -o 'ProxyCommand=ssh jumphost nc %h %p'Если, конечно, кто-то не удалит все программы, умеющие соединять TCP и stdin/stdout.


    1. mayorovp
      12.08.2025 09:26

      Любое вредоносное ПО на сервере сможет пользоваться ключом подключённого администратора и подключаться к другим серверам.

      Только запущенное от имени того же пользователя, потому что сокет имеет права 600.


    1. omaxx
      12.08.2025 09:26

      А вот это уже вопрос к ИБ, откуда на сервере вредоносное ПО, которое может получить доступ к read-only файлам пользователя...


  1. isden
    12.08.2025 09:26

    Semgrep

    Эта та штука, которая для работы хочет логин в их SaaS, и передает данные для анализа на их сервера? Я сходу не увидел у них на сайте как задеплоить полностью локальный инстанс.


  1. inkvizitor68sl
    12.08.2025 09:26

    sshpass -p 'Qwerty123' ssh admin@10.0.5.21

    Ну враньё же.
    1729664 pts/10 S+ 0:00 sshpass -p xxxxxxxxxxxxx ssh ...

    И это весьма старая версия ещё.


    1. powerman
      12.08.2025 09:26

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


      1. inkvizitor68sl
        12.08.2025 09:26

        м, да, моя неправда -(
        думал, что они что-то хитрее делают, чем cmdline после запуска меняют


    1. edo1h
      12.08.2025 09:26

      это не всегда работает так, как хотелось
      например, у меня есть железка с логами в cp1251, я прямо сейчас наблюдаю в ps

      2144581 pts/54   S+     0:00                      \_ luit -encoding cp1251 sshpass -p 123 ssh root@10.20.240.36
      2144582 pts/102  Ss+    0:00                          \_ sshpass -p     ssh root@10.20.240.36
      


  1. Nalivai
    12.08.2025 09:26

    sshpass может брать пароль из файла. Тоже не бог весть, но по крайней мере пароль открытым текстом нигде не светится.


    1. Wesha
      12.08.2025 09:26

      sshpass может брать пароль из файла. Тоже не бог весть, но по крайней мере пароль открытым текстом нигде не светится.

      Эммммм... а в файле?


      1. omaxx
        12.08.2025 09:26

        а чем файл с паролем хуже файла с приватным ключем?


        1. unC0Rr
          12.08.2025 09:26

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


          1. omaxx
            12.08.2025 09:26

            может... но в статье идет речь про скрипты, запускаемые автономно через cron...


          1. gecube
            12.08.2025 09:26

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

            как доказано опытом поколений - к безопасности это не добавляет.

            Если файл утек (даже под паролем) - ключи надо менять


        1. Wesha
          12.08.2025 09:26

          а чем файл с паролем хуже файла с приватным ключем?

          Да в принципе ничем — оба одинаково хреново :)


          1. omaxx
            12.08.2025 09:26

            Значит нужно использовать HSM для хранения приватного ключа


      1. askharitonov
        12.08.2025 09:26

        Эммммм... а в файле?

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


  1. MaxLK
    12.08.2025 09:26

    Вот же гниды эти сетевики! Не то что остальные принцы в золотых доспехах на белых конях.

    Видимо автору в детстве сетевик нанес глубокую травму...


  1. jouilk23
    12.08.2025 09:26

    Видел похожее, только пароль в curl через user:pass@ гоняли


  1. gecube
    12.08.2025 09:26

    из списка рекомендаций:

    • Использовать ssh-agent и ключи без паролей в скриптах.

    • Хранить секреты в Vault, AWS Secrets Manager, Ansible Vault. 

    • Прятать учётки в .pgpass.my.cnf.netrc (права 600). 

    • Разграничивать доступ: никто кроме root не должен видеть чужие процессы. 

    • Ограничивать или удалять опасные утилиты (sshpass и пр.). 

    • В случаях когда необходимо хранить секреты в файлах использовать кодировку

    три откровенное говно.

    • ssh-agent - если он запущен, то любой процесс на хосте может к нему подцепиться.

    • прятать учетки в файлах конфигов - они есть на файловой системе. Вы же ее не шифруете? А любой безобидный кронтаб и пользователь уже рут и читает все файлы

    • кодировка - ну, типа base64? Смешно.

    То есть этими рекомендациями вы не избавляетесь от основной проблемы - необходимость смены пароля в случае его компрометации. А чтобы от нее уйти - надо... внезапно... уйти от паролей. Даже короткоживущие сертификаты будут лучше. Ну, и, видимо, как я их и не люблю, но так любимые безопасниками - списки контролей доступа (ACL) или же "белые списки" доверенных IP адресов.


    1. 0xC0CAC01A
      12.08.2025 09:26

      А безопасные и практичные способы есть?


      1. gecube
        12.08.2025 09:26

        в облаке проблема решается через IAM/IRSA (Amazon) и workload identity (в случае Google).

        На on-premise - только костылить. Но в целом штуки вроде https://github.com/spiffe/spire именно за этим и нужны.

        Вообще тут интересно засаммонить безопасников - пускай они отдуваются, как профильные специалисты. Так-то они веселые ребята - кого-то критиковать - это завсегда. А самим что-то предложить и побыть критикуемыми? Или так нельзя?


    1. Jalart
      12.08.2025 09:26

      А как тогда, например, настраивать бекапы для MySQL с доступом по паролю, если в строке пароль передавать нельзя или хранить в конфигах.
      Можно более развёрнуто?


      1. gecube
        12.08.2025 09:26

        если бекап с той же машины - MySQL, Pg прекрасно аутентифицируют под линукс учеткой. В этом случае Вы смещаете проблему.

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


    1. omaxx
      12.08.2025 09:26

      • ssh-agent - если он запущен, то любой процесс на хосте может к нему подцепиться.

      может все-таки не любой, а только запущенный от рута или того же пользователя?


      1. gecube
        12.08.2025 09:26

        при должной степени ловкости - любой.


        1. omaxx
          12.08.2025 09:26

          А можно поподробнее?

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


          1. gecube
            12.08.2025 09:26

            например, https://snehbavarva.medium.com/privilege-escalation-techniques-series-linux-cron-jobs-a5b797b424b4

            По su / sudoers - история тоже известная. В самом sudo пачка уязвимостей https://habr.com/ru/companies/kaspersky/articles/925604/

            Чуточку добавьте любознательности


            1. omaxx
              12.08.2025 09:26

              Там не про ловкость, а про криво настроенную систему...


              1. gecube
                12.08.2025 09:26

                аксиома - идеально настроенных систем не бывает. Тем более в любой сколько нибудь сложной системе всегда найдутся проблемы. Уязвимые пермиссии, например, могут приехать из пакетного менеджера. Или неудачной установки, скажем, https://github.com/kubernetes-sigs/kubespray/issues/4824 https://github.com/kubernetes-sigs/kubespray/issues/6891 Жесть же. Именно поэтому контейнеризация не защищает - из нее гораздо легче выбраться, чем из виртуализации (там только штуки вроде Spectre и Meltdown, да дырки в гиперах позволяют выбраться).


                1. omaxx
                  12.08.2025 09:26

                  Ну если вы допускаете, что к вашему серверу злоумышленник может получить root доступ, то какой смысл дальше обсуждать, что надежнее: пароль, сертификат или еще что-то? Ко всему у него будет такой же доступ, как и у легитимных программ..

                  Ну и если так рассуждать, то в винде дыр не меньше... Может ваш ноут вирусами заражен и давно уже слил все ваши логины, пароли и ключи. Такой вариант вы не рассматриваете?


                  1. gecube
                    12.08.2025 09:26

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

                    Может ваш ноут вирусами заражен и давно уже слил все ваши логины, пароли и ключи. Такой вариант вы не рассматриваете?

                    я уже сто лет в обед пользуюсь менеджерами паролей вроде 1password и Proton Pass.


            1. mayorovp
              12.08.2025 09:26

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

              Потому что от подмены бинарника ssh не защитят ни короткоживущие сертификаты, ни даже белые списки IP адресов.


              1. omaxx
                12.08.2025 09:26

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


                1. gecube
                  12.08.2025 09:26

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


  1. CorruptotronicPervulator
    12.08.2025 09:26

     Я проверял список процессов на сервере (ps aux) и вдруг вижу

    hidepid=2 спасёт гиганта мысли.


  1. trabl
    12.08.2025 09:26

    Интересно, а автор на этот сервер тоже с паролем заходил или с ключом?) Стандартные absible роли для настройки новых серверов решают эти проблемы.


  1. TRAPPIST
    12.08.2025 09:26

    Как то пришлось в windows прописывать пароль админа в текстовую команду чтобы запускать ПО IVMS-4200 на компьютере охраны. Была проблема ,что ПО видеонаблюдения от Hikvision IVMS-4200 не стартует без прав администратора, а у охранников на КПП таких прав нет конечно же, а камеры смотреть нужно. Пришлось такую сложную схему городить, запуск задачи в планировщике при старте Windows Эта задача запускает PsExec.exe ( из пакета Sysinternals) а ключами будут логин пароль и запуск батника. Примерно так в планировщике Сценарий: "C:\Program Files (x86)\Processadm\PSTools\PsExec.exe"

    Аргумент: -i -u username -p password  "C:\Program Files (x86)\Processadm\ivms_start.bat"

    А в батнике ivms_start.bat такая строка Set ApplicationPath="C:\Program Files (x86)\iVMS-4200 VS\iVMS-4200 VS Client\Client\iVMS-4200.Framework.C.exe"
    cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

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


    1. karavan_750
      12.08.2025 09:26

      А почему не runas?


      1. avelor
        12.08.2025 09:26

        Runas плохой вариант, он позволяет потом запускать с правами пользователя любой бинарь с тем же именем. Тут вот пособирали вариантов https://habr.com/ru/companies/servermall/articles/485958/


        1. karavan_750
          12.08.2025 09:26

          Тут вот пособирали вариантов

          Мне надо чаще читать хабр.


  1. Protos
    12.08.2025 09:26

    Что внедрить в процесс

    Linux — cron‑сканеры, Ansible, shell‑скрипты. 

    Windows — PowerShell + логирование. 

    CI/CD — линтеры и сканеры (Checkov, KICS, Semgrep). 

    IDE — pre‑commit хуки, запрещающие команды с паролем в аргументах.

    Инструменты понятные, но я не понимаю как это поможет защититься от нерадивого сетевика?


  1. lsdb
    12.08.2025 09:26

    к слову, ansible под капотом использует этот же sshpass для подключений ssh по паролю (ansible_ssh_pass), используйте ключи


  1. PjaniyAdmin
    12.08.2025 09:26

    Всегда прикалываюсь с таких ситуаций. Есть специализированный сервак с скриптами, ИБ как самые умные начинают везде лезть, требовать доступ и т.д.. И начинается "ой вы делаете не так" проблема не в не вне так, проблема в том что кто-то влез в ресурс где быть никого не должно. И воспользовался для этого административным давлением. Это как сказать "вот приказ директора - дай пароль" а потом "вот видишь, я под твоим паролем, ты его плохо хранищь".

    А потом начинается, вот мы крутое ИБ, глядите как мы круто добыли доступы, и не важно как мы их добыли :) гребаный цирк, вам самим над собой ржать не хочется?


    1. gecube
      12.08.2025 09:26

      кто работал в ИБ - в цирке не смеется?


    1. profotocor
      12.08.2025 09:26

      ИБ - центр создания проблем, а не их решений! Миллион примеров могу привести "весёлых" указаний этих чудо-специалистов по эксплуатации сканеров безопасности и другого типа ИБэшного ПО.


  1. Chelyuk
    12.08.2025 09:26

    У меня была куча обратных проблем. Доступы делают по 4 месяца. В целом мне норм, деньги платят, доступы ждёшь, но менеджеры нервничают.
    Доступ на тестовый сервер на AWS, только из внутренней сети, никакого порта наружу. Пришлось городить ssh туннели. ХЗ, кому от этого было лучше.
    Самое эпичное - докер нельзя, потому что не безопасно, используй виртуализацию. Так мне внятно и не объяснили, почему виртуализация безопасней докера. Из полезного пришлось выучить Vagrant и Terraform. Из минусов тестовый энв разворачивался 20 минут, вместо 3х ну кубере. Ну и пришлось требовать больше оперативной памяти.


    1. gecube
      12.08.2025 09:26

      Самое эпичное - докер нельзя, потому что не безопасно, используй виртуализацию. Так мне внятно и не объяснили, почему виртуализация безопасней докера

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

      Из минусов тестовый энв разворачивался 20 минут, вместо 3х ну кубере

      ну, 3 vs 20 не так уж страшно. А вот 3 vs 300 - беда.


      1. powerman
        12.08.2025 09:26

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


        1. gecube
          12.08.2025 09:26

          В докере чуть больше рисков, чем в виртуализации.

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

          Но ведь и в виртуализации больше рисков чем в использовании отдельных железных серверов

          тоже правда

          Это вопрос баланса

          да

          Поэтому если у ИБ нет чёткого и здравого аргумента какие конкретно риски для бизнеса они закрывают заменой докера на виртуализацию либо соответствие каким критичным для бизнеса стандартам это обеспечивает, то вероятнее всего отдел ИБ творит фигню - обычно из-за собственной низкой квалификации или синдрома вахтёра.

          честно говоря, для большинства бизнесов докер вообще не нужен. И вообще им контейнеризация не решает ни одной задачи ) Запихать 10 разных сервисов на один сервер? Ну, камон. Смешно. 10 ВМ прекрасно работает. 10 железяк - да, может быть тупо избыточно по ресурсам (но во многих компаниях деньги на железо-то и не считают внезапно).


          1. mayorovp
            12.08.2025 09:26

            Теоретически ограничить докер можешь. Но это куча работы. Кто ее делать будет?

            Ну да, правильно. Зачем делать работу, если можно просто всё запретить?


            1. DMGarikk
              12.08.2025 09:26

              чтобы делать работу за неё надо заплатить, а кто будет за это платить? никто...по этому запретить проще


              1. powerman
                12.08.2025 09:26

                А варианта и не делать работу и ничего не запрещать раз не платят - почему нет?


                1. DMGarikk
                  12.08.2025 09:26

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

                  Это уже много раз пройдено


                  1. powerman
                    12.08.2025 09:26

                    И почему это проблема ИБ, а не бизнеса? Если бизнесу ИБ не нужен - пусть накрутят дичь. Если бизнесу ИБ нужен, и дичь неприемлема - почему бизнес не выделяет ИБ необходимые для "сделать нормально" ресурсы? Тут где-то что-то явно не стыкуется:

                    • или начальник ИБ не в состоянии донести до бизнеса то, что необходимо выделить ресурсы под эти задачи,

                    • или бизнесу это на самом деле не нужно а ИБ просто удовлетворяет собственный синдром вахтёра,

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

                    • или бизнес просто не осознаёт реальную цену излишних запретов ИБ.

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


          1. isden
            12.08.2025 09:26

            достаточно высокая степень незрелости экосистемы

            Позвольте я влезу в вашу дискуссию.

            Вы сейчас про докерхаб же? Тут есть варианты, например свой реп.


            1. gecube
              12.08.2025 09:26

              варианты есть всегда ) но это больно. Все равно базовые образы надо откуда-то брать - а они уязвимые. Вроде бы к 2025 появилось движение к базово защищенным образам. Но че-то все сильно платное - что bitnami, что cgr.dev. Да сам докерхаб в конце-концов. Посмотрим, во что это выльется.


              1. isden
                12.08.2025 09:26

                Если меня склероз не подводит, базовые образы тоже можно локально собирать.

                UPD:

                Да собственно вот.


                1. gecube
                  12.08.2025 09:26

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


                  1. isden
                    12.08.2025 09:26

                    Это намного проще чем свой дистр собрать. Плюс прямая экономическая целесообразность - меньше левого в образе -> меньше ресурсов сервера занимается.


              1. powerman
                12.08.2025 09:26

                И чем именно базовые образы вроде ubuntu:latest более уязвимы чем ровно эта же убунта в виртуалке?


                1. gecube
                  12.08.2025 09:26

                  например, самой сутью образа - там нет кернела. Касательно сравнения именно убунту vs убунту - с точки зрения пакетного менеджера и установленных бинарников - разницы скорее не будет. И вообще выше товарищ правильно говорит - нечего это сравнивать, потому что для контейнеров надо брать контейнерные штуки вроде wolffie, from scratch, distroless etc.


                  1. powerman
                    12.08.2025 09:26

                    например, самой сутью образа - там нет кернела.

                    И как это может навредить безопасности? Докер же крутится в той же виртуалке, безопасность которой Вас устраивает. Значит за ядром в виртуалке Вы уже следите. А в остальном разницы никакой нет, просто базовые образы тоже надо обновлять - ровно так же, как и виртуалки.

                    для контейнеров надо брать контейнерные штуки вроде wolffie, from scratch, distroless etc.

                    Что значит "нужно"? Кому нужно и для чего? Обычно эти штуки берут как раз для усиления безопасности (чем меньше в образе лишних приложений тем меньше возможных векторов для атаки). Но если ваш ИБ считает что у "контейнерных штук" безопасность хуже, то он может вместо них брать и ubuntu:latest. Размер образа будет больше, но в остальном особой разницы нет.


                    1. gecube
                      12.08.2025 09:26

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


                      1. powerman
                        12.08.2025 09:26

                        Это вопрос восприятия. Не нужно воспринимать контейнеры аналогом виртуалок или железных серверов - они этим не являются.

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

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

                        Как вариант, ставите на сервак netdata (можно тоже в докере), и получаете обзервабилити выше крыши, включая и для контейнеров докера.


                      1. gecube
                        12.08.2025 09:26

                        Это вопрос восприятия. Не нужно воспринимать контейнеры аналогом виртуалок или железных серверов - они этим не являются.

                        я никогда их аналогом виртуалок и не называл

                        Контейнер - это обычный процесс/приложение, просто дополнительно ограниченное ядром в плане того, что это приложение видит

                        да

                        Грубо говоря, контейнер намного ближе к запуску бинарника в chroot чем к виртуалке.

                        да

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

                        нет. Именно за счет того, что с точки зрения докера и CRI контейнеры "существуют", а с точки зрения ядра линукс - нет - у нас возникают проблемы, связанные с тем, чтобы правильно рапортовать, например, что процесс ХХХ случился именно в контейнере YYY. Это примерно такая же проблема совместимости, как между nftables и iptables. Повторюсь - тулинг недостаточно зрелый. Хотя и двигается в этом направлении.


                      1. gecube
                        12.08.2025 09:26

                        ну, или - в контейнере /etc/hosts условный. Какой-нибудь секурити тул будет верещать - Алярм, опасность, а ничего такого нет. Хотя, по-чесноку, наверняка, и с systemd-nspawm и chroot окружениями будет такая же ботва.


          1. powerman
            12.08.2025 09:26

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

            Может ни одной задачи отдела ИБ это и не решает, а вот задачи разработчиков - очень даже решает. Разработчики все дружно перешли на докер потому, что их жизнь от этого стала легче. А когда жизнь у разработчиков легче - бизнесу разработка стоит дешевле, в некоторых случаях - заметно дешевле.

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

            Поэтому лично я против театра безопасности. Когда что-то делается для усиления ИБ - это должно быть оправдано реальными нуждами/рисками/ситуацией текущего бизнеса и делаться это должно с пониманием - пониманием как технических аспектов так и цены для бизнеса (в которую входит и неудобство разработчиков в том числе).


            1. gecube
              12.08.2025 09:26

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

              то-то все фронты собирают статикой и деплояет не докерами, а напрямую на cdn.


              1. powerman
                12.08.2025 09:26

                Ну, статически собранные бинарники тоже можно деплоить не докерами. Докер вообще придумали не для "статики". Но в большинстве проектов есть не только статика. Впрочем, если у Вас весь проект состоит исключительно из статики фронта, то докер действительно может быть ненужен.


  1. muhachev
    12.08.2025 09:26

    А ещё можно дураков не брать на работу.


    1. Wesha
      12.08.2025 09:26

      Не «дураков», а «альтернативно одарённых»! /s


      1. muhachev
        12.08.2025 09:26

        Пока их не начнут называть своими настоящими именами, ничего не изменится.


  1. PantileenkoD
    12.08.2025 09:26

    Очень часто пользователи вводят пароль в форму для логина. Далее в логах все это отображается.


  1. Gromov32lvl
    12.08.2025 09:26

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


    1. Wesha
      12.08.2025 09:26

      Классика!


  1. Runime
    12.08.2025 09:26

    А там ssh ключи использовать.... Открытый и закрытый ключ.... И входить вообще без паролей....

    Или я чего то не понимаю?


  1. sergmesh
    12.08.2025 09:26

    Как еще не надо делать (из недавнего)
    некоторые передают пароли в java процессы через -D параметры
    и генерируют heap dump когда вылетает по OutOfMemory
    потом надо же проверить почему свалилось и вытаскивают heap dump к себе на ноут и бинго -- все пароли видны
    хотя продакшн защищен насколько возможно (OTP, audit, пароли никто не видит кроме того кто логинится и тд)
    проблема: heap dumo содержит коммандную строку
    следствие: смена паролей и головная боль на неделю


  1. Ramayasket
    12.08.2025 09:26

    ...


  1. igorm01
    12.08.2025 09:26

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


  1. vvv1965
    12.08.2025 09:26

    Стесняюсь спросить, а вот этот условный Вася, который передал пароль в командной строке, он же уполномочен что-то конкретное делать на сервере ? И кто эти остальные люди, которые могут просматривать логи сервера и увидеть пароль ? Если процессы на налажены, то почему по шее получил Вася а не его альтернативно одаренный руководитель, который пустил все на самотёк а теперь все вокруг виноваты ?


  1. vasilev2407
    12.08.2025 09:26

    А вот если по строгости закона, то почему руководство не предприняло превентивные меры к запрету входу по паролю в принципе ?


  1. ncix
    12.08.2025 09:26

    Мы нашли и закрыли дыру, добавили регулярные проверки, а коллега перешёл на ключи

    ... а коллега перешёл на другую работу