Lompat ke konten
dokumentasi.id
Commit e4397d1
v1
Star2,4 rb

Kamu membaca versi lama. Halaman ini hanya bisa dibaca.

2.1

Instalasi dan Konfigurasi Awal

config/config.yaml adalah inti konfigurasi Deep Eye: daftar ai_providers, parameter scanner, dan preset vulnerability_scanner dibaca dari berkas itu. Repository ini tidak punya tahap build; instalasi berarti menyiapkan virtual environment .deep-venv, memasang requirements.txt, lalu menghasilkan satu berkas konfigurasi. Halaman ini hanya membahas pembentukan dan pembacaan berkas tersebut. Pemakaian flag sehari-hari ada di Antarmuka CLI.

Siklus status konfigurasi

Skrip installer menyalin template hanya bila config/config.yaml belum ada, sehingga berkas lama tidak tertimpa (scripts/install.sh:60-69). Wizard onboard menulis berkas yang sama dari nol lewat write_config (utils/onboard.py:279-286). ConfigLoader adalah jalur terakhir: berkas yang tidak ditemukan menghasilkan konfigurasi bawaan (utils/config_loader.py:18-47).

stateDiagram-v2
    [*] --> TanpaConfig
    TanpaConfig --> DariTemplate: installer menyalin config.example.yaml
    TanpaConfig --> ConfigLama: config.yaml sudah ada
    DariTemplate --> Wizard: python deep_eye.py --setup
    DariTemplate --> Dimuat: deep_eye.py -c config/config.yaml
    ConfigLama --> Wizard: --setup-force menimpa
    ConfigLama --> Dimuat
    Wizard --> Ditulis: write_config menulis YAML baru
    Ditulis --> Dimuat
    Dimuat --> SiapScan: validate_config lolos
    Dimuat --> DefaultBawaan: berkas hilang atau YAML gagal di-parse
    DefaultBawaan --> SiapScan
    SiapScan --> [*]
    style TanpaConfig fill:#f59e0b,color:#000
    style DariTemplate fill:#f59e0b,color:#000
    style ConfigLama fill:#f59e0b,color:#000
    style Wizard fill:#f59e0b,color:#000
    style Ditulis fill:#2d7d46,color:#fff
    style SiapScan fill:#2d7d46,color:#fff
    style Dimuat fill:#8b5cf6,color:#fff
    style DefaultBawaan fill:#dc2626,color:#fff
%% fig: Siklus status config/config.yaml
%% desc: Berkas konfigurasi lahir dari installer atau wizard, dibaca ConfigLoader, dan berakhir pada konfigurasi bawaan bila berkas hilang atau rusak.
Fig. 1: Siklus status config/config.yamlBerkas konfigurasi lahir dari installer atau wizard, dibaca ConfigLoader, dan berakhir pada konfigurasi bawaan bila berkas hilang atau rusak.

Dua percabangan menentukan status akhir diagram di atas. Opsi --setup dan --setup-force menjalankan run_onboard lalu langsung return 0, sehingga tidak ada scan yang dimulai (deep_eye.py:252-255). Tanpa opsi itu, berkas yang tidak ada memicu wizard, sedangkan berkas yang ada dibaca lewat ConfigLoader.load (deep_eye.py:257-264).

Skrip installer

scripts/install.sh dipakai di Linux/macOS dan scripts/install.ps1 di Windows. Keduanya menjalankan urutan yang sama dengan perintah berbeda.

Tahapscripts/install.shscripts/install.ps1
Cek Pythonpython3 --version, exit 1 bila python3 tidak ada (scripts/install.sh:12-20)regex Python (\d+)\.(\d+), menolak versi di bawah 3.8 (scripts/install.ps1:19-29)
Virtual environmentmembuat .deep-venv bila belum ada, lalu source .../bin/activate (scripts/install.sh:22-34)python -m venv .deep-venv dari dalam scripts/, dilewati bila sudah ada (scripts/install.ps1:31-41)
Dependensipip install -r requirements.txt, exit 1 bila $? bukan 0 (scripts/install.sh:41-51)pip install -r ..\requirements.txt, exit 1 bila $LASTEXITCODE bukan 0 (scripts/install.ps1:52-60)
Direktorimkdir -p logs data reports templates (scripts/install.sh:53-58)New-Item untuk ..\logs, ..\data, ..\reports, ..\templates (scripts/install.ps1:64-77)
Berkas configmenyalin config/config.example.yaml ke config/config.yaml bila belum ada (scripts/install.sh:60-69)Copy-Item dengan syarat yang sama (scripts/install.ps1:79-89)

⚠️ Berkas hasil salinan belum bisa dipakai scan apa adanya. Blok openai masih berisi api_key: "sk-your-openai-api-key-here" dengan enabled: true (config/config.example.yaml:6-8). API key tersimpan plaintext di config/config.yaml, jadi batasi izin berkas itu dengan chmod 600 (SECURITY.md:29-34).

Template config/config.example.yaml

Template ini adalah referensi lengkap, sementara wizard hanya menulis sebagian kunci. Baris pembukanya memang menginstruksikan penyalinan manual ke config.yaml (config/config.example.yaml:1-2).

BagianBarisIsi utama
ai_providersconfig/config.example.yaml:4-11012 provider, tiap entri memuat enabled, model, temperature, max_tokens, timeout, plus api_key atau base_url
scannerconfig/config.example.yaml:112-145target_url, default_threads: 5, default_depth: 2, max_urls: 1000, ai_provider, oast_callback_url, proxy, verify_ssl
vulnerability_scannerconfig/config.example.yaml:147-238enabled_checks per kelas kerentanan, payload_generation, testing
Modul opsionalconfig/config.example.yaml:240-295websocket, ml_detection, osint, payload_obfuscation

Arti tiap kunci enabled_checks dijelaskan di Pemindai Kerentanan dan Katalog Modul, sedangkan bentuk entri provider dibahas di Lapisan AI Provider.

Wizard onboard

Wizard dijalankan dengan python deep_eye.py --setup, dan --setup-force menimpa berkas yang sudah ada tanpa konfirmasi tambahan (deep_eye.py:145-155). Bila config_path sudah ada dan force tidak diberikan, run_onboard menanyakan konfirmasi; penolakan membuat berkas lama dipakai apa adanya lewat yaml.safe_load (utils/onboard.py:171-181).

run_onboard memanggil enam fungsi wizard secara berurutan (utils/onboard.py:192-198), lalu merakit satu dict yang memuat ai_providers, scanner, vulnerability_scanner, reporting, logging, rate_limiting, database, oast, experimental, dan mobile (utils/onboard.py:200-251).

LangkahFungsiNilai yang diminta
1_wizard_providers (utils/onboard.py:289-329)provider utama dari 13 pilihan PROVIDERS, lalu opsi provider tambahan untuk failover
2_wizard_scanner (utils/onboard.py:364-407)target URL, threads 1-50, crawl depth 1-10, max_urls, mode quick/standard/full, oast_callback_url, proxy, verify_ssl
3_wizard_checks (utils/onboard.py:410-420)preset core, standard, atau full module set
4_wizard_report (utils/onboard.py:423-427)format laporan; pilihan "HTML+JSON" tetap menulis default_format: html
5_wizard_experimental (utils/onboard.py:430-441)CVE matching dan path data/cve_intelligence.db
6_wizard_mobile (utils/onboard.py:444-472)platform, package, artifact Frida untuk analisis mobile

API key yang dibiarkan kosong tidak menggagalkan wizard: nilainya diganti placeholder your-<provider>-api-key-here dan harus disunting sesudahnya (utils/onboard.py:341-352). Setelah write_config, _print_summary menampilkan ringkasan provider, target, threads, jumlah checks, format laporan, dan perintah untuk menjalankan ulang wizard (utils/onboard.py:475-487). docs/QUICKSTART.md merangkum urutan yang sama dan menegaskan wizard berjalan otomatis ketika config/config.yaml hilang (docs/QUICKSTART.md:30-36).

Pilihan format laporan pada langkah 4 hanya menetapkan nilai awal. Daftar format yang benar-benar dipakai saat ekspor dibahas di Pelaporan dan Ekspor.

Membaca konfigurasi dan substitusi environment variable

ConfigLoader.load membaca YAML dengan yaml.safe_load, mengganti variabel environment, lalu mencatat Configuration loaded from <path>. Berkas yang tidak ada hanya menghasilkan logger.warning dan konfigurasi bawaan, dan kegagalan parse juga ditangkap lalu diganti konfigurasi bawaan (utils/config_loader.py:18-47).

Substitusi bekerja rekursif pada string, dict, dan list, dengan pola ${NAMA_VAR} dan ${NAMA_VAR:-default} (utils/config_loader.py:49-66). Artinya nilai rahasia bisa disimpan di environment dan config/config.yaml hanya memuat rujukannya.

⚠️ Fallback bawaan tidak setara dengan template. Konfigurasi bawaan hanya memuat satu entri ai_providers.openai dengan enabled: False, scanner.default_threads: 5, default_depth: 2, sepuluh enabled_checks, dan reporting.default_format: html (utils/config_loader.py:69-111). Scan dengan konfigurasi ini tidak memakai AI provider apa pun, jadi periksa kembali hasil wizard sebelum menjalankan target nyata.