Уязвимые службы и протоколы

Уязвимые службы и протоколы

Операционные системы » Linux » Уязвимые службы и протоколы

В данной главе рассматриваются следующие вопросы:

  • что такое сетевые службы;
  • уязвимые места сетевых служб;
  • что такое серверные приложения.

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

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

СОВЕТ.Нарушить систему защиты через сеть можно только через доступные службы. Службы, которые не функционируют в системе, не могут быть использованы для взлома. Если вы видите, что в вашей системе работает некоторая служба и вы не можете сказать, зачем она нужна, отключите ее или сделайте доступной только для локального сетевого узла localhost (более подробно об этом рассказывается в главе 16). Этим вы существенно снизите риск.

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

FTP, порты 21 и 20

Протокол FTP (File Transfer Protocol) используется для обмена файлами между двумя компьютерами. Сервер FTP не обязательно постоянно находится в активном состоянии. Ожидание поступления запроса через TCP-порт с номером 21 осуществляется демоном inetd, и серверное приложение FTP запускается тогда, когда в этом возникает необходимость (то есть когда к системе пытается подключиться клиент FTP). Если вы используете tcpd, выполняются действия, связанные с tcpd, и если клиент не блокируется, он будет подключен к серверу FTP и ему будет передано приглашение на вход в систему.

Часто когда говорят об FTP, имеют в виду клиентское или серверное приложение, обеспечивающее выполнение связанных с FTP функций на одной или на другой стороне. Но на самом деле FTP - это протокол. Следует отметить, что любое серверное приложение, будь то ftp, telnet и т. п., использует свой собственный протокол обмена данными.

ПРИМЕЧАНИЕ.Протокол - это набор правил, определяющих, каким именно способом осуществляется обмен данными между двумя системами (протокол означает правила). Таким образом, каждая отдельная служба обладает своим собственным коммуникационным протоколом.

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

1. Клиент пересылает запрос на подключение, направленный на порт 21 сервера.

2. Выполняется последовательность действий SYN-ACK, и (если вы используете tcpd) демон tcpd осуществляет возложенные на него функции.

3. Если запрос на подключение не отвергается демоном tcpd, для ответа на этот запрос, поступивший через порт 21, запускается сервер FTP.

4. Клиент и сервер обмениваются информацией и начинают сеанс связи.

Активный сеанс FTP (называемый "активным" только для того, чтобы отличить его от "пассивного" сеанса) предусматривает использование порта 21 (с последующим переключением на случайно выбранный порт с номером большим 1024 для продолжения соединения) для пересылки между клиентом и сервером данных, связанных с подключением, а также команд. Но как только клиент отправляет серверу запрос на получение информации (перечень файлов в каталоге или содержимое некоторого файла), открывается еще один канал. Для этой цели используется порт данных FTP (ftp-data) - порт с номером 20. Сервер подключается к клиенту через порт 20 (соединение продолжается через случайно выбранный порт с номером большим 1024) и приступает к пересылке клиенту запрошенных им данных. Состояние передачи пересылается через порт 21.

Связывание с портом

В этой и во многих других книгах, посвященных функционированию сетей, часто употребляется выражение: "служба связана с портом" (service binds a port). Это означает, что программа, осуществляющая обслуживание запросов, создает соединение с этим портом. Для этой цели создается сокет, и программа ожидает поступления через этот сокет данных из сети. Для каждого порта в системе может быть создан только один сокет. Таким образом, две разных программы (или два экземпляра одной и той же программы) не могут быть связаны с одним и тем же портом. Однако одна программа может обслуживать одновременно несколько подключений к одному и тому же сокету. Для этого создаются дочерние процессы, каждому из которых передается очередное соединение. Таким образом, с портом связан только один процесс, который является родительским, а дочерние процессы занимаются обслуживанием запросов. Некоторые из служб связываются одновременно с несколькими портами (например Apache).

Если вы пытаетесь запустить еще один экземпляр уже работающей программы или другую программу, которая связывается с некоторым портом, с которым уже работает одно из функционирующих в системе приложений, система выведет сообщение об ошибке, извещающее вас о том, что порт уже связан. Один и тот же порт можно связать для передачи данных по протоколу TCP, равно как и по протоколу UDP в одно и то же время. Как правило, связывание портов выполняется для того, чтобы обеспечить доступ клиентов к работающим на сервере службам, однако некоторые порты связываются злоумышленниками как метки, указывающие на то, что система взломана. Полный перечень портов, используемых программами типа "троянский конь", а также портов-меток содержится на web-странице http://www.simovits.com/nyheter9902.html.

Прочитав описание работы FTP, многие читатели, должно быть, скажут: "Ах вот почему при использовании клиента ftp напрямую у меня возникают проблемы и для скачивания файлов по протоколу FTP я вынужден использовать Netscape". Очень многие брандмауэры, и в особенности программное обеспечение, выполняющее маскировку адресного пространства IP (например, система Network Address Translation, NAT), разрешают устанавливать исходящие соединения через порты с номерами меньшими 1024, однако при этом запрещают устанавливать входящие соединения через эти порты. Что же происходит? Находясь под защитой брандмауэра (или в сети, использующей NAT), вы отправляете внешнему серверу FTP запрос на получение некоторого файла. Запрос является исходящим и направлен в порт 21 сервера, поэтому он беспрепятственно проходит через брандмауэр. После этого ваша система (клиент ftp) начинает ждать входящего соединения через порт 20. Сервер FTP пытается вступить с вами в контакт через порт 20, однако брандмауэр блокирует это соединение (оно является входящим и направлено в один из привилегированных портов). Если же вы работаете в сети NAT, то внешний сервер FTP просто не знает вашего внутреннего IP-адреса и поэтому отправляет запрос на подключение через порт 20 вашему брандмауэру NAT. А брандмауэр NAT просто не знает, кому на самом деле адресован этот запрос. Известно только, что сам брандмауэр не запрашивал соединения, и поэтому поступающие пакеты отбрасываются.

ССЫЛКА.Более подробное обсуждение брандмауэров и маскировки IP содержится в главах 16 и 18 соответственно.

Для передачи файлов по протоколу FTP браузер Netscape использует режим передачи, называемый пассивным. При этом, вместо того чтобы открыть дополнительный канал связи с клиентом, сервер пассивно ожидает, пока клиент (в нашем случае Netscape) начнет получать данные через порт 21. Этого же самого можно достичь, воспользовавшись входящей в комплект OpenLinux программой под названием pftp (passive ftp - пассивный ftp). Некоторые клиенты FTP поддерживают пассивный режим работы, который инициируется специальной командой.

Чтобы вы могли лучше представить себе этот процесс, воспользуемся клиентом telnet для подключения к серверу ftp и выполнения нескольких команд. По умолчанию клиент telnet использует порт 23, однако его можно настроить на подключение к порту 21 сервера. Взгляните на листинг 12.1, вы можете попробовать сделать то же самое самостоятельно.

Листинг 12.1. Соединение с сервером FTP при помощи клиента telnet

[david@volcan david]$ telnet chiriqui 21

Trying 192.168.0.2...

Connected to chiriqui.pananix.com.

Escape character is '^]'.

220 chiriqui.pananix.com FTP server (Version wu-2.5.0(1) Tue Jul 27 18:42:33 MDT 1999) ready.

user david

331 Password required for david.

pass mypasswd

230 User david logged in.

help

214-The following commands are recognized (* =>'s unimplemented).

USER PORT STOR MSAM* RNTO NLST MKD CDUP

PASS PASV APPE MRSQ* ABOR SITE XMKD XCUP

ACCT* TYPE MLFL* MRCP* DELE SYST RMD STOU

SMNT* STRU MAIL* ALLO CWD STAT XRMD SIZE

REIN* MODE MSND* REST XCWD HELP PWD MDTM

QUIT RETR MSOM* RNFR LIST NOOP XPWD

214 Direct comments to root@localhost.

pasv

227 Entering Passive Mode (192,168,0,2,214,43)

stat

211-chiriqui.pananix.com FTP server status:

Version wu-2.5.0(1) Tue Jul 27 18:42:33 MDT 1999

Connected to volcan.pananix.com (192.168.0.1)

Logged in as david

TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: Stream

in Passive mode (192,168,0,2,214,43)

0 data bytes received in 0 files

0 data bytes transmitted in 0 files

0 data bytes total in 0 files

45 traffic bytes received in 0 transfers

1113 traffic bytes transmitted in 0 transfers

1208 traffic bytes total in 0 transfers

211 End of status

quit

221-You have transferred 0 bytes in 0 files.

221-Total traffic for this session was 1319 bytes in 0 transfers.

221-Thank you for using the FTP service on chiriqui.pananix.com.

221 Goodbye.

Connection closed by foreign host.

Проанализировав данное соединение, вы можете обнаружить, что в его рамках происходит множество интересных вещей. В первой строке инициируется сеанс telnet, однако вместо порта по умолчанию 23 используется порт 21. В самом начале соединения сервер сообщает клиенту некоторую информацию о себе самом. Благодаря этому вы можете получить информацию о типе сервера и номере версии, которая используется на удаленной системе. В нашем случае на удаленном узле с именем chiriqui используется разработанный в университете Вашингтона (Washington University) сервер wu-ftp версии 2.5.0(1), сборка которого была выполнена вечером 27 июля 1999 года в шесть часов сорок две минуты. Эта информация является чрезвычайно важной. Некоторые версии сервера wu-ftp содержат в себе ошибки, о которых давно известно множеству людей. В более поздних версиях этого сервера все эти ошибки устранены, однако если вы не выполнили своевременного обновления вашего сервера, злоумышленник может воспользоваться одной из этих ошибок и тем или иным образом взломать систему. Если вы поищете соответствующую информацию на разнообразных хакерских сайтах, вы сможете быстро узнать подробнее о данной версии сервера и ее уязвимых местах. Зачастую на подобных сайтах можно обнаружить даже программы, которые позволяют взломать систему, используя для этого описанные уязвимые места.

В следующих нескольких строках упоминается пользователь david. Как правило, клиент ftp просит вас ввести имя пользователя во время процесса подключения. Так как для подключения к FTP-серверу вы используете клиента telnet, а не ftp, вы должны самостоятельно передать серверу регистрационное имя. Далее следует напоминание о том, что вы должны ввести пароль. На следующей строке "pass mypasswd" этот пароль вводится и передается серверу. Обратите внимание, что пароль отображается на экране в том виде, в каком он показан в листинге, то есть в виде обычного текста. В отличие от telnet, клиент ftp блокирует отображение пароля. Для этой цели код клиента выполняет системный вызов, отключающий отображение символов на экране (как будто выполняется команда stty -echo). После того как пользователь введет пароль и нажмет на Enter, пароль пересылается серверу, и выполняется системный вызов, аналогичный команде stty echo, который вновь включает отображение информации на экране.

Текст, приведенный в листинге, в точности соответствует той информации, которая передается через сетевой кабель в процессе обмена данными. Команды, которые вы набираете на клавиатуре, и текст, возвращаемый сервером, передаются через сеть именно так, как это показано в листинге. Иными словами, если во время сеанса FTP вы запустите утилиту tcpdump, вы сможете обнаружить среди сетевого трафика в точности этот же текст. Легко себе представить, насколько уязвима ваша система перед злоумышленником, который запустит утилиту tcpdump внутри вашей сети. Благодаря этому он получит возможность прочитать пароль доступа к FTP-серверу. На самом деле, если маршрутизатор, при помощи которого ваша сеть соединяется с другими сетями, пропускает внутрь вашей сети пакеты из других сетей (такие пакеты, которые на самом деле не предназначены для компьютеров вашей сети), используя tcpdump, вы сможете наблюдать, как через локальный для вас сегмент сети передается достаточно большое количество пар "имя_пользователя/пароль".

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

ПРИМЕЧАНИЕ. Если вы используете клиент telnet для подключения к серверу, не являющемуся сервером telnet, и при этом обнаруживаете, что вы не знаете что делать дальше - приглашение на ввод команды не появляется, - нажмите комбинацию клавиш Ctrl+] (как рекомендует подсказка "Escape charaster is '^]'"). При этом вы получите доступ к приглашению telnet, в котором можете набрать quit для того, чтобы завершить рабочий сеанс.

По умолчанию анонимный доступ к FTP-серверу обеспечивается в случае, если для подключения используется имя пользователя anonymous или ftp. Пользователь anonymous - это синоним ftp. Если клиент получил возможность анонимного доступа, система делает для него корнем файловой системы домашний каталог ftp. Таким образом, пользователь как бы попадает в тюрьму. Иными словами, он не может перемещаться в какие-либо другие каталоги, отличающиеся от домашнего каталога ftp. Вся система для него выглядит как домашний каталог ftp. Пользователь не может переместиться выше по иерархии каталогов файловой системы. Символические ссылки, указывающие в другие части системы, не работают. Однако для того, чтобы обеспечить корректную работу, данная "тюрьма" должна обладать всем тем, чем обладает корень системы (более подробно об этом рассказывается в главе 14). Такая тюрьма обозначается английским термином change root jail (тюрьма с измененным корнем). Некоторые службы используют подобную тюрьму для того, чтобы ограничить возможности подключающихся к ним клиентов и уменьшить повреждения, которые могут быть нанесены взломщиком.

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

Чтобы снизить риск взлома, необходимо проверить параметры, заданные с использованием файла /ect/pam.d/ftp. Содержимое файла /ect/pam.d/ftp, используемое в OpenLinux по умолчанию, показано в листинге 12.2.

Листинг 12.2. Содержимое файла /ect/pam.d/ftp по умолчанию

auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/

ftpusers onerr=succeed

auth required /lib/security/pam_pwdb.so shadow nullok

auth required /lib/security/pam_shells.so

account required /lib/security/pam_pwdb.so

session required /lib/security/pam_pwdb.so

Первая строка предписывает произвести поиск в файле /etc/ftpusers (на это указывает параметр file=/etc/ftpusers). Файл содержит имена пользователей (item=user), и этим пользователям запрещен доступ к системе (sense=deny). Если файл не существует или пользовательское имя в нем не указано, пользователь сможет получить доступ.

Вторая строка указывает на то, что требуется соответствие пары "имя_пользователя/пароль" (допускается использование пустых паролей - null). Третья строка проверяет, является ли командная оболочка пользователя одной из командных оболочек, перечисленных в файле /etc/shells. Последние две строки составлены так, как объяснено в главе 1.

telnet, порт 23

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

Однако насчет telnet не стоит заблуждаться - сервер telnet является наиболее опасным из всех запущенных в системе серверов. Протокол telnet - это широко открытый протокол в том смысле, что любой желающий может использовать его для доступа к системе. Поток данных, передаваемых telnet, прост и незашифрован. Сервер telnet опасен даже в случае, если вы используете его в частной сети. Гораздо более безопасным (и более гибким) является протокол удаленного входа в систему (remote login), на котором основана работа службы ssh (Secure Shell).

Если в вашей системе работает сервер telnet, я настойчиво рекомендую вам остановить его. Если вы желаете понять, кто пытается обнаружить в вашей системе открытые порты telnet (как правило, этим занимаются малоопытные взломщики и дилетанты), вы можете устроить ловушку. Откройте порт 23 с использованием оболочки TCP (о программах категории TCP Wrapper рассказывается в главе 15) и при этом запретите доступ к службе или используйте сетевой фильтр, который позволит вам следить за содержимым пакетов, но при этом отбрасывать их (см. главу 16). Выбор за вами. Как и во многих других системах, в Unix существует несколько способов решить какую-либо проблему. Вы должны подобрать такой, который лучше всего соответствует вашей политике.

СОВЕТ.Утилита dig не описывается в данной книге, однако эта утилита оказывается весьма полезной в случае, если вы хотите следить за IP-адресами, являющимися источниками сообщений. Отдайте команду dig -x <неизвестный_IP-арес> и вы можете узнать владельца этого IP-адреса. Обладая этими сведениями, вы можете составить жалобу, адресованную интернет-провайдеру или владельцу сети. В состав жалобы можно включить содержимое журналов. Возможно, это подействует. Если нет, то вы можете блокировать данный IP-адрес или соответствующую ему подсеть.

smtp, порт 25

В рамках Caldera OpenLinux по умолчанию устанавливается серверная программа sendmail - несомненный лидер в области серверных приложений электронной почты. Эта программа - чрезвычайно мощная и гибкая. Она может обслуживать одновременно сотни подключений, через которые осуществляются как прием, так и передача почты. Обсуждению корректной конфигурации этого приложения можно посвятить отдельную книгу. Конфигурация sendmail, используемая в Caldera OpenLinux по умолчанию, вполне подходит для большинства ситуаций. Для нормальной работы вам наверняка потребуется почтовый сервер, однако существует мнение, что другие серверы более безопасны и проще настраиваются. К таким серверам относится, например, qmail. Такие серверы не входят в состав Caldera OpenLinux, поэтому если вы заинтересованы в их использовании, вам потребуется выполнить поиск в Интернете.

ПРИМЕЧАНИЕ.Все почтовые программы делятся на три категории. К первой из них относятся серверы SMTP, которые используются для передачи почты между системами. Такие программы называют агентами передачи почты (Mail Transfer Agent, MTA). Ко второй категории относятся почтовые клиенты, которые осуществляют чтение и передачу почты MTA. Такие программы называются почтовыми пользовательскими агентами (Mail User Agent, MUA). Часто для обмена почты между MTA и MUA используются агенты локальной доставки почты (Mail Delivery Agent, MDA). К этой категории относятся такие программы, как procmail и т. п. Приложения MDA получают почту от sendmail и направляют ее в локальный почтовый ящик.

Сервер sendmail - это большая, мощная и популярная программа, поэтому за все время ее существования взломщики обнаружили множество способов ее взлома. К счастью, sendmail позволяет использовать некоторые приемы, повышающие защиту. Например, вы можете создать отдельный процесс для некоторых пользователей, которые, как правило, либо отправляют, либо принимают почту, чтобы ограничить объем повреждений в случае, если сообщение содержит исполняемый код (иначе говоря, "троянского коня" - подробнее о "троянских конях" рассказывается в главе 14).

Многие участники электронных дискуссий в Usenet рекомендуют заменить sendmail другой аналогичной программой. В данной книге я не рекомендую вам делать этого. Несмотря на мощь и сложность, программу sendmail вполне можно использовать с соблюдением должного уровня безопасности. В листинге 12.3 показан протокол почтового соединения.

Листинг 12.3. Почтовое соединение

[david@volcan david]$ mail -v root@chiriqui

Subject: test

this is a test.

.

EOT

root@chiriqui... Connecting to chiriqui.pananix.com. via esmtp...

220 chiriqui.pananix.com ESMTP Sendmail 8.9.3/8.9.3; Fri, 8 Oct 1999 09:52:50 -0500

>>> EHLO volcan.pananix.com

250-chiriqui.pananix.com Hello volcan.pananix.com [192.168.0.1], pleased to meet you

250-EXPN

250-VERB

250-8BITMIME

250-SIZE

250-DSN

250-ONEX

250-ETRN

250-XUSR

250 HELP

>>> MAIL From:<david@volcan.pananix.com> SIZE=49

250 <david@volcan.pananix.com>... Sender ok

>>> RCPT To:<root@chiriqui.pananix.com>

250 <root@chiriqui.pananix.com>... Recipient ok

>>> DATA

354 Enter mail, end with "." on a line by itself

>>> .

250 JAA06968 Message accepted for delivery

root@chiriqui... Sent (JAA06968 Message accepted for delivery)

Closing connection to chiriqui.pananix.com.

>>> QUIT

221 chiriqui.pananix.com closing connection

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

Теперь попробуйте сделать то же самое при помощи telnet. Данное соединение осуществляется с сетевого узла volcan (192.168.0.1). Клиент подключается к узлу chiriqui (192.168.0.2). Сервер sendmail требует, чтобы было возможным определить имя подключающегося узла. Однако в остальном сервер sendmail чрезвычайно доверчив. И не только потому, что узел volcan принадлежит той же самой подсети (вы можете попробовать выполнить то же самое в отношении любого узла в Интернете). Узлы, не требующие обратного сопоставления имени, являются уязвимыми. (Данный сервер sendmail работает в режиме отключенной ретрансляции - anti-relaying - однако в данном случае сервер chiriqui настроен так, что для узла volcan разрешена ретрансляция.)

Листинг 12.4. Подключение к sendmail с использованием telnet

[david@volcan david]$ telnet chiriqui 25

Trying 192.168.0.2...

Connected to chiriqui.pananix.com.

Escape character is '^]'.

220 chiriqui.pananix.com ESMTP Sendmail 8.9.3/8.9.3; Fri, 8 Oct 1999 09:59:39 -0500

EHLO localhost

250-chiriqui.pananix.com Hello volcan.pananix.com [192.168.0.1], pleased to meet you

250-EXPN

250-VERB

250-8BITMIME

250-SIZE

250-DSN

250-ONEX

250-ETRN

250-XUSR

250 HELP

MAIL From:<root@localhost>

250 <root@localhost>... Sender ok

RCPT To:<root@localhost>

250 <root@localhost>... Recipient ok

DATA

354 Enter mail, end with "." on a line by itself

I see you.

You can't hide.

.

250 KAA07061 Message accepted for delivery

QUIT

221 chiriqui.pananix.com closing connection

Connection closed by foreign host.

СОВЕТ. Для того чтобы узнать перечень команд, поддерживаемых MTA, вы всегда можете использовать команду help. Однако имейте в виду, что MTA может отказать в выполнении некоторых команд, таких как vrfy или expn (эти две команды используются для проверки, а также расширения почтового адреса).

Первым отличием, которое бросается в глаза при сравнении первого и второго листингов, - это отсутствие приглашения >>, отмечающего, какой из сетевых узлов выполняет вывод текста. Сообщение подписано почтовым адресом root@localhost, однако на самом деле мы знаем, что оно отослано пользователем david@volcan. В действительности вы вообще можете не вводить обратный адрес. Можете попробовать поступить так, как показано в листинге 12.5.

Листинг 12.5. Подключение с сетевого узла null

MAIL From:<>

250 <>... Sender ok

Вторая строка указывает на то, что для sendmail данный ввод в порядке вещей.

Однако взглянув на почтовое сообщение, включая все его заголовки, можно увидеть нечто подобное тексту листинга 12.6.

Листинг 12.6. Заголовок письма, сформированного в листинге 12.5

Received: from localhost (volcan.pananix.com [192.168.0.1]) by chiriqui.pananix.com (8.9.3/8.9.3) with ESMTP id KAA07263 for root<root@localhost>; Fri, 8 Oct 1999 10:15:07 -0500

Date: Fri, 8 Oct 1999 10:15:07 -0500

Message-ID: <199910081515.KAA07263@chiriqui.pananix.com>

Status:

X-Mozilla-Status: 0000

X-Mozilla-Status2: 00000000

X-UIDL: 37fd305900000706

I see you.

You can't hide.

Письмо в листинге 12.6 просматривается с использованием Netscape, поэтому в заголовке присутствуют строки, характерные для почтовой системы Netscape. Поле From: заголовка пусто, поэтому оно не отображается. В рамках стандарта заголовок должен включать в себя поля Subject:, To: и From:.

Первая строка заголовка начинается с метки Received: и занимает в листинге несколько строк. В ней сообщается, что сетевой узел volcan.pananix.com с IP-адресом 192.168.0.1, называющий себя localhost, переслал сообщение почтовому серверу с именем chiriqui, на котором работает MTA sendmail версии 8.9.3, использующий расширенную разновидность SMTP. Сообщение обладает идентификатором id KAA07263, адресовано root и датировано 8 октября 1999 года 10 часов 15 минут утра локального времени, которое на пять часов опережает время по Гринвичу (GMT). Идентификатор сообщения будет добавлен в журнал, в котором можно обнаружить сведения, приведенные в листинге 12.7.

Листинг 12.7. Запись в журнале о транзакции из листинга 12.4

Oct 8 10:15:45 chiriqui sendmail[7263]: KAA07263: from=<>, size=29, class=0, pri=30029, nrcpts=1, msgid=<199910081515.KAA07263@chiriqui.pananix.com>, proto=ESMTP,

relay=volcan.pananix.com [192.168.0.1]

Oct 8 10:15:46 chiriqui sendmail[7264]: KAA07263: to=david, delay=00:00:39,

xdelay=00:00:00, mailer=local, relay=local, stat=Sent

Каждая отдельная запись журнала начинается с даты. Таким образом, в журнал заносятся две записи. Первая запись указывает на прием сообщения для дальнейшей доставки. Вторая запись показывает, кому доставлено сообщение. Здесь вы можете видеть отметку to=david. Данная отметка добавляется в журнал потому, что вся почта, адресованная учетной записи root, передается определенному пользователю для прочтения.

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

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

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

domain порт 53

Порт 53 используется системой доменных имен DNS (Domain Name System). В нормальном режиме - то есть при поступлении запроса на определение IP-адреса некоторого узла с известным доменным именем - информация передается с использованием UDP через IP. Однако в некоторых случаях DNS использует TCP - например, для выполнения трансфера зоны. Это происходит потому, что в ходе трансфера зоны через сеть требуется передать объем данных, который, как правило, значительно превышает размер пакета UDP.

Демон DNS (также известный как BIND, Berkeley Internet Nameserver Daemon), запускаемый под именем named (name server daemon), часто подвергается атакам с целью получения доступа к системе на уровне привилегий root. В главе 14 мы подробнее рассмотрим демон сервера имен. В этой главе я расскажу вам о том, как следует установить и запустить этот демон в рамках тюрьмы с измененным корнем файловой системы (change root jail). Другие демоны также могут работать подобным образом. Ранее я уже упоминал о том, что подобная тюрьма применяется также для обеспечения доступа к системе по протоколу FTP.

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

tftp, порт 69

Упрощенный протокол передачи файлов TFTP (Trivial File Transfer Protocol) может стать причиной сильной головной боли сетевого администратора, так как именно благодаря TFTP в вашей системе защиты могут открыться очень серьезные дыры. Именно по этой причине я упоминаю этот протокол в данной книге, ведь на практике этот протокол используется относительно редко. Протокол TFTP основан на UDP, однако он создает псевдосоединение. Изначально этот протокол был предназначен для совместного использования с ARP (Address Resolution Protocol) и BOOTP (Bootstrap Ptotocol) и использовался для передачи через сеть файловой системы на рабочую станцию, не оснащенную жестким диском. Если вы хотите обеспечить функционирование бездисковой рабочей станции, используйте поддерживаемый на уровне ядра протокол BOOTP или RARP (Reverse Address Resolution Protocol) и монтируйте файловую систему с использованием NFS. Это значительно более надежный способ, чем использование TFTP. Если только в вашей сети отсутствуют очень старые системы, которые не могут работать без TFTP, вы должны отключить tftp в файле /etc/inetd.conf, так как приемлемых способов защиты этого протокола не существует.

finger, порт 79

Демон finger является постоянным источником информации о вашей системе для внешних взломщиков. В состав OpenLinux входит демон под названием safe_finger. Этот демон можно использовать на локальном узле, не открывая при этом порта. Данная утилита может использоваться также для подключения к демону finger, работающему на удаленном компьютере. По умолчанию в OpenLinux даже эта утилита доступна только для пользователя root. Как я уже отмечал несколько раз, передача подобной информации удаленным узлам не оправданна с точки зрения безопасности.

www, порт 80

Более подробно о web-сервере Apache и его механизмах безопасности будет рассказано в главе 20. Если в системе нет места для столь мощного сервера, как Apache, вы можете воспользоваться небольшим web-сервером, встроенным в ядро версии 2.4.x. Этот web-сервер может быть встроен прямо в ядро или может загружаться в память в виде модуля ядра. Благодаря этому механизму небольшие системы получают возможность использовать небольшой компактный web-сервер для обслуживания простых web-страниц. Помимо сервера Apache в операционной среде Linux можно использовать также другие web-серверы. Все зависит от того, каким образом и для какой цели вы намерены обеспечивать доступ к системе через HTTP. Встроенный в ядро Linux демон http, конечно же, не может полностью заменить собою полноценный сервер httpd, однако этот маленький демон может оказаться весьма полезным. В главе 20 эта новая возможность Linux будет рассмотрена подробнее. Также будет рассказано о том, как этот механизм можно использовать для повышения уровня зашиты в ходе совместного использования с сервером Apache.

pop2, порт 109 и pop3, порт 110

Протокол для чтения почты POP (Post Office Protocol) - это достаточно защищенный протокол, который, как правило, не является источником проблем с точки зрения безопасности. Этот протокол активно используется провайдерами Интернета для обеспечения доступа к электронной почте для своих клиентов. Вместо устаревшего pop2 рекомендуется использовать более новый pop3, однако ни один из этих протоколов не содержит каких-либо бросающихся в глаза уязвимых мест. Следует, однако, учитывать, что в рамках POP пароли передаются через сеть в незашифрованном виде. Это еще одна хорошая причина не использовать учетную запись root для чтения почты.

Служба POP обладает модулем pam, в котором по умолчанию (для OpenLinux) содержится информация, показанная в листинге 12.8.

Листинг 12.8. Модуль pam, по умолчанию используемый службой POP

auth required /lib/security/pam_pwdb.so shadow nullok

auth required /lib/security/pam_nologin.so

account required /lib/security/pam_pwdb.so

password required /lib/security/pam_pwdb.so shadow nullok use_authtok

session required /lib/security/pam_pwdb.so

Содержимое этого файла вполне понятно: четыре модуля, которые требуют аутентификацию с использованием пары "имя_пользователя/пароль", и один модуль, который проверяет наличие или отсутствие файла /etc/nologin, запрещающего или разрешающего доступ (соответственно).

sunrpc, порт 11

Технология RPC (Remote Procedure Call), разработанная компанией Sun Microsystems, предназначена для монтирования файловых систем через сеть, однако может использоваться для решения многих других задач. Служба sunrpc используется системой для регистрации других программ RPC. Через этот же порт клиент nfs впервые подключается к серверу nfs через сеть. В зависимости от конкретного приложения это может быть обмен данными UDP или TCP.

Чтобы посмотреть на sunrpc в действии, воспользуйтесь командой rpcinfo -p имя_узла. Вы увидите по крайней мере процесс portmapper, связанный с портом 111 по протоколам TCP и UDP. Однако в отображенном на экране листинге могут быть перечислены также и другие службы RPC, как показано в листинге 12.9.

Листинг 12.9. Вывод утилиты rpcinfo

[david@chiriqui david]$ rpcinfo -p volcan

program vers proto port

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

300019 1 tcp 743 amq

300019 1 udp 744 amq

100021 1 udp 1024 nlockmgr

100021 3 udp 1024 nlockmgr

100021 1 tcp 1024 nlockmgr

100021 3 tcp 1024 nlockmgr

100001 5 udp 781 rstatd

100001 3 udp 781 rstatd

100001 2 udp 781 rstatd

100001 1 udp 781 rstatd

Службы RPC регистрируются при помощи номера программы. Версия необходима только для того, чтобы клиент смог узнать о возможностях сервера. В третьей колонке указываются доступные протоколы. В большинстве случаев доступными являются оба протокола: как UDP, так и TCP. Сведения о портах являются полезными в том смысле, что вы можете определить, какие из портов можно заблокировать с использованием netfilter (или ipchains) чтобы блокировать несанкционированный доступ. Обратите внимание, что за исключением процесса portmapper для большей части программ RPC какие-либо записи в файле /etc/services отсутствуют.

Службы RPC являются более безопасными, чем такие службы, как tftp, однако их можно обмануть с использованием трюка, когда злоумышленник выдает себя за того, кем он на самом деле не является. Службы RPC не осуществляют подобных проверок и верят клиенту "на слово". Для всех систем, которые позволяют доступ чтения/записи, сервер должен быть настроен на выполнение процедуры root_squash (подавление корня) - иными словами, он должен отображать любые запросы на доступ для root (UID 0) на пользователя nobody. Доступ к службам RPC необходимо тщательно контролировать.

ПРИМЕЧАНИЕ. Технология RPC позволяет удаленным системам обращаться к системным вызовам локальной системы через сеть. В общем и целом набор доступных вызовов определяется локальной системой, однако все системы знают, как осуществляются чтение и запись данных файловой системы. Таким образом, эти вызовы на удаленной системе преобразуются в эквивалентные вызовы локальной системы, и если это разрешено, выполняется соответствующая операция.

auth, порт 113

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

Некоторые версии Caldera OpenLinux включают в себя версию identd, которая не может корректно завершить работу. В результате система заполняется сотнями работающих процессов inetd. Учитывая тот факт, что данная служба в большинстве мест не используется, вы можете просто отключить ее.

netbios, порты 137-139

Любая система, использующая протокол LanMan (включая системы Linux, на которых работает сервер Samba), использует порты от 137 до 139 для поиска других систем. Именно эти порты используются клиентами Microsoft для поиска узлов в Network Neighborhood (Сетевое окружение). Если вы используете Samba, вы должны самостоятельно решить, разрешаете ли вы отвечать на запросы на подключение, поступающие через эти порты, и если да, то разрешаете ли вы устанавливать соединения только в рамках внутренней сети или вы планируете обслуживать также внешние соединения.

В системах, не являющихся системами Microsoft (равно как и в системах Microsoft, в которых используется только стек TCP, а прямая поддержка NetBIOS не загружена), любые обращения к NetBIOS обслуживаются с использованием TCP. Если передача данных NetBIOS осуществляется с использованием TCP, эти данные могут передаваться значительно дальше, чем в случае использования протокола NetBIOS в чистом виде. Протокол NetBIOS основан на широковещательной передаче данных, а широковещательная передача данных осуществляется только в рамках локальной сети. Это означает, что широковещательные пакеты не передаются из сети в сеть через шлюзы и маршрутизаторы, и передача данных системам, располагающимся в других сетевых сегментах, не может быть осуществлена. Однако если для передачи пакетов NetBIOS используется TCP, это ограничение может быть снято. Это означает, что сообщения могут быть адресованы системам, располагающимся в других сетевых сегментах, а значит, взломщики получают еще одну потенциальную возможность проникнуть в вашу систему. Таким образом, эти порты необходимо заблокировать для доступа со стороны любых систем, кроме локальных.

imap2, порт 143 и imap3, порт 220

Протокол доступа к электронной почте IMAP (Internet Mail Access Protocol или Interim Mail Access Protocol или Interactive Mail Access Protocol) позволяет работать с электронной почтой в интерактивном режиме. Обеспечивающий его работу сервер является еще одной чрезвычайно слабо защищенной серверной программой, работающей в системе. Многочисленные свидетельства указывают на то, что соответствующий демон неоднократно становился объектом успешных атак взломщиков. Протокол IMAP значительно более мощный, чем протокол POP (Post Office Protocol), однако за его мощь приходится платить высоким риском. Именно поэтому многие провайдеры Интернета не используют его.

IMAP устанавливается как RPM и включает в себя как imapd, так и popd. Если вы удаляете RPM этого протокола, вы также удаляете и popd - возможно, это не то, что вам нужно. Большинство почтовых клиентов могут использовать как IMAP, так и POP, поэтому окончательный выбор в большинстве случаев остается за вами. Но если вы запускаете imapd (в состав OpenLinux входит версия 2, которая использует порт 143), будьте готовы к тому, что злоумышленники попытаются атаковать вашу систему через этот порт. Вы можете блокировать большую часть Интернета в соответствии с тем, откуда к вашей системе должны подключаться пользователи.

Службе IMAP соответствует файл pam.d/imap. По умолчанию в OpenLinux этот файл содержит данные, показанные в листинге 12.10.

Листинге 12.10. Содержимое /etc/pam.d/imap

auth required /lib/security/pam_pwdb.so shadow nullok

auth required /lib/security/pam_nologin.so

account required /lib/security/pam_pwdb.so

password required /lib/security/pam_pwdb.so shadow nullok use_authtok

session required /lib/security/pam_pwdb.so

Этот PAM не содержит ничего необычного. Все строки, за исключением второй, указывают на необходимость проверки пары "имя_пользователя/пароль". Вторая строка либо разрешает, либо запрещает подключение в зависимости от отсутствия или присутствия (соответственно) файла /etc/nologin. Вы можете повысить уровень защиты IMAP, вставив в файл еще одну строку auth, использующую модуль securetty.so и удалив две метки nullok напротив модуля pam_pwdb.so (пользователи не должны использовать пустых паролей). Модуль securetty.so запрещает пользователю root использовать данную службу (в любом случае почта, адресованная пользователю root, должна быть перенаправлена другому пользователю). То же самое можно сделать и для службы POP.

xdmcp, порт 177 (UDP)

Если в вашей системе начинает работу X, система открывает один или несколько портов в диапазоне от 6000 до 6010. Это обычные порты, через которые удаленные пользователи могут подключиться к X. Однако если вы запускаете xdm, данная служба связывается с портом 177. Для этого используется сокет UDP. Когда сервер X через xdm начинает поиск серверов для управления экраном, по умолчанию для этой цели используется порт 177. Если вы не хотите, чтобы X-серверы использовали сервер, на котором работает xdm для управления экраном, вы должны блокировать порт 177 UDP.

printer, порт 515

Демон печати lpd содержится в RPM-пакете LPRNG. Этот демон устанавливается и настраивается в процессе установки. Вместе с ним устанавливается файл /etc/lpd.perm, который определяет набор разрешений на доступ к демону печати.

Файл lpd.perms, устанавливаемый в рамках Caldera OpenLinux по умолчанию, разрешает относительно широкий доступ к принтеру. Иными словами, по умолчанию выполнить распечатку на вашем принтере может любой желающий (листинг 12.11).

Листинг 12.11. Разрешения на доступ к принтеру, определяемые в файле /etc/lpd.perms по умолчанию

ACCEPT SERVICE=C SERVER REMOTEUSER=root

ACCEPT SERVICE=S

REJECT SERVICE=CSU

ACCEPT SERVICE=M SAMEHOST SAMEUSER

ACCEPT SERVICE=M SERVER REMOTEUSER=root

REJECT SERVICE=M

DEFAULT ACCEPT

Переменной SERVICE можно присвоить одно из следующих значений: P - печать (printing); R - размещение в очереди (spooling); C - управление (control); S - состояние (status); U - пользователю разрешается операция lpc; M - удаление из очереди; Q - информация об очереди (queue). Если посмотреть на листинг 12.11, можно заметить, что первая строка разрешает пользователю root управлять работой службы lpd с локального сервера. Вторая строка разрешает любому желающему (включая тех, кто живет на другом конце земного шара) получить сведения о состоянии демона lpd. Никаких проверок IP не осуществляется. Третья строка запрещает управление или использование команд lpc для всех, кому не предоставлен доступ.

В строках 4-7 определяются правила удаления заданий печати из очереди. Эти строки относительно разумны: только пользователь root (UID 0) с локального сервера или тот же самый пользователь с того же самого сетевого узла обладают правом удалять задание печати, всем остальным делать это запрещено. Однако в последней строке стоит DEFAULT ACCEPT, это означает, что то, что не запрещено, считается разрешенным. Таким образом, любой желающий в любой точке земного шара, имеющий возможность вступить в контакт с вашим IP-адресом, сможет распечатать на вашем принтере все, что ему взбредет в голову. Вы уверены, что вам это нужно?

Чтобы заблокировать нежелательные запросы на распечатку, достаточно просто заблокировать порт 515 для всех, за исключением тех, кто работает в составе локальной сети. На момент написания данной книги мне не известно ни об одном риске, связанном с LPRNG, у большинства пользователей Интернета вряд ли возникнет желание печатать что-либо на вашем принтере.

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

СОВЕТ. Для подключения к любой службе TCP вы можете использовать клиента telnet. Используя telnet, вы можете обмениваться данными с любой службой, достаточно знать, что именно ожидает от вас служба. Использовать telnet совместно со службами, основанными на UDP, несколько сложнее, однако при этом работают те же самые принципы.

Команды "r" (rsh, rexec, rlogin), порты 512, 513, 514

Латинская буква "r" в данном случае означает remote, то есть "удаленный". Три этих утилиты были разработаны в самом начале развития сетей для того, чтобы использоваться совместно или заменить собой telnet. rsh означает remote shell - удаленная командная оболочка, rexec означает remote execution - удаленное выполнение заданий, наконец, rlogin означает remote login - удаленное подключение. Эти утилиты появились в обиходе в то далекое время, когда люди в значительно большей степени доверяли компьютерным сетям. Благодаря этим трем командам пользователи сети получают возможность доступа к удаленным системам через сеть, и при этом у них даже не спрашивают пароля. Нетрудно себе представить, какую опасность представляют собой эти команды.

Все три команды безоговорочно доверяют сети и сетевым пользователям.

В наши дни воспользоваться этим доверием слишком просто. Действие команд не ограничивается обычными пользователями, они действуют и в отношении привилегированных пользователей. Два файла, расположенных либо в каталоге /etc, либо в домашнем каталоге пользователя, могут стать причиной крупных неприятностей для администратора системы. Альтернативой командам "r" является команда ssh - Secure Shell (защищенная командная оболочка).

ССЫЛКА. Более подробно о ssh рассказывается в главе 21.

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

ПРИМЕЧАНИЕ. Утилиты или программные средства, которые позволяют получать все пакеты, передаваемые через сеть, вне зависимости от того, кому они адресованы, обозначают английским термином sniffer. Подобные инструменты разработаны для того, чтобы помочь системным администраторам решать проблемы, связанные с передачей данных через сеть. Однако в наши дни подобные средства часто используются злоумышленниками для того, чтобы


Д. Бэндл mailto:bendljd@mirror.oken.eu

Отзывы (через аккаунты в социальных сетях Вконтакте, Facebook или Google+):

Оставить отзыв с помощью аккаунта ВКонтакте:

Оставить отзыв с помощью аккаунта FaceBook:

Оставить отзыв с помощью аккаунта Google+: