ES|QL

اتصال‌های دور از دفتر مرکزی با ST_DISTANCE

ST_DISTANCE فاصله‌ی برحسب متر بین موقعیت جغرافیایی اتصال و یک نقطه‌ی مرجع — اینجا دفتر پاریس — رو حساب می‌کنه تا دسترسی‌هایی که از نظر جغرافیایی بعیدن خودشون رو نشون بدن.

کاربرد

پیدا کردن حساب‌هایی که هزاران کیلومتر دورتر از محل کارِ اعلام‌شده استفاده میشن.

پیش‌نیازها

Elasticsearch 8.15+, GeoIP sur source.ip

SQL
FROM "logs-auth-*"
| WHERE event.outcome == "success"
  AND source.geo.location IS NOT NULL
  AND @timestamp >= NOW() - 24 hours
| EVAL siege = TO_GEOPOINT("POINT(2.3522 48.8566)")
| EVAL distance_km = ROUND(ST_DISTANCE(source.geo.location, siege) / 1000)
| WHERE distance_km > 500
| STATS
    connexions = COUNT(*),
    distance_max_km = MAX(distance_km),
    pays = VALUES(source.geo.country_iso_code)
  BY user.name
| SORT distance_max_km DESC
| LIMIT 20

نتیجه

user.name  | connexions | distance_max_km | pays
-----------+------------+-----------------+--------------
m.duval    |         12 |           9 714 | ["JP", "FR"]
k.bennani  |          3 |           7 802 | ["SG"]
a.lefort   |          8 |           6 051 | ["US", "FR"]
s.gomez    |          1 |           1 940 | ["GR"]
p.martin   |          5 |             812 | ["ES"]
ST_DISTANCEGeoIPSOCCompromission

اسنیپت‌های مرتبط

بازگشت به آزمایشگاه داده