Вопрос: Предыдущий ИТ-работник, вероятно, покинул несколько бэкдоров. Как я могу их устранить? [Дубликат]


На этот вопрос уже есть ответ:

Я начал работать в компании, которая уволила предыдущего ИТ-работника за утечку данных.

Могу только сказать следующее:

Мы используем Firebird DB с приложением, написанным другой компанией Proxmox для виртуализации Windows Server 2008 R2, SQL Server, облачного ядра Mikrotik router и нескольких других устройств Mikrotik.

Я не уверен на 100%, но есть ли какой-то быстрый способ проверить, остались ли какие-то бэкдоры, не прерывая внутренних процессов и переформатируя все?

Этот предыдущий парень был действительно хорош, написав программное обеспечение на C ++ и C #. Я также знаю, что он сделал ассемблер и взломал несколько программ в ollydbg.


64
2018-01-25 09:00


Источник


Комментарии не предназначены для расширенного обсуждения; этот разговор был переехал в чат, - Michael Hampton♦


Ответы:


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

Помимо этого, вы действительно не можете многое сделать.

Очевидно, пока вы решаете, что делать

  • Аудит всех правил брандмауэра на достоверность
  • Аудит всех счетов на достоверность
  • Аудит всех файлов sudoers на достоверность
  • Изменение всех паролей и ключей

но это только царапает поверхность.


108
2018-01-25 10:43



В самом деле. Полный аудит кода - это только Конечно, понимайте, что делает каждая строка кода. Тривиально добавить некоторый «специальный» URL-адрес, который открывает оболочку, и скрыть это в неясной логике приложения. Никакое сканирование, перезагрузка или проверка файлов конфигурации не обнаружит, не говоря уже об исправлении. - Boris the Spider
Примечание: «переустановить с нуля» ДЕЙСТВИТЕЛЬНО означает «с нуля». Получите новую машину, которую он, возможно, не коснулся и не использовал, чтобы загружать свежие установочные файлы для всех операционных систем и программного обеспечения, которые вы используете, с официального сайта, предпочтительно по защищенному соединению и из совершенно другой сети. Если вы не можете найти правильных инсталляторов в Интернете, используйте контрольную сумму для любых существующих файлов, прежде чем использовать их. - Nzall
Учитывая весь физический доступ, который имел бы парень, вам может потребоваться проверить необычное или неожиданное оборудование. - user2357112
Если вам нужно использовать программное обеспечение, которое написал парень, и вы завершили полный аудит кода, тогда перекомпилируйте, потому что вы все еще не можете быть уверены, что ваши двоичные файлы полностью из исходного кода, который вы проверяли. - Robert
«Nuke весь сайт с орбиты - это единственный способ убедиться» - beldaz


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


Теперь рассмотрим очень маловероятный случай, что он действительно хочет сделать что-то вредное.

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

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


Вы никогда не сможете быть на 100% уверенными (за исключением случаев переустановки всей сети). Вы можете пройти контрольный список, но вы никогда не можете быть уверены, что все проверили.

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


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


39
2018-01-25 16:08



Мне нравится ваш ответ, и я попытался сделать его более естественным. Не стесняйтесь откатываться, если вы не согласны с моими изменениями. - Reaces
@Reaces Абсолютно хорошо, спасибо вам большое! - peterh


@JonasWielicki сравнили этот вопрос с одним из наших канонических вопросов безопасности (Как я могу работать с компромиссным сервером?). Я поддерживаю свой ответ на что вопрос, но есть важное различие.

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

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

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


14
2018-01-26 11:34



Обратите внимание, что предложенный Как искать заднюю часть от предыдущего ИТ-специалиста? как возможный дубликат, который ИМО будет намного лучше, чем Как я могу работать с взломанным сервером? - Michael Kjörling
@ MichaelKjörling Я бы согласился, что это станет лучше. Я думаю, что вопрос достаточно разный для «поиска из бэкдоров один», чтобы выжить, даже если ответы похожи. - Rob Moir
Я на самом деле несколько не определился в том, покрывают ли эти две земли одно и то же. Поиск задних фонарей является очевидным первым шагом, прежде чем их можно будет устранить; после обнаружения конкретные шаги будут несколько отличаться в зависимости от типа бэкдора. - Michael Kjörling
@ MichaelKjörling Я бы сказал, что это очень далеко не очевидно, как первый шаг. Как показывает главный ответ, наиболее распространенной стратегией является предположить, что все испорчено, а также вытирать, переустанавливать и т. Д., Не прилагая никаких усилий для поиска бэкдоров. - jwg


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

Если это не совсем возможно,

  1. Рассмотрим базовую безопасную конфигурацию, и анализ текущей конфигурации отклонен от этого.
  2. Проверьте все программы suid.
  3. Проанализируйте все запущенные процессы.
  4. Выполните сканирование портов в системе для определения открытых портов и служб.
  5. Регулярно контролируйте все исходящие и входящие соединения и ищите соединения-изгои.

11
2018-01-25 14:08





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

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

Если это менеджеры, теперь вы узнаете, насколько они разумны. Готовы ли они согласиться на «уверенность»? Может быть, вы можете последовать за уволенным парнем на его новую работу!

Если вы хотите изучить свои собственные системы, я бы начал с создания сетевой системы мониторинга, такой как snort. Ищите неожиданный трафик, например " почему система каждый день разговаривает с этим сервером в России? »или« почему люди делают IRC на моем веб-сервере? »(это случилось со мной).

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


9
2018-01-25 23:24





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

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

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

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

Кроме того, вы упомянули предыдущий I.T. люди могли программировать на ассемблере и на C ++. Мой вопрос: почему? Так что сделайте аудит любого настраиваемого кода, который может существовать, и оцените функциональность. Потому что, пока другие люди мог бы были «причудливыми» в своих навыках программирования, кто знает, запрограммировали ли они что-то на C ++, например, - можно легко воссоздать в Python или Bash / Batch. В наши дни я встречал множество программистов на C ++, которые действительно используют C ++-код, когда для достижения эквивалентной функциональности можно использовать более простые инструменты.

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


6
2018-01-26 02:34



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


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

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

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


2
2018-01-27 02:18



Многие пароли глубоко жестко закодированы в источники и ресурсы конфигурации. В частности, те, которые принадлежат к внутренним услугам. Если система сложная, часто они даже не могут найти их все. Часто даже не известно, что это по существу пароль (нужный токен), например 128-битный гекса код в файле конфигурации, глубоко зашифрованный в файл .jar. - peterh