فرمت SIGMA یکی از زبان های مشترک سیستم های امنیتی مانند EDR ها و SIEM ها میباشد. به واسطه این فرمت ما توانایی این را داریم که قوانینی را برای شناسایی تهدیدات ایجاد کنیم.
توجه داشته باشید که مهندسین SOC همواره با تجهیزات امنیتی از جمله SIEM ها سروکار دارند. SIEM ها دارای زبان های مختلف هستند که هرکدام از یک اصول دستوری پیروی میکند. به عنوان مثال جهت شناسایی آسیب پذیری Microsoft Follina ما از Rule زیر برای Splunk استفاده میکنیم.
Index=* sourcetype=wineventlog:security EventCode=4688 process_name=”msdt.exe”
| regex Creator_Process_Name=(“winword.exe|excel.exe|powerpnt.exe”)
| regex CommandLine=(“ms-msdt:/id|ms-msdt:-id|PCWDiagnostic”)
| stats count by _time, host, process_name, Create_Process_Name, CommandLine
در اینجا نیز از Rule زیر برای IBM QRadar استفاده میکنیم.
SELECT UTF8(payload) from events where LOGSOURCETYPENAME(devicetype)='Microsoft Windows Security Event Log' and ("Process CommandLine" ilike '%WINWORD.EXE%') and ("Process CommandLine" ilike '%msdt.exe%') and ("Process CommandLine" ilike '%sdiagnhost.exe%' or "Process CommandLine" ilike '%csc.exe%' or "Process CommandLine" ilike '%PCWDiagnostic%' or "Process CommandLine" ilike '%IT_ReBrowserForFile%' or "Process CommandLine" ilike '%IT_BrowserForFile%' or "Process CommandLine" ilike '%conhost.exe%')
GrayLog
(CommandLine.keyword:WINWORD.EXE AND CommandLine.keyword:msdt.exe AND CommandLine.keyword:(sdiagnhost.exe csc.exe PCWDiagnostic IT_ReBrowserForFile IT_BrowserForFile conhost.exe))
Sumologic
(_sourceCategory=windows AND (CommandLine = "WINWORD.EXE") AND (CommandLine = "msdt.exe") AND (CommandLine = "sdiagnhost.exe" OR CommandLine = "csc.exe" OR CommandLine = "PCWDiagnostic" OR CommandLine = "IT_ReBrowserForFile" OR CommandLine = "IT_BrowserForFile" OR CommandLine = "conhost.exe"))
حالا سوال اینجاست که مهندسین SOC چطور باید درک کاملی از تمامی زبان های مربوط به SIEM ها داشته باشند؟ اینجاست که Sigma به کمک مهندسین SOC می آید. به واسطه SIGMA ما به جای اینکه دو Rule بنویسیم، یکی برای Splunk و یکی برای IBM QRadar از یک Rule با فرمت SIGMA ایجاد میکنیم و به راحتی از طریق SIGMA Converter آن را به هر زبان دیگری که توسط SIEM موردنظر ما قابل فهم است تبدیل میکنیم.
حالا بیاید در رابطه به اینکه چطور میتوانیم Sigma Rule هارا ایجاد کنیم صحبت کنیم. توجه داشته باشید که نوشتن Rule در Sigma بسیار ساده تر از نوشتن Rule در SIEM ها میباشد. Sigma از حالت نوشتاری Yaml Based برای Rule های خود استفاده میکند. در نوشتن Sigma Rule ها ابتدا باید در یک Text Editor استفاده کنید ( من از VSCode استفاده میکنم ).
در Text Editor ابتدا یک فایل با فرمت YAML ایجاد میکنیم زیرا فرمت مربوط به Sigma Rule ها Yaml میباشد.
نکته: حتما قبل از ساخت فایل YAML از نصب بودن افزونه YAML در VSCode مطمئن شوید.
ساختار یک Rule در Sigma بسیار ساده است. در نوشتن Rule های Sigma سه بخش برای ما وجود دارد که هرکدام کار خاصی را انجام میدهند و دارای ویژگی های اجباری و اختیاری میباشند، این سه بخش در Rule های Sigma عبارتند از:
هرکدام از قسمت های بالا دارای ویژگی های متعددی میباشند که بعضی از آن اختیاری است یعنی نیاز نیست حتما آن هارا بنویسیم و بعضی از ویژگی های آن اجباری هست تو حتما باید مشخص شود.
در این بخش اطلاعاتی در رابطه Rule که ما نوشتیم را ارائه میکنیم مثله زمان نوشته شدن آن، نام نویسنده، توضیحات و مراجع را میتوانیم در این بخش مشخص کنیم. این بخش دارای ویژگی های مختلفی است که به شرح زیر هستند:
بیشتر بخوانید: بستر Azure Sentinel چیست؟ به زبان ساده
title: Possible DNS Tunneling
id: 1ec4b281-aa65-46a2-bdae-5fd830ed914e
status: test
description: Normally, DNS logs contain a limited amount of different dns queries for a single domain. This rule detects a high amount of queries for a single domain, which can be an indicator that DNS is used to transfer data.
author: Patrick Bareiss
references:
– https://zeltser.com/c2-dns-tunneling/
– https://patrick-bareiss.com/detect-c2-traffic-over-dns-using-sigma/
date: 2019/04/07
modified: 2021/11/27
در این بخش دراصل ما منبع Log های خودمان و نوع آنهارا که از چه منبعی ارسال میشوند را مشخص میکنیم. Sigma دارای 4 دسته بندی برای LogSource ها میباشد که این دسته بندی ها به همراه مثال های آن در زیر آماده است.
logsource:
service: apache
category: dns
به مراتب میشه گفت مهم ترین بخش از Sigma Rule ما بخش Detection میباشد. این بخش دراصل تعیین کننده عواملی است که جهت شناسایی حمله مورد نظر استفاده میشود.
detection:
keywords:
– ‘exit signal Segmentation Fault’
condition: keywords
به مثال زیر توجه کنید. در مثال زیر ما از طریق Sigma Rule میخواهیم که عبارت Exit Signal Segmentation Fault را در Log های خودمان جست و جو کنیم. در بخش Detection از keywords استفاده میکنیم در پایین آن عبارتمان را قرار میدهیم و Sigma Rule ما جات شناسایی Segmentation Fault Error در Log های ما آماده میباشد.
نکته: بقیه بخش های Sigma Rule بالا را از توضیحات بالا تحلیل و بررسی کنید.
title: Apache Segmentation Fault
id: 1da8ce0b-855d-4004-8860-7d64d42063b1
status: test
description: Detects a segmentation fault error message caused by a creashing apache worker process
author: Florian Roth
references:
- http://www.securityfocus.com/infocus/1633
date: 2017/02/28
modified: 2021/11/27
logsource:
service: apache
detection:
keywords:
- 'exit signal Segmentation Fault'
condition: keywords
falsepositives:
- Unknown
level: high
tags:
- attack.impact
- attack.t1499.004
توجه کنید که ما گفتیم زمانی که یک Sigma Rule مینویسیم میتوانیم آن را به زبان های دیگر تجهیزات امنیتی از جمله SIEM ها ترجمه کنیم. برای اینکه اینکار را انجام دهیم ما دو راه اصلی داریم:
برای اینکه از سایت Uncoder.io برای ترجمه Sigma Rule خودمان به یک زبان دیگر استفاده کنیم فقط کافیه که وارد این وب سایت بشویم و در سمت چپ گزینه Sigma را انتخاب کنیم و در سمت راست SIEM و یا فرمت مورد نظرمان را مشخص کنیم.
در اینجا هدف ما تبدیل Sigma Rule مورد نظرمان به یک Splunk SPL میباشد. برای این موضوع کافیست در سمت راست گزینه Splunk را انتخاب کنیم و گزینه Translate را بزنیم.
برای استفاده از Sigmac میتوانید به شکل زیر عمل کنید.
./sigmac -t [Target Format] -c [Config File Path] [Rule File Path]
مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو
متخصص امنیت اطلاعات و کارشناس شکار تهدیدات بانک ملی ایران ، دارای مدارک مختلف از Splunk و AWS و Fortinet و Huawei حوزه اصلی فعالیت بنده در زمینه شبکه مباحث R&S و Service Provider میباشد و در زمینه امنیت نیز در موقعیت های مختلفی مانند PenTest و SoC فعالیت داشته و دارم. سابقه همکاری با بعضی سازمان های در قالب پروژه و... را داشته ام الان به عنوان تحلیلگر امنیت سایبری در زیرساخت بانک ملی مشغول به کار هستم. لینکداین: https://www.linkedin.com/in/amirhoseintangsirinezhad/
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود