[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:security\u002Fds-secrets-pipeline-management":4,"config":232},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":130,"samples":147},"security","Güvenlik","","ds-secrets-pipeline-management","Ds Secrets Pipeline Management","tr",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127],{"key":19,"name":20,"count":11},"as-access-control-idor","As Access Control Idor",{"key":22,"name":23,"count":11},"as-api-security","As Api Security",{"key":25,"name":26,"count":11},"as-authentication-session","As Authentication Session",{"key":28,"name":29,"count":11},"as-crypto-implementation-pitfalls","As Crypto Implementation Pitfalls",{"key":31,"name":32,"count":11},"as-injection-input-validation","As Injection Input Validation",{"key":34,"name":35,"count":11},"as-secure-sdlc-sast-dast","As Secure Sdlc Sast Dast",{"key":37,"name":38,"count":11},"bt-crisis-communication-management","Bt Crisis Communication Management",{"key":40,"name":41,"count":11},"bt-detection-engineering-tuning","Bt Detection Engineering Tuning",{"key":43,"name":44,"count":11},"bt-digital-forensics-fundamentals","Bt Digital Forensics Fundamentals",{"key":46,"name":47,"count":11},"bt-incident-triage-classification","Bt Incident Triage Classification",{"key":49,"name":50,"count":11},"bt-ir-playbook-execution","Bt Ir Playbook Execution",{"key":52,"name":53,"count":11},"bt-threat-intelligence-application","Bt Threat Intelligence Application",{"key":55,"name":56,"count":11},"cse-container-workload-security","Cse Container Workload Security",{"key":58,"name":59,"count":11},"cse-cspm-misconfiguration","Cse Cspm Misconfiguration",{"key":61,"name":62,"count":11},"cse-data-protection-governance","Cse Data Protection Governance",{"key":64,"name":65,"count":11},"cse-detection-incident-response","Cse Detection Incident Response",{"key":67,"name":68,"count":11},"cse-iam-privilege-escalation","Cse Iam Privilege Escalation",{"key":70,"name":71,"count":11},"cse-network-perimeter-zero-trust","Cse Network Perimeter Zero Trust",{"key":73,"name":74,"count":11},"ds-iac-policy-as-code","Ds Iac Policy As Code",{"key":76,"name":77,"count":11},"ds-pipeline-security-gates","Ds Pipeline Security Gates",{"key":8,"name":9,"count":11},{"key":80,"name":81,"count":11},"ds-security-metrics-blameless-culture","Ds Security Metrics Blameless Culture",{"key":83,"name":84,"count":11},"ds-shift-left-security-culture","Ds Shift Left Security Culture",{"key":86,"name":87,"count":11},"ds-software-supply-chain-pipeline","Ds Software Supply Chain Pipeline",{"key":89,"name":90,"count":11},"pt-legal-ethical-boundaries","Pt Legal Ethical Boundaries",{"key":92,"name":93,"count":11},"pt-methodology-phases","Pt Methodology Phases",{"key":95,"name":96,"count":11},"pt-red-team-engagement-management","Pt Red Team Engagement Management",{"key":98,"name":99,"count":11},"pt-reporting-remediation-prioritization","Pt Reporting Remediation Prioritization",{"key":101,"name":102,"count":11},"pt-scoping-rules-of-engagement","Pt Scoping Rules Of Engagement",{"key":104,"name":105,"count":11},"pt-vulnerability-assessment-vs-pentest","Pt Vulnerability Assessment Vs Pentest",{"key":107,"name":108,"count":11},"security-authn-authz","Security Authn Authz",{"key":110,"name":111,"count":11},"security-cloud-infra-security","Security Cloud Infra Security",{"key":113,"name":114,"count":11},"security-compliance-risk","Security Compliance Risk",{"key":116,"name":117,"count":11},"security-cryptography-basics","Security Cryptography Basics",{"key":119,"name":120,"count":11},"security-incident-response","Security Incident Response",{"key":122,"name":123,"count":11},"security-network-security","Security Network Security",{"key":125,"name":126,"count":11},"security-secure-sdlc","Security Secure Sdlc",{"key":128,"name":129,"count":11},"security-web-vulnerabilities","Security Web Vulnerabilities",[131,135,138,141,144],{"key":132,"name":133,"count":134},"appsec","AppSec",450,{"key":136,"name":137,"count":134},"blue-team-incident","Blue Team \u002F Incident",{"key":139,"name":140,"count":134},"cloud-security","Cloud Security",{"key":142,"name":143,"count":134},"devsecops","DevSecOps",{"key":145,"name":146,"count":134},"offensive-pentest","Offensive \u002F Pentest",[148,166,179,192,206,219],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":157,"explanation":165},"019fab8f-ce1b-76b3-83c4-e934ab68aed4",1,"Bir veritabanı parolasını doğrudan bir CI\u002FCD pipeline YAML dosyasının içine gömmek neden kötü bir uygulama kabul edilir?",[153,156,159,162],{"key":154,"text":155},"a","Pipeline dosyasını büyütür, bu da CI sisteminin YAML ayrıştırıcısını her çalıştırmada yavaşlatır",{"key":157,"text":158},"b","Parola, deponun git geçmişinin bir parçası haline gelir; okuma erişimi olan herkes tarafından geri alınabilir.",{"key":160,"text":161},"c","YAML dosyaları 64 karakterden uzun string değerleri saklayamaz, bu yüzden uzun parolalar sessizce kesilir",{"key":163,"text":164},"d","CI\u002FCD platformları, job tanımlarının içinde literal string değer içeren pipeline dosyalarını reddeder","YAML dosyasına doğrudan yazılan bir secret git'e commit edilir ve daha sonra silinse bile geçmişte kalıcı olarak kalır. Depoya okuma erişimi olan herkes -eski çalışanlar ya da genel bir fork dahil- onu geri kazanabilir. Secret'lar versiyon kontrollü dosyalarda değil, çalışma zamanında enjekte edilen özel bir secret store'da tutulmalıdır.",{"id":167,"topic":9,"difficulty":150,"body":168,"options":169,"correct_key":154,"explanation":178},"019fab8f-ce1c-70b8-abe3-62be853bddbb","Bir pre-commit secret-tarama hook'unun (`git commit` tamamlanmadan önce çalışan bir araç) birincil amacı nedir?",[170,172,174,176],{"key":154,"text":171},"Commit edilmekte olan değişiklikleri inceler ve bir API anahtarı, token ya da kimlik bilgisine benzeyen bir kalıp tespit ederse commit'i yerel olarak engeller",{"key":157,"text":173},"Depodaki her dosyayı otomatik olarak şifreler, böylece commit edilen içerik bir anahtar olmadan okunamaz hale gelir",{"key":160,"text":175},"Commit oluşturulmadan önce koddaki tüm ortam değişkenlerini yer tutucu değerlerle değiştirir",{"key":163,"text":177},"Commit diff'ini sıkıştırarak deponun zaman içindeki toplam disk kullanımını azaltır","Pre-commit secret-tarama hook'u, commit kesinleşmeden önce geliştiricinin makinesinde çalışır ve staged diff'i bilinen kimlik bilgisi kalıplarına (AWS anahtarları, private key'ler, token'lar) göre tarar. Bir eşleşme bulunursa commit'i yerel olarak engeller, böylece secret hiçbir zaman uzak depoya ulaşmaz.",{"id":180,"topic":9,"difficulty":150,"body":181,"options":182,"correct_key":163,"explanation":191},"019fab8f-ce1c-7836-b4ab-92020dff2627","Bir geliştirici yanlışlıkla gerçek bir API anahtarı içeren bir `.env` dosyasını commit ediyor. Makinesinde pre-commit hook kurulu olmadığından commit paylaşılan uzak depoya ulaşıyor. En önemli acil eylem nedir?",[183,185,187,189],{"key":154,"text":184},"Sonraki bir commit'te `.env` dosyasını yeniden adlandırarak orijinal dosya yolunun artık var olmamasını sağlamak",{"key":157,"text":186},"Geliştiriciden dosyayı sadece yerel çalışma dizininden silmesini istemek",{"key":160,"text":188},"Anahtarın gerçekten hassas olup olmadığını doğrulamak için bir sonraki zamanlanmış secret-tarama pipeline çalışmasını beklemek",{"key":163,"text":190},"Anahtarı ele geçirilmiş kabul edip derhal iptal etmek\u002Fdöndürmek gerekir.","Bir secret paylaşılan uzak depoya ulaştığında ele geçirilmiş sayılmalıdır; çünkü git geçmişi, dosya daha sonra silinse ya da yeniden adlandırılsa bile onu saklamaya devam eder. Tek güvenli tepki, kimlik bilgisini kaynak sistemde derhal iptal edip döndürmektir; geçmişi temizlemek ikincil, best-effort bir adımdır.",{"id":193,"topic":9,"difficulty":194,"body":195,"options":196,"correct_key":157,"explanation":205},"019fab8f-ce1d-71e4-b0c7-e725d2c5ffda",2,"Çoğu CI\u002FCD platformu (GitHub Actions, GitLab CI) kayıtlı bir secret'ın tam değerini build log'larında otomatik olarak maskeler. Bu maskelemenin önemli bir sınırlaması nedir?",[197,199,201,203],{"key":154,"text":198},"Maskeleme yalnızca 8 karakterden kısa secret'larda çalışır, bu yüzden daha uzun API anahtarları her zaman düz metin olarak gösterilir",{"key":157,"text":200},"Secret değeri log'a yazılmadan önce dönüştürülürse (ör. base64 ile kodlanırsa, iki log satırına bölünürse ya da farklı harf büyüklüğünde yazdırılırsa), maskeleme onu tanıyıp gizleyemeyebilir",{"key":160,"text":202},"Herhangi bir job adımında bir secret referans edildiğinde maskeleme tüm pipeline çalışmasını devre dışı bırakır",{"key":163,"text":204},"Maskeleme, bir log satırında ilk kullanımından sonra secret'ı CI platformunun secret deposundan kalıcı olarak siler","Log maskeleme genellikle bilinen secret değerine karşı tam alt-dize eşleşmesiyle çalışır. Bir script değeri yazdırmadan önce dönüştürürse -kodlarsa, satırlara bölerse ya da harf büyüklüğünü değiştirirse- maskeleme motoru kalıbı artık tanımayabilir ve gerçek değer log'a düz metin olarak sızabilir.",{"id":207,"topic":9,"difficulty":150,"body":208,"options":209,"correct_key":154,"explanation":218},"019fab8f-ce1d-7a92-b639-38423f513eac","Bir CI\u002FCD pipeline'ında, bir secret'ı kaynağa gömmek yerine 'çalışma zamanında ortam değişkeni olarak enjekte etmek' ne anlama gelir?",[210,212,214,216],{"key":154,"text":211},"CI sistemi, job çalışmadan hemen önce secret'ı kendi secret deposundan çeker ve yalnızca o job'ın süreç ortamında, bellek içi bir ortam değişkeni olarak kullanılabilir kılar; checkout edilen kaynak dosyalarına asla yazılmaz",{"key":157,"text":213},"Secret, sadece pipeline'ın bildiği bir anahtarla şifrelenmiş şekilde kaynak kod deposuna yazılır",{"key":160,"text":215},"Secret, tekrar çekilmesine gerek kalmaması için uygulama binary'sine bir sabit olarak derlenir",{"key":163,"text":217},"Secret, pipeline operatörüne e-posta ile gönderilir ve operatör her deploy sırasında onu manuel olarak terminale yazar","Bir secret'ı ortam değişkeni olarak enjekte etmek, CI platformunun onu job başlarken kendi secret deposundan çekip yalnızca o job'ın çalışan sürecine, bellek içi bir ortam değişkeni olarak sunması demektir. Gömülü bir değerin aksine, checkout edilen kaynak ağacına asla dokunmaz.",{"id":220,"topic":9,"difficulty":194,"body":221,"options":222,"correct_key":163,"explanation":231},"019fab8f-ce1e-745b-b9df-da382222b206","Bir CI\u002FCD pipeline'ının bulut deploy kimlik bilgisine, insan bir yönetici hesabıyla aynı geniş izinleri vermek neden risklidir?",[223,225,227,229],{"key":154,"text":224},"Geniş izinler, bulut API'sinin her istekte daha fazla izin kuralı kontrol etmesi gerektiğinden pipeline'ı ölçülebilir şekilde yavaşlatır",{"key":157,"text":226},"Bulut sağlayıcıları, yönetici seviyesinde izin taşıyan kimlik bilgileri için ekstra ücret alır",{"key":160,"text":228},"Yönetici kimlik bilgileri, kapsamlı (scoped) kimlik bilgilerinden daha hızlı süresi dolar, bu da daha sık manuel döndürmeyi zorunlu kılar",{"key":163,"text":230},"Pipeline (ya da içindeki herhangi bir bağımlılık, script ya da ele geçirilmiş bir job adımı) ele geçirilirse, saldırgan pipeline'ın uygulamayı deploy etmek için gerçekte ihtiyaç duyduğundan çok daha geniş, bir yöneticinin tüm etki alanını devralır","Pipeline kimlik bilgisi en az yetki ilkesini izlemeli, yani deploy'un gerçekten ihtiyaç duyduğu eylem ve kaynaklarla sınırlı olmalıdır. Bunun yerine yönetici seviyesinde hak taşırsa, pipeline'ın herhangi bir şekilde ele geçirilmesi (kötücül bir bağımlılık, sızmış bir token, ele geçirilmiş bir action) saldırgana sadece deploy erişimi değil, tüm bulut hesabında yönetici seviyesinde etki alanı kazandırır.",{"fields":233,"seniorities":407,"interview_shapes":408,"locales":413,"oauth":415,"question_count":418,"coach_enabled":419,"jd_match_enabled":419},[234,259,279,296,320,333,352,371,381,388,394,401],{"key":235,"name_tr":236,"name_en":236,"sort":150,"specializations":237},"backend","Backend",[238,241,244,247,250,253,256],{"key":239,"name":240,"field":235},"general","Genel",{"key":242,"name":243,"field":235},"go","Go",{"key":245,"name":246,"field":235},"python","Python",{"key":248,"name":249,"field":235},"java","Java",{"key":251,"name":252,"field":235},"csharp","C#\u002F.NET",{"key":254,"name":255,"field":235},"nodejs","Node.js",{"key":257,"name":258,"field":235},"php","PHP",{"key":260,"name_tr":261,"name_en":261,"sort":194,"specializations":262},"frontend","Frontend",[263,264,267,270,273,276],{"key":239,"name":240,"field":260},{"key":265,"name":266,"field":260},"javascript","JavaScript",{"key":268,"name":269,"field":260},"typescript","TypeScript",{"key":271,"name":272,"field":260},"react","React",{"key":274,"name":275,"field":260},"vue","Vue",{"key":277,"name":278,"field":260},"angular","Angular",{"key":280,"name_tr":281,"name_en":281,"sort":282,"specializations":283},"fullstack","Fullstack",3,[284,285,286,287,288,289,290,291,292,293,294,295],{"key":239,"name":240,"field":280},{"key":242,"name":243,"field":235},{"key":245,"name":246,"field":235},{"key":248,"name":249,"field":235},{"key":251,"name":252,"field":235},{"key":254,"name":255,"field":235},{"key":257,"name":258,"field":235},{"key":265,"name":266,"field":260},{"key":268,"name":269,"field":260},{"key":271,"name":272,"field":260},{"key":274,"name":275,"field":260},{"key":277,"name":278,"field":260},{"key":297,"name_tr":298,"name_en":298,"sort":299,"specializations":300},"devops-cloud","DevOps \u002F Cloud",4,[301,302,305,308,311,314,317],{"key":239,"name":240,"field":297},{"key":303,"name":304,"field":297},"aws","AWS",{"key":306,"name":307,"field":297},"gcp","GCP",{"key":309,"name":310,"field":297},"azure","Azure",{"key":312,"name":313,"field":297},"kubernetes","Kubernetes",{"key":315,"name":316,"field":297},"terraform","Terraform",{"key":318,"name":319,"field":297},"linux","Linux",{"key":321,"name_tr":322,"name_en":322,"sort":323,"specializations":324},"ai-engineer","AI Engineer",5,[325,326,327,330],{"key":239,"name":240,"field":321},{"key":245,"name":246,"field":321},{"key":328,"name":329,"field":321},"llm-rag","LLM\u002FRAG",{"key":331,"name":332,"field":321},"mlops","MLOps",{"key":334,"name_tr":335,"name_en":336,"sort":337,"specializations":338},"database","Veritabanı","Database",6,[339,340,343,346,349],{"key":239,"name":240,"field":334},{"key":341,"name":342,"field":334},"postgresql","PostgreSQL",{"key":344,"name":345,"field":334},"mysql","MySQL",{"key":347,"name":348,"field":334},"mongodb","MongoDB",{"key":350,"name":351,"field":334},"redis","Redis",{"key":353,"name_tr":354,"name_en":355,"sort":356,"specializations":357},"mobile","Mobil","Mobile",7,[358,359,362,365,368],{"key":239,"name":240,"field":353},{"key":360,"name":361,"field":353},"ios-swift","iOS (Swift)",{"key":363,"name":364,"field":353},"android-kotlin","Android (Kotlin)",{"key":366,"name":367,"field":353},"flutter","Flutter",{"key":369,"name":370,"field":353},"react-native","React Native",{"key":5,"name_tr":6,"name_en":372,"sort":373,"specializations":374},"Security",8,[375,376,377,378,379,380],{"key":239,"name":240,"field":5},{"key":132,"name":133,"field":5},{"key":145,"name":146,"field":5},{"key":139,"name":140,"field":5},{"key":142,"name":143,"field":5},{"key":136,"name":137,"field":5},{"key":382,"name_tr":383,"name_en":384,"sort":385,"specializations":386},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[387],{"key":239,"name":240,"field":382},{"key":389,"name_tr":390,"name_en":390,"sort":391,"specializations":392},"data-engineer","Data Engineer",10,[393],{"key":239,"name":240,"field":389},{"key":395,"name_tr":396,"name_en":397,"sort":398,"specializations":399},"game-dev","Oyun Geliştirme","Game Development",11,[400],{"key":239,"name":240,"field":395},{"key":402,"name_tr":403,"name_en":403,"sort":404,"specializations":405},"ml-engineer","ML Engineer",12,[406],{"key":239,"name":240,"field":402},[14,15,16],{"junior":409,"mid":411,"senior":412},{"questions":410,"median_sec":3},20,{"questions":410,"median_sec":3},{"questions":410,"median_sec":3},[10,414],"en",[416,417],"google","github",21750,true]