Eğitimler

Kodu denetle ve raporlar oluştur

Yeniden kullanılabilir bir güvenlik denetimi becerisi oluşturmak, bir uygulamayı OWASP ASVS gereksinimlerine göre taramak ve geliştiricilerin ve AI ajanlarının üzerinde işlem yapabileceği SARIF ve OSCAL raporları oluşturmak için IBM Bob'u kullanın.

IBM Bob, mevcut iş akışlarınızı güçlendiren bir AI Yazılım Geliştirme Yaşam Döngüsü (SDLC) ortağıdır. Bu eğitimde, Bob'u şunlar için kullanacaksınız:

  • Beceriler oluşturma: Bob'a özelleşmiş, tekrarlanabilir iş akışları öğreten yeniden kullanılabilir talimat setleri oluşturma
  • Görev başına izinleri belirleme: Her görev için Bob'un neler yapabileceğini kontrol etme
  • Bağlam bahislerini kullanma: Bob'u @ ile belirli dosyalara yönlendirerek analizini önemli olan yerlere odaklama
  • Modları seçme: Bob'un akıl yürütme stilini optimize etmek için Agent, Ask ve Plan modları arasında seçim yapma

Bu Bob özelliklerini kullanarak, Galaxium Travels uygulamasını OWASP Application Security Verification Standard (ASVS) gereksinimlerinin bir alt kümesine göre tarayacak ve iki yapılandırılmış çıktı üreteceksiniz:

  • SARIF (Static Analysis Results Interchange Format) dosyası: IDE'ler, GitHub Advanced Security ve CI/CD pipeline'ları ile uyumlu, makine tarafından okunabilir bir bulgular raporu
  • Open Security Controls Assessment Language (OSCAL) Plan of Action and Milestones (POA&M): Bir AI ajanının düzeltmeleri sistematik olarak ilerletmek için kullanabileceği yapılandırılmış bir iyileştirme haritası

IBM Bob veya genel AI destekli iş akışı kavramlarına aşina değilseniz, IBM Bob başlangıç eğitimlerini inceleyin.

Ön koşullar

Senaryo

Galaxium Travels uygulaması birkaç yıl içinde karmaşık bir kod tabanına dönüştü. Tam bir manuel güvenlik incelemesi zaman alıcıdır ve ekip üyeleri arasında tutarsızdır. Geliştiricilerin hemen üzerinde işlem yapabileceği ve otomatik bir iyileştirme pipeline'ına beslenebilecek yapılandırılmış çıktı üreten tekrarlanabilir bir sürece ihtiyacınız var.

Bu eğitimde, OWASP ASVS doğrulama gereksinimlerine dayalı bir güvenlik denetimi becerisi oluşturmak, bunu Galaxium Travels kod tabanına karşı çalıştırmak, bir SARIF bulgular raporu oluşturmak ve Bob'un iyileştirmeyi yönlendirmek için kullanabileceği bir OSCAL Plan of Action and Milestones oluşturmak için IBM Bob'u kullanacaksınız.

Bu eğitim, ASVS Level 1 erişim kontrolü (V4), girdi doğrulama (V5), API güvenliği (V13) ve yapılandırma (V14) gereksinimlerine karşı denetim yapar. Bu odaklanmış kapsam, tam bir uyumluluk denetimi gerektirmeden anlamlı bulgular gösterir. Aynı beceri modeli herhangi bir güvenlik standardıyla çalışır: ASVS kontrollerini CWE Top 25, kuruluşunuzun dahili kontrol listesi veya başka bir çerçeve ile değiştirin.

Laboratuvarı kur

  1. Galaxium Travels deposunu klonlayın.

    git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels
  2. File'a ve ardından Open Folder'a tıklayın.

  3. Klonladığınız galaxium-travels dizinine gidin ve açın.

  4. Gezinme çubuğunun yanındaki Bob simgesine tıklayarak veya Option + Command + B (macOS) veya Ctrl + Alt + B (Windows) kısayolunu kullanarak Bob sohbet arayüzünü açın.

  5. Sohbet giriş alanında, geliştirme ortamını başlatmak ve Bob için AGENTS.md dosyalarını oluşturmak için /init komutunu çalıştırın. İstenirse Approve todo tools for task'a tıklayın.

Bir denetim becerisi oluştur

Bob'un belirli bir görevi gerçekleştirmek için kullandığı yeniden kullanılabilir bir talimat seti olan bir beceri oluşturun.

Aşağıdaki beceri, Galaxium Travels kod tabanını OWASP ASVS Level 1 gereksinimlerine göre denetler.

Beceri aşağıdaki kontrolleri denetler:

KategoriKontrolAçıklama
V4.1 Genel Erişim KontrolüV4.1.3Kullanıcılar yalnızca kendi kaynaklarına erişebilir; diğer kullanıcıların verilerine erişilemez
V4.1.5Erişim kontrolü varsayılan olarak reddeder — kimliği doğrulanmamış istekler reddedilir
V4.2 İşlem Düzeyinde Erişim KontrolüV4.2.1Hassas kaynaklara tahmin edilebilir bir nesne kimliğini manipüle ederek erişilemez, güvenli olmayan doğrudan nesne referansı (IDOR) saldırılarına karşı koruma sağlar
V5.1 Girdi DoğrulamaV5.1.1Tüm dize girdilerinin tanımlanmış maksimum uzunluk kısıtlamaları vardır
V13.1 Genel Web Servisi GüvenliğiV13.1.3API uç noktaları URL sorgu parametrelerinde kimlik bilgilerini veya kişisel tanımlanabilir bilgileri (PII) kabul etmez
V14.4 HTTP Güvenlik BaşlıklarıV14.4.1HTTP yanıtları Content-Security-Policy, X-Frame-Options ve X-Content-Type-Options gibi uygun güvenlik başlıklarını içerir
V14.5 HTTP İstek Başlığı DoğrulamaV14.5.3CORS kaynağı açık bir izin listesine göre doğrulanır — joker karakter kaynakları izin verilmez
  1. Sohbet arayüzünün altında Bob - Settings'e ve ardından Bob Settings'e tıklayın.

  2. Sol kenar çubuğunda Skills'e tıklayın.

  3. Yeni bir beceri oluşturmak için + düğmesine tıklayın.

  4. Skill Name alanına asvs-audit girin. Bu, sohbette /asvs-audit ile beceriyi çağırmak için kullanılan addır.

  5. Description alanına kısa bir açıklama girin:

    Audits a codebase against OWASP ASVS Level 1 access control, input validation, API security, and configuration requirements.
  6. Allow Bob to use this skill düğmesinin açık olduğundan emin olun.

    Düğme açık olduğunda, bir istem veya plan çağırdığında Bob beceriyi kendi başına etkinleştirebilir. Bu eğitimde daha sonra oluşturacağınız denetim planı tam olarak bunu yapar.

  7. Scope & Locationgalaxium-travels olarak değiştirin.

    Bu, beceriyi projenin .bob/skills/ dizinine kaydeder, böylece yalnızca bu projede kullanılabilir ve ekibiniz kod tabanıyla birlikte sürüm kontrolü yapabilir. Global konum (~/.bob/skills/) beceriyi makinenizdeki her projede kullanılabilir hale getirir.

  8. Skill Instructions metin kutusuna aşağıdaki beceriyi girin.

    ---
    name: asvs-audit
    description: Audit a codebase against OWASP ASVS Level 1 access control, input validation, API security, and configuration requirements and produce structured findings ready for SARIF and OSCAL export.
    user-invocable: true
    ---
    
    Perform a structured security audit of this codebase. Work through the following phases in order. Do not skip phases or combine them.
    
    ## Phase 1: Discover
    
    Read and understand the application before auditing. Focus on:
    - Entry points: main files, route definitions, controllers
    - Authentication and session handling code
    - Input validation and sanitization code
    - Database query code
    - Any files flagged as high-risk in earlier analysis
    
    Summarize what you find before proceeding to Phase 2.
    
    ## Phase 2: Audit
    
    Check each control below. For each one record: PASS, FAIL, or N/A.
    For every FAIL, record the file path and line number.
    
    ### V4.1 General Access Control
    - V4.1.3 — Users can only access their own resources; other users' data is not accessible
    - V4.1.5 — Access control denies by default — unauthenticated requests are rejected
    
    ### V4.2 Operation Level Access Control
    - V4.2.1 — Sensitive resources cannot be accessed by manipulating a predictable object ID (IDOR protection)
    
    ### V5.1 Input Validation
    - V5.1.1 — All string inputs have defined maximum length constraints
    
    ### V13.1 Generic Web Service Security
    - V13.1.3 — API endpoints do not accept credentials or PII in URL query parameters
    
    ### V14.4 HTTP Security Headers
    - V14.4.1 — HTTP responses include appropriate security headers such as Content-Security-Policy, X-Frame-Options, and X-Content-Type-Options
    
    ### V14.5 HTTP Request Header Validation
    - V14.5.3 — CORS origin is validated against an explicit allowlist — wildcard origins are not permitted
    
    ## Phase 3: Generate Findings
    
    For each FAIL, produce a finding in this format:
    
    **Finding [N]:**
    - Rule: ASVS [control number]
    - Severity: Critical / High / Medium / Low
    - File: [path]
    - Line: [number or range, if identifiable]
    - Issue: [one sentence describing what was found]
    - Fix: [one sentence describing the recommended change]
    
    ## Phase 4: Summary
    
    Produce a short summary:
    - Total controls checked
    - Pass / Fail / N/A counts
    - Two-sentence overall security posture assessment
    
    Save the findings to the location specified by the plan or prompt that invoked this skill. Do not generate SARIF, OSCAL, or other report files — report generation is a separate task. Report that the audit is complete and wait for the next instruction.

    Bu, denetim sırasında Bob'un izlediği eksiksiz talimat setidir.

  9. Create'e tıklayın.

Denetlenecek yüksek riskli alanları bul

Token'ları tasarruf etmek için Bob'dan güvenlikle en alakalı dosya ve klasörleri belirlemesini isteyin. Denetim becerisini bu alanlarda çalıştıracaksınız.

  1. Sohbet paneli henüz açık değilse, Option + Command + B (macOS) veya Ctrl + Alt + B (Windows) ile açın.

  2. Mod seçiciden Ask'i seçin.

    Her modun farklı yetenekleri ve akıl yürütme stilleri vardır. Ask modu sorular ve analizler için en iyi şekilde çalışır, ancak Ask modunda dosya yazamaz veya düzenleyemezsiniz.

  3. Sohbet giriş alanına, kod tabanını keşfetmek ve en yüksek güvenlik riski alanlarını bulmak için aşağıdaki istemi girin:

    Explore this codebase as a Senior Security Analyst. Give me a short summary covering:
    
    1. The primary tech stack and framework
    2. Identify the files and folders most relevant to security
    
    Make sure to also review:
    1. How authentication and session management are handled
    2. How user input is accepted and validated
    3. Where database queries are made
    4. Any API endpoints that accept external input
    
    I want to understand the highest security risk areas before running an audit.

    Bob dosyaları okur ve uygulama yapısının bir özetini döndürür.

Yüksek riskli alanları denetlemek için bir plan oluştur

Yüksek riskli alanları denetlerken Bob'un izleyeceği bir plan oluşturun.

  1. Plan moduna geçin.

  2. Bob'dan yüksek riskli alanları denetlemek için bir plan oluşturmasını isteyin. İstenirse Approve todo tools for task'a tıklayın.

    Create a plan for auditing the high-risk areas found in the previous
    exploration.
    
    When auditing, use the asvs-audit skill to guide the process.
    
    When the plan runs, create the security/ directory if it does not exist and
    save the findings to security/audit-findings.md
    
    Save the plan to plan/audit-plan.md
  3. Bob, denetimin kapsamını veya odaklanılacak belirli alanları netleştirmek için takip soruları sorabilir. Bunları cevaplayabilir veya Bob'a use your recommendation diyebilirsiniz.

  4. Denetim yaklaşımını ve Bob'un çalıştırdığında ne yapacağını anlamak için plan dosyasını açın.

Kod tabanını denetle

  1. Yeni bir görev başlatmak için + düğmesine tıklayın.

  2. Sohbet arayüzünde Agent modunda olduğunuzdan emin olun.

    Agent modu, Bob'a dosya yazma ve yürütme dahil olmak üzere tam yetenekler verir. Bu, denetim ve rapor oluşturma aşamaları için gereklidir.

  3. Sohbet arayüzündeki Permissions seçicisine tıklayın ve Read, Edit, Execute ve Skill onay kutularını işaretleyin. Bu görev için diğer tüm düğmeleri işaretsiz bırakın.

    İzinDurumNeden
    Read✅ AçıkBob kod tabanını, denetim planını ve beceriyi okur
    Edit✅ AçıkBob bulguları security/audit-findings.md'ye yazar
    Execute✅ AçıkBob yolları çözmek veya dosya yapısını onaylamak için kabuk komutları çalıştırabilir
    Skill✅ AçıkDenetim planı asvs-audit becerisini çağırır
    MCP❌ KapalıYerel kod analizi için gerekli değil
  4. Bob'dan denetim planını uygulamasını isteyin.

    Implement the @plan/audit-plan.md
  5. security/audit-findings.md dosyasındaki bulguları inceleyin.

    Plan, Bob'a security/ dizinini henüz yoksa oluşturmasını ve bulguları security/audit-findings.md'ye kaydetmesini söyler.

    Bulguları kaydetmek, yeni bir bağlam penceresi kullanan bir modelle yeni bir sohbet başlatmanıza olanak tanır. Tüm kod tabanını ve beceri talimatlarını yeniden okumadan Bob'u bulgular dosyasına yönlendirerek raporlar oluşturabilirsiniz, bu da rapor oluşturma için bağlam penceresini korur.

    Bağlam penceresi notu: Tüm modellerin ayarlanmış bir bağlam penceresi vardır. Büyük bir kod tabanını denetlerken, bir modelin bağlam penceresini aşabilirsiniz. Büyük kod tabanları için, bir seferde bir ASVS kategorisini denetlemeyi deneyin. Önce V4'ü çalıştırın, ardından V5, V13 ve V14'ü çalıştırın ve sonunda Bob'dan bulguları birleştirmesini isteyin. Bu aynı zamanda SKILL.md'yi kısa tutmak ve tüm depoyu bir kerede Bob'a yönlendirmek yerine odaklanmış @ bağlam bahislerini kullanmak için iyi bir nedendir.

Güvenlik raporları oluştur

SARIF, statik analiz sonuçları için standart değişim formatıdır. Bob dahil IDE'ler, GitHub Advanced Security ve çoğu CI/CD pipeline'ı SARIF dosyalarını doğrudan kullanabilir.

  1. Yeni bir görev başlatmak için + düğmesine tıklayın.

  2. Agent modunu kullandığınızdan emin olun.

  3. Sohbet panelinde Permissions'a tıklayın ve Read, Edit ve Execute onay kutularını işaretleyin. Bu görev için diğer tüm düğmeleri işaretsiz bırakın.

    İzinDurumNeden
    Read✅ AçıkBob security/audit-findings.md dosyasındaki bulguları okur
    Edit✅ AçıkBob SARIF raporunu security/ dizinine yazar
    Execute✅ AçıkBob yolları çözmek veya dosya yapısını onaylamak için kabuk komutları çalıştırabilir
    Skill❌ KapalıRapor üretmek için gerekli değil. Beceri zaten ajanın ihtiyaç duyduğu bulguları oluşturdu
    MCP❌ KapalıYerel kod analizi için gerekli değil
  4. @ bağlam bahsini kullanarak Bob'dan bir SARIF raporu oluşturmasını isteyin.

    @security/audit-findings.md
    
    Generate a SARIF 2.1.0 report from the audit findings.
    
    Save it to `security/audit-results.sarif`.
    
    Include:
    - Tool name: "ASVS Security Audit"
    - A rule entry for each ASVS control that was checked, with the control ID and description
    - A result entry for each finding, with severity level, file path, line number, and the fix recommendation in the message field

    Bob dosyayı oluşturur ve security/audit-results.sarif'e kaydeder. Dosyanın denetimden her bulgu için bir tane olmak üzere results girişleri içeren bir runs dizisi içerdiğini onaylayın.

    Bob ayrıca sohbette yaptığı eşleme kararlarını da bildirir:

    Örnek çıktı:

    Severity mapping used: Critical/High → SARIF error; Medium/Low → SARIF warning.
    The message.text for each result contains the full issue description and the fix
    recommendation in one field, so tooling that renders SARIF (GitHub Code
    Scanning, VS Code SARIF Viewer, etc.) will surface the remediation guidance
    inline.
  5. Bulguları incelemek için Bob'da security/audit-results.sarif dosyasını açın. Bu dosyayı GitHub Advanced Security veya bir CI/CD pipeline'ı gibi diğer araçlarda denetim bulgularını göstermek için kullanabilirsiniz.

Bir OSCAL iyileştirme planı (POA&M) oluştur

OSCAL POA&M, her bulguyu risk bilgileri, uygulama rehberliği ve kilometre taşı atamaları içeren yapılandırılmış bir iyileştirme görevine eşleyen makine tarafından okunabilir bir JSON belgesidir. Bob bu dosyayı bir iş kuyruğu olarak okuyabilir. Her öğeyi işler, düzeltmeleri uygular ve ilerledikçe kilometre taşlarını tamamlandı olarak işaretler.

  1. Yeni bir görev başlatmak için + düğmesine tıklayın.

  2. Sohbet panelindeki mod menüsüne tıklayın ve Agent'ı seçin.

  3. Sohbet panelinde Permissions'a tıklayın ve Read, Edit ve Execute onay kutularını işaretleyin. Bu görev için diğer tüm düğmeleri işaretsiz bırakın.

    İzinDurumNeden
    Read✅ AçıkBob security/audit-findings.md dosyasındaki bulguları okur
    Edit✅ AçıkBob OSCAL POA&M'yi security/ dizinine yazar
    Execute✅ AçıkBob yolları çözmek veya dosya yapısını onaylamak için kabuk komutları çalıştırabilir
    Skill❌ KapalıRapor üretmek için gerekli değil. Beceri zaten ajanın ihtiyaç duyduğu bulguları oluşturdu
    MCP❌ KapalıYerel kod analizi için gerekli değil
  4. @ bağlam bahsini kullanarak Bob'dan bir OSCAL POA&M raporu oluşturmasını isteyin.

    @security/audit-findings.md
    
    Generate an OSCAL Plan of Action and Milestones (POA&M) from the audit findings.
    
    Save it to `security/poam.json`.
    
    For each finding include:
    - A unique UUID
    - The ASVS control ID as the finding reference
    - Severity and a one-sentence risk description
    - A concrete remediation task with enough detail for an AI agent to implement it without additional context — include file path, line reference, and the specific change required
    - A milestone label based on severity: Critical and High findings get "sprint-1", Medium and Low get "sprint-2"
    
    Use OSCAL version 1.1.2 structure.

    Bob dosyayı oluşturur ve security/poam.json'a kaydeder.

    Örnek çıktı:

    Each poam-item contains:
    
    props — severity, asvs-control, and milestone label
    risks[] — one risk with a uuid, title, one-sentence risk description, and status: "open"
    
    remediations[] — one remediation with a lifecycle: "planned" flag, a title, and a description
    that is specific enough for an AI agent to implement without additional context
    (includes exact file paths, line numbers, and the concrete code change required)
    
    tasks[] — one or more discrete action tasks under each remediation (e.g. the IDOR finding breaks
    out the short-term ownership check and the long-term UUID migration as separate tasks)

Artık security/ dizininde iki çıktınız var:

  • audit-results.sarif — geliştirici araçları ve CI/CD entegrasyonu için yapılandırılmış bulgular
  • poam.json — AI destekli veya insan yönlendirmeli iyileştirme için bir iyileştirme iş kuyruğu

Bulguları incele

POA&M oluşturulduktan sonra, bulguları inceleyin ve önce hangilerini düzelteceğinizi önceliklendirin.

  1. Yeni bir görev başlatmak için + düğmesine tıklayın.

  2. Sohbet panelindeki mod menüsüne tıklayın ve Ask'i seçin.

  3. @ bağlam bahsini kullanarak Bob'dan POA&M'den en kritik öğeleri vurgulamasını isteyin.

    @security/poam.json
    
    Review this remediation plan and identify the 3 most critical items to fix first.
    
    For each one include:
    - What the vulnerability is and why it is the highest priority
    - Which file and line to look at
    - What the fix involves and roughly how long it would take a developer to implement

    Bob dosyayı okur ve önceliklendirilmiş bir özet döndürür:

    Örnek çıktı:

    #1 — No Authentication on Any Endpoint (Finding 1 · ASVS V4.1.5 · critical)
    Why it's the highest priority:
    This is the foundational flaw that makes every other vulnerability worse. With
    zero authentication in place, any anonymous caller on the network can execute
    all booking operations — book flights, read all user records, cancel any
    booking, register accounts. Until this is fixed, findings 2 and 3 also have no
    meaningful barrier.
    
    ...snip...
    
    #3 — PII in URL Query Parameters on GET /user (Finding 5 · ASVS V13.1.3 · high)
    Why it's third:
    Email addresses (PII) appearing in GET /user query strings are passively and
    silently leaked into server access logs, reverse-proxy logs, CDN caches, and
    browser history — a persistent, silent data breach that can violate GDPR. Unlike
    findings 2 and 3, this is an architectural leak that accumulates over time;
    every request compounds the exposure.
    
    Sprint-1 Fix Order Summary
    
    Priority    Finding Severity        Effort  Dependency
    1   Auth on all endpoints (V4.1.5)  Critical        2–4 h   None — fix first
    2   Wildcard CORS (V14.5.3) High    30 min  Independent — fix in parallel
    3   PII in query string (V13.1.3)   High    1–2 h   Independent — fix in parallel
    
    Findings 2 and 3 are blockers in the ownership-check fixes (Findings 2 and 3 in
    the POAM) that come afterward, since those require a known caller identity —
    which only exists once authentication (Finding 1) is in place.

    Ayrıca denetim iş akışlarınıza bir Model Context Protocol (MCP) sunucusu entegre edebilir ve Bob'dan her bulgu için bilet oluşturmasını, bunları ilgili kodla bağlamasını ve POA&M'den iyileştirme rehberliğini dahil etmesini isteyebilirsiniz.

Temizlik

Bu eğitimde oluşturulan dosyaları kaldırmak için:

  1. Bob Settings'de Skills'e tıklayın ve asvs-audit becerisini silin.
  2. Laboratuvarı kur bölümünde klonlanan galaxium-travels dizinini silin.

Sonraki adımlar

Bu eğitimde, IBM Bob'u şunlar için kullandınız:

  • Denetim öncesi yüksek riskli alanları belirlemek için Galaxium Travels kod tabanını keşfetme
  • Ekibinizin sürüm kontrolü yapabileceği ve herhangi bir projede çalıştırabileceği yeniden kullanılabilir bir asvs-audit becerisi oluşturma
  • Görev kapsamlı yetenek düğmelerini kullanarak OWASP ASVS erişim kontrolü, girdi doğrulama, API güvenliği ve yapılandırma gereksinimlerine göre kod tabanını denetleme
  • Geliştirici araçları ve CI/CD entegrasyonu için bir SARIF raporu oluşturma
  • Bir AI ajanının iyileştirmeyi yönlendirmek için kullanabileceği bir OSCAL POA&M oluşturma
  • En kritik üç bulguyu inceleme ve önceliklendirme

Bu denetimde bulunan sorun sınıflarını yeniden tanıtmadan yeni özellikler oluşturmak için Bir actor-critic iş akışıyla güvenli kod oluştur ile devam edin.

Ek kaynaklar

Bu konu nasıl?