<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cyberoptic Security Ltd</title>
    <description>The latest articles on DEV Community by Cyberoptic Security Ltd (@jrap).</description>
    <link>https://dev.to/jrap</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3463991%2F5339be49-9e3a-4c4c-9f37-edbd69ea2587.jpg</url>
      <title>DEV Community: Cyberoptic Security Ltd</title>
      <link>https://dev.to/jrap</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jrap"/>
    <language>en</language>
    <item>
      <title>Security in CI/CD Pipelines</title>
      <dc:creator>Cyberoptic Security Ltd</dc:creator>
      <pubDate>Mon, 15 Sep 2025 02:18:04 +0000</pubDate>
      <link>https://dev.to/jrap/security-in-cicd-pipelines-i0m</link>
      <guid>https://dev.to/jrap/security-in-cicd-pipelines-i0m</guid>
      <description>&lt;p&gt;This guide covers the essential security checks every small team should use. Most of these tools are free or cheap, and they run automatically in the background without disrupting your workflow.&lt;/p&gt;

&lt;p&gt;Building security into your CI/CD pipeline means catching obvious problems before they reach production, reducing the risk of costly incidents and emergency patches. There are a variety of security checks that should be done before deploying code, and implementing these checks in an automated pipeline is an ideal way to streamline your security testing process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro0x7uw9frjmgcvyffw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro0x7uw9frjmgcvyffw3.png" alt="beep boop" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
beep boop&lt;/p&gt;

&lt;h2&gt;
  
  
  Static Code Scanning (SAST)
&lt;/h2&gt;

&lt;p&gt;Static code scanning analyses source code for security vulnerabilities without executing it. SAST tools identify common security flaws like SQL injection, cross-site scripting (XSS), buffer overflows, and hardcoded secrets.&lt;/p&gt;

&lt;p&gt;Finding security bugs during development is much less of a headache than finding them in production. SAST provides immediate feedback during code review, helping developers learn secure coding patterns while preventing vulnerabilities from entering the codebase.&lt;/p&gt;

&lt;p&gt;Tool options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SonarQube Community Edition: Java, C#, JavaScript, TypeScript, Python, PHP, Go, Kotlin, Ruby, Scala, XML&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Semgrep: Python, Java, JavaScript, TypeScript, Go, Ruby, C, C++, PHP, C#, Kotlin, Scala&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CodeQL: JavaScript, TypeScript, Python, Java, C#, C, C++, Go, Ruby&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bandit: Python (specialised for Python security issues)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ESLint with security plugins: JavaScript, TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SpotBugs with Find Security Bugs: Java, Scala, Groovy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clang Static Analyzer: C, C++, Objective-C&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cppcheck: C, C++&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brakeman: Ruby on Rails&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;gosec: Go&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation approach: Run SAST scans on every pull request. Start with high-severity rules only to avoid alert fatigue. Most tools integrate directly with major CI platforms through plugins or simple command-line execution.&lt;/p&gt;

&lt;p&gt;Modern SAST tools can scan typical codebases in under 5 minutes. Configure incremental scanning to analyse only changed code for faster feedback loops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dynamic Application Security Testing (DAST)
&lt;/h2&gt;

&lt;p&gt;DAST tools test running applications by simulating attacks against live deployments. Unlike static analysis, DAST discovers runtime vulnerabilities, configuration issues, and logic flaws that only manifest when the application is actually running.&lt;/p&gt;

&lt;p&gt;Benefits for development teams: DAST catches authentication bypasses, server misconfigurations, missing security headers, and business logic vulnerabilities that static analysis misses. It validates that security controls work correctly in your actual deployment environment, not just in theory.&lt;/p&gt;

&lt;p&gt;Tool landscape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open source: OWASP ZAP (comprehensive but slower), Nuclei (fast template-based scanning)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Commercial: Burp Suite Professional, Rapid7 AppSpider&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud-based: Detectify, HackerOne's pentest platform&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Platform-integrated: AWS Inspector, Azure Security Center&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation approach: Run DAST against staging environments after deployment. Since scans take 15-60 minutes depending on application size, consider running them nightly rather than on every commit. Focus initial efforts on authentication endpoints, user input forms, and API endpoints.&lt;/p&gt;

&lt;p&gt;Modern applications often have extensive APIs that need dedicated testing. Tools like Postman's security scanning or REST-specific DAST tools can provide better coverage than traditional web application scanners.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Composition Analysis (SCA) and Dependency Scanning
&lt;/h2&gt;

&lt;p&gt;SCA tools analyse third-party dependencies and open-source components for known vulnerabilities, license compliance issues, and outdated packages. Modern applications typically use hundreds of dependencies, making manual tracking impossible.&lt;/p&gt;

&lt;p&gt;Dependency vulnerabilities represent 85% of security holes in modern applications. SCA prevents the integration of components with known CVEs and helps maintain compliance with open-source licensing requirements.&lt;/p&gt;

&lt;p&gt;Tool ecosystem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Language-specific: npm audit (Node.js), pip-audit (Python), bundler-audit (Ruby)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Universal: Snyk (freemium), OWASP Dependency-Check (free), Trivy (free)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Platform-integrated: GitHub Dependabot, GitLab dependency scanning, Azure DevOps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise: Sonatype Nexus, JFrog Xray, WhiteSource (now Mend)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation approach: Run SCA scans after dependency resolution but before deployment. Configure tools to fail builds on critical vulnerabilities while allowing lower-severity issues with appropriate business justification. Combine with automated dependency update tools like Dependabot or Renovate for streamlined patching workflows.&lt;/p&gt;

&lt;p&gt;Modern SCA tools provide vulnerability prioritisation based on actual usage (reachability analysis), automated remediation suggestions, and integration with development workflows through pull request comments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Secrets Detection and Management
&lt;/h2&gt;

&lt;p&gt;Secrets scanning tools detect accidentally committed credentials, API keys, certificates, and other sensitive data in source code, configuration files, and build artifacts. These tools use pattern matching, entropy analysis, and machine learning to identify potential secrets.&lt;/p&gt;

&lt;p&gt;Hardcoded secrets in repositories create permanent security liabilities. Even private repositories can be compromised, and secrets in git history are difficult to fully remove. Automated detection prevents these credentials from entering version control.&lt;/p&gt;

&lt;p&gt;Detection tools and platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open source: GitLeaks, TruffleHog, detect-secrets&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Platform-integrated: GitHub secret scanning, GitLab secret detection, Azure DevOps credential scanner&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise: GitGuardian, Cycode, SpectralOps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pre-commit hooks: git-secrets, pre-commit framework with secrets plugins&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation approach: Deploy secrets detection at multiple points: pre-commit hooks for immediate developer feedback, CI pipeline scans for every code change, and periodic repository history scans for comprehensive coverage. Configure different sensitivity levels for different secret types.&lt;/p&gt;

&lt;p&gt;Modern secrets management platforms can automatically rotate compromised credentials when detected. Tools like HashiCorp Vault, AWS Secrets Manager, and Azure Key Vault provide APIs for programmatic secret rotation and can integrate with CI/CD pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Container Image Security Scanning
&lt;/h2&gt;

&lt;p&gt;Container scanning analyses Docker images and other container formats for OS-level vulnerabilities, malicious packages, configuration issues, and compliance violations. This includes both base image components and application-specific additions.&lt;/p&gt;

&lt;p&gt;Container images often contain hundreds of system packages, any of which may have known CVEs. Scanning identifies vulnerable packages, misconfigurations like running as root, exposed sensitive files, and compliance violations against security benchmarks like CIS Docker Benchmark.&lt;/p&gt;

&lt;p&gt;Scanning tools and integration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open source: Trivy (comprehensive and fast), Grype, Clair&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud provider: AWS ECR image scanning, Azure Container Registry scanning, Google Container Analysis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Commercial: Snyk Container, Aqua Security, Twistlock (now Prisma Cloud)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Registry-integrated: Docker Hub vulnerability scanning, Red Hat Quay&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation approach: Implement multi-stage scanning: scan base images during selection, scan intermediate build images, and scan final runtime images before registry push. Consider both OS-level and application-level vulnerability detection.&lt;/p&gt;

&lt;p&gt;Modern container scanners provide specific remediation guidance, including base image upgrade recommendations, package updates, and configuration fixes. Integration with image build pipelines enables automatic rebuilds when new vulnerabilities are discovered in base images.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure as Code (IaC) Security Scanning
&lt;/h2&gt;

&lt;p&gt;IaC security tools analyse infrastructure configuration files (Terraform, CloudFormation, Kubernetes manifests) for security misconfigurations, compliance violations, and policy breaches before deployment.&lt;/p&gt;

&lt;p&gt;Configuration risk management: Infrastructure misconfigurations cause 65% of cloud security incidents. IaC scanning prevents deployment of overly permissive security groups, unencrypted storage, public cloud resources, and non-compliant configurations.&lt;/p&gt;

&lt;p&gt;Tool landscape by platform:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Terraform: tfsec, Checkov, Terrascan, Snyk Infrastructure as Code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CloudFormation: cfn-nag, Stelligent cfn_nag, Checkov&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kubernetes: kube-score, Polaris, Falco, OPA Gatekeeper&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-platform: Checkov, Prisma Cloud, Bridgecrew (now Prisma)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Integration approach: Run IaC scans on infrastructure pull requests before merge, during CI/CD pipeline execution before deployment, and periodically against live infrastructure for drift detection. Configure different rule sets for development, staging, and production environments based on risk tolerance.&lt;/p&gt;

&lt;p&gt;Many IaC scanners support industry frameworks like CIS Benchmarks, NIST, SOC 2, and GDPR compliance requirements. Custom policy creation enables organisation-specific security requirements and governance rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  CI/CD Pipeline Security Platforms
&lt;/h2&gt;

&lt;p&gt;Different CI/CD platforms offer varying levels of built-in security capabilities and third-party integrations. Understanding platform-specific features helps optimise your security implementation approach.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Actions and GitHub Advanced Security
&lt;/h3&gt;

&lt;p&gt;Built-in Security Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CodeQL for semantic code analysis (free for public repos, paid for private)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secret scanning with automatic token revocation for popular services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dependency vulnerability alerts with Dependabot integration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security advisories and vulnerability database&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third-party Integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Extensive action marketplace includes security tools like Snyk, Semgrep, OWASP ZAP, and container scanners&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Actions can be configured with specific security policies and failure conditions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise and Compliance Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub Advanced Security provides code scanning, secret scanning, and dependency review for private repositories&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Detailed security dashboards and compliance reporting&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platform-specific Considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Free security features for public repositories make it attractive for open source projects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tight integration with GitHub's development workflow and pull request process&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  GitLab CI/CD
&lt;/h3&gt;

&lt;p&gt;Built-in Security Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Integrated SAST, DAST, dependency scanning, container scanning, and license compliance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Results integrate directly into merge request workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Built-in container registry with automated vulnerability scanning&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third-party Integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Comprehensive security scanner integrations available through GitLab's CI/CD configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API-based integrations with external security tools and platforms&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise and Compliance Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Centralised security dashboard with vulnerability management across projects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security metrics and compliance tracking with policy management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organisation-wide security requirements enforcement&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platform-specific Considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;All-in-one DevOps platform reduces tool sprawl&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Policy enforcement for image promotion between environments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Strong focus on DevSecOps workflow integration&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Azure DevOps
&lt;/h3&gt;

&lt;p&gt;Built-in Security Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Native integration with Microsoft Defender for DevOps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security findings across the development lifecycle with threat intelligence prioritisation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Built-in compliance tracking and audit logging&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third-party Integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Azure DevOps marketplace includes security extensions for various scanning tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pipeline templates for common security workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration with Azure ecosystem security services&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise and Compliance Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Policy enforcement with integration to Azure Policy for infrastructure governance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comprehensive audit logging and compliance tracking capabilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise-grade access control and security management&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platform-specific Considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strong integration with Microsoft ecosystem and Azure cloud services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise-focused with robust governance and compliance features&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seamless integration with existing Microsoft toolchains&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Jenkins
&lt;/h3&gt;

&lt;p&gt;Built-in Security Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Basic pipeline security through Jenkinsfile configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Built-in user authentication and authorisation mechanisms&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pipeline approval workflows for sensitive operations&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third-party Integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Extensive plugin library includes OWASP Dependency-Check, SonarQube Scanner, and container scanning tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wide variety of security scanner integrations available through plugins&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration platforms and reporting tools through plugin ecosystem&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise and Compliance Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Pipeline-as-code security enforcement through pipeline libraries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shared security scripts and templates for consistency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audit logging capabilities through plugins&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platform-specific Considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Self-hosted platform requires additional attention to server hardening&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Plugin security updates and management responsibility&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Greater flexibility but increased security management overhead compared to cloud-hosted platforms&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cloud-Native CI/CD (AWS CodePipeline, Google Cloud Build)
&lt;/h3&gt;

&lt;p&gt;Built-in Security Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Serverless security scanning options that scale automatically&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration with cloud-native secrets management services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automated security scanning without infrastructure management overhead&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Third-party Integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Seamless integration with cloud security services like AWS Inspector and Google Binary Authorization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API-based integrations with cloud marketplace security tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Native integration with cloud provider security ecosystems&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise and Compliance Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Integration with cloud compliance frameworks and governance tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comprehensive audit logging for regulatory requirements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud-native policy enforcement and security governance&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platform-specific Considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Serverless architecture reduces infrastructure security management overhead&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deep integration with cloud provider security and compliance services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scaling and cost considerations tied to cloud provider pricing models&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Platform lock-in considerations for multi-cloud strategies&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pipeline Access Control and Supply Chain Security
&lt;/h2&gt;

&lt;p&gt;CI/CD pipelines require privileged access to source code, build environments, and production systems, making them high-value targets for attackers. Pipeline security focuses on protecting the build and deployment process itself.&lt;/p&gt;

&lt;p&gt;Access control implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Service accounts with least-privilege permissions for automated processes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-factor authentication requirements for all human pipeline access&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Role-based access control for pipeline configuration changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Short-lived, rotatable tokens instead of static credentials&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Network segmentation between build and production environments&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supply chain attack prevention: Modern software supply chain attacks target the build process to inject malicious code. Protection strategies include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dependency pinning with hash verification&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Private registries for internal dependencies and build tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build environment isolation and reproducible builds&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Software Bill of Materials (SBOM) generation for transparency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Signature verification for downloaded tools and dependencies&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pipeline monitoring requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Audit logging for all pipeline configuration changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alerting on failed security scans or unusual build patterns&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitoring for unauthorised access to build environments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tracking deployment success rates and rollback frequency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration with security incident response procedures&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementation Strategy
&lt;/h2&gt;

&lt;p&gt;Implement security scanning incrementally to avoid overwhelming development workflows. Start with the highest-impact, lowest-effort security checks and expand coverage based on your team's capacity and risk profile.&lt;/p&gt;

&lt;p&gt;Foundation security measures: Secrets scanning and dependency vulnerability detection provide immediate security value with minimal configuration overhead. Most CI/CD platforms include these capabilities natively or through simple marketplace integrations.&lt;/p&gt;

&lt;p&gt;Static analysis integration: SAST tools for your primary programming languages offer significant vulnerability reduction with moderate setup effort. Configure rule sets conservatively initially to minimise false positives and developer friction.&lt;/p&gt;

&lt;p&gt;Container and infrastructure scanning: If your team uses containerisation or infrastructure-as-code, these scans prevent configuration-based security issues. Implementation complexity varies by platform but typically requires only pipeline configuration changes.&lt;/p&gt;

&lt;p&gt;Dynamic testing and advanced monitoring: DAST scanning and comprehensive security monitoring require more setup effort but provide coverage for runtime vulnerabilities and production security events that other tools miss.&lt;/p&gt;

&lt;p&gt;Gradual expansion approach: Add one security check type at a time, allowing your team to adapt to new tools and processes. Focus on tool tuning and workflow integration before introducing additional scanning capabilities. This approach ensures security measures enhance rather than impede development productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Balancing Automation with Manual Security Review
&lt;/h2&gt;

&lt;p&gt;Automated scanning handles consistent, repeatable security checks, while manual review addresses complex business logic, architectural decisions, and contextual security considerations that tools cannot evaluate.&lt;/p&gt;

&lt;p&gt;Code review security integration: Incorporate security considerations into existing code review processes. Review authentication mechanisms, input validation, error handling, and privilege escalation paths during normal peer review workflows.&lt;/p&gt;

&lt;p&gt;Periodic security assessments: Schedule quarterly security reviews or external penetration testing to identify blind spots in automated coverage. These assessments validate that security controls work effectively in practice, not just in theory.&lt;/p&gt;

&lt;p&gt;Security incident response: Establish clear procedures for handling security findings from both automated tools and manual review. Define severity levels, response timelines, and escalation paths for different types of security issues.&lt;/p&gt;

&lt;p&gt;Continuous security improvement: Use security findings as learning opportunities. Conduct post-incident reviews to identify process improvements, tool configuration changes, or additional security measures needed to prevent similar issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Staying Current with Security Threats
&lt;/h2&gt;

&lt;p&gt;Security threats evolve constantly. Maintain awareness without getting overwhelmed by focusing on actionable intelligence relevant to your technology stack and threat model.&lt;/p&gt;

&lt;p&gt;Information sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Platform-specific security advisories (GitHub Security Lab, GitLab Security)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Language and framework security announcements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud provider security bulletins&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OWASP project updates and vulnerability databases&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tool maintenance: Keep security scanning tools updated with latest vulnerability signatures and detection rules. Many tools provide automatic updates or notifications when new security rules become available.&lt;/p&gt;

&lt;p&gt;Learning from incidents: When security issues are discovered, conduct brief post-mortems to identify process improvements, tool configuration changes, or additional security measures needed to prevent recurrence.&lt;/p&gt;

&lt;p&gt;Industry best practices: Follow security researchers and practitioners in your technology areas. Security conferences, blogs, and communities provide insights into emerging threats and defensive techniques.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Integrating security into CI/CD pipelines provides teams with security capabilities without requiring dedicated security staff. Automated security scanning catches common vulnerabilities early in the development cycle, reducing remediation costs and deployment risks.&lt;/p&gt;

&lt;p&gt;Implementation principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Start with platform-native security features before adding external tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prioritise high-impact security checks with low false positive rates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement scanning incrementally to avoid disrupting development workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure tools for fast feedback and minimal developer friction&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Balance automation with manual security review for comprehensive coverage&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Measurable security improvements: Teams implementing comprehensive pipeline security typically see large reduction in security vulnerabilities reaching production, faster incident response times, and improved compliance with security frameworks. The initial investment in tool setup and configuration pays dividends through reduced security incidents and emergency patches.&lt;/p&gt;

&lt;p&gt;Long-term benefits: Beyond immediate vulnerability detection, pipeline security creates a culture of security awareness within development teams. Developers learn secure coding practices through tool feedback, understand common vulnerability patterns, and build security considerations into architectural decisions.&lt;/p&gt;

&lt;p&gt;Modern CI/CD platforms make security integration straightforward with built-in scanning capabilities, extensive tool marketplaces, and detailed documentation. Small teams can achieve robust security posture by leveraging these platforms effectively and implementing security checks systematically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cyberoptic.co.nz/" rel="noopener noreferrer"&gt;https://www.cyberoptic.co.nz/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>devops</category>
    </item>
    <item>
      <title>SharePoint “ToolShell” Vulnerability (CVE-2025-53770)</title>
      <dc:creator>Cyberoptic Security Ltd</dc:creator>
      <pubDate>Sun, 14 Sep 2025 21:26:49 +0000</pubDate>
      <link>https://dev.to/jrap/sharepoint-toolshell-vulnerability-cve-2025-53770-3jcn</link>
      <guid>https://dev.to/jrap/sharepoint-toolshell-vulnerability-cve-2025-53770-3jcn</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;This is a critical SharePoint server bugthat lets attackers break in &lt;em&gt;without authenticating&lt;/em&gt; and gain admin access to the system. This currently only affects SharePoint on-premise, and SharePoint online in M365 is not impacted.&lt;/p&gt;

&lt;p&gt;In practice, an unauthenticated POST to the SharePoint &lt;em&gt;ToolPane.aspx&lt;/em&gt; page (with a spoofed Referer header) bypasses login checks, allowing a malicious payload to run on the server.&lt;/p&gt;

&lt;p&gt;Attackers can upload a web shell, extract the site's secret machine keys (ASP.NET ValidationKey/DecryptionKey), and use those keys to forge trusted ViewState or authentication tokens.&lt;/p&gt;

&lt;p&gt;In short, they gain full access to SharePoint content (files, configs, internal APIs) and persistent control that survives normal fixes. The bug has been actively exploited in the wild, so urgent patching and follow-up are needed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1643cwq51tu79cvdjep1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1643cwq51tu79cvdjep1.png" alt="SharePoint is having a bad day" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SharePoint is having a bad day&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploit Chain
&lt;/h2&gt;

&lt;p&gt;The "ToolShell" attack is an exploit chain combining two SharePoint flaws CVE-2025-53771/53770 into unauthenticated RCE. These were previously identified as CVE-2025-49706/49704 and patched however, bypasses for these have since been discovered. In simplified terms, attackers do the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Authentication bypass via ToolPane.aspx: The attacker sends a specially crafted POST request to&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;/_layouts/15/ToolPane.aspx?DisplayMode=Edit &lt;/p&gt;

&lt;p&gt;with the HTTP Referer header set to &lt;em&gt;/_layouts/SignOut.aspx&lt;/em&gt;. This tricks SharePoint into trusting the request without a real login. In effect, the attacker gains anonymous admin access to the ToolPane editor. (This bypass was patched as CVE-2025-53771.)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;RCE via insecure deserialization:With access to ToolPane.aspx, the attacker submits a malicious payload in the POST body. This payload uses an ASP.NET &lt;em&gt;&amp;lt;asp:UpdateProgress&lt;/em&gt;&amp;gt; and a nested *&lt;a&gt;Scorecard:ExcelDataSet&lt;/a&gt;*element whose *CompressedDataTable *attribute contains attacker-controlled data. SharePoint's Data Web Part (DWP) parser deserializes that *CompressedDataTable *on the server, triggering code execution. In practice this means the attacker can execute arbitrary PowerShell or other commands as the SharePoint process (w3wp.exe). For example, researchers observed the attacker's payload run *whoami *and write it to a web-accessible file to confirm code execution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web shell and machine-key theft:The RCE allows the attacker to upload a web shell (commonly named &lt;em&gt;spinstall0.aspx*or similar) into the SharePoint layouts folder. Using this shell or the existing context, the attacker reads the server's &lt;a href="http://asp.net/" rel="noopener noreferrer"&gt;ASP.NET&lt;/a&gt; configuration (web.config), specifically the **section. The *ValidationKey *and *DecryptionKey *are used by ASP.NET to sign ViewState and encrypt auth tokens. The web shell code typically uses *System.Web's MachineKeySection&lt;/em&gt; to dump these keys to the attacker. With those keys known, the attacker has the server's cryptographic secrets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Persistence via forged ViewState/cookies:Armed with the stolen keys, the attacker can now forge valid ASP.NET payloads. They can craft a malicious &lt;em&gt;__VIEWSTATE&lt;/em&gt;(or authentication cookie) and sign it so the server will accept it as legitimate. For example, tools like ysoserial.net can generate a new deserialization payload encoded into &lt;em&gt;ViewState&lt;/em&gt; using the stolen &lt;em&gt;ValidationKey&lt;/em&gt;. This grants the attacker essentially backdoor access, even if the original exploit is closed, the attacker can re-enter by sending new signed payloads that the patched server will trust. In effect, they maintain authenticated RCE without triggering logins or alerts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post-exploitation and privilege escalation:Once code execution is achieved, attackers typically spawn a command shell on the host. In observed cases the SharePoint worker process (w3wp.exe) launches cmd.exe and then powershell.exe with encoded arguments to run their scripts. From this position, attackers can use Windows tools to gain higher privilege. For instance, they might use &lt;em&gt;PsExec&lt;/em&gt;(with the -s option) or WMI tools (Impacket's &lt;em&gt;wmiexec.py&lt;/em&gt;) to run processes as the LOCAL SYSTEM account. With SYSTEM-level code execution on the SharePoint server, attackers have full control: they can disable antivirus, dump AD credentials, or move laterally across the network. (Microsoft reports that after exploiting SharePoint, actors often use &lt;em&gt;PsExec&lt;/em&gt; and Impacket/WMI to execute further commands as SYSTEM -- effectively a total takeover.)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How It Works "Under the Hood"
&lt;/h2&gt;

&lt;p&gt;This exploit chain abuses normal ASP.NET mechanisms in unexpected ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;ASP.NET ViewState:SharePoint pages use the &lt;em&gt;__VIEWSTATE*hidden field to preserve state. By default, ASP.NET signs (and optionally encrypts) *ViewState&lt;/em&gt; with a MAC using the server's &lt;em&gt;ValidationKey &lt;/em&gt;(from &lt;em&gt;&lt;/em&gt;). In normal use, this prevents tampering of page data. In ToolShell, the attacker injects a ViewState-like payload &lt;em&gt;indirectly&lt;/em&gt; via the DWP (&lt;em&gt;MSOTlPn_DWP&lt;/em&gt;) as described above. After stealing the keys, they can create entirely new ViewState blobs that the server will accept as valid.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ASP.NET machineKey:The &lt;em&gt;*element in *web.config*defines two critical values: the *ValidationKey&lt;/em&gt;(for HMAC signing) and the &lt;em&gt;DecryptionKey&lt;/em&gt; (for any encryption). ASP.NET uses these keys to&lt;/p&gt;

&lt;p&gt;(a) sign VIEWSTATE,&lt;/p&gt;

&lt;p&gt;(b) encrypt/decrypt FormsAuth or FedAuth cookies, and&lt;/p&gt;

&lt;p&gt;(c) protect any other secure state.&lt;/p&gt;

&lt;p&gt;When the attacker steals the keys, they can forge new authentication cookies (bypassing login) and viewstate, and even decrypt any data previously protected. For example, Cloudflare notes that with the machine keys an attacker "can independently forge authentication tokens and  VIEWSTATE payloads" that survive normal mitigations. Simply rebooting the server or patching won't invalidate requests signed with the old key.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Web Part deserialization:SharePoint's &lt;em&gt;ToolPane.aspx&lt;/em&gt; is meant for site admins to add/edit web parts. It processes a "Data Web Part" (DWP) specification from form data. The attacker abuses a legitimate PerformancePoint web control (Scorecard:ExcelDataSet) that has a property (CompressedDataTable) which ASP.NET deserializes directly. Hazcod's PoC explains that by setting &lt;em&gt;*to base64-compressed XML, the SharePoint DWP parser will invoke .NET deserialization on it. In that payload, the attacker can embed a *System.DelegateSerializationHolder*or similar gadget that runs code. This is the core insecure deserialization: SharePoint never expected untrusted data here, and thus executes the serialized object unchecked. (The key form parameters are *MSOTlPn_Uri&lt;/em&gt;-- a fake control path -- and &lt;em&gt;MSOTlPn_DWP&lt;/em&gt; -- the injected ASP.NET snippet.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Referer check bypass: The authentication bypass itself was a patch bypass. SharePoint originally intended to block direct ToolPane access by checking the Referer header against legitimate pages. The exploit sends a Referer of /layouts/SignOut.aspx which, due to a logic bug, caused the check to succeed. In other words, SharePoint thought the user was signing out and then immediately editing ToolPane, and did not enforce login. Microsoft patched this logic, but attackers reversed it into the new CVE-53771 bypass.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why It Remains Dangerous After Patching
&lt;/h2&gt;

&lt;p&gt;If an attacker has already exploited the vulnerability before patching, the danger does not go away with a software update. This is because the attacker steals long-term secrets (the machine keys) during the attack. With those keys in hand, the attacker can forge new exploits or tokens at any time in the future, even after the CVE is patched. In short, the patch closes the vulnerability, but it does not change the stolen keys. Analysts warn that attackers "take the server's cryptographic machine keys" so they can persist beyond normal fixes. With the old keys, they can continue to generate authenticated &lt;em&gt;ViewState&lt;/em&gt; payloads or cookies that the server will trust.&lt;/p&gt;

&lt;p&gt;Put simply: a patched system that was already breached will still trust requests signed with the old &lt;em&gt;ValidationKey/DecryptionKey&lt;/em&gt;. Rebooting or removing the web shell is not enough. Only rotating those keys, or completely rebuilding the server, can invalidate the attacker's hold. Until then, the attacker effectively has a master key to the server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mitigation and Hardening
&lt;/h2&gt;

&lt;p&gt;Once patched, administrators must assume any exposed SharePoint system may have already been compromised. Below are the key steps needed to properly remediate and secure affected systems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;### Apply Microsoft's security updates&lt;/p&gt;

&lt;p&gt;Install the July 2025 cumulative updates for SharePoint:&lt;/p&gt;

&lt;p&gt;SharePoint Subscription Edition: &lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770" rel="noopener noreferrer"&gt;KB5002768&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SharePoint Server 2019: &lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770" rel="noopener noreferrer"&gt;KB5002754&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SharePoint Server 2016: &lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770" rel="noopener noreferrer"&gt;KB5002760&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These updates patch both CVE-2025-53770(RCE) and CVE-2025-53771(auth bypass), closing the main vulnerability chain exploited in the wild &lt;a href="https://www.microsoft.com/en-us/security/blog/2025/07/09/investigating-exploitation-of-sharepoint-cve-2025-53770" rel="noopener noreferrer"&gt;Microsoft Security Blog&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Enable AMSI and Defender
&lt;/h3&gt;

&lt;p&gt;Microsoft recommends enabling AMSI (Antimalware Scan Interface) in SharePoint to inspect potentially malicious content. Ensure Microsoft Defender Antivirusis installed and active on the SharePoint server. This increases the chance of detecting web shells or suspicious ViewState payloads &lt;a href="https://www.microsoft.com/en-us/security/blog/2025/07/09/investigating-exploitation-of-sharepoint-cve-2025-53770" rel="noopener noreferrer"&gt;Microsoft Blog&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Rotate &lt;a href="http://asp.net/" rel="noopener noreferrer"&gt;ASP.NET&lt;/a&gt; Machine Keys
&lt;/h3&gt;

&lt;p&gt;The exploit allows attackers to steal the &lt;em&gt;*section from *web.config&lt;/em&gt;, granting them the ability to forge authentication cookies or &lt;em&gt;ViewState&lt;/em&gt; payloads. Simply patching will not revoke that access.&lt;/p&gt;

&lt;p&gt;You must rotate these keys to invalidate any existing tokens. Microsoft recommends doing this via Central Admin:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Central Admin &amp;gt; Monitoring &amp;gt; Review job definitions &amp;gt; Run "Machine Key Rotation"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then restart IIS (&lt;em&gt;iisreset&lt;/em&gt;) to flush cached values &lt;a href="https://blog.cloudflare.com/cve-2025-53770-sharepoint-toolshell-exploit-analysis" rel="noopener noreferrer"&gt;Cloudflare&lt;/a&gt;, &lt;a href="https://www.microsoft.com/en-us/security/blog/2025/07/09/investigating-exploitation-of-sharepoint-cve-2025-53770" rel="noopener noreferrer"&gt;Microsoft Blog&lt;/a&gt;, and &lt;a href="https://www.trustedsec.com/blog/toolpane-persistence-and-cve-2025-53770" rel="noopener noreferrer"&gt;TrustedSec&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;US-CERT and &lt;a href="https://www.cisa.gov/news-events/alerts/2025/07/09/cisa-urges-action-against-sharepoint-toolshell" rel="noopener noreferrer"&gt;CISA&lt;/a&gt;explicitly advise rotating the keys before and after applying updates.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Check for Signs of Compromise
&lt;/h3&gt;

&lt;p&gt;Because attackers may already be inside the system, look for known indicators of compromise (IOCs):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Presence of suspicious files like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;/layouts/15/spinstall0.aspx&lt;/em&gt;(or variants: &lt;em&gt;spinstall1.aspx&lt;/em&gt;, &lt;em&gt;debug_dev.js&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;  Unusual scripts or executables in the SharePoint *LAYOUTS *folder&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;POST requests to &lt;em&gt;/layouts/15/ToolPane.aspx?DisplayMode=Edit&lt;/em&gt; with odd Referer values&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;PowerShell execution or encoded command lines launched by w3wp.exe&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Unexpected outbound connections or file writes from SharePoint directories&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;These indicators have been confirmed by &lt;a href="http://horizon3.ai/" rel="noopener noreferrer"&gt;Horizon3.ai&lt;/a&gt;, &lt;a href="https://blog.cloudflare.com/cve-2025-53770-sharepoint-toolshell-exploit-analysis" rel="noopener noreferrer"&gt;Cloudflare&lt;/a&gt;, and &lt;a href="https://hazcod.com/blog/cve-2025-53770-sharepoint-poc" rel="noopener noreferrer"&gt;Hazcod's analysis&lt;/a&gt;. Also review Windows Event Logs and Defender logs for signs of tampering.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Invalidate All Authentication Tokens
&lt;/h3&gt;

&lt;p&gt;Once the machine keys are rotated, all existing ViewState, FedAuth cookies, and FormsAuth tokens are invalidated. This ensures any attacker-forged tokens no longer work.&lt;/p&gt;

&lt;p&gt;You should also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Invalidate current user sessions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Require re-authentication for all users&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change credentials for any privileged SharePoint service accounts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reboot the server after rotation to enforce the new keys &lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770" rel="noopener noreferrer"&gt;Microsoft&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Limit Exposure and Tighten Permissions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Remove internet exposure for outdated SharePoint versions (e.g. 2013 or earlier) as these are no longer supported &lt;a href="https://www.ncsc.govt.nz/newsroom/sharepoint-toolshell-advisory-july2025" rel="noopener noreferrer"&gt;NCSC NZ&lt;/a&gt;, &lt;a href="https://www.cisa.gov/news-events/alerts/2025/07/09/cisa-urges-action-against-sharepoint-toolshell" rel="noopener noreferrer"&gt;CISA&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apply the principle of least privilege to farm and service accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Remove unnecessary admin users and test accounts from the SharePoint site.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use firewall rules or a WAF to limit access to SharePoint's */layouts/15/ToolPane.aspx *endpoint where practical.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By combining the patch, detection, key rotation, IOC checking, and token invalidation, you significantly reduce the chance that attackers can maintain access using the stolen secrets. A reboot alone is not sufficient. These steps are consistent with best practice guidance from Microsoft, CISA, Cloudflare, VulnCheck, and NCSC NZ.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official Security Advisories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Microsoft Security Update Guide&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  CVE-2025-53770 (Remote Code Execution): &lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770" rel="noopener noreferrer"&gt;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  CVE-2025-53771 (Auth Bypass): &lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53771" rel="noopener noreferrer"&gt;https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53771&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Microsoft Blog -- Immediate mitigation and response guidance&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.microsoft.com/en-us/security/blog/2025/07/09/investigating-exploitation-of-sharepoint-cve-2025-53770" rel="noopener noreferrer"&gt;https://www.microsoft.com/en-us/security/blog/2025/07/09/investigating-exploitation-of-sharepoint-cve-2025-53770&lt;/a&gt;&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Microsoft KB Articles for Patching&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Subscription Edition: KB5002768&lt;/li&gt;
&lt;li&gt;  SharePoint 2019: KB5002754&lt;/li&gt;
&lt;li&gt;  SharePoint 2016: KB5002760&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Cyberoptic Security&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.cyberoptic.co.nz/" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.cyberoptic.co.nz/" rel="noopener noreferrer"&gt;https://www.cyberoptic.co.nz/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Pen Testing Your Mobile Application (and Its API)</title>
      <dc:creator>Cyberoptic Security Ltd</dc:creator>
      <pubDate>Fri, 29 Aug 2025 00:16:12 +0000</pubDate>
      <link>https://dev.to/jrap/pen-testing-your-mobile-application-and-its-api-4hf2</link>
      <guid>https://dev.to/jrap/pen-testing-your-mobile-application-and-its-api-4hf2</guid>
      <description>&lt;p&gt;Mobile apps are everywhere. Whether it's a banking app, a fitness tracker, or a marketplace for local goods, almost every business building digital products today has a mobile application at its core. But while app development has accelerated, security often struggles to keep up.&lt;/p&gt;

&lt;p&gt;Mobile application testing is a critical part of a secure software development lifecycle. Unfortunately, many development teams still underestimate the risks, or assume that app stores, operating systems, or third-party libraries will take care of it all. They don't.&lt;/p&gt;

&lt;p&gt;There are two sides to mobile application security testing: the application itself, and the API it talks to. Both need proper penetration testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1tew5hzd4e8x55dr4p4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1tew5hzd4e8x55dr4p4p.png" alt="Mobile Applications" width="525" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing the App Itself
&lt;/h2&gt;

&lt;p&gt;Most mobile apps run on iOS or Android, and a lot of teams rely heavily on the security of those platforms to protect the app itself. While Apple and Google do a good job, relying on device-level security alone is risky. Once someone has physical access to the phone, or has jailbroken or rooted it, your app's internal security is the only thing standing between them and your users' data.&lt;/p&gt;

&lt;p&gt;Good mobile app penetration testing looks at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Poor data hygiene -- is sensitive data cached, logged, or stored insecurely?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Insecure local storage -- are hardcoded secrets or credentials accessible from the app binary?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Weak protections -- does the app allow users to bypass authentication or escalate privileges?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reverse engineering -- can someone decompile the app and understand how it works?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Insecure code -- are you using vulnerable libraries or outdated SDKs?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The OWASP Mobile Top 10 is a solid reference point here. It covers key mobile app security risks like insecure authentication, improper platform usage, and insufficient cryptography. If your app hasn't been tested against these, it's vulnerable -- plain and simple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing the API Behind the App
&lt;/h2&gt;

&lt;p&gt;The second half of the equation is your app's backend, the API it talks to.&lt;/p&gt;

&lt;p&gt;Too many mobile apps act like the API is some black box, assuming that only the app can talk to it. But the truth is, anyone can send requests to your API with the right tools, Postman, Burp Suite, or even curl. If your API doesn't validate requests properly, or if it exposes too much data, it becomes a target.&lt;/p&gt;

&lt;p&gt;API penetration testing helps identify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Broken object-level authorisation - can one user access another's data?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Excessive data exposure - are you unintentionally releasing sensitive data?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lack of rate limiting - can this be abused to adversely affect your service?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Poor authentication - can it be easily bypassed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Injection flaws - does the API prevent injection attacks such as SQLi?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these are covered in the &lt;a href="https://owasp.org/www-project-api-security/" rel="noopener noreferrer"&gt;OWASP API Security Top 10&lt;/a&gt;, which should be considered essential reading for any team developing a mobile or web application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Risk: What Happens if You Don't Test?
&lt;/h2&gt;

&lt;p&gt;Let's say someone gets hold of a user's device. Maybe it's lost, stolen, or handed in for repairs. If your app stores sensitive data locally, like session tokens or personal info, that's an issue. Or worse, if you've hardcoded credentials to your API inside the app (and yes, this still happens), then you've just given an attacker everything they need to target your backend systems.&lt;/p&gt;

&lt;p&gt;We've seen real-world examples where apps left sensitive endpoints unprotected or trusted the app too much and didn't verify requests on the server side. In one case, an app allowed anyone to pull down full user profiles just by changing a user ID in the request. That's the kind of thing that proper penetration testing picks up before it becomes a news headline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Mobile Application Penetration Testing Involves
&lt;/h2&gt;

&lt;p&gt;At Cyberoptic Security, we break mobile application testing into two focused phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Mobile app testing -- reviewing how the app handles data, how it's built, and how resilient it is to reverse engineering and tampering. We simulate what an attacker could do with a compromised device or a modified app binary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API testing -- analysing the API endpoints your app communicates with. We test access controls, input validation, authentication mechanisms, and other key areas where APIs often fail.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This combined approach provides a clear picture of how your app would stand up to real-world attacks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Dev Teams Should Care
&lt;/h2&gt;

&lt;p&gt;Mobile app development is fast-paced. MVPs get released quickly. Security can get pushed aside for speed. But in 2025, security is no longer a nice-to-have, it's an expectation. Users trust your app with their data, and regulators increasingly expect responsible handling of personal information.&lt;/p&gt;

&lt;p&gt;Pentesting your mobile application (and its API) helps protect your users, your reputation, and your business. It's far more cost-effective to find these issues early than to clean up after a breach or privacy complaint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful Resources for Mobile and API Security
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://owasp.org/www-project-mobile-top-10/" rel="noopener noreferrer"&gt;OWASP Mobile Top 10&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://owasp.org/www-project-api-security/" rel="noopener noreferrer"&gt;OWASP API Security Top 10&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://owasp.org/www-project-mobile-security-testing-guide/" rel="noopener noreferrer"&gt;Mobile Security Testing Guide (MSTG)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are excellent resources for developers and security teams. In addition to good development practices, mobile app penetration testing is also highly recommended.&lt;/p&gt;

&lt;h2&gt;
  
  
  Need Help?
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://www.cyberoptic.co.nz" rel="noopener noreferrer"&gt;Cyberoptic Security&lt;/a&gt;, we work with companies to deliver practical, hands-on mobile app and API security testing. We take the time to understand your tech stack, your threat model, and your release cycle. Whether you're launching your first app or scaling to thousands of users, we'll help you do it securely.&lt;/p&gt;

&lt;p&gt;If your development team is building or maintaining a mobile app, now is the time to invest in security testing. Don't wait for something to go wrong.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>mobile</category>
      <category>api</category>
    </item>
  </channel>
</rss>
