{"id":31863,"date":"2025-10-15T00:31:22","date_gmt":"2025-10-14T21:31:22","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/"},"modified":"2025-10-15T00:31:22","modified_gmt":"2025-10-14T21:31:22","slug":"gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/","title":{"rendered":"GitLab &#038; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme"},"content":{"rendered":"<p><body><\/p>\n<p>Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector&#8217;a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz. <\/p>\n<p>Dijital d\u00f6n\u00fc\u015f\u00fcm\u00fcn h\u0131z kazand\u0131\u011f\u0131 bir \u00e7a\u011fda ya\u015f\u0131yoruz ve her ge\u00e7en g\u00fcn daha fazla i\u015f y\u00fck\u00fc buluta ta\u015f\u0131n\u0131yor, daha fazla uygulama geli\u015ftiriliyor. Bu durum, siber sald\u0131rganlar i\u00e7in yeni ve geni\u015f hedef y\u00fczeyler olu\u015fturuyor. Geleneksel g\u00fcvenlik yakla\u015f\u0131mlar\u0131, genellikle geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn sonlar\u0131na do\u011fru g\u00fcvenlik kontrollerini entegre ederdi. Ancak bu y\u00f6ntem, zafiyetlerin \u00fcretim ortam\u0131na kadar ula\u015fmas\u0131na ve d\u00fczeltilmesi daha maliyetli hale gelmesine neden oluyordu. Bu nedenle, &#8220;Shift-Left&#8221; olarak bilinen, g\u00fcvenli\u011fi geli\u015ftirme s\u00fcrecinin en ba\u015f\u0131ndan itibaren entegre etme yakla\u015f\u0131m\u0131 benimsenmelidir. Art\u0131k sadece altyap\u0131 g\u00fcvenli\u011fi de\u011fil, uygulaman\u0131n kalbi olan kaynak kodunun g\u00fcvenli\u011fi de \u00f6ncelikli hale gelmi\u015ftir.<\/p>\n<p>Tedarik zinciri sald\u0131r\u0131lar\u0131, a\u00e7\u0131k kaynak k\u00fct\u00fcphanelerdeki zafiyetler ve insan hatas\u0131 kaynakl\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131, yaz\u0131l\u0131m projeleri i\u00e7in ciddi riskler olu\u015fturmaktad\u0131r. \u00d6rne\u011fin, SolarWinds sald\u0131r\u0131s\u0131 gibi b\u00fcy\u00fck \u00f6l\u00e7ekli olaylar, tek bir zafiyetin t\u00fcm ekosistemi nas\u0131l etkileyebilece\u011fini ac\u0131 bir \u015fekilde g\u00f6stermi\u015ftir. Ayr\u0131ca, GDPR, HIPAA, KVKK gibi reg\u00fclasyonlar, veri g\u00fcvenli\u011fi ve gizlili\u011fini ihlal eden durumlar i\u00e7in a\u011f\u0131r cezalar \u00f6ng\u00f6rmektedir. Bu bask\u0131lar, kurulu\u015flar\u0131 daha proaktif g\u00fcvenlik \u00f6nlemleri almaya itmektedir. \u0130\u015fte tam bu noktada, Amazon Inspector gibi otomatik g\u00fcvenlik de\u011ferlendirme hizmetleri devreye girerek, geli\u015ftiricilere ve g\u00fcvenlik ekiplerine paha bi\u00e7ilmez bir destek sa\u011flamaktad\u0131r. Geli\u015ftiriciler, kodlar\u0131n\u0131 depolar\u0131na iter etmez potansiyel g\u00fcvenlik risklerini otomatik olarak \u00f6\u011frenmeli ve d\u00fczeltme f\u0131rsat\u0131 bulmal\u0131d\u0131r. Bu yakla\u015f\u0131m, sadece g\u00fcvenlik seviyesini art\u0131rmakla kalmaz, ayn\u0131 zamanda g\u00fcvenlik denetimlerinin daha verimli ve s\u00fcrekli hale gelmesine yard\u0131mc\u0131 olur. Amazon Inspector, bu kapsamda, kaynak kod analizi yetenekleriyle \u00f6ne \u00e7\u0131karak, hem GitLab hem de GitHub kullan\u0131c\u0131lar\u0131 i\u00e7in entegre bir g\u00fcvenlik \u00e7\u00f6z\u00fcm\u00fc sunmaktad\u0131r.<\/p>\n<p>Peki, Amazon Inspector&#8217;\u0131 kullanarak, pop\u00fcler kaynak kod depolar\u0131n\u0131zdaki gizli tehditleri nas\u0131l ortaya \u00e7\u0131karabilirsiniz? Ve bu s\u00fcre\u00e7, geli\u015ftirme h\u0131z\u0131n\u0131z\u0131 yava\u015flatmadan nas\u0131l entegre edilebilir? \u0130\u015fte bu sorular\u0131n cevaplar\u0131n\u0131 bulmak i\u00e7in Amazon Inspector&#8217;\u0131n kaynak kod tarama yeteneklerine ve GitLab\/GitHub entegrasyonlar\u0131na daha yak\u0131ndan bakaca\u011f\u0131z. Geli\u015ftiricilerin i\u015f y\u00fck\u00fcn\u00fc art\u0131rmadan, g\u00fcvenlik ekiplerinin \u00fczerindeki y\u00fck\u00fc hafifleterek, her iki taraf\u0131n da faydalanabilece\u011fi bir mekanizma olu\u015fturmak hedeflenmektedir. G\u00fcvenli\u011fin bir engelleyici de\u011fil, bir kolayla\u015ft\u0131r\u0131c\u0131 olmas\u0131 gerekti\u011fi ilkesiyle hareket etmek esast\u0131r. Bu y\u00fczden, kod g\u00fcvenli\u011finin yaln\u0131zca uzmanlar\u0131n de\u011fil, t\u00fcm geli\u015ftirme ekibinin ortak sorumlulu\u011fu oldu\u011funu vurgulamak \u00f6nemlidir.<\/p>\n<h2>Amazon Inspector Nedir ve Kaynak Kod Tarama Yetenekleri Nelerdir?<\/h2>\n<p>Amazon Inspector, AWS taraf\u0131ndan sunulan, s\u00fcrekli bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 y\u00f6netim hizmetidir. Geleneksel olarak, EC2 \u00f6rnekleri, konteyner g\u00f6r\u00fcnt\u00fcleri (ECR) ve Lambda fonksiyonlar\u0131 gibi AWS kaynaklar\u0131ndaki g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 otomatik olarak taramas\u0131yla bilinir. Ancak son d\u00f6nemde, bu yetenekleri geni\u015fleterek do\u011frudan kaynak kod depolar\u0131n\u0131 tarama \u00f6zelli\u011fini de eklemi\u015ftir. Bu, &#8220;Shift-Left&#8221; g\u00fcvenlik yakla\u015f\u0131m\u0131n\u0131 benimsemek isteyen kurulu\u015flar i\u00e7in olduk\u00e7a \u00f6nemli bir ad\u0131md\u0131r, \u00e7\u00fcnk\u00fc zafiyetlerin yaz\u0131l\u0131m geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn (SDLC) \u00e7ok daha erken a\u015famalar\u0131nda tespit edilmesini sa\u011flar.<\/p>\n<p>Amazon Inspector&#8217;\u0131n kaynak kod tarama yetenekleri, depolar\u0131n\u0131zdaki kodlar\u0131 statik analiz teknikleri (SAST) kullanarak incelemesine dayan\u0131r. Bu analiz s\u0131ras\u0131nda, OWASP Top 10 listesindeki kritik zafiyetler (SQL Injection, XSS, G\u00fcvenli Olmayan Konfig\u00fcrasyonlar vb.), hardcoded kimlik bilgileri, ba\u011f\u0131ml\u0131l\u0131k zafiyetleri ve genel kodlama hatalar\u0131 gibi bir\u00e7ok potansiyel g\u00fcvenlik a\u00e7\u0131\u011f\u0131 aran\u0131r. Inspector, tarama sonu\u00e7lar\u0131n\u0131 detayl\u0131 bir \u015fekilde sunar; bu sonu\u00e7lar, zafiyetin t\u00fcr\u00fcn\u00fc, \u00f6nem derecesini (kritik, y\u00fcksek, orta, d\u00fc\u015f\u00fck), etkilenen dosya ve kod sat\u0131r\u0131n\u0131, hatta sorunu gidermek i\u00e7in at\u0131labilecek ad\u0131mlar\u0131 i\u00e7erir. Bu sayede, geli\u015ftiriciler tam olarak nerede ve nas\u0131l bir d\u00fczeltme yapmalar\u0131 gerekti\u011fini kolayca anlayabilirler.<\/p>\n<p>Bu \u00f6zellik, \u00f6zellikle s\u00fcrekli entegrasyon ve s\u00fcrekli teslimat (CI\/CD) s\u00fcre\u00e7lerine entegre edildi\u011finde tam potansiyeline ula\u015f\u0131r. Bir geli\u015ftirici kodunu GitLab veya GitHub deposuna g\u00f6nderdi\u011finde, otomatik olarak bir Inspector taramas\u0131 tetiklenebilir. B\u00f6ylece, potansiyel bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 daha \u00fcretim ortam\u0131na ula\u015fmadan, geli\u015ftirme a\u015famas\u0131nda tespit edilip d\u00fczeltilebilir. Bu proaktif yakla\u015f\u0131m, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n maliyetini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve geli\u015ftirme s\u00fcre\u00e7lerinin kesintisiz ilerlemesine yard\u0131mc\u0131 olur. Inspector&#8217;\u0131n bu yeni yetene\u011fi, yaz\u0131l\u0131m g\u00fcvenli\u011fini sadece g\u00fcvenlik ekiplerinin de\u011fil, t\u00fcm geli\u015ftirme ekibinin sorumlulu\u011fu haline getiren DevSecOps felsefesini destekler.<\/p>\n<p>Inspector, tarama sonu\u00e7lar\u0131n\u0131 AWS Security Hub gibi di\u011fer g\u00fcvenlik hizmetleriyle de entegre edebilir. Bu sayede, g\u00fcvenlik bulgular\u0131n\u0131z tek bir merkezi yerden y\u00f6netilebilir ve genel g\u00fcvenlik duru\u015funuz hakk\u0131nda b\u00fct\u00fcnsel bir g\u00f6r\u00fcn\u00fcm elde edilebilir. \u00d6zellikle karma\u015f\u0131k ve b\u00fcy\u00fck \u00f6l\u00e7ekli projelerde, binlerce sat\u0131r kodu manuel olarak incelemek m\u00fcmk\u00fcn olmad\u0131\u011f\u0131ndan, otomatik tarama ara\u00e7lar\u0131 vazge\u00e7ilmez bir hal al\u0131r. Amazon Inspector&#8217;\u0131n bu geli\u015fmi\u015f yetenekleri, modern yaz\u0131l\u0131m geli\u015ftirme pratikleriyle uyumlu bir \u015fekilde, kod g\u00fcvenli\u011fini bir ayr\u0131cal\u0131k olmaktan \u00e7\u0131kar\u0131p standart bir gereklilik haline getirmektedir. Ayr\u0131ca, Inspector&#8217;\u0131n tarama motoru s\u00fcrekli g\u00fcncellenerek yeni tehdit vekt\u00f6rlerine kar\u015f\u0131 da koruma sa\u011flamaktad\u0131r. Bu da, s\u00fcrekli de\u011fi\u015fen siber tehdit manzaras\u0131nda g\u00fcvende kalmak i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<\/p>\n<h2>GitLab ve GitHub Depolar\u0131n\u0131z\u0131 Amazon Inspector&#8217;a Nas\u0131l Ba\u011flars\u0131n\u0131z? Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>Amazon Inspector&#8217;\u0131n kod tarama yeteneklerinden faydalanman\u0131n ilk ad\u0131m\u0131, kaynak kod depolar\u0131n\u0131z\u0131 Inspector ile entegre etmektir. Bu s\u00fcre\u00e7, hem GitHub hem de GitLab i\u00e7in benzer ad\u0131mlar\u0131 i\u00e7erir ancak her platforma \u00f6zg\u00fc baz\u0131 farkl\u0131l\u0131klar mevcuttur. \u015eimdi bu ba\u011flant\u0131lar\u0131 nas\u0131l kuraca\u011f\u0131m\u0131za ad\u0131m ad\u0131m g\u00f6z atal\u0131m. Bu kurulum, genellikle AWS Y\u00f6netim Konsolu \u00fczerinden veya AWS CLI kullan\u0131larak yap\u0131labilir.<\/p>\n<h3>GitHub Ba\u011flant\u0131s\u0131 Kurulumu<\/h3>\n<p>GitHub depolar\u0131n\u0131z\u0131 Amazon Inspector&#8217;a ba\u011flamak i\u00e7in \u00f6ncelikle Inspector&#8217;\u0131n GitHub hesab\u0131n\u0131za eri\u015fim izni vermeniz gerekir. Bu i\u015flem, genellikle bir AWS Connector (AWS Ba\u011flay\u0131c\u0131s\u0131) arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015fir. Bu ba\u011flay\u0131c\u0131, Inspector&#8217;\u0131n GitHub hesab\u0131n\u0131zdaki belirli depolara eri\u015fmesine olanak tan\u0131yan bir OAuth uygulamas\u0131 gibi \u00e7al\u0131\u015f\u0131r.<\/p>\n<ol>\n<li><strong>\u00d6n Ko\u015fullar:<\/strong> Ba\u011flant\u0131 yapacak IAM kullan\u0131c\u0131s\u0131n\u0131n veya rol\u00fcn\u00fcn <code>inspector2:AssociateExternalAccount<\/code> ve <code>inspector2:CreateCodeRepository<\/code> gibi gerekli izinlere sahip oldu\u011fundan emin olun. Ayr\u0131ca, GitHub hesab\u0131n\u0131zda y\u00f6netici eri\u015fimine sahip olmal\u0131s\u0131n\u0131z.<\/li>\n<li><strong>AWS Y\u00f6netim Konsolu \u00dczerinden:<\/strong>\n<ul>\n<li>AWS Y\u00f6netim Konsolu&#8217;nda Amazon Inspector hizmetine gidin.<\/li>\n<li>Sol navigasyon men\u00fcs\u00fcnden &#8220;Ayarlar&#8221; (Settings) ve ard\u0131ndan &#8220;Hesap y\u00f6netimi&#8221; (Account management) se\u00e7ene\u011fini t\u0131klay\u0131n.<\/li>\n<li>&#8220;Kod depolar\u0131&#8221; (Code repositories) sekmesine gidin.<\/li>\n<li>&#8220;Hesab\u0131 ba\u011fla&#8221; (Connect account) butonuna t\u0131klay\u0131n ve &#8220;GitHub&#8221; se\u00e7ene\u011fini belirleyin.<\/li>\n<li>Inspector sizi GitHub&#8217;a y\u00f6nlendirecek ve burada AWS&#8217;ye yetki vermeniz istenecektir. \u0130lgili izinleri onaylay\u0131n.<\/li>\n<li>Ba\u011flant\u0131 ba\u015far\u0131l\u0131 olduktan sonra, Inspector&#8217;a hangi GitHub depolar\u0131n\u0131n eklenmesini istedi\u011finizi se\u00e7ebilirsiniz. Belirli depolar\u0131 veya t\u00fcm depolar\u0131 taramak \u00fczere ayarlayabilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<li><strong>AWS CLI \u00dczerinden (Geli\u015fmi\u015f Kullan\u0131c\u0131lar \u0130\u00e7in):<\/strong>\n<p>CLI \u00fczerinden ba\u011flant\u0131 kurmak daha \u00e7ok otomasyon senaryolar\u0131nda tercih edilir. A\u015fa\u011f\u0131daki komutlar bir taslak niteli\u011findedir ve tam komutlar AWS CLI belgelerinden do\u011frulanmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">\naws inspector2 create-source-code-repository --repository-provider GITHUB --repository-details '{\"owner\": \"your-github-username\", \"name\": \"your-repo-name\"}'\naws inspector2 associate-external-account --external-account-type GITHUB --external-account-id \"YOUR_GITHUB_ACCOUNT_ID\" --permissions \"READ_WRITE\"\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu komutlar, ba\u011flant\u0131 s\u00fcrecini ba\u015flat\u0131r ve gerekli izinleri yap\u0131land\u0131rman\u0131za yard\u0131mc\u0131 olur. AWS CLI \u00fczerinden GitHub'a OAuth entegrasyonu genellikle konsol \u00fczerinden manuel bir ad\u0131m gerektirir.<\/p>\n<\/li>\n<\/ol>\n<h3>GitLab Ba\u011flant\u0131s\u0131 Kurulumu<\/h3>\n<p>GitLab ile entegrasyon s\u00fcreci de GitHub'a benzerdir ancak GitLab'\u0131n kendi yetkilendirme mekanizmalar\u0131 nedeniyle baz\u0131 farkl\u0131l\u0131klar g\u00f6sterebilir. GitLab.com veya Self-Managed GitLab \u00f6rnekleri i\u00e7in ad\u0131mlar farkl\u0131l\u0131k g\u00f6sterebilir; burada GitLab.com entegrasyonuna odaklanaca\u011f\u0131z.<\/p>\n<ol>\n<li><strong>\u00d6n Ko\u015fullar:<\/strong> AWS IAM izinlerinin yan\u0131 s\u0131ra, GitLab hesab\u0131n\u0131zda depo eri\u015fimi ve proje olu\u015fturma\/y\u00f6netme yetkilerine sahip olman\u0131z gerekir.<\/li>\n<li><strong>AWS Y\u00f6netim Konsolu \u00dczerinden:<\/strong>\n<ul>\n<li>Amazon Inspector konsolunda yine \"Ayarlar\" > \"Hesap y\u00f6netimi\" > \"Kod depolar\u0131\" sekmesine gidin.<\/li>\n<li>\"Hesab\u0131 ba\u011fla\" (Connect account) butonuna t\u0131klay\u0131n ve bu sefer \"GitLab\" se\u00e7ene\u011fini belirleyin.<\/li>\n<li>Inspector sizi GitLab'a y\u00f6nlendirecek ve AWS'ye yetki vermeniz istenecektir. GitLab OAuth uygulamas\u0131n\u0131n gerektirdi\u011fi izinleri onaylay\u0131n.<\/li>\n<li>Ba\u011flant\u0131 ba\u015far\u0131l\u0131 olduktan sonra, Inspector'\u0131n hangi GitLab depolar\u0131na eri\u015fmesini istedi\u011finizi se\u00e7ebilirsiniz. Proje veya grup baz\u0131nda se\u00e7im yapabilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<li><strong>AWS CLI \u00dczerinden:<\/strong>\n<p>GitLab i\u00e7in de benzer CLI komutlar\u0131 kullan\u0131labilir, ancak yine, OAuth ak\u0131\u015f\u0131n\u0131n bir k\u0131sm\u0131n\u0131n konsol veya taray\u0131c\u0131 \u00fczerinden manuel olarak tamamlanmas\u0131 gerekebilir.<\/p>\n<pre><code class=\"language-bash\">\naws inspector2 create-source-code-repository --repository-provider GITLAB --repository-details '{\"projectId\": \"your-gitlab-project-id\"}'\naws inspector2 associate-external-account --external-account-type GITLAB --external-account-id \"YOUR_GITLAB_ACCOUNT_ID\" --permissions \"READ_WRITE\"\n            <\/pre>\n<p><\/code><\/p>\n<p>GitLab Self-Managed i\u00e7in, genellikle \u00f6zel bir entegrasyon veya AWS'nin kendi i\u00e7inde bir ba\u011flant\u0131 proxy'si kurman\u0131z gerekebilir, \u00e7\u00fcnk\u00fc Inspector'\u0131n do\u011frudan yerel a\u011f\u0131n\u0131za eri\u015fimi olmayabilir.<\/p>\n<\/li>\n<\/ol>\n<div class=\"expert-tip\">\n        <strong>Uzman \u0130pucu: IAM Rolleri ve En Az Yetki Prensibi<\/strong><br \/>\n        Depolar\u0131n\u0131z\u0131 ba\u011flarken ve Inspector'\u0131 yap\u0131land\u0131r\u0131rken, her zaman en az yetki (least privilege) prensibini uygulay\u0131n. Inspector'\u0131n sadece ihtiya\u00e7 duydu\u011fu depolara ve izinlere sahip oldu\u011fundan emin olun. GitHub veya GitLab taraf\u0131nda da AWS'ye verilen izinleri dikkatlice g\u00f6zden ge\u00e7irin. Gereksiz geni\u015f izinler, g\u00fcvenlik risklerini art\u0131rabilir. \u00d6rne\u011fin, sadece belirli bir grup veya organizasyona ait depolara eri\u015fim izni vermek, t\u00fcm ki\u015fisel depolar\u0131n\u0131za eri\u015fim izni vermekten daha g\u00fcvenlidir.\n    <\/div>\n<p>Ba\u011flant\u0131 kurulumu tamamland\u0131ktan sonra, Inspector otomatik olarak se\u00e7ilen depolar\u0131 taramaya ba\u015flayabilir veya siz manuel olarak taramalar\u0131 tetikleyebilirsiniz. Bu entegrasyon, kodunuzun s\u00fcrekli olarak g\u00fcvenlik a\u00e7\u0131klar\u0131na kar\u015f\u0131 denetlendi\u011fi bir ortam yarat\u0131r ve DevSecOps pratiklerinin temelini olu\u015fturur. Bu sayede, g\u00fcvenlik, geli\u015ftirme s\u00fcrecinin son a\u015famalar\u0131na b\u0131rak\u0131lmak yerine, s\u00fcrecin ayr\u0131lmaz bir par\u00e7as\u0131 haline gelir.<\/p>\n<h2>Kaynak Kod G\u00fcvenlik Taramalar\u0131n\u0131 Ba\u015flatma ve Sonu\u00e7lar\u0131 Anlama<\/h2>\n<p>Depolar\u0131n\u0131z\u0131 Amazon Inspector'a ba\u015far\u0131yla ba\u011flad\u0131ktan sonra s\u0131ra, kodunuzu tarama ve bulunan g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 analiz etmeye gelir. Bu a\u015fama, g\u00fcvenlik duru\u015funuzu g\u00fc\u00e7lendirmek ve potansiyel riskleri ortadan kald\u0131rmak i\u00e7in kritik \u00f6neme sahiptir. Inspector, tarama s\u00fcrecini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde otomatikle\u015ftirir, ancak sonu\u00e7lar\u0131 do\u011fru bir \u015fekilde yorumlamak ve gerekli d\u00fczeltmeleri yapmak geli\u015ftiricilerin sorumlulu\u011fundad\u0131r.<\/p>\n<p><strong>Taramalar\u0131 Ba\u015flatma:<\/strong> Depo ba\u011flant\u0131s\u0131 yap\u0131ld\u0131\u011f\u0131nda, Amazon Inspector genellikle otomatik olarak ilk taramay\u0131 ba\u015flat\u0131r. Daha sonraki kod de\u011fi\u015fiklikleri (\u00f6rne\u011fin, bir <code>push<\/code> olay\u0131) \u00fczerine veya periyodik olarak otomatik taramalar yap\u0131land\u0131rabilirsiniz. AWS Konsolu \u00fczerinden, \"Kod depolar\u0131\" sekmesinde ilgili depoyu se\u00e7ip manuel olarak \"Tarama Ba\u015flat\" (Start Scan) butonuna t\u0131klayarak da tarama tetikleyebilirsiniz. Bu tarama, kod taban\u0131n\u0131z\u0131n b\u00fcy\u00fckl\u00fc\u011f\u00fcne ve karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131 olarak birka\u00e7 dakikadan birka\u00e7 saate kadar s\u00fcrebilir.<\/p>\n<pre><code class=\"language-bash\">\n# AWS CLI ile belirli bir depoyu taramay\u0131 tetikleme \u00f6rne\u011fi\naws inspector2 create-scan --resource-type CODE_REPOSITORY --resource-identifier \"arn:aws:inspector2:us-east-1:123456789012:repository\/github\/your-org\/your-repo\" --scan-type SOURCE_CODE\n    <\/pre>\n<p><\/code><\/p>\n<p><strong>Tarama Sonu\u00e7lar\u0131n\u0131 Anlama:<\/strong> Tarama tamamland\u0131\u011f\u0131nda, Amazon Inspector konsolunda \"Bulgular\" (Findings) b\u00f6l\u00fcm\u00fcne giderek sonu\u00e7lar\u0131 inceleyebilirsiniz. Bulgular, genellikle a\u015fa\u011f\u0131daki gibi detaylar\u0131 i\u00e7erir:<\/p>\n<ul>\n<li><strong>Zafiyet T\u00fcr\u00fc:<\/strong> SQL Injection, XSS, Hardcoded Credentials, G\u00fcvenli Olmayan Ba\u011f\u0131ml\u0131l\u0131k vb.<\/li>\n<li><strong>\u00d6nem Derecesi (Severity):<\/strong> Kritik, Y\u00fcksek, Orta, D\u00fc\u015f\u00fck. Bu, zafiyetin potansiyel etkisine g\u00f6re belirlenir.<\/li>\n<li><strong>Etkilenen Kaynak:<\/strong> Zafiyetin bulundu\u011fu depo, dosya yolu ve kod sat\u0131r\u0131.<\/li>\n<li><strong>D\u00fczeltme Ad\u0131mlar\u0131:<\/strong> Inspector, genellikle zafiyeti nas\u0131l giderece\u011finize dair somut \u00f6neriler sunar.<\/li>\n<li><strong>CWE ID:<\/strong> Ortak Zafiyet Numaralar\u0131 ve Etkileri (Common Weakness Enumeration) kimli\u011fi.<\/li>\n<\/ul>\n<div class=\"case-study\">\n<h3>Vaka Analizi: Bir Uygulama Deposu \u0130\u00e7in Kapsaml\u0131 G\u00fcvenlik Analizi<\/h3>\n<p>Hayali bir senaryo d\u00fc\u015f\u00fcnelim: Bir e-ticaret uygulamas\u0131n\u0131 geli\u015ftiren bir ekibiz ve uygulaman\u0131n Python tabanl\u0131 bir API'si ile bir React tabanl\u0131 \u00f6n y\u00fcz\u00fc var. T\u00fcm kodlar GitHub'da <code>e-commerce-app-backend<\/code> ve <code>e-commerce-app-frontend<\/code> depolar\u0131nda bar\u0131nd\u0131r\u0131l\u0131yor. Bu depolar\u0131 Amazon Inspector'a ba\u011flad\u0131k. \u0130lk tarama sonucunda a\u015fa\u011f\u0131daki gibi bulgular ald\u0131k:<\/p>\n<table border=\"1\" style=\"width:100%; border-collapse: collapse;\">\n<thead>\n<tr>\n<th>Zafiyet T\u00fcr\u00fc<\/th>\n<th>\u00d6nem Derecesi<\/th>\n<th>Depo<\/th>\n<th>Dosya Yolu<\/th>\n<th>Kod Sat\u0131r\u0131<\/th>\n<th>D\u00fczeltme \u00d6nerisi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>SQL Injection<\/td>\n<td>Kritik<\/td>\n<td>e-commerce-app-backend<\/td>\n<td><code>app\/routes.py<\/code><\/td>\n<td>125<\/td>\n<td>Prepared statement kullan\u0131n veya ORM sorgular\u0131n\u0131 parametrelendirin.<\/td>\n<\/tr>\n<tr>\n<td>Hardcoded API Key<\/td>\n<td>Y\u00fcksek<\/td>\n<td>e-commerce-app-backend<\/td>\n<td><code>config.py<\/code><\/td>\n<td>30<\/td>\n<td>Ortam de\u011fi\u015fkenleri veya AWS Secrets Manager kullan\u0131n.<\/td>\n<\/tr>\n<tr>\n<td>Cross-Site Scripting (XSS)<\/td>\n<td>Orta<\/td>\n<td>e-commerce-app-frontend<\/td>\n<td><code>src\/components\/ProductPage.js<\/code><\/td>\n<td>78<\/td>\n<td>Kullan\u0131c\u0131 girdisini \u00e7\u0131kt\u0131ya yazmadan \u00f6nce sanitizasyon yap\u0131n.<\/td>\n<\/tr>\n<tr>\n<td>Outdated Dependency (Python)<\/td>\n<td>Y\u00fcksek<\/td>\n<td>e-commerce-app-backend<\/td>\n<td><code>requirements.txt<\/code><\/td>\n<td>5<\/td>\n<td><code>flask-sqlalchemy<\/code> k\u00fct\u00fcphanesini en son g\u00fcvenli s\u00fcr\u00fcme g\u00fcncelleyin.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Bu bulgular, geli\u015ftirme ekibine do\u011frudan hangi kod sat\u0131rlar\u0131nda g\u00fcvenlik a\u00e7\u0131klar\u0131 oldu\u011funu g\u00f6stermi\u015ftir. \u00d6rne\u011fin, SQL Injection bulgusu, bir sald\u0131rgan\u0131n veritaban\u0131na istenmeyen sorgular g\u00f6ndermesine olanak tan\u0131yabilirdi. Hardcoded API Key ise hassas bir anahtar\u0131n herkese a\u00e7\u0131k depoda bulunmas\u0131 anlam\u0131na geliyordu. Ekip, bu bulgular\u0131 \u00f6nceliklendirerek (kritik ve y\u00fcksek \u00f6ncelikli olanlardan ba\u015flayarak) d\u00fczeltme \u00e7al\u0131\u015fmalar\u0131na ba\u015flad\u0131. Bu sayede, potansiyel bir veri ihlali veya yetkisiz eri\u015fim riski, hen\u00fcz uygulama \u00fcretime ge\u00e7meden engellenmi\u015f oldu. Inspector, bu s\u00fcreci h\u0131zland\u0131rarak insan hatas\u0131 riskini minimize etti.<\/p>\n<\/p><\/div>\n<div class=\"expert-tip\">\n        <strong>Uzman \u0130pucu: Otomatik Tarama Tetikleyicileri ve CI\/CD Entegrasyonu<\/strong><br \/>\n        En iyi pratik, kod her push edildi\u011finde veya bir pull\/merge request olu\u015fturuldu\u011funda Inspector taramas\u0131n\u0131 otomatikle\u015ftirmektir. Bunu AWS EventBridge kurallar\u0131 ve AWS Lambda fonksiyonlar\u0131 kullanarak yapabilirsiniz. GitHub Actions veya GitLab CI\/CD pipeline'\u0131n\u0131za Inspector tarama komutlar\u0131n\u0131 entegre ederek, g\u00fcvenlik taramas\u0131n\u0131 geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131z\u0131n do\u011fal bir par\u00e7as\u0131 haline getirebilirsiniz. Bu, g\u00fcvenlik zafiyetlerinin h\u0131zl\u0131 bir \u015fekilde tespit edilmesini ve d\u00fczeltilmesini sa\u011flar, \"Shift-Left\" g\u00fcvenlik felsefesini tam anlam\u0131yla hayata ge\u00e7irir.\n    <\/div>\n<p>Sonu\u00e7lar\u0131 analiz ederken, geli\u015ftiricilerin bulgular\u0131n ger\u00e7ekli\u011fini ve kritiklik seviyesini de\u011ferlendirmeleri \u00f6nemlidir. Bazen \"yanl\u0131\u015f pozitifler\" (false positives) ortaya \u00e7\u0131kabilir; bu durumda, Inspector'a bu bulgular\u0131n neden ge\u00e7erli olmad\u0131\u011f\u0131n\u0131 belirten geri bildirim sa\u011flayabilirsiniz. Bu, Inspector'\u0131n tarama algoritmalar\u0131n\u0131 zamanla daha do\u011fru hale getirmesine yard\u0131mc\u0131 olur ve gelecekteki taramalar\u0131n verimlili\u011fini art\u0131r\u0131r. G\u00fcvenlik taramalar\u0131, sadece sorunlar\u0131 tespit etmekle kalmay\u0131p, ayn\u0131 zamanda geli\u015ftiricilerin g\u00fcvenli kodlama pratiklerini \u00f6\u011frenmelerine ve s\u00fcrekli olarak becerilerini geli\u015ftirmelerine olanak tan\u0131r.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Bir Uygulama Deposu \u0130\u00e7in Kapsaml\u0131 G\u00fcvenlik Analizi<\/h2>\n<p>G\u00fcvenlik bulgular\u0131n\u0131n teorik a\u00e7\u0131klamalar\u0131 \u00f6nemlidir ancak bunlar\u0131n ger\u00e7ek bir uygulama ortam\u0131nda nas\u0131l ortaya \u00e7\u0131kt\u0131\u011f\u0131n\u0131 ve nas\u0131l ele al\u0131nd\u0131\u011f\u0131n\u0131 g\u00f6rmek, konuyu daha anla\u015f\u0131l\u0131r k\u0131lar. \u015eimdi, pop\u00fcler bir e-ticaret uygulamas\u0131n\u0131n geli\u015ftirme s\u00fcrecindeki bir senaryo \u00fczerinden Amazon Inspector'\u0131n kaynak kod tarama yeteneklerini daha derinlemesine inceleyelim. Bu senaryoda, ekip h\u0131zl\u0131 teslimata odaklan\u0131rken g\u00fcvenlik kontrollerini otomatikle\u015ftirmeyi hedefliyor.<\/p>\n<h3>Senaryo Detaylar\u0131: \"ShopSmart\" E-ticaret Uygulamas\u0131<\/h3>\n<p>ShopSmart, modern bir mikroservis mimarisine sahip bir e-ticaret platformudur. Ana bile\u015fenleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Frontend:<\/strong> React tabanl\u0131 tek sayfa uygulama (SPA), GitHub deposunda bar\u0131nd\u0131r\u0131l\u0131yor: <code>github.com\/shopsmart\/frontend-web<\/code><\/li>\n<li><strong>Backend API:<\/strong> Node.js ve Express.js ile geli\u015ftirilmi\u015f bir REST API, GitLab deposunda bar\u0131nd\u0131r\u0131l\u0131yor: <code>gitlab.com\/shopsmart\/backend-api<\/code><\/li>\n<li><strong>\u00d6deme Servisi:<\/strong> Python ve Flask ile geli\u015ftirilmi\u015f, ayr\u0131 bir GitLab deposunda: <code>gitlab.com\/shopsmart\/payment-service<\/code><\/li>\n<li><strong>Veritaban\u0131:<\/strong> PostgreSQL (AWS RDS \u00fczerinde bar\u0131nd\u0131r\u0131l\u0131yor)<\/li>\n<\/ul>\n<p>Geli\u015ftirme ekibi, DevSecOps prensiplerini benimsemeye karar verdi ve Amazon Inspector'\u0131 kod g\u00fcvenli\u011fi taramalar\u0131 i\u00e7in kullanmaya ba\u015flad\u0131. GitHub ve GitLab depolar\u0131 Inspector'a ba\u011fland\u0131 ve her kod push i\u015fleminde otomatik taramalar tetiklenecek \u015fekilde CI\/CD entegrasyonu yap\u0131ld\u0131.<\/p>\n<h3>Inspector Taramalar\u0131ndan Elde Edilen Bulgular ve \u00c7\u00f6z\u00fcmler<\/h3>\n<p>Bir hafta s\u00fcren geli\u015ftirme ve birka\u00e7 kod push'unun ard\u0131ndan, Amazon Inspector'dan \u00e7e\u015fitli kritik ve y\u00fcksek \u00f6nem dereceli bulgular gelmeye ba\u015flad\u0131. \u0130\u015fte baz\u0131 \u00f6nemli bulgular ve ekibin bunlar\u0131 nas\u0131l ele ald\u0131\u011f\u0131:<\/p>\n<h4>Bulgu 1: Hardcoded AWS Credentials (Backend API)<\/h4>\n<p><strong>Yer:<\/strong> <code>gitlab.com\/shopsmart\/backend-api<\/code> -> <code>src\/config\/aws.js<\/code><\/p>\n<p><strong>A\u00e7\u0131klama:<\/strong> Geli\u015ftiricilerden biri, S3 ile entegrasyon yaparken test amac\u0131yla AWS IAM kimlik bilgilerini (<code>AWS_ACCESS_KEY_ID<\/code> ve <code>AWS_SECRET_ACCESS_KEY<\/code>) do\u011frudan koda yazm\u0131\u015f ve bu kodu GitLab'a push etmi\u015fti.<\/p>\n<pre><code class=\"language-javascript\">\n\/\/ src\/config\/aws.js\nconst AWS_CONFIG = {\n  region: 'us-east-1',\n  accessKeyId: 'AKIAIOSFODNN7EXAMPLE', \/\/ Inspector buray\u0131 tespit etti\n  secretAccessKey: 'wJalrXUtnFEMI\/K7MDENG\/bPxRfiCYEXAMPLEKEY' \/\/ Inspector buray\u0131 tespit etti\n};\nmodule.exports = AWS_CONFIG;\n    <\/pre>\n<p><\/code><\/p>\n<p><strong>Inspector Bulgusu:<\/strong> Y\u00fcksek \u00f6nem dereceli \"Hardcoded Secrets\" bulgusu, dosya yolu ve sat\u0131r numaras\u0131 ile birlikte geldi. Inspector, bu t\u00fcr desenleri tan\u0131mak i\u00e7in geli\u015fmi\u015f regex ve makine \u00f6\u011frenimi modelleri kullan\u0131r.<\/p>\n<p><strong>Ekibin \u00c7\u00f6z\u00fcm\u00fc:<\/strong> Ekip, kimlik bilgilerini AWS Secrets Manager'a ta\u015f\u0131d\u0131. Kod, art\u0131k bu de\u011ferleri do\u011frudan okumak yerine, ortam de\u011fi\u015fkenleri veya IAM rol\u00fc arac\u0131l\u0131\u011f\u0131yla Secrets Manager'dan dinamik olarak \u00e7ekmek \u00fczere g\u00fcncellendi. CI\/CD pipeline'\u0131 da, secret'lar\u0131n \u00e7ekilmesi i\u00e7in IAM rol\u00fcn\u00fc kullanacak \u015fekilde yap\u0131land\u0131r\u0131ld\u0131.<\/p>\n<h4>Bulgu 2: G\u00fcvenli Olmayan Ba\u011f\u0131ml\u0131l\u0131k (Frontend)<\/h4>\n<p><strong>Yer:<\/strong> <code>github.com\/shopsmart\/frontend-web<\/code> -> <code>package.json<\/code><\/p>\n<p><strong>A\u00e7\u0131klama:<\/strong> Frontend ekibi, eski bir pop-up k\u00fct\u00fcphanesi olan <code>old-popup-lib@1.0.0<\/code>'\u0131 kullan\u0131yordu. Bu k\u00fct\u00fcphanede, bir DOM tabanl\u0131 XSS zafiyeti (CVE-202X-XXXX) oldu\u011fu biliniyordu.<\/p>\n<pre><code class=\"language-json\">\n\/\/ package.json\n{\n  \"name\": \"frontend-web\",\n  \"version\": \"1.0.0\",\n  \"dependencies\": {\n    \"react\": \"^17.0.2\",\n    \"react-dom\": \"^17.0.2\",\n    \"old-popup-lib\": \"1.0.0\" \/\/ Inspector buradaki zafiyeti tespit etti\n  }\n}\n    <\/pre>\n<p><\/code><\/p>\n<p><strong>Inspector Bulgusu:<\/strong> Y\u00fcksek \u00f6nem dereceli \"Outdated\/Vulnerable Dependency\" bulgusu, ilgili CVE numaras\u0131 ve k\u00fct\u00fcphane ad\u0131 ile geldi. Inspector, bilinen zafiyet veritabanlar\u0131n\u0131 (\u00f6rne\u011fin NVD) kullanarak ba\u011f\u0131ml\u0131l\u0131klar\u0131 kontrol eder.<\/p>\n<p><strong>Ekibin \u00c7\u00f6z\u00fcm\u00fc:<\/strong> Ekip, k\u00fct\u00fcphaneyi daha yeni ve g\u00fcvenli bir alternatif olan <code>modern-modal-component<\/code> ile de\u011fi\u015ftirdi. De\u011fi\u015fiklik sonras\u0131 yeni bir tarama yap\u0131ld\u0131 ve bulgu kayboldu.<\/p>\n<h4>Bulgu 3: SQL Injection Potansiyeli (Payment Service)<\/h4>\n<p><strong>Yer:<\/strong> <code>gitlab.com\/shopsmart\/payment-service<\/code> -> <code>app\/db_utils.py<\/code><\/p>\n<p><strong>A\u00e7\u0131klama:<\/strong> \u00d6deme servisi, kullan\u0131c\u0131dan al\u0131nan bir <code>transaction_id<\/code> ile do\u011frudan bir SQL sorgusu olu\u015fturuyordu. Girdi sanitizasyonu veya parametre ba\u011flama yap\u0131lmam\u0131\u015ft\u0131.<\/p>\n<pre><code class=\"language-python\">\n# app\/db_utils.py\ndef get_transaction_details(transaction_id):\n    conn = get_db_connection()\n    cursor = conn.cursor()\n    # G\u00fcvenlik a\u00e7\u0131\u011f\u0131 potansiyeli: SQL Injection\n    query = f\"SELECT * FROM transactions WHERE id = '{transaction_id}'\"\n    cursor.execute(query)\n    result = cursor.fetchone()\n    conn.close()\n    return result\n    <\/pre>\n<p><\/code><\/p>\n<p><strong>Inspector Bulgusu:<\/strong> Kritik \u00f6nem dereceli \"SQL Injection\" bulgusu. A\u00e7\u0131klamada, kullan\u0131c\u0131n\u0131n k\u00f6t\u00fc niyetli girdilerle veritaban\u0131 sorgusunu manip\u00fcle edebilece\u011fi belirtildi.<\/p>\n<p><strong>Ekibin \u00c7\u00f6z\u00fcm\u00fc:<\/strong> Geli\u015ftirici, sorguyu parametrelendirilmi\u015f bir ifade kullanarak g\u00fcncelledi. Bu, kullan\u0131c\u0131 girdisinin SQL kodu olarak de\u011fil, bir de\u011fer olarak i\u015flenmesini sa\u011flar.<\/p>\n<pre><code class=\"language-python\">\n# app\/db_utils.py - D\u00fczeltilmi\u015f versiyon\ndef get_transaction_details(transaction_id):\n    conn = get_db_connection()\n    cursor = conn.cursor()\n    # G\u00fcvenli: Parametrelendirilmi\u015f sorgu\n    query = \"SELECT * FROM transactions WHERE id = %s\"\n    cursor.execute(query, (transaction_id,))\n    result = cursor.fetchone()\n    conn.close()\n    return result\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu senaryo, Amazon Inspector'\u0131n sadece basit hatalar\u0131 de\u011fil, ayn\u0131 zamanda ciddi g\u00fcvenlik zafiyetlerini de nas\u0131l tespit edebilece\u011fini ve geli\u015ftirme s\u00fcrecinin erken a\u015famalar\u0131nda bunlar\u0131 d\u00fczeltmenin ne kadar kritik oldu\u011funu g\u00f6stermektedir. Otomatik taramalar, geli\u015ftiricilerin g\u00fcvenlik konusunda daha bilin\u00e7li olmas\u0131na ve g\u00fcvenli kodlama pratiklerini do\u011fal bir \u015fekilde benimsemesine yard\u0131mc\u0131 olur.<\/p>\n<h2>\u0130leri D\u00fczey Kullan\u0131m: \u00d6zel Kurallar, Bildirimler ve Otomasyon<\/h2>\n<p>Amazon Inspector, varsay\u0131lan tarama kurallar\u0131yla bile etkili bir g\u00fcvenlik sa\u011flar, ancak daha deneyimli kullan\u0131c\u0131lar i\u00e7in yeteneklerini daha da geni\u015fletecek ileri d\u00fczey konfig\u00fcrasyon ve otomasyon se\u00e7enekleri mevcuttur. Bu b\u00f6l\u00fcmde, Inspector'\u0131n esnekli\u011fini art\u0131rmak ve g\u00fcvenlik i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 optimize etmek i\u00e7in neler yapabilece\u011finizi ke\u015ffedece\u011fiz.<\/p>\n<h3>\u00d6zel Kurallar ve Ayarlar<\/h3>\n<p>Amazon Inspector'\u0131n kaynak kod taramas\u0131 i\u00e7in do\u011frudan \"\u00f6zel kural\" yazma yetene\u011fi hen\u00fcz tam olarak mevcut olmasa da, bulgular\u0131 filtreleme ve \u00f6nceliklendirme yetenekleri olduk\u00e7a geli\u015fmi\u015ftir. \u015eunlar\u0131 yapabilirsiniz:<\/p>\n<ul>\n<li><strong>Bulgu Filtreleme:<\/strong> AWS Konsolu \u00fczerinden bulgular\u0131 \u00f6nem derecesi, zafiyet t\u00fcr\u00fc, CVE ID, etkilenen depo veya dosya yolu gibi bir\u00e7ok kritere g\u00f6re filtreleyebilirsiniz. Bu, \u00f6zellikle b\u00fcy\u00fck projelerde kritik bulgulara odaklanman\u0131z\u0131 sa\u011flar.<\/li>\n<li><strong>Bast\u0131r\u0131lm\u0131\u015f Bulgular (Suppressed Findings):<\/strong> Belirli bir bulgunun yanl\u0131\u015f pozitif oldu\u011funu veya belirli bir ba\u011flamda kabul edilebilir bir risk oldu\u011funu d\u00fc\u015f\u00fcn\u00fcyorsan\u0131z, Inspector'da bu bulguyu bast\u0131rabilirsiniz (suppress). Bu, gelecekteki taramalarda ayn\u0131 bulgunun tekrar g\u00f6r\u00fcnmesini engeller ve raporlar\u0131n\u0131z\u0131 daha anlaml\u0131 hale getirir. Bast\u0131rma kurallar\u0131, belirli bir zafiyet ID'sine, dosya yoluna veya koda uygulanabilir.<\/li>\n<\/ul>\n<h3>Geli\u015fmi\u015f Bildirim Sistemleri<\/h3>\n<p>G\u00fcvenlik bulgular\u0131n\u0131n an\u0131nda geli\u015ftiricilere veya g\u00fcvenlik ekiplerine ula\u015fmas\u0131, h\u0131zl\u0131 d\u00fczeltme i\u00e7in hayati \u00f6neme sahiptir. Amazon Inspector, bulgular\u0131n\u0131 AWS EventBridge'e g\u00f6nderir ve bu da size esnek bildirim se\u00e7enekleri sunar:<\/p>\n<ol>\n<li><strong>AWS SNS ile E-posta\/SMS:<\/strong> En basit y\u00f6ntemlerden biri, yeni bir kritik bulgu olu\u015ftu\u011funda bir EventBridge kural\u0131 tetikleyerek bir SNS (Simple Notification Service) topici arac\u0131l\u0131\u011f\u0131yla ilgili ki\u015filere e-posta veya SMS g\u00f6ndermektir.<\/li>\n<li><strong>AWS Lambda ile \u00d6zel Bildirimler:<\/strong> Daha geli\u015fmi\u015f senaryolarda, EventBridge'den tetiklenen bir Lambda fonksiyonu kullanabilirsiniz. Bu Lambda fonksiyonu, bulguyu parse edebilir ve a\u015fa\u011f\u0131daki gibi eylemler ger\u00e7ekle\u015ftirebilir:\n<ul>\n<li>Slack veya Microsoft Teams gibi i\u015fbirli\u011fi ara\u00e7lar\u0131na bildirim g\u00f6nderme.<\/li>\n<li>Jira, ServiceNow gibi IT servis y\u00f6netimi (ITSM) ara\u00e7lar\u0131nda otomatik olarak g\u00f6rev veya ticket olu\u015fturma.<\/li>\n<li>Geli\u015ftiricinin depoyu push etti\u011fi ki\u015fiye \u00f6zel bir geri bildirim g\u00f6nderme.<\/li>\n<\/ul>\n<pre><code class=\"language-python\">\n# Lambda fonksiyonu \u00f6rne\u011fi (Python) - Slack'e bildirim g\u00f6ndermek i\u00e7in\nimport json\nimport os\nimport requests\n\ndef lambda_handler(event, context):\n    print(f\"Gelen olay: {json.dumps(event)}\")\n    \n    # Inspector bulgular\u0131n\u0131 EventBridge'den \u00e7ekme\n    findings = event.get('detail', {}).get('findings', [])\n    \n    if not findings:\n        return {'statusCode': 200, 'body': 'Bulgu bulunamad\u0131.'}\n        \n    for finding in findings:\n        severity = finding.get('severity', 'UNKNOWN')\n        title = finding.get('title', 'Ba\u015fl\u0131k Yok')\n        description = finding.get('description', 'A\u00e7\u0131klama Yok')\n        resource = finding.get('resources', [])[0].get('id') if finding.get('resources') else 'Bilinmiyor'\n        \n        # Slack webhook URL'inizi ortam de\u011fi\u015fkenlerinden al\u0131n\n        slack_webhook_url = os.environ.get('SLACK_WEBHOOK_URL')\n        if not slack_webhook_url:\n            print(\"SLACK_WEBHOOK_URL ortam de\u011fi\u015fkeni ayarlanmad\u0131.\")\n            continue\n            \n        message = {\n            \"text\": f\"*Amazon Inspector Yeni Bulgu: {title}*\\n\"\n                    f\"\u00d6nem Derecesi: *{severity}*\\n\"\n                    f\"Kaynak: <code>{resource}<\/code>\\n\"\n                    f\"A\u00e7\u0131klama: {description}\\n\"\n                    f\"Daha Fazla Bilgi: {finding.get('findingArn')}\" # Inspector konsol linki\n        }\n        \n        try:\n            response = requests.post(slack_webhook_url, json=message)\n            response.raise_for_status()\n            print(f\"Slack bildirimi ba\u015far\u0131yla g\u00f6nderildi: {response.status_code}\")\n        except requests.exceptions.RequestException as e:\n            print(f\"Slack bildirimi g\u00f6nderilirken hata olu\u015ftu: {e}\")\n            \n    return {'statusCode': 200, 'body': 'Bildirimler i\u015flendi.'}\n            <\/pre>\n<p><\/code>\n        <\/li>\n<\/ol>\n<h3>CI\/CD Pipeline Entegrasyonu ve Otomasyon<\/h3>\n<p>Ger\u00e7ek DevSecOps i\u00e7in Inspector taramalar\u0131n\u0131 CI\/CD pipeline'\u0131n\u0131za tam olarak entegre etmek gerekir. Bu, kod daha ana dalla birle\u015fmeden g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n tespit edilmesini sa\u011flar.<\/p>\n<ul>\n<li><strong>GitHub Actions \/ GitLab CI\/CD:<\/strong> Her pull request veya merge request a\u00e7\u0131ld\u0131\u011f\u0131nda Inspector taramas\u0131n\u0131 tetikleyen ve tarama sonu\u00e7lar\u0131na g\u00f6re pipeline'\u0131 durduran (e\u011fer kritik bulgular varsa) ad\u0131mlar ekleyebilirsiniz.<\/li>\n<li><strong>Pre-commit Hook'lar\u0131:<\/strong> Geli\u015ftiricilerin yerel ortamlar\u0131nda bile temel g\u00fcvenlik kontrollerini yapmas\u0131n\u0131 sa\u011flamak i\u00e7in pre-commit hook'lar kullanabilirsiniz. Bu, kodun depoya gitmeden \u00f6nce bile ilk g\u00fcvenlik katman\u0131n\u0131 olu\u015fturur.<\/li>\n<li><strong>G\u00fcvenlik Olarak Kod (Security as Code):<\/strong> Inspector konfig\u00fcrasyonlar\u0131n\u0131z\u0131 (depo ba\u011flant\u0131lar\u0131, tarama ayarlar\u0131 vb.) AWS CloudFormation veya Terraform gibi ara\u00e7larla y\u00f6neterek, g\u00fcvenlik altyap\u0131n\u0131z\u0131 versiyonlayabilir ve otomatikle\u015ftirebilirsiniz.<\/li>\n<\/ul>\n<div class=\"expert-tip\">\n        <strong>Uzman \u0130pucu: Mobile-Friendly HTML ve Duyarl\u0131 Tasar\u0131m<\/strong><br \/>\n        Web tabanl\u0131 raporlama veya dashboard'lar olu\u015ftururken, bulgular\u0131n mobil cihazlarda da okunabilir olmas\u0131n\u0131 sa\u011flamak \u00f6nemlidir. CSS media query'lerini kullanarak farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flayan duyarl\u0131 tasar\u0131mlar yap\u0131n. \u00d6rne\u011fin, k\u00fc\u00e7\u00fck ekranlarda tablolar\u0131 daha dar g\u00f6sterin veya \u00f6nemli bilgileri \u00f6n plana \u00e7\u0131kar\u0131n.<\/p>\n<style>\n            .responsive-table {\n                width: 100%;\n                border-collapse: collapse;\n            }\n            .responsive-table th, .responsive-table td {\n                padding: 8px;\n                text-align: left;\n                border-bottom: 1px solid #ddd;\n            }\n            \/* Mobil cihazlar i\u00e7in stil *\/\n            @media screen and (max-width: 600px) {\n                .responsive-table thead {\n                    display: none; \/* Ba\u015fl\u0131klar\u0131 gizle *\/\n                }\n                .responsive-table, .responsive-table tbody, .responsive-table tr, .responsive-table td {\n                    display: block; \/* Her sat\u0131r\u0131 ve h\u00fccreyi blok olarak g\u00f6ster *\/\n                    width: 100%;\n                }\n                .responsive-table tr {\n                    margin-bottom: 15px;\n                    border: 1px solid #ddd;\n                    display: block;\n                }\n                .responsive-table td {\n                    text-align: right;\n                    padding-left: 50%; \/* \u0130\u00e7eri\u011fi sa\u011fa yasla *\/\n                    position: relative;\n                }\n                .responsive-table td::before {\n                    content: attr(data-label); \/* data-label niteli\u011fini kullan *\/\n                    position: absolute;\n                    left: 6px;\n                    width: 45%;\n                    padding-right: 10px;\n                    white-space: nowrap;\n                    text-align: left;\n                    font-weight: bold;\n                }\n            }\n        <\/style>\n<p>Yukar\u0131daki CSS \u00f6rne\u011fi, tablolar\u0131n k\u00fc\u00e7\u00fck ekranlarda daha okunabilir hale gelmesini sa\u011flar. Benzer \u015fekilde, g\u00fcvenlik raporlar\u0131n\u0131z\u0131 sunarken de kullan\u0131c\u0131 deneyimini g\u00f6z \u00f6n\u00fcnde bulundurun.<\/p>\n<\/p><\/div>\n<p>Bu ileri d\u00fczey kullan\u0131m senaryolar\u0131, Amazon Inspector'\u0131n sadece bir tarama arac\u0131 olmaktan \u00f6te, DevSecOps s\u00fcre\u00e7lerinin merkezi bir bile\u015feni haline gelebilece\u011fini g\u00f6stermektedir. Do\u011fru entegrasyon ve otomasyon ile g\u00fcvenlik, geli\u015ftirme h\u0131z\u0131n\u0131 yava\u015flatmadan, s\u00fcrekli ve proaktif bir \u015fekilde sa\u011flanabilir.<\/p>\n<h2>Kod G\u00fcvenli\u011fi Durumunuzu S\u00fcrekli \u0130yile\u015ftirme Yollar\u0131<\/h2>\n<p>Yaz\u0131l\u0131m d\u00fcnyas\u0131nda g\u00fcvenlik, tek seferlik bir proje de\u011fil, s\u00fcrekli bir yolculuktur. Amazon Inspector gibi ara\u00e7lar, bu yolculukta bize g\u00fc\u00e7l\u00fc bir ba\u015flang\u0131\u00e7 noktas\u0131 sunar, ancak ger\u00e7ek ve s\u00fcrd\u00fcr\u00fclebilir kod g\u00fcvenli\u011fi i\u00e7in s\u00fcrekli iyile\u015ftirme zihniyetini benimsemek esast\u0131r. G\u00fcvenlik duru\u015fumuzu kal\u0131c\u0131 olarak g\u00fc\u00e7lendirmek i\u00e7in atabilece\u011fimiz baz\u0131 ad\u0131mlar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Shift-Left G\u00fcvenlik Yakla\u015f\u0131m\u0131n\u0131 Tam Anlam\u0131yla Benimseyin:<\/strong> G\u00fcvenli\u011fi geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn en erken a\u015famalar\u0131na entegre etmek (tasar\u0131m ve kodlama a\u015famalar\u0131), zafiyetlerin \u00fcretim ortam\u0131na ula\u015fmadan tespit edilip d\u00fczeltilmesini sa\u011flar. Bu, hem maliyeti d\u00fc\u015f\u00fcr\u00fcr hem de d\u00fczeltme s\u00fcresini k\u0131salt\u0131r. Amazon Inspector'\u0131n kaynak kod tarama yetenekleri tam da bu amaca hizmet eder.<\/li>\n<li><strong>Geli\u015ftirici E\u011fitimi ve Bilin\u00e7lendirme:<\/strong> En iyi g\u00fcvenlik ara\u00e7lar\u0131 bile, onlar\u0131 kullanan insanlar\u0131n bilgi ve becerileri kadar etkilidir. Geli\u015ftiricilere g\u00fcvenli kodlama pratikleri, OWASP Top 10 zafiyetleri ve Inspector bulgular\u0131n\u0131 nas\u0131l yorumlayacaklar\u0131 konusunda d\u00fczenli e\u011fitimler verilmelidir. G\u00fcvenlik, \"birilerinin i\u015fi\" olmaktan \u00e7\u0131k\u0131p, \"herkesin i\u015fi\" haline gelmelidir.<\/li>\n<li><strong>Otomatik G\u00fcvenlik Testlerini CI\/CD Pipeline'\u0131na Entegre Edin:<\/strong> Her kod de\u011fi\u015fikli\u011finde (commit, pull request) otomatik g\u00fcvenlik taramalar\u0131n\u0131n (SAST, DAST, SCA) \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flay\u0131n. Bu, g\u00fcvenlik sorunlar\u0131n\u0131n h\u0131zl\u0131 bir \u015fekilde tespit edilip \u00e7\u00f6z\u00fclmesini garanti eder ve geli\u015ftirme s\u00fcrecine entegre bir geri bildirim d\u00f6ng\u00fcs\u00fc olu\u015fturur. E\u011fer kritik bir zafiyet tespit edilirse, pipeline'\u0131n otomatik olarak durdurulmas\u0131, k\u00f6t\u00fc kodun \u00fcretime gitmesini engellemenin etkili bir yoludur.<\/li>\n<li><strong>G\u00fcvenlik Metriklerini ve Raporlamay\u0131 Takip Edin:<\/strong> Tespit edilen zafiyet say\u0131s\u0131, d\u00fczeltme s\u00fcresi (MTTR), kritik zafiyetlerin oran\u0131 gibi g\u00fcvenlik metriklerini d\u00fczenli olarak takip edin. Bu metrikler, g\u00fcvenlik program\u0131n\u0131z\u0131n etkinli\u011fini \u00f6l\u00e7menize ve iyile\u015ftirme alanlar\u0131n\u0131 belirlemenize yard\u0131mc\u0131 olur. Inspector'\u0131n raporlama ve entegrasyon yetenekleri (Security Hub gibi) bu konuda size b\u00fcy\u00fck destek sa\u011flar.<\/li>\n<li><strong>A\u00e7\u0131k Kaynak Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 S\u00fcrekli Denetleyin:<\/strong> Modern uygulamalar\u0131n \u00e7o\u011fu, a\u00e7\u0131k kaynak k\u00fct\u00fcphaneleri kullan\u0131r. Bu k\u00fct\u00fcphanelerdeki zafiyetler, uygulaman\u0131z\u0131 do\u011frudan etkileyebilir. Inspector, bu t\u00fcr ba\u011f\u0131ml\u0131l\u0131k zafiyetlerini tespit edebilir, ancak ek olarak yaz\u0131l\u0131m bile\u015fen analizi (SCA) ara\u00e7lar\u0131 da kullanmak faydal\u0131 olacakt\u0131r. Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00fcncelleyin ve bilinen zafiyetlere kar\u015f\u0131 kontrol edin.<\/li>\n<li><strong>G\u00fcvenli\u011fi Kod Olarak Y\u00f6netin (Security as Code):<\/strong> Inspector konfig\u00fcrasyonlar\u0131, tarama kurallar\u0131 ve bildirim mekanizmalar\u0131 gibi g\u00fcvenlik ayarlar\u0131n\u0131 kod olarak (CloudFormation, Terraform) y\u00f6netin. Bu, g\u00fcvenlik altyap\u0131n\u0131z\u0131n versiyonlanabilir, tekrar kullan\u0131labilir ve tutarl\u0131 olmas\u0131n\u0131 sa\u011flar. G\u00fcvenlik politikalar\u0131n\u0131z\u0131n otomasyonu, insan hatas\u0131 riskini azalt\u0131r.<\/li>\n<li><strong>Penetrasyon Testleri ve Bug Bounty Programlar\u0131:<\/strong> Otomatik ara\u00e7lar ne kadar geli\u015fmi\u015f olursa olsun, insan fakt\u00f6r\u00fcn\u00fcn ve yarat\u0131c\u0131 d\u00fc\u015f\u00fcncenin yerini tutamaz. D\u00fczenli penetrasyon testleri ve\/veya bir bug bounty program\u0131 y\u00fcr\u00fctmek, otomatik taramalar\u0131n g\u00f6z\u00fcnden ka\u00e7abilecek daha karma\u015f\u0131k zafiyetleri tespit etmenize yard\u0131mc\u0131 olur.<\/li>\n<\/ul>\n<p>Sonu\u00e7 olarak, Amazon Inspector gibi ara\u00e7lar, kod g\u00fcvenli\u011fi yolculu\u011funuzda size g\u00fc\u00e7l\u00fc bir m\u00fcttefik olabilir. Ancak as\u0131l g\u00fc\u00e7, bu ara\u00e7lar\u0131 bir stratejinin par\u00e7as\u0131 olarak kullanmak, geli\u015ftirme ekibinizi e\u011fitmek ve g\u00fcvenlik pratiklerini geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fcne derinlemesine entegre etmektir. S\u00fcrekli \u00f6\u011frenme ve adaptasyon, de\u011fi\u015fen tehdit ortam\u0131nda ayakta kalman\u0131n tek yoludur.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<h3>1. Amazon Inspector kaynak kod taramas\u0131 hangi programlama dillerini destekler?<\/h3>\n<p>Amazon Inspector, Python, Java, JavaScript, TypeScript, Ruby, Go, C# gibi pop\u00fcler programlama dillerini ve bu dillerin kulland\u0131\u011f\u0131 k\u00fct\u00fcphaneleri (\u00f6rne\u011fin Node.js i\u00e7in npm, Python i\u00e7in pip ba\u011f\u0131ml\u0131l\u0131klar\u0131) destekler. Desteklenen diller ve \u00e7er\u00e7eveler listesi zamanla geni\u015fleyebilir, bu nedenle en g\u00fcncel bilgiler i\u00e7in AWS belgelerini kontrol etmek en iyisidir.<\/p>\n<h3>2. Kaynak kod taramalar\u0131 ne kadar s\u00fcrer ve tarama s\u0131kl\u0131\u011f\u0131 nas\u0131l ayarlan\u0131r?<\/h3>\n<p>Tarama s\u00fcresi, kod taban\u0131n\u0131n b\u00fcy\u00fckl\u00fc\u011f\u00fcne, karma\u015f\u0131kl\u0131\u011f\u0131na ve depo i\u00e7eri\u011fine (dosya say\u0131s\u0131, sat\u0131r say\u0131s\u0131) ba\u011fl\u0131 olarak de\u011fi\u015fir. Genellikle birka\u00e7 dakikadan birka\u00e7 saate kadar s\u00fcrebilir. Tarama s\u0131kl\u0131\u011f\u0131n\u0131, depo ba\u011flant\u0131s\u0131 yaparken veya CI\/CD pipeline'\u0131n\u0131za entegre ederken ayarlayabilirsiniz. Genellikle her kod push'unda veya belirli bir zaman aral\u0131\u011f\u0131nda (g\u00fcnl\u00fck\/haftal\u0131k) tarama yapmak en iyi pratiktir.<\/p>\n<h3>3. Yanl\u0131\u015f pozitifler (false positives) nas\u0131l y\u00f6netilir ve ne yapmal\u0131y\u0131m?<\/h3>\n<p>Yanl\u0131\u015f pozitifler, otomatik g\u00fcvenlik tarama ara\u00e7lar\u0131nda yayg\u0131n bir durumdur. Amazon Inspector'da bir bulgunun yanl\u0131\u015f pozitif oldu\u011funu d\u00fc\u015f\u00fcn\u00fcyorsan\u0131z, Inspector konsolundan bu bulguyu \"bast\u0131rabilirsiniz\" (suppress). Bast\u0131rma kurallar\u0131, belirli bir zafiyet ID'sine, dosya yoluna veya koda uygulanabilir. Bu, ayn\u0131 bulgunun gelecekteki taramalarda tekrar raporlanmas\u0131n\u0131 engeller ve ger\u00e7ek risklere odaklanman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h3>4. Amazon Inspector'\u0131n kaynak kod tarama \u00f6zelli\u011fi i\u00e7in fiyatland\u0131rma nas\u0131l i\u015fler?<\/h3>\n<p>Amazon Inspector'\u0131n fiyatland\u0131rmas\u0131, tarad\u0131\u011f\u0131n\u0131z kaynak kodu miktar\u0131n\u0131n (genellikle ayl\u0131k sat\u0131r say\u0131s\u0131 veya depo ba\u015f\u0131na) ve tarama s\u0131kl\u0131\u011f\u0131n\u0131n bir kombinasyonuna dayan\u0131r. \u0130lk kullan\u0131m genellikle \u00fccretsiz katman i\u00e7erir. Detayl\u0131 ve g\u00fcncel fiyatland\u0131rma bilgileri i\u00e7in do\u011frudan AWS Inspector fiyatland\u0131rma sayfas\u0131n\u0131 ziyaret etmeniz \u00f6nerilir, \u00e7\u00fcnk\u00fc fiyatland\u0131rma modelleri de\u011fi\u015febilir.<\/p>\n<h3>5. GitLab Self-Managed \u00f6rnekleri de Amazon Inspector ile entegre edilebilir mi?<\/h3>\n<p>Evet, Amazon Inspector genellikle GitLab.com'un yan\u0131 s\u0131ra GitLab Self-Managed \u00f6rneklerini de destekler. Ancak Self-Managed entegrasyonu i\u00e7in, Inspector'\u0131n GitLab \u00f6rne\u011finize eri\u015febilmesi i\u00e7in a\u011f yap\u0131land\u0131rmalar\u0131 (\u00f6rne\u011fin, VPC'ler aras\u0131 ba\u011flant\u0131 veya t\u00fcnelleme) ve kimlik do\u011frulama mekanizmalar\u0131 (\u00f6rne\u011fin, \u00f6zel eri\u015fim jetonlar\u0131 veya OAuth yap\u0131land\u0131rmas\u0131) gibi ek ad\u0131mlar gerekebilir. Bu t\u00fcr bir entegrasyon, genellikle daha detayl\u0131 bir planlama ve yap\u0131land\u0131rma gerektirir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r&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":[1401],"tags":[],"class_list":{"0":"post-31863","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-git","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>GitLab &amp; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme<\/title>\n<meta name=\"description\" content=\"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector&#039;a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\" \/>\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\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitLab &amp; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme\" \/>\n<meta property=\"og:description\" content=\"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector&#039;a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-14T21:31:22+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=\"27 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"GitLab &#038; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme\",\"datePublished\":\"2025-10-14T21:31:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\"},\"wordCount\":4963,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Git\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\",\"name\":\"GitLab & GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-14T21:31:22+00:00\",\"description\":\"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector'a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitLab &#038; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme\"}]},{\"@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":"GitLab & GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme","description":"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector'a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","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\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/","og_locale":"tr_TR","og_type":"article","og_title":"GitLab & GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme","og_description":"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector'a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-14T21:31:22+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"27 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"GitLab &#038; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme","datePublished":"2025-10-14T21:31:22+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/"},"wordCount":4963,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Git"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/","url":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/","name":"GitLab & GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-14T21:31:22+00:00","description":"Yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kod g\u00fcvenli\u011fi kritik bir \u00f6neme sahiptir. G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen tehdit ortam\u0131nda, geli\u015ftiricilerin yazd\u0131\u011f\u0131 her sat\u0131r kodun potansiyel zafiyetler bar\u0131nd\u0131rabilece\u011fi g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu konuya yeterince odaklanmak hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu makalede, pop\u00fcler kaynak kod y\u00f6netim platformlar\u0131 olan GitLab ve GitHub depolar\u0131n\u0131 Amazon Inspector'a ba\u011flayarak kod taban\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 nas\u0131l tespit edece\u011finizi ve DevSecOps prensiplerini uygulayarak g\u00fcvenlik duru\u015funuzu nas\u0131l g\u00fc\u00e7lendirece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gitlab-github-kod-guvenligi-amazon-inspector-ile-derinlemesine-inceleme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GitLab &#038; GitHub Kod G\u00fcvenli\u011fi: Amazon Inspector ile Derinlemesine \u0130nceleme"}]},{"@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\/31863","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=31863"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31863\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}