The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлен новый вид атаки по перехвату данных, передаваемых через HTTPS-соединения

06.08.2013 22:47

На прошедшей конференции Black Hat была обнародована информация о новом виде атаки BREACH, позволяющем восстановить содержимое отдельных секретных идентификаторов (например, сессионные cookie и CSRF-токены), передаваемых внутри зашифрованного HTTPS-соединения. Метод атаки BREACH практически идентичен представленной в прошлом году атаке CRIME (Compression Ratio Info-leak Made Easy), за тем исключением, что атака оперирует особенностью изменения характера потока при сжатии на уровне HTTP, а не при сжатии на уровне TLS/SSL, как в случае с CRIME.

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

Так как содержимое отправляемых JavaScript-кодом помеченных пакетов известно, за исключением секретного идентификатора, и известен размер всех данных, то путем повторной отправки подставных запросов атакующий может символ за символом угадать содержимое искомых данных, сопоставляя свои попытки изменением размера сжатых данных (восстановление CSRF-токена было продемонстрировано за 30 секунд, потребовав отправки примерно 4000 пробных запросов). Точность восстановления оценивается в 95%.

Если для защиты от CRIME уже повсеместно отключено сжатие на уровне TLS/SSL, то в случае BREACH требуется отключение сжатия gzip/deflate на уровне HTTP. В качестве метода защиты на уровне web-приложений, предлагается случайным образом менять представление секретных идентификаторов при каждом запросе, например, через операцию XOR со случайной маской.

  1. Главная ссылка к новости (http://threatpost.com/breach-c...)
  2. OpenNews: Представлена техника перехвата данных для сжатых соединений TLS и SPDY
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/37614-ssl
Ключевые слова: ssl, crypt, tls
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (68) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:13, 06/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как хорошо что в последнем firefox убрали опцию "noscript"
     
     
  • 2.2, Аноним (-), 23:19, 06/08/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    «Честному человеку скрывать нечего» ©
     
     
  • 3.5, JOO (?), 23:36, 06/08/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    "Все врут" ©
     
     
  • 4.7, Аноним (-), 23:40, 06/08/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > "Все врут" ©

    Врет ли врун, когда говорит, что он врет?

     
     
  • 5.9, Аноним (-), 00:06, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Рекурсия
     
     
  • 6.12, Аноним (-), 00:10, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Рекурсия

    Нет, всего лишь антиномия.

     
  • 6.16, Ordu (ok), 00:16, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Нет. Это не рекурсия. Что за манера сводить всё разнообразие проявлений окружающей среды к своему ограниченному лексикону? Это не рекурсия, а логический парадокс. Гурманы, разбирающиеся в сортах парадоксов, назвали бы его антиномией. Сия антиномия, известна как минимум, со времён Древней Греции. Ну и да, к сегодняшнему дню, математика вполне в состоянии справится с этим парадоксом, поэтому называть его парадоксом не совсем корректно. Но, для сельской местности, сойдёт.
     
     
  • 7.25, Gabrusenko (?), 08:40, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    автореференция это
     
     
  • 8.46, Аноним (-), 13:31, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Автореферентные высказывания, безусловно, относятся к рекуррентным возвратным ,... текст свёрнут, показать
     
     
  • 9.68, X86 (ok), 14:20, 10/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо тебе, что ты есть, мыслящий человек ... текст свёрнут, показать
     
  • 5.18, JOO (?), 00:33, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Уговорил. Доформулирую.
    Все лгут, но не всегда.
     
     
  • 6.65, Аноним (-), 23:52, 08/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Уговорил. Доформулирую.
    > Все лгут, но не всегда.

    Как говорил Капитан Очевидность, "я говорю правду всегда, кроме случаев, когда я лгу".

     
  • 5.23, Andrew Kolchoogin (ok), 07:22, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Цирюльник в деревне занимается тем, что бреет тех людей, которые не бреются сами. Бреет ли он при этом сам себя?
     
     
  • 6.36, the joker (ok), 11:55, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Цирюльник в деревне занимается тем, что бреет тех людей,
    > которые не бреются сами. Бреет ли он при этом сам себя?

    Оба ответа (противоположных) верны одновременно:
    а) Да, он бреется сам.
    б) Нет, его бреет цирюльник.

     
     
  • 7.64, Аноним (-), 23:50, 08/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, он вообще не бреется. Потому что автор поста выше забыл указать, что цирюльник бреет _всех_, кто не бреется сам. А без этой детали все становится очень просто (как говорят слесари на автобазе).
     
  • 6.40, Anonymous_Smoke (?), 12:24, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Не бреет. Он вообще не бреет бороду.
     
  • 6.45, Аноним (-), 13:30, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Не он, а она.
     
     
  • 7.49, Филимон Шорохов (?), 14:21, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Цирюльник - индеец. У них бороды не растут.
     
  • 5.50, Аноним (-), 14:36, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Врет! Врун всегда врет!
     
  • 5.55, Аноним (-), 19:00, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    всё же не врёт, получается
     
  • 2.4, marks (?), 23:31, 06/08/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Расширения ставить религия не позволяет?
     
     
  • 3.6, Аноним (-), 23:40, 06/08/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Расширения ставить религия не позволяет?

    <sarcasm>
    Мозилловцы уже обсуждают необходимость выпилить API-функции, требуемые для работы NoScript, ввиду того, что этим расширением пользуется менее 1% народа
    </sarcasm>

     
     
  • 4.11, Crazy Alex (ok), 00:09, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылочку приведете?
     
     
  • 5.14, Аноним (-), 00:10, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ссылочку приведете?

    Это инсайд.

     
     
  • 6.35, Аноним (-), 11:50, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Это инсайд.

    Это жирный троллинг, имхо.

     
     
  • 7.60, Шакалик (?), 02:07, 08/08/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Это инсайд.
    > Это жирный троллинг, имхо.

    Увы, нет.

     
  • 4.26, хрюкотающий зелюк (?), 09:17, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мозилловцы уже обсуждают необходимость выпилить API-функции, требуемые для работы NoScript, ввиду того, что этим расширением пользуется менее 1% народа

    только ради NoScript сижу на фоксе, неужели???

     
  • 3.8, Аноним (-), 00:04, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно какой логикой надо обладать что бы запилить по умолчанию недофаербаг, недопанельку сетевой активности и выкинуть фичи по отрубанию джаваскриптов. С какой радости вот это расширениями нельзя оставить, что это за регилия такая?
     
     
  • 4.10, Аноним (-), 00:07, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    «Целостность интерфейса»™ же.
     
     
  • 5.34, Аноним (-), 11:47, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > «Целостность интерфейса»™ же.

    Кроме того это достаточно глубокое влезание в механику браузера. Расширения... файрбаг прославился тем что вызывает ... уйму БАГОВ в процессе своей работы.

    Опыт других браузеров показал что таки как часть браузера это работает лучше. А расширением теперь будет выборочно включаться JS, да. В этом есть некая логика: в core стоит оставить то что надо часто, а что надо редко (задр@чиваются с отключкой JS только продвинутые пользователи) - аддонами.

     
     
  • 6.66, Аноним (-), 23:54, 08/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Обеспечение API для аддонов в core, как правило, гораздо сложнее реализации тех функций, которые вынесены в аддоны.
     
  • 6.67, Аноним (-), 00:44, 09/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > В этом есть некая логика: в core стоит оставить то что надо часто, а что надо редко (задр@чиваются с отключкой JS только продвинутые пользователи) - аддонами.

    Могу ещё раз повторить вопрос и переформулировать его. Вот есть простой пользователь. Есть функции в ядре броузера. Допустим две. Первая предоставлять интерфейс к недофаербагу, вторая - возможность включить/отключить скрипты на сайтах.
    Теперь вопрос. У нас простые пользователи каждые второй сайт крутят в фаербаге? Это нужнее чем иметь возможность включить-выключить скрипты на глючных сайтах? Какая тут логика? Особая?

     
  • 4.13, Crazy Alex (ok), 00:10, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да не выкидывал фичу, там новость непонятно как писали. Убрали из окошка настроек, оставив в about:config
     
  • 4.22, Аноным (ok), 02:49, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Большинству не нужно, всё, можно выкидывать.
     
     
  • 5.28, SubGun (ok), 10:20, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пропаганда меньшинства запрещена)
     
     
  • 6.37, the joker (ok), 11:59, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Пропаганда меньшинства запрещена)

    Меньшинства-то как раз под защитой. А вот кто защитит большинство от этих самых меньшинств (которых расплодилось, как собак нерезанных)?

     
     
  • 7.38, ИТтаджик (?), 12:13, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Пропаганда меньшинства запрещена)
    > Меньшинства-то как раз под защитой. А вот кто защитит большинство от этих
    > самых меньшинств (которых расплодилось, как собак нерезанных)?

    Ссыкливое большинство, умеющее только гадить на форумах и мелкопакостить в Манежах, иного недостойно.

     
  • 2.17, Аноним (-), 00:17, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > как хорошо что в последнем firefox убрали опцию "noscript"

    Но при этом добавили опцию, блокирующую выполнение незащищенных скриптов на защищенных страницах, бгг
    См. http://www.opennet.ru/opennews/art.shtml?num=37609

    > Включение системы блокирования смешанного контента, предназначенной для защиты пользователей от MITM-атак (man-in-the-middle) и от интеграции прослушивающих вставок на HTTPS-страницы. Начиная с Firefox 23 при наличии на доступной через HTTPS странице обращений к незащищённым HTTP-ресурсам, некоторые виды обращения по HTTP будут блокироваться по умолчанию. Блокироваться будет только активный контент, т.е. незащищённые запросы скриптов.

     

     
  • 2.20, Xasd (ok), 01:41, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > как хорошо что в последнем firefox убрали опцию "noscript"

    Javascript тут не причём.

    если предполижить что Javascript отключен -- то туже самую атаку можно сделать через <IFRAME> в сочитании с <META HTTP-EQUIV="REFRESH" ...>

    так что прекратите пороть чушь.

    если уж хотите глобального_и_радикального решения проблемы.

    то нужно запретить HTTP-протокол , и разрешить только HTTPS (с обязательной проверкой сертификата по DANE (DNS-based Authentication of Named Entities)).

    а также запретить IFRAME , и вообще все все ресурсы (даже картинки) подгружать только через CORS (Cross-origin resource sharing)...

    ...а Javascript тут виноват только в последнюю очередь...

     
     
  • 3.33, Аноним (-), 11:29, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > если уж хотите глобального_и_радикального решения проблемы.
    > то нужно запретить HTTP-протокол , и разрешить только HTTPS (с обязательной проверкой
    > сертификата по DANE (DNS-based Authentication of Named Entities)).

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

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

     
     
  • 4.52, Xasd (ok), 16:58, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> если уж хотите глобального_и_радикального решения проблемы.
    >> то нужно запретить HTTP-протокол , и разрешить только HTTPS (с обязательной проверкой
    >> сертификата по DANE (DNS-based Authentication of Named Entities)).
    > ...после чего соотв. ауторити просто начнут выписку левых сертов и вся эта
    > фигня пойдет лесом, как обычно.

    ды ауторити пусть хоть обвыписываются своими левыми сертифкатами, но всё равно это не будет иметь приоритета перед DANE.

    в случае если есть хотя бы ОДНА ошибка в двух проверках (DANE или ауторити) -- сайт уже считается скомпрометированным и НЕ будет открыватсья в www-браузере.

    (так написанно на wiki-страничке от Мозилки)

     
     
  • 5.56, Аноним (-), 19:21, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > не будет иметь приоритета перед DANE.

    Поэтому MITM просто поставит свой DNS сервер без этой байды посередине. Поскольку сайтов которые так не умеют будет много и еще долгие годы, типовой хомяк просто не замтит что ему DNS немного заменили. На иной, который так не умеет. Что как бы нормальная ситуация - ведь полинтернета тоже это не умеет.

     
  • 3.47, лох (?), 13:31, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> передаваемых внутри зашифрованного HTTPS-соединения
    > запретить HTTP-протокол , и разрешить только HTTPS

    перепутал?

    > туже самую атаку можно сделать через <IFRAME>

    ту же самую атаку можно будет сделать всегда, если клиент (браузер, плеер, хз-что) будет иметь возможность отправлять запрос через скомпрометированный гейт без участия юзера. Вне зависимости от протокола (НТТР/S, SPDY, FUCK и т.д.) и содержания страницы (HTML4/5, iframe, flash, jpg -- кстати жпеги тоже "ломали").

    > если уж хотите глобального_и_радикального решения проблемы
    > запретить IFRAME , и вообще все все ресурсы

    может сразу запретить весь интернет.

    > прекратите пороть чушь

     
     
  • 4.57, Аноним (-), 19:23, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > юзера. Вне зависимости от протокола

    Вот это не обязательно, кстати. Если на уровне протокола предусмотреть некий padding данных, с рандомизацией размера и прочая - MITM таки *будет* в этом случае чертыхаться.

     
  • 3.48, Аноним (-), 13:37, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    IFRAME NoScript тоже умеет блочить. Это расширение вообще очень мощная штука для безопасности, рекомендую посмотреть.
     
  • 2.24, Аноним (-), 07:38, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    убрали и павильно. Если бы можно было для определенныз сацтов разрешать это одно, а как там оно все равно бесполездно.
    Кому надо отключит через эбоут:конфиг или расширением носкрипт.
     
     
  • 3.30, Аноним (-), 11:14, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Б-ть, не печатайте на опеннет с тетрисов.
     
  • 2.29, Аноним (-), 11:13, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  как хорошо что в последнем firefox убрали опцию "noscript"

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

     

  • 1.3, Аноним (-), 23:27, 06/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ох уж этот жабакод злоумышленника
     
  • 1.15, Crazy Alex (ok), 00:11, 07/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не понял - а что, так сложно не позволять исполнять незащищенный JS на защищенной странице?
     
     
  • 2.19, Xasd (ok), 01:33, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Не понял - а что, так сложно не позволять исполнять незащищенный JS на защищенной странице?

    например заходишь ты на

    http://twitter.com

    и сервер тебя переадресовывает на

    httpS://twitter.com

    но это происходит в НОРМАЛЬНОМ случае..

    ..а в случае атаки:

    ты заходишь на

    http://twitter.com

    и тут включается CRIME-скрипт (или как его там?) ВМЕСТО переадесации на

    httpS://twitter.com

    # P.S.: стоит ли говорить про http-закоговок ---- HTTP Strict Transport Security (?) , который уже не позволит второй раз зайти на http если ты уже бывал хоть раз на https. так-что Firefox можно сказать УЖЕ на 99% защищён от этой фигни , если разработчик сайта вспомнил про "HTTP Strict Transport Security" . а если разработчик не вспомнил про этот заголовок -- то Firefox тоже защищён (но менее чем на 99%) :)

     
     
  • 3.27, Аноним (-), 09:55, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    а ежели сразу на https:// заходить, тогда, выходит, атака невозможно?
    не лучше ль тогда сварганить плагин, меняющий где только можно http на https?
     
     
  • 4.39, Anonymouse (?), 12:21, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Уже есть такой. См. eff.org/https-everywhere
     
  • 3.32, Аноним (-), 11:27, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > не вспомнил про этот заголовок -- то Firefox тоже защищён (но менее чем на 99%) :)

    Свежий лис не грузит не-HTTPS контент на HTTPS страницах по умолчанию.

     
  • 3.44, Crazy Alex (ok), 13:26, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, дошло. Ну да, можно же через формы или ифреймы дергать раз за разом HTTPS-адрес с разными параметрами...
     
     
  • 4.53, Xasd (ok), 17:01, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > ...можно же через формы или ифреймы дергать раз
    > за разом HTTPS-адрес с разными параметрами...

    верно! :)

     
  • 2.21, Аноним (-), 01:55, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно больше песочниц.
     
  • 2.31, Аноним (-), 11:26, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не понял - а что, так сложно не позволять исполнять незащищенный JS
    > на защищенной странице?

    Свежий 23-й лис кстати так и сделает - матюкнется что не шифрованный контент на шифрованной странице и не будет его вгружать.

     

  • 1.41, Аноним (-), 12:54, 07/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Если есть "выполнение на стороне браузера клиента JavaScript-кода злоумышленника", то зачем всё остальное?
     
  • 1.42, Нанобот (ok), 12:55, 07/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В качестве метода защиты на уровне web-приложений, предлагается случайным образом менять представление секретных идентификаторов при каждом запросе, например, через операцию XOR со случайной маской.

    костыли! причём кривые

     
  • 1.43, Аноним (-), 13:15, 07/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите плиз, если у апача отключить mod_deflate и mod_gzip, то эксплуатация будет невозможна????
     
     
  • 2.51, Аноним (-), 15:17, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    хотел сказать, "эксплуатация уязвимости будет невозможна?"
     

  • 1.54, Sylvia (ok), 18:06, 07/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    очень понравился лаконичный ответ Игоря Сысоева

    "gzip off" от SSL-enabled sites.
    --
    Igor Sysoev

     
     
  • 2.58, Аноним (-), 19:24, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > "gzip off" от SSL-enabled sites.

    Только у SSL еще встроенное сжатие zlib есть. Это как раз соседняя атака. Сколько там еще костылей надо поставить, ась?

     
     
  • 3.61, Sylvia (ok), 07:25, 08/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    в nginx сжатие на уровне openssl давно отключено
     
  • 2.59, Аноним (-), 21:03, 07/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> "gzip off" от SSL-enabled sites.

    Бред сивой кобыли

    gzip относиться только к модулю (HTTP)

     
     
  • 3.62, Sylvia (ok), 07:27, 08/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>> "gzip off" от SSL-enabled sites.
    > Бред сивой кобыли
    > gzip относиться только к модулю (HTTP)

    директива работает на любом блоке server {} втч и в случае listen 443 ssl;
    и да, нам как раз и нужно отключить сжатие на уровне http

     

  • 1.63, Аноним (-), 14:42, 08/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if ( $scheme = "https" ) { gzip off }
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру