An automated script for auditing the security of Linux systems using OpenAI for analysis and Telegram for notifications.
This project is a bash script that collects key data about a server's security posture, generates a detailed report, and sends it to OpenAI for analysis. The resulting analysis, complete with findings and recommendations from the AI, is saved to a file and sent as a notification to Telegram.
- Comprehensive Data Collection: Gathers information about the system, network, users, logs, installed packages, and more.
- Intelligent Analysis: Leverages the power of OpenAI's language models (GPT) to identify potential vulnerabilities and suspicious activity.
- Instant Notifications: Sends the analysis results directly to your Telegram chat.
- Automation: Easily configured for regular automatic execution using
cron. - Archiving: Saves both the raw data and the analysis results for later review.
- Data Collection: The script runs a set of system commands (
chkrootkit,iptables,lsof,last, etc.) to gather information. - Report Generation: All collected data is consolidated into a temporary text report.
- Request to OpenAI: The report is sent to the OpenAI API with a system prompt instructing the model to analyze the data as a cybersecurity expert.
- Saving and Notification: The response from OpenAI, along with the original request, is saved to a file in the
analysis_reports/directory and also sent to Telegram.
Before running, ensure your system has the following utilities installed:
curljqchkrootkitfail2ban-client(if using Fail2Ban)iptablesnetstat(orssfrom theiproute2package)lsof
You can install them using your distribution's package manager (e.g., sudo apt-get install curl jq chkrootkit lsof).
-
Clone the repository (or simply copy the project files):
git clone [your-repository-url] cd Security-Analyzer-Project -
Set up the configuration files: The project includes two example configuration files:
openai.conf.exampleandtelegram.conf.example.-
OpenAI: Create a copy of
openai.conf.exampleand name itopenai.conf.cp openai.conf.example openai.conf
Open
openai.confand insert your OpenAI API key.OPENAI_API_KEY="sk-..."
-
Telegram: Create a copy of
telegram.conf.exampleand name ittelegram.conf.cp telegram.conf.example telegram.conf
Open
telegram.confand enter your Telegram bot token and yourCHAT_ID.BOT_TOKEN="1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" CHAT_ID="123456789"
-
-
Set execute permissions:
chmod +x final_analyzer.sh
To run the analysis, execute the script with sudo rights:
sudo ./final_analyzer.shThe script will print the analysis from OpenAI to the console, save the full report to the analysis_reports/ directory, and send a notification to Telegram.
To have the script run automatically, add it to the root user's crontab.
-
Open the
crontabfor editing:sudo crontab -e
-
Add the following line to run the analysis every day at 6:00 AM (specify the absolute path to the script):
0 6 * * * /path/to/project/Security-Analyzer-Project/final_analyzer.shFor example:
0 6 * * * /root/gemini/Security-Analyzer-Project/final_analyzer.sh
API Keys:
IMPORTANT: The openai.conf and telegram.conf files contain your secret API keys and tokens. They are already included in the .gitignore file to prevent them from being accidentally committed to a public repository. Never publish these files.
Data Transmission: This script collects a wide range of system information, including logs, user lists, and network configurations. This data is sent to the OpenAI API for analysis. While the transmission to the OpenAI API is encrypted (using HTTPS), be aware that you are sending potentially sensitive system data to a third-party service. Review the data collected by the script and assess if it aligns with your privacy and security requirements.
Автоматизированный скрипт для аудита безопасности Linux-систем с использованием OpenAI для анализа и Telegram для уведомлений.
Этот проект представляет собой bash-скрипт, который собирает ключевые данные о состоянии безопасности сервера, формирует на их основе подробный отчет и отправляет его на анализ в OpenAI. Полученный от искусственного интеллекта анализ с выводами и рекомендациями сохраняется в файл и отправляется в виде уведомления в Telegram.
- Комплексный сбор данных: Собирает информацию о системе, сети, пользователях, логах, установленных пакетах и многом другом.
- Интеллектуальный анализ: Использует мощь языковых моделей OpenAI (GPT) для выявления потенциальных уязвимостей и подозрительной активности.
- Мгновенные уведомления: Отправляет результаты анализа прямо в ваш чат в Telegram.
- Автоматизация: Легко настраивается для регулярного автоматического запуска с помощью
cron. - Архивирование: Сохраняет как исходные данные, так и результаты анализа для последующего изучения.
- Сбор данных: Скрипт запускает набор системных команд (
chkrootkit,iptables,lsof,lastи др.) для сбора информации. - Формирование отчета: Все собранные данные объединяются во временный текстовый отчет.
- Запрос к OpenAI: Отчет отправляется в API OpenAI с системным промптом, который инструктирует модель проанализировать данные как эксперт по кибербезопасности.
- Сохранение и уведомление: Ответ от OpenAI вместе с исходным запросом сохраняется в файл в директории
analysis_reports/, а также отправляется в Telegram.
Перед запуском убедитесь, что в вашей системе установлены следующие утилиты:
curljqchkrootkitfail2ban-client(если используется Fail2Ban)iptablesnetstat(илиssиз пакетаiproute2)lsof
Вы можете установить их с помощью менеджера пакетов вашего дистрибутива (например, sudo apt-get install curl jq chkrootkit lsof).
-
Клонируйте репозиторий (или просто скопируйте файлы проекта):
git clone [URL-вашего-репозитория] cd Security-Analyzer-Project -
Настройте конфигурационные файлы: В проекте есть два файла с примерами конфигурации:
openai.conf.exampleиtelegram.conf.example.-
OpenAI: Создайте копию файла
openai.conf.exampleи назовите ееopenai.conf.cp openai.conf.example openai.conf
Откройте
openai.confи вставьте ваш API-ключ от OpenAI.OPENAI_API_KEY="sk-..."
-
Telegram: Создайте копию файла
telegram.conf.exampleи назовите ееtelegram.conf.cp telegram.conf.example telegram.conf
Откройте
telegram.confи впишите токен вашего Telegram-бота и вашCHAT_ID.BOT_TOKEN="1234567890:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" CHAT_ID="123456789"
-
-
Установите права на выполнение:
chmod +x final_analyzer.sh
Для запуска анализа выполните скрипт с правами sudo:
sudo ./final_analyzer.shСкрипт выведет в консоль результат анализа от OpenAI, сохранит полный отчет в директорию analysis_reports/ и отправит уведомление в Telegram.
Чтобы скрипт запускался автоматически, добавьте его в crontab пользователя root.
-
Откройте
crontabдля редактирования:sudo crontab -e
-
Добавьте следующую строку для запуска анализа каждый день в 6:00 утра (укажите абсолютный путь к скрипту):
0 6 * * * /путь/к/проекту/Security-Analyzer-Project/final_analyzer.shНапример:
0 6 * * * /root/gemini/Security-Analyzer-Project/final_analyzer.sh
Ключи API:
ВАЖНО: Файлы openai.conf и telegram.conf содержат ваши секретные ключи и токены. Они уже добавлены в файл .gitignore, чтобы предотвратить их случайную выгрузку в публичный репозиторий. Никогда не публикуйте эти файлы.
Передача данных: Этот скрипт собирает большой объем системной информации, включая логи, списки пользователей и сетевые конфигурации. Эти данные отправляются на анализ в API OpenAI. Хотя передача данных в OpenAI API зашифрована (с использованием HTTPS), помните, что вы отправляете потенциально чувствительные системные данные стороннему сервису. Ознакомьтесь с данными, которые собирает скрипт, и оцените, соответствует ли это вашим требованиям к приватности и безопасности.
Автор: Василий Кубарев
Сайт: kubarev.space
Другие проекты: GitHub Profile