Ana içeriğe geç

Saldırı Analizi

Bu makale, Wallarm düğümü tarafından tespit edilen saldırıları nasıl analiz edebileceğinizi ve bunlarla ilgili hangi işlemleri gerçekleştirebileceğinizi açıklar.

Saldırı analizi

Wallarm platformu tarafından tespit edilen tüm saldırılar, Wallarm Console’un Attacks bölümünde görüntülenir. Listeyi saldırı tarihi, türü ve diğer kriterlere göre filtreleyebilir, ayrıntılı analiz için herhangi bir saldırıyı ve içerdiği istekleri genişletebilirsiniz.

Tespit edilen bir saldırı yanlış pozitif çıkarsa, gelecekte benzer yanlış pozitiflerin önüne geçmek için onu hemen böyle işaretleyebilirsiniz. Ayrıca tespit edilen saldırılar temelinde kurallar oluşturabilir ve benzer tehditleri azaltmak için diğer Wallarm yapılandırmalarını gerçekleştirebilirsiniz.

Wallarm’da:

  • Saldırı (Attack) bir hit grubudur

  • Hit, düğüm tarafından eklenen meta verilerle birlikte kötü amaçlı bir istektir

  • Kötü amaçlı payload, saldırı işareti taşıyan istek parçasıdır

Ayrıntıları burada okuyun.

Her saldırı ayrıntısı, saldırının hit’leri ve kötü amaçlı payload özetini içeren analiz için gerekli tüm bilgileri barındırır. Analizi basitleştirmek için, saldırı ayrıntılarında yalnızca benzersiz hit’ler saklanır. Tekrarlanan kötü amaçlı istekler Wallarm Cloud’a yüklenmez ve görüntülenmez. Bu işleme hit örnekleme denir.

Hit örnekleme, saldırı tespiti kalitesini etkilemez ve Wallarm düğümü, hit örnekleme açık olsa bile uygulamalarınızı ve API’lerinizi korumaya devam eder.

Tehdit aktörü faaliyetlerinin tam bağlamı

Once the malicious request is detected by Wallarm and displayed in the Attacks or Incidents section as the part of some attack, you have an ability to know the full context of this request: to which user session it belongs and what the full sequence of requests in this session is. This allows investigating all activity of the threat actor to understand attack vectors and what resources can be compromised.

To perform this analysis, in Wallarm Console → Attacks or Incidents, access the attack, and then specific request details. In request details, click Explore in API Sessions. Wallarm will open the API Session section filtered: the session, the initial request belongs to is displayed, only the initial request is displayed within this session.

Remove the filter by request ID to see all other requests in the session: now you have the full picture of what was going on within the session the malicious request belongs to.

Yanlış pozitifler

Yanlış pozitif, meşru istekte saldırı işaretleri tespit edildiğinde oluşur.

Filtreleme düğümünün gelecekte bu tür istekleri saldırı olarak algılamasını önlemek için, saldırının tüm ya da belirli isteklerini yanlış pozitif olarak işaretleyebilirsiniz. Bu, benzer isteklerde benzer saldırı işareti tespitini atlayacak bir kuralı otomatik olarak oluşturur, ancak Wallarm Console’da görünmez.

Yanlış pozitif işaretini yalnızca uygulandıktan sonraki birkaç saniye içinde geri alabilirsiniz. Daha sonra geri almak isterseniz, bu yalnızca Wallarm teknik desteğine talep göndererek yapılabilir.

Saldırı listesi varsayılan görünümü yalnızca güncel saldırıları (yanlış pozitifler olmadan) gösterir – bunu değiştirmek için, All attacks altında Default view’den With false positives veya Only false positives seçeneğine geçin.

Yanlış pozitif filtresi

Saldırılara yanıt verme

Uygun olduğunda koruma tedbirlerini ayarlayabilmek için uygulamalarınızın ve API’lerinizin saldırılara karşı düzgün şekilde korunup korunmadığını anlamak önemlidir. Bu anlayışı edinmek ve uygun şekilde yanıtlamak için Attacks bölümündeki bilgileri kullanabilirsiniz.

Bu görevle uğraşırken, hangi tür saldırının gerçekleştiğini belirlemeniz gerekir; bu size hangi Wallarm mekanizmalarının koruma sağladığını gösterecek ve gerekirse bu mekanizmaları ayarlamanıza yardımcı olacaktır:

  1. Belirleyin - Payload alanı bağlam menüsünden Show only’yi seçin, ardından Type filtresine ve arama alanı içeriğine dikkat edin.

  2. Koruma için neler yapıldığını kontrol edin - Status sütununa bakın:

    • Blocked - saldırının tüm hit’leri filtreleme düğümü tarafından engellendi.
    • Partially blocked - saldırının bazı hit’leri engellendi, diğerleri yalnızca kaydedildi.
    • Monitoring - saldırının tüm hit’leri kaydedildi ancak engellenmedi.
    • Bot detected - bu bir bottur, saldırı içindeki eylemi kontrol edin.
  3. İsteğe bağlı (önerilir) olarak, saldırının kötü amaçlı isteklerinin tam bağlamını araştırın: bunların hangi kullanıcı oturumuna ait olduğunu ve bu oturumdaki isteklerin tam sırasını.

    Bu, tehdit aktörünün tüm faaliyetlerini ve mantığını görmenizi, saldırı vektörlerini ve hangi kaynakların tehlikeye atılabileceğini anlamanızı sağlar.

  4. Gerçek bir saldırı olmadığını düşünüyorsanız, yanlış pozitif olarak işaretleyin.

  5. Anlayın - saldırıyı tespit eden ve yanıtlayan Wallarm mekanizmasının farkında olun.

  6. Ayarlayın - Wallarm’ın davranışını ayarlayın (mekanizmaya göre “nasıl” değişir).

Belirleyin Anlayın Ayarlayın
sqli, xss, rce, ptrav, crlf, nosqli, ssi vb. Saldırı tespiti için standart araçlar (libproton, libdetection ve kurallar) Bir saldırıyı genişletin ve saldırı için CVE özetini ve ayrı istekler için CVE’leri inceleyin. Düğüm moduna (final_wallarm_mode etiketi) dikkat edin, Rules (US veya EU) bölümünü ziyaret edin, saldırıdan uygulama adına göre kuralları analiz edin. Gerekirse, kuralları veya uygulamalar ya da bunların belirli host ya da uç noktaları için filtration mode’u ayarlayın.
custom_rule Özel saldırı dedektörü Bir saldırıyı genişletin ve Detected by custom rules bağlantı(lar)ını takip edin - gerekirse, kural(lar)ı değiştirin, belirli dallar için kısmi olarak devre dışı bırakma dahil.
vpatch Sanal yama Rules bölümünü ziyaret edin (US veya EU), “Create virtual patch” kurallarını arayın, gerekirse saldırınızla ilgili kuralı ayarlayın. Sanal yamaların filtration mode’dan bağımsız çalıştığını unutmayın.
brute,
dirbust,
bola,
multiple_payloads
Trigger ve IP listeleri: denylist’teki IP’lerden gelen istekler Bir saldırıyı genişletin ve istekleri analiz ettikten sonra, görüntülenen trigger adını (varsa) tıklayın ve parametrelerini değiştirin. Ayrıca trigger etiketlerine dikkat edin, ardından Triggers (US veya EU) bölümüne gidin ve ada göre trigger’ı bulun, gerekiyorsa - ayarlayın.
Eylem Blocked ise, bu denylist aracılığıyla yapılır - IP Lists (US veya EU) bölümüne gidin ve IP’ye göre arama yapın: gerekiyorsa, IP’nin denylist’te kalma süresini ayarlayın.
blocked_source IP listeleri: denylist’teki IP’lerden gelen istekler Bir saldırıyı genişletin ve denylist’teki IP’den gelen istekleri analiz edin; ardından, görüntülenen trigger adını tıklayın ve gerekirse trigger ayarlarını değiştirin. Manuel olarak denylist’e eklenen IP’ler (blocked_source) için IP Lists (US veya EU) bölümüne gidin ve IP’ye göre arayın: gerekiyorsa, IP’nin denylist’te kalma süresini ayarlayın.
Belirli modül veya işlev:
api_abuse, account_takeover, security_crawlers, scraping, resource_consumption (ayrıntılar)
- tümü için Bot detected durumuna dikkat edin
API Abuse Prevention ve IP listeleri: denylist’teki IP’lerden gelen istekler Bir saldırıyı genişletin ve bunun bir bot olduğuna dair güveni kanıtlayan ısı haritalarını analiz edin, saldırı tarihine ve kaynak IP’ye dikkat edin.
Eylem Blocked ise, bu denylist üzerinden yapılmıştır - IP lists’e gidin, tarihe ve IP’ye göre filtreleyin, IP adresi ayrıntılarını görmek için Reason sütununa tıklayın, bu ayrıntıları inceleyin, Triggered profile’a tıklayın, bunu inceleyin ve gerekirse değiştirin.

Ayrıca şunları yapabilirsiniz:
  • Bu IP’nin asla engellenmemesi için kaynak IP’yi istisna listesine ekleyin. Ayrıca, istisna listesinden IP’yi kaldırabilirsiniz (API Abuse PreventionException list)
  • API abuse yapılandırması bunu otomatik yapması beklenmese bile, kaynak IP’yi denylist’e ekleyin.
Ek olarak: IP Lists içinde, Events’e geri dönmek ve tüm ilgili saldırıları görmek için IP adresinin kendisine tıklayın.
bola API Discovery tarafından BOLA otomatik koruması Bir saldırıyı genişletin, eğer tetikleyiciye bağlantı içermiyorsa (BOLA’dan manuel korumanın işareti) bu, API Discovery (US veya EU) modülü tarafından sağlanan otomatik korumadır. Gerekirse, bu korumayı devre dışı bırakmak veya ayarlarıyla birlikte şablonu ayarlamak için BOLA Protection (US veya EU) bölümüne gidin.
undefined_endpoint, undefined_parameter, invalid_parameter_value, missing_parameter, missing_auth, invalid_request (hepsini aramak için api_specification, ayrıntılar) API Specification Enforcement Bir saldırıyı genişletin ve ihlal edilen spesifikasyona giden bağlantıyı takip edin. Spesifikasyon iletişim kutusunda ayarları düzenlemek için API specification enforcement sekmesini kullanın, Specification upload sekmesi ile spesifikasyonun en son sürümünü yüklemeyi değerlendirin.
gql_doc_size, gql_value_size, gql_depth, gql_aliases, gql_docs_per_batch, gql_introspection, gql_debug (hepsini aramak için graphql_attacks, ayrıntılar) GraphQL API Protection Bir saldırıyı genişletin ve GraphQL security policies bağlantısını takip edin - gerekirse mevcut Detect GraphQL attacks kural(lar)ını değiştirin veya belirli dallar için ek kurallar oluşturun.
credential_stuffing Credential Stuffing Detection Bir saldırıyı genişletin ve kullanılmaya çalışılan ele geçirilmiş kimlik bilgileri listesini kontrol edin, Credential Stuffing (US, EU Cloud) bölümüne gidin ve özellikle izlenen kimlik doğrulama uç noktaları listesini, bu liste için önerileri ve ele geçirilmiş kimlik bilgileri hakkında yapılandırılmış bildirimleri içeren yapılandırmayı kontrol edin.

Panolar

Wallarm, tespit edilen saldırıları analiz etmenize yardımcı olacak kapsamlı panolar sağlar.

Wallarm’ın Threat Prevention panosu, saldırılarla ilgili çok yönlü bilgiler dahil olmak üzere sisteminizin güvenlik duruşuna ilişkin genel metrikler sunar: kaynakları, hedefleri, türleri ve protokolleri.

Threat Prevention panosu

OWASP API Security Top 10 panosu, saldırı bilgileri de dahil olmak üzere sisteminizin OWASP API Top 10 tehditlerine karşı güvenlik duruşuna ilişkin ayrıntılı görünürlük sağlar.

OWASP API Top 10

Bildirimler

Wallarm, tespit edilen saldırılar, hit’ler ve kötü amaçlı payload’lar hakkında size bildirim gönderebilir. Bu sayede sisteminize yönelik saldırı girişimlerinden haberdar olur ve tespit edilen kötü amaçlı trafiği hızlıca analiz edebilirsiniz. Kötü amaçlı trafiğin analizi, yanlış pozitiflerin raporlanmasını, meşru isteklerin geldiği IP’lerin allowlist’e eklenmesini ve saldırı kaynaklarının denylist’e alınmasını içerir.

Bildirimleri yapılandırmak için:

  1. Bildirim göndermek için sistemlerle yerel entegrasyonları yapılandırın (örn. PagerDuty, Opsgenie, Splunk, Slack, Telegram).

  2. Bildirim gönderme koşullarını ayarlayın:

    • Tespit edilen her hit için bildirim almak üzere, entegrasyon ayarlarında uygun seçeneği belirleyin.

      JSON formatında tespit edilen hit bildirimi örneğini görün
      [
          {
              "summary": "[Wallarm] New hit detected",
              "details": {
              "client_name": "TestCompany",
              "cloud": "EU",
              "notification_type": "new_hits",
              "hit": {
                  "domain": "www.example.com",
                  "heur_distance": 0.01111,
                  "method": "POST",
                  "parameter": "SOME_value",
                  "path": "/news/some_path",
                  "payloads": [
                      "say ni"
                  ],
                  "point": [
                      "post"
                  ],
                  "probability": 0.01,
                  "remote_country": "PL",
                  "remote_port": 0,
                  "remote_addr4": "8.8.8.8",
                  "remote_addr6": "",
                  "tor": "none",
                  "request_time": 1603834606,
                  "create_time": 1603834608,
                  "response_len": 14,
                  "response_status": 200,
                  "response_time": 5,
                  "stamps": [
                      1111
                  ],
                  "regex": [],
                  "stamps_hash": -22222,
                  "regex_hash": -33333,
                  "type": "sqli",
                  "block_status": "monitored",
                  "id": [
                      "hits_production_999_202010_v_1",
                      "c2dd33831a13be0d_AC9"
                  ],
                  "object_type": "hit",
                  "anomaly": 0
                  }
              }
          }
      ]
      
    • Saldırı, hit veya kötü amaçlı payload sayısı için bir eşik belirlemek ve eşik aşıldığında bildirim almak üzere uygun triggerları yapılandırın.

API çağrıları

Saldırı ayrıntılarını almak için, Wallarm Console UI’ının yanı sıra Wallarm API’yi doğrudan çağırabilirsiniz. Aşağıda, son 24 saatte tespit edilen ilk 50 saldırıyı alma için bir API çağrısı örneği bulunmaktadır.

Lütfen TIMESTAMP değerini, 24 saat önceki tarihi Unix Timestamp formatına dönüştürerek değiştirin.

curl -v -X POST "https://us1.api.wallarm.com/v1/objects/attack" -H "X-WallarmApi-Token: <YOUR_TOKEN>" -H "accept: application/json"  -H "Content-Type: application/json" -d "{ \"filter\": { \"clientid\": [YOUR_CLIENT_ID], \"time\": [[TIMESTAMP, null]] }, \"offset\": 0, \"limit\": 50, \"order_by\": \"last_time\", \"order_desc\": true}"
curl -v -X POST "https://api.wallarm.com/v1/objects/attack" -H "X-WallarmApi-Token: <YOUR_TOKEN>" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"filter\": { \"clientid\": [YOUR_CLIENT_ID], \"time\": [[TIMESTAMP, null]] }, \"offset\": 0, \"limit\": 50, \"order_by\": \"last_time\", \"order_desc\": true}"

100 veya daha fazla saldırıyı almak

100 veya daha fazla kayıttan oluşan saldırı ve hit kümeleri için, performansı optimize etmek amacıyla büyük veri kümelerini tek seferde almak yerine daha küçük parçalara bölerek almak en iyisidir. İlgili istek örneğini inceleyin