Суббота, 27 Апреля 2024, 06:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » C/C++ » cymix - система обнаружения вторжений
cymix - система обнаружения вторжений
afqДата: Вторник, 01 Октября 2019, 08:00 | Сообщение # 1
Разработчик
Сейчас нет на сайте
Платформа - линукс. Потом может быть windows. Но так windows у меня не установлен, то будет не скоро.
Язык программирования - си.
IDE - текстовый редактор vim.
Описание - cymix система обнаружения вторжений. Использует свои правила и правила snort. Пока что делаю парсер своих правил, тех, которых нет в snort. Единственное что пока реализовал, так это одно правило, которое пишет что меня пингуют. Занялся этим проектом, когда меня не устроили существующие системы обнаружения вторжений.
Как это работает - в линукс есть функции очереди, когда поступает пакет в компьютер, этот пакет отправляется в очередь. На другом конце работает четыре потока, каждый ждёт пакета из очереди. Кто первый получил, тот и обрабатывает. Затем пакет сравнивается с правилами и если есть совпадения, то отправляется в журналирование. Одним из журналирования есть unix сокет. Это сделано для локального пользования. С помощью unix сокета моя другая программа получает доступ к журналу и оповещает меня, когда появляются новые сообщения. Подробности на видео.
afqДата: Вторник, 01 Октября 2019, 11:18 | Сообщение # 2
Разработчик
Сейчас нет на сайте
Как видно, справа вверху в углу видно уведомление о том что меня кто-то пингует.
afqДата: Вторник, 01 Октября 2019, 11:52 | Сообщение # 3
Разработчик
Сейчас нет на сайте
Я сделал диаграмму, на которой видно, что поступает пакет и он сразу отправляется в очередь и отлавливается уже следующий пакет. Четырем потокам доступна одна очередь. Какой то поток извлекает пакет из очереди, проверяет правила и отправляет в другую очередь, которая доступна четырем потокам, но принимающая сторона всего один поток, он отвечает за журналирование.
afqДата: Вторник, 01 Октября 2019, 11:54 | Сообщение # 4
Разработчик
Сейчас нет на сайте
всё гениально и просто. Только я не тестировал, я не знаю как себя поведёт очередь, если скорость загрузки будет 100 мбит в секунду или больше, но думаю что четыре потока сумеют разгрузить очередь.
drcrackДата: Среда, 02 Октября 2019, 11:29 | Сообщение # 5
старожил
Сейчас нет на сайте
какую конкретно проблему решает это приложение?
8it2dДата: Среда, 02 Октября 2019, 11:41 | Сообщение # 6
был не раз
Сейчас нет на сайте
Интересно. Но я нуб. И не совсем понимаю практическую область применения.

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

Ну вот допустим у меня есть простенькая сетевая игрушка на SFML(С++) с сервером тоже на SFML-Network под Ubuntu 16.04 на VPS KVM.
Весь диапазон портов у меня заблокирован через iptables. Открыт только 1 порт для сокетов с обменом под TCP.

Т.е. ваша программа может проверять пакеты, пропуская только трафик от игры?


Сообщение отредактировал 8it2d - Среда, 02 Октября 2019, 11:41
afqДата: Среда, 02 Октября 2019, 12:25 | Сообщение # 7
Разработчик
Сейчас нет на сайте
drcrack, пока что только определяет сетевую атаку без её предотвращения. О предотвращении я даже и не думал пока.
8it2d, нет, моя программ не является firewall. Пока она только детектирует атаки и уведомляет. Чтобы не пропускать сетевой трафик, надо писать драйвер. Либо моя программа должна взаимодействовать с iptables. Ну мне пока нужно решить задачу с тем, чтобы определяла все атаки. А дальше буду думать что делать.
drcrackДата: Среда, 02 Октября 2019, 13:14 | Сообщение # 8
старожил
Сейчас нет на сайте
Цитата
drcrack, пока что только определяет сетевую атаку без её предотвращения. О предотвращении я даже и не думал пока.

это просто автоматическое сканирование, ему подвержены абсолютно все белые айпи в инете
никакого практического смысла в этом "определении" нет
предотвратить это и вовсе невозможно, разве что комп отключить от сети

Цитата
Т.е. ваша программа может проверять пакеты, пропуская только трафик от игры?

программа для этой задачи уже установлена на твоем сервере — это собственно сервер твоей игры (он разбирает трафик на конкретном порту и отбрасывает то, что не имеет отношения к игре) — ваш К.О.


Сообщение отредактировал drcrack - Среда, 02 Октября 2019, 13:15
afqДата: Среда, 02 Октября 2019, 13:50 | Сообщение # 9
Разработчик
Сейчас нет на сайте
Цитата
это просто автоматическое сканирование, ему подвержены абсолютно все белые айпи в инете
никакого практического смысла в этом "определении" нет

drcrack, вот это предложение я совсем не понял. Есть системы обнаружения и предотвращения вторжений - snort и suricata. У snort есть правила, в которых написаны виды атак, от эксплойтов до дос атак. suricata тоже использует эти правила. Моя программа тоже будет использовать правила snort, но пока умеет только мои правила определять. Да и то, только icmp пакеты. Но прикол в том, что эти системы snort и suricata умеют предотвращать вторжение, а моя программа нет. Например я обдумал как можно определить arp спуфинг. Когда я делал arp спуфинг, то жертва не видела мой комп в таблице arp адресов, так как не контачила в локальной сети. В этом случае сравнение мак адресов и arp таблицы отпадает. И вот что я подумал можно сделать, сравнивать время при получении arp пакета, если часто шлётся пакет, то это атака. Есть возможность определить ip адрес атакующего. Послать пакет с ttl 2, в итоге пакет пройдёт через роутер и попадёт на хакера, и комп хакера отправить информацию о своём ip, что ttl пакета закончилось. Но если хакер в firewall запретит ( если так можно ) отправлять о информацию о смерти пакета, то будет только известно что есть атака, но атакующего не вычислить. Ну это я опять же об определении атаки думаю, а не о предотвращении. Но в чём прикол, предотвратить атаку можно вроде только в tcp пакете, послав флаг об окончании сессии. В других случаях других пакетов можно блокировать порты для ip. Я вот думаю как сделать так, чтобы можно было и для windows и для linux нормально сделать, ну в windows вроде возможно сделать как сервис, и что вроде сервис может слать уведомления, но я не проверял. А в linux блин ( она многопользовательская ), программу надо запустать из сеанса скорее всего, чтобы программа вывела уведомление. Я пока прорабатываю этот вопрос. Надо всё грамотно сделать.
drcrackДата: Среда, 02 Октября 2019, 14:10 | Сообщение # 10
старожил
Сейчас нет на сайте
Цитата
А в linux блин (она многопользовательская)

А windows и другие системы нет? :D
afqДата: Среда, 02 Октября 2019, 14:30 | Сообщение # 11
Разработчик
Сейчас нет на сайте
Цитата
А windows и другие системы нет?

drcrack, да вроде windows однопользовательская. Она не разрешает нескольким пользователям подключиться к ней и запустить свой рабочил стол или хотя бы консоль от другого пользователя. В линукс я могу подключиться от другого пользователя в консоли, а в windows нельзя.
вроде так.
afqДата: Среда, 02 Октября 2019, 14:31 | Сообщение # 12
Разработчик
Сейчас нет на сайте
я имею ввиду подключиться к windows по сети с другим именем пользователя и делать какие нибудь действия, - это запрещено.
8it2dДата: Среда, 02 Октября 2019, 16:02 | Сообщение # 13
был не раз
Сейчас нет на сайте
afq спасибо за ответ.

Цитата drcrack ()
программа для этой задачи уже установлена на твоем сервере — это собственно сервер твоей игры (он разбирает трафик на конкретном порту и отбрасывает то, что не имеет отношения к игре) — ваш К.О.

Это я понимаю. Сервер будет работать только с теми байтами (id и порядок байт) на прием которых я его запрограммирую.

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

Тема для меня новая.

Каюсь, нужно было погуглить что такое snort.

Но после ответов afq, стало более-менее понятно.

Если cymix сможет определять запрос-зловред (сканирование или дудос например) от других запросов. Например, запросов игры.

И изолировать атакующего, например через iptables по ip или мак-адресу (в видео говорится про мак-адрес) это-ж хорошо.


Сообщение отредактировал 8it2d - Среда, 02 Октября 2019, 16:08
drcrackДата: Среда, 02 Октября 2019, 19:55 | Сообщение # 14
старожил
Сейчас нет на сайте
Цитата
я имею ввиду подключиться к windows по сети с другим именем пользователя и делать какие нибудь действия, - это запрещено.

если речь об удаленном рабочем столе, то это чисто лицензионное ограничение для домашних версий (и есть способы ее от этого вылечить)
также никто не мешает поставить какой-нибудь ssh сервер и работай в консоли хоть в 100 юзеров одновременно

Цитата
Но подключиться на прослушку сможет же любой.

что это вообще значит?

Цитата
И изолировать атакующего, например через iptables по ip или мак-адресу (в видео говорится про мак-адрес) это-ж хорошо.

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


Сообщение отредактировал drcrack - Среда, 02 Октября 2019, 19:58
8it2dДата: Среда, 02 Октября 2019, 21:57 | Сообщение # 15
был не раз
Сейчас нет на сайте
Цитата drcrack ()
что это вообще значит?

afq пишет свою систему обнаружения вторжения.

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

Я правильно понимаю?

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

Т.е. Хакеры используют связанные с протоколами уязвимости. Т.е. для этого между ним и атакуемой машиной должно быть установлено соединение(слушать/отправлять туды сюды). Верно?

Т.е. спам пакетами, snort не про это. Не про дудос. Хотя afq пишет что на этот случай меры тоже есть. Или я опять что-то путаю.


Сообщение отредактировал 8it2d - Среда, 02 Октября 2019, 22:48
drcrackДата: Четверг, 03 Октября 2019, 00:22 | Сообщение # 16
старожил
Сейчас нет на сайте
Цитата
ARP спуфинг это перехват трафика прикинувшись звеном атакуемой сети.

каким образом это вообще является угрозой для игрового сервера в интернете?

Цитата
Т.е. для этого между ним и атакуемой машиной должно быть установлено соединение(слушать/отправлять туды сюды). Верно?

неверно, есть куча протоколов без концепции "соединения" (тот же udp)


Сообщение отредактировал drcrack - Четверг, 03 Октября 2019, 00:22
afqДата: Четверг, 03 Октября 2019, 08:38 | Сообщение # 17
Разработчик
Сейчас нет на сайте
Цитата
Т.е. Хакеры используют связанные с протоколами уязвимости. Т.е. для этого между ним и атакуемой машиной должно быть установлено соединение(слушать/отправлять туды сюды). Верно?

8it2d, в случае с arp устанавливать соединение не требуется. Надо лишь слать arp пакет, что твой хост это роутер, а роутеру слать arp пакет, что твой хост это жертва. И тогда отравляется таблица mac адресов и пакеты гуляют туда сюда. Но это работает только в локальной сети. Будешь в интернет кафе например, можешь чувствовать себя в безопасности. Антивирус вряд-ли в чём то поможет. Я например обдумывал кое что и это реально сделать и об этом я читал в книге. Можно перехватывать данные, и когда жертва захочет скачать программу из интернета, то она скачает не эту программу, а вирус хакера. Это делается так. В tcp пакете есть seq вроде называется, это счётчик, номер пакета, то есть он увеличивается на один при каждом получении и отправлении. Если я успею подделать пакет от отправителя ( что не сложно ), то могу и seq выставить в нужное число, и тогда реальное соединение отброситься, а пакеты хакера будут приниматься. И так ты можешь получить что угодно.
afqДата: Четверг, 03 Октября 2019, 08:43 | Сообщение # 18
Разработчик
Сейчас нет на сайте
Цитата
какую конкретно проблему решает это приложение?

drcrack, знаешь, я что-то подумал, а какую проблему решает твоя игра? хахаха
drcrackДата: Четверг, 03 Октября 2019, 10:32 | Сообщение # 19
старожил
Сейчас нет на сайте
Цитата
drcrack, знаешь, я что-то подумал

ты не очень быстро думаешь, да?


Сообщение отредактировал drcrack - Четверг, 03 Октября 2019, 10:32
afqДата: Четверг, 03 Октября 2019, 10:49 | Сообщение # 20
Разработчик
Сейчас нет на сайте
Цитата
ты не очень быстро думаешь, да?

drcrack, да. Временами, ну редко, быстро получается думать только из опыта, если есть опыт уже в чём то, то думается быстро. А так приходится обдумывать подолгу. Я даже где-то слышал что те кто долго думают, не особо умные, типа те кто быстро выбирают решение, те умные. Но блин. Мне лучше всё взвесить и обдумать хорошенько если нет в этом опыта, чем выбрать то, не обдумав. Но ты наверное не об этом спросил да?
Форум игроделов » Программирование » C/C++ » cymix - система обнаружения вторжений
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг