Мониторинг ASP.NET и SQL Server для безопасности - PullRequest
10 голосов
/ 21 апреля 2011

Каков наилучший (или любой хороший) способ мониторинга приложения ASP.NET для обеспечения его безопасности и быстрого обнаружения вторжения?Откуда мы точно знаем , что на данный момент наше приложение полностью бескомпромиссно?

Мы собираемся запустить веб-приложение ASP.NET 4 с данными, хранящимися в SQLСервер.Веб-сервер работает в IIS на экземпляре Windows Server 2008, а сервер базы данных работает на SQL Server 2008 на отдельном экземпляре Win 2008.

Мы рассмотрели рекомендации Microsoft по безопасности, и я считаю, что наше приложение очень безопасно,Мы внедрили «глубокую оборону» и рассмотрели ряд векторов атак.

Таким образом, мы «чувствуем» себя уверенно, но пока не имеем реального представления о безопасности нашей системы.Как мы можем сразу узнать, проник ли кто-то?Как мы можем узнать, был ли какой-то пакет размещен на одном из наших серверов?Как мы можем узнать, происходит ли утечка данных?

Каковы некоторые концепции, инструменты, лучшие практики и т. Д .?

Заранее спасибо, Брайан

Дополнительные мысли 4/22/11

Крис, спасибо за очень полезные личные наблюдения и советы ниже.

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

Как нам эффективно приблизиться к этому?Разве хорошее решение не включает мониторинг входов в систему, активности базы данных, активности ASP.NET и т. Д. В дополнение к пакетам в сети?Каковы некоторые примеры того, как занять надежную позицию безопасности?

Брайан

Ответы [ 3 ]

3 голосов
/ 21 апреля 2011

Вы ищете термин Система обнаружения вторжений (IDS). Существует связанный термин, называемый Система предотвращения вторжений (IPS).

Наблюдение за трафиком IDS, поступающим на ваши серверы на уровне IP, и отправка оповещений на основе сложного анализа трафика.

IPS - это следующее поколение IDS, которые фактически пытаются блокировать определенные действия.

Существует множество коммерческих и открытых систем, включая Snort , SourceFire , Endace и , другие .

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


Я хотел бы добавить сюда немного больше информации, поскольку область комментариев немного мала.

Главное, что вам нужно понять, это типы атак, которые вы увидите. Они будут варьироваться от относительно простых автоматизированных сценариев до очень сложных целевых атак. Они также распространят все, что могут видеть, от самого веб-сайта до IIS, .Net, почтового сервера, SQL (если доступно), вплоть до вашего брандмауэра и других уязвимых машин / служб. Целостный подход - единственный способ реально контролировать происходящее.

Вообще говоря, новый сайт / компания получит автоматические сценарии в течение нескольких минут (я бы сказал, максимум 30) после запуска. Что является основной причиной, по которой новые установки MS Windows сильно блокируют сеть во время установки. Черт возьми, я видел машины, прибитые к гвоздям через 30 секунд после первого включения.

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

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

При атаках с использованием сценариев убедитесь, что вы не выставляете общедоступные пакеты, такие как PhpMyAdmin, инструменты веб-администрирования IIS или даже удаленный рабочий стол за пределами вашего брандмауэра. Кроме того, избавьтесь от любых учетных записей с именами «admin», «administrator», «guest», «sa», «dbo» и т. Д. Наконец, убедитесь, что ваши пароли НЕ ДОЛЖНЫ быть чьим-либо именем и определенно НЕ являются паролем по умолчанию, поставляется с продуктом.

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

Как только все это будет сделано правильно и обеспечено, единственными доступными сервисами должны быть веб-сервисы (порт 80/443). Элементы, которые все еще могут быть использованы, - это ошибки в IIS, .Net или в вашем веб-приложении.

Для IIS и .net вы ДОЛЖНЫ установить обновления Windows от MS почти сразу же после их выпуска. MS была очень хороша в продвижении качественных обновлений для Windows, IIS и .Net. Кроме того, подавляющее большинство обновлений предназначено для уязвимостей, которые уже используются в дикой природе. Наши серверы были настроены на автоматическую установку обновлений, как только они станут доступны, и у нас никогда не было сожжено (вернемся, по крайней мере, к моменту выпуска сервера 2003).

Также вам нужно быть в курсе обновлений вашего брандмауэра.Не так давно у одного из брандмауэров Cisco была ошибка, из-за которой он мог быть перегружен.К сожалению, он пропустил весь трафик, когда это произошло.Несмотря на то, что исправление было выполнено довольно быстро, люди по-прежнему избивали более года спустя, потому что администраторы не успевали за исправлениями IOS.Та же проблема с обновлениями Windows.Многие люди были взломаны просто потому, что не смогли применить обновления, которые могли бы помешать этому.

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

Проблема в том, что вы можете быть скомпрометированы, даже не подозревая об этом.Защита заключается в том, что HTML и JavaScript не могут быть отправлены через ваш сайт;наличие надежных (и постоянно обновляемых) проверок на спам и вирусы на почтовом сервере и т. д. По сути, вам нужно посмотреть на все возможные способы, которыми внешняя сущность может что-то отправить вам, и что-то с этим сделать.Многие компании из списка Fortune 500 продолжают сталкиваться с такими вещами, как ... Google включил.

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

2 голосов
/ 21 апреля 2011

Я могу сказать, что некоторые думают - но я буду рад услышать больше идей.

Как мы можем сразу узнать, проник ли кто-то?

Это не так просто, и, на мой взгляд, ** идея состоит в том, чтобы сделать несколько ловушек ** внутри вашего бэк-офиса вместе с монитором для двойного входа с разных ips .

ловушка может быть всем, что вы можете себе представить, например нереальная страница с надписью «создать нового администратора» или «изменить пароль администратора», наbackoffice, и там любой может войти и попытаться сделать нового администратора наверняка проникновением - конечно, эта ловушка должна быть известна только вам, иначе нет никакого смысла для этого.

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

способ мониторинга приложения ASP.NET

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

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

Как мы можем узнать, является ли пакеткакой-то вид был помещен на один из наших серверов

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

<configuration>
    <system.web>
      <authorization>
        <deny users="*" />
      </authorization>
    </system.web>
</configuration>
1 голос
/ 04 августа 2011

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

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

OSSEC можно найти на http://www.ossec.net/

...