Özel tespit kuralları¶
Adres: /rules · Okuma: rules.read · Oluşturma, düzenleme, içe aktarma ve etkinleştirme: rules.write.
Custom Rules, kuruluştaki regex temelli kaynak/sink/sanitizer tespitlerini yönetir. Scanner'ın gerçekten eşleştirdiği alanlar Sink Patterns ve Source Patterns listesidir; açıklayıcı Rule Content (YAML) tek başına çalışan bir tespit kuralı oluşturmaz. En az bir sink veya source deseni zorunludur.
Kural listesini okuma¶
- Sol menüden Rules açın. Başlık toplam kural sayısını; varsa bilgi şeridi etkin kurallardan kaçının bir taramada yükleneceğini gösterir.
- Search rules by ID or name... alanıyla arayın; All vuln types menüsünden zafiyet sınıfı seçin. Liste sayfa başına 20 kuraldır; Previous / Next ile ilerleyin.
- Kartta ID, ad, açıklama, önem, zafiyet türü ve etkinlik durumunu okuyun. Etkin kuralların sayısı sunucunun
scan_rule_limitdeğerini aşıyorsa yalnız en yeni sınırlı sayı taramada aktif yüklenir; eski etkin kuralların tümü uygulanıyor varsaymayın.
Yeni kural oluşturma¶
rules.writeizniyle New Rule seçin.- Rule ID için benzersiz kimlik girin; harf, rakam, alt çizgi ve tire kabul edilir, 128 karakter sınırı vardır. ID kayıttan sonra düzenlenmez. Name zorunlu; Description, Vulnerability Type, CWE, Severity ve Enabled ihtiyaca göre doldurulur.
- Sink Patterns alanına tehlikeli işlem kalıplarını, Source Patterns alanına girdi kalıplarını her satırda bir regex olacak biçimde girin. İhtiyaca göre Sanitizers ve Languages ekleyin. Source/sink alanlarından en az biri dolu olmalıdır; her desen alanı en fazla 50 girdidir ve her girdi en fazla 1000 karakterdir.
- İstersen Rule Content (YAML) ile açıklayıcı kural gövdesini doldurun. YAML sözdizimi doğrulanır; boş olabilir, doluysa en fazla 100 KB. Editörün Tab tuşu iki boşluk ekler; Shift+Tab girintiyi geri alır.
- Kaydetmeden önce formdaki Test işlevini açın. Örnek kod ve dil girip Run Test seçin; source, sink ve sanitizer eşleşmelerini ve sonucu okuyun. Örnek kod en fazla 200 KB'tır. Candidate sonucu yalnız aynı kodda desenlerin birlikte görülmesidir; kaynak→işlem erişiminin kanıtı değildir.
- Sonucu uygun bulursanız Create Rule seçin. Sunucu kuralı kaydeder; sonraki taramalarda etkinlik ve kural limiti geçerli olur.
Var olan kuralı yönetme¶
- Edit: Kartın düzenleme eylemini açın. ID sabittir; diğer alanları değiştirip Update Rule seçin.
- Toggle: Etkin/kapalı durumunu değiştirir. Kapalı kural kaydı kalır ama taramada yüklenmez.
- Test: Kaydedilmiş kuralı örnek kod ve dille test eder. Sonuç
candidate,source_only,sink_only,sanitized,safeveyanot_applicablegibi durumlar döndürebilir. - Export: Tek kuralı YAML olarak indirir. Export All tüm kayıtlı kuralları YAML olarak verir.
- Import YAML: En fazla 1 MB
.yamlveya.ymldosyası seçin. Sonuç bildirimi kaç kuralın içe aktarıldığını ve kaçının güncellendiğini gösterir. Var olan ID'leri etkileyebileceği için önce çıktıyı inceleyin. - Delete: Kartın silme eyleminden sonra Delete Rule? penceresinde ikinci kez Delete seçin. İşlem geri alınamaz.
Bir test sonucunu yorumlama¶
Source matches, Sink matches ve Sanitizer matches satırları desen, eşleşen kod ve satırı gösterir; regex hatası varsa ilgili hata görünür. Candidate tespiti potansiyel adayı işaretler, doğrulanmış açıklık veya gerçek veri akışı kararı değildir. Not applicable, kuralın seçilen dil için etkin olmadığını belirtir. Test sonucu yalnız örnek kodu kapsar; gerçek depo taramasında dosya seçimi ve diğer kanıt aşamalarını ayrıca değerlendirin.
Sorun giderme¶
| Belirti | Yapılacak işlem |
|---|---|
| New Rule, Import veya Toggle yok | rules.write iznini kontrol edin. |
| Kaydetme “Add at least one Sink or Source pattern” diyor | En az bir eşleşme deseni ekleyin; yalnız YAML yeterli değildir. |
| YAML hatası | Girintiyi boşlukla yazın ve sözdizimini düzeltin; YAML isteğe bağlıdır. |
| Test not applicable | Languages listesini ve örnek dil seçimini karşılaştırın. |
| Etkin kural taramada görünmüyor | Etkin kural sayısını ve ekrandaki tarama kural limitini kontrol edin. |
| Import reddedildi | Dosyanın YAML olduğunu ve 1 MB sınırını aşmadığını doğrulayın. |