Ertuğrul Akben

0 %
Ertuğrul Akben
Yapay Zeka & Sistem Stratejisti | Yatırımcı | Dijital Medya ve Marka Danışmanı | Araştırmacı
  • Yurt Dışı Ofisleri
    UK, ABD
  • Bölge Ofisi
    Antalya
  • Merkez
    İstanbul
  • Atölye
    Kahramanmaraş
Ana Şirketler
  • AĞABEYOĞLU GRUP A.Ş.
  • EAGM GROUP LTD.
  • TECH AI CORE LLC.
Sektörler
  • MEDYA
  • YAZILIM
  • SMM
  • İNŞAAT
  • TURİZM
  • SANAYİ
  • KOZMETİK
  • GIDA

dep-oracle: Yazılım Bağımlılık Güvenliği İçin Tahmine Dayalı Motor

22 Şubat 2026

Projenizde kaç tane bağımlılık var, biliyorsunuz. Peki o bağımlılıkların bağımlılıklarını kim izliyor?

2025 yılında gerçekleşen güvenlik ihlallerinin %62’si yazılım tedarik zinciri saldırılarından kaynaklandı. Saldırganlar artık doğrudan sizin kodunuzu hedef almıyor — sizin güvendiğiniz bir paketin, güvendiği başka bir paketin içine zararlı kod sızdırıyor. Ve siz farkına bile varmıyorsunuz.

Ortalama bir Node.js projesinde 47 doğrudan bağımlılık var. Ama asıl sayı bu değil. Bu 47 paketin arkasında, zincirleme olarak 683 transitif bağımlılık gizleniyor. Yani projenizde aslında 683 farklı geliştiricinin yazdığı koda körü körüne güveniyorsunuz.

Bu yazıda, bu sorunu çözmek için geliştirdiğimiz açık kaynak bir aracı tanıtacağım: dep-oracle.

npm audit Neden Yetmiyor?

npm audit çalıştırıyorsunuz, “0 vulnerabilities” yazıyor ve içiniz rahat ediyor. Peki gerçekten güvende misiniz?

Hayır. Çünkü npm audit sadece bilinen CVE’leri (Common Vulnerabilities and Exposures) kontrol eder. Birisi bugün bir açık keşfeder ve raporlarsa, npm audit bunu görür. Ama ya:

  • Bir paket 18 aydır güncellenmemişse? (Zombie bağımlılık)
  • Tek bir maintainer tarafından yönetiliyorsa ve o kişi projeyi bıraktıysa?
  • express yerine yanlışlıkla expresss yüklediyseniz? (Typosquatting saldırısı)
  • O “güvenli” paketin 3 ay sonra riskli hale geleceğini tahmin edebilseydiniz?

İşte npm audit bunların hiçbirini görmez. Reaktif çalışır — yangın çıktıktan sonra alarm verir. dep-oracle ise proaktif çalışır — dumanı görür.

dep-oracle Nedir?

dep-oracle, yazılım bağımlılıklarınızın güvenliğini tahmine dayalı olarak analiz eden açık kaynak bir motor. Tek bir komutla projenizi tarayıp her bağımlılık için 0-100 arası bir güven skoru üretiyor.

npx dep-oracle scan

Bu kadar. Yükleme bile gerekmez — npx ile doğrudan çalıştırabilirsiniz.

Ama basitliğin arkasında ciddi bir mühendislik var. dep-oracle, her paket için 6 farklı veri kaynağından paralel olarak veri toplar ve bunları ağırlıklı bir formülle birleştirerek güven skoru hesaplar:

Metrik Ağırlık Ne Ölçer?
Güvenlik %25 CVE geçmişi, bilinen açıklar
Maintainer %25 Aktif geliştirici sayısı, yanıt süresi
Aktivite %20 Commit sıklığı, son güncelleme tarihi
Popülerlik %15 Haftalık indirme, bağımlı paket sayısı
Fonlama %10 GitHub Sponsors, OpenCollective desteği
Lisans %5 SPDX lisans risk değerlendirmesi

Sonuçta her paket için tek bir rakam: 85/100 — güvenli. Ya da 23/100 — acil müdahale gerekiyor.

6 Analiz Motoru: Sadece CVE’nin Ötesinde

dep-oracle’ı farklı kılan şey, güvenlik açıklarının ötesine geçmesi. İşte 6 analiz motoru:

1. Trust Score Engine — Güven Skoru

Yukarıdaki 6 metriği birleştirip 0-100 arası tek bir skor üretir. Eksik veri varsa (örneğin GitHub repo’su yoksa), o metrik dışarıda bırakılır ve diğer metriklerin ağırlığı otomatik yeniden dağıtılır. Yani hiçbir paket haksız yere düşük skor almaz.

v1.1 ile gelen azalan ceza algoritması sayesinde skorlama çok daha adil hale geldi. Eski sistemde tek bir güvenlik açığı bile skoru diplere çekebiliyordu. Yeni sistem, açığın ne kadar hızlı yamalandığını da hesaba katıyor: 7 gün içinde yama çıkarıldıysa +10 bonus, 7 günden sonra +5 bonus. Ayrıca haftalık 10 milyon+ indirme alan paketler popülerlik metriğinde tam puan alıyor. Sonuç? Express gibi yoğun kullanılan paketlerin skoru ~50’den ~80’e yükseldi — çünkü aktif olarak bakılan popüler paketler cezalandırılmamalı.

2. Zombie Detector — Ölü Paket Tespiti

12 aydan uzun süredir commit almamış, deprecated işaretli veya maintainer’ı sıfıra düşmüş paketleri tespit eder. Projenizin temelindeki kritik bir paket aslında terkedilmiş olabilir — ve siz bunu bilmiyorsunuz.

3. Blast Radius Calculator — Patlama Yarıçapı

Bir paket ele geçirilirse projenizde kaç dosya etkilenir? dep-oracle, kaynak kodunuzdaki import grafiğini çıkararak her bağımlılığın “patlama yarıçapını” hesaplar. lodash 200 dosyada kullanılıyorsa, riski chalk‘tan çok daha yüksektir.

4. Typosquat Detector — Sahte Paket Algılama

Saldırganların en sevdiği yöntemlerden biri: popüler bir paketin adına benzer bir paket yayınlamak. lodash yerine 1odash, express yerine expresss. dep-oracle iki katmanlı bir koruma sunuyor: 1,847 bilinen zararlı paket ismi içeren statik bir veritabanı ve npm registry’den dinamik olarak çekilen 5,000 popüler paket listesi. Levenshtein mesafe algoritmasıyla framework’lerden build araçlarına, HTTP kütüphanelerinden veritabanı ORM’lerine kadar geniş bir yelpazede typosquat karşılaştırması yapar ve şüpheli eşleşmeleri raporlar.

5. Trend Predictor — 3 Aylık Risk Tahmini

Commit hızı, indirme trendi ve maintainer aktivitesine bakarak 3 ay sonra paketin güven skorunun ne yöne gideceğini tahmin eder. Bugün 75 puan olan bir paket, 3 ay sonra 40’a düşebilir — dep-oracle bunu önceden söyler.

6. Migration Advisor — Göç Danışmanı

Riskli bir paket tespit ettiğinde, sadece “bu riskli” demez — daha güvenli alternatifleri önerir. 131 deprecated paket için 192 küratörlü alternatif içeriyor. moment.js zombie mi? date-fns veya dayjs önerir. node-sass mı kullanıyorsunuz? sass‘a geçmenizi söyler. enzyme ile test mi yazıyorsunuz? testing-library‘ye yönlendirir. webpack‘ten vite‘a, mongoose‘dan prisma‘ya kadar her öneri zorluk derecesi ve gerekçesiyle birlikte sunulur.

Nasıl Çalışıyor? 5 Katmanlı Pipeline

dep-oracle’ın mimarisi 5 katmandan oluşuyor:

CLI (Commander.js)
    ↓
Parsers (npm, yarn, pnpm, pip, poetry)
    ↓
Collectors (6 paralel veri toplayıcı)
    ↓
Analyzers (6 analiz motoru)
    ↓
Reporters (Terminal, JSON, HTML, SARIF, Badge)

Parser katmanı projenizin manifest dosyasını okuyup bağımlılık ağacını çıkarır. Node.js tarafında package-lock.json, Python tarafında requirements.txt, pyproject.toml, Pipfile.lock ve poetry.lock destekleniyor. Poetry kullanıyorsanız pyproject.toml ile çapraz referans yaparak doğrudan bağımlılıkları otomatik tespit eder.

Collector katmanı 6 farklı API’den (npm registry, GitHub, OSV.dev, OpenCollective, PyPI, SPDX) paralel olarak veri toplar. p-limit ile rate limiting uygulanır, API’lerden biri çökerse diğerleri çalışmaya devam eder (graceful degradation).

Analyzer katmanı toplanan ham veriyi 6 farklı motordan geçirip anlamlı sonuçlar üretir.

Reporter katmanı sonuçları istediğiniz formatta sunar:

  • Terminal: Renkli tablo çıktısı (geliştirici dostu)
  • JSON: Makine tarafından okunabilir (CI/CD entegrasyonu)
  • HTML: İnteraktif D3.js bağımlılık grafiği (yönetici sunumları)
  • SARIF: GitHub Security sekmesinde doğrudan görünür
  • SVG Badge: README’ye eklenebilir güven rozeti

Claude Code ile MCP Entegrasyonu

dep-oracle sadece bir CLI aracı değil — aynı zamanda bir MCP (Model Context Protocol) sunucusu. Üstelik artık MCP Registry’de resmi olarak listelenmiş durumda (io.github.ertugrulakben/dep-oracle). Bu ne demek? Claude Code gibi AI kodlama asistanları dep-oracle’ı otomatik olarak keşfedip kullanabiliyor — manuel yapılandırma bile gerekmeyebilir.

Claude Code’a bağlamak isterseniz:

// .claude/settings.json
{
  "mcpServers": {
    "dep-oracle": {
      "command": "npx",
      "args": ["dep-oracle", "mcp"]
    }
  }
}

8 MCP aracıyla Claude Code’a şunları sorabilirsiniz:

  • “Projemdeki zombie bağımlılıkları listele”
  • “lodash’ın güven skoru kaç?”
  • “Bu paketten vazgeçsem kaç dosyam etkilenir?”
  • “Riskli paketler için alternatif öner”

Bu, JARVIS AI asistan sistemimizde de kullandığımız bir yaklaşım: araçları yapay zekayla konuşturarak, geliştirici deneyimini bir üst seviyeye taşımak.

GitHub Action ile CI/CD Entegrasyonu

dep-oracle’ı CI/CD pipeline’ınıza eklemek tek bir adım:

- uses: ertugrulakben/dep-oracle-action@v1
  with:
    min-score: 60
    format: sarif
    github-token: ${{ github.token }}

Güven skoru eşiğin altına düşen bağımlılık varsa build başarısız olur. SARIF formatıyla sonuçlar GitHub’ın Security sekmesinde otomatik görünür. Yani güvenlik taraması artık “yaparsak yaparız” değil — her PR’da otomatik çalışan bir kapı bekçisi.

npm audit vs. Snyk vs. dep-oracle

Peki mevcut araçlarla karşılaştırınca ne fark var?

Özellik npm audit Snyk dep-oracle
Bilinen CVE tespiti
Zombie bağımlılık tespiti
Typosquat algılama Kısmi
Güven skoru (0-100)
Blast radius analizi
3 aylık risk tahmini
Migration önerisi Kısmi
MCP/AI entegrasyonu
Python desteği
Ücretsiz Sınırlı

npm audit reaktif, Snyk kapsamlı ama paralı, dep-oracle prediktif ve ücretsiz.

Türkiye Perspektifi: KOBİ’ler İçin Neden Önemli?

AI-MOI araştırmamızda 490 Türk firmasıyla konuştuk. Bulduğumuz şey: KOBİ’lerin büyük çoğunluğu dijitalleşiyor, e-ticaret siteleri kuruyor, mobil uygulama geliştiriyor — ama yazılım güvenliği neredeyse hiç konuşulmuyor.

Bir Antalya’daki otel rezervasyon sistemi, bir Gaziantep’teki e-ticaret sitesi, bir İstanbul’daki fintech startup’ı — hepsi Node.js veya Python kullanıyor. Ve hepsinin bağımlılık ağacında yüzlerce paket var.

Senaryo: Bir e-ticaret sitesi stripe paketini kullanıyor. Stripe güvenli, ama Stripe’ın bağımlılığı olan küçük bir utility paketinin maintainer’ı projeyi bıraktı. Saldırgan bu paketi devralıp zararlı kod ekledi. Stripe güncellemesiyle birlikte zararlı kod projenize girdi. Müşteri kredi kartı bilgileri çalındı.

Bu senaryo hayal ürünü değil — event-stream saldırısı (2018) bu modelin ilk büyük örneğiydi ve 2024-2025’te benzerleri onlarca kez yaşandı.

dep-oracle, bu tür riskleri önceden tespit ederek Türkiye’deki yazılım ekiplerinin güvenlik duruşunu güçlendirebilir. Üstelik tamamen ücretsiz ve açık kaynak.

Hızlı Başlangıç

dep-oracle’ı kullanmak için kurulum bile gerekmez:

# Projenizi tarayın
npx dep-oracle scan

# Belirli bir paketi kontrol edin
npx dep-oracle check lodash@4.17.21

# JSON çıktı (CI/CD için)
npx dep-oracle scan --format json --min-score 60

# İnteraktif HTML rapor
npx dep-oracle scan --format html

# Offline mod (önbellek ile)
npx dep-oracle scan --offline

Yapılandırma için projenizin kök dizinine .dep-oraclerc.json dosyası ekleyebilirsiniz:

{
  "threshold": 60,
  "ignore": ["known-risky-but-needed"],
  "format": "terminal",
  "githubToken": "$GITHUB_TOKEN"
}

Açık Kaynak ve Katkı

dep-oracle MIT lisansıyla açık kaynak. TypeScript ile yazıldı, vitest ile test ediliyor, tsup ile derleniyor. 10 test dosyasında 144 test — trust score, zombie tespiti, parser’lar, typosquat, migration, cache ve daha fazlası kapsamlı şekilde test ediliyor. Katkıda bulunmak isteyenler için GitHub reposu açık.

Bu proje, 2025-2026 AR-GE çalışmalarımızın bir parçası. NeuroCausal RAG, DSGMv2, JARVIS ve diğer projelerimiz gibi, dep-oracle da Türkiye’den çıkan ve global ölçekte rekabet eden bir araç olmayı hedefliyor.

Sonuç: Bağımlılıklarınızı Tanıyor musunuz?

Modern yazılım geliştirme, güven üzerine kurulu. npm install her çalıştırdığınızda yüzlerce yabancının yazdığı koda güveniyorsunuz. Bu güven çoğu zaman karşılığını buluyor — ama tek bir zayıf halka tüm zinciri kırabilir.

dep-oracle bu zayıf halkaları kırılmadan önce tespit eder. Bilinen açıkları değil, gelecekteki riskleri tahmin eder. Zombie paketleri, sahte paket isimlerini, terkedilmiş projeleri ve patlama yarıçapını analiz eder.

Tek bir komut:

npx dep-oracle scan

Bağımlılıklarınızın bağımlılıklarını izlemeye başlayın. Çünkü saldırganlar çoktan izliyorlar. Proje: github.com/ertugrulakben/dep-oracle

Posted in Genel, Teknoloji, Yapay Zeka, YazılımTags: