Ограничить доступ приложений к определенным ресурсам

К сожалению, вы не можете заблокировать второй DHCP в той же локальной сети (конечно, не на уровне брандмауэра, и смягчение его последствий с помощью высокопроизводительного корпоративного коммутационного оборудования - непростая тема); IP-запрос - это служба широкополосной рассылки, которая обычно работает на уровне локальной сети, и поэтому нет служб маршрутизации для блокировки служб на уровне межсетевого экрана.

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

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

Что можно сделать, так это смягчить последствия, то есть найти MAC-адрес неисправного оборудования и найти его в коммутаторах или заблокировать этот MAC-адрес в коммутаторах / беспроводной точке доступа.

Чтобы узнать это, у вас есть два возможных пути:

Вы заходите на зараженный компьютер и пытаетесь узнать IP-адрес DHCP-сервера, который обслужил этот запрос. Или, если на то пошло, освободите IP-адрес и попросите его несколько раз.

Получив ответ для внешнего маршрутизатора, получите этот IP-адрес (например, с помощью ipconfig / all в клиенте Windows), затем получите этот MAC-адрес, а затем предположите, что IP-адрес мошеннический DHCP-сервер - 1.1.3.200:

$ping -c1 1.1.3.200 
PING 1.1.3.200 (1.1.3.200) 56(84) bytes of data.
64 bytes from 1.1.3.200: icmp_seq=1 ttl=255 time=0.273 ms

--- 1.1.3.200 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.273/0.273/0.273/0.000 ms
$arp -a 1.1.3.200
xxxx.local (1.1.3.200) at 00:0b:fc:07:04:01 [ether] on eth0

Или, как я предпочитаю, в окне Linux вы используете tcpdump для прослушивания пары запросов DHCP (в поле есть горизонтальный ползунок, чтобы увидеть весь текст )

sudo tcpdump -n -c 10 -e port 68
09:23:57.298176 00:21:97:c6:76:fc > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.2.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:21:97:c6:76:fc, length 300
09:23:59.034798 00:19:21:3c:2c:22 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.116.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:19:21:3c:2c:22, length 300
09:24:00.191144 64:00:6a:09:58:16 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.142.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 64:00:6a:09:58:16, length 300
09:24:07.325291 6c:62:6d:d0:20:f4 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.2.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 6c:62:6d:d0:20:f4, length 300
09:24:31.500826 00:23:24:06:e8:0b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 363: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:23:24:06:e8:0b, length 321
09:24:31.502554 00:0b:fc:07:04:00 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.254.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
09:24:31.502812 00:0b:fc:07:04:01 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.200.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
09:24:32.098505 00:0f:fe:fd:6c:27 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.10.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0f:fe:fd:6c:27, length 300
09:24:49.340908 64:00:6a:09:05:6d > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.174.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 64:00:6a:09:05:6d, length 300
09:24:53.444891 ac:16:2d:08:44:1b > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 1.1.3.170.68 > 255.255.255.255.67: BOOTP/DHCP, Request from ac:16:2d:08:44:1b, length 300

Обратите внимание на строки, в которых написано "Ответ DHCP":
в этом примере сервер DHCP - 1.1.3.254 и MAC 00: 0b: fc: 07: 04: 00; второй имеет IP-адрес 1.1.3.200 и MAC-адрес 00: 0b: fc: 07: 04: 01 (6-я и 7-я строки вывода).

1
08.07.2017, 03:25
1 ответ

Если вы хотите использовать подход модели Android, вы можете запустить приложение в песочнице. В качестве альтернативы или в дополнение к этому вы также можете использовать chroot, SELinux,DAC(Дискреционный контроль доступа ); или, возможно, использовать отдельных непривилегированных пользователей для дальнейшей изоляции определенных элементов, что упрощает введение ограничений, не затрагивая других пользователей и/или систему; то же самое с группами :создайте группу с определенными разрешениями и добавьте пользователя в эту группу.

https://developer.android.com/guide/topics/permissions/requesting.html

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

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

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

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

0
28.01.2020, 00:52

Теги

Похожие вопросы