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



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







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


ASP






XML



CSS

SSI





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











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








   Базы Данных









   Графика






Данные




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

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

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

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

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

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

В больших системах, например, таких как mail.ru, огромное количество пользователей, чтобы проследить за их счета требуется колосалное количество часов и мощная техника. Поэтому пароли в таких системах могут не меняться в течении нескольких лет. Пароли могут быть либо очень сложные и не меняться достаточно долго либо часто, но на очень простые, что-то вроде: hi, love, 123, 11, qaz, qwerty.

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

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

Имея такие счета, гораздо проще взломать систему, зная ее возможности, настройки и многое другое. Если перехваченный счет окажется с доступом к шеллу, то взломщик рано или поздно получит желаемый доступ. Нет не сниффер, не кейлогер, и эксплоиты тут даже не нужны. =) О, том как это сделать я раскажу ниже. Еще раз напоминаю, какой пароль, является относительно стойким:

Используйте верхний и нижний регистры.

Используйте спец сиволы и цифры.

В пароль должен состоять из двух слов.

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

Пример: $gHj!5Iе%

ПОМНИТЕ, ЧТО НИКОГДА НЕЛЬЗЯ:

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

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

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

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

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

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

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

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

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

groupname:password:groupid:user1,user2,user3

groupname - имя которые назначается группе. Имя группы может быть одним из логинов членов этой же группы и составляет обычно масимум 8 символов. Пароль чаще всего не указывается, вместо него ставится звездочка, но вы в праве установаить и его. groupid - идентификатор группы это номер от 0 до 65535, вы в праве указать лшюбой не занятый номер по возрастанию. Последнее поле это список пользователей, которые будут входить в эту группу.

gin:*:acid,ozzman,z00m,satan,dark,flip,r00t,mam0nt

p.s. сорри, если кого пропустил=)))

Взломщик внимательно смотрит на то, какие пользователи относятся к той или иной группе, это не спроста. Малейшая не точность в назначении прав, могут обернуться крахом для этой группы. Цель группы это общие файлы, давайте посмотрим, как это происходит. К примеру, мы хотим дать доступ к новых утилитам пользователям в группе gin:

chgrp gin ~gin/utils
chmod -R g+rw ~gin/utils

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

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

Как вы понимаете, для взломщика это наиболее лакомый кусочек, так как, получив доступ к такой машине, в сущности, он получает доступ ко многим другим машина, плюс распознать такие машины совсем не сложно. Однако при разумном использовании, YP довольно безопасен. Однако всегда есть пути обхода, если, к примеру "случайно" удалить плюсик в начале строки файла с паролями, мы получим "::0:0:::" вместо "+::0:0:::". Это означает, что в системе появится учетная запись нулевой длины, нулевым номером и нулевых уровнем доступа, а именно супер-пользовательский счет.

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

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

Широко известны технологии, которые используют уязвимости DNS серверов и не совершенность IP протокола версии ниже 6.0, трюки с пакетами реальность. Загляните в /etc/hosts.equiv, именно в этом файле хранятся сведения о доверенных хостах. Пользователь, зашедший с доверительной машины и оказавшийся в списках пользователей споконой войдет безо всякой авторизации. Если практиковать доверя совместно с YP, то это потенциальная дыра, поскольку включает в себя все недостатки YP плюс вольности доверия, которые в плохих руках могут сослужить плохую службу.

Прейдем же к ближе пользователю. Файл .rhosts схож с hosts.equiv, но в отличае от последнего имеет более надежный доступ. Каждый пользователь может создать .rhosts файл в его личной директории и разрешить кому-либо доступ к своему счету без учета пароля. Это может применяться пользователем, чтобы иметь быстрый доступ со своего хоста на другие хосты, принадлежащие ему же. Файл .rhosts представляет еще большую проблемму с точки зрения безопасности, так как администратор часто не лезет в "частную" жизнь пользователя и не контролирует эти файлы.

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

Все очень просто, супер-пользователь или же какой-нибудь другой пользователь не может войти с терминала, который считается не безопасным, тоесть открытым и доступным буплично. Однако это лечится командой 'su', так как это просто необходимо для администрирования удаленных систем. Например, в SunOS, таблица терминалов хранится в файле /etc/ttytab, пример содержимого:

 console  "/usr/etc/getty std.9600"  sun      off secure
 ttya     "/usr/etc/getty std.9600"  unknown  off secure
 ttyb     "/usr/etc/getty std.9600"  unknown  off secure
 ttyp0    none                       network  off secure

Слово secure в конце каждой строки, говорит о том, что данный терминал можно считать безопасным, тоесть войти под рутом можно будет, только используя команду 'su'. Никогда не позволяйте вашей UNIX системе считать псевдо терминалы безопасными, тоесть такие к котрым можно получить доступ удаленно, например через модем ttyS0,ttyS1,ttyS2 и так далее.

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

NFS - Сетевая Файловая Система, разработана для получения доступа к общим файловым ресурсам через сеть. Очень частым приминение NFS становится на бездисковых рабочих станциях. Файл экспорта /etc/exports, один из важных частей конфигурации NFS, этот файл содержит список файловых систем, которые могут быть экспортированы в другие системы:

/usr
/home
/var/spool/mail
/export/root/client1    -access=client1,root=client1
/export/swap/client1    -access=client1,root=client1

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

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

/usr -access=gin:damn:ucl

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

Например, дописав /etc -access=cracker,root=cracker, затем легонько набрав exportfs -a, получит желаемый результат. Так как количество доверенных хостов ограничено, можно применять файл /etc/netgroup, в котором описываются группы доверительных хостов:

GIN (secure,acid,f2s.com) (StaticIP,mam0nt,cityline.ru) (shellz,ozzman,zone.ru)

Теперь usr, можно переписать так: /usr -access=GIN.

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

Затронем тему ftp. Начнем с анонимных ftp. Лучше всего не держать у себя на узле анонимные ftp сервера, так как они косвенно позволяют узнать о том какая именно OS у вас стоит, какая версия ftp демона, кроме всего необходимо следить за обновлениями и просматривать логи.

Если вам все-таки приспичило завести у себя анонимный ftp, без особых на то причин не давайте доступ для записи. Это влечет за собой еще большую ответственность и угрозу, кто может знать, что туда могут записать. Трояны, вирусы, черви, руткит, замаскировать все это можно под нечаенно оказавшийся в директории public файл ls. Достаточно руту запустить такой "обработанный" файл и вся защита системы под угрозой. За появлением системных файлов в непонятных местах нужно пристально следить, а лучше включить автоматическую проверку.

Интересной программой является TFTP - Trivial File Transfer Protocol, позволяет бездисковым станциям загружаться непосредственно из сети. TFTP является упрощенной версией FTP и работает по протоколу UDP вместе TCP у FTP, из-за этого tftp имеют более количество дыр и уязвимостей. Так как сам по себе протокол UDP не является надежным. Рекомендуется отключить этот сервис, если вы им не пользуетесь.

Электронная почта самый поулярный сервис в интернете им пользуются чаще всего, поэтому следует удилить особое внимание sendmail'y. Следует придержиться нескольких основных правил при его конфигурировании:

1. Удалить алиас 'decode' из ващего файла псевдонимов (/etc/aliases или /usr/lib/aliases).

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

3. Убедитесь что пароль 'wizard' отключен в файле конфигурации sendmail.cf.

4. Убедитесь, что ваш sendmail не поддерживает команду debug.

5. Убедитесь, что ваш sendmail не поддерживает команду verfy.




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Операционные системы / Unix /

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Популярные статьи



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