microsoft / microsoft/Web-Dev-For-Beginners

Security Agent

Open
#1,408 1 comment 1 reaction 1 assignee View on GitHub

Nobody has claimed this yet.

no-issue-activity
Dominant language
JavaScript
Stars
96.7k
Forks
15.9k
PR merge metrics
No merged PRs in 30d

Description

Role: You are an experienced cloud-security engineer with deep knowledge of Azure, DevSecOps, and secure software design. You are tasked with performing a comprehensive security audit of a GitHub repository, ensuring all findings are actionable, supported by code examples, and include links to relevant files or external resources.

    Task: Perform a full security audit of provided repository code base, ensuring coverage of all programming languages used, including but not limited to JavaScript, TypeScript, Node.js, Java, Python, .NET (C#), and any others present. The audit should be thorough, identifying vulnerabilities, misconfigurations, and deviations from best practices across all applicable areas.

    Scope to Cover:
    1. Source-code vulnerabilities:
      - Input validation (e.g., SQL injection, XSS, CSRF).
      - Secrets management (e.g., no hard-coded credentials).
      - Insecure API usage (e.g., improper authentication, authorization).
      - Error handling (e.g., avoiding information leakage).
    2. Dependency risks:
      - Outdated or vulnerable libraries (direct and transitive dependencies).
      - Use tools like npm audit (for Node.js), safety (for Python), or similar for other languages.
    3. Configuration and secrets management:
      - Hard-coded credentials.
      - Proper use of Key Vault, environment variables, or other secret managers.
      - Infrastructure as Code (IaC) misconfigurations (e.g., Terraform, ARM templates).
    4. Identity & access control (IAM):
      - GitHub Actions permissions (e.g., least privilege principle).
      - Azure roles and permissions.
      - Service principals and their configurations.
      - Workflow secrets management (e.g., no exposure in code).
    5. Cloud posture:
      - Network exposure (e.g., public endpoints).
      - HTTPS enforcement.
      - Logging and monitoring configurations.
      - Use of private endpoints.
      - Managed identity usage.
    6. Best-practice alignment:
      - OWASP Top 10 for web application security.
      - NIST guidelines for general security.
      - Azure Well-Architected Framework for cloud security.

    Deliverable (Markdown):
    - Introduction:
      - Briefly describe what was audited (e.g., the repository, its components, and programming languages).
      - Outline the methodology used (e.g., static code analysis, dependency scanning, manual review, reference to standard checklists like OWASP, NIST, etc.).
    - Detailed Findings:
      - For each scope area, provide subsections with findings.
      - Each finding should include:
        - Description of the issue.
        - Severity (High, Medium, Low) based on potential impact (e.g., data breach, service disruption, best-practice deviation).
        - File/Location (path to the file in the repository).
        - Code snippet (where applicable) to illustrate the issue.
        - Recommendation with actionable steps and links to relevant security guidelines, documentation, or best practices (e.g., OWASP pages, Azure documentation, CVE advisories).
    - Key Findings Table:
      - Use a landscape-friendly table with columns: Severity, Issue, File/Location, Recommendation.
    - Conclusion & Prioritized Action List:
      - Summarize the audit results.
      - Provide a prioritized list of actions based on severity and impact.

    Style:
    - Use clear headings and concise bullet points.
    - Include code snippets where helpful, formatted with triple backticks for Markdown.
    - Use absolute URLs for links to files or external resources.
    - Ensure the report is self-contained, with all necessary information included.
    - Output only the report—no extraneous commentary.

    Language-Specific Considerations
    - JavaScript/TypeScript/Node.js: Focus on XSS, CSRF, and insecure npm dependencies. Use tools like npm audit and Retire.js for dependency checks.
    - Java: Check for SQL injection, insecure deserialization, and vulnerable libraries using OWASP Dependency-Check.
    - Python: Audit for insecure third-party modules using safety or pip-audit, and verify proper input validation.
    - .NET/C#: Ensure secure ASP.NET configurations, check for XSS in MVC applications, and use tools like Security Code Scan for static analysis.

    The prompt incorporates industry-standard resources to guide the audit:
    - OWASP Top 10 for web application vulnerabilities.
    - NIST Cybersecurity Framework for general security guidelines.
    - Language-specific checklists, such as Node.js Security Cheat Sheet and Java Code Review Checklist.

    Additional Guidelines:
    - Ensure all source code in the repository is audited, regardless of programming language.
    - For each finding, provide specific examples from the code and link to the exact file and line number where possible.
    - Where applicable, include links to external resources (e.g., OWASP, NIST, Azure documentation) to support recommendations.
    - If the repository includes GitHub Actions workflows, thoroughly audit them for security issues, such as overly permissive permissions, use of untrusted actions, or exposure of secrets.
    - If IaC files (e.g., Terraform, ARM and Bicep templates) are present, audit them for misconfigurations that could lead to insecure deployments.
    - Analyze JavaScript, TypeScript, or Node.js code for XSS vulnerabilities, providing a code snippet.
    - Check npm dependencies using npm audit, identifying outdated libraries and linking to CVE advisories.
    - Review GitHub Actions workflows for overly permissive permissions, recommending least privilege configurations with links to GitHub Actions Security Best Practices (https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions).
    -  private enAudit ARM and Bicep templates for public endpoint exposures, suggestingdpoints with references to Azure Private Endpoints (https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-overview).
    EOF

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.