Owasp noir’in pasifleri keşfetmek | Hahwul


Noir ile sırları tespit etmek – pasifler avantajı

Merhaba, güvenlik meraklıları! Bugün, özellikle pasifler işlevselliğine odaklanarak, Owasp Noir V0.18’in heyecan verici yeni özelliklerine dalıyoruz. Bu güncelleme Noir’in yeteneklerini geliştirir; Yalnızca uç noktaları tespit ederken, şimdi kural dosyalarına dayalı sırları ve diğer güvenlik sorunlarını da tanımlayabilir. İşte bu özellikten nasıl yararlanabilirsiniz:

Noir nedir?

OWASP Noir, yazılım sistemlerindeki güvenlik açıklarını belirlemeye adanmış açık kaynaklı bir projedir. API uç noktalarını, Web uç noktalarını ve kaynak kodu içindeki diğer potansiyel giriş noktalarını keşfetme olanağı sağlayarak Whitessbox güvenlik testini ve güvenlik boru hatlarını geliştirmede uzmanlaşmıştır.

Daha fazla bilgi edinmek ister misiniz? Belgelerimize ve OWASP proje belgelerimize göz atın.

Noir’in pasifleri

V0.18.x sürümüyle Noir, PasifesCan özelliğini tanıtıyor, bu da etkinleştirilebilecek -P veya --passive-scan bayrak. Bu işlev, aracın önceden tanımlanmış yollarda veya özel konumlarda pasif kuralları taramasını sağlar:

İşletim sistemiYol
MacOS:~/.config/noir/passive_rules/
Linux:~/.config/noir/passive_rules/
Windows:%APPDATA%\noir\passive_rules\

Her kural YAML formatını takip eder ve Owasp Noir pasif kurallarında çeşitli kuralları keşfedebilirsiniz. Örneğin, özel bir anahtarı tespit etmek için bir kural şuna benzeyecektir:

id: private-key
info:
  name: "Detect PRIVATE_KEY"
  author: 
    - "hahwul"
  severity: critical
  description: "Detects the presence of PRIVATE_KEY in the code"
  reference:
    - ""

matchers-condition: or
matchers:
  - type: word
    patterns:
      - "PRIVATE_KEY"
      - "-----BEGIN PRIVATE KEY-----"
    condition: or

  - type: regex
    patterns:
      - "PRIVATE_KEY\\s*=\\s*['\"]?[^'\"]+['\"]?"
      - "-----BEGIN PRIVATE KEY-----[\\s\\S]*?-----END PRIVATE KEY-----"
    condition: or

category: secret
techs:
  - '*'

Kuralları Hazırlamak

Bu kuralları verimli bir şekilde kullanmak için, Noir-Passive Rules deposunu varsayılan yola klonlamak isteyebilirsiniz:

git clone https://github.com/owasp-noir/noir-passive-rules ~/.config/noir/passive_rules/

Alternatif olarak, başka bir dizine klonlayabilir ve bu yeni konuma işaret etmek için Noir’in yapılandırmasını güncelleyebilirsiniz:

# cat ~/.config/noir/config.yaml
passive_scan: true
passive_scan_path: ["~/repositories/noir-passive-rules"]

Taramayı çalıştırmak

Yapılandırıldıktan sonra, -p bayrağıyla bir tarama başlatabilirsiniz:

Bunu görmek için Rails uygulaması ve özel bir anahtarla basit bir test ortamı kuralım:

rails new testapp
openssl genrsa -out ./testapp/private_key.pem 1024

Şimdi, noir çalıştır:

Noir’in sadece uç noktaları algıladığını değil, aynı zamanda PasivesCan aracılığıyla özel_key dosyasını da tanımladığını göreceksiniz.

Diğer araçlarla entegrasyon gerekiyorsa, çıktı biçimini örneğin JSON ile ayarlayabilirsiniz:

noir -b ./testapp/ -P -f json --no-log

Bu, hem uç nokta bilgileri hem de pasif tarama bulgularını içeren sonuçlar sağlayacaktır:

{
  "endpoints": [
    {
      "url": "/favicon.ico",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/favicon.ico"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/422.html",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/422.html"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/apple-touch-icon.png",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/apple-touch-icon.png"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/500.html",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/500.html"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/404.html",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/404.html"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/apple-touch-icon-precomposed.png",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/apple-touch-icon-precomposed.png"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/robots.txt",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp/public/robots.txt"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    },
    {
      "url": "/up",
      "method": "GET",
      "params": [],
      "details": {
        "code_paths": [
          {
            "path": "./testapp//config/routes.rb"
          }
        ]
      },
      "protocol": "http",
      "tags": []
    }
  ],
  "passive_results": [
    {
      "id": "private-key",
      "info": {
        "name": "Detect PRIVATE_KEY",
        "author": [
          "hahwul"
        ],
        "severity": "critical",
        "description": "Detects the presence of PRIVATE_KEY in the code",
        "reference": [
          ""
        ]
      },
      "category": "secret",
      "techs": [
        "*"
      ],
      "file_path": "./testapp/private_key.pem",
      "line_number": 1,
      "extract": "-----BEGIN PRIVATE KEY-----"
    }
  ]
}

Pasifescan’ı güvenlik kontrollerinize entegre ederek, yalnızca uç nokta algılamasını geliştirmekle kalmaz, aynı zamanda gizli güvenlik açıklarını ortaya çıkarma yeteneğinizi de önemli ölçüde artırırsınız.

Güvenli kalın ve mutlu tarama!



Source link