Aracılığıyla paylaş


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ı:

  1. 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.
  2. 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.
  3. 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ı:

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ı:

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

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ı:

  1. 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.
  2. 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.
  3. 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 verin Advanced 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:

  1. GitHub'dan en son CodeQL sürüm paketini seçin.
  2. Paketi indirin ve genellikle altında _work/_toolbulunan 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.0kullanarak 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.
  3. 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ın x64.complete bitiş dosyası yolu olmalıdır ./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete.