Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей. |
Безопасность UNIX
Смешанный режим
Интерфейс находится в смешанном режиме, когда в системе работает сниффер (сетевой анализатор пакетов). Сниффер переводит интерфейс в смешанный режим; при этом происходит фиксирование всей информации, проходящей через канал связи. Если при работе интерфейса в данном режиме выполнить команда ifconfig -a, то появится сообщение о том, что интерфейс находится в состоянии PROMISC (признак того, что работает анализатор пакетов). Если сниффер запущен не администратором системы, необходимо провести исследование причин этих обстоятельств.
Примечание
Solaris не выдает соответствующего отчета о том, что интерфейс находится в смешанном режиме. Причиной этому является ошибка в программном обеспечении ядра. Чтобы корректным образом проверить, находится ли интерфейс Solaris в смешанном режиме, необходимо использовать команду ifstatus, доступную по адресу ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/iftatus/.
netstat
Программа netstat используется для выяснения того, какие сетевые соединения находятся в активном состоянии в системе Unix. Команду следует использовать следующим образом: netstat -an. Аргумент "n" сообщает netstat о том, что обработка IP-адресов не требуется.
#netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:515 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:98 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:79 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:513 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:10000 0.0.0.0:* udp 0 0 0.0.0.0:518 0.0.0.0:* udp 0 0 0.0.0.0:517 0.0.0.0:* udp 0 0 0.0.0.0:111 0.0.0.0:* raw 0 0 0.0.0.0:1 0.0.0.0:* raw 0 0 0.0.0.0:6 0.0.0.0:*Листинг 14.1.
Как видно из результирующих данных, любая строка, содержащая слово "LISTEN", означает, что имеется программа, прослушивающая этот порт. Прослушиваться должны только сконфигурированные администратором порты. Если в системе присутствует прослушиваемый порт, который не конфигурировался администратором, систему необходимо проверить и выяснить, почему порт открыт.
Адреса, отображаемые в столбце локальных адресов, заканчиваются номером локального порта (число после столбца). Этот номер порта используется для определения того, является ли соединение входящим или исходящим. Например, если номер локального порта 23, то это входящее подключение к демону telnet. Если номер локального порта равен 1035, а номер внешнего порта - 23, то это исходящее соединение telnet.
lsof
Одна из проблем, связанных с программой netstat, заключается в том, что данная команда не сообщает, какой процесс поддерживает открытое состояние порта. Поиск процесса, связанного с определенным портом, может стать очень трудной задачей. Однако существует программа под названием lsof (http://ftp.cerias.purdue.edu/pub/tools/unix/sysutil/Isof/), которая предоставляет такую информацию. Сразу после установки программы выполните команду lsof -i, как показано ниже:
#lsof -i COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME portmap 311 root 4u IPv4 301 UDP *:sunrpc portmap 311 root 5u IPv4 302 TCP *:sunrpc (LISTEN) inetd 439 root 5u IPv4 427 TCP *:ftp (LISTEN) inetd 439 root 6u IPv4 428 TCP *:telnet (LISTEN) inetd 439 root 7u IPv4 429 TCP *:shell (LISTEN) inetd 439 root 9u IPv4 430 TCP *:login (LISTEN) inetd 439 root 10u IPv4 431 UDP *:talk inetd 439 root 11u IPv4 432 UDP *:ntalk inetd 439 root 12u IPv4 433 TCP *:finger (LISTEN) inetd 439 root 13u IPv4 434 TCP *:auth (LISTEN) inetd 439 root 14u IPv4 435 TCP *:linuxconf (LISTEN) lpd 455 root 6u IPv4 457 TCP *:printer (LISTEN) sendmail 494 root 4u IPv4 495 TCP *:smtp (LISTEN) miniserv. 578 root 4u IPv4 567 TCP *:10000 (LISTEN) miniserv. 578 root 5u IPv4 568 UDP *:10000Листинг 14.2.
Как видно из результатов выполнения программы, lsof выводит перечень всех открытых портов с указанием того, какие процессы поддерживают открытое состояние портов. Убедитесь, что вам известно, какие функции выполняет каждый процесс, и почему открыт соответствующий ему порт.
Примечание
lsof заменяет номер порта в столбце справа именем порта, если оно присутствует в файле /etc/services.
ps
Администратор также должен изучать результаты выполнения команды ps. Эта программа выводит все активные процессы, имеющиеся в системе, что необходимо при поиске снифферов, так как сниффер может не отображаться в lsof или в netstat. В большинстве систем выполнение команды ps -ef выводит перечень процессов в системе. В тех версиях Unix, где эта команда не работает, следует выполнить команду ps -aux. Результаты выполнения данной команды показаны ниже:
#ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 13:09 ? 00:00:04 init root 2 1 0 13:09 ? 00:00:00 [kflushd] root 3 1 0 13:09 ? 00:00:00 [kupdate] root 4 1 0 13:09 ? 00:00:00 [kpiod] root 5 1 0 13:09 ? 00:00:00 [kswapd] root 6 1 0 13:09 ? 00:00:00 [mdrecoveryd] bin 3 11 1 0 13:09 ? 00:00:00 portmap root 327 1 0 13:10 ? 00:00:00 /usr/sbin/apmd -p 10 -w 5 -W root 380 1 0 13:10 ? 00:00:00 syslogd -m 0 root 391 1 0 13:10 ? 00:00:00 klogd daemon 407 1 0 13:10 ? 00:00:00 /usr/sbin/atd root 423 1 0 13:10 ? 00:00:00 crond root 439 1 0 13:10 ? 00:00:00 inetd root 455 1 0 13:10 ? 00:00:00 lpd root 494 1 0 13:10 ? 00:00:00 sendmail: accepting connections root 511 1 0 13:10 ? 00:00:00 gpm -t ps/2 xfs 528 1 0 13:10 ? 00:00:00 xfs -droppriv -daemon -port -1 root 570 1 0 13:10 tty1 00:00:00 login - root root 571 1 0 13:10 tty2 00:00:00 /sbin/mingetty tty2 root 572 1 0 13:10 tty3 00:00:00 /sbin/mingetty tty3 root 573 1 0 13:10 tty4 00:00:00 /sbin/mingetty tty4 root 574 1 0 13:10 tty5 00:00:00 /sbin/mingetty tty5 root 575 1 0 13:10 tty6 00:00:00 /sbin/mingetty tty6 root 578 1 0 13:10 ? 00:00:00 perl /usr/libexec/webmin/miniser root 579 570 0 13:10 tty1 00:00:00 -bash root 621 579 0 13:17 tty1 00:00:00 ps -ef
Следует периодически проверять список процессов, работающих в системе. Если обнаруживается что-либо незнакомое, то необходимо выяснить, что это такое.
Измененные файлы
Когда злоумышленник успешно проникает в систему, он может попытаться изменить системные файлы для обеспечения продолжительного доступа к системе. Файлы, передаваемые в систему, обычно называются "rootkit", так как позволяют злоумышленнику осуществить доступ через корневую (root) учетную запись. В дополнение к таким программам, как снифферы, rootkit может содержать двоичные замещения для следующих файлов:
ftpd passwd inetd ps login ssh netstat telnetd
Как правило, любой исполняемый файл, который может тем или иным образом помочь злоумышленнику поддерживать доступ, является кандидатом на замещение. Наилучший способ определить, был ли файл заменен - использовать криптографическую контрольную сумму. Лучше всего создавать контрольные суммы всех системных файлов при построении системы, после чего обновлять их при установке системных обновлений. Необходимо хранить контрольные суммы на безопасной системе, чтобы злоумышленник не мог изменить контрольные суммы при изменении файлов.
Если имеются подозрения нелегального проникновения в систему, пересчитайте контрольные суммы и сопоставьте их с исходными. Если они совпадают, то файлы изменены не были. Если же контрольные суммы различны, рассматриваемому файлу доверять не следует; его необходимо заменить оригиналом с установочного носителя.
Совет
По адресу http://www.chkrootkit.org/ можно найти утилиту, которая помогает в проверке наличия в системе rootkit-ов.