Compliance & Regulation serimizin bir parçası
Tam kılavuzu okuyunAçık Kaynak Lisans Uyumluluğu: Yazılım Şirketleri İçin Pratik Bir Kılavuz
Ortalama bir ticari uygulama, 500'den fazla bağımlılığa yayılmış %77 oranında açık kaynak kodu içerir. Her bağımlılık, belirli yükümlülüklere sahip kendi lisansını taşır. Bu yükümlülüklerin ihlal edilmesi, şirketinizi davalara, zorunlu kod ifşasına ve itibarınızın zedelenmesine maruz bırakır. Ancak çoğu şirketin açık kaynak lisanslarını takip etme veya bunlara uyma süreci yok.
Bu kılavuz, lisans kategorizasyonundan otomatik tarama ve SBOM oluşturmaya kadar açık kaynak lisans uyumluluğu için pratik bir çerçeve sağlar.
Önemli Çıkarımlar
- Tüm açık kaynak lisansları aynı değildir: izin veren lisanslar neredeyse her şeye izin verir, copyleft lisansları ise değişiklikleri paylaşmanızı gerektirir
- Yazılım Malzeme Listesi (SBOM), devlet alımlarında yasal bir gereklilik haline geliyor (ABD Yönetici Emri 14028)
- CI/CD'de otomatik lisans taraması, uyumlu olmayan bağımlılıkların kod tabanınıza girmesini önler
- Copyleft "bulaşma" riski gerçektir: bir GPL bağımlılığı sizi tüm uygulamanızı açık kaynak yapmak zorunda bırakabilir
Lisans Kategorileri
İzin Verilen Lisanslar (Düşük Risk)
| Lisans | Yükümlülükler | Ticari Kullanım | Değişiklik | Dağıtım |
|---|---|---|---|---|
| MİT | Telif hakkı bildirimi + lisansı dahil edin | Evet | Evet | Evet |
| BSD 2-Madde | Telif hakkı bildirimi + lisansı dahil edin | Evet | Evet | Evet |
| BSD 3-Madde | Aynı + onay iddiası yok | Evet | Evet | Evet |
| Apache 2.0 | Bildirim + lisans + durum değişiklikleri + patent verilmesini dahil et | Evet | Evet | Evet |
| ISC | Telif hakkı bildirimi + lisansı dahil edin | Evet | Evet | Evet |
Ticari kullanım için güvenlidir. Lisans metnini ve telif hakkı bildirimini dağıtımınıza ekleyin. Apache 2.0 ayrıca orijinal koddaki herhangi bir değişikliğin dikkate alınmasını gerektirir ve bir patent lisansı içerir.
Zayıf Copyleft (Orta Risk)
| Lisans | Yükümlülükler | Anahtar Kısıtlaması |
|---|---|---|
| LGPL v2.1/v3 | LGPL kodundaki değişiklikleri paylaşın; kodunuz dinamik olarak bağlıysa özel olarak kalır | Statik bağlantı copyleft'i tetikleyebilir |
| MPL2.0 | MPL dosyalarındaki değişiklikleri paylaşın; yeni dosyalar özel olabilir | Dosya düzeyinde copyleft |
| EPL2.0 | Değişiklikleri paylaşın; ikincil lisans seçeneği mevcut | Modül düzeyinde copyleft |
Dikkatli kullanın. LGPL kitaplıklarını statik olarak bağlı değil, paylaşılan (dinamik) kitaplıklar olarak tutun. MPL lisanslı kodu, özel kodunuzdan ayrı dosyalarda saklayın.
Güçlü Copyleft (Yüksek Risk)
| Lisans | Yükümlülükler | Anahtar Kısıtlaması |
|---|---|---|
| GPL v2 | Türev çalışmalar GPL lisanslı olmalıdır | Bağlama türev çalışma yaratır |
| GPL v3 | v2 + anti-tivoizasyon + patent bağışı ile aynı | Daha geniş copyleft |
| AGPL v3 | GPL v3 + ağ kullanımının copyleft'i tetiklemesiyle aynı | Sunucu tarafı kullanım sayıları |
| SSPL | "Hizmet" yığınının tamamı açık kaynaklı olmalıdır | En geniş copyleft |
Ticari yazılımlar için en yüksek risk. Uygulamanızda GPL kodunu kullanmak, uygulamanızın tamamını GPL kapsamında yayınlamanızı gerektirebilir. AGPL, bunu sunucu tarafı yazılımlara kadar genişletir; ikili dosyaları hiçbir zaman dağıtmasanız bile, yazılımı bir web hizmeti olarak sağlamak, copyleft yükümlülüğünü tetikler.
Uyumluluk İş Akışı
Adım 1: Bir SBOM oluşturun
# For Node.js projects (using CycloneDX)
npx @cyclonedx/cyclonedx-npm --output-file sbom.json --spec-version 1.5
# For Python projects
pip install cyclonedx-bom
cyclonedx-py environment --output sbom.json
# For multi-language projects (using Syft)
syft . -o cyclonedx-json > sbom.json
2. Adım: Lisans Uyumluluğunu Tarayın
# Using license-checker for Node.js
npx license-checker --production --json --out licenses.json
# Using scancode-toolkit (comprehensive, all languages)
scancode --license --copyright --output-json scan-results.json .
3. Adım: Sınıflandırın ve Onaylayın
Onaylanmış bir lisans listesi oluşturun:
{
"approved": [
"MIT", "BSD-2-Clause", "BSD-3-Clause", "Apache-2.0",
"ISC", "0BSD", "Unlicense", "CC0-1.0"
],
"conditional": [
"LGPL-2.1", "LGPL-3.0", "MPL-2.0", "EPL-2.0"
],
"prohibited": [
"GPL-2.0", "GPL-3.0", "AGPL-3.0", "SSPL-1.0",
"EUPL-1.2", "OSL-3.0"
]
}
Adım 4: CI/CD Entegrasyonu
# .github/workflows/license-check.yml
name: License Compliance
on: [pull_request]
jobs:
check-licenses:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: pnpm install --frozen-lockfile
- name: Check licenses
run: |
npx license-checker --production --excludePackages "" \
--failOn "GPL-2.0;GPL-3.0;AGPL-3.0;SSPL-1.0" \
--summary
SBOM (Yazılım Malzeme Listesi)
SBOM'lar Neden Önemlidir
- ABD Yönetici Emri 14028, ABD hükümetine satılan yazılımlar için SBOM'ların kullanılmasını gerektirir
- AB Siber Dayanıklılık Yasası, AB'de satılan yazılımlar için SBOM'ları gerektirecektir
- Tedarik zinciri güvenliği: SBOM'lar güvenlik açıklarına hızlı yanıt verilmesini sağlar (log4j gerçekleştiğinde etkilenip etkilenmediğinizi bilirsiniz)
- Müşteri güveni: Kurumsal alıcılar, satın alma sırasında giderek daha fazla SBOM talep ediyor
SBOM Standartları
| Standart | Biçim | Bakımı Yapan | Evlat Edinme |
|---|---|---|---|
| CycloneDX | JSON, XML | OWASP | Büyüyor (npm için varsayılan) |
| SPDX | JSON, RDF, Etiket Değeri | Linux Vakfı | Kuruldu (ISO/IEC 5962:2021) |
| SWID | XML | NIST | Hükümet |
Öneri: Çoğu yazılım şirketi için CycloneDX. Daha basittir, daha iyi takım desteğine sahiptir ve endüstrinin varsayılanı haline gelmektedir.
Ortak Uyumluluk Senaryoları
Senaryo 1: Node.js Web Uygulaması
Tipik bir node_modules dizini 500-2.000 paket içerir. Büyük çoğunluk MIT veya ISC lisanslarını kullanıyor. Yaygın sorunlar:
- GPL kullanan geçişli bağımlılıklar (bunları doğrudan eklemediniz)
- Manuel inceleme gerektiren
UNKNOWNlisans alanları - Tek bir pakette birden fazla lisans (ör. "MIT OR Apache-2.0")
Eylem: npx license-checker --production haftalık olarak çalıştırın. İzin verilmeyen lisansları araştırın. GPL bağımlılıklarını izin veren alternatiflerle değiştirin.
Senaryo 2: Odoo Modülü Geliştirme
Odoo Topluluk Sürümü LGPL v3'tür. Odoo Enterprise tescillidir. Özel modülleriniz:
- Topluluk modülleri: LGPL v3 veya uyumlu olmalıdır (dağıtılmışsa)
- Özel dahili modüller: Dağıtılmadığından LGPL geçerli değildir
- Kurumsal eklentiler: Odoo Enterprise lisanslama şartlarına uygun olmalıdır
Senaryo 3: AGPL Bağımlılıklarıyla SaaS
SaaS uygulamanız AGPL lisanslı kod kullanıyorsa (örneğin, SSPL'ye geçmeden önce MongoDB), aşağıdakilerden birini yapmanız gerekir:
- Uygulama kaynak kodunuzun tamamını AGPL kapsamında yayınlayın
- AGPL bağımlılığını kaldırın ve bir alternatif kullanın
- AGPL projesinden ticari bir lisans alın (varsa)
AGPL kodunun sunucu tarafında kullanımı, ikili dosyaları hiçbir zaman "dağıtmasanız" bile copyleft yükümlülüğünü tetikler.
Sıkça Sorulan Sorular
API'mizde GPL kitaplığı kullanmak bizi API'mizi açık kaynak yapmaya zorluyor mu?
Bu onu nasıl kullandığınıza bağlıdır. GPL kitaplığı uygulamanıza (statik veya dinamik olarak) bağlıysa, FSF'nin görüşü, uygulamanızın "türetilmiş bir çalışma" olduğu ve GPL kapsamında lisanslanması gerektiği yönündedir. GPL yazılımıyla bir ağ API'si (örneğin, GPL lisanslı bir veritabanı sunucusu kullanarak) aracılığıyla iletişim kurarsanız, bu genellikle türev bir çalışma olarak kabul edilmez. Özel durumunuz için bir avukata danışın.
Bir bağımlılık lisansını değiştirirse ne olur?
Gelecekteki lisans değişikliklerine değil, kodu aldığınız lisansa tabi olursunuz. Ancak yeni bir lisansla yeni bir sürüme güncelleme yaparsanız yeni lisans o sürüm için geçerli olur. Bu nedenle sürüm sabitlemeli SBOM'lar önemlidir; tam olarak hangi sürümü (ve lisansı) kullandığınızı belgelerler.
"BİLİNMEYEN" lisanslarla bağımlılıkları nasıl ele alırız?
LİSANS dosyası için paketin deposunu kontrol edin. Herhangi bir lisans belirtilmemişse, kod teknik olarak tam telif hakkı koruması altındadır; onu kullanma, değiştirme veya dağıtma hakkınız yoktur. Lisansı bulun (standart dışı bir konumda olabilir), yazardan bir lisans eklemesini isteyin veya bağımlılığı açıkça lisanslanan bir alternatifle değiştirin.
MIT lisanslı paketler için ilişkilendirme yapmamız gerekiyor mu?
Evet. MIT ve çoğu izin veren lisans, yazılımı dağıtırken telif hakkı bildirimini ve lisans metnini eklemenizi gerektirir. Web uygulamaları için bu genellikle bir ÜÇÜNCÜ TARAF BİLDİRİMLERİ dosyasının veya tüm açık kaynak bileşenlerin ve bunların lisanslarının listelendiği bir sayfanın dahil edilmesi anlamına gelir.
Bir Uyumluluk Programı Oluşturmak
Üç Aylık Uyumluluk İncelemesi
- Tüm projeler için SBOM'u yeniden oluşturun
- Son incelemeden bu yana yeni bağımlılıkları tarayın eklendi
- Güncellenen paketlerdeki lisans değişikliklerini kontrol edin
- Görünen tüm "BİLİNMEYEN" lisansları inceleyin
- Yeni lisanslarla karşılaşılırsa onaylı lisans listesini güncelleyin
- Denetim takibi için SBOM anlık görüntülerini arşivleyin
Uyumluluk Rolleri
| Rol | Sorumluluk |
|---|---|
| Mühendislik lideri | Halkla İlişkiler'deki bağımlılık eklemelerini gözden geçirin |
| Yasal/uyumluluk | Onaylanmış lisans listesini tutar, uç durumları inceler |
| Güvenlik | Lisans taramasının yanı sıra savunmasız bağımlılıkları da tarar |
| Ürün sahibi | Ürün için koşullu lisansların kabul edilebilir olup olmadığına karar verir |
Hafif bir uyumluluk programı, küçük bir ekip için üç ayda bir 2-4 saat sürer ve ürün lansmanından sonra veya durum tespiti sırasında bir uyumluluk sorununu keşfetmenin çok daha büyük maliyetini önler.
Sırada Ne Var?
Lisans uyumluluğu yazılım yönetiminin bir yönüdür. Kendi kodunuz için bunu IP koruması, satıcı yazılımı için SaaS anlaşmasının temelleri ve güvenlik uyumluluğu için siber güvenlik düzenleme gereklilikleri ile birleştirin.
Açık kaynak uyumluluk denetimi ve SBOM oluşturma hizmetleri için ECOSIRE ile iletişime geçin.
ECOSIRE tarafından yayınlandı - işletmelerin açık kaynağı sorumlu bir şekilde kullanmasına yardımcı oluyor.
Yazan
ECOSIRE Research and Development Team
ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.
İlgili Makaleler
Denetim Hazırlığı Kontrol Listesi: ERP'niz Denetimleri Nasıl Yüzde 60 Daha Hızlı Hale Getirir?
ERP sistemlerini kullanarak denetim hazırlığı kontrol listesini tamamlayın. Uygun dokümantasyon, kontroller ve otomatik kanıt toplama ile denetim süresini yüzde 60 azaltın.
Çerez Onayı Uygulama Kılavuzu: Yasal Uyumlu Rıza Yönetimi
GDPR, eGizlilik, CCPA ve küresel düzenlemelere uygun çerez iznini uygulayın. İzin banner'larını, çerez kategorizasyonunu ve CMP entegrasyonunu kapsar.
Sınır Ötesi Veri Aktarımı Düzenlemeleri: Uluslararası Veri Akışlarında Gezinme
SCC'ler, yeterlilik kararları, BCR'ler ve GDPR, Birleşik Krallık ve APAC uyumluluğuna yönelik aktarım etki değerlendirmeleriyle sınır ötesi veri aktarımı düzenlemelerinde gezinin.
Compliance & Regulation serisinden daha fazlası
Denetim Hazırlığı Kontrol Listesi: ERP'niz Denetimleri Nasıl Yüzde 60 Daha Hızlı Hale Getirir?
ERP sistemlerini kullanarak denetim hazırlığı kontrol listesini tamamlayın. Uygun dokümantasyon, kontroller ve otomatik kanıt toplama ile denetim süresini yüzde 60 azaltın.
Çerez Onayı Uygulama Kılavuzu: Yasal Uyumlu Rıza Yönetimi
GDPR, eGizlilik, CCPA ve küresel düzenlemelere uygun çerez iznini uygulayın. İzin banner'larını, çerez kategorizasyonunu ve CMP entegrasyonunu kapsar.
Sınır Ötesi Veri Aktarımı Düzenlemeleri: Uluslararası Veri Akışlarında Gezinme
SCC'ler, yeterlilik kararları, BCR'ler ve GDPR, Birleşik Krallık ve APAC uyumluluğuna yönelik aktarım etki değerlendirmeleriyle sınır ötesi veri aktarımı düzenlemelerinde gezinin.
Bölgelere Göre Siber Güvenlik Düzenleme Gereksinimleri: Küresel İşletmeler için Bir Uyumluluk Haritası
ABD, AB, Birleşik Krallık, APAC ve Orta Doğu'daki siber güvenlik düzenlemelerinde gezinin. NIS2, DORA, SEC kurallarını, kritik altyapı gereksinimlerini ve uyumluluk zaman çizelgelerini kapsar.
Veri Yönetişimi ve Uyumluluğu: Teknoloji Şirketleri İçin Tam Kılavuz
Teknoloji şirketlerine yönelik uyumluluk çerçevelerini, veri sınıflandırmasını, saklama politikalarını, gizlilik düzenlemelerini ve uygulama yol haritalarını kapsayan eksiksiz veri yönetimi kılavuzu.
Veri Saklama Politikaları ve Otomasyon: İhtiyacınız Olanı Tutun, İhtiyacınız Olanı Silin
GDPR, SOX ve HIPAA için yasal gereklilikler, saklama programları, otomatik uygulama ve uyumluluk doğrulamasıyla veri saklama politikaları oluşturun.