Как запалить избирателей
Jun. 24th, 2016 11:08 pmМне как-то не хватало несколько раз конкретного масштабного примера, для чего используется CouchDB. То-есть, не все знают, что такое npm, например. Нужно было что-то попонятнее.
И тут проявился прекраснейший case – но, как нередко в мире CouchDB, он, скажем, необычный. Заголовочек один чего стоит:
Hackers Breach US Company and Unwittingly Expose
154 Million Voter Records
То-есть, там случилось вот что. Была CouchDB-шная база с контактами 154 миллионов американских избирателей, и была эта база за фаерволом, и потому не защищена паролем.
Фаервол проломили, и база оказалась проэкспонированной наружу. Слив такой базы – дело очень простое, для CouchDB http-запросы – нативный вид выдачи информации.
---
Пример любопытный, потому что в CouchDB встроен непрошибаемый собственный механизм авторизации и разграничения прав – я не знаю ни одного примера взлома.
Но в этом случае собственный механизм не был включен, база оставлена открытой – и в таком виде помещена за фаервол. Скажем, не слишком умное решение для настолько чувствительных данных.
Тем не менее, не исключаю, что это банальное разгильдяйство и непрофессионализм, а не архитектурная кривота.
По умолчанию CouchDB создаёт открытые бакеты и надо нажать примерно две кнопки, чтобы задать разрешения на доступ. Не удивлюсь, если эти две кнопки не были нажаты не из-за архитектуры, а по причине кривоты рук и зелёности мэйнтэйнеров.
У меня есть некоторый опыт общения с мэйнтейнерами проектов со стороны заказчиков с высокой текучкой кадров. Все особо выдающиеся случаи рисковых экспериментов я наблюдал как раз в таких организациях.
---
Зато теперь мы знаем, что CouchDB используется для агрегации и анализа данных обо всех избирателях США. Хороший пример.
И хорошее напоминание, что сразу после создания бакета CouchDB на него надо выставлять права доступа.