Home Windows Server הסבר והתקנה | הכירו את OpenCTI כלי Open-Source Threat Intelligence

הסבר והתקנה | הכירו את OpenCTI כלי Open-Source Threat Intelligence

0 comment
נהנתם מהמאמר ? שתפו אותו!

הסבר והתקנה | הכירו את OpenCTI כלי Open-Source Threat Intelligence

OpenCTI

 

OpenCTI הוא כלי בקוד פתוח לCyber Threat Intelligence , הוא כלי לניהול , חיפוש, בדיקה ואיתור בתחום איומי הסייבר, כלי זה אוסף ממקורות שונים מה שמכונה CTI Data, המקורות השונים הללו, נקראים "גופי מודיעין" בסייבר, ניקח למשל את AlientVault OTX, שירות זה מפרסם את כלל הפגיעויות, נוזקות וIOC שונים שהם כגוף מודיעין אוסף.

אחד הדברים המעניינים הם ה IOC שהמערכת אוספת מכלל סוכנויות המודיעין ובכך ניתן לבדוק אם כתובת IP שזוהתה אצלכם בארגון היא כתובת זדונית, קבצים זדוניים המפורסמים כ- Hash, כתובות Domain של קבוצות תקיפה ועוד.

אותם איומים ואירועים שונים נאספים ממקורות שונים והמערכת OpenCTI מרכזת הכל, מאפשרת חיפוש, יצירת הקשרים, בדיקה של קבצים זדוניים, כתובות IP, כתובות DOMAIN , Hash ועוד

על מנת להציג חלק מיכולות המערכת אעבור על על כמה נושאים:

כאשר מקבלים איום כדוגמת Pay2Key Ransomware – A New Campaign by Fox Kitten שהוא קמפיין תקיפה אירני (זה כמובן רק דוגמה)

ניתן לקבל הסבר על התקיפה, דיווחים קשורים לתקיפה,איזה גוף מודיעין דיווח על אותו קמפיין \ תקיפה

במסך הKnowldege נוכל לקבל את הקשרים אל התקיפה, גופי המודיעין שדיווחו, כתובות זדוניות שנמצאו, ו IOC's נוספים

במסך ה Entites נוכל לקבל כרשימה את כלל ה IOC's

במסך ה Observables נוכל לחפש ולבצע סינון לפי סוגי קבצים, כתובות IP ועוד

במסך ה observations נקבל את כלל הIOS'c הכתובות, הקבצים והמזהים שהיו קשורים לתקיפה כזו או אחרת

במסך ה Indicators נקבל את כלל הIOS'c , כאן נוכל לחפש מזהים מסוימים ולבדוק אם הם דווחו ע"י גוף מודיעין מסוים ונוכל לטעון אותם למערכות ההגנה אצלנו

התקנת OpenCTI על Ubuntu 22.04

התקינו Ubuntu 22.04.01

עברו ל Root

sudo -i

כעת נתקין את כל ה Requrements

sudo apt update -y
sudo apt install aptitude -y
apt install python3 python3-pip -y
apt install redis-server -y
apt install rabbitmq-server -y
rabbitmq-plugins enable rabbitmq_management

כעת נתקין את NodeJS  וNPM

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc

נבדוק איזה גרסה אחרונה קיימת

nvm list-remote

נתקין את גרסה 19.6

nvm install v19.6.0

נבדוק את הגרסה

node -v

התוצאה חייבת להיות

v19.6.0

כעת נבדוק את npm

npm -v

כעת נתקין את Minio שהוא שירות אחסון למידע, הוא תומך ב AWS ויכול לאחסן כל סוג מידע

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio

כעת נבצע התקנה של ElasticSearch

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update -y
sudo apt install elasticsearch -y

נערוך את קובץ הקינפוג של Elasticsearch

sudo nano /etc/elasticsearch/elasticsearch.yml

בצעו את העריכה לפי התמונות

כעת נגדיר שElasticsearch יעלה בכל הפעלה מחדש ונפעיל אותו

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

כעת נבדוק שהוא עובד ואם הוא במצב Running אז נמשיך (ניתן לצאת ע"י ctrl+c)

sudo systemctl status elasticsearch

כעת נתקין את yarn

Yarn – הוא מנהל חבילות ל Javascript והוא תחליף מעולה ל NPM, איתו אפשר לנהל חבילות של JS , להתקין ולהפעיל חבילות של JS

curl -Ss https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/yarn.list
apt update && apt install yarn -y

כעת נוריד ונלחץ את ההתקנה של opencti

wget https://github.com/OpenCTI-Platform/opencti/releases/download/5.5.2/opencti-release-5.5.2.tar.gz
tar xvfz opencti-release-5.5.2.tar.gz

נעתיק את קובץ ההגדרות שאותו נערוך בהמשך

cp opencti/config/default.json opencti/config/production.json

כעת ניצור UUID באתר

https://www.uuidgenerator.net/version4

העתיקו את ה UUID גרסה 4 , את המספר העתיקו לקובץ טקסט בצד, נצטרך אותו להמשך!!!!

נערוך את קובץ ההגדרות

nano opencti/config/production.json

נשנה את כתובת המייל לשלכם (לא חייב אמיתי)

נשנה את הסיסמא לפאנל הניהול

נכניס את ה UUID שיצרנו קודם לכן

כעת נתקין עוד Depnencies

sudo apt update -y
pip3 install -r opencti/src/python/requirements.txt

על מנת להריץ את minio ברקע, ניצור סקריפט שיריץ אותו ברגע בעזרת python

nano minio.py

נכניס לתוך הסקריפט את הפקודה

import os
os.system('MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"')

נשמור ונצא

ניתן הרשאות ריצה לסקריפט

chmod +x minio.py

כעת נריץ אותו ברגע בעזרת nohup, למי שלא מכיר nohup היא פקודה בלינוקס להרצת פקודה ברקע , גם כאשר המשתמש שלכם התנתק מהמערכת

nohup python3 minio.py &

על מנת שלא תצרכו להריץ כל הפעלה מחדש את minio, נבצע את ההפעלה של הסקריפט בעזרת Cron

sudo crontab -e

בחרו ב1

נגדיר שבכל reboot הוא יעלה

 

@reboot python3 /root/minio.py

כעת נכנס לפאנל הניהול של minio

כמובן שאתם צריכים להכניס את כתובת ה IP שלכם

192.168.19.143:9000

השם משתמש והסיסמא הם

admin

password

נתחבר אליו

כעת נעבור לAccess Keys וניצור מפתח ב Create Access Key, המטרה היא ש OpenCTI יתחבר ל minio על מנת לאחסן את כלל הנתונים ב MInio 

לחצו על Create

כעת העתיקו לאותו מסמך טקסט ששמרת את ה UUID את המפתחות, נצטרך אותם עוד מעט

כעת נוודא רק שהמפתחות נשמרו במערכת ונמשיך

 

נערוך שוב את קובץ ההגדרות

nano opencti/config/production.json

כעת נעבור לשורה של minio ובו נדביק את המפתחות כמו בתמונה

 

כעת נעבור לתיקיית ה opencti

cd opencti

נבצע התקנה ע"י yarn

yarn install

נבצע קומפיל לחבילות

yarn build

כעת נגדיר שOpenCTI ירוץ בכל הפעלה מחדש

ניצור תחילה סקריפט ב Bash

sudo nano start-yarn-serv.sh

בסקריפט הבא , אנחנו בודקים שElasticSearch רץ, והוא ימתין עד אשר הוא ירוץ, ברגע שהוא רץ רק אז OpenCTI ירוץ

#!/bin/bash

timeout=60

while true; do
if curl --output /dev/null --silent --head --fail "http://localhost:9200"; then
break
fi
if [ $timeout -eq 0 ]; then
echo "Timed out while waiting for Elasticsearch service to start" >> /var/log/yarn-serv.log
exit 1
fi
timeout=$((timeout-1))
sleep 1
done

cd /root/opencti
nohup yarn serv &

נשמור ונסגור

ניתן לו הרשאות ריצה

chmod +x start-yarn-serv.sh

כעת נכנס לCron

sudo crontab -e

נוסיף שורה להרצת הסקריפט

@reboot /root/start-yarn-serv.sh

נעבור לתיקיית opencti

cd /root/opencti

כעת נפעיל את השרת בצורה ידנית

yarn serv

 

נכנס אל המערכת

http://192.168.19.149:4000/

שם המשתמש והסיסמא הם מה שקבעתם בקובץ ההגדרות

אצלי זה

tal@shushan.co.il
123456

Connectors

על מנת "למלא" את המערכת במידע מגופי מודיעין, ניקח לדוגמא את AlienVault על מנת לקבל אינדיקטורים, TI

בגלל שopencti פועל בחלון ה Putty הנוכחי

נפתח putty חדש

sudo -i

נעבור לתיקיית ה Connector של AlienVault

cd /root/opencti/connectors/external-import/alienvault

נתקין את ה Dependencies

pip3 install -r requirements.txt

נכנס לתיקיית ה src

cd src

נעתיק את קובץ הקונפיג

cp config.yml.sample config.yml

נערוך את קובץ הקונפיג

nano config.yml

כעת נצטרך את ה OTX API Key מחברת AlienVault

עליכם ליצור חשבון ועבור לעמוד הבא

https://otx.alienvault.com/api

העתיק את ה OTX Key לקובץ טקסט בצד

שנו את הפורט ל 4000 והכניסו מתחתיו את ה UUID ששמרנו בתחילת המדריך

ב Key למטה הכניסו את ה OTX Key

שמרו וצאו, כעת נפעיל את ה Connector

python3 main.py

המתינו שיסיים (חשוב!! הנפח המורד מגיע לג'יגות של מידע, דאגו למקום פנוי בכונן)

נוכל לבדוק את ההתקדמות בלשונית Data

נכנס לConnector

Worker

כעת כדי שהמידע יכנס למערכת אנחנו צריכים worker

פתחו putty נוסף התחברו

sudo -i

כעת כנסו לOpenCTI

cd opencti/worker

נתקין את הדרישות

pip3 install -r requirements.txt

כעת נעתיק את קובץ ההגדרות

cp config.yml.sample config.yml

נערוך את קובץ ההגדרות

sudo nano config.yml

נשנה את הפורט ל4000

נפעיל את הWorker – חייב אותו בשביל שהמידע יעבור מ RabbitMQ אל המערכת

python3 worker.py &

גם את Worker נרצה להפעיל בכל ריסטארט

נכנס ל Cron

crontab -e

נכניס לסוף השורה

@reboot /usr/bin/python3 /root/opencti/worker/worker.py &

לסיום!

הוספת Connectors נוספים

Amitt

cd /root/opencti/connectors/external-import/amitt/src
cp config.yml.sample config.yml
pip3 install -r requirements.txt
sed -i 's/8080/4000/' config.yml
sed -i "s/token: 'ChangeMe'/token: '50d7f4f9-e9ff-41af-bd70-b80cd4f2401a'/" config.yml
sed -i "s/id: 'ChangeMe'/id: '50d7f4f9-e9ff-41af-bd70-b80cd4f2401a'/" config.yml
nohup python3 amitt.py &

 

 

 

 

 

 

 

 

 

 

 

 

 

מאמרים קשורים

Leave a Comment