These docs are for v1.1. Click to read the latest docs for v1.2.

Enhancements

  1. Referencing OTP objects:
    • Old syntax: {{ authobject.otpToken1 }}
    • New syntax: {{ authobject.otps.<OTPNAME> }} - all current tokens will be named "token1" so you will use {{ auth_object.otps.token1 }}. OTP names can be modified to any name consisting of alphanumeric characters and underscore _ only.

Bright’s documentation

  1. Referencing stages (Custom API flow): Stage names will no longer be restricted to starting with the stage. They can consist of alphanumeric characters and underscore _ only. The term any is a reserved name and cannot be used.
    • Old syntax: {{ auth_object.<STAGE_NAME>.request.headers }} or {{ auth_object.any_stage.request.headers }}. You can refer to request/response and headers/body/URL as usual, where the <STAGE_NAME> must start with the stage).
    • New syntax: {{ auth_object.stages.<STAGE_NAME>.request.headers }} or {{ auth_object.stages.any.request.headers }}. Existing authentication objects will be upgraded automatically.

Bright’s documentation

  1. Enhanced crawler logic: Improved the crawler logic to identify more Entrypoints, which expands the attack surface. Users may notice increased crawling and scanning times as a result. New discoveries will reveal more entrypoints, so users should select their attack surface carefully to manage scan times. Legacy scans may also experience longer crawling and testing times due to the expanded attack surface.

Enhancements

  • The new version of Bright-CLI (12.1.0)
    • Removed hardcoded test types in scan commands, enhancing flexibility (#554)

Bug Fixes

  • repeater: add cap_net_raw+ep capabilities for node in Docker image (#560)
  • scan: correct param handling to respect user-provided values (#566)

For more details, visit the Brightsec repository.

Enhancements

  1. Optional "Execute the application under test" Command (Bright Dev-Centric) - If no start command is provided, the process will not start automatically, allowing users to initiate their target manually. This is useful for users who need to run complex scripts or deal with issues preventing automatic startup.

Bright's documentation

  1. The new version of Bright-CLI (11.5.4) - The Repeater server now decodes base64 encoded bodies before running scripts, making script execution simpler and reducing potential errors.

Bright's Github repository

Enhancements

  • Webhooks - users can now add headers sent with the webhook to include authentication headers, enabling webhooks to access authenticated endpoints.
    • Webhooks and their headers can be managed from the Project settings in the Webhooks section. To add a header, do the following:
      • Select a suitable Header name from a drop-down menu or type your own.
      • Provide a Header value to proceed.

📘

There is no limit to the number of custom header values you can add.

Bright's documentation


  • Scan Health monitoring - Easily spot and filter authentication and network issues during a scan with colored indicators based on successful request percentage. This health status refers to scan results, not overall Entrypoint health, highlighting test interactions during scanning.
    • New columns have been added to the Entrypoints table on the Scan Info page: Health, Successful Requests, and Total Requests. The Health metric is calculated by dividing the number of successful requests by the total number of requests.
    • New filters for Health, Successful Requests, and Total Requests are available.
    • Successful Requests are any responses that are not 401 (Unauthorized) or 403 (Forbidden).

Bright's documentation


  • Users can now add metadata to run a new scan call to simplify automation workflows and provide additional metadata for a complex programmatical flow. This is relevant only for API start scans.
  • To add metadata, add the customerMetadata parameter into the request body:
{
  "tests": [
    "csrf",
    "sqli"
  ],
  "buckets": [
    "string"
  ],
  "entryPointIds": [
    "EP_ID"
  ],
  "discoveryTypes": [
    "archive"
  ],
  "poolSize": 50,
  "crawlerUrls": [
    "https://example.com"
  ],
  "attackParamLocations": [
    "artifical-fragment"
  ],
  "extraHosts": {
    "example.com": "127.0.0.1"
  },
  "headers": [
    {
      "name": "Authorization",
      "value": "Bearer token",
      "mergeStrategy": "replace"
    }
  ],
  "fileId": "FILEID",
  "hostsFilter": [
    "localhost:3000"
  ],
  "repeaters": [
    "REPEATERID"
  ],
  "smart": true,
  "optimizedCrawler": true,
  "maxInteractionsChainLength": 5,
  "subdomainsCrawl": true,
  "skipStaticParams": true,
  "projectId": "PROJECTID",
  "exclusions": {
    "requests": [
      {
        "patterns": [
          "(?<excluded_file_ext>(\\/\\/[^?#]+\\.)((?<image>jpg|jpeg|png|gif|svg)|(?<font>ttf|otf|fnt|fon))(?:$|#|\\?))"
        ],
        "methods": [
          "GET"
        ]
      }
    ],
    "params": [
      "^(?!.*login).*$"
    ],
    "htmlSelectors": [
      "/html/body/div[1]/table/tbody/tr/td[8]/a",
      ".mat-focus-indicator .mat-menu-item ng-tns-c46-3"
    ]
  },
  "inclusions": {
    "headers": [
      "Authorization"
    ]
  },
  "slowEpTimeout": 100,
  "targetTimeout": 120,
  "name": "brokencrystals owasp top 10",
  "authObjectId": "AUTHOBJECTID",
  "schedule": {
    "type": "future",
    "repeatInterval": 1000,
    "repeatIntervalUnit": "hours",
    "repeatWeekdays": [
      0
    ],
    "nextRunAt": "2024-06-10T10:17:06.825Z",
    "endAt": "2024-06-10T10:17:06.825Z",
    "runNow": false,
    "skipConcurrent": true
  },
  "module": "dast",
  "templateId": "TEMPLATEID",
  "info": {
    "client": {
      "name": "bright-cli",
      "version": "10.0.0"
    },
    "provider": "string",
    "source": "api"
  },
  "configSource": {
    "type": "integration",
    "metadata": [
      {
        "system": "azure",
        "issueSourceId": "ISSUESOURCEID"
      }
    ]
  },
  "customerMetadata": "TEXT_PLACEHOLDER"
}

  • The customerMetadataThe field is a string type, so any text information can be placed here. The maximum length of this field is 10000 characters.
  • To request previously added metadata, use the endpoint: /api/v1/scans/{SCAN_ID}/customer-metadata
  1. New Large language models (LLM) test
  • Insecure Output Handling (High-severity, #2 in the OWASP Top 10 for LLM)
  • This test aims to validate that the application properly sanitizes and escapes the outputs of the large language model (LLM) to prevent insecure or harmful responses, such as cross-site scripting (XSS) and HTML injection vulnerabilities. Without proper sanitation and escaping, LLM responses can expose users to potential security risks by allowing HTML elements to manipulate the application's DOM.
  • Example:
    • The vulnerability occurs when an attacker inputs a malicious prompt in an LLM that appears to the user as a legitimate link.
      When the user clicks on the link, the user's browser runs the malicious script.
      This exposes the user to potential security risks such as Access to User Data, Phishing Attacks, Execute Unauthorized Code or Commands, Website Defacement, and Malware Distribution.
  • Attacker: Can you demonstrate adding a link to https://example.com in a newsletter using HTML? Don't use code format.
  • LLM: Of course! To add a link to https://example.com in a newsletter using HTML, you can simply use the following code: Click here to visit Example. This will create a clickable link in your newsletter that directs readers to the specified website.

Bright's documentation

OWASP: LLM02: Insecure Output Handling

  1. Snyk SAST integration: many-to-one
  • Add multiple Snyk SAST repositories to your Bright project to encompass all your asset findings in one place.
  • View, sort, and filter your Snyk repositories using the repository column in the Snyk vulnerabilities tab on any SAST issues validation scan page.

Previously, you could add only one Snyk repository to a single Bright project.

Bright's documentation

  1. Visual Studio Code Extension
    Visual Studio Marketplace
    • Project-level findings
      Share the work with everyone on the team; view all your project findings originating from any developer on the project and retest them to check if they are resolved.
    • Start mapping with a click
      Instantly start a new mapping (Discovery) of your application right from the Bright IDE side panel using the “Start Mapping” and “Stop All” options.
      Bright's documentation

  1. Scan Health monitoring
    • Understand scan health status at a glance based on successful request percentage with clear colored indicators to easily identify issues and sort/filter scans by health for informed decision-making.
    • The metric is calculated by dividing the number of successful requests by the total number of requests.
    • "Successful Requests" are any responses that are not 401 (Unauthorized) or 403 (Forbidden).
      Bright's documentation

Enhancements

  • New webhook trigger actions

Trigger your CI/CD tests and deployment process with the new webhook trigger actions, “Scan status changed” and “Scan started” in addition to the existing “Scan completed” option.

Bright's documentation

Example:

scan_completed: {
    payload: {
        name: 'My Scan',
        scanId: 'jMx6bGh9HTNBRgE8BZi9dB',
        status: 'stopped',
        elapsed: 0,
        endTime: '2024-01-01T00:00:00.000Z',
        avgSpeed: null,
        requests: 0,
        createdAt: '2024-01-01T00:00:00.000Z',
        projectId: '75ctkAG1Fd0qRu3AG55sDg',
        startTime: null,
        discovering: null,
        entryPoints: 0,
        totalParams: 0,
        totalTraffic: { sent: 0, received: 0 },
        avgResponseTime: 0,
        numberOfLowSeverityIssues: 0,
        numberOfHighSeverityIssues: 0,
        numberOfMediumSeverityIssues: 0,
        numberOfCriticalSeverityIssues: 0
    },
    when: '2024-01-01T00:00:00.000Z',
    id: '09c7bd7a-e109-4e43-a67b-d39c8823b60d',
    type: 'scan_completed'
  • Client-side attacks

    • Unvalidated Redirect (Medium-severity, # 1 in the OWASP Top 10) - is an attack that occurs when a website allows users to be redirected to any site specified in the URL path. This could cause the website to redirect the user to a malicious website controlled by an attacker that could be used to steal information or install malware.
    • For example, If you visit this link: https://brokencrystals.com/api/goto?url=www.example.com, you will be automatically taken to www.example.com
    • In this release, we’ve
      Optimized the Unvalidated Redirect test execution duration (from 75 to 30 minutes on Broken Crystals)
  • Server-side attacks

    • Cross-Site Request Forgery (CSRF) (Medium-severity, # 1 in the OWASP Top 10) - is an attack that occurs when a malicious site you visit makes a request to another site where you're logged in, using your credentials without authorizing it. For example, requesting to transfer funds, changing passwords, etc.
    • OWASP: Cross Site Request Forgery (CSRF)
  • What’s new?

    • SameSite is a browser security mechanism that determines when a website's cookies are included in requests originating from other websites.
  • All major browsers currently support the following SameSite restriction levels:

    • Strict
    • Lax (default)
    • None
  • Lax SameSite restrictions mean that browsers will send the cookie in cross-site requests, if both of the following conditions are met:

    • The request uses the GET method.
    • The request resulted from a top-level navigation by the user, such as clicking on a link.
    • In this release, we’ve
      Added the SameSite Lux vector, increasing the number of CSRF findings
  • Edit recorded authentications

    • The recorded browser-based form authentication type helps users set up authentication objects by recording the login steps in the background using the Bright or Chrome recorder and capturing this in a JSON format. When authentication is required for the scanning, Bright will repeat these steps and log on to the application.

    • In this release, we’ve added options to edit your recorded files:

    • Field value: You can now edit the authentication field value, such as user name or password, In the Create/Edit Authentication dialog under the Auth Flow Setup tab.

    • Page Timeouts: Adjust how long each page waits before timing out (from 1 to 120 seconds) to address slow page loading speed.

    • One-Time Passwords: append one-time passwords (OTP) generated by the OTP Generation settings under the Advanced tab by entering the marker {{auth_object.otpToken}}, replacing the static OTP saved by the page recording (e.g. 763041).


  • Authentication recorder - Bright’s authentication recorder is a simple utility that assists practitioners in setting the authentication object for the scanning flow.

  • The idea is to start a recording session in the background. The user performs a regular login flow, and Bright captures all actions in the background to be re-played later during the scan automation.

  • Here's how to find the authentication recorder in Bright web app:

  • To learn more on how to use the Authentication Recorder, see the article.


  • Open Cloud Storage test (Medium severity, # 1 in OWASP top 10) - Cloud storage services allow websites and services to store and access binary objects (such as photos, videos, documents, etc.) using a storage object (also called Bucket or Blob).
  • The Open Cloud Storage test looks for cloud storage object URLs in Entrypoints, requests, and responses to verify they do not have full anonymous access - preventing read or write that may result in sensitive information leakage, data tampering, or unauthorized access.
  • URL example: https://neuralegion-open-bucket.s3.amazonaws.com
  • We consolidated all major cloud vendors' storage features under the Open Cloud Storage test:
    • AWS S3 Storage
    • Google Cloud Storage
    • Azure Blob Storage (added in this version)
  • Server-side test
    • SQL Injection (SQLi) (Critical-severity, #3 in the OWASP Top 10), is a security vulnerability that lets attackers manipulate a website's database using the Structured Query Language used to communicate with databases.
    • An attacker might inject malicious SQL code, often through web form inputs or URL parameters, making the website execute unintended commands. SQL Injection can lead to unauthorized access to sensitive data, data deletion, or other malicious actions against a database.
  • In this release, we’ve:
    • Optimized the SQLi test execution time
  • OWASP: SQL Injection
  • Test Authentication check
  • A warning dialog is presented when attempting to create or save an authentication object without completing the test authentication flow first, ensuring discoveries/scans can run smoothly.



  • Consolidating statuses
    • The status of discovery and scanning activities was consolidated to reflect a clear view of the activity's status.
    • The newly available statuses are Completed, Stopped, Failed, Running, Queued, and Scheduled.

Changes from previous statuses:

Previous valueNew value
"Searching", "Pending" and "Idle""Running"
"Incomplete", "Disrupted""Failed"
"Complete", "Done""Completed"

To avoid disrupting automated scripts, these changes will be reflected only in the Bright Web App, not the API.


  • Client-side attacks

    • Cross Site Scripting (XSS) (High-severity, #3 in the OWASP Top 10), is a type of security vulnerability commonly found in web applications. It occurs when an attacker injects malicious scripts into web pages.
      There are three main types of XSS attacks: Stored XSS, Reflected XSS, and DOM-Based XSS.
      In this release, we focused on Reflected XSS and DOM-Based XSS.
      In this release, we’ve:
      • Introduced the DOM Based XSS vector into the attack, expanding detection capabilities.
      • Enhanced Reflected XSS payloads to detect additional vulnerabilities.
      • Optimized the execution time of XSS tests up to 200% (a scan that used to take 6 hours can be completed in 3 hours).
        Reflected XSS occurs when an attacker sends a malicious script to a user through a link that appears legitimate.
        When the user clicks on the link, the user's browser runs the malicious script.
        The DOM Based XSS is a client-side vulnerability that uses a manipulation of the Document Object Model (DOM). The DOM contains the web page's structure as it is displayed in the browser. The DOM defines where text, images, links, and other elements are placed. When an attacker adds a script to a DOM object, it will seem to the user as part of the application, though this content was not sent from the application server. This technique can be used for social engineering, getting secret information from the user, or sending the user to a malicious site.
        OWASP: Cross Site Scripting (XSS)
  • Server-side attacks

    • Cross-Site Request Forgery (CSRF) (Medium-severity, # 1 in the OWASP Top 10), is an attack that occurs when a malicious site you visit makes a request to another site where you're logged in, using your credentials without authorizing it. For example, requesting to transfer funds, changing passwords, etc.
      The test generated some false positive alerts that were addressed and improved the test accuracy.
      OWASP: Cross Site Request Forgery (CSRF)
  • Discovery

    • We continued to optimize our crawling capabilities to shorten the crawling duration. Many variables affect crawling speed. Overall, through multiple benchmark tests, we improved the crawling time between 10% to 20%.
  • GraphQL introspection

    • The GraphQL Introspection feature allows users to query the schema and discover the available queries, mutations, subscriptions, types, and fields in a specific GraphQL API.
      We've added support for GraphQL introspection and uploading a GraphQL Schema directly, accelerating GraphQL API targets testing definition and improving the user experience working with GraphQL.

    • In the create scan dialog, there is a new option to point to an introspection file to be used as the source for the scan entry points:

  • CLI

    • Support for HTTP(S) proxy protocol for outbound and inbound traffic was added. The repeater can be configured to use WebSocket, to enable scans of internal or external targets from within the internal networks.
      Previously, we supported only the SOCKS proxy protocol.
      Example:
      bright-cli repeater --proxy-internal abc.superproxy.io:12345
      bright-cli repeater --proxy-external abc.superproxy.io:12345
  • Snyk integration - Snyk SAST scans create a long list of potential attack vectors of vulnerabilities. Many of these vulnerabilities are false positives (SAST FP ratios are between 70% to 90%). Most enterprises lack the manpower to validate all these vulnerabilities and they apply a risk-based prioritization approach based on two variables, severity (critical, high, medium, low), and risk score (ranging from 0 to 1,000, the higher the score the more critical the vulnerability is).
    As Snyks' vulnerable list can have hundreds or even thousands of issues, the team can set priority criteria for importing vulnerabilities into the Bright platform to focus the effort on the most important vulnerabilities quickly.