Depository of News

ч2: Разбор. Как мы закрывали утечку через tun0 в AmneziaVPN

newsdepo.com · world

Приложение, которое вы исключили из VPN на Android, может привязать сокет к tun0 , пройти через ваш туннель и узнать адрес сервера. Летом мы взялись закрыть это в AmneziaVPN ( issue #2457 ). Сама проверка в AmneziaWG уместилась в одну строчку цикла, который читает пакеты из tun: if uidfilter.Supported && !device.tun.uidGate.AllowOutboundPacket(elem.packet, device) { continue } Вокруг неё набралось полтысячи строк Go и столько же тестов, мост через JNI и три раунда ревью. В статье — почему ядро пропускает такие пакеты, почему «владелец неизвестен» у нас значит отказ, как одно приложение могло остановить весь туннель и какую ошибку мы нашли уже после ревью в собственном мосту. На телефоне с фильтром до сервера доходит 0 попыток обхода из 6, без него все 6. Но улучшать ещё есть что, и разбор мы пишем для двух целей: чтобы другим клиентам было проще закрыть ту же дыру и чтобы собрать критику. Если увидите у нас слабое место, напишите. Читать далее

Read full article →