![]() |
|
   [ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ] |
|
|
Простейшие приемы и основы безопасности Unix систем - Часть 2
Основной проблеммой для взломщика все является доступ к желаемой информации, скорее всего, этой информацией будет какой-нибудь файл, который его заинтересовал. У каждого файла есть свой номер, который будет определять уровень доступа к нему. Поясню на "пальцах": rwx rwx rwx - passwords.txt R-чтение, W-запись, X-исполнение. Сочетание rwx говорт нам о том, что владелец, группа, к которой он принадлежит и все остальные пользователи имеют доступ на чтение, записьб и запуск этого файла. Владелец файла может запретить остальным членам группый, в которую он входит производить любые операции над своим файлом, но по умолчанию права группы и владельца совпадают. Имеются также UID и GID - User Идентификатор и идентификатор группы, UNIX ориентируется не по именам (acid,mam0nt,...), а по их номеру в файле с паролями, в котором хранится и личная информация. То же самое и с группами. Поэтому принадлежность всех процесов в UNIX определяется номерами, так как машине удобнее оперировать цифрами, чем символическими именами. Большой проблемой с точни зрения безопасности являются программы с установленные со сменым битом пользователя. Например, программа login, запскается с правми root, но меняет свой бит на бит того пользователя, который вошел в систему. Малейшие ошибки в таких программах заканчиваются плачевно, так как найдя уязвимость в такой программе взломщик может получить уровень супер-пользователя. Очень важным таже являются права на только что создаваемые файлы, например, получив доступ к файлу .cshrc или .profile одного из пользователей (реже рута), взломщик может добавить в него переменную umask 777, и все создаваемые файлы станут, доступны для чтения любому из пользователей системы. СВои настройки следует проверять всем пользователям, а администарторам следить за установками пользователей. Важной частью безопасности UNIX систем является логирование происходящих процесов и действий пользователей. Простейшей проверкой вашего вхождения является файл /<путь>/lastlog(/var/log/ или /usr/adm/), показывающий когда и откуда вы впоследний раз входили в данную систему. Утилита utmp хранит данные о том кто, во сколько и на каком интерфейсе находится в системе, просматривается командой who, утилита wtmp хранит примерно теже данные плюс записи о выходе и последней выполненой команде. Попробуйте поиграть с командой last, она так же дает представление о том кто был в системе и чем занимался. Если скоомпилировать ядро с опцией SYSACCT, то при помощи команды lastcomm, вы сможите просматривать какие команды выполнялись за последнее время, кем и во сколько. Адреса хранящихся логов зависят от версии и производителя UNIX. Просмотр последних команд довольно полезная штука, так как сразу становится видно с какого хоста был произведена атака. Какая команда использовалась слишком часто и какие воздействия оказывала на другие. Например, для сбора сведений о том, какие хосты подключены по NFS и список всех директорий доступных по NFS можно применять команду showmount с различными параметрами (-a, -d). Команда find, может служить одинаков как взломщику, так и администартору в поисках причин взлома. Взломщик попросту может искать интересующие его файлы, администратор последние изменения в файлах или директориях. Например, чтобы найти Setuid или Setgid программы, можно применить следующую команду: find / -type f -a ( -perm -4000 -o -perm -2000 ) -print после чего лечим возможную уязвимость командой: chmod u-s <файл>. Рекомендуется поискать файлы доступные для записи, так как взломщик может их модифицировать и получить при случаи желаемый результат (обычно доступ 0): find / -perm -2 -print После нахождения, соответственно меняет права файлов командой chmod. Хорошо бы найти файлы, у которых отсутствует владелец: find / -nouser -print или find / -nouser -o -nogroup -print Для смены владельца и группы используем команды chown, chgrp, если возникают вопросы по поводу их использования обращаемся за помощью man <команда>. Как я описывал выше, файл .rhosts следует проверять, давайте этим и займемся: find /home -name .rhosts -print Таким образом, мы выявим существующие файлы .rhosts и произведем соответствующие действия. Создайте себе скрипт, который будет каждые 24 часа сохранять все изменения в определенной директории, например в etc: ls -aslgR /etc > log.01.02.00 После чего, сравнив отличия в датах последних изменений, вы сразу будите знать, что кто-то порылся в ваших файлых. Хотя бы, для того чтобы отлавливать элементарные backdoor'ы. Для сравнение используйте команду diff файл1 файл2. Давайте перейдем к темной стороне безопасности UNIX систем. Я не имею ввиду описание взлома, но хочу показать, как это может происходить с точки зрения взломщика. Первичной и основной задачей взломщика является сбор информации о той удаленной системе, к которой он хочет получить доступ. Здесь годится все. Очень важно знать какая операционная система стоит на удаленной машине, здесь можно применять как личный опыт, используя для анализа ответы, приходящие с УМ (уделенной машины). Например, ставим sniffer на свой интерфейс и пытаемся попинговать УМ. После чего внимательно разбираем параметры пришедшых пакетов и промежутки, с которыми они приходят. Рекомендуется проделать эту процедуру на известных хостах, чтобы потом просто сопоставить полученные параметры с уже известными и выявить к какому симеству OS относится УМ. Узнать по больше об этой технологии на русском языке можно на сайте void.ru. Если кто надеется определить УМ по банерам выскакивающим на ftp или telnet, то спешу сообщить, что туда можно написать все, что душе угодно. Более менее надежной альтернативой может являтся наличие тех или иных сервисов на удаленной машине. Например, порты 1,3,10,21,22,23,25,53,79,80,110,119,135,139,443,553,1080,6667 и так далее. Самом же деле, наиболее вероятной системой будет та, в которой совпадут, параметры пакетов, банеры и соотвествующие порты. В случае возникновении явных не соответствий, таких как параметры пакетов обычно присутствующие в UNIX системах, но с портовой схемой Windows NT, то вас явно хотят ввести в заблуждение. Но запудрить голову грамотному взломщику очень сложно, так как администратору придется настраивать или коомпилиривать свои сервисы в духе той схемы, в которую ему хочется, чтобы взломщик поверил. Это довольно утомительная процедура при условии, что на руках будут иметься открытые коды. И так, взломщик получил начальную информацию об удаленной системе: OS: UNIX (maybe FreeBSD) PORTS: 21,22,23,25,53,79,80,110,119.... IPver: maybe older then 6.0 Banner info: Telnet saying(FreeBSD v3.0), FTP saying(WU-FTP 2.5), ... Не стану описывать все банеры, так как это будет сделано по ходу дальнейших объяснений. Исходя из того, какой OS окажется УМ, выбирается дальнейшая тактика взлома. Кстати, сказать, сканирование обычно производится либо с shell, либо со специально предназначеных для этого страничек с применением cgi скриптов. Просмотр банеров можно так же организовать при помощи cgi скриптов, но проще всего это сделать через shell. В интернете много и того и другого, в том числе и сервисов бесплатно предоставлющих услуги nmap. Зачем выдавать себя... Для профессионала это не приемлимо. Зная порты, взломщик пытается вяснить, какие именно версии сервисов установленны на этих портах. Сначала взломщик следует по наиболее меньшему пути сопротивления, проверяя наиболее часто уязвимые сервисы, такие как ftp и www. Www сервер проверяется на известные уязвимости, разумной проверкой будет являтся та, которая нацелена конкретно на данную систему и версию сервиса, тоесть глупо проверить Apache на уязвимости для IIS. Взломщик проверит сначала заголов www сервера, после чего возмет приготовленный для этой системы список узявимостей и незамедлительно их проверит. Разумеется все это будет произведено как минимум при помощи proxy сервера или через подставные ресурсы. Если найдена дырка в www интерфейсе, взломщик скорее не станет искать нечто большее, а постарается выжать максимум из уже найденой уязвимости. Если www сервер чист, приходит через ftp сервера. На сайтах посвященных безопасности ищутся описание к уже известным уязвимостям применимых к этому сервису. И опять выжимается масимум из найденного. Если тут его ждет разочарование, он может попытаться проверить систему на стандартные пользовательские счета случайно забытые администратором. Так жде может попытаться зарегистрироваться как рядовой пользователь ресурса и продолжить исследование с позиции рядового пользователя, к которому система будет более дружелюбна. Разумеется квалифицированный взломщик будет пытаться найти новые до сих пор никому ниизвестные уязвимости. Но дело в том, что это занимает, не мало времени, поэтому сначала он проверим, самые простые способы, постепенно опускаясь на все более низкоуровневый способ взлома удаленной системы. Довольно много зависит от того какую систему будет взламывать взломщик, так как от этого резко меняется тактика самого взлома. Самый простой пример этому это NT и UNIX, так как изучать исходные коды гораздо легче, чем работать в дебагере и отлавливать недочеты рабочего кода программы. Часто применяется тактика не взлома системы, а обход ее защиты. При этом вход идет проверка сервисов на команды встроенные по умолчанию и несущие полезную информацию для взломщика, проверка на наличие рабочих логинов, перенаправление сетевого трафика, взлом в соседних хостов для перехвата сетевого трафика. Не помню, кто сказал, но сказал правильно: "Защиту не взламывают, ее обходят". В самом деле, биться головой обстенку не стоит, если есть уйма различных приемов. Тупой перебор паролей приемлем только в случае полнейшей неудачи при взломе УМ. Список логинов по умолчание: ЛОГИН ПАРОЛЬ - root root sys sys / system / bin bin sys / bin mountfsys mountfsys adm adm uucp uucp nuucp anon anon anon user user games games install install demo demo umountfsys umountfsys sync sync admin admin guest guest daemon daemon guest guest Кстати, реальный тупой перебор почти никогда не применяется, всегда работают со словарем, так как это намного эффективнее особено в системах с больших количеством пользователей. Наивно пологать, что взломщик будет, заниматься сбором сведений об удаленной системе вручную, в интеренте сейчас довольно много подобных утилит и программ. Однако более менее профессиональных не так уж и много. Самым мощным средством исследование сетей под NT является Internet Security Scaner (www.iss.net) и Retina (www.eeye.com). Лично я считаю, что российский вариант Retina'ы SSS пока уступает ему по некоторым параметрам, которые я считаю важными. К мощным отладочным утилитам можно отнести программу OBServer (www.networkinstruments.com). К сожалению, я не сталкивался с firewall'ами настолько тесно, чтобы описать его работу и уязвимые места, поэтому, скорее всего это будет отдельная тема. Весь этот текст только каркас к будущим статьям. Проблеммы безопасности всегда будут возникать и будут востребованы. Документация на эту тему имеет тонкую грань между ограждением от ошибок и их использованием, поэтому я приведу примеры и рассказываю, а как применят этот текст, зависит только от человека. БОНУС! Обычное местонахождение файлов паролей в Unix системах: - AIX 3 /etc/security/passwd или /tcb/auth/files/<первый символ логина>/<логин> A/UX 3.0s /tcb/files/auth/?/* BSD4.3-Reno /etc/master.passwd ConvexOS 10 /etc/shadpw ConvexOS 11 /etc/shadow DG/UX /etc/tcb/aa/user/ EP/IX /etc/shadow HP-UX /.secure/etc/passwd IRIX 5 /etc/shadow Linux 1.1 /etc/shadow OSF/1 /etc/passwd[.dir|.pag] SCO Unix #.2.x /tcb/auth/files/<первый символ логина>/<логин> SunOS4.1+c2 /etc/security/passwd.adjunct SunOS 5.0 /etc/shadow System V Release 4.0 /etc/shadow System V Release 4.2 /etc/security/* database Ultrix 4 /etc/auth[.dir|.pag] UNICOS /etc/udb Применяемые стадртные СНИФЕЕРЫ в Unix системах:
HP/UX nettl (monitor) & nfswatch Irix nfswatch & Etherman SunOS etherfind & nfswatch Solaris snoop DOS ETHLOAD The Gobbler LanPatrol LanWatch Netmon Netwatch Netzhack Macintosh Etherpeek Очень хочется, чтобы данные материал пригодился кому-нибудь, чтобы народ полюбил Unix и научился грамотно в нем работать. Ведь открытые коды возможно и сложнее чем закрытая политика микрософт, но их приемущества никак нельза переоценить. По этому поводу много написано и сказано, желаю вам успешно поломать собственную систему, ибо нет ничего ползенее практики, закрепляющей практики! |
| |||
| |||
![]() | Различия между UNIX и Linux |
09-03-2010
|
История UNIX начинается в 1969 г. Большинство современных UNIX-систем являются коммерческими версиями исходных дистрибутивов UNIX. Solaris от Sun, HP-UX Hewlett-Packard... подробнее
|
![]() | Права доступа к файлам в Unix-системах |
21-02-2010
|
Многопользовательская система UNIX поддерживает механизм, известный, как система прав доступа к файлам. Этот механизм позволяет указать для каждого файла владельца и обеспечить защиту файлов от доступа других пользователей. UNIX позволяет также совместно использовать файлы нескольким пользователям и группам пользователей... подробнее
|
![]() | FreeBSD: максимальная безопасность |
16-04-2009
|
FreeBSD считается достаточно безопасной операционной системой. Поскольку ее исходные тексты распространяются бесплатно, операционная система постоянно проходит проверку... подробнее
|
![]() | Простейшие приемы и основы безопасности Unix систем - Часть 1 |
16-04-2009
|
Скорее всего, ничего приципиально нового я вам не расскажу, я лишь хочу красочно расписать старые приемы на новый лад. Знание этих основ поможет понять корни проблем происходящих в сегодняшней реалии... подробнее
|
![]() | Простейшие приемы и основы безопасности Unix систем - Часть 2 |
16-04-2009
|
Основной проблеммой для взломщика все является доступ к желаемой информации, скорее всего, этой информацией будет какой-нибудь файл, который его заинтересовал... подробнее
|
| |
| |
| |
| |
| |
| |
| |
| |
Популярные статьи
| |
|
|
WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects |
|