Коллектив авторов - Защита от хакеров корпоративных сетей

Тут можно читать онлайн Коллектив авторов - Защита от хакеров корпоративных сетей - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Коллектив авторов - Защита от хакеров корпоративных сетей краткое содержание

Защита от хакеров корпоративных сетей - описание и краткое содержание, автор Коллектив авторов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

Перевод: Александр Петренко

Защита от хакеров корпоративных сетей - читать онлайн бесплатно ознакомительный отрывок

Защита от хакеров корпоративных сетей - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Коллектив авторов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Поиск функций, подверженных ошибкам

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

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

Переполнение буфера

Переполнение буфера, известное также как ошибка граничных условий, происходит в том случае, когда размер записываемых в память данных превышает размер выделенной для этого области памяти. Елиас Леви (Elias Levy), известный как Alephl, написал на эту тему статью «Smashing the Stack for Fun and Profit» («Разрушение стека для забавы и обогащения»). Со статьей можно ознакомиться в 49-ом выпуске Phrack, статья номер 14.

Посмотрите на следующую программу:

/* scpybufo.c */

/* Hal Flynn */

/* December 31, 2001 */

/* scpybufo.c demonstrates the problem */

/* with the strcpy() function which */

/* is part of the c library. This */

/* program demonstrates strcpy not */

/* sufficiently checking input. When */

/* executed with an 8 byte argument, a */

/* buffer overflow occurs. */

#include

#include

int main(int argc, char *argv[])

{

overflow_function(*++argv);

return (0);

}

void overflow_function(char *b)

{

char c[8];

strcpy(c, b);

return;

}

В этой написанной на языке C программе приведен пример использования функции strcpy. Данные из массива argv [1], в котором хранится аргумент вызова программы, копируются функцией strcpy в массив символов, для которого при объявлении была выделена память для восьми символов. Поскольку в программе не выполняется никаких проверок размера пересылаемых данных, то при копировании более восьми символов происходит переполнение буфера. Функция sprintf — еще один пример часто встречающейся подверженной ошибкам функции. В результате ее применения возможно переполнение буфера, как это показано в следующем примере:

/* sprbufo.c */

/* Hal Flynn */

/* December 31, 2001 */

/* sprbufo.c demonstrates the problem */

/* with the sprintf() function which */

/* is part of the c library. This */

/* program demonstrates sprintf not */

/* sufficiently checking input. When */

/* executed with an argument of 8 bytes */

/* or more a buffer overflow occurs. */

#include

int main(int argc, char *argv[])

{

overflow_function(*++argv);

return (0);

}

void overflow_function(char *b)

{

char c[8];

sprintf(c, “%s”, b);

return;

}

Как и в предыдущем примере, строка символов аргумента программы копируется в восьмибайтовый массив символов. Поскольку при копировании из argv [1] не выполняется никаких проверок на соответствие размера пересылаемых данных размеру памяти, в которую выполняется копирование, то в результате возможно переполнение буфера. Применение функции strcat без проверки размера обрабатываемых данных также может привести к переполнению буфера, как это видно из следующего примера:

/* scatbufo.c */

/* Hal Flynn */

/* December 31, 2001 */

/* scatbufo.c demonstrates the problem */

/* with the strcat() function which */

/* is part of the c library. This */

/* program demonstrates strcat not */

/* sufficiently checking input. When */

/* executed with a 7 byte argument, a */

/* buffer overflow occurs. */

#include

#include

int main(int argc, char *argv[])

{

overflow_function(*++argv);

return (0);

}

void overflow_function(char *b)

{

char c[8] = «0»;

strcat(c, b);

return;

}

Данные командной строки из массива argv [1] передаются функции overflow_function, которая сцепляет их с данными восьмибайтового массива символов с.Поскольку в программе размер сцепляемых данных не проверяется, то в результате возможен выход за границы массива c. Gets – еще одна проблематичная функция языка C. Компилятор GNU языка C выдает предупреждающее сообщение при компиляции программ с функцией gets, потому что эта функция никак не контролирует размер получаемых данных. Посмотрите на следующий пример:

/* getsbufo.c */

/* Hal Flynn */

/* December 31, 2001 */

/* This program demonstrates how NOT */

/* to use the gets() function. gets() */

/* does not sufficient check input */

/* length, and can result in serious */

/* problems such as buffer overflows. */

#include

int main()

{

get_input();

return (0);

}

void get_input(void)

{

char c[8];

printf(“Enter a string greater than seven bytes: ”);

gets(c);

return;

}

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

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

Ошибки проверки входных данных

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

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

Но перед этим приведем пример программы с уязвимой форматирующей строкой. Проанализируйте следующую программу:

/* fmtstr.c */

/* Hal Flynn */

/* December 31, 2001 */

/* fmtstr.c demonstrates a format */

/* string vulnerability. By supplying */

/* format specifiers as arguments, */

/* attackers may read or write to */

/* memory. */

#include

int main(int argc, char *argv[])

{

printf(*++argv);

return (0);

}

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

Проверка программами Web-интерфейса, например CGI-программами, входных данных программы часто приводит к неожиданным результатам. Нередко недостаточно квалифицированно написанные CGI-программы (особенно это касается программ, написанных на языке Perl) позволяют выполнять команды, заключенные в специальные символы, что дает возможность выполнять произвольные команды системы с привилегиями Web-пользователя. В некоторых случаях это может привести к серьезным последствиям. Например, к удалению файла index.html, если HTTP-процесс является владельцем этого файла и имеет право писать в него данные. Или к предоставлению пользователю локального доступа к системе с разрешениями HTTP-процесса, если пользователь свяжет оболочку shell c произвольным портом системы.

К сходным проблемам может привести предоставленная пользователю возможность выполнять произвольные SQL-команды. Обычно CGI-программы используются для облегчения взаимодействия между внешним Web-интерфейсом и серверной частью системы управления базами данных, поддерживающих SQL, например Oracle, MySQL или Microsoft SQL Server. Пользователь, который может выполнять произвольные SQL-команды, сможет просматривать произвольные таблицы, обрабатывать данные таблиц и даже удалять их.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Коллектив авторов читать все книги автора по порядку

Коллектив авторов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Защита от хакеров корпоративных сетей отзывы


Отзывы читателей о книге Защита от хакеров корпоративных сетей, автор: Коллектив авторов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x