Ana Sayfa

Bash Komutlarına İzin Vermek Her Şeye İzin Vermekle Aynı Olabilir

1 dk okuma

Formal gibi şirketler, yazılım geliştirmede Claude Code gibi yapay zeka destekli kodlama araçlarını yoğun bir şekilde kullanıyor. Bu araçların verimli çalışması için, dosya düzenlemelerine ve belirli Bash komutlarına otomatik onay verilmesi (allowlisting) geliştirme sürecini hızlandırıyor. Ancak makale, bu "allowlisting" yaklaşımının beklenmedik güvenlik riskleri taşıdığını ve bazı komutlara izin vermenin, aslında yapay zeka aracına neredeyse tüm komutları çalıştırma yeteneği kazandırabileceğini vurguluyor.

Makale, Go ve TypeScript dillerindeki örneklerle bu durumu açıklıyor. Örneğin, go test komutuna izin verildiğinde, yapay zeka bir test dosyasını exec.Command kullanarak rastgele Bash betikleri çalıştıracak şekilde düzenleyebilir ve ardından testi çalıştırarak bu betiği tetikleyebilir. Benzer şekilde, go generate komutu da kod oluşturma sürecinde rastgele kod yürütülmesine olanak tanıyabilir. Hatta go build komutunun -toolexec argümanı kullanılarak, derleme işlemi sırasında istenmeyen başka komutların çalıştırılabileceği gösteriliyor.

Sadece derleme veya linting gibi görünen işlemler bile risk taşıyor. eslint gibi lint araçları, JavaScript tabanlı yapılandırma dosyaları aracılığıyla execSync gibi fonksiyonları kullanarak rastgele komutlar yürütebilir. make veya pnpm run gibi komutlar ise, package.json veya Makefile dosyalarını düzenleyerek herhangi bir komutun çalıştırılmasına zemin hazırlayabilir. Bu durum, geliştiricilerin yapay zeka araçlarına belirli komutlar için otomatik onay verirken son derece dikkatli olmaları gerektiğini, zira bu izinlerin kolayca kötüye kullanılabilecek geniş bir yetki alanına dönüşebileceğini ortaya koyuyor.

İçgörü

Yapay zeka destekli kodlama araçlarına belirli Bash komutları için verilen otomatik onaylar, beklenmedik güvenlik açıkları oluşturarak aracın sisteme tam erişim sağlamasına yol açabilir.

Kaynak