
הוצאת מידע נותרה כאחת האיומים המזיקים ביותר על ארגונים מודרניים. התוקפים כל הזמן מפתחים את הטקטיקות שלהם, קוברים ניסיונות הוצאה בתעבורה לגיטימית. בעזרת כלים כמו ELK Stack (Elasticsearch, Logstash, Kibana), צוותי האבטחה יכולים לחשוף פעילויות אלה. במדריך המקיף הזה נעסוק בכל מה שקשור ליסודות ההוצאת מידע לטכניקות גילוי מתקדמות תוך שימוש בכלים המודרניים של SIEM (ניהול אירועים ומודיעין אבטחתי), כולל דוגמאות מעשיות ודוגמאות קוד שניתן לפעול עליהן.
הוצאת מידע היא העברה מכוונת לא מורשית וסמויה של מידע ממחשב או מכשיר, לעיתים קרובות על ידי גורם מאיים שהתגנב לרשת (IBM - Data Exfiltration). המטרה היא לגנוב מידע רגיש או סודי כמו קניין רוחני, אישורים, נתונים פיננסיים או מידע אישי מבלי להתגלות.
הוצאת מידע יכולה להיות:
לאחר שהמידע נשלף, ניתן למכור אותו, להשתמש בו לאיומים, לאפשר התקפות עתידיות או לגרום לנזק תדמיתי.
רוב הארגונים מפרסים כלים למניעת אובדן מידע וחומות מגן. עם זאת, הוצאת מידע סמויה מתוכננת להשתלב עם תעבורת רשת רגילה, מה שהופך אותה לקשה לזיהוי. התוקפים עשויים להתחזות ל:
אתגר: השליטה על אבטחה לעתים קרובות מסתמכת על חתימות ידועות-רע או חריגות בנפח, אך ערוצים סמויים רבים מוציאים מידע בכמויות שנראות רגילות ונמנעים מלהעלות התראות מיידיות.
תוקפים שולחים מידע מקודד בתוך שאילתות DNS לשרת חיצוני שהם שולטים בו. מכיוון ש-DNS לעיתים קרובות מותר דרך חומות מגן ומפוקח בקפדנות פחות מאשר HTTP או FTP, הוא מועדף להוצאת מידע סמויה.
העברת מידע באמצעות POSTים HTTP שנראים לגיטימיים, העלאות ל-pastebin, או מוסתר בכותרות/כותרות משתמש-סוכן. הצפנת HTTPS מקשה על בדיקה מעמיקה ללא חיתוך SSL.
מידע מוסתר בתוך תמונות, וידאו, או קבצי אודיו לפני שיוצא באמצעות ערוצים לגיטימיים, כגון קובץ מצורף למייל או פוסטים ברשתות חברתיות.
הוצאת קבצים באמצעות אחסון ענן אישי או לא מאושר (למשל, Google Drive, Dropbox), אפליקציות IM או כלים לסנכרון קבצים.
טכניקת MITRE ATT&CK T1048 - Exfiltration Over Alternative Protocol מתייחסת לתוקפים המשתמשים בפרוטוקולים לא שכיחים או פחות מפוקחים כדי להעביר מידע מחוץ לסביבת הקורבן, כמו DNS, SMB או אפילו פרוטוקולים מותאמים אישית על פורטים מאושרים. הכרה וציד פעילויות הקשורות ל-T1048 היא חיונית להגנה פרואקטיבית מפני איומים.
מעקב אחרי זרימות נתוני רשת, זיהוי חריגות ובדיקת מטענים לדפוסים חשודים.
מאתר פעולות הכנת נתונים, ביצוע סקריפטים וניסיונות של יציאות רשת חשודות ישירות בתחנות קצה.
ELK Stack (Elasticsearch, Logstash, Kibana) היא חבילה חזקה בקוד פתוח לאגירה, אינדוקס, חיפוש והדמיה של יומנים וטלאמטריה מתחנות קצה, חומות מגן, מכשירי רשת ומקורות ענן. כאשר מועשרת בתכני אבטחה, ELK יכולה:
נכיר את ההגדרות המעשיות לגילוי ניסיונות הוצאה של מידע בעזרת ELK.
מקורות מידע:
input {
file {
path => "/var/log/dns_queries.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{IPV4:client_ip} %{WORD:query_type} %{HOSTNAME:query}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "dns-queries-%{+YYYY.MM.dd}"
}
}
פיתוח חוקים לגילוי שיחשפו דפוסים כגון:
חיפוש שאילתות DNS עם אורכי תחום משנה לא רגילים (טיפוסי לחפירה):
GET dns-queries-*/_search
{
"query": {
"script": {
"script": {
"source": "doc['query.keyword'].value.length() > 60"
}
}
}
}
יצירת לוחות מחוונים ל:
תסריט: תחנת קצה של עובד נפרצה. נוזקה מקודדת קבצים רגישים כ-base32 ומשייכת אותם, חלק-חלק, באמצעות תחומי משנה מזויפים בשאילתות DNS.
נניח כי /var/log/dns.log מכיל:
2024-05-01T10:02:35Z 10.0.0.5 IN Q example.abcd3lk21j23lkj4lkj2lk34.external.com
2024-05-01T10:02:37Z 10.0.0.5 IN Q example.a9f8a7f98e7a6f87.external.com
לחלץ ולרשום שאילתות ארוכות במיוחד:
awk '{ if (length($4) > 60) print $0 }' /var/log/dns.log
לבחון כתובות IP של לקוחות שיוצרים >1000 שאילתות בשעה:
awk '{print $2}' /var/log/dns.log | sort | uniq -c | awk '$1 > 1000'
ב-Kibana, לדמיין את מספר תחומי המשנה הייחודיים לכל כתובת IP לאורך זמן. קפיצה עשויה להצביע על פעילות חפירה.
תסריט: תחנת עבודה שנפרצה שולחת נתונים רגישים באמצעות בקשות POST HTTP לשרת אינטרנט אקראי חדש.
ו בעבר על ידי הארגון. - לקשר תעבורה יוצאת לכללי DLP (למשל, התאמות של דפוסים PII).
GET http-logs-*/_search
{
"query": {
"bool": {
"must": [
{ "match": { "method": "POST" } },
{ "range": { "content_length": { "gte": 1000000 } } } // מעל 1MB
],
"must_not": [
{ "terms": { "dest_domain.keyword": ["approved-api.example.com", "known-good.com"] } }
]
}
}
}
לפענח יומנים עבור POSTs רבים ליעדים נדירים:
import csv
from collections import Counter
with open('http_logs.csv') as f:
rows = csv.DictReader(f)
hosts = [row['dest_domain'] for row in rows if row['method'] == "POST"]
for host, count in Counter(hosts).most_common():
if count > 50:
print(f"POSTs בנפח חשוד ל- {host}: {count}")
רוב פתרונות ה-SIEM יכולים להתריע אוטומטית, אך הקורלציה והטיפול לרוב נהנים מסקריפטים מותאמים אישית.
לזהות שאילתות DNS באורכים חריגים:
grep -E '.{60,}' /var/log/dns_queries.log
למצוא את הלקוחות שמייצרים את מספר החיבורים היוצאים הגדול ביותר:
awk '{print $2}' /var/log/firewall_outbound.log | sort | uniq -c | sort -nr | head
לנתח תחומי משנה שמוצפנים ב-base64 (DNS tunneling):
import base64
import re
def is_base64(s):
try:
return base64.b64encode(base64.b64decode(s)).decode() == s
except Exception:
return False
dns_queries = ['abcd3lk21j23lkj4lkj2lk34.external.com', 'normal.example.com']
for q in dns_queries:
subdomain = q.split('.')[0]
if is_base64(subdomain):
print(f"ייתכן מאוד שזה הוצאה סמויה: {q}")
זיהוי הוצאת מידע סמויה דורש הגנות רב שכבתיות, מודיעין איומים וניתוחים מתוחכמים:
זכרו: התוקפים מסתמכים על הסתרה ועל כך שלא תכירו בטכניקות שלהם. מעקב, אוטומציה ושיפורים מתמשכים בתהליכי הגילוי הם המפתח לעצור הוצאה סמויה בעיצומה.
מעוניינים ליישם את האסטרטגיות האלה? שקלו לפרוס סביבה בדיקה של ELK Stack ולהתחיל מקבלת יומני DNS, חומות מגן ופרוקסי רשת. בנו את הגילויים שלכם וראו כמה טכניקות הוצאה סמויה תוכלו לזהות!
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.