Integrasi Wazuh dengan Telegram
Prakata
Dalam dunia keamanan informasi, memantau kejadian yang terjadi pada sistem dan jaringan sangat penting untuk menjaga integritas dan keamanan. Salah satu cara untuk melakukan pemantauan ini adalah dengan menggunakan Wazuh, sebuah platform keamanan yang dapat mengidentifikasi potensi ancaman dan memberikan peringatan saat terdeteksi aktivitas yang mencurigakan. Wazuh mendukung integrasi dengan berbagai layanan pihak ketiga, termasuk Telegram, sehingga Anda dapat menerima pemberitahuan instan tentang kejadian penting.
Panduan ini akan memandu Anda dalam langkah-langkah untuk mengintegrasikan Wazuh dengan Telegram, sehingga Anda dapat menerima notifikasi melalui pesan Telegram setiap kali Wazuh mendeteksi ancaman. Untuk memulai, Anda perlu membuat bot Telegram dan mengkonfigurasi Wazuh agar dapat mengirimkan pemberitahuan ke bot tersebut.
Langkah — langkah
- Buat bot Telegram dengan menghubungi @BotFather dan dapatkan API keynya. API key ini akan digunakan untuk mengidentifikasi bot Anda dalam mengirimkan pesan.
- Dapatkan ID Telegram dari bot @IDBot untuk penerima notifikasi, seperti ke chat pribadi Anda atau ke grup Telegram yang Anda inginkan.
- Buat file
custom-telegram
di direktori/var/ossec/integrations/
dengan menggunakan editor teks sepertinano
atauvim.
#!/bin/sh
WPYTHON_BIN="framework/python/bin/python3"
SCRIPT_PATH_NAME="$0"
DIR_NAME="$(cd $(dirname ${SCRIPT_PATH_NAME}); pwd -P)"
SCRIPT_NAME="$(basename ${SCRIPT_PATH_NAME})"
case ${DIR_NAME} in
*/active-response/bin | */wodles*)
if [ -z "${WAZUH_PATH}" ]; then
WAZUH_PATH="$(cd ${DIR_NAME}/../..; pwd)"
fi
PYTHON_SCRIPT="${DIR_NAME}/${SCRIPT_NAME}.py"
;;
*/bin)
if [ -z "${WAZUH_PATH}" ]; then
WAZUH_PATH="$(cd ${DIR_NAME}/..; pwd)"
fi
PYTHON_SCRIPT="${WAZUH_PATH}/framework/scripts/${SCRIPT_NAME}.py"
;;
*/integrations)
if [ -z "${WAZUH_PATH}" ]; then
WAZUH_PATH="$(cd ${DIR_NAME}/..; pwd)"
fi
PYTHON_SCRIPT="${DIR_NAME}/${SCRIPT_NAME}.py"
;;
esac
${WAZUH_PATH}/${WPYTHON_BIN} ${PYTHON_SCRIPT} "$@"
- Buat file
custom-telegram.py
di direktori/var/ossec/integrations/
dan isi variabelCHAT_ID
dengan ID Telegram penerima notifikasi Anda.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import json
try:
import requests
except Exception:
print("No module 'requests' found. Install: pip3 install requests")
sys.exit(1)
#Taruh Chat ID Penerima
CHAT_ID = "xxxxxxxx"
def create_message(alert_json):
# Get alert information
title = alert_json['rule']['description'] if 'description' in alert_json['rule'] else ''
description = alert_json['full_log'] if 'full_log' in alert_json else ''
description.replace("\\n", "\n")
alert_level = alert_json['rule']['level'] if 'level' in alert_json['rule'] else ''
groups = ', '.join(alert_json['rule']['groups']) if 'groups' in alert_json['rule'] else ''
rule_id = alert_json['rule']['id'] if 'rule' in alert_json else ''
agent_name = alert_json['agent']['name'] if 'name' in alert_json['agent'] else ''
agent_id = alert_json['agent']['id'] if 'id' in alert_json['agent'] else ''
# Format message with markdown
msg_content = f'*{title}*\n\n'
msg_content += f'_{description}_\n'
msg_content += f'*Groups:* {groups}\n' if len(groups) > 0 else ''
msg_content += f'*Rule:* {rule_id} (Level {alert_level})\n'
msg_content += f'*Agent:* {agent_name} ({agent_id})\n' if len(agent_name) > 0 else ''
msg_data = {}
msg_data['chat_id'] = CHAT_ID
msg_data['text'] = msg_content
msg_data['parse_mode'] = 'markdown'
# Debug information
with open('/var/ossec/logs/integrations.log', 'a') as f:
f.write(f'MSG: {msg_data}\n')
return json.dumps(msg_data)
# Read configuration parameters
alert_file = open(sys.argv[1])
hook_url = sys.argv[3]
# Read the alert file
alert_json = json.loads(alert_file.read())
alert_file.close()
# Send the request
msg_data = create_message(alert_json)
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
response = requests.post(hook_url, headers=headers, data=msg_data)
# Debug information
with open('/var/ossec/logs/integrations.log', 'a') as f:
f.write(f'RESPONSE: {response}\n')
sys.exit(0)
- Ubah izin (permission) dari kedua file tersebut dengan perintah berikut:
chown root:ossec /var/ossec/integrations/custom-telegram*
chmod 750 /var/ossec/integrations/custom-telegram*
- Edit file
/var/ossec/etc/ossec.conf
dan tambahkan konfigurasi berikut:
<integration>
<name>custom-telegram</name>
<level>3</level> <!-- Sesuaikan level sesuai kebutuhan -->
<hook_url>https://api.telegram.org/bot<API_KEY>/sendMessage</hook_url> <!-- Gantilah <API_KEY> dengan API key dari Bot Father -->
<alert_format>json</alert_format>
</integration>
- Terakhir, restart layanan Wazuh Manager dengan perintah
systemctl restart wazuh-manager
untuk menerapkan perubahan konfigurasi.
Kesimpulan
Dengan mengikuti langkah-langkah di atas, Anda telah berhasil mengintegrasikan Wazuh dengan Telegram. Sekarang, setiap kali Wazuh mendeteksi ancaman atau kejadian penting, Anda akan menerima notifikasi instan melalui pesan Telegram, memungkinkan Anda untuk segera mengambil tindakan yang diperlukan untuk menjaga keamanan sistem dan jaringan Anda. Selalu prioritaskan keamanan informasi Anda!
Referensi :
- https://medium.com/@jesusjimsa_12801/integrating-telegram-with-wazuh-4d8db91025f
- https://github.com/OpenSecureCo/Demos/blob/main/Telegram%20Integration
- https://youtu.be/2X1wVizsvjw?si=yTA1TJM4B6G63s4r