Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps için GitHub Gelişmiş Güvenlik'te kod tarama, güvenlik açıklarını ve kodlama hatalarını bulmak için Azure DevOps deposundaki kodu analiz etmenizi sağlar. Azure DevOps için ya GitHub Gelişmiş Güvenlik'i etkinleştirmeniz ya da bağımsız deneyimi kullanıyorsanız GitHub Kod Güvenliği'ni etkinleştirmeniz gerekecek. Analiz sonucunda tespit edilen tüm sorunlar uyarı olarak bildirilir. Kod tarama, güvenlik açıklarını belirlemek için CodeQL kullanır.
CodeQL, güvenlik denetimlerini otomatikleştirmek için GitHub tarafından geliştirilen kod analizi altyapısıdır. CodeQL kullanarak kodunuzu analiz edebilir ve sonuçları kod tarama uyarıları olarak görüntüleyebilirsiniz. CodeQL hakkında daha ayrıntılı belgeler için Bkz . CodeQL belgeleri.
Note
CodeQL CLI'yi kullanarak şu anda ücretli GitHub Advanced Security for Azure DevOps lisansı kapsamında olan depoları analiz edebilirsiniz. CodeQL CLI'yi tek başına bir araç olarak kullanıyorsanız, CLI'yı yüklemek ve kullanmak için komut satırından tarama hakkındaki GitHub belgelerini takip edin. Sonuçta elde edilen SARIF dosyasını Azure DevOps'a yayımlamak için Gelişmiş Güvenlik Yayımlama görevini kullanın.
Azure DevOps için GitHub Gelişmiş Güvenlik, Azure Repos ile çalışır. GitHub Gelişmiş Güvenliği GitHub depolarla kullanmak için bkz. GitHub Advanced Security.
Önkoşullar
| Kategori | Gereksinimler |
|---|---|
| İzinler | - Depoya yönelik tüm uyarıların özetini görüntülemek için: Katkıda Bulunan depo izinleri. - Gelişmiş Güvenlik'te uyarıları kapatmak için: Project administrator izinleri. - Gelişmiş Güvenlik izinlerini yönetmek için: Proje Koleksiyonu Yöneticileri grubu veya Gelişmiş Güvenlik: ayarları yönet izni İzin Ver olarak ayarlanmalıdır. |
| İşlem hattı görevleri | - Kuruluş ayarları>İşlem Hatları>Ayarlar>Görev kısıtlamaları bölümünde Marketplace görevlerini devre dışı bırak seçeneğinin kapalı olduğundan emin olun. Kod tarama ve bağımlılık taraması, Visual Studio Market aracılığıyla dağıtılan Azure Pipelines görevleri temel alır. Market görevlerini devre dışı bırakırsanız, varsayılan kurulum taramaları çalıştıramaz ve gelişmiş kurulum işlem hatları bir görevin eksik olduğunu bildirebilir. Daha fazla bilgi için bkz. Görev yönetimi. |
Gelişmiş Güvenlik izinleri hakkında daha fazla bilgi için bkz. Gelişmiş Güvenlik izinlerini yönetme.
Kod tarama kurulum türleri hakkında
Deponuz için kod taramayı ayarlamanın iki ana yolu vardır: varsayılan kurulum ve gelişmiş kurulum.
| Varsayılan kurulum | Gelişmiş kurulum | |
|---|---|---|
| Configuration | Otomatik, pipeline yapılandırması gerekmez. | Manuel, bir işlem hattına CodeQL görevleri eklenmesini gerektirir. |
| Dil algılama | Desteklenen dilleri otomatik olarak algılar ve tarar | İşlem hattı görevinde dilleri belirtirsiniz |
| Dal kapsamı | Yalnızca varsayılan dalı tarar | İşlem hattını tetikleyen tüm dalları tarar |
| Derleme özelleştirmesi | Özel derleme adımı yok — none derleme modunu kullanır |
Derlenmiş diller için derleme adımları üzerinde tam denetim |
| Şunun için en uygun | Hızlı etkinleştirme, standart tarama gereksinimleri | Birden fazla dal içeren tarama, özel ajan havuzu veya tarama sıklığı |
Varsayılan kurulum , kod taramasını etkinleştirmenin en hızlı yoludur. Arka planda yönetilen bir tarama yapılandırması oluşturur ve işlem hattı değişikliği gerektirmez. Çoğu depo için varsayılan kurulumla başlamanızı öneririz.
Varsayılan kurulum şu dilleri tarar: C#, C/C++, Java, JavaScript/TypeScript, Python, Ruby ve Rust. Go ve Swift şu anda varsayılan kurulum tarafından desteklenmiyor. Bu dilleri taramak için gelişmiş kurulumu kullanın.
C/C++ içeren bir depoda varsayılan kurulumu etkinleştirdiğinizde, C/C++ ek ayrıntılar panelinde desteklenen bir dil olarak görünür ve yapılandırılmış varsayılan kurulum çalıştırmalarınızın bir parçası olarak taranır.
Gelişmiş kurulum, CodeQL görevlerini doğrudan Azure Pipelines'e ekleyerek tam denetim sağlar. Aşağıdaki durumlarda gelişmiş kurulumu kullanın:
- Farklı diller veya işlem gereksinimleri için belirli aracı havuzlarını yönetme
- Derlenmiş diller için derleme adımlarını özelleştirme
- Varsayılan dalı aşan dalları tarama
- Kod taramayı mevcut bir CI/CD işlem hattıyla tümleştirme
- Belirli bir CodeQL sorgu paketini veya özel sorguları kullanma
İpucu
Varsayılan kurulumla başlayabilir ve daha sonra daha fazla denetime ihtiyacınız varsa gelişmiş kuruluma geçebilir veya her ikisini de kullanabilirsiniz. Varsayılan kurulumu yapılandırma hakkında bilgi için bkz. Gelişmiş Güvenlik özelliklerini GitHub yapılandırma.
Note
CodeQL varsayılan kurulumunu kuruluş veya proje düzeyinde etkinleştirdiğinizde, ilk tarama otomatik olarak tüm etkilenen depolar için kuyruklar çalıştırır. Bir sonraki zamanlanmış çalıştırmayı beklemeden her deponun taraması tamamlandıktan sonra sonuçlar aşamalı olarak görünmeye başlar.
Varsayılan kurulum seçeneklerini yapılandırma
CodeQL varsayılan kurulumunu etkinleştirdikten sonra kuruluş ayarlarınızdan aracı havuzunu yapılandırabilir ve zamanlamayı tarayabilirsiniz . Bu seçenekler kuruluştaki varsayılan kurulumu kullanan tüm depolar için geçerlidir.
Yapılandırılabilir seçeneklere erişmek için Kuruluş ayarları>Depoları'na gidin ve CodeQL varsayılan kurulumu yapılandırılabilir seçenekler açılan listesini genişletin.
Aracı kümesi
Kuruluştaki tüm depolarda CodeQL varsayılan kurulum taramalarını çalıştırmak için kullanılan aracı havuzunu seçin. Aşağıdaki seçeneklerden birini belirleyebilirsiniz:
- Azure Pipelines — Microsoft barındırılan aracıları kullanır. Azure Pipelines aracı havuzunun kullanılması işlem hattı eşzamanlılığını tüketir.
- Kendi kendine barındırılan aracı havuzları — kendi aracılarınızı kullanır. Depolarınız özel ağlara, belirli derleme araçlarına veya barındırılan aracılarda bulunmayan diğer kaynaklara erişim gerektiriyorsa, kendi kendine barındırılan bir havuz seçin.
- Managed DevOps Havuzları — özel VM görüntüleriyle Azure yönetilen havuzları kullanır.
Tarama zamanlaması
CodeQL varsayılan kurulum taramalarının kuruluştaki tüm depolar için ne zaman çalıştırıldığından emin olun. Haftalık taramalar için haftanın belirli bir gününü seçebilirsiniz. Zamanlanmış bir sonraki çalıştırma tarihi, açılan listenin altında görüntülenir.
Note
Kuruluş veya proje düzeyinde varsayılan kurulumu etkinleştirdiğinizde, ilk çalıştırma otomatik olarak kuyruğa alınır, böylece ilk sonuçları almak için zamanlanmış haftalık çalıştırmayı beklemeniz gerekmez.
Çalışan veya kuyruğa alınan taramaları iptal etme
Etkin olarak çalışan veya kuyruğa alınan varsayılan kurulum taramalarını durdurmanız gerekiyorsa, bunları Kuruluş ayarları>Depoları aracılığıyla el ile iptal edebilirsiniz. Gelişmiş Güvenlik: depodaki ayarları yönetme iznine sahip kullanıcılar, çalıştırılan veya kuyruğa alınan varsayılan kurulum çalıştırmalarını iptal edebilir.
Varsayılan kurulum çalıştırmalarını izleme
CodeQL varsayılan kurulum çalıştırmalarınızı aracı havuzu görev günlüğü görünümünden izleyebilir ve bulabilirsiniz.
Gelişmiş günlük görüntüleyicisi — varsayılan kurulum çalıştırması başarısız olduğunda, hata günlük görüntüleyicisinin en üstünde görünür. Günlüğün tamamında tarama yapmadan neyin yanlış gittiğini hızla araştırabilirsiniz.
Çalıştırma adlandırması — varsayılan kurulumdaki çalıştırmalar, aracı havuzu iş günlüğü görünümünde ilk bakışta kolayca tanınmalarını sağlayan bir adlandırma kuralını izler.
Durum ve depo filtreleri — aracı havuzunuz genelinde bir işin başına ne geldiğini daha iyi görmek için işleri Durum ve Depo'ya göre filtreleyin. Bu filtreler yalnızca varsayılan kurulum çalıştırmalarına değil görünümdeki tüm işlere uygulanır.
Kod tarama için gelişmiş kurulum
CodeQL, sonuçların depo başına toplandığı işlem hattı tabanlı bir araçtır.
İpucu
Kod tarama daha yoğun bir derleme görevi olabileceğinden, kod tarama görevini ana üretim işlem hattınızın ayrı, kopyalanmış bir işlem hattına eklemenizi veya yeni bir işlem hattı oluşturmanızı öneririz.
Görevleri aşağıdaki sırayla ekleyin:
- Gelişmiş Güvenlik CodeQL Başlatma (AdvancedSecurity-Codeql-Init@1)
- Özelleştirilmiş derleme adımlarınız
- Gelişmiş Güvenlik CodeQL Çözümlemesi Gerçekleştirme (AdvancedSecurity-Codeql-Analyze@1)
Ayrıca, görevde hangi dili analiz ettiğinizi Initialize CodeQL belirtin. Birden çok dili aynı anda çözümlemek için virgülle ayrılmış bir liste kullanabilirsiniz. Desteklenen diller şunlardır: csharp, cpp, go, java, javascript, python, ruby, swift. Kendi barındırdığınız aracıları kullanıyorsanız, aracınız için en son CodeQL bitlerini otomatik olarak yüklemek amacıyla enableAutomaticCodeQLInstall: true değişkenini de ekleyebilirsiniz.
İşte bir örnek başlangıç işlem hattı:
trigger:
- main
pool:
# Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
vmImage: ubuntu-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: "java"
# Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
# You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines
# If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
enableAutomaticCodeQLInstall: true
# Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.
# If you had a Maven app:
# - task: Maven@4
# inputs:
# mavenPomFile: 'pom.xml'
# goals: 'clean package'
# publishJUnitResults: true
# testResultsFiles: '**/TEST-*.xml'
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.17'
# mavenVersionOption: 'Default'
# Or a general script:
# - script: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines
- task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines
Ayrıca, görevde hangi dili analiz ettiğinizi Initialize CodeQL belirtin. Belirtilen dil ise swift, özel derleme adımları gereklidir.
İpucu
- Java, Kotlin veya her ikisinde yazılmış kodu analiz etmek için
javakullanın. - JavaScript, TypeScript veya her ikisinde yazılmış kodu analiz etmek için kullanın
javascript.
Kendi barındırdığınız bir aracıda çalıştırıyorsanız ve en son CodeQL paketini aracı araç önbelleğinize manuel olarak yüklemediyseniz, aracınızdaki en son CodeQL parçalarını otomatik olarak kullanmak için Enable automatic CodeQL detection and installation öğesini seçin.
Uyarı oluşturmak için, kod tarama görevlerini içeren bir işlem hattıyla ilk taramanızı çalıştırın.
Kod tarama için diğer yapılandırmalar
Dil ve sorgu desteği
GitHub uzmanlar, güvenlik araştırmacıları ve topluluk katkıda bulunanları kod tarama için kullanılan varsayılan CodeQL sorgularını yazar ve korur. Sorgular, analizi geliştirmek ve hatalı pozitif sonuçları azaltmak için düzenli olarak güncelleştirilir. Sorgular açık kaynak, böylece github/codeql deposundaki sorguları görüntüleyebilir ve bu sorgulara katkıda bulunabilirsiniz.
CodeQL aşağıdaki dil tanımlayıcılarını destekler ve kullanır:
| Dil | Tanımlayıcı |
|---|---|
| C/C++ | cpp |
| C# (programlama dili) | csharp |
| Başlayın | go |
| Java/Kotlin | java |
| JavaScript/TypeScript | javascript |
| Python | python |
| Ruby programlama dili | ruby |
| Rust | rust |
| Hızlı | swift |
İpucu
- C, C++ veya her ikisinde yazılmış kodu analiz etmek için kullanın
cpp. - Java, Kotlin veya her ikisinde yazılmış kodu analiz etmek için
javakullanın. - JavaScript, TypeScript veya her ikisinde yazılmış kodu analiz etmek için kullanın
javascript.
Daha fazla bilgi için bkz . Desteklenen diller ve çerçeveler.
CodeQL'in derleme günlüğünde yürüttüğü belirli sorguları ve görev ayrıntılarını görüntüleyebilirsiniz. Varsayılan kurulumu kullandığınızda, gelişmiş günlük görüntüleyicisi, Azure DevOps aracı havuzu iş günlüğü görünümünde belirli tarama çalıştırmalarını bulmanıza ve gözden geçirmenize yardımcı olmak için daha net çalıştırma adlandırması ve yeni durum ve depo filtreleri sağlar.
Kod tarama derleme modunu özelleştirme
Kod tarama, tarama için bir işlem hattı ayarlarken iki derleme modunu destekler:
-
none- CodeQL veritabanı, kod tabanı oluşturulmadan doğrudan kod tabanından oluşturulur (tüm yorumlanan diller için ve ayrıca ,cppvejavaiçincsharpdesteklenir). -
manual- iş akışındaki kod tabanı için kullanılacak derleme adımlarını tanımlarsınız (tüm derlenmiş diller için desteklenir).
Her derleme modunun avantajlarıyla ilgili bir karşılaştırma da dahil olmak üzere farklı derleme modları hakkında daha fazla bilgi için bkz . Derlenmiş diller için CodeQL kod tarama.
İpucu
Derleme modu none JavaScript, Python, Ruby gibi diğer yorumlanmış dillerle kullanılabilir.
C# veya Java için derleme modu none belirtilirse ve bu modları desteklemeyen diğer derlenmiş dillerle birlikte kullanılırsa, işlem hattı görevi başarısız olur.
Aşağıdaki kodda birden çok dil ve none derleme modu içeren geçerli bir yapılandırma örneği gösterilmektedir:
trigger: none
pool:
vmImage: windows-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
displayName: Initialize CodeQL
inputs:
# build mode `none` is supported for C# and Java, and JavaScript is an interpreted language
# and build mode `none` has no impact on JavaScript analysis
languages: 'csharp, java, javascript'
buildtype: 'none'
- task: AdvancedSecurity-Codeql-Analyze@1
displayName: Perform CodeQL Analysis
Aşağıdaki kodda birden çok dil ve none derleme modu içeren geçersiz yapılandırma örneği gösterilmektedir:
trigger: none
pool:
vmImage: windows-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
displayName: Initialize CodeQL
inputs:
# build mode `none` is supported for C# but build mode `none` is NOT supported for Swift
# so this pipeline definition will result in a failed run
languages: 'csharp, swift'
buildtype: 'none'
- task: AdvancedSecurity-Codeql-Analyze@1
displayName: Perform CodeQL Analysis
Kod tarama uyarıları
GitHub Advanced Security for Azure DevOps kod tarama uyarıları, depo bazında kod tarama bayraklarını içerir ve bunlar, kod düzeyindeki uygulama güvenlik açıklarını bildirir.
Kod taramayı kullanmak için önce Azure DevOps için
Azure DevOps'daki Repos altındaki Gelişmiş Güvenlik sekmesi, kod tarama uyarılarınızı görüntülemek için merkezdir. Tarama uyarılarını görüntülemek için Kod tarama sekmesini seçin. Dal, durum, işlem hattı, kural türü ve önem derecelerine göre filtreleyebilirsiniz. Şu anda, uyarı merkezi PR dallarında tamamlanan tarama uyarılarını göstermez.
İşlem hatları veya dallar yeniden adlandırılırsa sonuçların bir etkisi olmaz. Yeni adın görüntülenmesi 24 saat kadar sürebilir.
Özel CodeQL sorguları çalıştırmayı seçerseniz, farklı sorgu paketlerinden oluşturulan uyarılar için varsayılan olarak ayrı bir filtre yoktur. Her sorgu için ayrı olan kurala göre filtreleyebilirsiniz.
Deponuz için Gelişmiş Güvenlik'i kapatırsanız, Gelişmiş Güvenlik sekmesinde ve derleme görevinde sonuçlara erişimi kaybedersiniz. Derleme görevi başarısız olmaz, ancak Gelişmiş Güvenlik devre dışı bırakıldığında derlemelerden elde edilen sonuçlar gizlidir ve korunmaz.
Uyarı ayrıntıları
Düzeltme kılavuzu da dahil olmak üzere daha fazla ayrıntı için bir uyarı seçin. Her uyarı bir konum, açıklama, örnek ve önem derecesi içerir.
| Bölüm | Açıklama |
|---|---|
| Konum | Konumlar bölümünde CodeQL'in bir güvenlik açığı algıladığı belirli bir örnek ayrıntılı olarak açıklanmıştır. Kodunuzun aynı kuralı ihlal eden birden çok örneği varsa, her farklı konum için yeni bir uyarı oluşturulur. Konumlar kartı, etkilenen kod parçacığına doğrudan bir bağlantı içerir, böylece düzenlemek üzere Azure DevOps web kullanıcı arabirimine yönlendirilecek kod parçacığını seçebilirsiniz. |
| Açıklama | Açıklama, sorundan yola çıkarak CodeQL aracı tarafından sağlanır. |
| Öneri | Öneri, belirli bir kod tarama uyarısı için önerilen düzeltmedir. |
| Örnek | Örnek bölümde, kodunuzda tanımlanan zayıflık basitleştirilmiş bir örnek gösterilmektedir. |
| Ciddiyet | Önem düzeyleri düşük, orta, yüksek veya kritik olabilir. Önem derecesi, belirlenen Ortak Zayıflık Numaralandırması (CWE) için verilen Ortak Güvenlik Açığı Puanlama Sistemi (CVSS) puanına göre belirlenir. Bu GitHub blog gönderisinde önem derecelerinin nasıl puanlanmış olduğu hakkında daha fazla bilgi edinin. |
Depo için uyarıları görüntüleme
Depo için katkıda bulunan izinleri olan herkes, Repos altındaki Gelişmiş Güvenlik sekmesinde bir depo için tüm uyarıların özetini görüntüleyebilir. Tüm gizli dizi tarama uyarılarını görüntülemek için Kod tarama sekmesini seçin.
Sonuçları görüntülemek için önce kod tarama görevlerinin çalıştırılması gerekir. İlk tarama tamamlandıktan sonra, algılanan tüm güvenlik açıkları Gelişmiş Güvenlik sekmesinde görüntülenir.
Varsayılan olarak, uyarılar sayfasında deponun varsayılan dalı için kod tarama sonuçları gösterilir.
Belirli bir uyarının durumu, uyarı diğer dallarda ve işlem hatlarında bulunsa bile varsayılan dalın ve en son çalıştırılan işlem hattının durumunu yansıtır.
Copilot Otomatik Düzeltme ile düzeltme oluşturma
Desteklenen bir uyarı için Düzeltme oluştur seçerek Copilot Otomatik Düzeltme'nin bir değişiklik önermesini ve çekme isteği açmasını sağlayın. Önerilen düzeltmeyi gözden geçirin, test edin ve birleştirin, ardından sonucu doğrulamak için kod taramayı yeniden çalıştırın.
Agentic Autofix, önerilen düzeltmenin kodlama standartlarınıza uymasına yardımcı olmak için depoya check-in yapılmış havuz yönergelerini ve ilgili becerileri kullanabilir. Sınırlı herkese açık önizleme aşamasındadır. Önkoşullar, etkinleştirme ve depo bağlamı yönergeleri için bkz. kod güvenliği uyarıları için Copilot Autofix.
Eski veya kullanılmayan işlem hattı yapılandırmalarından gelen uyarıları otomatik temizleme
Otomatik temizleme, işlem hattı yapılandırmaları çalışmayı durdurduğunda eski tarama sonuçlarını gizler. Uyarı veya ilişkili dalı 90 günden eski diye bir uyarıyı yalnızca bu nedenle gizlemez. Bu davranış, kod tarama ve bağımlılık tarama uyarıları için geçerlidir.
Yapılandırmayı güncelliğini yitirmiş yapan nedir?
Temizleme, tarama yapılandırmasıyla ilişkili işlem hattı aşamasının en son tamamlanma süresini kullanır. Bu tamamlanma süresi varsayılan olarak 90 günden uzun bir süre önce olduğunda aşama eskir.
Gelişmiş Güvenlik işlem hattı aşaması kaydını etkin değil olarak işaretler ancak sonuçlarını korur. Ardından, uyarı görünümü bir uyarıyı yalnızca bu uyarıyla ilişkili en son sonuçların tümü eski yapılandırmalardan geldiğinde gizler. Bu sonuçlardan herhangi biri etkin bir yapılandırmadan geliyorsa uyarı yine de görünebilir.
| Tarih veya etkinlik | 90 günlük temizlik için mi kullanılır? |
|---|---|
| Uyarı ilk algılandığında | No |
| Uyarının en son algılandığı zaman | No |
| Dal en son ne zaman tarandı | Bağımsız olarak değil. Temizleme, dallar arasında paylaşılabilen ilişkili işlem hattı aşamasını izler. |
| İlişkili işlem hattı aşamasının en son tamamlanma zamanı | Yes |
Eski dal tespiti neden görünür kalabilir veya yeniden görünebilir?
Farklı şubeler aynı ardışık düzen aşaması etkinlik kaydını ortak kullanabilir. Bu aşama başka bir dalda yeniden çalıştırıldığında Gelişmiş Güvenlik tamamlanma süresini güncelleştirir ve ilişkili yapılandırmaları yeniden etkinleştirir. Sonuç olarak, yakın zamanda çalışmayan bir daldaki eski tespitler görünür kalabilir veya yeniden görünebilir.
Örneğin, şu sırayı göz önünde bulundurun:
- Ardışık düzen aşaması,
developüzerinde bir güvenlik açığı algılar. - Bu aşama, 90 günden uzun süre hiçbir dalda çalışmaz. Temizleme onu etkin değil olarak işaretledikten sonra Gelişmiş Güvenlik, diğer etkin yapılandırmalardan en son sonuç alınmazsa uyarıyı gizler.
- Aynı aşama
feature/update-buildüzerinde çalışır. Gelişmiş Güvenlik, ilişkili yapılandırmalarını yeniden etkinleştirir, böylece eskidevelopalgılama yeniden görünebilir.
feature/update-build üzerine taşan metin, develop öğesini taramaz. Paylaşılan işlem hattı aşamasının etkin durumunu değiştirerek Gelişmiş Güvenlik'in eski sonucu gösterip göstermeyeceğini denetler.
Bu nedenle, ilk görüldüğü veya son görüldüğü eski bir tarihle bir uyarı görüntülenebilir. Bu tarihler işlem hattı aşamasının etkinlik durumunu değil branch’teki algılamayı açıklar. Yapılandırmanın yeniden etkinleştirilmesi, eski sonucu yeni bir algılama hâline getirmez veya özgün ilk görüldüğü tarihin değiştirilmesini gerektirmez.
Neyi kontrol etmelisiniz?
Eski bir algılama görünür durumda kaldığında, yalnızca uyarıda gösterilen dalı değil, aynı işlem hattı aşamasının farklı dallardaki çalıştırmalarını da gözden geçirin. Güvenlik açığının o dalda hala mevcut olup olmadığını denetlemek için bu dalda taramayı çalıştırın.
Important
Otomatik temizleme sonuçları gizler. Güvenlik açığını düzeltmez veya uyarıyı kapatmaz. İlişkili yapılandırma yeniden etkin hale gelirse, önceden gizli olan açık uyarılar açık uyarılar olarak döndürülebilir.
Kod tarama uyarılarını kapatma
Uyarıları kapatmak için uygun izinlere sahip olmanız gerekir. Varsayılan olarak, yalnızca proje yöneticileri Gelişmiş Güvenlik uyarılarını kapatabilir.
Uyarıyı kapatmak için:
- Kapatmak istediğiniz uyarıya gidin ve uyarıyı seçin.
- Uyarıyı kapat açılır menüsünü seçin.
- Henüz seçili değilse, kapatma nedeni olarak Risk kabul edildi veya Hatalı pozitif seçeneğini belirleyin.
- Açıklama metin kutusuna isteğe bağlı bir açıklama ekleyin.
- Uyarıyı göndermek ve kapatmak için Kapat'ı seçin.
- Uyarı durumu Açık olan Kapalı olarak değişir ve kapatma nedeniniz görüntülenir.
Bu eylem uyarıyı tüm dallarda kaldırır. Aynı güvenlik açığını içeren diğer dallar da kapatılır. Daha önce kapatılan tüm uyarılar el ile yeniden açılabilir.
Çekme isteklerinde kod tarama uyarılarını yönetme
Çekme isteğinde yeni kod değişiklikleri için uyarılar oluşturulursa, uyarı, çekme isteğinin Genel Bakış sekmesinin açıklama bölümünde ek açıklama olarak ve Gelişmiş Güvenlik deposu sekmesinde bir uyarı olarak bildirilir. Çekme isteği dalı için yeni bir dal seçici girdisi var.
Etkilenen kod satırlarını gözden geçirebilir, bulmanın özetini görebilir ve Genel Bakış bölümünde ek açıklamayı çözümleyebilirsiniz.
Çekme isteği uyarılarını kapatmak için uyarı ayrıntı görünümüne gidip hem uyarıyı kapatmanız hem de ek açıklamayı çözümlemeniz gerekir. Aksi takdirde, açıklama durumunun (1) değiştirilmesi ek açıklamayı çözer, ancak altta yatan uyarıyı kapatmaz veya düzeltmez.
Çekme isteği dalınızın tüm sonuç kümesini görmek için Repos>Gelişmiş Güvenlik gidin ve çekme isteği dalınızı seçin. Ek açıklama üzerinde Daha fazla ayrıntı göster (2) seçeneğinin seçilmesi sizi Gelişmiş Güvenlik sekmesindeki uyarı ayrıntı görünümüne yönlendirir.
İpucu
Ek açıklamalar yalnızca etkilenen kod satırları çekme isteğinin hedef dalı ile karşılaştırıldığında çekme isteği farkı için tamamen benzersiz olduğunda oluşturulur.