Skip to content

🚨 Аудит смарт-контрактов 🔍 Проверим ваш код на уязвимости и риски! Защищаем проекты от потерь!

License

Notifications You must be signed in to change notification settings

elstrm2/CMAt-Bot

Repository files navigation

🤖 Telegram Бот для Аудита Смарт-Контрактов 🛡️

Добро пожаловать в репозиторий Telegram Бота для Аудита Смарт-Контрактов! Этот бот помогает Вам проверять безопасность ваших смарт-контрактов на Solidity, предоставляя подробные аудиты прямо в Telegram. 🚀

📋 Содержание

✨ Особенности

  • Асинхронная Обработка: обеспечивает высокую производительность и отзывчивость с использованием asyncio и aiogram. ⚡
  • Безопасность Данных: безопасное хранение данных в PostgreSQL с использованием SQLAlchemy и управление очередями и кэшированием через Redis. 🔒
  • Гибкая Система Аудитов: предоставляет бесплатные аудиты и позволяет покупать дополнительные аудиты через простые команды. 💳
  • Автоматизированный Аудит: орабатывает запросы на аудит в фоновом режиме, генерирует HTML-отчеты и автоматически уведомляет пользователей. 🕒
  • Расширяемость: легко добавлять новые критерии аудита и интегрировать дополнительные инструменты анализа. 📈
  • Информативные Отчеты: предоставляет детализированные HTML-отчеты с рекомендациями и выявленными уязвимостями. 📑
  • Удобный Интерфейс: интуитивно понятный интерфейс Telegram с кнопками и inline-клавиатурами для удобного взаимодействия. 🎨
  • Логирование и Мониторинг: встроенная система логирования для отслеживания действий и быстрого выявления ошибок. 📝
  • Управление Очередью: эффективно обрабатывает запросы на аудит с помощью Redis, обеспечивая последовательную обработку. 🛣️
  • Автоматическая Очистка: удаляет временные файлы после аудита для поддержания эффективности сервера. 🧹

🛠️ Установка

  1. Клонируйте Репозиторий:

    git clone https://github.com/elstrm2/CMAt-Bot.git
    cd CMAt-Bot
  2. Создайте Виртуальное Окружение:

    python3 -m venv venv
    source venv/bin/activate
  3. Установите Зависимости:

    pip install -r requirements.txt
  4. Настройте Переменные Окружения:

    • Создайте файл .env в корневом каталоге.
    • Добавьте следующие переменные:
      TOKEN=ваш_токен_бота
      DB_USER=ваш_пользователь_бд
      DB_PASSWORD=ваш_пароль_бд
      DB_HOST=ваш_хост_бд
      DB_PORT=ваш_порт_бд
      DB_NAME=ваше_имя_бд
      DB_POOL_SIZE=10
      DB_MAX_OVERFLOW=20
      REDIS_HOST=ваш_хост_redis
      REDIS_PORT=6379
      REDIS_PASSWORD=ваш_пароль_redis
      REDIS_DB=0
      DEBUG_LEVEL=INFO
  5. Запустите Бот:

    python main.py

🔧 Использование

Начните взаимодействие с ботом, отправляя команды в Telegram. Бот проведет Вас через процесс аудита, управляет вашими кредитами на аудит и предоставит подробные отчеты.

📜 Команды

  • /start 🎉
    Инициализирует взаимодействие с ботом и регистрирует Вас в системе.

  • /about ℹ️
    Предоставляет информацию о возможностях бота и доступных командах.

  • /free 🎁
    Предоставляет 2 бесплатных аудита (доступны новым пользователям).

  • /buy {кол-во} 💳
    Покупка дополнительных кредитов на аудит.
    Пример: /buy 5

  • /status 📈
    Проверка доступных кредитов на аудит и получение рекомендаций.

  • /audit 🛡️
    Отправьте ваш смарт-контракт на Solidity (.sol) для аудита.
    Пример: Отправьте /audit с прикрепленным файлом .sol.

🔍 Процесс Аудита

Когда Вы запрашиваете аудит, бот выполняет следующие основные шаги для тщательной оценки вашего смарт-контракта:

  1. Инициация 👋
    Вы начинаете, отправляя команду /audit вместе с вашим файлом .sol. Бот проверяет формат файла и наличие доступных кредитов на аудит.

  2. Очередь 🕒
    Ваш запрос на аудит добавляется в очередь Redis, обеспечивая упорядоченную обработку. Вы получаете информацию о вашей позиции в очереди и подтверждение.

  3. Обработка 🔄
    Фоновый процесс извлекает ваш запрос из очереди и начинает аудит:

    • Reentrancy 🔁: проверяет наличие повторных вызовов функций, которые могут вывести средства.
    • Integer Overflow/Underflow ➕➖: убедитесь, что арифметические операции безопасны от переполнения или опустошения.
    • Access Control 🔐: проверяет корректность ограничений доступа к чувствительным функциям.
    • Unhandled Exceptions ❌: убеждается, что все исключения корректно обрабатываются, предотвращая непредвиденное поведение.
    • Denial of Service (DoS) 🚫: проверяет уязвимости, которые могут заблокировать функционал контракта.
    • Unprotected Self-Destruct 💥: убеждается, что контракт не может быть злонамеренно уничтожен.
    • Front-Running ⏩: защищает от атак, связанных с порядком транзакций.
    • Uninitialized Storage Pointers 📌: убеждается, что все указатели хранения корректно инициализированы.
    • Gas Limit and Loops ⛽: проверяет проблемы с потреблением газа в циклах.
    • Timestamp Dependence ⏲️: убеждается, что логика контракта не зависит некорректно от временных меток.
  4. Генерация Отчета 📑
    После аудита создается HTML-отчет с подробными результатами и рекомендациями.

  5. Доставка 📤
    Бот отправляет Вам HTML-отчет и уведомляет о завершении аудита.

  6. Очистка 🧹
    Временные файлы автоматически удаляются для поддержания эффективности сервера.

🧰 Используемые Технологии

  • Python 🐍: основной язык программирования.
  • Aiogram 🤖: фреймворк для Telegram ботов, поддерживающий асинхронные операции.
  • SQLAlchemy 🗄️: ORM для взаимодействия с базой данных PostgreSQL.
  • PostgreSQL 🐘: база данных для хранения данных пользователей и аудитов.
  • Redis 🔄: хранилище данных в памяти для управления очередями аудитов и кэширования.
  • Asyncio ⚡: библиотека Python для написания конкурентного кода с использованием синтаксиса async/await.
  • Slither, MythX, Oyente 🛠️: инструменты для статического анализа и обнаружения уязвимостей в смарт-контрактах.
  • UUID 🔑: для генерации уникальных идентификаторов покупок и запросов на аудит.
  • Logging 📝: модуль логирования Python для отслеживания действий бота и ошибок.

🤝 Вклад

Мы приветствуем ваши вклады! Чтобы внести вклад, выполните следующие шаги:

  1. Форкните Репозиторий 🍴
  2. Создайте Новую Ветку 🌿
    git checkout -b feature/YourFeature
  3. Закоммитьте Изменения ✍️
    git commit -m "Добавить новую функцию"
  4. Запушьте Ветку 🚀
    git push origin feature/YourFeature
  5. Откройте Pull Request 🔀

Пожалуйста, убедитесь, что ваш код соответствует стандартам проекта и включает соответствующие тесты.

📄 Лицензия

Этот проект лицензирован под MIT License. Вы можете использовать и изменять его в соответствии с условиями лицензии. 📜


😊 Спасибо за использование Telegram Бота для Аудита Смарт-Контрактов! Если у Вас есть вопросы или предложения, не стесняйтесь открыть issue или связаться с нами напрямую. Давайте обеспечим максимальную безопасность ваших блокчейн-проектов! 🛡️🚀

About

🚨 Аудит смарт-контрактов 🔍 Проверим ваш код на уязвимости и риски! Защищаем проекты от потерь!

Resources

License

Stars

Watchers

Forks

Packages

No packages published