ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

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

Угрозы безопасности. Отказ в обслуживании. Ошибки программного обеспечения. Отказ от обязательств

Угрозы безопасности

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

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

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

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

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

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

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

Ошибки программного обеспечения

Существует ненулевая вероятность присутствия ошибок в приобретенном, полученном или разработанном самостоятельно программном обеспечении. Учитывая, что для разработки веб-проектов отводится очень мало времени, наличие ошибок в программном обеспечении весьма вероятна. Любая основанная на применении компьютеров коммерческая деятельность предельно чувствительна к ошибкам программного обеспечения.

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

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

Неполные спецификации

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

Предложения, сделанные разработчиками

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

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

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

Некачественное тестирование

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

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

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

Отказ от обязательств

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

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

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

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

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

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