Атака Сивиллы
Атака Сивиллы (англ. Sybil attack) — вид атаки в одноранговой сети, в результате которой жертва подключается только к узлам, контролируемым злоумышленником. Термин предложен в 2002 сотрудником Microsoft Research Брайаном Зилом. Название выбрано в честь псевдонима главной героини книги-бестселлера 1973 года «Сивилла» о лечении диссоциативного расстройства личности.[1] Несмотря на то, что в русском переводе книги — первоисточника названия — используется вариант «Сивилла», также встречается использование транслитерации «Сибилла». До 2002 года атаки того же класса были известны под термином псевдоспуфинг, который ввёл Л. Детвейлер в списке рассылки шифропанков.[2]
Описание
В одноранговых сетях, где ни один узел не является доверенным, каждый запрос дублируется нескольким получателям с тем, чтобы не оказалось единственного узла, ответу которого было бы необходимо полностью доверять. В то же время, пользователи сети могут иметь несколько идентификаторов, физически относящихся к разным узлам. Добросовестно эти идентификаторы можно использовать, чтобы разделять общие ресурсы или иметь несколько их копий. Последнее создаст избыточность, которая позволит проверять целостность данных, принятых из сети независимо. Обратной стороной такого подхода является то, что в какой-то момент все доступные узлы, которые должны представлять разных получателей некоторого запроса, могут контролироваться одним и тем же пользователем. Таким образом, если этот пользователь окажется злоумышленником, у него в данном сеансе будут все возможности посредника, неоправданно получившим полное доверие инициатора сеанса. Чем больше идентификаторов принадлежит злоумышленнику, тем больше шансов, что следующий сеанс некоторого пользователя с p2p-сетью окажется замкнут на этих узлах-псевдонимах. При этом злоумышленнику важно, чтобы новый идентификатор было достаточно легко создать.[3]
В силу отсутствия доверенного центра, в одноранговой сети есть 2 способа признать новый идентификатор: либо получить гарантии его добросовестности от других узлов, либо самостоятельно его проверить каким-либо образом.[3]
При прямой проверке:
- Даже если ресурсы ограничены, злоумышленник всё равно может контролировать какое-то число идентификаторов.
- Злоумышленник может создавать идентификаторы-псевдонимы снова и снова, если он не обязан подтверждать владение всеми ими одновременно.
При косвенной проверке:
- Достаточно большое число подконтрольных идентификаторов позволяет подделывать неограниченное число новых.
- Злоумышленник всегда сможет контролировать большое число идентификаторов, если он не обязан непрерывно их подтверждать.
С ростом децентрализованной сети растёт и количество идентификаторов-псевдонимов. Становится нецелесообразно требовать каждого пользователя подтверждать владение своими идентификаторами одновременно и непрерывно, поскольку это существенно мешает масштабируемости сети.[3] В 2012 году было показано, что широкомасштабные атаки можно проводить дёшево и эффективно в существующих системах, таких как BitTorrent Mainline DHT.[4][5] Активное внимание противодействию атаке Сивиллы уделяется в рамках разработки автомобильных сетей vehicle-to-vehicle (v2v).[6]
Инциденты
- 2014 год — атака Сивиллы длительностью в пять месяцев (с февраля по июль) произведена неизвестными в рамках сети Tor.[7][8] Позже, разработчики сети создали программное средство, которое позволило обнаружить множество узлов-псевдонимов. Были вскрыты схемы перезаписи адресов кошельков Bitcoin, перенаправления на фишинговые сайты, а также ряд узлов, применяемых для исследования возможности деанонимизации сети. [9]
Противодействие
Прямая проверка
Считается, что единственный прямой способ убедить участника в том, что два узла относятся к разным пользователям — это решение задачи, которую один пользователь не может решить самостоятельно. При этом учитывается, что ресурсы узлов ограничены.
- Если учесть ограниченность скорости соединения, то участник может отправить широковещательный запрос и принимать ответы только в течение ограниченного интервала времени.
- Если учитывать ограниченность ресурсов хранения, участник может потребовать от идентификаторов хранить большое количество уникальной информации. Вместе с тем, имея при себе небольшую выжимку из этих данных, участник сможет удостовериться в том, что с высокой вероятностью эти данные всё ещё хранятся в этих узлах.
- Если использовать ограниченность вычислительных ресурсов, то участник может потребовать от каждого идентификатора решать уникальную, вычислительно сложную задачу. [3]
Косвенная проверка
Можно сэкономить собственные ресурсы, если делегировать задачу валидации узлов другим участникам. Кроме того, при таком подходе дополнительным аргументом в пользу успешного прохождения валидации станет число проверок, успешно пройденных узлом до этого. Чаян Банерджи предложил схему косвенной проверки узла, состоящей из двух стадий. На первой стадии результат проверки — степень доверия проверяемому узлу — сообщают ближайшие узлы, что позволяет не отправлять данные далеко. Полученные значения сравниваются с результатами аналогичной проверки несколькими другими, случайно выбранными удалёнными узлами. В подавляющем большинстве случаев это позволяет обнаружить узлы-псевдонимы, принимавших участие в проверке на первом этапе.[10]
Плата за регистрацию
Если ценные активы находятся в обращении в децентрализованной сети, можно потребовать плату за каждый созданный идентификатор. В таком случае, злоумышленнику придётся соотносить стоимость организации атаки с ожидаемой выгодой. Разумеется, в такой схеме организация повторной атаки ничего не будет стоить злоумышленнику. Данного недостатка можно избежать, если требовать оплаты регулярно.[11]
Социальные графы
Методы профилактики, основанные на характеристиках связности социальных графов, могут ограничить степень ущерба от атаки Сивиллы, не лишая участников сети анонимности. Данные методы не могут полностью предотвратить атаку, и они особенно уязвимы для широко распространённых атак небольшого масштаба. Тем не менее, этими методами пользуются Advogato Trust Metric и SybilGuard.[12]
Gate Keeper
Кандидат компьютерных наук Нгуен Тран[13] предложил децентрализованный протокол Gate Keeper, который производит устойчивую к атаке Сивиллы проверку узлов, основанную на механизме социальной сети. Протокол позволяет наиболее честным узлам контролировать число узлов, способных произвести атаку.[11] Автор протокола исходит из предположения, что узлы-псевдонимы расположены рядом. Тогда, если распределить право голоса между удалёнными узлами, будет очень маловероятно, что злоумышленник контролирует большинство узлов, подтверждающих валидацию. Протокол использует понятие 'уровня', основанное на расстоянии между узлами. Пусть ограниченное число голосов сначала поровну распределяется между узлами одного уровня, они оставляют себе один голос, затем голоса отправляется на следующий уровень. Так продолжается до тех пор, пока не закончатся либо голоса, либо уровни (на следующем уровне не будет узлов без голоса). На первый взгляд, при таком распределении не так просто распределить голоса между добросовестными узлами (при более детальном анализе их будет лишь около 60%). Также остаётся вероятность того, что крупная доля голосов на первых итерациях попадёт к злоумышленнику, который будет использовать их в свою пользу. Поэтому в протоколе случайным образом выбирается несколько удалённых узлов — первичных источников голосов. [14]
Доказательство выполнения работы
Считается, что консенсус Накамото за счёт привязки идентификатора к реальным вычислительным мощностям полностью сводит на нет возможность атаки. Однако, такая схема также имеет свои недостатки, в первую очередь из-за энергозатрат.[15] Предлагалось использовать случайные идентификаторы, за право распоряжаться которыми участники сети соревнуются. При этом полученным идентификатором можно распоряжаться лишь ограниченное время, после чего участнику приходится искать новый.[16]
Примечания
- ↑ Lynn Neary (20 October 2011). Real 'Sybil' Admits Multiple Personalities Were Fake Архивная копия от 15 декабря 2017 на Wayback Machine. NPR.
- ↑ Oram, Andrew. Peer-to-peer: harnessing the benefits of a disruptive technology (англ.).
- ↑ 3,0 3,1 3,2 3,3 Douceur, John R. The Sybil Attack (неопр.) // International workshop on Peer-To-Peer Systems. — 2002. Архивировано 10 марта 2016 года.
- ↑ Wang, Liang; Kangasharju, Jussi. Real-world sybil attacks in BitTorrent mainline DHT (англ.) // IEEE GLOBECOM : journal. — 2012. Архивировано 10 августа 2014 года.
- ↑ Wang, Liang; Kangasharju, Jussi. Measuring Large-Scale Distributed Systems: Case of BitTorrent Mainline DHT (англ.) // IEEE Peer-to-Peer : journal. — 2013. Архивировано 12 мая 2014 года.
- ↑ Muhammad Saad Naveed, M Hasan Islma (2015). Detection of Sybil Attacks in Vehicular Ad Hoc Networks Архивная копия от 13 августа 2017 на Wayback Machine.
- ↑ (30 Июля 2014). Tor security advisory: "relay early" traffic confirmation attack Архивная копия от 5 сентября 2017 на Wayback Machine.
- ↑ Dan Goodin (31 Июля 2014). Active attack on Tor network tried to decloak users for five months Архивная копия от 18 февраля 2017 на Wayback Machine.
- ↑ (29 Февраля 2016). Разработчики Tor намерены бороться с вредоносными узлами в сети Архивная копия от 27 декабря 2017 на Wayback Machine.
- ↑ Banerjee, Chayan. Sybil node detection in peer-to-peer networks using indirect validation (англ.) // IEEE INDICON : journal. — 2014.
- ↑ 11,0 11,1 Aksah Wanjari (2015). A Survey and Analysis of Sybil Attack in Peer to Peer Network Архивная копия от 15 августа 2017 на Wayback Machine.
- ↑ Tran, Nguyen; Li, Jinyang. Brief Announcement: Improving Social-Network-based Sybil-resilient Node Admission Control (англ.) // PODC'10 : journal. — 2010. Архивировано 7 января 2018 года.
- ↑ Алина Тестова (27 Апреля 2017). «Алгоритмы консенсуса»: Подтверждение доли и доказательство работы Архивная копия от 25 февраля 2018 на Wayback Machine.
- ↑ Corentin Wallez (2012) Protection against Sybil attacks using proof of workand randomized identifiers Архивная копия от 23 декабря 2017 на Wayback Machine