Защита сайта биржи криптовалют

Защита сайта биржи криптовалют

Приветствую друзья! Новый год позади. Я всё ещё жив) Начинаю серию статьей о криптобиржах. В этой статье речь пойдет о безопасности сайта биржи криптовалют и обменников.

Ликбез для студента, я бы её назвал) Это самые основы защиты информации в рамках сайта, но так уж вышло, что на большинстве бирж криптовалют нет даже самых элементарных средств безопасности. О них и поговорим.
Дискламер. Просьба не рассматривать данную статью как повод поэкспериментировать со взломом.

1) Введение

2) Самый простой способ взлома

3) Получение конфиденциальных данных

4) Защита данных.

5) Заключение


1) Введение
Доходность Bitcoin бьет очередные рекорды. Количество криптобирж и обменников растет как на дрожжах. Вход в бизнес достаточно прост если не заботится о скоростях и защите. Группа студентов за пару месяцев может своять биржу! У меня, например при этом слове почему-то возникают ассоциации с MOEX. Но поверьте, тут ничего общего.
Что будет представлять из себя такая биржа сделанная на коленках? Это будет обычный сайт. Да, и всё. То есть такая биржа на HTML с управлением запросов через PHP, максимум, что она может обеспечить для алготорговли это API через HTTP. Учитывая, что помимо сайта ничего нет, ломать её можно как обычный сайт.


2) Самый простой способ взлома
Один из способов получения данных о кошельках клиентов это прикинуться сайтом биржи. Такой способ называется Man in the middle. Ситуация, при которой атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются корреспонденты, причём ни один из них не может догадаться о его присутствии в канале.
Схематично это выглядит вот так

Чаще всего эта реализация возможна с различными источниками бесплатного интернета. Думаю вы возможно видели использование этого метода когда приходите в какое-нибудь кафе с бесплатным Wi-Fi. Владелец интернета может изменить содержимое сайтов разместив рекламу для своих пользователей.
Какие сайты могут быть изменены с помощью такого метода? Все сайты идущие по протоколу HTTP не являются достаточно защищенными. Это обусловлено тем , что сообщения передаются без использования криптографии.


3) Получение конфиденциальных данных
Как получить логин и пароль? Для этого можно воспользоваться tcpflow. Эта утилита позволит сграбить трафик по HTTP и получить два потока информацию внутрь сети и запросы наружу.
команда #tcpflow port 80 -i eth1
В текущей директории начнут появляться файлы с сессионными данными. Там будет данные по заголовкам и передаваемые данные. Для фильтрации можно воспользоваться командой #egrep -ir "Authorization|Cookie" ./
Таким образом мы получаем сессионные данные Cookies. Для того чтоб ими воспользоваться нужно воспользоваться менеджером, например EditThisCookie и вбить туда эти значения. Теперь у нашего браузера есть чужая сессия. Если данные аутентификации закодированы, то их можно раскодировать. Всего есть два варианта кодирования: Basic, Digest
В случае Basic кодирования, пара логин и пароль передается закодированной base64. В это случае берем строчку из Authorization и декодируем ее в base64 декодере, получаем строчку вида username:password
В случае Digest, передается хеш от функции MD5(username:realm:password). Тут посложней. Можно попробовать через rainbow-таблицы найти все совпадения строк вида «A:B:C», где А — логин, B – realm, С — пароль. Таких совпадений должно оказаться не так много.
Так же данные могут идти через HTTP POST в этом случае в файлах стоит искать стрички типа login=username&password=xxx
Так же утилита может парсить почтовый и файловый трафик.


4) Защита данных.
Первое что стоит сделать это защитить передаваемый трафик. К передаваемой информации предъявляются ряд требований: конфиденциальность, целостность, подлинность.
Все эти требования соответствуют протоколу HTTPS. HTTPS защищает коммуникации между двумя сторонами, гарантирует, что информация достигнет адресата в полном виде используя асимметричные и симметричные алгоритмы шифрования. За счет использования сертификации гарантирует, что веб-сайт в реальности является тем, за кого себя выдаёт. Если использовать EV сертификат, то можно закрепить сайт за определенной организацией.
Пример того как выглядит адресная строка сайта с EV сертификатом

сайт с EV сертификатом

Пример того как выглядит адресная строка сайта без сертификатов, без использования HTTPS

Если отображается просто зеленый замочек, то скорей всего это DV сертификат подтверждающий, что домен соответствует определённому публичному ключу выданному для этого сайта.


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

08:13
106

Комментарии

Нет комментариев. Ваш будет первым!