Connect with us

Röportajlar

Ronen Slavin, CTO ve Kurucu, Cycode – Röportaj Serisi

mm

Ronen Slavin, Cycode’un CTO’su ve kurucusu, bir dizi girişimcinin yanı sıra İsrail Savunma Kuvvetleri’nin Unit 8200 biriminin eski bir subayıdır. 2019 yılında Cycode’u kurmadan önce, Reason Security tarafından 2018 yılında satın alınan FileLock’u kurdu ve Reason Cybersecurity’de Araştırma Başkanı olarak görev yaptı. Malware tespit, güvenlik açığı araştırması ve sömürme konularında derin uzmanlığa sahip olan Slavin, gelişmiş güvenlik araştırması ve ürün yeniliği arasındaki kesişmede bir kariyer inşa etti.

Cycode, güvenlik ve geliştirme ekiplerini koddan çalışma zamanına kadar eyleme geçirilebilir bağlamla birleştiren bir AI-yerli uygulama güvenlik platformudur. AST, ASPM ve yazılım tedarik zinciri güvenliğini birleştirdiği için, hem AI hem de insan tarafından oluşturulan kodu güvence altına alır. Risk Zekâsı Grafiği (RIG), özel tarayıcılar ve entegrasyonlar ile çalışan Cycode, anında risk tespiti, Değişim Etki Analizi (CIA) ve AI tarafından yönlendirilen düzeltmeler sağlar – görünürlük boşluklarını kapatmak, giderme işlemlerini hızlandırmak ve ilk günden itibaren maliyetleri azaltmak.

Siz Cycode’u neden kurmaya karar verdiniz ve yazılım güvenliğinde hangi ana sorunu çözmeyi hedeflediniz?

Cycode fikri, tekrar tekrar gözlemlediğimiz bir şeyden ortaya çıktı; kaynak kodu çalınması veya yanlış ellere yanlışlıkla sızdırılması. Siber güvenlik ve saldırıya açık güvenlik alanında yıllar geçirdikten ve Reason’da uç nokta korumasını yönettikten sonra, kaynak kodunun ne kadar kritik olduğunu fark ettik – sadece kod satırları olarak değil, bir şirketin en değerli varlıklarından biri olarak. Bu göz açıcı realizasyon, beni Cycode’u kurmaya teşvik etti. Başından beri misyonumuz nettı: kodu yazıldığı andan itibaren gönderildiğine kadar her aşamada korumak, ancak geliştiricilerin ivmesiyle ve ivmesiyle engellememek. Güvenlik ve mühendisliğin günlük iş akışına sorunsuz bir şekilde entegre edilmesini, engel yerine birlikte çalışmasını sağlamak istedik.

En önemli şey, ekiplere gerekli görünürlüğü, hesap verebilirliği ve işbirliğini sağlamaktı. Geliştiricilerin güvenliği için üretkenliklerinden ödün vermemeleri, güvenlik ekiplerinin ise bağlam veya kontrol olmadan çalışmamaları gerekiyordu. Cycode, her iki olasılığı da mümkün kılmak için yaratıldı.

Önceki deneyimlerinizi, bir siber güvenlik girişimcisi olarak ve İsrail’in elit istihbarat birimi Unit 8200’de hizmet vermeniz, Cycode’daki teknik yaklaşiminizi nasıl şekillendirdi?

İsrail’in siber güvenlik ekosisteminde, özellikle de elit teknik ortamlarda geçirilen zaman, bir doğruluk, uyum ve meraklılık zihniyeti aşıladı. Unit 8200’de veya ilk girişim günlerimde, hem saldırgan hem de savunmacı olarak düşünmeyi öğrendim. Bu çift perspektif, Cycode’u nasıl inşa ettiğimizde temel oldu.

Bir siber güvenlik girişimcisi olarak, güvenlik manzarasının ne kadar parçalı ve tepkisel hale geldiğini gördüm. Güvenlik araçları genellikle sonra eklenirdi, geliştiricilerin bağlam olmadan uyarılabilecek bir labirenti gezinmelerine neden oluyordu. Bunu değiştirmeye çalıştık.

Cycode’da, sistem düzeyinde bir yaklaşım benimsedik, kaynak kodunu kritik bir varlık olarak ele aldık ve güvenlik önlemlerini yazılım geliştirme yaşam döngüsüne baştan entegre ettik. Arka planım, güvenliğin proaktif, bağlamsal ve geliştirici dostu olması gerektiğini öğretti. Bu nedenle, otomasyon, görünürlük ve güvenlik ile yazılım geliştirme arasındaki boşluğu köprüleme üzerinde çok fazla odaklanıyoruz. Sadece güvenlik açıklarını bulmak değil, önemli olanı hızlı bir şekilde düzeltmektir.

Cycode, AST (Uygulama Güvenlik Testi) ve ASPM (Uygulama Güvenlik Durum Yönetimi) dahil olmak üzere birden fazla koruma katmanını birleştirir. Bunlarla ilgili olarak, bu öğelerin nasıl birlikte çalıştığını ve Cycode’un yaklaşımının neler farklı olduğunu açıklar mısınız?

Kesinlikle. Cycode’da, modern yazılımı güvence altına almak için sadece kodu taramak yeterli değildir; kodun nasıl oluşturulduğu, dağıtıldığı ve bakımının yapıldığının kapsamlı bir şekilde anlaşılması gerekir. AI-yerli bir uygulama güvenlik platformu olarak, yaklaşımımız farklılaştırıcıdır, çünkü Uygulama Güvenlik Testi (AST), Uygulama Güvenlik Durum Yönetimi (ASPM) ve Yazılım Tedarik Zinciri Güvenliğini (SSCS) birleştirdiği için.

AST araçları, suchas SAST, DAST ve SCA, kod, bağımlılıklar ve altyapıdaki güvenlik açıklarını belirlemede etkili olur. Ancak genellikle silolar içinde çalışırlar ve bağlam olmadan uyarılar oluştururlar. İşte burada ASPM devreye girer. ASPM, tüm yazılım geliştirme yaşam döngü boyunca güvenlik durumuna ilişkin görünürlük sağlar ve risk önceliklendirmesi ve eyleme geçirilebilir düzeltme sağlar, SSCS platformu CI/CD boru hatlarını güvence altına alır.

Cycode’un benzersiz olduğu şey, bu katmanları nasıl birleştirdiğimiz ve bir entreprise standardı belirlediğimizdir. AI döneminde, güvenlik daha akıllı hale gelmek zorundadır. AST, ASPM ve SSCS’nin temelini AI ajanları ile güçlendirdik ve böylece önemli olanı daha hızlı bir şekilde düzeltmeye yardımcı oluyoruz, daha önce bahsettiğim güvenlik boşluğunu kapatıyoruz.

Cycode, GitHub, GitLab veya Azure DevOps gibi modern DevOps boru hatlarına nasıl entegre olur ve yaşam döngüsünün erken aşamalarında riskleri nasıl tespit eder?

Cycode, modern DevOps ile uyumlu olarak tasarlandı. Güvenlik önlemlerini yavaşlatmadan tüm yazılım geliştirme yaşam döngüsünün her aşamasına entegre olmak için GitHub, GitLab ve Azure DevOps gibi platformlara doğrudan bağlanıyoruz.

Platformumuz, kod, yapılandırmalar ve iş akışlarını sürekli olarak izlemek için kaynak kontrolü ve CI/CD sistemlerine bağlanır. Kodu ve çekme isteklerini gerçek zamanlı olarak tarar, böylece geliştiriciler kodu birleştirmeden önce güvenlik açıkları hakkında anında geri bildirim alırlar. Ayrıca, sorunları doğru sahiplere atamak için commit geçmişini ve meta verilerini analiz ederiz, böylece sürtüşme azaltılır ve giderme işlemi hızlanır.

Yaklaşımımızda sadece uyarılar oluşturmuyoruz; tam bağlamı sağlıyoruz. Bu, sorunların kökenini, potansiyel etkisini ve çözüm adımlarını içerir. JIRA gibi araçlarla entegre olduğumuz için, otomatik olarak biletleme oluşturup takip edebiliriz, böylece güvenlik ve mühendislik senkronize kalır.

Nihai hedefimiz, güvenlik önlemlerini kontrolsüz bir şekilde sola kaydırmak, böylece risklerin erken tespit edilmesi, hızlı bir şekilde ele alınması ve boru hattın daha sonraki aşamalarında engeller haline gelmemesidir.

Cycode’un Risk Zekâsı Grafiği, ekiplere kod, konteynırlar, altyapı ve çalışma zamanı boyunca tehditleri nasıl bağlar?

Evet, gurur duyduğumuz bir özelliktir. Risk Zekâsı Grafiği, Cycode’un güvenlik verilerini tüm yazılım tedarik zinciri boyunca bağlamsal olarak anlamak ve ilişkilendirmek için kullandığı motorudur.

Risk Zekâsı Grafiğini, kod, açık kaynak bağımlılıkları, CI/CD boru hatları, artifact kayıt defterleri ve çalışma zamanı ortamları dahil her şeyi birleştiren dinamik bir harita olarak düşünün. Sadece veri toplamaz; ilişkileri anlar. Bir konteynırda bir güvenlik açığı bulunursa, Risk Zekâsı Grafiği, bunu tam olarak hangi koda, hangi geliştiricinin bunu taahhüt ettiğine, hangi boru hattının bunu inşa ettiğine ve hangi altyapıda çalıştığına kadar geri takip edebilir.

Bu düzeyde görünürlük kritiktir. Güvenlik ekiplerinin riskleri gerçek etkilerine göre önceliklendirmesine olanak tanır, sadece ciddiyet puanlarına göre değil. AI ile güçlendirilmiş olarak, geliştiricilere eyleme geçirilebilir içgörüler ve tam bağlam sağlar, böylece sorunları daha hızlı ve daha güvenli bir şekilde çözebilirler.

Önemli olan, Risk Zekâsı Grafiğinin sadece bir panodan ibaret olmaması, karar verme aracı olmasıdır. Ekiplere, DevOps hızında tespit ve çözüm arasında köprü kurmalarına yardımcı olur, parçalı sistemler arasındaki bağlantıları ortaya çıkarır ve gerçekten önemli olan riskleri ortaya çıkarır.

Cycode, AI tarafından oluşturulan kod ve OpenAI veya Hugging Face gibi hizmetlerle entegrasyonlara bağlı riskleri nasıl tespit eder ve yönetir?

AI tarafından oluşturulan kod, özellikle de dış hizmetlerden geldiğinde, yeni bir karmaşıklık ve risk katmanı tanır. Cycode’da, bu gelişen tehdit manzarasına özel olarak hitap eden yetenekler inşa ettik. En son olarak, AI Exploitability Agent ve MCP Server ile AI geliştirme ve vibe coding iş akışlarını güvence altına aldık.

Platformumuz, bir yazılım ekosisteminin tüm bileşenlerini, AI modellerini, üçüncü taraf AI kitaplıklarını ve OpenAI veya Hugging Face gibi hizmetlerle entegrasyonları içeren bir Uygulama Varlık Envanterini sağlar. Bu, ekiplere AI’nın nerede kullanıldığını, hatta yığın içinde derinlemesine gömülü olsa bile tam görünürlük sağlar.

İkincisi, temel desen eşleştirmesinin ötesinde çalışan özel kod analiz araçları kullanıyoruz. AI tarafından oluşturulan kod kalıplarını ve makine öğrenimi, NLP veya üretken AI ile ilgili olarak yaygın olarak kullanılan kitaplıkları veya çerçeveleri tespit edebiliriz – bunları açıkça etiketlenmemiş olsalar bile.

Üçüncüsü, Cycode, AI’ye özgü güvenlik açıklarını, things gibi adversarial saldırı yüzeyleri, veri zehirlenme riskleri ve model çıkarma tehditleri gibi şeyleri sürekli olarak tarar. Bu, geleneksel AST araçlarının genellikle kaçırdığı ortaya çıkan vektörlerdir. Riskleri ciddiyet ve iş etkisi temelinde önceliklendirir ve AI bağlamına uyarlanmış düzeltme rehberliği sağlar.

Son olarak, AI’nin kullanımını, amacını ve potansiyel etkisini belgeleyerek ve şeffaflık sağlayarak, şirketlerin EU AI Act gibi düzenlemelere uymalarına yardımcı oluyoruz. Bu, hem iç yönetim hem de dış denetim için kritiktir.

Kısacası, Cycode sadece AI ile ilgili riskleri tespit etmez; tam bağlam, hesap verebilirlik ve uyum ile bunları yönetir.

Modern SDLC ortamları boyunca gizli tespitinin en büyük zorlukları nelerdir ve Cycode bunları nasıl çözer?

Gizli tespiti, modern yazılım geliştirmenin en kritik ve göz ardı edilen zorluklarından biridir. Gizli anahtarlar, tokenler ve kimlik bilgilerini kod, CI/CD boru hatları ve yapılandırma dosyalarına hardcode etmek yaygındır. Dağıtılmış ekiplerin, açık kaynak bağımlılıklarının ve hızlı sürüm döngülerinin yükselişiyle birlikte, bu gizli anahtarlar kolayca kamu depolarına sızabilir veya saldırganlar tarafından sömürülebilir.

Zorluk, gizli anahtarların artık sadece kodda bulunmamasıdır. Her yerde bulunurlar; derleme ortamlarında, artifact kayıt defterlerinde ve hatta üçüncü taraf araçlarda. Geleneksel tarayıcılar bunları genellikle kaçırır veya fazla gürültü oluşturur, bu da ekiplerin harekete geçmesini zorlaştırır.

Cycode’da, SDLC’nin tamamını, kod depolarından CI/CD boru hatlarına ve çalışma zamanı ortamlarına kadar tarayarak, gerçek zamanlı olarak maruz kalan gizli anahtarları tespit ediyoruz. Buluntuları bağlamla ilişkilendiriyoruz, böylece ekipler sadece neyin ortaya çıktığını değil, nerede, kimin tarafından ve ne kadar kritik olduğunu da bilir.

Ayrıca, en az ayrıcalık erişimi uyguluyoruz ve gizli anahtarların kötüye kullanılmasını önlemek için boru hattı yapılandırmalarını güvence altına alıyoruz. Sorun izleme sistemleri ve geliştirici iş akışlarıyla entegre olduğumuz için, giderme işlemi hızlı ve sürtünmesizdir.

Nihayetinde, gizli tespiti sadece bir sızıntıyı bulmak değil, tüm yazılım fabrikasını güvence altına almaktır. Cycode’un platformu bunu yapmak üzere tasarlanmıştır.

Güvenlik açıkları veya gizli anahtarlar taraması sırasında doğruluğu nasıl sağlarsınız ve yanlış pozitifleri azaltırsınız?

Yanlış pozitiflerle başa çıkmak geliştiriciler için son derece can sıkıcı olabilir. Ekipler sürekli olarak alakasız uyarılarla bombardıman edildiğinde, onları görmezden gelmeye başladıkları anda, gerçek tehditler kaçabilir. SAST motorumuz aracılığıyla, ekiplere kod zayıflıklarını tanımlamalarına, doğruluğu elde etmelerine ve gerçek pozitiflere odaklanarak zaman kazanmalarına yardımcı oluyoruz. OWASP benchmark testlerinde, Cycode %2,1’lik bir yanlış pozitif oranına ulaştı, bu da alternatif yöntemlere kıyasla %94’ün üzerinde bir azalma anlamına geliyor.

İlk olarak, bağlamsal ilişkilendirme üzerinde odaklanıyoruz. Sadece potansiyel bir sorunu işaretlemek ve devam etmek yerine, bulguyu daha büyük bir resme, yani bir organizasyonun yazılım tedarik zincirine bağlıyoruz. Dolayısıyla, bir committe bir gizli anahtar keşfedilirse, bu bulguyu inşa eden boru hattı, dağıtılan ortam ve bunu ekleyen geliştiriciyle ilişkilendiriyoruz. Bu ek bağlam, gerçekten bir risk olup olmadığını belirlememize yardımcı olur.

İkincisi, temel desen eşleştirmesinin ötesinde çalışan özel tarama algoritmaları kullanıyoruz. Gizli anahtar tespiti motorumuz, desenleri, entropiyi ve dizenin nasıl kullanıldığını analiz eder, böylece gerçek gizli anahtarları benzer görünen varlıklardan, test verisi veya placeholder metin gibi, ayırt edebiliriz.

Üçüncüsü, sorun izleme sistemleri ve geliştirici iş akışlarıyla entegre olarak, her şeyi bağlı tutuyoruz. Bir güvenlik açığı veya gizli anahtar onaylandıktan ve düzeltildikten sonra, bu geri bildirim modellerimizi daha akıllı hale getirmemize yardımcı olur. Kod sahipliğine göre sorunları atayarak, sorunların doğru kişilere yönlendirilmesini sağlıyoruz, böylece gereksiz kopyalama ve sürtüşme azaltılır.

Nihai hedefimiz basittir. Güvenliği, ekiplerin güvenebileceği, daha az yanlış alarm, daha doğru bulgular ve daha hızlı çözümler haline getirmek istiyoruz. Böylece ekipler, gerçekten önemli olan sorunları çözmeye odaklanabilir.

“Geliştirici ilkeli” güvenlik araçlarının değeri nedir ve Cycode iş akışlarını nasıl bozmaz?

Temelde, geliştirici ilkeli güvenlik, korumanın hızlı, ilgili ve sadece gerekli olduğu kadar görünür olmasını sağlar. Bu, geliştirme ilerlerken güvenlik önlemlerinin korunmasını sağlar.

Güvenlik araçları geliştiricileri yavaşlattığında veya onları çok fazla uyarı ile bunalttığında, bu araçlar göz ardı edilebilir. Bu nedenle, Cycode geliştiricileri engellemek yerine yardımcı olmak üzere tasarlandı.

Gerçek değer, güvenliği geliştiricilerin günlük iş akışına getirmektir. Cycode ile güvenlik kontrolleri, geliştiricilerin kod yazıp incelediği anda, örneğin IDE’de veya çekme istekleri sırasında gerçekleşir. Bu, geliştiricilerin tam da ihtiyaç duydukları anda geri bildirim almalarını sağlar, böylece sorunları erken yakalamak ve güvenli kodlama alışkanlıkları oluşturmak kolaylaşır.

Bağlam da önemlidir. Belirsiz uyarılar göndermek yerine, Cycode geliştiricilere precisa ayrıntılar sağlar: güvenlik açığının ne olduğu, nereden geldiği, kimin sorumlu olduğu ve nasıl çözüleceği. Bu tür bilgiler, karışıklığı azaltmaya yardımcı olur ve ekiplerin sorunları daha verimli bir şekilde çözebilmesini sağlar.

Popüler CI/CD araçları ve sorun izleme sistemleri gibi JIRA ile entegre ederek, Cycode güvenlik önlemlerinin yazılım geliştirme sürecinin ayrılmaz bir parçası olmasını sağlar, ayrı veya bağlantısız bir şey değildir. Geliştiriciler görevlerinde kalabilir ve güvenlik ekipleri gerekli gözetimi alabilir.

AI’nin geliştirme iş akışlarına daha fazla entegre edilmesi ile birlikte, hangi tür saldırılar veya güvenlik açıklarının artmasını bekliyorsunuz?

AI, günlük geliştirme işine daha fazla entegre edildiğinde, yeni bir güvenlik açığı seti ile karşılaşacağız. Bunlar sadece teknik zorluklar olmayacak, bazıları da insanların ve ekiplerin bu araçlarla nasıl etkileşimde bulunduğundan kaynaklanacak.

En önemli risklerden biri, geliştiricilerin AI tarafından oluşturulan kodu fazla güvenmesidir. AI süreci hızlandırabilir, ancak mükemmel değildir. Geliştiriciler her AI önerisinin doğru olduğunu varsayarlarsa, bilinmeyen hatalar veya güvenlik açıkları tanıtabilirler. AI kodunun nereden geldiği belirsizleştiğinde, bu sorunlar fark edilmeden geçebilir.

AI modellerini ve API’lerini hedef alan tedarik zinciri saldırıları konusunda da artan bir endişe vardır. Güvenilen hizmetler gibi OpenAI veya Hugging Face tehlikeye girerse veya jemand bir kötü niyetli modeli bir iş akışına sokarsa, saldırganlar çıktıları değiştirebilir veya hassas bilgileri çalabilir.

Diğer bir ortaya çıkan tehdit, veri zehirlenmesidir. Bu senaryoda, saldırganlar, daha sonra AI modelinin nasıl davranacağını etkileyebilecek, eğitim verilerine stratejik ve ince değişiklikler yaparlar. Bu tür bir saldırı, güvenlik kritik olan alanlarda, örneğin dolandırıcılık tespiti veya erişim kontrolü gibi, özellikle tehlikelidir.

Şirketler, açıklanabilirlik ve uyum konusunda artan bir baskıyla da karşı karşıya kalacaktır. Yeni düzenlemeler, örneğin EU AI Act, organizasyonların AI sistemlerinin nasıl kararlar aldığını ve bu kararların temelini açıklamalarını gerektirecektir. Bu, modeller karışık veya üçüncü taraf araçlar şeffaflıkten yoksun olduğunda çok zor olabilir.

Cycode’da, AI’ye özgü riskleri, örneğin adversarial güvenlik açıkları, model kötüye kullanımı ve güvensiz entegrasyonları tespit etmeye yardımcı olacak araçlar geliştiriyoruz. Ayrıca, geliştiricilerin, insan tarafından yazılmış olsun veya otomatik olarak üretilsin, teslim ettikleri kodu sorumlu olmalarını istiyoruz.

Beş yıl sonrasına bakıldığında, yazılım tedarik zincirlerini güvence altına almada AI’nin rolünün nasıl evrileceğini öngörüyorsunuz?

AI, uygulama güvenliğini already nasıl yaklaştığımız üzerinde zaten bir dönüşüm yaratıyor, ancak yazılım tedarik zincirindeki tam etkisi sadece başlangıçta. Beş yıl içinde, AI’nin, risklerin tanımlanması, önceliklendirilmesi ve tüm geliştirme sürecinde ele alınmasında entegre bir parçası olacağını düşünüyorum.

İlk olarak, AI, güvenlik ve geliştirme ekiplerini daha yakınlaştıracaktır. Şu anda, güvenlik araçları iş akışlarını bozabilir veya gerekli bağlamı缺abilir. AI, güvenlik bulgularını eyleme geçirilebilir içgörülere dönüştürerek, düzeltme önerileri sunarak ve her ekibin iş akışına uyarlanmış güvenli kod çözümleri oluşturarak bu kenarları yumuşatabilir.

AI ayrıca, neler olup bittiğini anlama konusunda gerçek zamanlı olarak kritik olacaktır. Derleme ortamlarını, konteynırları ve API’leri izleyerek, geleneksel tarama tekniği ile tespit edilmesi zorlaşan sofistike tedarik zinciri saldırılarını tespit edecektir.

Ayrıca, AI, şirketlerin artan düzenleyici ortamı gezinmesine yardımcı olacaktır. AI’nin nasıl kullanılacağına ilişkin hükümetler tarafından daha fazla kural getirildikçe, şirketlerin AI kararlarının arkasındaki mantığı açıklamak, AI bileşenlerini izlemek ve hesap verebilirlik sağlamak için araçlara ihtiyaçları olacaktır. AI, belgeleme oluşturmak, bağımlılıkları haritalamak ve politika uygulamaya yardımcı olacaktır.

Ancak, tüm bu ilerlemelerle birlikte, insan denetimi kritik olacaktır. AI, insanları değiştirmek için burada değildir, ancak onları güçlendirmek için. Geliştiriciler ve güvenlik ekipleri, özellikle AI tarafından oluşturulan kod yeni riskler tanıtabildiğinde, her zaman sorumluluk alacaklardır. Bu, neden araçların AI’yi mümkün olduğunca şeffaf, anlaşılır ve hesap verebilir hale getirmeye çalıştığımızın nedenidir.

Sonuçta, AI, yazılım tedarik zincirlerini daha güvenli hale getirecek, ancak bunu dikkatli ve insanları dahil ederek yapmamız gerekiyor.

Harika bir röportaj için teşekkür ederiz, daha fazla bilgi edinmek isteyen okuyucular Cycode‘u ziyaret edebilir.

Antoine bir vizyoner lider ve Unite.AI'in kurucu ortağıdır ve AI ve robotik geleceğini şekillendirmek ve tanıtmak için sarsılmaz bir tutkuyla hareket etmektedir. Bir seri girişimci olarak, toplum için elektrik kadar yıkıcı olacağına inandığı AI'nin potansiyeli hakkında sık sık konuşur ve coşkusunu dile getirir.
Bir futurist olarak, bu yeniliklerin dünyamızı nasıl şekillendireceğini keşfetmeye adanmıştır. Ayrıca, Securities.io kurucusudur, bu platform geleceği yeniden tanımlayan ve tüm sektörleri yeniden şekillendiren teknolojilere yatırım yapmaya odaklanmıştır.