{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/o9KXpzigBQUT1GLJkGJK/OvpNfcl22Dvepdbpd6M9/YHdMp3byK-8.js"],
  "sourcesContent": ["import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{ComponentPresetsConsumer as a,Link as n}from\"framer\";import{motion as r}from\"framer-motion\";import*as i from\"react\";import{Youtube as o}from\"https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/1de6WpgIbCrKkRcPfQcW/YouTube.js\";import s from\"https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js\";export const richText=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"I have worked with several SIEMs over the years, and when I came to Panther, I noticed something very different concerning the data sources our customers ingest. Its not just your traditional data sources such as firewalls, Windows audit logs, and IDS/IPS, but data sources more commonly associated with Cloud and DevOps such as Okta, GitHub, AWS Cloudtrail, Slack, Zoom, and custom application log sources. I went back to my notes on some of the top data sources when working with legacy SIEMs and compared them to data sources that organizations bring into Panther, and the difference was pretty clear. \"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Legacy SIEM\"}),\" \",/*#__PURE__*/e(\"br\",{}),\" Firewall \",/*#__PURE__*/e(\"br\",{}),\" Network IPS/IDS\",/*#__PURE__*/e(\"br\",{}),\" Endpoint/Windows Audit Logs\",/*#__PURE__*/e(\"br\",{}),\" Authentication (AD)\",/*#__PURE__*/e(\"br\",{}),\" VPN/Proxy\",/*#__PURE__*/e(\"br\",{}),\" Active Directory\",/*#__PURE__*/e(\"br\",{}),\" DNS\",/*#__PURE__*/e(\"br\",{}),\" DHCP\",/*#__PURE__*/e(\"br\",{}),\" DLP\",/*#__PURE__*/e(\"strong\",{children:\"Panther/Cloud SIEM\"}),/*#__PURE__*/e(\"br\",{}),\" AWS/GCP/Azure\",/*#__PURE__*/e(\"br\",{}),\" Authentication (Okta)\",/*#__PURE__*/e(\"br\",{}),\" GitHub\",/*#__PURE__*/e(\"br\",{}),\" Custom App Logs\",/*#__PURE__*/e(\"br\",{}),\" GSuite/M365\",/*#__PURE__*/e(\"br\",{}),\" Slack\",/*#__PURE__*/e(\"br\",{}),\" Password Managers\",/*#__PURE__*/e(\"br\",{}),\" Zoom\",/*#__PURE__*/e(\"br\",{}),\" Email\"]}),/*#__PURE__*/e(\"p\",{children:\"This shift has been occurring even more rapidly over the past few years, particularly with the COVID-19 pandemic forcing some companies to a cloud-first approach whether they liked it or not. The data sources will evolve as more data and workloads get pushed to the Cloud. Organizations no longer manage workstations within traditional on-prem networks but also a remote workforce, cloud workloads, and custom applications, increasing SIEM deployments data volume and complexity. \"}),/*#__PURE__*/t(\"p\",{children:[\"Threat actors have followed this shift by retooling their techniques to target developers and upstream infrastructure. For example, the Lazarus APT Group operates out of North Korea, where they have been \",/*#__PURE__*/e(n,{href:\"https://www.bleepingcomputer.com/news/security/github-warns-of-lazarus-hackers-targeting-devs-with-malicious-projects/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"ramping up their capabilities\"})}),\" targeting gaming, cryptocurrency, and cybersecurity companies. In a recent\",/*#__PURE__*/e(n,{href:\"https://github.blog/2023-07-18-security-alert-social-engineering-campaign-targets-technology-industry-employees/#indicators\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\" security alert\"})}),\", GitHub did a great job detailing one of Lazarus latest campaigns, including IoCs and more details on the specific attack methodologies targeting developers leveraging social engineering techniques to trick them into executing malicious code on their local systems. \"]}),/*#__PURE__*/e(\"p\",{children:\"Ingesting GitHub logs into your SIEM may seem strange, but given the shift to the Cloud and the threat actors following suit, it makes sense to monitor our source code repository. To many organizations, their code is their crown jewel and can also pose potential threats downstream if the code is compromised and malicious code injected.\"}),/*#__PURE__*/e(\"h3\",{children:\"Ingesting GitHub Logs Into Panther\"}),/*#__PURE__*/t(\"p\",{children:[\"In Panther, integrating GitHub is quite simple. The ability to export logs from GitHub requires a \",/*#__PURE__*/e(n,{href:\"https://github.com/enterprise\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"GitHub Enterprise\"})}),\" license. GitHub will push logs into Panther by creating an API key with read permissions. You can configure access via Oauth2 Authorization Flow or a Personal Access Token; in my lab environment, I used a Personal Access Token for simplicity.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"314\",src:\"https://framerusercontent.com/images/CKWbhOLlYFrsEaDS7JfOzkKJ6YM.png\",srcSet:\"https://framerusercontent.com/images/CKWbhOLlYFrsEaDS7JfOzkKJ6YM.png?scale-down-to=512 512w,https://framerusercontent.com/images/CKWbhOLlYFrsEaDS7JfOzkKJ6YM.png 1024w\",style:{aspectRatio:\"1024 / 629\"},width:\"512\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"357\",src:\"https://framerusercontent.com/images/SaJjx5BhrkwFFrUcjkGsUOZFEgM.png\",srcSet:\"https://framerusercontent.com/images/SaJjx5BhrkwFFrUcjkGsUOZFEgM.png?scale-down-to=512 512w,https://framerusercontent.com/images/SaJjx5BhrkwFFrUcjkGsUOZFEgM.png 1024w\",style:{aspectRatio:\"1024 / 714\"},width:\"512\"}),/*#__PURE__*/t(\"p\",{children:[\"Once I had GitHub logs flowing into my environment, I enabled the Panther GitHub Pack, including around 20 out-of-the-box detections. The entire process of onboarding GitHub data and allowing the pack to take less than 15 minutes provides real-time detections for critical events and a Security Data Lake with all log events generated by GitHub with a one-year retention of searchable data. \",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"94\",src:\"https://framerusercontent.com/images/9ENJmEqKm1LpOkMmMqd4qEnNMA.png\",srcSet:\"https://framerusercontent.com/images/9ENJmEqKm1LpOkMmMqd4qEnNMA.png?scale-down-to=512 512w,https://framerusercontent.com/images/9ENJmEqKm1LpOkMmMqd4qEnNMA.png 1024w\",style:{aspectRatio:\"1024 / 188\"},width:\"512\"}),/*#__PURE__*/e(\"h3\",{children:\"Highway to the Danger Zone\"}),/*#__PURE__*/e(\"p\",{children:\"Poking around GitHub, I started to explore potential attack vectors. GitHub has conveniently highlighted a few actions in the Danger Zone  that you will definitely want to be alerted to if triggered. For example, Disabling branch protection rules are a set of settings and restrictions you can apply to a specific branch in a repository to control who can change that branch and under what conditions. These rules are often used to ensure code quality, maintain a clean and stable main or master branch, and prevent unauthorized or accidental changes.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"363\",src:\"https://framerusercontent.com/images/C1RhDb9NiAqUlDKhGNePw7gW4.png\",srcSet:\"https://framerusercontent.com/images/C1RhDb9NiAqUlDKhGNePw7gW4.png?scale-down-to=512 512w,https://framerusercontent.com/images/C1RhDb9NiAqUlDKhGNePw7gW4.png 1024w\",style:{aspectRatio:\"1024 / 727\"},width:\"512\"}),/*#__PURE__*/e(\"p\",{children:\"If Disable branch protection rules  is disabled, we will want to trigger a critical severity alert; luckily, this is one of the detections Panther provides out-of-the-box, so we already have most of these covered when we enabled the pack.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"249\",src:\"https://framerusercontent.com/images/Z2YFpQJHKSwb1AnyecTkF7238.png\",srcSet:\"https://framerusercontent.com/images/Z2YFpQJHKSwb1AnyecTkF7238.png?scale-down-to=512 512w,https://framerusercontent.com/images/Z2YFpQJHKSwb1AnyecTkF7238.png 1024w\",style:{aspectRatio:\"1024 / 499\"},width:\"512\"}),/*#__PURE__*/e(\"p\",{children:\"In addition to applying real-time detections that Panther provides out of the box, Panther makes it easy to write new detections. One thing I wanted to be able to do is monitor when people are invited and then added to a repository, as well as if someone is escalated to an admin with increasing levels of severity. First, I invited a user, accepted the invite, and then escalated the users privileges to generate logs that I can then view in Panthers Security Data Lake via Search, which I will then use to develop a hypothesis for new detections as well as copy log entries for my unit tests.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"348\",src:\"https://framerusercontent.com/images/0q27ZCeMdidLKdAiLAUcJenxgk0.png\",srcSet:\"https://framerusercontent.com/images/0q27ZCeMdidLKdAiLAUcJenxgk0.png?scale-down-to=512 512w,https://framerusercontent.com/images/0q27ZCeMdidLKdAiLAUcJenxgk0.png 1024w\",style:{aspectRatio:\"1024 / 697\"},width:\"512\"}),/*#__PURE__*/e(\"p\",{children:\"Looking at the event actions for the log events, I see that the user events start with an org prefix followed by the action, so we have org.invite_member, org.add_member, and org.update_member and we want to assign increasing severity so we will use the Panther severity() function for this. I use a dictionary object in Python to store the actions and associated severity I wish to apply. I use the required Panther rule() function to loop through the actions field to see if it matches any of the specific actions I want to trigger my detection on; then, using the Panther severity() function, I assign the severity from the dictionary object. I think output the title with specific information regarding the user that created the action and the user account affected by the changes. \"}),/*#__PURE__*/e(\"p\",{children:\"I then copy the JSON for all three events from my Security Data Lake as unit tests for my detection and an additional unit test I expect to fail for negative matches. \"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"195\",src:\"https://framerusercontent.com/images/N2nH4FafHe5PErXgVp1RQM0jzYg.png\",srcSet:\"https://framerusercontent.com/images/N2nH4FafHe5PErXgVp1RQM0jzYg.png?scale-down-to=512 512w,https://framerusercontent.com/images/N2nH4FafHe5PErXgVp1RQM0jzYg.png 1024w\",style:{aspectRatio:\"1024 / 390\"},width:\"512\"}),/*#__PURE__*/e(\"p\",{children:\"When I run all of my unit tests, I can see that all of them are working correctly, with the appropriate severity applied to each potentially increasing criticality along with my negative unit test. \"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"276\",src:\"https://framerusercontent.com/images/WGvexTyuxdrx9W3mY3rc5iZAQ.png\",srcSet:\"https://framerusercontent.com/images/WGvexTyuxdrx9W3mY3rc5iZAQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/WGvexTyuxdrx9W3mY3rc5iZAQ.png 1024w\",style:{aspectRatio:\"1024 / 552\"},width:\"512\"}),/*#__PURE__*/e(\"h3\",{children:\"Conclusion\"}),/*#__PURE__*/t(\"p\",{children:[\"Although GitHub is not a traditional data source for SIEM, we outlined why modern organizations should consider ingesting these logs to provide visibility and monitor their development environments. Panther can quickly ingest this data with GitHub Enterprise and apply out-of-the-box detections in minutes; then, we can use our Security Data Lake with a full year of searchable data to develop hypotheses for new detections, as well as use the log events as unit tests for us to test our new detections using real data. If you want to learn more about how to write detections in Panther and detection-as-code concepts, we have \",/*#__PURE__*/e(n,{href:\"https://panther.com/workshops/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"several hands-on workshops\"})}),\" available where we will get you up and running with Panther in just a few hours. I hope to see you in one soon! \"]})]});export const richText1=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"If your organization is leveraging Panthers out-of-the-box detections and queries to protect and defend against threats in your environment, youre already ahead of the game. Panthers detection-as-code approach not only alleviates the pain of traditional SIEMs with hundreds of out-of-the-box detections but also flawlessly provides a deeper look into your organizations threat landscape across multiple external services with highly scalable solutions to support growing security teams. However, just like everything related to security, theres always room for improvement. Panthers flexibility and detection-as-code principles empower organizations to tune and optimize content for their environment.\"}),/*#__PURE__*/e(\"p\",{children:\"Content tuning is the process of optimizing your detections and queries to improve their accuracy and efficiency. By fine-tuning your detections, you can reduce the number of false positives and increase the context of true positives, making your incident response process more effective and thereby avoiding alert fatigue.\"}),/*#__PURE__*/e(\"p\",{children:\"When it comes to tuning Panther-managed detections and queries, there are a few things to keep in mind:\"}),/*#__PURE__*/e(\"h3\",{children:\"Understand the data\"}),/*#__PURE__*/e(\"p\",{children:\"Before you start tuning any Panther-provided content, its important to have a good understanding of the data youre working with. Take the time to review the logs and other data sources that Panther is analyzing and make sure that you understand what each field represents. This will help you write more accurate and effective queries.\"}),/*#__PURE__*/e(\"h3\",{children:\"Start with the built-in detections\"}),/*#__PURE__*/e(\"p\",{children:\"Panther comes with a wide range of built-in detections and queries, enabling security teams to rapidly detect and respond to suspicious activity in SaaS, cloud, network, and host environments. Tuning Panther-provided content is a great starting point on the journey to honing these detection capabilities and tailoring their functionalities specifically for your environment. Leveraging Panthers built-in unit testing capabilities enables Panther customers to review each detection and test for and reduce false positives.\"}),/*#__PURE__*/e(\"p\",{children:\"Below is a newly released Panther-managed detection for Microsoft Azure SignIn events that use a Legacy Authentication Protocol. Based on Microsofts analysis, more than 97 percent of credential stuffing attacks use legacy authentication, and more than 99 percent of password spray attacks use legacy authentication protocols. However, an authorized business function may rely on these methods within your organizations environment. To reduce false positive alerts, simply add the ServicePrincipalName or UserPrincipalName to the KNOWN_EXCEPTIONS allowlist. This guarantees that any SignIn events made by this authorized user or service will not alert the security team, which can be seen on lines 21-22 of the image below.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"510\",src:\"https://framerusercontent.com/images/J5ylUiELpMI3XpXggpU9y6AHJVM.png\",srcSet:\"https://framerusercontent.com/images/J5ylUiELpMI3XpXggpU9y6AHJVM.png?scale-down-to=512 512w,https://framerusercontent.com/images/J5ylUiELpMI3XpXggpU9y6AHJVM.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/J5ylUiELpMI3XpXggpU9y6AHJVM.png 2040w\",style:{aspectRatio:\"2040 / 1020\"},width:\"1020\"}),/*#__PURE__*/e(\"h3\",{children:\"Use the right operators\"}),/*#__PURE__*/t(\"p\",{children:[\"When writing detection content, its important to use the right operators to get the best results. For example, if youre looking for events that occurred within a certain time frame, using a comparison statement similar to \",/*#__PURE__*/e(\"code\",{children:\"DATEDIFF(HOUR, alert_creation_time, CURRENT_TIMESTAMP) < 24 hours\"}),\" will ensure that all results returned by the query will have occurred within 24 hours of the time this query is run. This will help you view only relevant events within your specified time frame and avoid events that may fall outside the desired range.\"]}),/*#__PURE__*/t(\"p\",{children:[\"For example, one of our Snowflake monitoring queries \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/queries/snowflake_queries/snowflake_account_admin_assigned_query.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"checks if a user has been granted an admin role\"})}),\":\"]}),/*#__PURE__*/e(\"blockquote\",{children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"Pro-tip: Adding additional conditional statements to queries can help strengthen your content and narrow returned results to ensure that youre only spending time on relevant events. Please note in the example above, we utilize the following conditional statement to guarantee admin roles returned by this query have not been deleted and are currently in use by saying:\"}),\" \",/*#__PURE__*/e(\"code\",{children:\"AND deleted_on is NULL\"})]})}),/*#__PURE__*/e(\"h3\",{children:\"Test and iterate\"}),/*#__PURE__*/e(\"p\",{children:\"Once youve made changes to your detection content, its important to test them thoroughly to ensure theyre working as expected. Be sure to leverage Panthers built-in unit test capability to test both when an alert should be generated and when it shouldnt be. It is critical that any test logs be scrubbed of PII or other identifiable/sensitive information, such as IP addresses, account IDs, employee emails, and employee usernames. Once the logs have been properly scrubbed, run your changes against the sample data and review the results carefully. If youre still encountering false positives or missing true positives, make additional tweaks to your new changes and test them again.\"}),/*#__PURE__*/e(\"p\",{children:\"By following these tips, you can improve the accuracy and effectiveness of Panther-managed detections and even apply these practices to your own custom detections, helping you stay one step ahead of potential security threats.\"})]});export const richText2=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"We're thrilled to announce that \",/*#__PURE__*/e(n,{href:\"https://registry.terraform.io/namespaces/panther-labs\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Panther has joined HashiCorp's Partner Network\"})}),\" with the development of a Panther Terraform provider, solidifying our commitment to seamless, integrated security and infrastructure management. This will empower Panther users to create an S3 bucket and associated infrastructure in AWS, and onboard it to your Panther instance - all in Terraform.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Detection-as-Code & Infrastructure-as-Code\"}),/*#__PURE__*/e(\"p\",{children:\"At its core, Panther's philosophy has always revolved around \\\"Detection-as-Code\\\" (DaC). This transformative approach allows for agile, version-controlled, and precise threat detection. Similarly, Terraform's Infrastructure-as-Code (IaC) methodology revolutionizes resource provisioning and system management.\"}),/*#__PURE__*/e(\"p\",{children:\"DaC and IaC are kindred spirits, both stemming from the desire to introduce automation, precision, and scalability. When combined, they offer unparalleled robustness in security and infrastructure orchestration.\"}),/*#__PURE__*/e(\"h3\",{children:\"Shared Virtues of DaC & IaC\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Automation:\"}),\" Eliminate manual errors and streamline operations.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Version Control:\"}),\" Every alteration, every change is meticulously logged.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Scalability:\"}),\" Respond to demands effortlessly, whether it's scaling threat detection or resources.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Consistency:\"}),\" Ensure deployments, detections, and configurations remain uniform.\"]})})]}),/*#__PURE__*/e(\"h3\",{children:\"Managing S3 Log Sources with Terraform\"}),/*#__PURE__*/t(\"p\",{children:[\"To manage a Panther S3 Log Source using Terraform, use the \",/*#__PURE__*/e(n,{href:\"https://registry.terraform.io/providers/panther-labs/panther/latest/docs/resources/s3_source\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"published panther_s3_source provider\"})}),'. This Terraform provider is built on top of our Public API and requires an API token with permissions scoped to \"Manage Log Sources\".']}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(a,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(s,{...t,code:'terraform { required_providers { panther = { source = \"panther-labs/terraform-provider-panther\" } } } provider \"panther\" { token = var.panther_api_token url = var.panther_api_url }',language:\"JSX\"})})}),/*#__PURE__*/e(\"p\",{children:'To create and manage an S3 Log Source for AWS CloudTrail logs from \"Log Source Bucket\":'}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(a,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(s,{...t,code:'resource \"panther_s3_source\" \"demo_source\" { aws_account_id = var.aws_account_id name = \"AWS S3 Source\" log_processing_role_arn = vars.log_processing_role_arn log_stream_type = \"JSON\" bucket_name = \"Log Source Bucket\" prefix_log_types = [{ excluded_prefixes = [] log_types = [\"AWS.CloudTrail\"] prefix = \"\" }] }',language:\"JSX\"})})}),/*#__PURE__*/t(\"p\",{children:[\"For detailed guidance on managing S3 Sources through Terraform, visit our \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/panther-developer-workflows/terraform/s3\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"official documentation\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"Embrace the synergy of Panther and Terraform, and reshape your security and infrastructure ecosystem.\"})]});export const richText3=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Panther is thrilled to announce a \",/*#__PURE__*/e(n,{href:\"https://tailscale.com/blog/log-streaming-integration-panther-labs/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"powerful new integration with Tailscale\"})}),\". This cutting-edge collaboration enables users to stream logs directly from Tailscale to Panther, providing suspicious behavior detection without custom configuration.\"]}),/*#__PURE__*/e(\"p\",{children:\"Panther users can also create custom alerts from Tailscale network and audit logs, allowing faster incident response and painless remediation. By streaming logs directly from Tailscale, no infrastructure or other special setup is needed to equip users with a robust tool that significantly enhances security and visibility across Tailscale network and audit logs.\"}),/*#__PURE__*/e(\"h3\",{children:\"Out-of-the-Box Detection Content\"}),/*#__PURE__*/t(\"p\",{children:[\"Panther \",/*#__PURE__*/e(n,{href:\"https://panther.com/product/detection-coverage/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"provides a range of ready-to-use detections\"})}),\" that help cover an array of potential security issues. We've written the following detections to help you get started quickly with monitoring your Tailscale instance.\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Magic DNS Disabled\"}),/*#__PURE__*/e(\"br\",{}),\"This covers a security scenario in which a registered Tailscale user, already a part of your organization's tenant, disables Magic DNS settings across the entire tenant. Magic DNS automatically registers domain names for devices in your Tailnet, allowing analysts to use a machine's name instead of its IP address. The disabling of this feature could be an indicator of compromised credentials or a potential insider threat incident.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"HTTPS Disabled\"}),/*#__PURE__*/e(\"br\",{}),\"This detection is triggered when a registered Tailscale user disables the HTTPS Certificate setting across the entire tenant. This setting allows users to provision HTTPS certificates for their devices, and disabling of this feature could indicate misconfiguration whether accidental or intentional.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Machine Approval Requirements Disabled\"}),/*#__PURE__*/e(\"br\",{}),\"This detection fires when a registered Tailscale user disables Machine Approval Requirement settings across the entire tenant. This means your organization no longer requires new devices to be approved by admins before they can access your network, and could be an indicator of compromised credentials, misconfiguration, or an insider threat incident.\"]})})]}),/*#__PURE__*/e(\"h3\",{children:\"Amplifying Security through Integrations\"}),/*#__PURE__*/e(\"p\",{children:\"Panther's collaboration with Tailscale is another step towards achieving complete visibility of your network. By combining Tailscale's privacy and security features with Panther's user-friendly, web-based dashboard and alerting systems, cross-application events become more significant rather than isolated incidents.\"}),/*#__PURE__*/e(\"p\",{children:\"The integration of Panther and Tailscale enables a more secure and efficiently monitored network by default, right out of the box.\"}),/*#__PURE__*/e(\"h3\",{children:\"Simple Setup\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Create a new Tailscale integration in Panther\"})})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"538\",src:\"https://framerusercontent.com/images/jICutHmFvvNGjMb11Ge6EKzUq6w.png\",srcSet:\"https://framerusercontent.com/images/jICutHmFvvNGjMb11Ge6EKzUq6w.png?scale-down-to=1024 912w,https://framerusercontent.com/images/jICutHmFvvNGjMb11Ge6EKzUq6w.png 960w\",style:{aspectRatio:\"960 / 1077\"},width:\"480\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Connect the stream by selecting on the Panther option in Tailscale and filling in the URL and token from the Panther Side\"})})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"364\",src:\"https://framerusercontent.com/images/lYdIFBfHsT5DzO2AFukuzCgoA.png\",srcSet:\"https://framerusercontent.com/images/lYdIFBfHsT5DzO2AFukuzCgoA.png?scale-down-to=512 512w,https://framerusercontent.com/images/lYdIFBfHsT5DzO2AFukuzCgoA.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/lYdIFBfHsT5DzO2AFukuzCgoA.png 1156w\",style:{aspectRatio:\"1156 / 729\"},width:\"578\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"147\",src:\"https://framerusercontent.com/images/0GQcgysDav9eEjnJdXVUb59tqg.png\",srcSet:\"https://framerusercontent.com/images/0GQcgysDav9eEjnJdXVUb59tqg.png?scale-down-to=512 512w,https://framerusercontent.com/images/0GQcgysDav9eEjnJdXVUb59tqg.png 817w\",style:{aspectRatio:\"817 / 295\"},width:\"408\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"327\",src:\"https://framerusercontent.com/images/A23GfXQ0gV63m9ihew7aUm6XD1A.png\",srcSet:\"https://framerusercontent.com/images/A23GfXQ0gV63m9ihew7aUm6XD1A.png 532w\",style:{aspectRatio:\"532 / 655\"},width:\"266\"}),/*#__PURE__*/e(\"ol\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Logs will stream directly into Panther\"})})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"594\",src:\"https://framerusercontent.com/images/ZbxdoJJXBCRRfNgfzoOXdCcfUAY.png\",srcSet:\"https://framerusercontent.com/images/ZbxdoJJXBCRRfNgfzoOXdCcfUAY.png?scale-down-to=512 512w,https://framerusercontent.com/images/ZbxdoJJXBCRRfNgfzoOXdCcfUAY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/ZbxdoJJXBCRRfNgfzoOXdCcfUAY.png 1258w\",style:{aspectRatio:\"1258 / 1189\"},width:\"629\"}),/*#__PURE__*/e(\"h3\",{children:\"Monitor Your Tailscale Environment with Panther\"}),/*#__PURE__*/t(\"p\",{children:[\"Panther's integration with Tailscale is available to all customers as of release v1.74. You can read more about \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/data-onboarding/supported-logs/tailscale\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"ingesting Tailscale logs into Panther and supported schema within our documentation\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"If you're not currently a Panther customer and would like to maximize your security and visibility across Tailscale network and audit logs, sign up for a \",/*#__PURE__*/e(n,{href:\"https://panther.com/free-trial/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"30-day free trial\"})}),\" or \",/*#__PURE__*/e(n,{href:\"https://panther.com/product/request-a-demo/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"request a demo\"})}),\" to get started.\"]})]});export const richText4=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"FloQast is an accounting workflow automation software fully architected in the cloud. Their engineering team is already leveraging DevOps and CI/CD. The benefits of DevOps are clear, including testing, version control, rollback, code reuse, and automation. They aimed to apply these processes and advantages to the security engineering function, which led them to the concept of Detection-as-Code and Panther.\"}),/*#__PURE__*/e(\"h3\",{children:\"FloQast Security Challenges \"}),/*#__PURE__*/e(\"p\",{children:\"As FloQast continued to grow and expand its infrastructure footprint in AWS, their legacy SIEM became increasingly difficult to manage and scale. Traditional SIEM solutions were not flexible enough to accommodate the company's evolving needs, and the proprietary coding languages used in legacy SIEMs made progress challenging for FloQast's security team. As a result, the team realized that they needed to explore other solutions to improve their security practices. \"}),/*#__PURE__*/e(\"p\",{children:\"In response to these challenges, the FloQast team turned to Panther to optimize their detection and response tasks. Utilizing Panther's platform, FloQast's security team enhanced their detection capabilities by crafting custom detection rules with the widely-adopted Python language. Python provided FloQast the ability to create flexible and powerful detections, enabling specific adaptation to their environment. Another advantage of harnessing a versatile language like Python was the ease of recruiting and training staff due to the prevalence of Python experience across various fields and roles.\"}),/*#__PURE__*/t(\"p\",{children:[\"To learn more about how Panther helped FloQast,\",/*#__PURE__*/e(n,{href:\"https://panther.com/resources/customers/floqast-accelerates-detection-testing-and-deployment-with-panther/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\" explore this customer case study\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"Panther has enabled us to quickly detect and respond to security incidents with more efficiency and less effort.\"}),/*#__PURE__*/e(\"h3\",{children:\"Detecting More, Faster: The Benefits of Detection-as-Code for FloQast's Security Operations \"}),/*#__PURE__*/e(\"p\",{children:\"Detection-as-code represents a powerful approach to managing detection alerts through code. This approach involves managing detections and associated tasks using code rather than manually through a console or GUI. The FloQast team successfully implemented Detection-as-Code with Panther, allowing them to seamlessly manage and automate the editing, testing, and deployment of detection logic. This adaptation has enabled them to handle the ever-evolving and highly dynamic nature of their environment, resulting in more efficient threat detection and increased operational sustainability.\"}),/*#__PURE__*/e(\"p\",{children:\"Consequently, despite the daily growth and changes in their AWS environment, the team is achieving more efficient threat detection and operating with greater sustainability.\"}),/*#__PURE__*/e(\"p\",{children:\"Leveraging Panther's modern, cloud-native architecture, FloQast was also able to ingest ten times more data from a broader range of sources and significantly reduce restrictions on data retention.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"488\",src:\"https://framerusercontent.com/images/W8DH4KxIQb0Nk04D8nDl8Zyfc.png\",srcSet:\"https://framerusercontent.com/images/W8DH4KxIQb0Nk04D8nDl8Zyfc.png?scale-down-to=512 512w,https://framerusercontent.com/images/W8DH4KxIQb0Nk04D8nDl8Zyfc.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/W8DH4KxIQb0Nk04D8nDl8Zyfc.png 1918w\",style:{aspectRatio:\"1918 / 976\"},width:\"959\"}),/*#__PURE__*/e(\"h3\",{children:\"Caching Data for Detection \"}),/*#__PURE__*/e(\"p\",{children:\"When it comes to handling exceptions, it's important to have a plan in place and continuously tune out false positives during the development lifecycle. However, caching takes it to the next level. In Panther, caching is implemented to prevent alert fatigue and improve the detection of higher value alerts by using counters and string sets. \"}),/*#__PURE__*/e(\"p\",{children:\"With caching, you can surface alerts that are more complex or unique, and exclude ones that you don't care about if there are only a few of them. But once there are several of a certain type, it's worth taking a look. \"}),/*#__PURE__*/e(\"p\",{children:\"In the following example, Panther audit logs are used as they are readily available and provide quick feedback. Using these logs, you can easily test a new detection and see what triggers it.  \"}),/*#__PURE__*/e(\"p\",{children:\"In the video below, we'll dive a little deeper into how FloQast used caching to improve the speed and efficiency and enabled them to scale to handle larger amounts of data and more users by reducing the number of times it needed to query the original data source and preventing performance issues and system slowdowns.\"}),/*#__PURE__*/e(\"h3\",{children:\"Automating Response Tasks \"}),/*#__PURE__*/e(\"p\",{children:\"FloQast's goal when it came to automating response tasks was to reduce manual toil for alerts. The team had been doing the same actions in different places, which was very inefficient. They were looking to tighten that up and make it so that an analyst only had to deal with one software for all their needs. \"}),/*#__PURE__*/e(\"p\",{children:\"When an alert triggered, it would populate three queues:  Slack, which was used as a notification queue;  JIRA, where everything was logged, triaged, and notes were written; and Panther, which would turn off the alert. After triaging alerts, analysts would have to set the status in Slack, log the ticket in JIRA, and resolve the ticket in Panther, which was very time-consuming. \"}),/*#__PURE__*/e(\"p\",{children:\"The team realized that their previous workflow for responding to alerts was inefficient and led to too much manual work. They set out to create a new workflow that would reduce the amount of manual toil required by analysts and streamline the process.\"}),/*#__PURE__*/e(\"p\",{children:\"The new workflow involves populating three queues when an alert triggers: Slack, JIRA, and Panther. However, with the new system, an analyst only needs to assign the ticket to themselves in JIRA, which triggers a post request to an AWS load balancer. This request then authenticates and moves to a lambda function that uses a GQL query to assign the alert in both JIRA and Panther. When the analyst closes the ticket in JIRA, another workflow rule is triggered to pass the alert ID to a different lambda that executes an update alerts GQL query to close the corresponding alert in Panther. \"}),/*#__PURE__*/t(\"p\",{children:[\"The team's main goal was to reduce alert fatigue and allow analysts to focus on more important tasks. By aligning their sources of reference, they were able to streamline the process and reduce manual work. The team's new workflow is described in more detail on their \",/*#__PURE__*/e(n,{href:\"https://floqast.com/engineering-blog/post/alert-alarm-fatigue-tired-of-being-tired-of-siem-alerts/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"blog\"})}),\", along with the rest of their detection code series.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Conclusion \"}),/*#__PURE__*/e(\"p\",{children:\"FloQast's implementation of Panther is a testament to the effectiveness of Detection-as-Code in improving security operations. By automating and managing their security practices more efficiently, they were able to enhance their detection and response capabilities and scale their operations quickly in AWS. Overall, Detection-as-Code is a powerful tool for any organization looking to streamline their security operations and enhance their security posture. \"}),/*#__PURE__*/t(\"p\",{children:[\"Watch the full \",/*#__PURE__*/e(n,{href:\"https://panther.com/resources/webinars/detection-as-code-201-optimizing-detection-response-tasks-with-panther/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"webinar\"})}),\" to see how FloQast's adoption of Panther drove innovation and efficiency within security engineering, with in-depth examples of their powerful detection and automation techniques.\"]})]});export const richText5=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"TL;DR:\"}),\" Back in June, Panther announced functionality to help security teams easily collect security data and seamlessly build detection logic for their environments. Today, we're happy to showcase our vision for the right hand side of the product. To give security teams time back, Panther is building features to help them effectively understand suspicious activity and seamlessly investigate their environments from day one.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Reducing time between alert generation and resolution\"}),/*#__PURE__*/e(\"p\",{children:\"When a SIEM generates an alert, a key workflow for the security team is to quickly understand the context around the alert to confirm benign or suspicious activity. But not all SIEMs streamline the subsequent triage and investigation process.  Without proper context and enrichment alerts can be hard to parse and understand - adding friction to the alert triage process. And, in many cases, it's then difficult to effectively search and pivot over large sums of data - wasting critical investigation time.\"}),/*#__PURE__*/e(\"p\",{children:\"Slow triage and investigations are frustrating for security teams, but also costly and risky for their organizations. They increase mean time to respond (MTTR) to threats and expose companies to compliance violations and data breaches.\"}),/*#__PURE__*/e(\"p\",{children:\"That's why security teams need simple, effective ways to accelerate investigation. And that's what we're building at Panther.\"}),/*#__PURE__*/e(\"h3\",{children:\"How Panther streamlines alert triage and investigation\"}),/*#__PURE__*/e(\"p\",{children:\"To accelerate investigation, Panther enables security teams by enriching alerts with relevant identity data - making it easier to understand the underlying activity. From there, it should be seamless to begin a search over all logs to validate and verify the alert. And, given that the first answer almost always leads to more questions, Panther will accelerate pivots by providing simple visualizations and enabling easy curation of results to refine the data for the next search.\"}),/*#__PURE__*/e(\"p\",{children:\"Here are some of the key features that make Panther's investigation experience unique:\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Identity & Device Enrichment: \"}),\"To expedite alert triage, Panther has integrated relevant identity and device profiles from providers like Okta and Google into the alert context. This makes it simpler to understand the who and what behind an alert. \"]})})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"308\",src:\"https://framerusercontent.com/images/hJGKqLfxgBCzLXLt93QVaT5yM.png\",srcSet:\"https://framerusercontent.com/images/hJGKqLfxgBCzLXLt93QVaT5yM.png?scale-down-to=512 512w,https://framerusercontent.com/images/hJGKqLfxgBCzLXLt93QVaT5yM.png 665w\",style:{aspectRatio:\"665 / 617\"},width:\"332\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Simple Cross-Log Search:\"}),\" To enable easy data exploration, Panther now has an approachable typeahead search experience. The search autofills common indicators and fields to quickly create searches that span logs, alerts, and lookup tables all in one place.\"]})})}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"168\",src:\"https://framerusercontent.com/images/bGLfMtyDCHjK5Y6UAdivCnwuks.png\",srcSet:\"https://framerusercontent.com/images/bGLfMtyDCHjK5Y6UAdivCnwuks.png?scale-down-to=512 512w,https://framerusercontent.com/images/bGLfMtyDCHjK5Y6UAdivCnwuks.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/bGLfMtyDCHjK5Y6UAdivCnwuks.png 1999w\",style:{aspectRatio:\"1999 / 336\"},width:\"999\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Visual Summary & Interactive Search Results:\"}),\" Search results are displayed with both a helpful visual summary and a customizable table. Users can then refine the data based on context from the visual summary or with one-click filtering from the data table. This brings an intuitive approach for moving from one question to the next.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"538\",src:\"https://framerusercontent.com/images/dfmt7TFiIWxdSIemVvo2OtnrnU4.png\",srcSet:\"https://framerusercontent.com/images/dfmt7TFiIWxdSIemVvo2OtnrnU4.png?scale-down-to=512 512w,https://framerusercontent.com/images/dfmt7TFiIWxdSIemVvo2OtnrnU4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/dfmt7TFiIWxdSIemVvo2OtnrnU4.png 1999w\",style:{aspectRatio:\"1999 / 1077\"},width:\"999\"}),/*#__PURE__*/e(\"h3\",{children:\"Learn more about Panther's vision\"}),/*#__PURE__*/e(\"p\",{children:\"By leveraging the power of a cloud-native architecture, Panther delivers a simple, but powerful SIEM solution that empowers any security team to find signal in the noise faster than legacy solutions.\"}),/*#__PURE__*/t(\"p\",{children:[\"To learn more about Panther and how it can help you accelerate investigation, check out our \",/*#__PURE__*/e(n,{href:\"https://panther.com/resources/webinars/siemply-irresistible-real-time-visibility-and-value-from-day-1/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"upcoming webinar\"})}),\" where we'll show you how to ditch your legacy SIEM and upgrade to a modern SIEM that provides real-time visibility from day one and start detecting your first threat in <1 hour.\"]})]});export const richText6=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"Introduction\"}),/*#__PURE__*/t(\"p\",{children:[\"An outage of 104 services within Amazon Web Services (AWS) on June 13, 2023 in the \",/*#__PURE__*/e(\"code\",{children:\"us-east-1\"}),\" region affected a large number of internet services, including Panther. As a company deeply ingrained with AWS and reliant on several of its services, we were directly impacted. However, thanks to the foresight of our engineering team, our highly-instrumented system, and our sturdy architecture, we were able to weather this storm and ensure no data loss for our customers.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Overview of Our System\"}),/*#__PURE__*/e(\"p\",{children:\"One of our engineering ethos is to provide a system that can scale automatically to the needs of our users, without the need for human intervention. This stems directly from our customers' needs - the ability to send us a wide variety of volumes of data, all throughout the day and night. Our architecture leans heavily on AWS Lambda, Amazon Simple Queue Service (SQS), and Amazon S3, forming a well-integrated sturdy system to process, analyze, and alert users of security detections in real-time.\"}),/*#__PURE__*/e(\"p\",{children:\"At the heart of our operations is AWS Lambda, a serverless computing service we use to process data. This service enables us to run our code without provisioning or managing servers, giving us the flexibility to expand dynamically according to the demands of our system. AWS Lambda's seamless integration with SQS forms the backbone of our data-handling process. The separation of compute and storage isn't a new concept, but it's one Panther fully embraces. But what lies in the middle of this equation? For us, it's Amazon SQS, a reliable and scalable middleman.\"}),/*#__PURE__*/t(\"p\",{children:[\"While \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/data-onboarding/data-transports\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Panther supports many different ways to get data\"})}),\" into our systems, almost all of it ends up on some SQS queue after getting through our front doors. Amazon SQS is essential for buffering our data. It's a fully managed message queuing service that decouples and scales distributed systems, ensuring that our Lambda functions receive a steady stream of data for processing. In our system, every queue is backed by a Dead Letter Queue (DLQ). In the context of messaging systems, a DLQ is a queue that other source queues can target for messages that are not successfully processed. This approach ensures no data is lost in the process, enhancing our system's resilience.\"]}),/*#__PURE__*/e(\"p\",{children:\"Both processed and unprocessed data and is stored in Amazon S3 buckets, a scalable object storage service, for staging and backup purposes. Buffered by SQS queues, data is processed by Lambda services. Post-processing, the data is stored back into S3, ready for later use, and piped to our long-term storage in Snowflake for further analysis. This consistent cycle of data flow Ai S3 to SQS to Lambda and back to S3 Ai enables us to maintain a high throughput of data processing, which is vital for real-time alerting.\"}),/*#__PURE__*/e(\"p\",{children:\"Beyond these core services, we use a variety of other AWS tools to further augment our system's ability to cater to the ever-increasing data volume needs of our customers, as well as Snowflake for long-term data storage and analysis.\"}),/*#__PURE__*/e(\"p\",{children:\"Furthermore, Panther is designed as a regional service, meaning issues in one region only impact customers operating within that region. With this approach, we effectively isolate and minimize the impact of region-specific incidents. This strategy is a deliberate choice, made to reinforce the dependability of our service.\"}),/*#__PURE__*/e(\"h3\",{children:\"Outage and Impact\"}),/*#__PURE__*/t(\"p\",{children:[\"When AWS Lambda went down in \",/*#__PURE__*/e(\"code\",{children:\"us-east-1\"}),\", we were immediately notified through our telemetry data. We saw the massive drop in Lambda invocations and were also able to tell right away this was isolated only to a single region. AWS Lambda was operating at reduced capacity for nearly 3 hours. To help visualize the effect on our system, we have a few charts that provide a snapshot of what occurred during the outage from our point of view.\"]}),/*#__PURE__*/t(\"p\",{children:[\"First, let's look at the number of Lambda invocations per region. As shown in chart 1, invocations in the \",/*#__PURE__*/e(\"code\",{children:\"us-east-1\"}),\" region dropped down to near zero. This essentially meant that our compute engine, the heart of our data processing pipeline, came to a sudden halt in this region. Panic ensues.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"242\",src:\"https://framerusercontent.com/images/fpSPPPOPU2S8kBHmDswFKQIVnpI.png\",srcSet:\"https://framerusercontent.com/images/fpSPPPOPU2S8kBHmDswFKQIVnpI.png?scale-down-to=512 512w,https://framerusercontent.com/images/fpSPPPOPU2S8kBHmDswFKQIVnpI.png 865w\",style:{aspectRatio:\"865 / 484\"},width:\"432\"}),/*#__PURE__*/e(\"p\",{children:\"However, the data didn't stop coming in. We rely on several other services to get data into our platform, where it eventually ends up in our SQS queues. This leads us to our second chart, depicting the growth in our SQS queues. The queues, acting as our data buffer, started filling up rapidly. This is a clear illustration of how our system's resilience measures kicked in: even with Lambda out of commission, our data was not lost; instead, it was held safely in SQS, waiting to be processed. Slightly less panicked.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"241\",src:\"https://framerusercontent.com/images/Ipgmkkl1FQkypVP1dP2f7QEJ8A.png\",srcSet:\"https://framerusercontent.com/images/Ipgmkkl1FQkypVP1dP2f7QEJ8A.png?scale-down-to=512 512w,https://framerusercontent.com/images/Ipgmkkl1FQkypVP1dP2f7QEJ8A.png 842w\",style:{aspectRatio:\"842 / 483\"},width:\"421\"}),/*#__PURE__*/e(\"p\",{children:\"Our third chart showcases the Lambda Max Iterator Age. This 'Iterator Age' metric represents the 'age' of the most recent record processed from a data stream. It measures the duration from when the data stream initially receives a particular record to the moment when the event source mapping finally sends that record off to be processed by the function. Essentially, this metric gives us an indication of how long a record sits in the queue or stream before being processed, acting as a good measure of latency in the data processing pipeline. While SQS isn't the only data stream source we read from, as the outage persisted, this iterator age increased significantly. This indicated that our data was waiting longer to be processed, as it was held up in the growing SQS queues due to the Lambda functions being unavailable.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"245\",src:\"https://framerusercontent.com/images/Je1onW7rLa58DjGFG0psZ94bS8.png\",srcSet:\"https://framerusercontent.com/images/Je1onW7rLa58DjGFG0psZ94bS8.png?scale-down-to=512 512w,https://framerusercontent.com/images/Je1onW7rLa58DjGFG0psZ94bS8.png 911w\",style:{aspectRatio:\"911 / 490\"},width:\"455\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),\"The fourth chart shows the number of requests to S3 Buckets in the us-east-1 region dropped significantly. Without our Lambdas processing data, they were not writing data either. We see some requests still being made by our other services.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"226\",src:\"https://framerusercontent.com/images/cYWRZSUnjJlqQck2OaSXKJs.png\",srcSet:\"https://framerusercontent.com/images/cYWRZSUnjJlqQck2OaSXKJs.png?scale-down-to=512 512w,https://framerusercontent.com/images/cYWRZSUnjJlqQck2OaSXKJs.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/cYWRZSUnjJlqQck2OaSXKJs.png 1211w\",style:{aspectRatio:\"1211 / 452\"},width:\"605\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"p\",{children:\"These charts highlight the crucial role SQS played during this time and gave our on-call engineers some peace of mind while the region was down. Despite Lambda service going offline, the robustness of our system design ensured that we didn't lose any data, with SQS queues accommodating the increased load. It's worth noting that while this situation was far from routine, our system was designed to handle such contingencies, ensuring minimal impact on our customers even under unexpected circumstances.\"}),/*#__PURE__*/e(\"h3\",{children:\"Response and Recovery\"}),/*#__PURE__*/e(\"p\",{children:\"The outage served as an unplanned, yet effective stress test for our infrastructure. While vigilantly monitoring the AWS status page and our system dashboards, we were keenly anticipating signs of recovery. The first indication of this recovery came in the form of a substantial surge in Lambda executions once the service was restored. As shown in chart 5, Lambda invocations escalated to hundreds of thousands within a brief recovery period. This escalation was not just a response; it was our system's automated resilience kicking into action. Without the need for manual intervention, the accumulated data in the SQS queues was processed due to our system's inherent auto-scaling capabilities.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"223\",src:\"https://framerusercontent.com/images/gvi0lWf7u3kh4HpCifrP1UIWFvU.png\",srcSet:\"https://framerusercontent.com/images/gvi0lWf7u3kh4HpCifrP1UIWFvU.png?scale-down-to=512 512w,https://framerusercontent.com/images/gvi0lWf7u3kh4HpCifrP1UIWFvU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/gvi0lWf7u3kh4HpCifrP1UIWFvU.png 1240w\",style:{aspectRatio:\"1240 / 446\"},width:\"620\"}),/*#__PURE__*/e(\"p\",{children:\"As we began to see the signs of recovery, our focus shifted to our Lambda concurrency dashboards to watch the system scale effortlessly. As predicted and shown in chart 6, we saw a substantial increase in concurrent executions across all the Lambdas in the region. The focus here isn't on the threat of throttling from too many concurrent invocations, but rather a demonstration of our system's capability to scale horizontally. In our operations, throttling is commonly seen as a positive aspect. Throttling supports our systems in methodically recovering by distributing load evenly like an intelligence pressure valve.\"}),/*#__PURE__*/e(\"p\",{children:\"This sudden data surge was easily absorbed by our infrastructure. The beauty of this architecture lies in its ability to maintain this volume of data at any time. Essentially, we could have sustained these peaks indefinitely, a testament to our engineers' hard work over the years.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"223\",src:\"https://framerusercontent.com/images/dM4BMhTbnEQT1305m0NRhD0.png\",srcSet:\"https://framerusercontent.com/images/dM4BMhTbnEQT1305m0NRhD0.png?scale-down-to=512 512w,https://framerusercontent.com/images/dM4BMhTbnEQT1305m0NRhD0.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/dM4BMhTbnEQT1305m0NRhD0.png 1242w\",style:{aspectRatio:\"1242 / 446\"},width:\"621\"}),/*#__PURE__*/e(\"p\",{children:\"Chart 7 captures the essence of our system's design philosophy - to scale automatically and efficiently, adapting to the needs of the moment. As soon as Lambda was back online, our system rapidly scaled up its processing capabilities to accommodate the buffered data in the SQS queues.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"221\",src:\"https://framerusercontent.com/images/cbzUVjXGoIdns7m66pbXXJSGTPY.png\",srcSet:\"https://framerusercontent.com/images/cbzUVjXGoIdns7m66pbXXJSGTPY.png?scale-down-to=512 512w,https://framerusercontent.com/images/cbzUVjXGoIdns7m66pbXXJSGTPY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/cbzUVjXGoIdns7m66pbXXJSGTPY.png 1189w\",style:{aspectRatio:\"1189 / 442\"},width:\"594\"}),/*#__PURE__*/e(\"p\",{children:\"Throughout this outage and subsequent recovery, our engineers could focus on monitoring the situation, rather than scrambling to implement manual recovery strategies. Our system's built-in self-optimization allowed us to ride out the Lambda outage with minimal impact on our customer's data, and then rapidly process the accumulated data once Lambda was back online.\"}),/*#__PURE__*/e(\"h3\",{children:\"Lessons Learned and Improvements\"}),/*#__PURE__*/e(\"p\",{children:\"This outage highlighted the resiliency of our system but also identified areas that could potentially be improved. One significant observation was the volume of on-call notifications, a small alert storm. While this noise was stressful for some, our instrumentation and dashboards gave some peace of mind. During our postmortem, we were able to reassess many alerts, tune thresholds, and continue to improve the on-call experience for our engineers. Being on-call shouldn't mean being constantly interrupted by unimportant signals. Instead, our aim is to continuously improve this system where our engineers are notified of critical failures, and let the resiliency of our system handle the rest. As such, we're working to continue to focus on symptom-based alerts rather than cause-based ones.\"}),/*#__PURE__*/e(\"p\",{children:\"This incident demonstrated the real-world effectiveness of our system's design philosophy - a commitment to automatic scalability, system resilience, and data integrity. It underscored our dedication to ensuring uninterrupted, reliable service to our customers, even in the face of unexpected service disruptions. The steadfastness displayed by our platform during this outage is the culmination of years of diligent and disciplined engineering. With any incident, we're reminded that system resilience is not a sudden achievement, but an iterative process and a result of continuous care efforts over time. Our pride in the system's performance is immense, and we regard it as validation of our ongoing dedication to our engineering ethos.\"})]});export const richText7=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"GitHub \",/*#__PURE__*/e(n,{href:\"https://github.blog/2023-07-18-security-alert-social-engineering-campaign-targets-technology-industry-employees/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"has warned developers \"})}),'of a social engineering operation targeting developers in the cryptocurrency, gambling, and cybersecurity industries. The \"Lazarus Group\" is a well-known and notorious hacking group linked to North Korea. This group has been involved in numerous high-profile cyberattacks, including financial theft, espionage, and destructive attacks. Lazarus is also known as \"Jade Sleet\" by Microsoft and ',/*#__PURE__*/e(n,{href:\"https://www.cisa.gov/news-events/cybersecurity-advisories/aa22-108a\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:'\"TraderTraitor\" by CISA'})}),\". \"]}),/*#__PURE__*/e(\"p\",{children:\"The Lazarus Group is believed to be backed by the North Korean government and is known for its sophisticated cyber capabilities. They have been responsible for various cyber incidents, such as the 2014 Sony Pictures hack, the 2016 Bangladesh Bank heist, and recently several attacks on cryptocurrency exchanges.\"}),/*#__PURE__*/e(\"h3\",{children:\"Anatomy of a Social Engineering Software Supply Chain Attack\"}),/*#__PURE__*/e(\"p\",{children:\"The Lazarus Group's latest attack path is taking aim at organization's software supply chain through a nefarious social engineering campaign targeting developers as illustrated in Figure 1. The attackers leverage existing or fake social media profiles on LinkedIn, Slack, and Telegram to make contact with their developer targets. The social engineering approach is used to gain their target's trust and convince them to collaborate on software projects such as media players and cryptocurrency tools; they then send them a link to a code repository (both private and public) to clone and execute. \"}),/*#__PURE__*/t(\"p\",{children:[\"When the developer runs the code, it calls out to install malicious node package manager dependencies, which act as first-stage malware loaders which then load second-stage malware to the system. All of the malicious code is deployed from remote systems. \",/*#__PURE__*/e(n,{href:\"https://blog.phylum.io/sophisticated-ongoing-attack-discovered-on-npm/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Phylum provides a more detailed description \"})}),\"of the malicious NPM packages. GitHub\",/*#__PURE__*/e(n,{href:\"https://github.blog/2023-07-18-security-alert-social-engineering-campaign-targets-technology-industry-employees/#indicators\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\" provides a list of IoCs\"})}),\", such as the NPM packages, domain names, and associated GitHub accounts used in the campaign.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"Diagram demonstrating these steps: <p>1. Lazarus establishes trust on LinkedIn</p> <p>2. Lazarus sends a link to a private repo with malicious code for collaboration over Slack</p> <p>3. The target clones and executes the poisoned code repo</p> <p>4. Code contains malicious NPM dependencies that function as first-stage malware</p> 5. Downloads second-stage malware from various domains and executes on the target's system.\",className:\"framer-image\",height:\"1254\",src:\"https://framerusercontent.com/images/jMN5MLQCC6rfoLsMwyiO9kuuFNw.png\",srcSet:\"https://framerusercontent.com/images/jMN5MLQCC6rfoLsMwyiO9kuuFNw.png?scale-down-to=512 512w,https://framerusercontent.com/images/jMN5MLQCC6rfoLsMwyiO9kuuFNw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/jMN5MLQCC6rfoLsMwyiO9kuuFNw.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/jMN5MLQCC6rfoLsMwyiO9kuuFNw.png?scale-down-to=4096 4096w,https://framerusercontent.com/images/jMN5MLQCC6rfoLsMwyiO9kuuFNw.png 4800w\",style:{aspectRatio:\"4800 / 2509\"},width:\"2400\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"em\",{children:\"Figure 1. Lazarus Group Attack Sequence Targeting GitHub Users\"})}),/*#__PURE__*/e(\"h3\",{children:\"Remediation \"}),/*#__PURE__*/t(\"p\",{children:[\"It is recommended that if a GitHub user believes they may have been targeted, they review their \",/*#__PURE__*/e(n,{href:\"https://github.com/settings/security-log\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"personal GitHub Logs\"})}),\" to see if they accepted an invite from any of these malicious user accounts:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"GalaxyStarTeam\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Cryptowares\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Cryptoinnowise\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Netgolden\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Suppose the malicious code from the target repository was cloned and executed. In that case, additional steps to wipe the machine should be performed, as well as reset any credentials on the system which may have been compromised. The Lazarus Group appears to be targeting cryptocurrency and gambling sites to gain access to crypto wallets, while they may be targeting cybersecurity companies to install back doors or gain credentials to gain access to their customers downstream. \"}),/*#__PURE__*/e(\"h3\",{children:\"The Software Supply Chain Threat\"}),/*#__PURE__*/e(\"p\",{children:\"Adversaries know that many organizations are moving more and more of their operations to the Cloud and increasingly developing their own applications, particularly in the financial and cybersecurity realm. This shift requires organizations to shift their risk models to the left, where they are logging and analyzing security data for threats to their internal network and employee endpoints and securing their DevOps and Cloud environments. There has not only been an uptick in the frequency of these types of attacks but also in the severity of their impact, as they often involve the initial entity being attacked and their downstream customers, whether it is commercial software or an open-source tool. Organizations should not only be logging traditional security data from firewalls, endpoints, etc. but also their DevOps and Cloud environments. \"}),/*#__PURE__*/t(\"p\",{children:['Panther will be running a virtual workshop on Aug 22 from 11 AM - 1 PM (PDT), \"',/*#__PURE__*/e(n,{href:\"https://panther.com/company/events/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Code to Cloud: Securing the Software Supply Chain with Detection-as-Code and Modern SIEM\"})}),',\" where we will run a series of hands-on labs focused specifically on threats to the software supply chain. This workshop will focus on log sources not usually ingested into legacy SIEMs such as GitHub, Okta, and AWS Cloudtrail and how we can identify and mitigate common threats to an organization\\'s software supply chain. I will also give a talk at Black Hat on Thursday, Aug 10, 2023, at 12:40 PM in the room \"Mandalay Bay L.\" on Securing the Software Supply Chain with Detection-as-Code.\\' I hope to see you at an event soon!']})]});export const richText8=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Microsoft recently suffered a significant breach of their Exchange Online and Azure Ad services following the \",/*#__PURE__*/e(n,{href:\"https://www.bleepingcomputer.com/news/microsoft/microsoft-still-unsure-how-hackers-stole-azure-ad-signing-key/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"compromise of a signing key\"})}),\" resulting in the compromise of several organizations, including government agencies. Microsoft still needs to learn how the key was compromised. However, it was detected first by the US government, which had access to Microsoft's advanced logging capabilities. Historically if an organization wanted access to Microsoft's Cloud Services logs or additional security tools, they would have to opt-in to premium licenses such as E5. \"]}),/*#__PURE__*/e(\"p\",{children:\"Many in the security community have had issues with this model from Microsoft, particularly given the additional levels of security to protect against potential vulnerabilities in their product, some drawing the analogy that it's equivalent to a car manufacturer charging extra for seat belts, airbags, and other safety features. My friend and respected security practitioner across the pond, Daniel Card, pointed out how vital access to the tools and services provided by the Microsoft E5 license is to protect the  organizations he works with:\"}),/*#__PURE__*/e(\"div\",{children:\" https://twitter.com/UK_Daniel_Card/status/1680838156235440128 \"}),/*#__PURE__*/e(\"h3\",{children:\"The Shared Responsibility Model\"}),/*#__PURE__*/e(\"p\",{children:\"Although unfortunate that Microsoft waited so long and that it took such a catastrophic incident for them to finally take action and provide logging capabilities to their lower licensing tiers, it may have provided the realization of their potential liabilities when it comes to the shared responsibility model where both the cloud service provider and the customer play vital roles. Recognizing the importance of this partnership, Microsoft has taken a significant step by extending logging capabilities to non-premium customers, reinforcing the shared responsibility model, and enabling enhanced security measures for all users. Microsoft's recent decision to offer these logging capabilities to non-premium customers will level the playing field, granting equal access to invaluable security insights to mitigate today's threats. \"}),/*#__PURE__*/t(\"p\",{children:[\"The \",/*#__PURE__*/e(n,{href:\"https://learn.microsoft.com/en-us/azure/security/fundamentals/shared-responsibility\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"shared responsibility model \"})}),\"is built upon the premise that while cloud service providers are responsible for securing the infrastructure, customers must take ownership of their applications, data, and user access. By extending logging capabilities to non-premium customers in September 2023, Microsoft will better empower the customer's ability to fulfill their responsibilities effectively. This move aligns with evolving cloud threats and helps Microsoft's commitment to securing its customers with the tools necessary to safeguard their digital assets.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Log Liberation\"}),/*#__PURE__*/e(\"p\",{children:\"As businesses increasingly rely on cloud services, the responsibility for securing and monitoring data has shifted towards a shared model, where both the cloud service provider and the customer play vital roles. Microsoft, one of the leading technology giants, has been collaborating with CISA to identify critical log data that should be provided to all its cloud customers for free. Historically, advanced logging capabilities were only available to premium customers. However, Microsoft's recent decision following this security incident to offer these logging capabilities to non-premium customers has leveled the playing field, granting equal access to invaluable security insights and strengthening the shared responsibility model.\"}),/*#__PURE__*/e(\"h3\",{children:\"Benefits of Logging Capabilities\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Enhanced Visibility:\"}),\" Logging is critical in enabling proactive threat detection and incident response. By extending logging capabilities to non-premium customers, Microsoft empowers organizations of all sizes to gain greater visibility into their cloud environments. This increased visibility facilitates the early detection of potential security breaches, allowing for rapid mitigation and reducing the risk of data loss or unauthorized access. \"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Improved Threat Intelligence:\"}),\" With expanded logging capabilities, customers can tap into rich, detailed data logs, providing invaluable insights into their systems' activities. This wealth of information helps organizations identify patterns, anomalies, and potential threats. Leveraging this enhanced threat intelligence, customers can make informed decisions to bolster their security posture and respond effectively to emerging risks. \"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Streamlined Compliance: \"}),\"Compliance with industry regulations and standards is crucial to data security. By making logging capabilities available to non-premium customers, Microsoft empowers organizations to meet compliance obligations more effectively. Comprehensive and centralized logging enables easier auditing, monitoring, and reporting security events, contributing to a more streamlined compliance process. \"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Collaboration and Learning:\"}),\" The shared responsibility model recognizes that both the cloud service provider and the customer contribute to the system's overall security. By democratizing logging capabilities, Microsoft fosters collaboration and mutual learning between providers and customers. Customers gain access to the same powerful tools and insights as premium customers, encouraging a collective effort toward maintaining a secure environment.\"]})})]}),/*#__PURE__*/e(\"h3\",{children:\"Democratizing Access to Microsoft Logs\"}),/*#__PURE__*/e(\"p\",{children:\"Microsoft's new free logging capabilities will also help Panther customers, as they no longer will need to purchase the higher subscription tiers to onboard logs into their Panther instances. This evolution will allow Panther customers to leverage our integration with Microsoft and easily correlate with other data sources and tools. \"}),/*#__PURE__*/e(\"p\",{children:\"Microsoft's decision in collaboration with CISA to provide logging capabilities to non-premium customers is a significant development that reinforces the shared responsibility model. By democratizing access to advanced logging features, Microsoft empowers organizations of all sizes to take a more proactive and vigilant stance in securing their cloud environments. This move serves as a testament to the power of the infosec community, along with Microsoft's dedication to promoting collaboration, transparency, and continuous improvement in data security. \"}),/*#__PURE__*/e(\"p\",{children:\"As more workloads move to the cloud and threats evolve to target them, initiatives like this are vital in fostering a more resilient and secure online ecosystem to make the cloud more confident. I hope more cloud providers will follow suit in making logs free and easily accessible. \"})]});export const richText9=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Panthers detection engine can make API calls out to third-party resources such as enrichment providers or threat intelligence feeds. While the majority of enrichment use cases can be achieved using \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/enrichment/lookup-tables\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"custom\"})}),\" or \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/enrichment#enrichment-providers\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"built-in\"})}),\" Lookup Tables, Panther can support this workflow by granting special permissions to the detection engine that runs your Python code and allowing you access to secrets stored in your own AWS account.\"]}),/*#__PURE__*/t(\"p\",{children:[\"To create and store secrets in AWS Secrets Manager, please reference the AWS documentation: \",/*#__PURE__*/e(n,{href:\"https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Create an AWS Secrets Manager secret\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Panthers detection engine runs within an AWS Lambda over \",/*#__PURE__*/e(\"em\",{children:\"every single log event\"}),\" as its received. To understand this level of scale, if you are processing one million log events in an hour, and if you are making an API call in even \",/*#__PURE__*/e(\"em\",{children:\"half\"}),\" of those detections, it will very quickly exacerbate any API rate limits that may be in place and likely affect detection performance.Because of this, its crucial to implement third-party API calls strategically and deliberately in Panther detections. See the \",/*#__PURE__*/e(\"strong\",{children:\"Tips\"}),\" section below for implementation ideas.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Create a custom IAM role\"}),/*#__PURE__*/t(\"p\",{children:[\"AWS documentation reference: \",/*#__PURE__*/e(n,{href:\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-start\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Creating IAM policies\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"To access your stored secrets, Panther needs an IAM role with permissions to read from Secrets Manager. Create an IAM role following the steps below.\"}),/*#__PURE__*/t(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Navigate to IAM\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Click Create role\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/t(\"p\",{children:[\"Select Custom trust policy (see: \",/*#__PURE__*/e(\"strong\",{children:\"Add trust policy\"}),\")\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Add the required permissions\"})})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"558\",src:\"https://framerusercontent.com/images/ZDuVYtLT1Arr0CNcNugncP2g.png\",srcSet:\"https://framerusercontent.com/images/ZDuVYtLT1Arr0CNcNugncP2g.png?scale-down-to=512 512w,https://framerusercontent.com/images/ZDuVYtLT1Arr0CNcNugncP2g.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/ZDuVYtLT1Arr0CNcNugncP2g.png 1296w\",style:{aspectRatio:\"1296 / 1117\"},width:\"648\"}),/*#__PURE__*/t(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Click Next\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Select Create policy\"})})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"550\",src:\"https://framerusercontent.com/images/EYc4tdiOK8cYIkSmDcjqMNC9nw.png\",srcSet:\"https://framerusercontent.com/images/EYc4tdiOK8cYIkSmDcjqMNC9nw.png?scale-down-to=512 512w,https://framerusercontent.com/images/EYc4tdiOK8cYIkSmDcjqMNC9nw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/EYc4tdiOK8cYIkSmDcjqMNC9nw.png 1629w\",style:{aspectRatio:\"1629 / 1101\"},width:\"814\"}),/*#__PURE__*/e(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/t(\"p\",{children:[\"Under Specify permissions, add \",/*#__PURE__*/e(\"code\",{children:\"GetSecretValue\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"DescribeSecret\"}),\" (see: Add IAM permissions)\"]})})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"502\",src:\"https://framerusercontent.com/images/mx8SkkqKVukpWAnvMZ9ZPocqOc.png\",srcSet:\"https://framerusercontent.com/images/mx8SkkqKVukpWAnvMZ9ZPocqOc.png?scale-down-to=512 512w,https://framerusercontent.com/images/mx8SkkqKVukpWAnvMZ9ZPocqOc.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/mx8SkkqKVukpWAnvMZ9ZPocqOc.png 1586w\",style:{aspectRatio:\"1586 / 1005\"},width:\"793\"}),/*#__PURE__*/e(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Give your policy a name and description\"})})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"430\",src:\"https://framerusercontent.com/images/3KvZL0Rys84A4nIFbyfWZbH8.png\",srcSet:\"https://framerusercontent.com/images/3KvZL0Rys84A4nIFbyfWZbH8.png?scale-down-to=512 512w,https://framerusercontent.com/images/3KvZL0Rys84A4nIFbyfWZbH8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/3KvZL0Rys84A4nIFbyfWZbH8.png 1196w\",style:{aspectRatio:\"1196 / 861\"},width:\"598\"}),/*#__PURE__*/t(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Navigate back to your role\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"In the Add permissions page, find and select your new policy (you may need to click the refresh button)\"})})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"338\",src:\"https://framerusercontent.com/images/920gSERsyCyjWchLRDBizPjptA.png\",srcSet:\"https://framerusercontent.com/images/920gSERsyCyjWchLRDBizPjptA.png?scale-down-to=512 512w,https://framerusercontent.com/images/920gSERsyCyjWchLRDBizPjptA.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/920gSERsyCyjWchLRDBizPjptA.png 1582w\",style:{aspectRatio:\"1582 / 676\"},width:\"791\"}),/*#__PURE__*/e(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Select Create role\"})})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"565\",src:\"https://framerusercontent.com/images/YZ6g4RngxwPikJ4XI6vSCQ6tbM.png\",srcSet:\"https://framerusercontent.com/images/YZ6g4RngxwPikJ4XI6vSCQ6tbM.png?scale-down-to=1024 920w,https://framerusercontent.com/images/YZ6g4RngxwPikJ4XI6vSCQ6tbM.png 1017w\",style:{aspectRatio:\"1017 / 1131\"},width:\"508\"}),/*#__PURE__*/e(\"ol\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\",\"--list-style-type\":\"none\"},children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/e(\"p\",{children:\"Copy the Role ARN\"})})}),/*#__PURE__*/e(\"h3\",{children:\"Add trust policy\"}),/*#__PURE__*/t(\"p\",{children:[\"In order to explicitly grant Panther the necessary permissions to access your secret, you need to set the \",/*#__PURE__*/e(n,{href:\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Principal(s)\"})}),\" that are allowed to assume your role. In this case, you will grant role-based access to the Panther detections engine.\"]}),/*#__PURE__*/t(\"p\",{children:[\"You will need the role ARN used to execute the \",/*#__PURE__*/e(\"strong\",{children:\"Panther detections engine\"}),\". If you want to access your secret while testing, you will need to grant access to a second role used for running \",/*#__PURE__*/e(\"strong\",{children:\"unit tests.\"})]}),/*#__PURE__*/e(\"p\",{children:\"Please reach out to your Panther team to request these two ARNs. You cannot move forward without them.\"}),/*#__PURE__*/t(\"p\",{children:[\"Once youve received the \",/*#__PURE__*/e(\"em\",{children:\"required\"}),\" detections engine role ARN and optionally, the unit tests role ARN from Panther, add them as Principals to your trust policy. It should look like this:\"]}),/*#__PURE__*/e(\"h3\",{children:\"Add IAM permissions\"}),/*#__PURE__*/t(\"p\",{children:[\"Your IAM policy must include these statements: \",/*#__PURE__*/e(\"code\",{children:\"GetSecretValue\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"DescribeSecret\"}),\". As a best practice, it is recommended to only allow Panther access to the required secret for your API calls.\"]}),/*#__PURE__*/e(\"p\",{children:\"Your IAM policy should look like this:\"}),/*#__PURE__*/e(\"h3\",{children:\"Finish the configuration\"}),/*#__PURE__*/e(\"p\",{children:\"After you have successfully created your IAM role, provide the role ARN you copied in Step 12 to your Panther team. They will add it to a backend deployment task which creates a list of roles that the detection engine has permission to assume. Once this step has been completed, you can proceed to writing detections.\"}),/*#__PURE__*/e(\"h3\",{children:\"Writing detections using stored secrets\"}),/*#__PURE__*/t(\"p\",{children:[\"To use your secret within a Panther detection, you can first write code that retrieves the secret, and then use it to make calls to a third-party API. \",/*#__PURE__*/e(\"code\",{children:\"boto3\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"requests\"}),\" are two Python libraries that are installed out-of-the-box in your Panther runtime environment, and should be used for this use case.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Rather than writing logic in each rule definition to assume your custom role, you can write one helper module and import it into multiple detections. Using \",/*#__PURE__*/e(\"code\",{children:\"boto3\"}),\", you can instantiate STS and Secrets Manager clients, assume the role programmatically via the \",/*#__PURE__*/e(n,{href:\"https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role.html#assume-role\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"assume_role\"})}),\" method, and then fetch the secret from Secret Manager via the \",/*#__PURE__*/e(n,{href:\"https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager/client/get_secret_value.html\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"get_secret_value\"})}),\" method.\"]}),/*#__PURE__*/e(\"p\",{children:\"Your helper might look like this:\"}),/*#__PURE__*/t(\"p\",{children:[\"Once you have defined code that retrieves the necessary credentials and fetches the secret value off of the returned credentials object, you can use the \",/*#__PURE__*/e(\"code\",{children:\"requests\"}),\" library to call the API.\"]}),/*#__PURE__*/t(\"p\",{children:[\"The example below looks up an IP address report from Virus Total. The \",/*#__PURE__*/e(\"strong\",{children:\"alert_context\"}),\" function makes a call out to Virus Total and returns a \",/*#__PURE__*/e(\"code\",{children:\"last_analysis_stats\"}),\" object. It uses the \",/*#__PURE__*/e(\"code\",{children:\"get_aws_credentials\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"get_stored_secret\"}),\" helpers defined above to fetch a secret named panther-secrets/virus-total. It also checks the IP address on the event using Panthers \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/detections/data-models#overview\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"unified data model\"})}),\" syntax, meaning this detection can be easily configured to run over multiple log types.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Tips\"}),/*#__PURE__*/t(\"ul\",{style:{\"--framer-font-size\":\"16px\",\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"rgb(21, 22, 25)\",\"--framer-text-stroke-width\":\"0px\",\"--framer-text-transform\":\"none\"},children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/t(\"p\",{children:[\"Before implementing a detection with an API call, explore Panthers \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/enrichment#enrichment-providers\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"built-in enrichment providers\"})}),\": GreyNoise, Tor Exit Nodes and IPInfo. These datasets come out-of-the-box with Panther and may already have the extra context you need to leverage.\"]})}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:[/*#__PURE__*/e(\"p\",{children:\"For large, static datasets, or when you want to enrich log events with context, create a custom Lookup Table instead.\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/t(\"p\",{children:[\"See: \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/enrichment/lookup-tables\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Lookup Tables\"})}),\".\"]})})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:[/*#__PURE__*/e(\"p\",{children:\"Use filtering logic and caching helpers to store values in dynamoDB and reduce the number of API calls needed.\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/t(\"p\",{children:[\"See \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/detections/caching#examples\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Stateful Detections (Caching) > Dictionaries > Examples\"})}),\".\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",style:{\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"27px\"},children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(n,{href:\"https://github.com/cpascale43/custom-panther-helpers\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"An end-to-end example can be found here\"})}),\".\"]})})]})]})]})]});export const richText10=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"Panther & Detection-as-Code\"}),/*#__PURE__*/t(\"p\",{children:[\"Panther believes firmly in the power of \",/*#__PURE__*/e(n,{href:\"https://panther.com/blog/modernize-detection-engineering-with-detection-as-code/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Detection-as-Code\"})}),\". In the past, this meant we focused primarily on building a tool for security engineers with deep coding experience. While Panther will continue to place the developer workflow at the heart of our experience, we also want to unlock the value of Detection-as-Code \",/*#__PURE__*/e(\"strong\",{children:\"for everyone\"}),\". A key part of this vision is enabling teams with varying levels of development experience to effectively build, manage, and collaborate on their detection logic.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Simple Detections Overview\"}),/*#__PURE__*/t(\"p\",{children:[\"Currently, Panther's detections are \",/*#__PURE__*/e(n,{href:\"https://panther.com/blog/using-python-to-write-siem-detections/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"powered by Python\"})}),\", which provides an exceptional level of flexibility and power for identifying suspicious activity in your environment.\"]}),/*#__PURE__*/t(\"p\",{children:[\"However, we understand that this level of sophistication is not always necessary. To augment the user experience for creating and managing detections, Panther is \",/*#__PURE__*/e(n,{href:\"https://panther.com/blog/realize-siem-value-from-day-one/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"actively developing a simpler interface for writing and modifying detections\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"Soon, most of the Panther-managed detections will be available in a simple human-readable description language, YAML. Below is an example rule that detects when a team is modified in GitHub. You can see how the Python rule (left) easily translates into a YAML-based rule (right). A key benefit of YAML-based detection logic is that it preserves the benefits of detection-as-code while also simplifying how rules are expressed.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"We will also continue to fully support Python detections\"}),\". Certain more complex detections, in fact, require the expressiveness offered by Python.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"439\",src:\"https://framerusercontent.com/images/9Hb9NiXcVuPW1DuxQHWd5Jdpw.png\",srcSet:\"https://framerusercontent.com/images/9Hb9NiXcVuPW1DuxQHWd5Jdpw.png?scale-down-to=512 512w,https://framerusercontent.com/images/9Hb9NiXcVuPW1DuxQHWd5Jdpw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/9Hb9NiXcVuPW1DuxQHWd5Jdpw.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/9Hb9NiXcVuPW1DuxQHWd5Jdpw.png 2158w\",style:{aspectRatio:\"2158 / 878\"},width:\"1079\"}),/*#__PURE__*/t(\"p\",{children:[\"Simple Detections also enables an inheritance model for detection logic. This means when you're using Panther-managed YAML detections, Panther's core rule logic will be stored in a separate file from your customizations, which simply reference the base rule. A key benefit of the\",/*#__PURE__*/e(\"strong\",{children:\" inheritance model is that upgrades to Panther-managed detection logic will be seamlessly applied across customer environments. \"}),\"We're excited about the implications for code reuse and extension flexibility this new structure brings.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Customer-maintained YAML-based detections:\"})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"322\",src:\"https://framerusercontent.com/images/EAnPUnKNfiJab7FaVLcSsUHPzU.png\",srcSet:\"https://framerusercontent.com/images/EAnPUnKNfiJab7FaVLcSsUHPzU.png?scale-down-to=512 512w,https://framerusercontent.com/images/EAnPUnKNfiJab7FaVLcSsUHPzU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/EAnPUnKNfiJab7FaVLcSsUHPzU.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/EAnPUnKNfiJab7FaVLcSsUHPzU.png 2351w\",style:{aspectRatio:\"2351 / 644\"},width:\"1175\"}),/*#__PURE__*/e(\"h3\",{children:\"Low-Code Experience in the Console\"}),/*#__PURE__*/e(\"p\",{children:\"In the Console, analysts will be able to read, modify, and write detections using a GUI builder to express detections in a YAML-based format. You can tailor a Panther-managed rule by adding a filter using the form builder or text-based editor. Additionally, you can create and deploy brand-new detections using a similar experience.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Configure a detection:\"})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"297\",src:\"https://framerusercontent.com/images/7eEH8UUCFb0GIMlKYCl8GrwiRFo.png\",srcSet:\"https://framerusercontent.com/images/7eEH8UUCFb0GIMlKYCl8GrwiRFo.png?scale-down-to=512 512w,https://framerusercontent.com/images/7eEH8UUCFb0GIMlKYCl8GrwiRFo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/7eEH8UUCFb0GIMlKYCl8GrwiRFo.png 1142w\",style:{aspectRatio:\"1142 / 594\"},width:\"571\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Configure dynamic alert fields:\"})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"472\",src:\"https://framerusercontent.com/images/XSzjWZq4jDf4qtU6O0Iw6TXedKU.png\",srcSet:\"https://framerusercontent.com/images/XSzjWZq4jDf4qtU6O0Iw6TXedKU.png?scale-down-to=512 512w,https://framerusercontent.com/images/XSzjWZq4jDf4qtU6O0Iw6TXedKU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/XSzjWZq4jDf4qtU6O0Iw6TXedKU.png 1142w\",style:{aspectRatio:\"1142 / 944\"},width:\"571\"}),/*#__PURE__*/e(\"h3\",{children:\"Panther Developer Experience\"}),/*#__PURE__*/e(\"p\",{children:\"Users managing detections through the developer workflow will soon have the option to write YAML-based rules or customize Panther-managed rules. We will provide migration tools for the Panther-managed rules if you would like to take advantage of the inheritance benefits of Simple Detections.\"}),/*#__PURE__*/t(\"p\",{children:[\"We will continue to publish new detections and detection updates in Python, in the\",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\" panther-analysis repository\"})}),\". Soon, inline filters can be applied to Python-based rules to make simple modifications such as allow or deny lists. This mirrors the Rule Filters that are available in the Console today.\"]}),/*#__PURE__*/e(\"p\",{children:\"YAML-based detections can live in your detections repository alongside Python-based ones and all be uploaded using the Panther Analysis Tool (PAT).\"}),/*#__PURE__*/e(\"h3\",{children:\"Enabling Powerful Collaboration\"}),/*#__PURE__*/e(\"p\",{children:\"Panther will always enable the most powerful aspects of Detection-as-Code, but we also want support teams on their journey towards the new paradigm. In order to help security teams progress towards a developer-centric approach, Panther's product will provide a bridge from GUI-based actions to writing detections in code and using developer tools like CI/CD workflows.\"}),/*#__PURE__*/e(\"p\",{children:\"We're excited to shape Panther into a platform where each team member has the best tools available to get their job done, while easily collaborating with others. By bridging console and developer workflows, all team members can manage detections using either interface based on their preference - increasing team efficiency and accelerating detection development and tuning.\"}),/*#__PURE__*/t(\"p\",{children:[\"If you'd like to learn more about Simple Detections, please \",/*#__PURE__*/e(n,{href:\"https://panther.com/resources/webinars/detection-as-code-for-everyone-introducing-panthers-simple-detections/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"register for our technical deep-dive webinar\"})})}),\" in July or \",/*#__PURE__*/e(n,{href:\"https://panther.com/product/request-a-demo/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/t(r.a,{children:[/*#__PURE__*/e(\"strong\",{children:\"request a\"}),\" \",/*#__PURE__*/e(\"strong\",{children:\"demo of the Panther platform\"})]})}),\".\"]})]});export const richText11=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"blockquote\",{children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"\\\"Although we evaluated multiple solutions, Panther and Snowflake was an easy decision for us. With the ease of set-up, low maintenance overhead, and inexpensive storage were able to focus on business building security insights, detections, and KPIs in very little time.'\"}),/*#__PURE__*/e(\"br\",{}),\"- Tim Kelly, Director, Security Engineering at Workrise\"]})}),/*#__PURE__*/e(\"h3\",{children:\"The Importance of Visibility for Security\"}),/*#__PURE__*/t(\"p\",{children:[\"Visibility is crucial to any effective security program. It is impossible to secure what you can't see. This was a top priority for \",/*#__PURE__*/e(n,{href:\"https://www.workrise.com/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Workrise\"})}),\", an energy staffing and vendor management company that needed to quickly and cost-effectively ingest data and identify unknown unknowns.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Why Choose Panther for Detection and Response?\"}),/*#__PURE__*/e(\"p\",{children:\"Workrise faced the challenge of ingesting high volume logs from multiple software providers with various query syntaxes and user interfaces, making it impossible to piece together a story through a single view. Leveraging Panther's modern architecture it's easier to ingest data and achieve visibility while simultaneously reducing costs. Panther also parses, normalizes and optimizes data upon ingest -- allowing the team to perform security tasks more efficiently and searching across multiple data sets quickly and efficiently. \"}),/*#__PURE__*/e(\"p\",{children:\"Panther enables detection-as-code using Python. Instead of being constrained by a proprietary language, the Workrise team writes detection logic in a widely-used programming language known for its simplicity and flexibility. Deploying this logic as-code' also means the team can collaborate more effectively around new detections and manage their current logic more effectively via version control and code reuse. This allowed Workrise's security team to write, test, and deploy custom detections and automate response actions without having to learn a new, complex language. \"}),/*#__PURE__*/e(\"p\",{children:\"Panther's ability to provide seamless alert routing was a key feature that attracted Workrise. This allowed the company to crowdsource the highest value detections and send them directly to the responsible people, achieving quick wins and building momentum towards full automation and response. Finally, the Workrise team also spent less time wrangling their data infrastructure - allowing them more time to focus creative approaches to data analysis and detection - enabling them to better mitigate threats. \"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"316\",src:\"https://framerusercontent.com/images/qQQWer2Hur19DFxezpOjxjyvS5U.png\",srcSet:\"https://framerusercontent.com/images/qQQWer2Hur19DFxezpOjxjyvS5U.png?scale-down-to=512 512w,https://framerusercontent.com/images/qQQWer2Hur19DFxezpOjxjyvS5U.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/qQQWer2Hur19DFxezpOjxjyvS5U.png 1094w\",style:{aspectRatio:\"1094 / 633\"},width:\"547\"}),/*#__PURE__*/e(\"h3\",{children:\"Why Choose Panther and Snowflake Together?\"}),/*#__PURE__*/e(\"p\",{children:\"The Workrise security team researched multiple SIEM providers, including Chronicle, Sumo Logic, and Splunk, but recognized that Workrise was already a Snowflake customer. This made the Panther and Snowflake marriage an ideal solution for their team. They could have a separate security account, marry the data they needed, and leverage many of tools that their data engineering team had already built. Additionally, leveraging Panther and Snowflake allows the Security team to use the same languages (Python & SQL) as the data science team and plugin in and BI visualization tool to perform executive reporting.\"}),/*#__PURE__*/e(\"p\",{children:\"The Panther and Snowflake solution provided a Swiss Army knife for Workrise, allowing them to quickly and easily ingest data, gain visibility, and achieve maximum security. They could leverage the power of Snowflake's data warehousing and Panther's approach to detection-as-code to detect and respond to threats quickly and efficiently.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/oCxMPRsTL3vAyQa1mGGBWsxTIo.png\",srcSet:\"https://framerusercontent.com/images/oCxMPRsTL3vAyQa1mGGBWsxTIo.png?scale-down-to=512 512w,https://framerusercontent.com/images/oCxMPRsTL3vAyQa1mGGBWsxTIo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/oCxMPRsTL3vAyQa1mGGBWsxTIo.png 1920w\",style:{aspectRatio:\"1920 / 1080\"},width:\"960\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Benefits of Using Panther and Snowflake for Security\"})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Simplicity and Efficiency\"}),\": With Panther's use of Python, it's easier to write custom detections and automate response actions, reducing the need for a new, complex language. With Snowflake's autoscaling capabilities, companies can efficiently ingest cloud-volume data sources.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Visibility:\"}),\" With Panther's native integrations and Snowflake's data warehousing capabilities, Workrise was able to achieve maximum visibility into their security posture. They could quickly and easily detect and respond to threats in real-time.\"]})})}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cost-Effective:\"}),\" Using Panther and Snowflake together was cost-effective for Workrise, as they were already Snowflake customers and could leverage their existing tools and data engineering team.\"]})})}),/*#__PURE__*/e(\"h3\",{children:\"Building a More Secure Future with Panther and Snowflake\"}),/*#__PURE__*/e(\"p\",{children:\"Panther and Snowflake are a perfect combination for any business that wants to build a more secure future. Together, the two tools offer simplicity, efficiency, and the ability to see and secure what matters most. With Panther, you can easily detect and respond to threats in real-time, and with Snowflake, you can quickly ingest and analyze large volumes of data from multiple sources. Together, they provide a comprehensive security solution that can help your business stay one step ahead of cyber threats.\"}),/*#__PURE__*/t(\"p\",{children:[\"Panther connected with Tim Kelly, Director, Security Engineering at Workrise, to learn how the company leverages Panther and Snowflake to build a detection and response program that allows for full visibility. Watch the full Workrise webinar \",/*#__PURE__*/e(n,{href:\"https://panther.com/resources/webinars/panther-snowflake-the-evolution-of-siem-data-architectures/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"here\"})}),\".\"]})]});export const richText12=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"When talking about appearing on the list of \"}),/*#__PURE__*/e(n,{href:\"https://www.greatplacetowork.com/best-workplaces/bay-area/2023?category=small-and-medium\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Best Places to Work in the Bay Area,\"})})}),/*#__PURE__*/e(\"strong\",{children:\" it always sounds trite to say It is an honor to be recognized.... or It is humbling to be recognized.\"})]}),/*#__PURE__*/t(\"p\",{children:[\"While it is flattering and definitely humbling, I want to focus on a different feeling: \",/*#__PURE__*/e(\"strong\",{children:\"I was freaking stoked!\"}),\" And my excitement was for everyone at Panther because every member of our team works hard to live our values of \",/*#__PURE__*/e(n,{href:\"https://panther.com/company/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Create Customer Love, Be An Owner, and Take Care of the Team\"})}),\" every day, in ways both big and small to create a company where everyone feels included and empowered to do their best work. To identify the winners, \",/*#__PURE__*/e(n,{href:\"https://fortune.com/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Fortune\"})}),\" is looking for companies that create a great employee experience, defined by high levels of trust, respect, credibility, fairness, pride, and camaraderie.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Cultivating an Inclusive Culture\"}),/*#__PURE__*/t(\"p\",{children:[\"I like to think that the way we genuinely respect each other and have fun together at work shows up externally. I mean, there is no way that anyone who doesnt work here would know that we call each other Pantherinos (a name selected via a poll \",/*#__PURE__*/e(n,{href:\"https://www.linkedin.com/in/jacknaglieri/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"our CEO\"})}),\" conducted that also included the options Pantherers, Pantherians, and Pantheronis). If you dont work here, you would not have seen (or participated in) an impassioned centi-thread about which is the best sparkling water (cough \",/*#__PURE__*/e(n,{href:\"https://www.topochico.com/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Topo Chico\"})}),\" cough*).\"]}),/*#__PURE__*/e(\"p\",{children:\"That respect and trust matters is not when you feel like you are flying high and firing on all cylinders, but when you confront a challenging tech environment where your current and future customers are watching every dollar (much like ours). That is when genuine caring and a commitment to show up for each other really matters. And what Panther has, what sets us apart, is that we care about each other when it isnt easy, when we are all feeling tired and stretched thin. Our drive to embody our values means that you always know that your teammates and your leaders are acting in the companys best interest and that they always have your back.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"649\",src:\"https://framerusercontent.com/images/qXa4RsxCUih4CrZye4xCn0hs.png\",srcSet:\"https://framerusercontent.com/images/qXa4RsxCUih4CrZye4xCn0hs.png?scale-down-to=512 512w,https://framerusercontent.com/images/qXa4RsxCUih4CrZye4xCn0hs.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/qXa4RsxCUih4CrZye4xCn0hs.png 1730w\",style:{aspectRatio:\"1730 / 1298\"},width:\"865\"}),/*#__PURE__*/e(\"h3\",{children:\"Celebrating Panther Pride\"}),/*#__PURE__*/t(\"p\",{children:[\"Right now, it is Pride month, and one way we are trying to make sure we are taking care of the team is by listening to the members of Panther Pride, our LGBTQIA+ ERG. We heard from many team members that they are feeling a range of emotions about the surge in anti-trans legislation and hateful rhetoric, including frustration, anger, fear, sadness, and disappointment. Our Pride ERG asked that, instead of hosted trivia or another session for Pride, we donate to \",/*#__PURE__*/e(n,{href:\"https://www.theokraproject.com/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"The Okra Project\"})}),\", a Black trans-led mutual aid collective. We also invited our employees to make donations to this worthy cause that Panther will match to amplify their impact. Last month, we invited an external expert to join some of our employees in a panel about Raising Neurodistinct Youth. Taking Care of the Team means seeing and valuing our Pantherinos as whole people: if it matters to the team, it matters to Panther.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"960\",src:\"https://framerusercontent.com/images/tXBkPk7aRTbBBsmwXbdDuqegQM.jpg\",srcSet:\"https://framerusercontent.com/images/tXBkPk7aRTbBBsmwXbdDuqegQM.jpg?scale-down-to=512 512w,https://framerusercontent.com/images/tXBkPk7aRTbBBsmwXbdDuqegQM.jpg?scale-down-to=1024 1024w,https://framerusercontent.com/images/tXBkPk7aRTbBBsmwXbdDuqegQM.jpg?scale-down-to=2048 2048w,https://framerusercontent.com/images/tXBkPk7aRTbBBsmwXbdDuqegQM.jpg 2560w\",style:{aspectRatio:\"2560 / 1920\"},width:\"1280\"}),/*#__PURE__*/e(\"h3\",{children:\"Living Our Values\"}),/*#__PURE__*/e(\"p\",{children:\"Earning this recognition is a great start for us, but a big part of living our values is being an owner, and that means always raising the bar. We know that pushing ourselves to improve and finding new ways to invest in our employees growth and development is the best way to continue to be the company that all our Pantherinos deserve.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"So, \"}),/*#__PURE__*/e(n,{href:\"https://www.greatplacetowork.com/certified-company/7041183\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"thanks for the nod for 2023\"})})}),/*#__PURE__*/e(\"strong\",{children:\"  we appreciate it (in fact, I believe I may have mentioned being STOKED!), and we look forward to continuing to do great things for our customers and our teams!\"})]}),/*#__PURE__*/t(\"p\",{children:[\"Looking for a Great Place to Work? Explore \",/*#__PURE__*/e(n,{href:\"https://panther.com/company/careers/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"career opportunities with Panther here\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"*\",/*#__PURE__*/e(\"em\",{children:\"Views expressed about sparkling water by the author do not necessarily represent the view of all Pantherinos.\"})]})]});export const richText13=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"TL;DR\"}),\": Panther is here to provide \",/*#__PURE__*/e(\"strong\",{children:\"high-signal value to all security teams from day one\"}),\". To do so, we'll be constantly and consistently improving four core product capabilities of SIEM: collect, detect, alert, and investigate. Today, we're excited to announce key feature enhancements to help teams \",/*#__PURE__*/e(\"strong\",{children:\"collect their most valuable data\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"easily tune their detections\"}),\". We'll be back with more to share for \",/*#__PURE__*/e(\"strong\",{children:\"alerting\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"investigating\"}),\" in August.\"]}),/*#__PURE__*/e(\"h3\",{children:\"SIEM's Bad Reputation\"}),/*#__PURE__*/t(\"p\",{children:[\"Despite a flurry of new marketing terms and tools, SIEM is still essential in 2023.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),\"The industry may be exploring new terms like XDR or SOC Platform, but at the end of the day - \",/*#__PURE__*/e(\"strong\",{children:\"cybersecurity is still a data problem\"}),\", and a SIEM's core function is to make sense of all that data. \"]}),/*#__PURE__*/t(\"p\",{children:[\"New marketing terms are being created to dodge the challenges and friction points traditionally associated with SIEMs. For those in security, \",/*#__PURE__*/e(n,{href:\"https://panther.com/blog/state-of-siem-2022-5-key-takeaways/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"legacy SIEM challenges are pretty well-worn at this point\"})}),\":\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They're expensive\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They don't scale, especially not to meet cloud volumes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They're hard to customize or tune to specific environments\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"They're difficult to get up and running \"})})]}),/*#__PURE__*/e(\"p\",{children:\"Given these frustrations, the term SIEM rightfully leaves a sour taste in many security professionals' mouths. Many SIEMs can feel like a money pit of wasted time and resources. \"}),/*#__PURE__*/e(\"p\",{children:\"On the other hand, the rise of cloud infrastructure drastically expands data volumes, making a security team's mandate to centralize and monitor data from their environment more essential and demanding than ever. \"}),/*#__PURE__*/e(\"h3\",{children:\"A New Hope for SIEM\"}),/*#__PURE__*/t(\"p\",{children:[\"At Panther, we aren't hiding behind a new marketing acronym. We're just building a SIEM to address these key challenges. We are laser-focused on developing a platform that provides \",/*#__PURE__*/e(\"strong\",{children:\"high-signal value to all security teams from day one\"}),\".\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),\"To enact this vision, the team will be constantly and consistently improving four core product capabilities of SIEM:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Collect\"}),\" and transform logs into valuable security data\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Detect \"}),\"suspicious activity in your environment\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Alert\"}),\" your team to take action on identified threats\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Investigate\"}),\" incidents quickly and effectively\"]})})]}),/*#__PURE__*/t(\"p\",{children:[\"Today, we're excited to announce key feature enhancements from the \",/*#__PURE__*/e(\"strong\",{children:\"Collect\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"Detect \"}),\"functions. We'll be back with more to share with the \",/*#__PURE__*/e(\"strong\",{children:\"Alert\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"Investigate\"}),\" functions in August.\"]}),/*#__PURE__*/e(\"p\",{children:\"It's one thing to state a vision, but a concrete use case illustrates an experience more clearly. To connect the dots, let's follow a fictional security engineer Ali' on day one of using Panther to monitor the environment of returns.ai, a new finance application.\"}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{\"--aspect-ratio\":\"560 / 315\",aspectRatio:\"560 / 315\",height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(a,{componentIdentifier:\"module:NEd4VmDdsxM3StIUbddO/1de6WpgIbCrKkRcPfQcW/YouTube.js:Youtube\",children:t=>/*#__PURE__*/e(o,{...t,play:\"On\",shouldMute:!1,thumbnail:\"Medium Quality\",url:\"https://youtube.com/watch?v=duabuZM5ue0\"})})}),/*#__PURE__*/t(\"p\",{children:[\"To elaborate on the functionality from the video in a little more detail, here is the vision for both \",/*#__PURE__*/e(\"strong\",{children:\"Collect\"}),\" and \",/*#__PURE__*/e(\"strong\",{children:\"Detect \"}),\"pillars.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Collect: Your Data, Your Way\"}),/*#__PURE__*/e(\"p\",{children:\"A serious problem arises when security teams aren't given control over their data flow.\"}),/*#__PURE__*/e(\"p\",{children:\"Many legacy SIEM tools have a wide variety of integrations to put data into their platforms. However, a serious problem arises when security teams aren't given control over that data flow to ensure it's only the data they need and that they are ingesting the data effectively. Lack of control leads to the ingestion of ill-formatted, low-value data - which ends up causing bloated license costs, noisy alerts, and frustrated security teams.\"}),/*#__PURE__*/e(\"p\",{children:\"To combat collection friction, Panther is building a variety of data control mechanisms into the platform to increase relevant visibility while simultaneously reducing unnecessary noise and costs.\"}),/*#__PURE__*/t(\"blockquote\",{children:[/*#__PURE__*/e(\"p\",{children:\"The flexibility to throw any log source into Panther was a critical reason we chose the tool.\"}),/*#__PURE__*/e(\"p\",{children:\"JAN URBANC, HEAD OF SECURITY OPERATIONS, BITSTAMP\"})]}),/*#__PURE__*/t(\"p\",{children:[\"To start, Panther is ensuring that data ingestion is easy and reliable from the most valuable sources by including seamless integrations with all major cloud platforms (\",/*#__PURE__*/e(n,{href:\"https://panther.com/product/siem-for-aws/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"AWS\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/data-onboarding/data-transports/gcs\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"GCP\"})}),\", and \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/data-onboarding/data-transports/azure-blob-storage\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Azure\"})}),\") as well as \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/data-onboarding/data-transports/http\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"direct integrations with our platform via HTTPS\"})})}),\". \"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"395\",src:\"https://framerusercontent.com/images/YNjhdpKqQcuZMB7qBbebaNTZGM.png\",srcSet:\"https://framerusercontent.com/images/YNjhdpKqQcuZMB7qBbebaNTZGM.png?scale-down-to=512 512w,https://framerusercontent.com/images/YNjhdpKqQcuZMB7qBbebaNTZGM.png 857w\",style:{aspectRatio:\"857 / 790\"},width:\"428\"}),/*#__PURE__*/t(\"p\",{children:[\"Moreover, Panther understands that data ingestion is not a one-size-fits-all problem. That's why Panther is developing robust \",/*#__PURE__*/e(\"strong\",{children:\"filtering functionality\"}),\" to ensure that only relevant and valuable security data is ingested and stored in the security data lake. \"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"329\",src:\"https://framerusercontent.com/images/wfscHgasWAecgDBRKkFMHCHwF8.png\",srcSet:\"https://framerusercontent.com/images/wfscHgasWAecgDBRKkFMHCHwF8.png?scale-down-to=512 512w,https://framerusercontent.com/images/wfscHgasWAecgDBRKkFMHCHwF8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/wfscHgasWAecgDBRKkFMHCHwF8.png 1488w\",style:{aspectRatio:\"1488 / 658\"},width:\"744\"}),/*#__PURE__*/t(\"p\",{children:[\"Finally, the team is building out core \",/*#__PURE__*/e(n,{href:\"https://docs.panther.com/data-onboarding/custom-log-types/transformations\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"data transformation capabilities\"})})}),\" providing another way to control the structure and value of security data as it enters the platform. By leveraging both filtering and transformations, teams can cost-effectively magnify the security value of their data.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"465\",src:\"https://framerusercontent.com/images/EzQTa1WcAGBQQGZOxW6r5X2xjQ.png\",srcSet:\"https://framerusercontent.com/images/EzQTa1WcAGBQQGZOxW6r5X2xjQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/EzQTa1WcAGBQQGZOxW6r5X2xjQ.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/EzQTa1WcAGBQQGZOxW6r5X2xjQ.png 1210w\",style:{aspectRatio:\"1210 / 930\"},width:\"605\"}),/*#__PURE__*/e(\"h3\",{children:\"Detect: Simple Detections Enable Detection-as-Code for Everyone\"}),/*#__PURE__*/t(\"p\",{children:[\"The rapid increase in attack surface associated with the rise of cloud infrastructure has many teams scrambling to get robust detection coverage in place and experimenting with operational tactics like Detection-as-Code. While tools often offer out-of-the-box detections, they are almost always a pain to customize to a specific environment. And, \",/*#__PURE__*/e(n,{href:\"https://panther.com/blog/modernize-detection-engineering-with-detection-as-code/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Detection-as-Code\"})}),\", a practice that enables teams to track, edit, test, and deploy new or customized detection logic seamlessly - is still relatively untapped in its potential.\"]}),/*#__PURE__*/t(\"p\",{children:[\"To help all security teams get the coverage they need and realize the benefits of Detection-as-Code from day one, Panther is introducing Simple Detections. Simple Detections enables any security team member to easily \",/*#__PURE__*/e(\"strong\",{children:\"build and customize detections without relying on deep coding experience\"}),\". \"]}),/*#__PURE__*/t(\"p\",{children:[\"The feature expands the detection creation process to include a GUI builder based on simple YAML constructs, alongside the \",/*#__PURE__*/e(n,{href:\"https://panther.com/blog/using-python-to-write-siem-detections/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"power of Python\"})}),\". This enables more team members to \",/*#__PURE__*/e(\"strong\",{children:\"seamlessly tune and optimize detection logic for their specific environment\"}),\". Additionally, all Panther-provided Simple Detections will inherit future logic updates without impacting your customizations.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"545\",src:\"https://framerusercontent.com/images/xG9MRCjxyFwvARNnMmdoLMoHyWo.png\",srcSet:\"https://framerusercontent.com/images/xG9MRCjxyFwvARNnMmdoLMoHyWo.png?scale-down-to=512 512w,https://framerusercontent.com/images/xG9MRCjxyFwvARNnMmdoLMoHyWo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/xG9MRCjxyFwvARNnMmdoLMoHyWo.png 1999w\",style:{aspectRatio:\"1999 / 1091\"},width:\"999\"}),/*#__PURE__*/t(\"p\",{children:[\"Simple Detections also provide a \",/*#__PURE__*/e(\"strong\",{children:\"bridge for users to begin writing logic in code and using developer tools like CI/CD workflows - \"}),\"gaining valuable on-the-job technical experience. Panther will always enable the most powerful aspects of Detection-as-Code, but the platform is now focused on supporting all teams in their journey into the new paradigm.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Realizing Day One Value with Panther\"}),/*#__PURE__*/t(\"p\",{children:[\"To learn more about Panther's vision, we'll be providing updates via detailed product webinars for both the Collect and Detect pillars. The first webinar will be a deep dive into the new data ingestion and control mechanisms on June 22nd. \",/*#__PURE__*/e(n,{href:\"https://panther.com/resources/webinars/your-data-your-way-panthers-approach-to-effective-data-ingestion-and-control\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:/*#__PURE__*/e(\"strong\",{children:\"Register here\"})})}),\" to attend.\"]}),/*#__PURE__*/e(\"p\",{children:\"The second will be an exploration of Panther's new Simple Detections functionality and how it enables all teams to effectively customize and tune detection logic delivered in July. \"}),/*#__PURE__*/t(\"p\",{children:[\"We're excited to be building a SIEM that actually provides security value from Day One. If you can't wait to get in on the action, you can \",/*#__PURE__*/e(n,{href:\"https://panther.com/product/request-a-demo/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"request a demo\"})}),\" of the platform now. \"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]});export const richText14=/*#__PURE__*/t(i.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"What is SOC 2?\"}),/*#__PURE__*/e(\"p\",{children:\"SOC 2, or Service Organization Control Type 2, is a voluntary security compliance framework created by the AICPA (American Institute of Certified Public Accountants). SOC 2 defines criteria for the secure management of business data, and SOC 2 certification is often looked for by consumers of SaaS products as it provides a level of trust over the software's security.\"}),/*#__PURE__*/e(\"h4\",{children:\"Trust Principles\"}),/*#__PURE__*/e(\"p\",{children:\"Organizations can engage an outside entity to perform a SOC 2 audit against any combination of the five trust principles laid out by the AICPA: Security, Availability, Confidentiality, Processing Integrity, and/or Privacy. These audits evaluate whether proper controls have been implemented to address the trust principles.\"}),/*#__PURE__*/e(\"h4\",{children:\"Report Types\"}),/*#__PURE__*/e(\"p\",{children:\"SOC 2 reports can come in two types:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"SOC 2 type 1 - Report on the design effectiveness of controls the organization has implemented against principles.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"SOC 2 type 2 - Report on the operating effectiveness of controls the organization has implemented against principles.\"})})]}),/*#__PURE__*/e(\"h3\",{children:\"How Panther Helps with SOC 2\"}),/*#__PURE__*/e(\"p\",{children:\"Panther is a security tool that can help with meeting SOC 2 requirements such as the following:\"}),/*#__PURE__*/e(\"h4\",{children:\"CC 7.1\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Requirement Description\"}),/*#__PURE__*/e(\"br\",{}),\"To meet its objectives, the entity uses detection and monitoring procedures to identify (1) changes to configurations that result in the introduction of new vulnerabilities, and (2) susceptibilities to newly discovered vulnerabilities.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"How Panther Helps\"}),/*#__PURE__*/e(\"br\",{}),\"Panther allows for security teams to write detections to obtain real-time alerts from log sources. Many of the out-of-the-box detections are for changes to configurations that result in the introduction of new vulnerabilities in cloud accounts (such as \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/tree/master/policies\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"AWS\"})}),\"), applications (such as \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/packs/okta.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Okta\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/packs/github.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"GitHub\"})}),\", and \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/packs/gsuite_reports.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"GSuite\"})}),\"), and hosts (through applications such as \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/packs/crowdstrike.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"CrowdStrike\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/packs/osquery.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Osquery\"})}),\", and \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/packs/sentinelone.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"SentinelOne\"})}),\").\"]}),/*#__PURE__*/e(\"h4\",{children:\"CC 7.2\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Requirement Description\"}),/*#__PURE__*/e(\"br\",{}),\"The entity monitors system components and the operation of those components for anomalies that are indicative of malicious acts, natural disasters, and errors affecting the entity's ability to meet its objectives; anomalies are analyzed to determine whether they represent security events.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"How Panther Helps\"}),/*#__PURE__*/e(\"br\",{}),\"Panthers detections are created to monitor for anomalies that may be indicative of malicious acts or errors, and provides real-time alerting to analyze security events. Some examples of these events include \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/rules/crowdstrike_rules/crowdstrike_detection_passthrough.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"CrowdStrike Events\"})}),\", \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/rules/microsoft_rules/microsoft365_mfa_disabled.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"MFA being disabled on O365\"})}),\", and \",/*#__PURE__*/e(n,{href:\"https://github.com/panther-labs/panther-analysis/blob/master/rules/aws_guardduty_rules/aws_guardduty_high_sev_findings.yml\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!0,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"GuardDuty Findings\"})}),\".\"]}),/*#__PURE__*/e(\"h4\",{children:\"CC 7.3\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Requirement description\"}),/*#__PURE__*/e(\"br\",{}),\"The entity evaluates security events to determine whether they could or have resulted in a failure of the entity to meet its objectives (security incidents) and, if so, takes actions to prevent or address such failures.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"How Panther Helps\"}),/*#__PURE__*/e(\"br\",{}),\"In Panther, raw logs are transformed into a structured data lake, providing the ability to immediately run large queries in minutes, and allowing for quicker determination of whether events could have resulted in a security incident. If an incident is detected, a custom detection can be developed to help prevent future incidents by identification of events leading to the incident, which allows for quicker response.\"]}),/*#__PURE__*/e(\"h4\",{children:\"CC 7.4\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Requirement description\"}),/*#__PURE__*/e(\"br\",{}),\"The entity responds to identified security incidents by executing a defined incident response program to understand, contain, remediate, and communicate security incidents, as appropriate.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"How Panther Helps\"}),/*#__PURE__*/e(\"br\",{}),\"Panther alerts allow for tracking of issues through configured destinations such as Slack or Asana, which enables teams to track communications around the security event and to manage response efforts.\"]}),/*#__PURE__*/e(\"h3\",{children:\"Panther and SOC 2 Compliance\"}),/*#__PURE__*/t(\"p\",{children:[\"Panther's data lake architecture, out-of-the-box detections, real-time alerts, and issue-tracking features allow organizations to quickly cover a number of requirements for SOC 2 certification. If you're interested in learning more about how Panther can help your organization meet SOC 2 requirements, \",/*#__PURE__*/e(n,{href:\"https://panther.com/product/request-a-demo/\",motionChild:!0,nodeId:\"YHdMp3byK\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"request a demo today\"})}),\".\"]})]});\nexport const __FramerMetadata__ = {\"exports\":{\"richText9\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText14\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText1\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText12\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText10\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText6\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText5\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText13\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText4\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText7\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText8\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText11\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["richText", "u", "x", "p", "Link", "motion", "richText1", "richText2", "ComponentPresetsConsumer", "t", "CodeBlock_default", "richText3", "richText4", "richText5", "richText6", "richText7", "richText8", "richText9", "richText10", "richText11", "richText12", "richText13", "Youtube", "richText14", "__FramerMetadata__"]
}
