[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Операционные системы / Unix /

Простейшие приемы и основы безопасности 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 /

Различия между UNIX и Linux
09-03-2010   

История UNIX начинается в 1969 г. Большинство современных UNIX-систем являются коммерческими версиями исходных дистрибутивов UNIX. Solaris от Sun, HP-UX Hewlett-Packard... подробнее

Кол. просмотров: общее - 3337 сегодня - 3

Права доступа к файлам в Unix-системах
21-02-2010   

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

Кол. просмотров: общее - 2728 сегодня - 1

FreeBSD: максимальная безопасность
16-04-2009   

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

Кол. просмотров: общее - 3092 сегодня - 1

Простейшие приемы и основы безопасности Unix систем - Часть 1
16-04-2009   

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

Кол. просмотров: общее - 4716 сегодня - 2

Простейшие приемы и основы безопасности Unix систем - Часть 2
16-04-2009   

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

Кол. просмотров: общее - 3108 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects