VIZANIXРазработка торгового ПО
Bybit APIБезопасность7 мин чтения

Как безопасно хранить API-ключи Bybit: короткий список, которому реально можно следовать

Большинство инцидентов с ключами не изощрённые. Ключ оказывается в репозитории, в сообщении чата или в окружении, которое читает больше людей, чем предполагалось.

Инженеры Vizanix · об авторе

МАТЕРИАЛ
7 минвремя чтения
РАЗДЕЛ
Bybit API
ОПУБЛИКОВАНО
2026-08-28
ГЛАВ
7
ЧИТАТЬ ДАЛЬШЕ
3
ЯЗЫК
написано на русском
Инженерный разбор, а не пересказ документации.
API KEYSNO WITHDRAWALIP ALLOWLISTSECRETSAUDIT

Биржевой API-ключ — это предъявительский документ. Кто им владеет, может делать всё, что ключу разрешено, откуда позволяет белый список, без всякой дополнительной аутентификации. Отнеситесь к нему соответственно — и почти вся практика следует сама.

Никогда не давайте право на вывод средств

Это единственное правило, которое превращает катастрофу в неудобство. Торговому боту нужны права на торговлю и чтение. Возможность выводить средства с биржи ему не нужна никогда.

Украденный торговый ключ может потерять деньги плохой торговлей — реально, но ограниченно и заметно. Украденный ключ с правом вывода опустошает счёт. Если разработчик просит право на вывод с вашего аккаунта, это конец разговора, а не начало переговоров.

Пользуйтесь белым списком IP

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

Эксплуатационная цена реальна, но мала: при переезде сервера надо не забыть обновить список, а симптом забывчивости — 10018. Свяжите эту ошибку с внятным алертом — и цена исчезает.

Где лежит секрет

В порядке предпочтения:

  1. Менеджер секретов, если он у вас уже есть.
  2. Файл, читаемый только служебным пользователем, загружаемый при старте процесса: chmod 600, владелец — та учётная запись, под которой работает бот.
  3. Переменная окружения, заданная через EnvironmentFile в systemd-юните — то же самое в другой форме.

И места, где он не должен быть никогда: система контроля версий, слой Docker-образа, командная строка (видна в ps), строка лога, отчёт об ошибке, скриншот в чате поддержки или сообщение боту.

python
# Читаем при старте, держим в памяти, никогда не печатаем.
def load_secret(path: str) -> str:
    st = os.stat(path)
    if st.st_mode & 0o077:
        raise SystemExit(f"{path} читается группой или всеми — отказываюсь стартовать")
    return pathlib.Path(path).read_text().strip()

# В каждом форматтере логов, в каждом обработчике исключений:
def redact(text: str) -> str:
    return API_KEY_RE.sub("***", text)

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

Ключи не должны ходить через Telegram

Пульт в Telegram действительно полезен — именно так управляется наш собственный исполнитель. Но есть жёсткая граница: бот принимает через Telegram команды, но никогда — секреты.

Ключ, вставленный в чат, существует на серверах Telegram, в истории у каждого участника, в кэшах десктопных клиентов и в резервных копиях этих устройств. Его нельзя развидеть. Если система просит отправить API-ключ боту, эта система спроектирована неправильно.

Правильный порядок: ключи кладёт на сервер тот, кому они принадлежат, а чат-интерфейс может ссылаться на них только по имени.

Один ключ на одну задачу

Отдельные ключи для отдельных ботов и отдельные ключи для мониторинга на чтение. Польза проявляется во время инцидента: можно отозвать тот, что вёл себя неправильно, не останавливая всё остальное, а логи самой биржи скажут, какой компонент что сделал.

Это же делает возможной работу с несколькими аккаунтами. Наш исполнитель поддерживает несколько ключей на пользователя, у каждого своя стратегия, свой набор монет и своя статистика, — и это работает только потому, что ключ является единицей изоляции, а не общей глобальной переменной.

Ротация и наличие плана

Ротируйте по расписанию и немедленно при любом подозрении. Болезненной ротацию делает не криптография, а обнаружение в два часа ночи, что никто не знает, какие сервисы используют этот ключ.

Запишите ответ заранее: какой ключ, какой сервис, какой хост, кто владелец, как отозвать. Инвентарь ключей — скучный документ, который становится очень ценным ровно один раз.

Коротко

  • Только торговые права. Никакого вывода средств.
  • Белый список IP включён всегда.
  • Секрет в файле с правами 600 или в менеджере секретов, загружается при старте.
  • Вырезание секретов в форматтере логов, а не в каждом месте вызова.
  • Никаких секретов через чат-интерфейсы. Никогда.
  • Один ключ на бота, на аккаунт, на задачу.
  • Записанный инвентарь и ротация, которую вы реально отрепетировали.

Статья описывает инженерную практику. Это не инвестиционная рекомендация. Vizanix разрабатывает программное обеспечение и не обещает торговую доходность.

Блог

Читать дальше

Хотите такое у себя?

Мы пишем о том, что строим. Если нужно построить — напишите, разбор бесплатный.

Бриф

Получить оценку проекта

Четыре вопроса и контакт. Предоплата для разговора не нужна — если задача не наша, скажем сразу.

01Что вам нужно
02Биржа
03Рынок
04Стратегия
05Контакты

Проще написать напрямую? Telegram @vx_ceo

Обсудить систему