{"id":35957,"date":"2025-12-06T04:01:08","date_gmt":"2025-12-06T01:01:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/"},"modified":"2025-12-06T04:01:08","modified_gmt":"2025-12-06T01:01:08","slug":"infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/","title":{"rendered":"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131"},"content":{"rendered":"<p><body><\/p>\n<p>Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC&#8217;nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn \u00e7evik geli\u015ftirme d\u00f6ng\u00fclerinde ve h\u0131zla b\u00fcy\u00fcyen bulut ortamlar\u0131nda, altyap\u0131 y\u00f6netimi manuel s\u00fcre\u00e7lerle s\u00fcrd\u00fcr\u00fclemez hale gelmi\u015ftir. Infrastructure as Code (IaC), bu soruna bir \u00e7\u00f6z\u00fcm sunarak sunucular, a\u011flar, veritabanlar\u0131 ve di\u011fer t\u00fcm altyap\u0131 bile\u015fenlerinin konfig\u00fcrasyonunu kod olarak tan\u0131mlamam\u0131z\u0131 ve y\u00f6netmemizi sa\u011flar. Terraform, AWS CloudFormation, Azure Resource Manager (ARM) \u015fablonlar\u0131 ve Kubernetes manifestleri gibi ara\u00e7lar, IaC&#8217;nin en pop\u00fcler temsilcileridir. Bu yakla\u015f\u0131m, insan hatas\u0131n\u0131 azalt\u0131r, da\u011f\u0131t\u0131m s\u00fcrelerini k\u0131salt\u0131r, s\u00fcrd\u00fcr\u00fclebilirli\u011fi art\u0131r\u0131r ve altyap\u0131 \u00fczerindeki de\u011fi\u015fikliklerin versiyon kontrol\u00fc alt\u0131nda izlenmesine olanak tan\u0131r.<\/p>\n<p>IaC&#8217;nin sundu\u011fu bu m\u00fcthi\u015f avantajlar, ne yaz\u0131k ki kendi i\u00e7inde \u00f6nemli g\u00fcvenlik risklerini de bar\u0131nd\u0131r\u0131r. Geli\u015ftiricilerin veya DevOps m\u00fchendislerinin fark\u0131nda olmadan yazd\u0131\u011f\u0131 tek bir hatal\u0131 konfig\u00fcrasyon sat\u0131r\u0131, t\u00fcm bulut ortam\u0131n\u0131 siber sald\u0131r\u0131lara a\u00e7\u0131k hale getirebilir. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir depolama kovas\u0131 (\u00f6rne\u011fin, herkese a\u00e7\u0131k bir S3 kovas\u0131), zay\u0131f parola politikalar\u0131na sahip bir veritaban\u0131 veya gereksiz yere geni\u015fletilmi\u015f bir a\u011f g\u00fcvenlik grubu kural\u0131, veri s\u0131z\u0131nt\u0131lar\u0131na, yetkisiz eri\u015fime ve ciddi finansal kay\u0131plara yol a\u00e7abilir. Geleneksel g\u00fcvenlik testleri genellikle da\u011f\u0131t\u0131m sonras\u0131 a\u015famalarda devreye girerken, IaC ile yarat\u0131lan zafiyetler genellikle \u00fcretim ortam\u0131na ula\u015fana kadar fark edilmeyebilir. \u00dcretim ortam\u0131nda bir zafiyeti gidermek, geli\u015ftirme a\u015famas\u0131nda tespit edilen zafiyetleri gidermekten kat kat daha maliyetli ve zaman al\u0131c\u0131d\u0131r.<\/p>\n<p>\u0130\u015fte tam bu noktada Statik Uygulama G\u00fcvenlik Testi (SAST) devreye girer. SAST ara\u00e7lar\u0131, yaz\u0131l\u0131m\u0131n veya kodun \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131na gerek kalmadan, do\u011frudan kaynak kodunu analiz ederek g\u00fcvenlik zafiyetlerini tespit etmeye odaklan\u0131r. IaC ba\u011flam\u0131nda SAST, Terraform dosyalar\u0131, CloudFormation \u015fablonlar\u0131 veya Kubernetes manifestleri gibi altyap\u0131 tan\u0131mlama dosyalar\u0131n\u0131 statik olarak inceleyerek, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131, hatal\u0131 konfig\u00fcrasyonlar\u0131 ve en iyi uygulama ihlallerini belirler. Bu, zafiyetleri kod hen\u00fcz da\u011f\u0131t\u0131lmadan, yani geli\u015ftirme a\u015famas\u0131nda, m\u00fcmk\u00fcn olan en erken safhada yakalama olana\u011f\u0131 sunar. Erken a\u015famada yakalanan bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131, daha h\u0131zl\u0131, daha ucuz ve daha az riskli bir \u015fekilde d\u00fczeltilebilir. Bu proaktif yakla\u015f\u0131m, &#8220;g\u00fcvenli\u011fi sola kayd\u0131rma&#8221; (Shift Left Security) prensibinin temelini olu\u015fturur ve DevOps s\u00fcre\u00e7lerine entegre edildi\u011finde, g\u00fcvenli\u011fi geli\u015ftirme h\u0131z\u0131n\u0131 yava\u015flatmadan \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Bu nedenle, IaC kullanan her kurulu\u015f i\u00e7in, SAST ara\u00e7lar\u0131yla altyap\u0131 kodunu s\u00fcrekli olarak denetlemek, sadece bir \u00f6neri de\u011fil, bir zorunluluk haline gelmi\u015ftir.<\/p>\n<h3>Checkov Nedir ve IaC G\u00fcvenli\u011finde Neden Vazge\u00e7ilmezdir?<\/h3>\n<p>Checkov, Infrastructure as Code (IaC) dosyalar\u0131n\u0131zdaki g\u00fcvenlik ve uyumluluk a\u00e7\u0131klar\u0131n\u0131 tespit etmek i\u00e7in geli\u015ftirilmi\u015f a\u00e7\u0131k kaynakl\u0131 bir Statik Uygulama G\u00fcvenlik Testi (SAST) arac\u0131d\u0131r. Bridgecrew (\u015fimdilerde Palo Alto Networks b\u00fcnyesinde) taraf\u0131ndan geli\u015ftirilen Checkov, geni\u015f bir yelpazede IaC \u00e7er\u00e7evelerini destekleyerek, geli\u015ftiricilerin ve g\u00fcvenlik ekiplerinin altyap\u0131 konfig\u00fcrasyonlar\u0131n\u0131 otomatik olarak denetlemesine olanak tan\u0131r. Amac\u0131, yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f kaynaklar\u0131, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 ve en iyi uygulama ihlallerini, bu kodlar bulut ortam\u0131na da\u011f\u0131t\u0131lmadan \u00f6nce belirlemektir.<\/p>\n<p>Peki, Checkov&#8217;u IaC g\u00fcvenli\u011finde neden vazge\u00e7ilmez k\u0131lan \u00f6zellikler nelerdir? \u00d6ncelikle, <strong>geni\u015f kapsama alan\u0131<\/strong> sunar. Terraform (HCL), AWS CloudFormation (YAML\/JSON), Azure Resource Manager (ARM) \u015fablonlar\u0131, Google Deployment Manager, Kubernetes manifestleri, Serverless Framework, Helm Chart&#8217;lar ve hatta Dockerfile&#8217;lar dahil olmak \u00fczere \u00e7ok say\u0131da IaC t\u00fcr\u00fcn\u00fc analiz edebilir. Bu, farkl\u0131 bulut sa\u011flay\u0131c\u0131lar\u0131 ve konteyner orkestrasyon ara\u00e7lar\u0131 kullanan karma\u015f\u0131k ortamlarda tek bir g\u00fcvenlik denetim arac\u0131 kullanabilece\u011finiz anlam\u0131na gelir. Bu esneklik, farkl\u0131 IaC ara\u00e7lar\u0131 kullanan ekipler i\u00e7in b\u00fcy\u00fck bir kolayl\u0131k sa\u011flar ve g\u00fcvenlik denetimi s\u00fcre\u00e7lerini standardize etmeye yard\u0131mc\u0131 olur.<\/p>\n<p>\u0130kinci olarak, <strong>binlerce yerle\u015fik g\u00fcvenlik politikas\u0131<\/strong> ile gelir. Checkov, y\u00fczlerce \u00f6nceden tan\u0131mlanm\u0131\u015f politika setiyle donat\u0131lm\u0131\u015ft\u0131r. Bu politikalar, AWS, Azure, GCP gibi bulut sa\u011flay\u0131c\u0131lar\u0131n\u0131n g\u00fcvenlik en iyi uygulamalar\u0131n\u0131, CIS (Center for Internet Security) Benchmark&#8217;lar\u0131n\u0131 ve genel g\u00fcvenlik ilkelerini temel al\u0131r. \u00d6rne\u011fin, herkese a\u00e7\u0131k S3 kovalar\u0131n\u0131, \u015fifresiz veritabanlar\u0131n\u0131, g\u00fcvenlik grubu kurallar\u0131nda geni\u015f IP aral\u0131klar\u0131n\u0131 (0.0.0.0\/0) veya zay\u0131f IAM politikalar\u0131n\u0131 tespit edebilir. Bu sayede, g\u00fcvenlik uzman\u0131 olmasan\u0131z bile, kodunuzun end\u00fcstri standartlar\u0131na uygunlu\u011funu kolayca kontrol edebilirsiniz. Yeni tehditler ve bulut hizmetleri ortaya \u00e7\u0131kt\u0131k\u00e7a, Checkov&#8217;un topluluk ve Bridgecrew ekibi taraf\u0131ndan s\u00fcrekli g\u00fcncellenen politika k\u00fct\u00fcphanesi, arac\u0131n etkinli\u011fini s\u00fcrekli olarak y\u00fcksek tutar.<\/p>\n<p>\u00dc\u00e7\u00fcnc\u00fc olarak, <strong>\u00f6zelle\u015ftirilebilir kurallar<\/strong> yazma yetene\u011fi sunar. Kurulu\u015flar\u0131n kendi \u00f6zel g\u00fcvenlik ve uyumluluk gereksinimleri olabilir. Checkov, kullan\u0131c\u0131lar\u0131n Python veya YAML format\u0131nda kendi \u00f6zel g\u00fcvenlik politikalar\u0131n\u0131 tan\u0131mlamalar\u0131na olanak tan\u0131r. Bu, belirli i\u015f gereksinimlerine veya i\u00e7 g\u00fcvenlik standartlar\u0131na uygun kontroller eklemek isteyen ekipler i\u00e7in son derece g\u00fc\u00e7l\u00fc bir \u00f6zelliktir. Kendi \u00f6zel kurallar\u0131n\u0131z\u0131 yazarak, standart Checkov politikalar\u0131n\u0131n kapsamad\u0131\u011f\u0131 ni\u015f senaryolar\u0131 denetleyebilir ve g\u00fcvenlik duru\u015funuzu daha da g\u00fc\u00e7lendirebilirsiniz. Bu sayede, g\u00fcvenlik politikalar\u0131n\u0131z kod taban\u0131n\u0131zla birlikte evrilir ve g\u00fcncel kal\u0131r.<\/p>\n<p>Son olarak, <strong>CI\/CD entegrasyonuna uygunluk<\/strong>. Checkov, komut sat\u0131r\u0131 aray\u00fcz\u00fc (CLI) arac\u0131l\u0131\u011f\u0131yla kolayca \u00e7al\u0131\u015ft\u0131r\u0131labilir ve bu da onu s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) i\u015flem hatlar\u0131na entegre etmek i\u00e7in ideal hale getirir. Geli\u015ftiriciler kodlar\u0131n\u0131 bir depoya (\u00f6rne\u011fin, Git) itti\u011finde, Checkov otomatik olarak \u00e7al\u0131\u015ft\u0131r\u0131labilir ve herhangi bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 tespit edilirse derleme s\u00fcrecini durdurabilir. Bu, &#8220;g\u00fcvenli\u011fi sola kayd\u0131rma&#8221; ilkesini ger\u00e7ek anlamda uygulamak i\u00e7in kritik bir ad\u0131md\u0131r, \u00e7\u00fcnk\u00fc zafiyetler da\u011f\u0131t\u0131m ba\u015flamadan \u00e7ok \u00f6nce, geli\u015ftirme a\u015famas\u0131nda yakalan\u0131r. Bu erken geri bildirim d\u00f6ng\u00fcs\u00fc, geli\u015ftiricilerin g\u00fcvenlik sorunlar\u0131n\u0131 h\u0131zla d\u00fczeltmelerine ve \u00fcretim ortam\u0131na g\u00fcvenli kodun ula\u015fmas\u0131n\u0131 sa\u011flamalar\u0131na yard\u0131mc\u0131 olur. Bu nedenlerle Checkov, IaC tabanl\u0131 altyap\u0131lar\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in modern DevOps ve g\u00fcvenlik ekiplerinin ara\u00e7 kutusunda mutlaka bulunmas\u0131 gereken bir ara\u00e7t\u0131r.<\/p>\n<h2>Checkov&#8217;u Projelerinize Nas\u0131l Entegre Edebilirsiniz?<\/h2>\n<p>Checkov&#8217;u projenize entegre etmek olduk\u00e7a basit bir s\u00fcre\u00e7tir ve birka\u00e7 ad\u0131mdan olu\u015fur. \u0130lk olarak, Checkov&#8217;un sisteminize kurulmas\u0131 gerekir. Python tabanl\u0131 bir ara\u00e7 oldu\u011fu i\u00e7in, Python&#8217;\u0131n kurulu oldu\u011fu herhangi bir ortamda kolayca \u00e7al\u0131\u015ft\u0131r\u0131labilir. Kurulum genellikle pip paketi y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r ve birka\u00e7 dakika i\u00e7inde tamamlan\u0131r. Kurulumdan sonra, basit bir komutla IaC dosyalar\u0131n\u0131z\u0131 tarayabilir ve potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tespit edebilirsiniz. Bu b\u00f6l\u00fcm, Checkov&#8217;un kurulumundan temel kullan\u0131m\u0131na kadar ad\u0131m ad\u0131m rehberlik edecektir.<\/p>\n<p><strong>Ad\u0131m 1: Checkov Kurulumu<\/strong><\/p>\n<p>Checkov&#8217;u kurman\u0131n en yayg\u0131n yolu Python&#8217;\u0131n paket y\u00f6neticisi <code>pip<\/code> kullanmakt\u0131r. Sisteminizde Python 3 ve pip kurulu oldu\u011fundan emin olun. Daha sonra a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak Checkov&#8217;u kurabilirsiniz:<\/p>\n<pre><code>\npip install checkov\n<\/pre>\n<p><\/code><\/p>\n<p>E\u011fer bir konteyner ortam\u0131nda \u00e7al\u0131\u015f\u0131yorsan\u0131z veya sisteminizi temiz tutmak istiyorsan\u0131z, Checkov'u Docker konteyneri olarak da \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler ve farkl\u0131 ortamlarda tutarl\u0131 bir \u00e7al\u0131\u015fma sa\u011flar:<\/p>\n<pre><code>\ndocker pull bridgecrew\/checkov\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, Checkov'un son s\u00fcr\u00fcm\u00fcn\u00fc Docker Hub'dan \u00e7ekecektir. Daha sonraki tarama i\u015flemleri i\u00e7in bu imaj\u0131 kullanabiliriz.<\/p>\n<p><strong>Ad\u0131m 2: Temel Checkov Kullan\u0131m\u0131 - \u0130lk Tarama<\/strong><\/p>\n<p>Kurulum tamamland\u0131ktan sonra, Checkov'u test etmek i\u00e7in basit bir Terraform dosyas\u0131 olu\u015ftural\u0131m. Bu dosya, kas\u0131tl\u0131 olarak bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 i\u00e7erecek ve Checkov'un nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterecektir. A\u015fa\u011f\u0131daki Terraform kodunu <code>insecure_s3.tf<\/code> ad\u0131yla kaydedin:<\/p>\n<pre><code>\nresource \"aws_s3_bucket\" \"insecure_bucket\" {\n  bucket = \"my-super-insecure-bucket-12345\"\n  acl    = \"public-read\" # Herkese a\u00e7\u0131k okuma eri\u015fimi\n  force_destroy = true\n}\n\nresource \"aws_instance\" \"web\" {\n  ami           = \"ami-0abcdef1234567890\" # \u00d6rnek AMI\n  instance_type = \"t2.micro\"\n\n  tags = {\n    Name = \"HelloWorld\"\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kodda, <code>aws_s3_bucket<\/code> kayna\u011f\u0131nda <code>acl = \"public-read\"<\/code> ayar\u0131, S3 kovas\u0131n\u0131n herkese a\u00e7\u0131k olmas\u0131n\u0131 sa\u011flar ve bu ciddi bir g\u00fcvenlik zafiyetidir. \u015eimdi, bu dosyay\u0131 Checkov ile tarayal\u0131m. Komut sat\u0131r\u0131n\u0131zda, <code>insecure_s3.tf<\/code> dosyas\u0131n\u0131n bulundu\u011fu dizinde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\ncheckov -f insecure_s3.tf\n<\/pre>\n<p><\/code><\/p>\n<p>E\u011fer Docker kullan\u0131yorsan\u0131z, komut \u015fu \u015fekilde olacakt\u0131r:<\/p>\n<pre><code>\ndocker run --rm -v $(pwd):\/tf bridgecrew\/checkov -f \/tf\/insecure_s3.tf\n<\/pre>\n<p><\/code><\/p>\n<p>Checkov, taramay\u0131 tamamlad\u0131ktan sonra bir rapor d\u00f6nd\u00fcrecektir. Bu raporda, tespit edilen g\u00fcvenlik a\u00e7\u0131klar\u0131, ilgili politikalar ve dosya i\u00e7indeki konumlar\u0131 yer alacakt\u0131r. Beklenen \u00e7\u0131kt\u0131, S3 kovas\u0131ndaki herkese a\u00e7\u0131k eri\u015fimle ilgili bir uyar\u0131 i\u00e7erecektir. \u00d6rne\u011fin, a\u015fa\u011f\u0131daki gibi bir \u00e7\u0131kt\u0131 g\u00f6rebilirsiniz:<\/p>\n<pre><code>\n...\nPassed checks: 0, Failed checks: 1, Skipped checks: 0\nCheck: CKV_AWS_18: Ensure S3 bucket has specific ACL access (unless it's a static website)\n        FAILED for resource: aws_s3_bucket.insecure_bucket\n        File: \/insecure_s3.tf:2-6\n        Guideline: https:\/\/docs.bridgecrew.io\/docs\/s3_18\n...\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00e7\u0131kt\u0131, <code>CKV_AWS_18<\/code> kodlu politikan\u0131n ihlal edildi\u011fini ve bunun <code>insecure_s3.tf<\/code> dosyas\u0131n\u0131n 2-6. sat\u0131rlar\u0131 aras\u0131nda yer alan <code>aws_s3_bucket.insecure_bucket<\/code> kayna\u011f\u0131yla ilgili oldu\u011funu a\u00e7\u0131k\u00e7a g\u00f6steriyor. Ayr\u0131ca, bu zafiyetin nas\u0131l d\u00fczeltilece\u011fine dair bir rehbere y\u00f6nlendiren bir ba\u011flant\u0131 da sa\u011fl\u0131yor. Bu basit \u00f6rnek, Checkov'un temel yeteneklerini ve geli\u015ftirme s\u00fcrecinizin erken a\u015famalar\u0131nda g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l yakalayabilece\u011finizi g\u00f6stermektedir. Bu sayede, potansiyel g\u00fcvenlik riskleri, \u00fcretim ortam\u0131na ula\u015fmadan \u00f6nce kolayca tespit edilip giderilebilir.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryosu: G\u00fcvenli Olmayan Bir S3 Kovas\u0131 Nas\u0131l Tespit Edilir ve Giderilir?<\/h3>\n<p>Ger\u00e7ek d\u00fcnya senaryolar\u0131nda, bulut altyap\u0131lar\u0131nda en s\u0131k kar\u015f\u0131la\u015f\u0131lan ve en tehlikeli g\u00fcvenlik zafiyetlerinden biri, yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f Amazon S3 kovalar\u0131d\u0131r. Hassas verilerin depoland\u0131\u011f\u0131 S3 kovalar\u0131na yanl\u0131\u015fl\u0131kla herkese a\u00e7\u0131k eri\u015fim verilmesi, say\u0131s\u0131z veri s\u0131z\u0131nt\u0131s\u0131n\u0131n temel nedeni olmu\u015ftur. Bu vaka analizi, b\u00f6yle bir senaryoyu ele alarak Checkov'un bu t\u00fcr zafiyetleri nas\u0131l tespit etti\u011fini ve giderilmesi i\u00e7in nas\u0131l yol g\u00f6sterdi\u011fini detayland\u0131racakt\u0131r.<\/p>\n<p><strong>Vaka: M\u00fc\u015fteri Verilerini \u0130\u00e7eren Yanl\u0131\u015f Yap\u0131land\u0131r\u0131lm\u0131\u015f Bir S3 Kovas\u0131<\/strong><\/p>\n<p>Bir e-ticaret \u015firketi, m\u00fc\u015fteri sipari\u015f ge\u00e7mi\u015fi ve adres bilgileri gibi hassas verileri depolamak i\u00e7in bir Amazon S3 kovas\u0131 kullanmaktad\u0131r. DevOps ekibi, h\u0131zla yeni bir \u00f6zellik geli\u015ftirirken, S3 kovas\u0131n\u0131n konfig\u00fcrasyonunu otomatikle\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki Terraform kodunu kullan\u0131r:<\/p>\n<pre><code>\n# vulnerable_s3.tf\nresource \"aws_s3_bucket\" \"customer_data_bucket\" {\n  bucket = \"ecommerce-customer-data-prod\"\n  acl    = \"public-read-write\" # Bu sat\u0131r tehlikeli!\n  versioning {\n    enabled = true\n  }\n\n  tags = {\n    Environment = \"Production\"\n    Purpose     = \"CustomerData\"\n  }\n}\n\nresource \"aws_s3_bucket_public_access_block\" \"block_public_access\" {\n  bucket = aws_s3_bucket.customer_data_bucket.id\n  block_public_acls       = false # Yanl\u0131\u015fl\u0131kla devre d\u0131\u015f\u0131 b\u0131rak\u0131lm\u0131\u015f\n  ignore_public_acls      = false\n  restrict_public_buckets = false\n  block_public_policy     = false\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kod blo\u011funda iki kritik g\u00fcvenlik zafiyeti bulunmaktad\u0131r:<\/p>\n<ol>\n<li><code>acl = \"public-read-write\"<\/code>: Bu ayar, kovaya herkesin okuma ve yazma eri\u015fimine sahip olmas\u0131n\u0131 sa\u011flar. Bu, hassas m\u00fc\u015fteri verilerinin kolayca \u00e7al\u0131nabilece\u011fi veya de\u011fi\u015ftirilebilece\u011fi anlam\u0131na gelir.<\/li>\n<li><code>aws_s3_bucket_public_access_block<\/code> kayna\u011f\u0131ndaki t\u00fcm <code>block_public_access<\/code> ayarlar\u0131 <code>false<\/code> olarak ayarlanm\u0131\u015ft\u0131r. Bu, S3'\u00fcn genel eri\u015fim engelleme mekanizmalar\u0131n\u0131n etkisiz hale getirildi\u011fi anlam\u0131na gelir, mevcut bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131 daha da k\u00f6t\u00fcle\u015ftirir.<\/li>\n<\/ol>\n<p>Geli\u015ftirici, belki de bir test s\u0131ras\u0131nda veya yanl\u0131\u015f bir y\u00f6nlendirme sonucu bu ayar\u0131 yapm\u0131\u015ft\u0131r ve bu de\u011fi\u015fikli\u011fi fark etmeden Git deposuna g\u00f6ndermi\u015ftir.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Herkese a\u00e7\u0131k S3 kovalar\u0131, d\u00fcnya genelinde en yayg\u0131n bulut zafiyetlerinden biridir. Da\u011f\u0131t\u0131m yapmadan \u00f6nce S3 ACL ve Public Access Block ayarlar\u0131n\u0131 her zaman kontrol edin!\n<\/div>\n<p><strong>Checkov ile Zafiyet Tespiti<\/strong><\/p>\n<p>Bu kodu i\u00e7eren bir \u00e7ekme iste\u011fi (pull request) a\u00e7\u0131ld\u0131\u011f\u0131nda veya CI\/CD i\u015flem hatt\u0131 tetiklendi\u011finde, Checkov otomatik olarak \u00e7al\u0131\u015f\u0131r. Checkov'u \u00e7al\u0131\u015ft\u0131rmak i\u00e7in komut:<\/p>\n<pre><code>\ncheckov -f vulnerable_s3.tf\n<\/pre>\n<p><\/code><\/p>\n<p>Checkov \u00e7\u0131kt\u0131s\u0131, yukar\u0131daki senaryoda a\u015fa\u011f\u0131daki gibi kritik g\u00fcvenlik uyar\u0131lar\u0131n\u0131 i\u00e7erecektir:<\/p>\n<pre><code>\n...\nCheck: CKV_AWS_18: Ensure S3 bucket has specific ACL access (unless it's a static website)\n        FAILED for resource: aws_s3_bucket.customer_data_bucket\n        File: \/vulnerable_s3.tf:3-8\n        Guideline: https:\/\/docs.bridgecrew.io\/docs\/s3_18\n\nCheck: CKV_AWS_5: Ensure S3 bucket has block public ACLs enabled\n        FAILED for resource: aws_s3_bucket_public_access_block.block_public_access\n        File: \/vulnerable_s3.tf:12-18\n        Guideline: https:\/\/docs.bridgecrew.io\/docs\/s3_5\n\nCheck: CKV_AWS_6: Ensure S3 bucket has ignore public ACLs enabled\n        FAILED for resource: aws_s3_bucket_public_access_block.block_public_access\n        File: \/vulnerable_s3.tf:12-18\n        Guideline: https:\/\/docs.bridgecrew.io\/docs\/s3_6\n\nCheck: CKV_AWS_7: Ensure S3 bucket has block public bucket policies enabled\n        FAILED for resource: aws_s3_bucket_public_access_block.block_public_access\n        File: \/vulnerable_s3.tf:12-18\n        Guideline: https:\/\/docs.bridgecrew.io\/docs\/s3_7\n\nCheck: CKV_AWS_8: Ensure S3 bucket has restrict public buckets enabled\n        FAILED for resource: aws_s3_bucket_public_access_block.block_public_access\n        File: \/vulnerable_s3.tf:12-18\n        Guideline: https:\/\/docs.bridgecrew.io\/docs\/s3_8\n...\nSummary:\nPassed checks: X, Failed checks: 5, Skipped checks: Y\n<\/pre>\n<p><\/code><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, Checkov sadece <code>public-read-write<\/code> ACL ayar\u0131n\u0131 (<code>CKV_AWS_18<\/code>) de\u011fil, ayn\u0131 zamanda <code>aws_s3_bucket_public_access_block<\/code> kayna\u011f\u0131ndaki t\u00fcm public access block ayarlar\u0131n\u0131n devre d\u0131\u015f\u0131 b\u0131rak\u0131ld\u0131\u011f\u0131n\u0131 da tespit etmi\u015ftir. Bu detayl\u0131 raporlama, geli\u015ftiriciye tam olarak nerede ve neden bir sorun oldu\u011funu g\u00f6sterir.<\/p>\n<p><strong>Zafiyetin Giderilmesi<\/strong><\/p>\n<p>Checkov raporu sayesinde, geli\u015ftirici veya g\u00fcvenlik ekibi, kodun \u00fcretim ortam\u0131na ula\u015fmadan \u00f6nce bu kritik zafiyetleri d\u00fczeltebilir. D\u00fczeltme ad\u0131mlar\u0131 a\u015fa\u011f\u0131daki gibi olacakt\u0131r:<\/p>\n<ol>\n<li>S3 kovas\u0131n\u0131n ACL'sini \u00f6zel (private) olarak ayarlamak veya hi\u00e7 ayarlamayarak varsay\u0131lan\u0131 kullanmak. Genellikle, kova eri\u015fimini IAM politikalar\u0131 ile y\u00f6netmek daha g\u00fcvenlidir.<\/li>\n<li><code>aws_s3_bucket_public_access_block<\/code> kayna\u011f\u0131ndaki t\u00fcm ayarlar\u0131 <code>true<\/code> olarak belirterek genel eri\u015fimi tamamen engellemek.<\/li>\n<\/ol>\n<p>D\u00fczeltilmi\u015f Terraform kodu \u015fu \u015fekilde g\u00f6r\u00fcnmelidir:<\/p>\n<pre><code>\n# fixed_s3.tf\nresource \"aws_s3_bucket\" \"customer_data_bucket\" {\n  bucket = \"ecommerce-customer-data-prod\"\n  # acl = \"private\" # Varsay\u0131lan olarak \"private\"d\u0131r, belirtmeye gerek yok.\n  # Ya da:\n  # acl = \"log-delivery-write\" # \u00d6zel kullan\u0131m senaryolar\u0131 i\u00e7in\n  versioning {\n    enabled = true\n  }\n\n  tags = {\n    Environment = \"Production\"\n    Purpose     = \"CustomerData\"\n  }\n}\n\nresource \"aws_s3_bucket_public_access_block\" \"block_public_access\" {\n  bucket = aws_s3_bucket.customer_data_bucket.id\n  block_public_acls       = true # Genel ACL'leri engelle\n  ignore_public_acls      = true # Genel ACL'leri yok say\n  restrict_public_buckets = true # Genel kova politikalar\u0131n\u0131 k\u0131s\u0131tla\n  block_public_policy     = true # Genel kova politikalar\u0131n\u0131 engelle\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu d\u00fczeltilmi\u015f kodu Checkov ile tekrar tarad\u0131\u011f\u0131m\u0131zda, S3 ile ilgili t\u00fcm g\u00fcvenlik denetimlerinin art\u0131k \"Passed\" olarak g\u00f6r\u00fcnmesi beklenir. Bu senaryo, Checkov'un geli\u015ftirme s\u00fcrecine entegre edildi\u011finde ne kadar de\u011ferli oldu\u011funu ve potansiyel veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 ve g\u00fcvenlik ihlallerini \u00f6nlemede nas\u0131l kritik bir rol oynad\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a g\u00f6stermektedir. G\u00fcvenlik sorunlar\u0131n\u0131 kodun ilk yaz\u0131ld\u0131\u011f\u0131 a\u015famada yakalamak, \u00e7ok daha az maliyetli ve \u00e7ok daha etkilidir.<\/p>\n<h2>\u00d6zelle\u015ftirilmi\u015f Kurallar ve CI\/CD Entegrasyonu: G\u00fcvenlik Politikalar\u0131n\u0131z\u0131 Checkov ile Nas\u0131l Otomatikle\u015ftirebilirsiniz?<\/h2>\n<p>Checkov'un yerle\u015fik politikalar\u0131 geni\u015f bir kapsama alan\u0131 sunsa da, her kurulu\u015fun kendine \u00f6zg\u00fc g\u00fcvenlik gereksinimleri, i\u00e7 standartlar\u0131 veya \u00f6zel bulut konfig\u00fcrasyonlar\u0131 olabilir. Bu gibi durumlarda, Checkov'un esnekli\u011fi devreye girer: kendi \u00f6zelle\u015ftirilmi\u015f kurallar\u0131n\u0131z\u0131 tan\u0131mlayabilir ve bu kurallar\u0131 CI\/CD (S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m) i\u015flem hatlar\u0131n\u0131za entegre ederek g\u00fcvenlik denetimlerinizi tamamen otomatikle\u015ftirebilirsiniz. Bu yakla\u015f\u0131m, \"g\u00fcvenli\u011fi sola kayd\u0131rma\" ilkesini en \u00fcst d\u00fczeye \u00e7\u0131kar\u0131r ve kodun her de\u011fi\u015fikli\u011finde g\u00fcvenlik politikalar\u0131n\u0131z\u0131n otomatik olarak uyguland\u0131\u011f\u0131ndan emin olur.<\/p>\n<h3>\u00d6zelle\u015ftirilmi\u015f Kurallar Olu\u015fturma: Kurulu\u015funuzun \u0130htiya\u00e7lar\u0131na \u00d6zel Denetimler<\/h3>\n<p>Checkov, kullan\u0131c\u0131lar\u0131n Python veya YAML format\u0131nda kendi \u00f6zel politikalar\u0131n\u0131 yazmalar\u0131na olanak tan\u0131r. Bu, \u00f6rne\u011fin, belirli bir etiketlemenin zorunlu k\u0131l\u0131nmas\u0131, belirli bir AMI kimli\u011finin kullan\u0131m\u0131n\u0131n yasaklanmas\u0131 veya belirli bir a\u011f segmentinden eri\u015fimin k\u0131s\u0131tlanmas\u0131 gibi spesifik i\u015f gereksinimlerini kar\u015f\u0131lamak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p><strong>Python ile \u00d6zel Kural \u00d6rne\u011fi (Terraform i\u00e7in):<\/strong><\/p>\n<p>Diyelim ki, kurulu\u015funuz t\u00fcm EC2 \u00f6rneklerinin belirli bir etiketle (\u00f6rne\u011fin, <code>CostCenter<\/code>) etiketlenmesini zorunlu k\u0131l\u0131yor. Bu kural\u0131 Python ile yazabiliriz. \u00d6zel kurallar\u0131n\u0131z\u0131 i\u00e7eren bir dizin olu\u015fturun (\u00f6rne\u011fin, <code>checkov_custom_policies\/<\/code>) ve i\u00e7ine <code>custom_ec2_tag_check.py<\/code> ad\u0131nda bir dosya ekleyin:<\/p>\n<pre><code>\n# checkov_custom_policies\/custom_ec2_tag_check.py\nfrom checkov.terraform.checks.resource.base_resource_check import BaseResourceCheck\nfrom checkov.common.models.enums import CheckResult, CheckCategories\n\nclass EC2CostCenterTagCheck(BaseResourceCheck):\n    def __init__(self):\n        name = \"Ensure EC2 instances have a 'CostCenter' tag\"\n        id = \"CKV_CUSTOM_EC2_1\"\n        supported_resources = [\"aws_instance\"]\n        categories = [CheckCategories.GENERAL_SECURITY]\n        super().__init__(name=name, id=id, categories=categories, supported_resources=supported_resources)\n\n    def scan_resource_conf(self, conf):\n        if \"tags\" in conf and conf[\"tags\"][0] is not None:\n            tags = conf[\"tags\"][0]\n            if \"CostCenter\" in tags:\n                return CheckResult.PASSED\n        return CheckResult.FAILED\n\ncheck = EC2CostCenterTagCheck()\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kural, <code>aws_instance<\/code> kaynaklar\u0131n\u0131 tarar ve <code>tags<\/code> blo\u011funda <code>CostCenter<\/code> etiketinin olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. E\u011fer yoksa, kural ba\u015far\u0131s\u0131z olur.<\/p>\n<p>\u015eimdi, bu kural\u0131 test etmek i\u00e7in bir Terraform dosyas\u0131 olu\u015ftural\u0131m (<code>ec2_without_tag.tf<\/code>):<\/p>\n<pre><code>\nresource \"aws_instance\" \"test_instance\" {\n  ami           = \"ami-0abcdef1234567890\"\n  instance_type = \"t2.micro\"\n\n  tags = {\n    Name = \"MyTestInstance\"\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>\u00d6zel kural\u0131n\u0131z\u0131 Checkov ile \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>--external-checks-dir<\/code> parametresini kullan\u0131n:<\/p>\n<pre><code>\ncheckov -f ec2_without_tag.tf --external-checks-dir checkov_custom_policies\/\n<\/pre>\n<p><\/code><\/p>\n<p>\u00c7\u0131kt\u0131da, <code>CKV_CUSTOM_EC2_1<\/code> kural\u0131n\u0131n ba\u015far\u0131s\u0131z oldu\u011funu g\u00f6receksiniz. Bu, kurulu\u015funuzun \u00f6zel politikalar\u0131n\u0131 IaC kodunuza uygulaman\u0131n g\u00fcc\u00fcn\u00fc g\u00f6sterir.<\/p>\n<h3>CI\/CD Entegrasyonu: G\u00fcvenli\u011fi Otomatikle\u015ftirme<\/h3>\n<p>Checkov'u CI\/CD i\u015flem hatt\u0131na entegre etmek, g\u00fcvenlik kontrollerinin her kod de\u011fi\u015fikli\u011finde otomatik olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bu, geli\u015ftiricilere an\u0131nda geri bildirim sunar ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n \u00fcretim ortam\u0131na ula\u015fmas\u0131n\u0131 engeller. \u0130\u015fte pop\u00fcler CI\/CD ara\u00e7lar\u0131na entegrasyon \u00f6rnekleri:<\/p>\n<p><strong>GitHub Actions ile Entegrasyon:<\/strong><\/p>\n<p><code>.github\/workflows\/checkov.yml<\/code> dosyas\u0131 olu\u015fturarak her \u00e7ekme iste\u011finde Checkov'u \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code>\nname: IaC Security Scan with Checkov\n\non:\n  pull_request:\n    branches:\n      - main\n      - master\n\njobs:\n  checkov_scan:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions\/checkout@v3\n\n      - name: Install Python dependencies (for custom checks)\n        run: |\n          python -m pip install --upgrade pip\n          pip install checkov\n\n      - name: Run Checkov scan\n        id: checkov\n        uses: bridgecrewio\/checkov-action@v12\n        with:\n          directory: . # Terraform dosyalar\u0131n\u0131z\u0131n oldu\u011fu dizin\n          output_format: cli\n          # E\u011fer \u00f6zel kurallar\u0131n\u0131z varsa:\n          # external_checks_dir: checkov_custom_policies\/\n        env:\n          BC_API_KEY: ${{ secrets.BC_API_KEY }} # Opsiyonel: Bridgecrew platformuna raporlama i\u00e7in\n<\/pre>\n<p><\/code><\/p>\n<p>Bu i\u015f ak\u0131\u015f\u0131, her \u00e7ekme iste\u011fi a\u00e7\u0131ld\u0131\u011f\u0131nda veya g\u00fcncellendi\u011finde Checkov'u \u00e7al\u0131\u015ft\u0131r\u0131r. E\u011fer Checkov herhangi bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 tespit ederse, varsay\u0131lan olarak eylem ba\u015far\u0131s\u0131z olur ve \u00e7ekme iste\u011finin birle\u015ftirilmesini engeller. Bu, g\u00fcvenli olmayan kodun ana dallara (main\/master) gitmesini \u00f6nlemek i\u00e7in g\u00fc\u00e7l\u00fc bir mekanizmad\u0131r.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Checkov'u CI\/CD'ye entegre ederken, tarama sonu\u00e7lar\u0131n\u0131n sadece uyar\u0131 de\u011fil, ayn\u0131 zamanda kritik zafiyetlerde derlemeyi durduracak \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.\n<\/div>\n<p><strong>GitLab CI\/CD ile Entegrasyon:<\/strong><\/p>\n<p><code>.gitlab-ci.yml<\/code> dosyan\u0131za a\u015fa\u011f\u0131daki ad\u0131m\u0131 ekleyebilirsiniz:<\/p>\n<pre><code>\nstages:\n  - security_scan\n\ncheckov_job:\n  stage: security_scan\n  image: bridgecrew\/checkov:latest # Checkov Docker imaj\u0131n\u0131 kullan\n  script:\n    - checkov -d . # Mevcut dizini tara\n    # \u00d6zel kurallar\u0131n\u0131z varsa:\n    # - checkov -d . --external-checks-dir checkov_custom_policies\/\n  allow_failure: false # Hata durumunda derlemeyi durdur\n<\/pre>\n<p><\/code><\/p>\n<p>Bu konfig\u00fcrasyon, GitLab CI\/CD i\u015flem hatt\u0131n\u0131zda Checkov'u bir g\u00fcvenlik tarama a\u015famas\u0131 olarak \u00e7al\u0131\u015ft\u0131r\u0131r. <code>allow_failure: false<\/code> ayar\u0131, Checkov herhangi bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 tespit etti\u011finde i\u015flem hatt\u0131n\u0131n ba\u015far\u0131s\u0131z olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>\u00d6zelle\u015ftirilmi\u015f kurallar ve CI\/CD entegrasyonu, g\u00fcvenlik politikalar\u0131n\u0131z\u0131 kodun ya\u015fam d\u00f6ng\u00fcs\u00fcne derinlemesine g\u00f6mmenin en etkili yollar\u0131ndan biridir. Bu, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n erken tespiti ve proaktif olarak giderilmesi i\u00e7in s\u00fcrekli bir d\u00f6ng\u00fc olu\u015fturarak, genel g\u00fcvenlik duru\u015funuzu \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirir. Geli\u015ftiriciler, g\u00fcvenlik sorunlar\u0131n\u0131 kendi yerel ortamlar\u0131nda veya CI\/CD s\u0131ras\u0131nda an\u0131nda g\u00f6r\u00fcr ve d\u00fczeltir, b\u00f6ylece g\u00fcvenlik ve geli\u015ftirme h\u0131z\u0131 aras\u0131nda m\u00fckemmel bir denge sa\u011flan\u0131r.<\/p>\n<h2>\u0130leri D\u00fczey Kullan\u0131m \u0130pu\u00e7lar\u0131: Checkov ile Daha Derinlemesine G\u00fcvenlik Analizi Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Checkov'u temel d\u00fczeyde kullanmak bile IaC g\u00fcvenli\u011finizi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilirken, arac\u0131n sundu\u011fu ileri d\u00fczey \u00f6zellikler, daha sofistike g\u00fcvenlik analizleri yapman\u0131za, i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 optimize etmenize ve belirli senaryolara daha iyi uyum sa\u011flaman\u0131za olanak tan\u0131r. Bu b\u00f6l\u00fcmde, Checkov'un tam potansiyelinden nas\u0131l yararlanabilece\u011finizi g\u00f6steren baz\u0131 ipu\u00e7lar\u0131n\u0131 ve p\u00fcf noktalar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h3>Politika \u0130hlallerini Bast\u0131rma (Suppressions)<\/h3>\n<p>Bazen, bir Checkov politikas\u0131n\u0131n ihlal edildi\u011fini bilmenize ra\u011fmen, bu durumun belirli bir kaynak veya konfig\u00fcrasyon i\u00e7in kas\u0131tl\u0131 ve kabul edilebilir oldu\u011funu d\u00fc\u015f\u00fcnebilirsiniz. \u00d6rne\u011fin, herkese a\u00e7\u0131k bir S3 kovas\u0131, bir statik web sitesi bar\u0131nd\u0131rmak i\u00e7in kas\u0131tl\u0131 olarak herkese a\u00e7\u0131k ayarlanm\u0131\u015f olabilir. Bu gibi durumlarda, Checkov'un bu politikay\u0131 uyar\u0131 olarak vermesini engellemek i\u00e7in \"bast\u0131rma\" (suppression) mekanizmalar\u0131n\u0131 kullanabilirsiniz. Bu, gereksiz uyar\u0131 g\u00fcr\u00fclt\u00fcs\u00fcn\u00fc azalt\u0131r ve ger\u00e7ekten \u00f6nemli olan g\u00fcvenlik a\u00e7\u0131klar\u0131na odaklanman\u0131z\u0131 sa\u011flar.<\/p>\n<p>Bast\u0131rmalar genellikle IaC kodunuzdaki yorum sat\u0131rlar\u0131 arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. A\u015fa\u011f\u0131daki Terraform \u00f6rne\u011finde, bir S3 kovas\u0131n\u0131n herkese a\u00e7\u0131k eri\u015fime sahip olmas\u0131na ra\u011fmen, Checkov'un bu kural\u0131 atlamas\u0131n\u0131 sa\u011fl\u0131yoruz:<\/p>\n<pre><code>\nresource \"aws_s3_bucket\" \"static_website_bucket\" {\n  bucket = \"my-static-website-example\"\n  acl    = \"public-read\"\n  # checkov:skip=CKV_AWS_18:This S3 bucket is intentionally public for static website hosting.\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Burada <code># checkov:skip=CKV_AWS_18:<\/code> yorumu, Checkov'a <code>CKV_AWS_18<\/code> kodlu politikay\u0131 (S3 genel eri\u015fim denetimi) bu kaynak i\u00e7in atlamas\u0131n\u0131 s\u00f6yler. A\u00e7\u0131klama metni (<code>This S3 bucket is intentionally public...<\/code>) neden bir bast\u0131rma yap\u0131ld\u0131\u011f\u0131n\u0131 belgelemek i\u00e7in \u00f6nemlidir. Bu, gelecekte kodunuzu inceleyen herkesin bu karar\u0131n arkas\u0131ndaki mant\u0131\u011f\u0131 anlamas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<h3>Kapsaml\u0131 Raporlama ve \u00c7\u0131kt\u0131 Formatlar\u0131<\/h3>\n<p>Checkov, farkl\u0131 ihtiya\u00e7lara y\u00f6nelik \u00e7e\u015fitli \u00e7\u0131kt\u0131 formatlar\u0131 sunar. CLI \u00e7\u0131kt\u0131s\u0131 h\u0131zl\u0131 geri bildirim i\u00e7in harika olsa da, CI\/CD i\u015flem hatlar\u0131nda veya g\u00fcvenlik denetim ara\u00e7lar\u0131nda kullan\u0131lmak \u00fczere daha yap\u0131land\u0131r\u0131lm\u0131\u015f formatlara ihtiya\u00e7 duyulabilir. Checkov'un destekledi\u011fi ba\u015fl\u0131ca \u00e7\u0131kt\u0131 formatlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>cli<\/code> (Varsay\u0131lan): Komut sat\u0131r\u0131 aray\u00fcz\u00fcnde okunabilir format.<\/li>\n<li><code>json<\/code>: Makine taraf\u0131ndan okunabilir JSON format\u0131. G\u00fcvenlik ara\u00e7lar\u0131 ve raporlama sistemleri ile entegrasyon i\u00e7in idealdir.<\/li>\n<li><code>junitxml<\/code>: CI\/CD sistemlerinde (\u00f6rn. Jenkins, GitLab CI) test sonu\u00e7lar\u0131n\u0131 g\u00f6stermek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><code>sarif<\/code>: Statik Analiz Sonu\u00e7 De\u011fi\u015fim Format\u0131. Genellikle IDE'ler ve g\u00fcvenlik ara\u00e7lar\u0131 aras\u0131nda g\u00fcvenlik bulgular\u0131n\u0131 standart bir \u015fekilde payla\u015fmak i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<p>\u00d6rnek olarak, bir Terraform projesini JSON format\u0131nda taramak ve \u00e7\u0131kt\u0131y\u0131 bir dosyaya kaydetmek i\u00e7in:<\/p>\n<pre><code>\ncheckov -d . -o json > checkov_report.json\n<\/pre>\n<p><\/code><\/p>\n<p>Bu, t\u00fcm bulgular\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f bir JSON dosyas\u0131na kaydeder. Bu dosyay\u0131 daha sonra otomatik raporlama sistemleri veya di\u011fer g\u00fcvenlik ara\u00e7lar\u0131 taraf\u0131ndan i\u015fleyebilirsiniz. \u00d6rne\u011fin, \u00f6zel bir Python beti\u011fi yazarak JSON \u00e7\u0131kt\u0131s\u0131n\u0131 analiz edebilir, kritik zafiyetleri filtreleyebilir veya \u00f6zel bir panoya g\u00f6nderebilirsiniz.<\/p>\n<h3>YAML veya JSON ile \u00d6zel Politikalar Yazma<\/h3>\n<p>Daha \u00f6nce Python ile \u00f6zel kural yazma \u00f6rne\u011fini g\u00f6rd\u00fck. Checkov ayr\u0131ca YAML veya JSON kullanarak da \u00f6zel politikalar tan\u0131mlaman\u0131za izin verir. Bu, Python bilgisi olmayanlar i\u00e7in veya daha basit, \u015fablon tabanl\u0131 kontroller i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. \u00d6zel YAML politikalar\u0131, genellikle basit anahtar-de\u011fer kontrolleri veya kaynak \u00f6zelliklerinin varl\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>\u00d6rne\u011fin, t\u00fcm SQS kuyruklar\u0131n\u0131n mesaj \u015fifreleme (SSE) \u00f6zelli\u011fine sahip olmas\u0131n\u0131 zorunlu k\u0131lan bir YAML kural\u0131 yazabiliriz:<\/p>\n<pre><code>\n# checkov_custom_policies\/sqs_encryption_check.yaml\nmetadata:\n  id: \"CKV_CUSTOM_AWS_SQS_1\"\n  name: \"Ensure SQS queue has server-side encryption enabled\"\n  category: \"ENCRYPTION\"\nscope:\n  provider: \"aws\"\n  resource: \"aws_sqs_queue\"\ndefinition:\n  - or:\n      - and:\n          - - encryption_expression: \"attribute_exists(kms_master_key_id)\"\n      - and:\n          - - encryption_expression: \"attribute_exists(kms_data_key_reuse_period_seconds)\"\n<\/pre>\n<p><\/code><\/p>\n<p>Bu YAML kural\u0131, <code>aws_sqs_queue<\/code> kaynaklar\u0131n\u0131 kontrol eder ve <code>kms_master_key_id<\/code> veya <code>kms_data_key_reuse_period_seconds<\/code> \u00f6zelliklerinden birinin varl\u0131\u011f\u0131n\u0131 do\u011frular. Bu t\u00fcr YAML tabanl\u0131 kurallar, daha az karma\u015f\u0131k ancak yine de \u00f6nemli olan g\u00fcvenlik denetimlerini h\u0131zla eklemek i\u00e7in m\u00fckemmeldir.<\/p>\n<h3>Entegrasyonlar ve Ek Ara\u00e7lar<\/h3>\n<p>Checkov tek ba\u015f\u0131na g\u00fc\u00e7l\u00fc olsa da, di\u011fer ara\u00e7larla entegrasyonuyla g\u00fcc\u00fc daha da artar:<\/p>\n<ul>\n<li><strong>IDE Entegrasyonlar\u0131:<\/strong> VS Code gibi IDE'ler i\u00e7in Checkov eklentileri bulunur. Bu eklentiler, kod yazarken an\u0131nda geri bildirim sa\u011flayarak zafiyetleri daha da erken, yani yaz\u0131m a\u015famas\u0131nda yakalaman\u0131z\u0131 sa\u011flar.<\/li>\n<li><strong>Bridgecrew Cloud Platformu:<\/strong> Checkov'u Bridgecrew platformuyla entegre ederek, bulgular\u0131n\u0131z\u0131 merkezi bir panoda y\u00f6netebilir, uyumluluk raporlar\u0131 olu\u015fturabilir ve g\u00fcvenlik duru\u015funuzu zaman i\u00e7inde izleyebilirsiniz. Bu, \u00f6zellikle b\u00fcy\u00fck ekipler ve karma\u015f\u0131k bulut ortamlar\u0131 i\u00e7in faydal\u0131d\u0131r.<\/li>\n<li><strong>Ortam De\u011fi\u015fkenleri:<\/strong> Checkov'un davran\u0131\u015f\u0131n\u0131 ortam de\u011fi\u015fkenleri (\u00f6rne\u011fin, <code>CHECKOV_SKIP_CHECKS<\/code> veya <code>CHECKOV_FRAMEWORKS<\/code>) arac\u0131l\u0131\u011f\u0131yla yap\u0131land\u0131rabilirsiniz. Bu, \u00f6zellikle CI\/CD ortamlar\u0131nda komut sat\u0131r\u0131 arg\u00fcmanlar\u0131n\u0131 uzun tutmak istemedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey kullan\u0131m ipu\u00e7lar\u0131, Checkov'u sadece basit bir tarama arac\u0131ndan \u00f6te, IaC g\u00fcvenlik stratejinizin merkezi bir bile\u015feni haline getirmenize yard\u0131mc\u0131 olacakt\u0131r. \u00d6zelle\u015ftirilmi\u015f kurallarla spesifik ihtiya\u00e7lar\u0131n\u0131z\u0131 kar\u015f\u0131layabilir, \u00e7e\u015fitli raporlama se\u00e7enekleriyle s\u00fcre\u00e7lerinizi otomatikle\u015ftirebilir ve entegrasyonlarla geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131za daha derinlemesine g\u00fcvenlik kontrolleri ekleyebilirsiniz. Bu sayede, altyap\u0131n\u0131z\u0131n g\u00fcvenli\u011fini her a\u015famada en \u00fcst d\u00fczeyde tutars\u0131n\u0131z.<\/p>\n<h2>IaC G\u00fcvenli\u011finde Checkov'un Rol\u00fc ve Gelece\u011fi<\/h2>\n<p>Infrastructure as Code (IaC) uygulamalar\u0131, bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimini d\u00f6n\u00fc\u015ft\u00fcrmeye devam ederken, bu altyap\u0131lar\u0131n g\u00fcvenli\u011fini sa\u011flamak da hayati bir \u00f6neme sahiptir. Checkov, bu paradigmada, altyap\u0131 kodunuzu hen\u00fcz da\u011f\u0131t\u0131lmadan, geli\u015ftirme a\u015famas\u0131nda g\u00fcvenlik zafiyetleri a\u00e7\u0131s\u0131ndan denetleyen kritik bir Statik Uygulama G\u00fcvenlik Testi (SAST) arac\u0131 olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. IaC'nin sundu\u011fu otomasyon ve h\u0131z avantajlar\u0131, ayn\u0131 zamanda g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n da h\u0131zla ve geni\u015f \u00f6l\u00e7ekte yay\u0131lmas\u0131 riskini ta\u015f\u0131r. \u0130\u015fte tam bu noktada Checkov gibi ara\u00e7lar, potansiyel g\u00fcvenlik ihlallerini proaktif olarak \u00f6nleyerek, kurulu\u015flar\u0131n hem \u00e7evik kalmas\u0131na hem de g\u00fcvenli bir duru\u015f sergilemesine olanak tan\u0131r.<\/p>\n<p>Checkov'un IaC g\u00fcvenli\u011findeki rol\u00fc \u00e7ok y\u00f6nl\u00fcd\u00fcr. \u00d6ncelikle, <strong>erken zafiyet tespiti<\/strong> sa\u011flar. Kod geli\u015ftirme a\u015famas\u0131nda g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 yakalayarak, \u00fcretim ortam\u0131na da\u011f\u0131t\u0131m sonras\u0131 ortaya \u00e7\u0131kabilecek pahal\u0131 ve zaman al\u0131c\u0131 d\u00fczeltmelerin \u00f6n\u00fcne ge\u00e7er. Bu, \"g\u00fcvenli\u011fi sola kayd\u0131rma\" felsefesinin somut bir uygulamas\u0131d\u0131r. \u0130kincisi, <strong>geni\u015f IaC deste\u011fi<\/strong> ile farkl\u0131 bulut ortamlar\u0131 ve ara\u00e7lar\u0131 kullanan organizasyonlar i\u00e7in tek bir birle\u015fik g\u00fcvenlik denetim \u00e7\u00f6z\u00fcm\u00fc sunar. Terraform'dan Kubernetes'e, CloudFormation'dan Dockerfile'lara kadar geni\u015f bir yelpazeyi kapsayarak, g\u00fcvenlik politikalar\u0131n\u0131n tutarl\u0131 bir \u015fekilde uygulanmas\u0131n\u0131 garanti eder. \u00dc\u00e7\u00fcnc\u00fcs\u00fc, <strong>\u00f6zelle\u015ftirilebilir politikalar\u0131<\/strong> sayesinde, kurulu\u015flar\u0131n kendi i\u00e7 g\u00fcvenlik standartlar\u0131n\u0131 ve uyumluluk gereksinimlerini IaC kodlar\u0131na yans\u0131tmas\u0131na olanak tan\u0131r. Bu esneklik, her organizasyonun kendine \u00f6zg\u00fc risk profiline g\u00f6re g\u00fcvenlik duru\u015funu g\u00fc\u00e7lendirmesini sa\u011flar. Son olarak, <strong>CI\/CD i\u015flem hatlar\u0131na kolay entegrasyonu<\/strong>, g\u00fcvenlik denetimlerini geli\u015ftirme s\u00fcrecinin do\u011fal bir par\u00e7as\u0131 haline getirir ve g\u00fcvenli kod da\u011f\u0131t\u0131m\u0131n\u0131 otomatikle\u015ftirir.<\/p>\n<p>Gelece\u011fe bakt\u0131\u011f\u0131m\u0131zda, IaC ve bulut yerel teknolojilerinin benimsenmesi h\u0131zla artmaya devam edecektir. Bu durum, Checkov gibi ara\u00e7lar\u0131n \u00f6nemini daha da art\u0131racakt\u0131r. Gelecekteki geli\u015fmeler muhtemelen \u015funlar\u0131 i\u00e7erecektir:<\/p>\n<ul>\n<li><strong>Daha Ak\u0131ll\u0131 Ba\u011flamsal Analiz:<\/strong> Sadece tek bir kayna\u011f\u0131n konfig\u00fcrasyonunu de\u011fil, kaynaklar aras\u0131ndaki ili\u015fkileri ve etkile\u015fimleri de dikkate alarak daha karma\u015f\u0131k g\u00fcvenlik zafiyetlerini tespit etme yetene\u011fi. \u00d6rne\u011fin, bir g\u00fcvenlik grubunun sadece bir kaynak i\u00e7in de\u011fil, t\u00fcm ba\u011fl\u0131 hizmetler \u00fczerindeki etkisini analiz etme.<\/li>\n<li><strong>Daha Geli\u015fmi\u015f Remediasyon \u00d6nerileri:<\/strong> Tespit edilen zafiyetler i\u00e7in sadece uyar\u0131 vermekle kalmay\u0131p, otomatik d\u00fczeltme kod par\u00e7ac\u0131klar\u0131 veya \u00f6nerilen yap\u0131land\u0131rma de\u011fi\u015fiklikleri sunarak geli\u015ftiricilerin i\u015fini kolayla\u015ft\u0131rma.<\/li>\n<li><strong>AI\/ML Destekli G\u00fcvenlik:<\/strong> Yeni ve bilinmeyen IaC zafiyet modellerini tespit etmek i\u00e7in yapay zeka ve makine \u00f6\u011frenimi tekniklerini kullanma. Bu, kural tabanl\u0131 sistemlerin \u00f6tesine ge\u00e7erek daha dinamik bir g\u00fcvenlik analizi sa\u011flayabilir.<\/li>\n<li><strong>Daha Geni\u015f Entegrasyon Ekosistemi:<\/strong> Di\u011fer g\u00fcvenlik ara\u00e7lar\u0131, geli\u015ftirici platformlar\u0131 ve bulut hizmetleriyle daha derin ve sorunsuz entegrasyonlar.<\/li>\n<\/ul>\n<p>Sonu\u00e7 olarak, Checkov, modern bulut altyap\u0131lar\u0131n\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. G\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine entegre ederek, potansiyel veri s\u0131z\u0131nt\u0131lar\u0131ndan, yetkisiz eri\u015fimlerden ve uyumluluk ihlallerinden kaynaklanabilecek maliyetli sorunlar\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur. IaC'nin benimsenmesi artt\u0131k\u00e7a, Checkov'un sundu\u011fu proaktif g\u00fcvenlik yakla\u015f\u0131m\u0131, organizasyonlar\u0131n dijital d\u00f6n\u00fc\u015f\u00fcm yolculuklar\u0131nda g\u00fcvenli\u011fi merkeze almalar\u0131n\u0131 sa\u011flayan temel ta\u015flardan biri olmaya devam edecektir. G\u00fcvenli altyap\u0131lar olu\u015fturmak, sadece teknik bir gereklilik de\u011fil, ayn\u0131 zamanda i\u015f s\u00fcreklili\u011fi ve m\u00fc\u015fteri g\u00fcveni a\u00e7\u0131s\u0131ndan stratejik bir zorunluluktur.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>Infrastructure as Code (IaC) g\u00fcvenli\u011fi ve Checkov kullan\u0131m\u0131 hakk\u0131nda merak edilen baz\u0131 sorular\u0131 ve cevaplar\u0131n\u0131 a\u015fa\u011f\u0131da bulabilirsiniz:<\/p>\n<ol>\n<li>\n        <strong>Checkov sadece Terraform ile mi \u00e7al\u0131\u015f\u0131r?<\/strong><br \/>\n        Hay\u0131r, Checkov geni\u015f bir IaC yelpazesini destekler. Terraform'un yan\u0131 s\u0131ra AWS CloudFormation, Azure Resource Manager (ARM) \u015fablonlar\u0131, Google Deployment Manager, Kubernetes manifestleri, Serverless Framework, Helm Chart'lar ve Dockerfile'lar gibi bir\u00e7ok farkl\u0131 IaC t\u00fcr\u00fcn\u00fc analiz edebilir. Bu \u00e7ok y\u00f6nl\u00fcl\u00fck, farkl\u0131 bulut sa\u011flay\u0131c\u0131lar\u0131 ve konteyner orkestrasyon ara\u00e7lar\u0131 kullanan karma\u015f\u0131k ortamlar i\u00e7in Checkov'u ideal bir ara\u00e7 haline getirir.\n    <\/li>\n<li>\n        <strong>Checkov nas\u0131l bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131 tespit eder?<\/strong><br \/>\n        Checkov, IaC kodunuzu (\u00f6rne\u011fin, Terraform dosyalar\u0131n\u0131z\u0131) statik olarak analiz eder. Bu, kodu \u00e7al\u0131\u015ft\u0131rmadan, dosya i\u00e7indeki kaynak tan\u0131mlamalar\u0131n\u0131 ve konfig\u00fcrasyonlar\u0131 \u00f6nceden tan\u0131mlanm\u0131\u015f binlerce g\u00fcvenlik politikas\u0131na g\u00f6re inceler. Her bir politika, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131, en iyi uygulama ihlallerini veya uyumluluk standartlar\u0131n\u0131 temsil eder. E\u011fer kodunuzdaki bir ayar, bir politikan\u0131n ihlal edildi\u011fini g\u00f6steriyorsa, Checkov bunu bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 olarak raporlar.\n    <\/li>\n<li>\n        <strong>Checkov'u CI\/CD i\u015flem hatt\u0131ma entegre etmenin avantajlar\u0131 nelerdir?<\/strong><br \/>\n        Checkov'u CI\/CD'ye entegre etmenin en b\u00fcy\u00fck avantaj\u0131, \"g\u00fcvenli\u011fi sola kayd\u0131rma\" ilkesini ger\u00e7ek anlamda uygulamakt\u0131r. Bu, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n kod hen\u00fcz \u00fcretim ortam\u0131na da\u011f\u0131t\u0131lmadan, geli\u015ftirme a\u015famas\u0131nda, hatta birle\u015ftirme iste\u011fi (pull request) a\u00e7\u0131ld\u0131\u011f\u0131nda otomatik olarak tespit edilmesini sa\u011flar. Bu sayede, geli\u015ftiricilere an\u0131nda geri bildirim sa\u011flan\u0131r, g\u00fcvenlik sorunlar\u0131 daha erken ve daha ucuz bir \u015fekilde d\u00fczeltilir ve g\u00fcvenli olmayan kodun ana dallara veya \u00fcretim ortam\u0131na ula\u015fmas\u0131 engellenir.\n    <\/li>\n<li>\n        <strong>Kendi \u00f6zel g\u00fcvenlik politikalar\u0131m\u0131 Checkov'a ekleyebilir miyim?<\/strong><br \/>\n        Evet, kesinlikle. Checkov, kurulu\u015funuzun \u00f6zel g\u00fcvenlik veya uyumluluk gereksinimlerini kar\u015f\u0131lamak i\u00e7in kendi \u00f6zel g\u00fcvenlik politikalar\u0131n\u0131z\u0131 Python veya YAML format\u0131nda yazman\u0131za olanak tan\u0131r. Bu, standart Checkov politikalar\u0131n\u0131n kapsamad\u0131\u011f\u0131 ni\u015f senaryolar\u0131 denetlemenize ve g\u00fcvenlik duru\u015funuzu daha da g\u00fc\u00e7lendirmenize olanak tan\u0131r. \u00d6zel politikalar\u0131n\u0131z\u0131 tan\u0131mlay\u0131p <code>--external-checks-dir<\/code> parametresi ile Checkov'a g\u00f6sterebilirsiniz.\n    <\/li>\n<li>\n        <strong>Checkov'un buldu\u011fu bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131 bilerek atlamak m\u00fcmk\u00fcn m\u00fcd\u00fcr?<\/strong><br \/>\n        Evet, bu duruma \"bast\u0131rma\" (suppression) denir. Baz\u0131 durumlarda, bir Checkov politikas\u0131n\u0131n ihlali kas\u0131tl\u0131 ve kabul edilebilir olabilir (\u00f6rne\u011fin, bir statik web sitesi i\u00e7in herkese a\u00e7\u0131k S3 kovas\u0131). Bu t\u00fcr durumlarda, IaC kodunuzdaki \u00f6zel yorum sat\u0131rlar\u0131 (\u00f6rn: <code># checkov:skip=CKV_AWS_XXX:A\u00e7\u0131klama<\/code>) kullanarak Checkov'un belirli bir kaynak veya politika i\u00e7in uyar\u0131 vermesini engelleyebilirsiniz. Bu, gereksiz g\u00fcr\u00fclt\u00fcy\u00fc azalt\u0131r ve ger\u00e7ekten kritik olan sorunlara odaklanman\u0131z\u0131 sa\u011flar.\n    <\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-35957","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131<\/title>\n<meta name=\"description\" content=\"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC&#039;nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131\" \/>\n<meta property=\"og:description\" content=\"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC&#039;nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-06T01:01:08+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131\",\"datePublished\":\"2025-12-06T01:01:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\"},\"wordCount\":4976,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\",\"name\":\"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-06T01:01:08+00:00\",\"description\":\"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC'nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131","description":"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC'nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/","og_locale":"tr_TR","og_type":"article","og_title":"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131","og_description":"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC'nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.","og_url":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-06T01:01:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"29 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131","datePublished":"2025-12-06T01:01:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/"},"wordCount":4976,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/","url":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/","name":"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-06T01:01:08+00:00","description":"Modern bulut altyap\u0131lar\u0131n\u0131n y\u00f6netimi, giderek artan karma\u015f\u0131kl\u0131k ve h\u0131z gereksinimleriyle d\u00f6n\u00fc\u015f\u00fcyor. Bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan Infrastructure as Code (IaC), altyap\u0131y\u0131 kod olarak tan\u0131mlayarak otomasyon, \u00f6l\u00e7eklenebilirlik ve tutarl\u0131l\u0131k sa\u011fl\u0131yor. Ancak, IaC'nin sundu\u011fu bu avantajlar, beraberinde yeni g\u00fcvenlik zorluklar\u0131n\u0131 da getiriyor. Peki, milyonlarca dolar de\u011ferindeki altyap\u0131n\u0131z\u0131 tek bir kod sat\u0131r\u0131yla riske atmadan, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecine nas\u0131l dahil edebilirsiniz? Bu makale, IaC g\u00fcvenli\u011finde Statik Uygulama G\u00fcvenlik Testi (SAST) yakla\u015f\u0131m\u0131n\u0131n pratik bir uygulamas\u0131 olan Checkov arac\u0131n\u0131 kullanarak, altyap\u0131 kodunuzdaki zafiyetleri nas\u0131l proaktif bir \u015fekilde tespit edip giderebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131kl\u0131yor.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/infrastructure-as-code-guvenligi-checkov-ile-sast-yaklasimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Infrastructure as Code G\u00fcvenli\u011fi: Checkov ile SAST Yakla\u015f\u0131m\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35957"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35957\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}