Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sigmalite — مكتبة Go لتحليل وتنفيذ قواعد الكشف Sigma على إدخالات السجلات، مع دعم معدّلات الحقول، ومطابقة CIDR، ومحلّلات الحقول المخصصة للمراقبة الأمنية. | Kitploit
أدوات/GitHubGitHub/runreveal/sigmalite
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودكشف التسللتحليل السجلات
GitHubrunreveal/sigmalite

sigmalite

مكتبة Go لتحليل وتنفيذ قواعد الكشف Sigma على إدخالات السجلات، مع دعم معدّلات الحقول، ومطابقة CIDR، ومحلّلات الحقول المخصصة للمراقبة الأمنية.

عرض المستودع
5833منذ 11 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

github.com/runreveal/sigmalite

توفر الحزمة sigmalite محللاً ومحرك تنفيذ لـ [تنسيق كشف Sigma][].

root@kitploit:~
rule, err := sigmalite.ParseRule([]byte(`
title: My example rule
detection:
  keywords:
    - foo
    - bar
  selection:
    EventId: 1234
  condition: keywords and selection
`))
if err != nil {
  return err
}
entry := &sigmalite.LogEntry{
  Message: "Hello foo",
  Fields: map[string]string{
    "EventId": "1234",
  },
}
isMatch := rule.Detection.Matches(entry, nil)

تثبيت

root@kitploit:~
go get github.com/runreveal/sigmalite

القواعد

تُكتب القواعد بتنسيق YAML وتتضمن على الأقل title و detection:

root@kitploit:~
title: My example rule
detection:
  keywords:
    - foo
    - bar
  selection:
    EventId: 1234
  condition: keywords and selection

حقل condition في كتلة detection هو تعبير منطقي يربط محددات الحقول الأخرى في كتلة detection. في هذا المثال، ستطابق هذه القاعدة أي إدخال سجل يحتوي على حقل EventId قيمته بالضبط 1234 و يحتوي على "foo" أو "bar" في رسالته.

يمكن أيضًا مطابقة الحقول باستخدام [التعبيرات العادية][]:

root@kitploit:~
title: My example rule with a timestamp
detection:
  selection:
    Timestamp|re: ^2024-06-01T(01|02|03):[0-5][0-9]:[0-5][0-9]$
  condition: selection

وكذلك CIDRs:

root@kitploit:~
title: My example rule with IP addresses
detection:
  local:
    DestinationIp|cidr:
      - "127.0.0.0/8"
      - "10.0.0.0/8"
      - "172.16.0.0/12"
      - "192.168.0.0/16"
      - "169.254.0.0/16"
      - "::1/128" # IPv6 loopback
      - "fe80::/10" # IPv6 link-local addresses
      - "fc00::/7" # IPv6 private addresses
  condition: not local

يمكن العثور على مزيد من المعلومات في [وثائق قواعد Sigma الرسمية][].

معدِّلات الحقول

تدعم هذه المكتبة معدِّلات الحقول التالية:

  • all
  • cidr
  • contains
  • endswith
  • expand
  • re
  • startswith
  • windash
  • base64/base64offset

محلل الحقول

واجهة FieldResolver توسع مواصفات Sigma القياسية لدعم سيناريوهات البحث المعقدة في الحقول التي تتجاوز أزواج المفتاح/القيمة البسيطة. يتيح لك ذلك تنفيذ منطق حل حقول مخصص لـ:

  • هياكل JSON المتداخلة: الوصول إلى الحقول المتداخلة بعمق باستخدام تدوين النقاط (مثل event.process.user)
  • معالجة المصفوفات: استخراج القيم من المصفوفات أو القوائم داخل إدخالات السجل
  • المطابقة باستخدام أحرف البدل: دعم أنماط الحقول مثل process.*.user أو network[*].ip
  • تجميع حقول متعددة: دمج القيم من عدة حقول مرتبطة
  • تطبيع حالة الأحرف: التعامل مع اختلافات أسماء الحقول وحساسية حالة الأحرف
  • تحويلات بيانات معقدة: تطبيق منطق مخصص قبل مطابقة الحقول
  • البحث في مصادر بيانات خارجية: البحث عن قيم الحقول من مصدر بيانات خارجي.

تعريف الواجهة

root@kitploit:~
type FieldResolver interface {
    Resolve(fieldName string, entry *LogEntry) []string
}

تأخذ طريقة Resolve اسم الحقل من قاعدة Sigma الخاصة بك وتعيد جميع القيم المطابقة كشريحة نصية. إذا لم يتم العثور على مطابقات، قم بإرجاع nil أو شريحة فارغة.

مثال استخدام أساسي

root@kitploit:~
// CustomResolver demonstrates field resolution for structured logs
type CustomResolver struct{}

func (r *CustomResolver) Resolve(fieldName string, entry *sigma.LogEntry) []string {
    switch fieldName {
    case "process.users":
        // Aggregate user fields from multiple sources
        var users []string
        if user, ok := entry.Fields["Event.Process.User"]; ok {
            users = append(users, user)
        }
        if user, ok := entry.Fields["Event.Login.User"]; ok {
            users = append(users, user)
        }
        if user, ok := entry.Fields["Event.Session.User"]; ok {
            users = append(users, user)
        }
        return users

    case "network.internal_ips":
        // Extract all IP addresses from network-related fields
        var ips []string
        for fieldName, value := range entry.Fields {
            if strings.Contains(strings.ToLower(fieldName), "ip") {
                // Simple IP validation (in real usage, use proper validation)
                if strings.Contains(value, ".") {
                    ips = append(ips, value)
                }
            }
        }
        return ips

    default:
        return nil
    }
}

func matches(detection *sigmalite.Detection) bool {
  opts := &sigmalite.MatchOptions{
		FieldResolver: CustomResolver{},
  },

  entry := &sigmalite.LogEntry{
		Message: string("Message Text"),
		Fields:  nil, // Using resolver so this can be empty
	}

	return detection.Matches(entry, opts)
}

تعمل محللات الحقول بسلاسة مع جميع معدِّلات الحقول، مما يسمح لك بتطبيق أنماط regex والمطابقة غير الحساسة لحالة الأحرف وتحويلات أخرى على القيم التي تم حلها.

الترخيص

Apache 2.0

تنزيل الأداة