Uyumluluk modülü
Uyumluluk modülü, ArchPilot, ArchScan ve ArchSecurity çıktılarını tek bir uyumluluk skoru ve denetime hazır rapor halinde toplar.
Özellikler
Bölüm başlığı “Özellikler”- Tek uyum skoru - modül çıktıları tek, karşılaştırılabilir bir skora indirgenir.
- Denetime hazır rapor - denetçiye doğrudan verilebilen paylaşılabilir rapor.
- Eksik analizi - hangi kuralların geçilemediğini satır satır gösterir.
- Kendi politika kurallarınız - uyum tanımını siz belirlersiniz.
- Zaman içinde takip - skorun sürümler boyunca ilerleyişini izleyin.
Limitler
Bölüm başlığı “Limitler”Aylık tarama limitleri paketinize göre uygulanır. Trial’da 5 tarama/ay; ücretli paketlerde sınırsız.
Container imajları ve paket kaynakları
Bölüm başlığı “Container imajları ve paket kaynakları”Dört kural servisin nasıl derlendiğine ve bağımlılıklarının nereden geldiğine bakar:
| Kural | Geçer, eğer |
|---|---|
BE_DOCKERFILE_NON_ROOT_USER | İmajın son aşaması root dışı bir kullanıcıyla çalışıyorsa - bir USER satırı, FROM ile türediği aşamadan miras kalan kullanıcı ya da tasarımı gereği root olmayan bir base image (.NET chiseled, distroless nonroot). Hiç USER yoksa root sayılır. |
BE_DOCKERFILE_APP_OWNED_BY_NON_ROOT | Uygulama dosyaları son aşamada o kullanıcıya veriliyorsa - COPY --chown= / ADD --chown= ya da RUN chown. Build aşamasındaki chown imaja ulaşmaz. |
BE_DOCKERFILE_BASE_IMAGE_ALLOWED | Dockerfile’ın çektiği her imaj izinli bir kaynaktan geliyorsa. Build argümanıyla adlandırılmış imaj (FROM ${BASE_IMAGE}) pipeline’dan, include ettiği şablonlardan ve projenin CI/CD değişkenlerinden çözülür; çözülemeyen atlanır, başarısız sayılmaz. |
DEP_NUGET_SOURCES_ALLOWED | Yalnız .NET: kökteki nuget.config’in her paket kaynağı izinli bir feed ise. <clear/> yoksa makinenin nuget.org’u yine geçerlidir ve bu, düzeltmesiyle birlikte raporlanır. |
İzinli kaynaklar kurulum için bir kez tanımlanır (Yönetim → Ayarlar → Politikalar → İzinli kaynaklar), her çalışma alanı kendi eklemelerini yapabilir (Çalışma alanı ayarları → İzinli kaynaklar); kural bir kaynağı iki listeden birinde varsa kabul eder. Bir kayıt registry host’u ya da yolu (registry.example.com, altındaki her şey) veya feed adresidir; * herhangi bir karakter dizisi demektir (registry.example.com/*, *.example.com/*, harbor.example.com/base/*:10.*) - düzenli ifade değildir. Bir türde hiç kaynak tanımlı değilken o tür için kural atlanır.
Özel depolar
Bölüm başlığı “Özel depolar”Yedi kural şirket dışındaki kişilere hitap eder - DOC_LICENSE_EXISTS, DOC_LICENSE_SPDX_RECOGNIZED, DOC_CONTRIBUTING_EXISTS, DOC_CODE_OF_CONDUCT_EXISTS, SEC_POLICY_EXISTS, DOC_README_HAS_BADGES ve REPO_HAS_TOPICS. Özel bir depoda (GitLab’da private ya da internal) bunlar varsayılan olarak kapalıdır ve atlandı görünür. Proje, çalışma alanı ya da kurulum düzeyinde açılan kural yine çalışır.
Diğer kurallar da dosyayı bulunduğu yerde okur: alt klasördeki (infra/docker/) yerel docker-compose dosyası sayılır; .env.example yalnız yapılandırmayı .env ile taşıyan yığınlarda (Node.js, Python, Ruby, PHP, Go) istenir, .NET ve Java’da istenmez.
ISO 27001
Bölüm başlığı “ISO 27001”AppArch, ISO/IEC 27001:2022 Ek A’yı zaten ürettiği kanıtlara eşler: Uyum kuralları, Git Sağlığı kuralları ve ArchSecurity zafiyet sınıfları (CWE); her biri doğrudan ya da kısmi olarak işaretlidir.
- Çerçeve ile tara - Kurallar → Uyum kuralları ve Git Sağlığı kuralları sayfalarında Yalnız ISO 27001 kuralları çalışma alanını tam olarak eşlenen kurallara çevirir; Varsayılan kurallara dön bunu geri alır. Anahtarlar kural kural düzenlenebilir kalır, proje ayarları korunur. Yöneticiler aynı profili kurulum varsayılanlarına uygulayabilir (Yönetim → Ayarlar → Kurallar).
- ISO 27001 teknik kanıtları (Uyum → ISO 27001 kanıtları) - her kontrol ve son taramaların onun hakkında söyledikleri: geçiyor, kalıyor, henüz kanıt yok veya koddan ölçülemez. Kontrollerin çoğu organizasyonel, insan veya fiziksel önlemdir; ayrı listelenir. Rapor teknik kanıttır, sertifika değildir.
Manuel kontroller
Bölüm başlığı “Manuel kontroller”Bazı kontrolleri hiçbir tarama yapamaz: erişim gözden geçirmesi, geri yükleme testi, imzalı gizlilik sözleşmeleri. Bunları Kurallar → Manuel kontroller altında kendi kurallarınız olarak yazın ya da elinizdeki listeyi CSV olarak içe aktarın (içe aktarma sayfasında şablon var; sütunlar code, title, description, category, severity, recheck_days, iso_controls, enabled, virgül veya noktalı virgülle ayrılmış). İçe aktarma kuralları koda göre eşleştirir ve ya hepsini ya hiçbirini kaydeder.
- Kuralı diğer uyum kuralları gibi çalışma alanında veya proje bazında açın.
- Projenin manuel kontrol sayfasında bir kişi notla birlikte geçti veya kaldı der. Her karar kimin ve ne zaman verdiğiyle saklanır; düzeltme yeni bir karardır, eski karar değiştirilmez.
- Yeniden kontrol günü girilirse geçti kararı süre dolunca yeniden kontrol gerekli olur.
- Kurala ISO 27001 kontrolleri yazılırsa ISO 27001 raporu kararları o kontroller için kanıt sayar; insan ve fiziksel kontroller ancak böyle kanıt kazanır.
- Manuel kontroller uyum skorunu değiştirmez. Her kuralın projeler genelindeki kararları CSV olarak indirilebilir; kararı olan bir kural silinirse geçmişiyle birlikte arşivlenir.
Kapatılan kurallar
Bölüm başlığı “Kapatılan kurallar”Bu kurallar artık çalışmaz. Önceki taramaların bulguları geçmişte kalır; aynı soruyu artık hangi kuralın yanıtladığı her birinin yanında yazar.
| Kural | Yerine geçen | Neden |
|---|---|---|
SEC_BRANCH_PROTECTION | Git Health GIT_DEFAULT_BRANCH_PROTECTED | Dal koruması bir Git sağlayıcı ayarıdır; onu Git Health okur ve force push ile doğrudan push kuralları buna dayanır. |
SEC_NO_ENV_AT_ROOT | Git Health REPO_SECRET_FILE_COMMITTED | Git Health kuralı .env dosyalarını, özel anahtarları ve üretim ayarlarını yalnızca kökte değil tüm depoda arar. |
INT_ARCHPILOT_ENABLED, INT_ARCHSCAN_ENABLED | - | Modüller artık proje başına açılıp kapanmıyor, kontrol edilecek bir şey kalmadı. |