Локальная и сетевая безопасность Linux

Содержание

 

 

Введедение………………………………………………………………………...3

Основные понятия компьютерной безопасности……………………………….5

Локальная и сетевая безопасность Linux………………………………………..9

Средства усиления безопасности в Linux……………………………………...17

Техника безопасности…………………………………………………………...19

Заключение……………………………………………………………………….20

Список использованной литературы и источников…………………………...21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

У различных категорий  людей слово «безопасность» вызывает свои ассоциации. Имеется множество разновидностей этого термина, которые связаны с различными сферами деятельности человека. Например, государственная безопасность или безопасность жизнедеятельности, политическая или строительная безопасность. Вообще таких разновидностей большое количество, в каждом случае к этому термину предъявляются специфические для конкретного рода деятельности требования, отличные от всех остальных. Обобщенное же определение термина «безопасность» можно сформулировать так: Безопасность – это набор средств и требований, направленных на предотвращение запрещенных действий, выполнение которых может привести к нежелательным последствиям.

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Основные понятия  компьютерной безопасности 

 

Термин «информационная  безопасность» появился сравнительно недавно, с развитием вычислительной техники и ЭВМ. Информационная безопасность включает в себя кроме  безопасности используемого программного обеспечения, также безопасность аппаратных средств, безопасность каналов связи и многое другое.

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

Если есть запрет, появится и человек, который попытается его нарушить.С развитием информационных технологий и внедрением компьютера практически во все сферы деятельности появились люди, так называемые «кракеры» (от англ. cracker – «взломщик компьютерных сетей и программ»), которые различными ухищрениями и нестандартными методами пытаются с целью собственной выгоды получить несанкционированный доступ к информации, которая для них не предназначена. Порой это приводит к плачевным  последствиям для владельца этой информации. Тогда и возникла потребность в борьбе с «информационными вредителями». Были разработаны целые комплексы программ для усиления информационной безопасности и борьбы с кракерами. А поскольку любым электронно-вычислительным комплексом управляет определенная операционная система, то, соответственно, для обеспечения безопасности системы в целом необходимо позаботиться о безопасности самой операционной системе.

Каждый производитель  по-своему взглянул на безопасность своей операционной системы. В итоге одни системы оказались достаточно защищенными, защиту других обойти было не просто, а третьи оказались практически беззащитными перед взломщиками. Степень защищенности ОС Linux – еще одной UNIX-подобной ОС реального времени, рассмотрим в этой работе.

Изучая безопасность ОС, нельзя не коснуться теории компьютерной безопасности. Теория компьютерной безопасности оперирует тремя основными понятиями: угроза, уязвимость  и атака.

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

- Уязвимость компьютерной системы – это такая неудачная или не совсем корректная ее характеристика, которая представляет возможным возникновение угрозы. Уязвимости как раз и являются причиной возникновения неприятных ситуаций.

К уязвимостям можно  отнести следующие состояния  информационных систем:

1. Несовершенство используемого  программного обеспечения

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

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

2. Неправильная настройка  программного обеспечения

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

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

Существуют три основных вида угроз:

- Угрозы раскрытия

- Угрозы целостности

- Угрозы отказа в обслуживании

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Локальная и  сетевая безопасность Linux

 

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

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

Локальная безопасность – это правила, меры и усилия, направленные на защиту системы изнутри, от локальных пользователей.

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

Зачем же необходимо обезопасить  систему от локальных пользователей?

Для ответа на этот вопрос сначала рассмотрим, что представляется возможным пользователю, который имеет доступ в систему. 

- После входа в систему пользователю  выделяется определенная часть  машинных ресурсов (дискового пространства, оперативной памяти, процессорного времени и так далее). Хорошо, если ОС изначально настроена на правильное разделение ресурсов. А если нет? Достаточно одному пользователю запустить пару-тройку «тяжелых» программ, как время ожидания для других программ даже на мощной машине может выйти за грань допустимого. 

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

- «Гуляя» по дереву каталогов  на жестком диске, пользователь  может попасть в ту часть, в которой ему быть не положено (например, в каталог, где хранятся файлы других пользователей). Личные файлы каждого пользователя должны быть доступны ему и только ему, если, конечно, он сам не решит иначе.

Перечисленные примеры  – это лишь малая часть. Иногда, даже сам этого не осознавая, неопытный пользователь может представлять потенциальную угрозу, если ему предоставить неограниченные права. К тому же сама порядочность пользователя – это роскошь, которую в современном мире может себе позволить не каждый.  Рассмотрим, какие же средства предоставляет система Linux для обеспечения локальной безопасности.

Пользователи  и пароли

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

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

Все имена пользователей Linux и соответствующие им идентификаторы хранятся в специальном файле passwd. Этот файл располагается в каталоге etc, который, в свою очередь, находится  в корневом каталоге системы. Файл имеет обычную текстовую форму.                             

Пример файла пользовательских имен passwd:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

Каждая запись в этом файле разделена двоеточиями  на 7 частей:

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

2. Поле пароля. Это поле в ранних  версиях Linux содержало зашифрованный пароль, а теперь, когда была введена технология теневых паролей, в этом поле просто ставится x. Практического применения это поле не имеет.

3. Идентификатор пользователя (UID). В системе Linux каждый пользователь  имеет уникальный идентификационный номер, который однозначно определяет его в системе. Этот номер используется в различных целях, например, при установке прав доступа на файлы. Права доступа будут рассмотрены в следующем разделе.

4. Идентификатор группы, к которой  принадлежит этот пользователь (GID). Концепция групп будет рассмотрена в следующих разделах.

5. Поле комментария. В этом  поле может храниться любая  дополнительная информация о  пользователе, например, его полное  имя.

6. Полный путь к домашнему  каталогу пользователя. В ОС Linux для  каждого пользователя создается его домашний каталог, в котором он может хранить свои документы. Обычно эти каталоги располагаются в директории /home корневого каталога и по умолчанию имеют имена владельцев.

7. Путь к командной оболочке. Последнее поле содержит полный путь к рабочей оболочке пользователя (по умолчанию такой оболочкой является bash).

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

Особенности файловой системы Linux

 

Для организации и  постоянного хранения информации на различных ее носителях ОС использует так называемую файловую систему.Файловая система – это методы и структуры данных, которые используются ОС для хранения файлов на диске или в его разделе.

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

В настоящее время  во всех дистрибутивах ОС Linux для хранения информации активно используется файловая система ext2 (The Second Extended File System). Ext2 является файловой системой с богатыми функциональными возможностями, а тот факт, что ext2 была разработана специально для Linux, уже говорит о необходимости присутствия в ней средств контроля и безопасности.

Основные характеристики файловой системы ext2: максимальный объем файловой системы – 4 Тбайт; максимальная длина файла – 2 Гбайт; максимальная длина имени файла – 255 символов; присутствует поддержка трех ячеек времени изменения файла; также имеется возможность расширения файловой системы; присутствуют механизмы защиты информации и возможность изменять размер блока.

Права доступа

 

 

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

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

Для различных типов  файлов значения прав доступа немного  отличаются.

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

- Право на запись файла позволяет пользователю изменять его содержимое. Для каталога - создавать файлы внутри каталога.

- Право на выполнение для файла позволяет запускать файл на выполнение в качестве программы. Для каталога установка этого права дает возможность пользователю входить в каталог и просматривать его содержимое.

Брандмауэр

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

Брандмауэр, он же сетевой экран, он же firewall (с англ. «огненная стена») - это система или группа систем, реализующих правила управления доступом между двумя сетями. Фактические средства, с помощью которых это достигается, весьма различны, но в принципе брандмауэр можно рассматривать как пару механизмов: один для блокирования передачи информации, а другой – для пропуска информации. Некоторые брандмауэры уделяют больше внимания блокировке передачи информации, другие – ее пропуску. Некоторые брандмауэры пропускают только сообщения электронной почты, тем самым защищая сеть от любых атак, кроме атак на почтовую службу. Другие брандмауэры обеспечивают менее строгую защиту и блокируют лишь службы, определенно угрожающие безопасности. Обычно брандмауэры конфигурируются для защиты от неавторизованной интерактивной регистрации из внешнего мира. Именно это, больше, чем все остальное, помогает предотвратить проникновение взломщиков в компьютеры внутренней сети. Более развитые брандмауэры блокируют передачу информации извне в защищаемую сеть, разрешая при этом внутренним пользователям свободно взаимодействовать с внешним миром. 

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

Атрибуты  файлов

 

 

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

Начиная с версии ядра 1.1, в файловой системе Linux помимо прав доступа присутствует поддержка  расширенных атрибутов файлов. В  последних версиях ядра 2.4 присутствует поддержка следующих атрибутов:

- Atime (A). Каждый раз, когда система обращается к файлу, происходит изменение ячейки времени последнего обращения к файлу. Установка атрибута atime позволяет избежать обновления времени последнего обращения и увеличить производительность файловой системы, особенно в тех случаях, когда обращения к файлам происходят очень часто. Однако, отсутствие времени последней модификации файла представляет угрозу изменения файла без последующей регистрации этого действия, что может угрожать безопасности.

- Sync (S). Установка атрибута sync позволяет сразу фиксировать все изменения, происходящие с файлом, на жестком диске синхронно с процессом, который осуществляет эти изменения. Это обеспечивает более безопасную работу, но может также снизить производительность из-за прямой постоянной записи на диск.

- Append (a). Этот атрибут позволяет открывать файл только с целью его дополнения. Усечение или перезапись файла запрещается. Для каталога установка этого атрибута означает, что удалять файлы, содержащиеся в этом каталоге, запрещено, хотя создание новых и модификация существующих возможны. 
- No Dump (d). Установка атрибута no dump дает указание процессу, осуществляющему создание дампа, игнорировать этот файл и не включать его в создание резервной копии.

- Compress (c). Этот атрибут позволяет производить прозрачное сжатие файлов перед записью их на диск. При доступе к файлу он декомпрессируется и конечному процессу представляется уже в нормальном виде.

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

 

 

 

 

Средства усиления безопасности в Linux

 

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

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

Linux ACLs использует расширенные  атрибуты для хранения данных  о правах доступа к файлам  пользователей и групп. Список  расширенного контроля доступа  существует для каждого файла  в системе и состоит из шести  компонентов. Первые три являются  копией стандартных прав доступа к файлу.

- LIDS. Система обнаружения и защиты от вторжения. Эта система представляет собой дополнение к ядру операционной системы Linux, добавляющее дополнительные возможности для увеличения безопасности операционной системы. LIDS позволяет запретить или ограничить доступ к файлам, памяти, устройствам, сетевым интерфейсам и запущенным приложениям привилегированному пользователю, что дает возможность надежно оградить даже взломанную операционную систему от дальнейшего вмешательства.

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

- AIDE. Расширенное окружение  обнаружения вторжений. Основное назначение программного продукта AIDE – обнаружения изменения файлов, их атрибутов, прав доступа, пользователей владельцев, размера, количества ссылок на файл и других параметров, которые присущи файлу в Linux.

Программный пакет AIDE создает  базу данных всех файлов, перечисленных в основном конфигурационном файле программы aide.conf. В базу помимо стандартных атрибутов файла записывается также криптографическая контрольная сумма или хэш каждого файла, вычисленных с использованием одного или комбинации следующих алгоритмов шифрования: SHA1, MD5, RMD160, TIGER.

Локальная и сетевая безопасность Linux