Siber güvenlik araştırmacıları, MLOps platformlarını hedef alabilecek 20’den fazla güvenlik açığının keşfedilmesinin ardından makine öğrenimi (ML) yazılım tedarik zincirindeki güvenlik riskleri konusunda uyarıyor.
İçsel ve uygulamaya dayalı kusurlar olarak tanımlanan bu güvenlik açıkları, keyfi kod çalıştırmadan kötü amaçlı veri kümelerinin yüklenmesine kadar uzanan ciddi sonuçlara yol açabilir.
MLOps platformları, bir ML model hattı tasarlama ve yürütme yeteneği sunar; model kayıt defteri, ML modellerini depolamak ve sürüm eğitimli ML modellerini depolamak için kullanılan bir havuz görevi görür. Bu modeller daha sonra bir uygulamaya yerleştirilebilir veya diğer istemcilerin bir API (diğer adıyla model-hizmet-olarak) kullanarak bunları sorgulamasına izin verebilir.
JFrog araştırmacıları detaylı bir raporda, “Doğal güvenlik açıkları, hedef teknolojide kullanılan temel formatlar ve süreçlerden kaynaklanan güvenlik açıklarıdır” dedi.
Doğal güvenlik açıklarına örnek olarak, saldırganın seçtiği kodu çalıştırmak için ML modellerini kötüye kullanmak (örneğin, Pickle model dosyaları) verilebilir. Bu, modellerin yükleme sırasında otomatik kod yürütmeyi desteklemesinden faydalanılarak yapılır.
Bu davranış, otomatik kod yürütülmesine izin veren belirli veri kümesi biçimleri ve kitaplıklarına da uzanır ve bu nedenle, yalnızca herkese açık bir veri kümesini yüklerken kötü amaçlı yazılım saldırılarına kapı açabilir.
İçsel güvenlik açığının bir diğer örneği de kullanıcıların kod bloklarını (veya hücrelerini) yürütmesine ve karşılık gelen sonuçları görüntülemesine olanak tanıyan web tabanlı etkileşimli bir hesaplama ortamı olan JupyterLab’dır (eski adıyla Jupyter Notebook).
Araştırmacılar, “Birçok kişinin bilmediği içsel bir sorun, Jupyter’da kod blokları çalıştırılırken HTML çıktısının işlenmesidir,” diye belirtti. “Python kodunuzun çıktısı HTML ve [JavaScript] “Tarayıcınız tarafından memnuniyetle işlenecektir.”
Buradaki sorun, çalıştırıldığında JavaScript sonucunun ana web uygulamasından bağımsız olarak değerlendirilmemesi ve ana web uygulamasının otomatik olarak rastgele Python kodunu çalıştırabilmesidir.
Başka bir deyişle, bir saldırgan kötü amaçlı bir JavaScript kodu üretebilir ve mevcut JupyterLab not defterine yeni bir hücre ekleyebilir, içine Python kodu enjekte edebilir ve sonra onu yürütebilir. Bu özellikle bir çapraz site betikleme (XSS) güvenlik açığından yararlanıldığında geçerlidir.
Bu amaçla JFrog, JupyterLab’da güvenilmeyen bir tarif çalıştırıldığında yeterli temizleme yapılmaması nedeniyle istemci tarafında kod yürütülmesine neden olan MLFlow’da bir XSS açığı (CVE-2024-27132, CVSS puanı: 7,5) tespit ettiğini söyledi.
Araştırmacılar, “Bu araştırmadan çıkardığımız en önemli sonuçlardan biri, veri bilimcilerin Jupyter Notebook ile birlikte bu ML kütüphanelerini kullanabilmesi nedeniyle, ML kütüphanelerindeki tüm XSS açıklarını potansiyel rastgele kod yürütme olarak ele almamız gerektiğidir” dedi.
İkinci grup hatalar, MLOps platformlarında kimlik doğrulama eksikliği gibi uygulama zayıflıklarıyla ilgilidir ve bu durum, ağ erişimi olan bir tehdit aktörünün ML Boru Hattı özelliğini kötüye kullanarak kod yürütme yetenekleri elde etmesine olanak tanıyabilir.
Bu tehditler teorik değil; finansal olarak motive olmuş saldırganlar, yama uygulanmamış Anyscale Ray (CVE-2023-48022, CVSS puanı: 9,8) durumunda gözlemlendiği gibi, bu tür boşlukları kripto para madencilerini konuşlandırmak için kullanıyorlar.
İkinci tür uygulama zafiyeti ise Seldon Core’u hedef alan ve saldırganların kod yürütmenin ötesine geçip bulut ortamında yatay olarak hareket edebilmesini ve çıkarım sunucusuna kötü amaçlı bir model yükleyerek diğer kullanıcıların modellerine ve veri kümelerine erişebilmesini sağlayan bir konteyner kaçışıdır.
Bu güvenlik açıklarının zincirlenmesinin net sonucu, bunların yalnızca bir organizasyona sızmak ve yayılmak için silah olarak kullanılabilmesi değil, aynı zamanda sunucuları da tehlikeye atabilmesidir.
Araştırmacılar, “Model hizmetine izin veren bir platform dağıtıyorsanız, artık yeni bir modele hizmet edebilen herkesin aslında o sunucuda keyfi kod çalıştırabileceğini bilmelisiniz,” dedi. “Modeli çalıştıran ortamın tamamen izole edildiğinden ve bir konteyner kaçışına karşı güçlendirildiğinden emin olun.”
Açıklama, Palo Alto Networks’ün 42. Biriminin, açık kaynaklı LangChain üretken yapay zeka çerçevesindeki (CVE-2023-46229 ve CVE-2023-44467) iki artık düzeltilmiş güvenlik açığını ayrıntılı olarak açıklamasının ardından geldi. Bu açıklar, saldırganların sırasıyla keyfi kod yürütmesine ve hassas verilere erişmesine olanak tanıyabilirdi.
Trail of Bits, geçen ay, Ask Astro adlı bir arama artırılmış nesil (RAG) açık kaynaklı sohbet robotu uygulamasında, sohbet robotu çıktı zehirlenmesine, yanlış belge alımına ve potansiyel hizmet reddi (DoS) tehlikesine yol açabilecek dört sorunu ortaya çıkardı.
Yapay zeka destekli uygulamalardaki güvenlik sorunları ortaya çıkarken, büyük dil modellerini (LLM) kandırarak savunmasız kod üretmelerini sağlama amacıyla eğitim veri kümelerini zehirleme teknikleri de geliştiriliyor.
Connecticut Üniversitesi’nden bir grup akademisyen, “Kodun tespit edilebilir veya alakasız bölümlerine (örneğin yorumlar) kötü amaçlı yükler yerleştiren son saldırıların aksine, CodeBreaker, karmaşık yük dönüşümü için LLM’lerden (örneğin GPT-4) yararlanıyor (işlevsellikleri etkilemeden) ve hem ince ayar için zehirli verilerin hem de üretilen kodun güçlü güvenlik açığı tespitinden kaçınabilmesini sağlıyor” dedi.