Kod tarama sorunlarını giderme
Genellikle, CodeQL yürütmesi ile ilgili hatalarla karşılaşıyorsanız, CodeQL CLI bir çıkış kodu olarak çalıştığı her komutun durumunu bildirir. Çıkış kodu, sonraki komutlar veya CodeQL CLI kullanan diğer araçlar için bilgi sağlar. Çıkış kodu ayrıntıları hakkında daha fazla bilgi için bkz . Çıkış kodları.
Hata: 'database finalize' CodeQL komutu (32)
Bu hata, ayıklama hataları veya eksik derleme adımları nedeniyle CodeQL veritabanı oluşturma işlemini sonlandırmayla ilgili bir sorunu gösterir.
Sorun giderme adımları:
- Kodun var olduğunu ve derlendiğini doğrulama
- Derlenmiş diller için derleme işleminin kod derlediğini ve ile görevleri arasında gerçekleştiğini
AdvancedSecurity-Codeql-Init
AdvancedSecurity-Codeql-Analyze
doğrulayın. Yaygın derleme komutları ve gerekli bayraklar (temiz önbellek/no-daemon gibi) derleme komutlarını belirtme bölümünde bulunabilir. - Yorumlanan diller için, projede belirtilen dil için bazı kaynak kodu olduğunu onaylayın.
- Derlenmiş diller için derleme işleminin kod derlediğini ve ile görevleri arasında gerçekleştiğini
- Ayıklama hatalarını denetleme
- Ayıklama hatalarının CodeQL veritabanının durumunu etkileyip etkilemediğini doğrulayın.
- Genel veritabanı durumunu değerlendirmek için ayıklama hataları ve uyarıları için günlük dosyasını gözden geçirin.
- Ezici hataları araştırma
- Çoğu dosya ayıklayıcı hatalarıyla karşılaşırsa, yanlış ayıklamanın kök nedenini anlamak için daha fazla araştırma yapın.
Hata: otomatik geliştirme betiği (1)
Bu hata, kod tarama kurulumu veya yapılandırmasıyla ilgili bir sorun öneren otomatik derleme hatasını açıklar.
Sorun giderme adımları:
- Derleme adımlarını yapılandırma
- AutoBuild adımını kaldırın ve bunun yerine işlem hatlarınızdaki derlenmiş diller için belirli derleme adımlarını yapılandırın.
- Azure DevOps için GitHub Gelişmiş Güvenliğini Yapılandırma bölümünde sağlanan kurulum yönergelerine bakın.
Hata: Aracı aracı aracı önbelleğinde CodeQL dizinleri bulunamadı
Bu hata, şirket içinde barındırılan aracılar için CodeQL yüklemeyle ilgili bir sorunu gösterir.
Sorun giderme adımları:
- Azure DevOps için GitHub Gelişmiş Güvenliğini Yapılandırma bölümünde sağlanan kurulum yönergelerine veya yapılandırma betiklerine bakın.
Hata: dil işlem hattı değişkeni ayarlanmadı
Bu hata, hangi dillerin taranacağını belirten işlem hattı değişkenini ayarlamadan CodeQL'i çalıştırmaya çalışırken oluşur.
Sorun giderme adımları:
- Dil işlem hattı değişkenini ayarlama
- Dil işlem hattı değişkeninin doğru yapılandırıldığından emin olun. Azure DevOps için GitHub Gelişmiş Güvenliğini Yapılandırma bölümünde sağlanan kurulum yönergelerine bakın.
- Desteklenen diller , ,
cpp
,go
,java
,javascript
,python
,ruby
veswift
dillerini içerircsharp
.
Sonuç döndürmeden CodeQL
Bu bölümde CodeQL analizinin sonuç vermediği durumlar için rehberlik sağlanır.
Sorun giderme adımları:
- Algılanan güvenlik açıklarını denetleme
- Kodunuzun gerçekten güvenlik açığı olmaması olasılığını göz önünde bulundurun. Güvenlik açıkları bekleniyorsa ancak algılanmadıysa, daha fazla bilgi edinmek için devam edin.
- Sorgu paketi yapılandırmasını gözden geçirme
- Kullanılan sorgu paketini onaylayın ve gerekirse daha kapsamlı bir pakete geçmeyi göz önünde bulundurun.
- Alternatif olarak, özel sorgu paketleri özel analiz için oluşturulabilir.
- Sonuçları görüntüleme izinlerini ayarlama
- Analiz sonuçlarına erişmek için en azından katkıda bulunan düzeyinde uygun izinlerin verildiğinden emin olun. Daha fazla bilgi için bkz . Gelişmiş Güvenlik izinleri.
CodeQL zaman aşımına uğradı
Görev görüntüleniyorsa This job was abandoned ... we lost contact with the agent
ve barındırılan AdvancedSecurity-Codeql-Analyze@1
bir Microsoft aracısı kullanıyorsanız, görev ücretli barındırılan aracılar için altı saatlik yerleşik zaman aşımına uğrundadır. Bunun yerine şirket içinde barındırılan bir aracıda analiz çalıştırmayı deneyebilirsiniz.
Kod tarama görev izinleri
Kod tarama derleme görevi, Gelişmiş Güvenlik REST API'lerini çağırmak için işlem hattı kimliğini kullanır. Varsayılan olarak, aynı projedeki işlem hatları CodeQL analizi çalıştırılarak oluşturulan SARIF dosyasını karşıya yükleme erişimine sahiptir. Bu izinler derleme hizmeti hesabından kaldırılırsa veya özel bir kurulumunuz varsa (örneğin, depodan farklı bir projede barındırılan bir işlem hattı), bu izinleri el ile vermelisiniz.
Sorun giderme adımları:
- proje kapsamlı işlem hatları için ve
Advanced Security: Manage and dismiss alerts
koleksiyon kapsamlı işlem hatları için olan işlem hattınızda[Project Name] Build Service ([Organization Name])
kullanılan derleme hizmeti hesabına verinAdvanced Security: View alerts
ve izin verinProject Collection Build Service ([Organization Name])
.
CodeQL paketini şirket içinde barındırılan aracıya el ile yükleme
GitHub'da bulunan mimarinizin kurulum betiğini kullanarak CodeQL paketini aracı aracı aracı önbelleğine yükleyin. Bu betikler ortam değişkeninin $AGENT_TOOLSDIRECTORY
aracıdaki aracı araçları dizininin konumuna ayarlanmasını gerektirir; örneğin. C:/agent/_work/_tool
. Alternatif olarak, aşağıdaki adımları el ile uygulayabilirsiniz:
- GitHub'dan en son CodeQL sürüm paketini seçin.
- Paketi indirin ve genellikle altında
_work/_tool
bulunan aracı aracı dizininin içindeki aşağıdaki dizine açın:./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/
. klasörünün geçerli sürümünüv2.16.0
kullanarak klasör adı olarak adlandırılabilir./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/
. Aracı aracı dizini hakkında daha fazla bilgi edinin. - klasörün içinde
./CodeQL/0.0.0-[codeql-release-bundle-tag]
başlıklıx64.complete
boş bir dosya oluşturun. Önceki örneği kullanarak dosyanızınx64.complete
bitiş dosyası yolu olmalıdır./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete
.