دسته: هسته اصلی سیستم‌عامل

  • Fixing PHP Session Issues: Troubleshooting and Solutions.

    Fixing PHP Session Issues: Troubleshooting and Solutions.


    PHP sessions are essential for maintaining state and user data across multiple pages in web applications. However, they can sometimes be tricky to manage. Drawing from my own experiences, I’ll share some troubleshooting steps and solutions to common PHP session issues.

    1. Session Not Starting Properly

    Symptoms
    • Sessions are not being created.
    • $_SESSION variables are not being saved.
    Troubleshooting Steps
    1. Check session_start(): Ensure session_start() is called at the beginning of your script before any output is sent to the browser. This is a common oversight, and I’ve personally spent hours debugging a session issue only to find it was due to a missing session_start().
    <?php
    session_start();
    ?>
    

    2.Output Buffering: Make sure no HTML or whitespace appears before session_start(). This can be a subtle issue, especially if multiple developers are working on the same project.

    <?php
    ob_start();
    session_start();
    // Your code
    ob_end_flush();
    ?>
    

    3. Check error_log: Look at the PHP error log for any session-related errors. This step often provides valuable insights into what might be going wrong.

    Solutions
    • Always place session_start() at the very beginning of your script.
    • Use output buffering to prevent accidental output before sessions start.

    2. Session Variables Not Persisting

    Symptoms
    • Session variables reset on every page load.
    • Session data is not maintained across different pages.
    Troubleshooting Steps
    1. Session Cookie Settings: Check if the session cookie is being set correctly. This can sometimes be overlooked in development environments where cookies are frequently cleared.
    ini_set('session.cookie_lifetime', 0);
    

    2. Browser Settings: Ensure cookies are enabled in the browser. I’ve had instances where a simple browser setting was the culprit behind persistent session issues.

    3.Correct Session Variables: Ensure session variables are set correctly. Misconfigurations here can lead to confusing behavior.

    <?php
    session_start();
    $_SESSION['username'] = 'user';
    echo $_SESSION['username'];
    ?>
    
    Solutions
    • Verify that session_start() is called on every page where session data is accessed.
    • Ensure consistent session settings across all scripts.

    3. Session Expiring Too Soon

    Symptoms
    • Sessions are expiring before the expected time.
    • Users are being logged out prematurely.
    Troubleshooting Steps
    1. Session Timeout Settings: Check and adjust session.gc_maxlifetime and session.cookie_lifetime. In my experience, adjusting these settings can significantly improve user experience by keeping sessions active for the desired duration.
    ini_set('session.gc_maxlifetime', 3600); // 1 hour
    ini_set('session.cookie_lifetime', 3600);
    

    2. Garbage Collection: Ensure session garbage collection is not overly aggressive. Fine-tuning this setting can prevent premature session deletions.

    ini_set('session.gc_probability', 1);
    ini_set('session.gc_divisor', 100);
    
    Solutions
    • Adjust session.gc_maxlifetime and session.cookie_lifetime to reasonable values.
    • Balance garbage collection settings to prevent premature session deletion.

    4. Session Fixation

    Symptoms
    • Security vulnerability where an attacker can fixate a session ID and hijack a user session.
    Troubleshooting Steps
    1. Regenerate Session ID: Regenerate the session ID upon login or privilege change. This is a critical step in securing your application against session fixation attacks.
    session_regenerate_id(true);
    

    2. Set Session Cookie Securely: Use httponly and secure flags for session cookies. This helps in preventing session hijacking through XSS attacks.

    ini_set('session.cookie_httponly', 1);
    ini_set('session.cookie_secure', 1);
    
    Solutions
    • Always regenerate the session ID after login or significant changes in privileges.
    • Set the session cookie parameters to enhance security.

    Upload Image In Angular With PHP



    Source link

  • Revolutionizing XDR with Gen AI Cybersecurity

    Revolutionizing XDR with Gen AI Cybersecurity


    In today’s digital era, cyber threats evolve at an alarming pace. Advanced persistent threats (APTs) infiltrate networks, exfiltrating sensitive data over time. Security teams grapple with overwhelming alert volumes, siloed tools, and manual processes that delay responses. Seqrite XDR, empowered by Gen AI cybersecurity, offers a transformative solution. This blog delves into the power of XDR, the role of Gen AI in cybersecurity in enhancing it, and the unmatched capabilities of Seqrite XDR with Seqrite Intelligent Assistant (SIA), the Gen AI-powered  virtual security analyst.

    What is  XDR

    Extended Detection and Response (XDR) is a comprehensive cybersecurity platform. It integrates security across endpoints, networks, and cloud environments, surpassing traditional endpoint protection. XDR provides a unified approach to threat management, enabling organizations to stay ahead of sophisticated attacks. Its core capabilities include:

    • Holistic Visibility: Monitors all attack surfaces for complete oversight.
    • Advanced Threat Detection: Leverages analytics to identify complex threats.
    • Automated Response: Swiftly isolates or mitigates risks.
    • Proactive Threat Hunting: Searches for indicators of compromise (IOCs).
    • Efficient Incident Management: Streamlines investigation and remediation processes.

    XDR eliminates the fragmentation of siloed tools. It reduces operational complexity. It empowers security teams to respond with speed and precision, ensuring robust protection against modern cyber threats.

    How Gen AI Enhances XDR

    Gen AI in cybersecurity is a game-changer for XDR. It processes massive datasets in real-time, uncovering patterns that evade human analysts. By integrating Gen AI cybersecurity, XDR platforms become more innovative and more responsive. Key enhancements include:

    • Real-Time Anomaly Detection: Identifies threats instantly with unparalleled accuracy.
    • Automated Incident Summaries: Delivers concise insights for rapid decision-making.
    • Contextual Threat Mapping: Correlates alerts with frameworks like MITRE ATT&CK.
    • Intelligent Analyst Support: Provides natural-language guidance for investigations.

    Gen AI in cybersecurity minimizes false positives by 40-70%. It prioritizes critical alerts, reducing alert fatigue. It enables security teams to focus on high-impact threats, enhancing overall efficiency. With Gen AI in cybersecurity, XDR becomes a proactive shield against evolving dangers.

    Seqrite XDR with Gen AI Capabilities

    Seqrite XDR is a leading cybersecurity solution. It combines advanced analytics, machine learning, and multi-layered security to combat sophisticated threats. Integrated with SIA, a Gen AI-powered virtual security analyst, Seqrite XDR sets a new standard. Its capabilities include:

    • SIA-Powered Investigations: SIA processes prompts like “Investigate incident UUID-12345” for rapid, detailed analysis.
    • Multi-Layered Protection: Defends against zero-day threats with robust defenses.
    • Real-Time Threat Hunting: Uses IOCs and MITRE TTP-based rules for precise detection.
    • Playbook Automation: Streamlines manual and automatic response workflows.
    • Intuitive Dashboard: Offers unified visibility into endpoints, alerts, and incidents.
    • Scalability and Flexibility: Adapts to growing business and IT needs.
    • Compliance Support: Provides real-time monitoring and audit logs for regulatory adherence.

    SIA leverages Gen AI cybersecurity to simplify complex tasks. It reduces analyst workload by 50%. It integrates Endpoint Protection Platform (EPP) capabilities, ensuring comprehensive protection. Seqrite XDR’s unified platform uncovers hidden threats that siloed tools miss. It delivers actionable insights through SIA’s conversational interface, enabling faster investigations.

    Ready to revolutionize your cybersecurity? Seqrite XDR with SIA harnesses Gen AI cybersecurity to deliver unmatched protection. Contact Seqrite at 1800-212-7377 or visit Seqrite XDR to experience AI-driven security.

    Discover Seqrite XDR Today

     



    Source link

  • Top 10 JavaScript Array Functions.

    Top 10 JavaScript Array Functions.


    Unlocking the Power of JavaScript: The Top 10 Array Functions You Need to Know.

    JavaScript, the language that breathes life into web pages, has a powerful array of functions that can transform your code into elegant, efficient, and concise masterpieces. Whether you’re a seasoned developer or just starting, mastering these functions will elevate your coding skills and streamline your workflow.

    In this blog post, we dive into the top 10 JavaScript array functions every developer should have in their toolkit. From transforming data with map() and filter() to perform complex operations reduce(), we’ll explore each function with examples and best practices. Join us on this journey as we unlock the potential of JavaScript arrays and take your coding abilities to the next level.

    Here are the top 10 JavaScript array functions that are widely used due to their efficiency and versatility:

    1. map():

    • Purpose: Creates a new array by applying a callback function to each element of the original array.
    • Example:
    const numbers = [2, 3, 4, 5];
    const squared = numbers.map(x => x * x);
    console.log(squared);
    

    2. filter():

    • Purpose: Creates a new array with all elements that pass the test implemented by the provided callback function.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    const evens = numbers.filter(x => x % 2 === 0);
    console.log(squared);
    

    3.reduce():

    • Purpose: Executes a reducer function on each element of the array, resulting in a single output value.It integrate a whole array into a single value using a callback function.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    const sum = numbers.reduce((total, num) => total + num, 0); 
    console.log(sum); 
    

    4.forEach():

    • Purpose: Executes a provided function once for each array element.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    numbers.forEach(x => console.log(x));
    

    5.find():

    • Purpose: Returns the value of the first element in the array that satisfies the provided testing function.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    const firstEven = numbers.find(x => x % 2 === 0);
    console.log(firstEven);
    output: 2

    6.some():

    • Purpose: Tests whether at least one element in the array passes the test implemented by the provided callback function. 
    • Example:
    const numbers = [2, 3, 4, 5];
    const hasEven = numbers.some(x => x % 2 === 0);
    console.log(hasEven); output: true

    7.every():

    • Purpose: Tests whether all elements in the array pass the test implemented by the provided function.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    const allEven = numbers.every(x => x % 2 === 0);
    console.log(allEven); output: false

    8.includes():

    • Purpose: Determines whether an array includes a certain value among its entries, returning true or false as appropriate.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    const hasNumber = numbers.includes(5);
    console.log(hasNumber); output: false

    9.push():

    • Purpose: Adds one or more elements to the end of an array and returns the new length of the array.
    • Example:
    const numbers = [2, 3, 4, 5]; 
    numbers.push(6);
    console.log(hasNumber); output: [2, 3, 4, 5,6];

    10.slice():

    • Purpose: Returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included).
    • Example:
    const numbers = [2, 3, 4, 5]; 
    const subArray = numbers.slice(1, 3); 

    These functions are fundamental tools in JavaScript programming, enabling you to manipulate and traverse arrays effectively.

    JavaScript Program To Check Whether a String is Palindrome or Not.      Binary Gap In Javascript.



    Source link

  • How to Choose the Right ZTNA Solution for your Enterprise

    How to Choose the Right ZTNA Solution for your Enterprise


    As organizations continue to embrace hybrid work models and migrate applications to the cloud, traditional network security approaches like VPNs are proving inadequate. Zero-trust network Access (ZTNA) has emerged as the modern framework for secure access, operating on the principle of “never trust, always verify.” However, with numerous vendors offering different ZTNA solutions, selecting the right one requires careful consideration of organizational needs, solution types, key features, and implementation factors.

    Assessing Organizational Requirements

    The first step in selecting a ZTNA solution is thoroughly evaluating your organization’s specific needs. Consider the nature of your workforce: do employees work remotely, in-office, or in a hybrid arrangement? The solution must accommodate secure access from various locations while ensuring productivity. Additionally, assess whether third-party vendors or contractors require controlled access to specific resources, as this will influence whether an agent-based or agentless approach is more suitable.

    Another critical factor is the sensitivity of the data and applications being accessed. Organizations handling financial, healthcare, or other regulated data must ensure the ZTNA solution complies with industry standards such as GDPR, HIPAA, or SOC 2. Furthermore, examine how the solution integrates with your existing security infrastructure, including identity and access management (IAM) systems, endpoint detection and response (EDR) tools, and security information and event management (SIEM) platforms. A seamless integration ensures cohesive security policies and reduces operational complexity.

    Understanding ZTNA Deployment Models

    ZTNA solutions generally fall into two primary categories: service-initiated (agent-based) and network-initiated (agentless). Service-initiated ZTNA requires installing a lightweight agent on user devices, which then connects to a cloud-based broker that enforces access policies. This model is ideal for organizations with managed corporate devices, as it provides granular control over endpoint security.

    On the other hand, network-initiated ZTNA does not require software installation. Instead, users access resources through a web portal or browser, enforcing policies via DNS or routing controls. This approach is better suited for third-party users or unmanaged devices, offering flexibility without compromising security. Some vendors provide hybrid models that combine both approaches, allowing organizations to tailor access based on user roles and device types.

    Essential Features of a Robust ZTNA Solution

    When evaluating ZTNA providers, prioritize solutions that offer strong identity-centric security. Multi-factor authentication (MFA) and continuous authentication mechanisms, such as behavioral analytics, ensure that only verified users gain access. Role-based access control (RBAC) further enhances security by enforcing the principle of least privilege, granting users access only to the resources they need.

    Granular access controls are another critical feature. Look for solutions that provide application-level segmentation rather than just network-level controls. Context-aware policies, which consider device posture, geographic location, and time of access, add a layer of security.

    Moreover, A robust ZTNA solution should include several other essential features to ensure security and flexibility. It must support user device binding to associate users with their specific devices securely. Additionally, it should support local users in accommodating on-premises authentication needs. Compatibility with legacy identity providers (IdPs) is crucial for seamless integration with existing systems. Furthermore, the solution should enable session recording over various protocols to enhance monitoring and compliance.

    Integration capabilities should not be overlooked. The ideal ZTNA solution should seamlessly connect with existing security tools, such as SIEM and SOAR platforms, for centralized monitoring and incident response. Additionally, API-based automation can streamline policy management, reducing administrative overhead. Finally, user experience plays a pivotal role in adoption. Features like single sign-on (SSO) and fast, reliable connectivity help maintain productivity while ensuring security.

    Evaluating Deployment and Cost Considerations

    Implementation complexity and cost are decisive factors in choosing a ZTNA solution. Cloud-based ZTNA, delivered as a SaaS offering, typically involves minimal deployment effort and is ideal for organizations with predominantly cloud-based applications. While offering greater control, on-premises deployments require more extensive setup and maintenance, making them better suited for highly regulated industries with strict data residency requirements. Hybrid models strike a balance, catering to organizations with mixed infrastructure.

    Cost structures vary among providers, with some offering per-user licensing and others charging based on application access. Be mindful of potential hidden costs, such as bandwidth usage or fees for additional security integrations. Conducting a proof-of-concept (POC) trial can provide valuable insights into the solution’s real-world performance and help justify investment by demonstrating potential cost savings, such as reduced VPN expenses or improved security efficiency.

    Conclusion: Making an Informed Decision

    Choosing the right ZTNA solution demands a structured approach. Begin by assessing your organization’s unique requirements, including workforce dynamics, data sensitivity, and existing security infrastructure. Next, understand the different deployment models to determine whether an agent-based, agentless, or hybrid solution aligns with your needs. Prioritize features that enhance security without compromising usability and carefully evaluate deployment efforts and costs to ensure smooth implementation.

    By following this comprehensive guide, organizations can adopt a ZTNA solution that strengthens security and supports operational efficiency and scalability. As the threat landscape evolves, a well-chosen ZTNA framework will provide flexibility and resilience to safeguard critical assets in an increasingly perimeter-less world.

    Discover how Seqrite ZTNA can transform your organization’s security with a robust, cloud-native zero-trust solution tailored for modern enterprises. Contact us today or request a demo to start your journey toward a more secure and efficient network!



    Source link

  • DPDPA Compliance Practical Steps for Businesses

    DPDPA Compliance Practical Steps for Businesses


    The Digital Personal Data Protection Act (DPDPA) is a transformative piece of legislation in India, designed to safeguard personal data and strengthen privacy in an increasingly digital landscape. For organizations handling personal data, compliance with the DPDPA is both a legal obligation and a strategic opportunity to build customer trust. This blog outlines practical steps to achieve DPDPA compliance, drawing on insights from Seqrite’s cybersecurity and data protection expertise.

    Understanding the DPDPA

    The DPDPA establishes a robust framework for protecting personal data, placing clear responsibilities on organizations, referred to as “Data Fiduciaries.” It emphasizes principles such as transparency, accountability, and informed consent while imposing penalties for non-compliance. Compliance is not just about meeting regulatory requirements—it’s about fostering trust and demonstrating commitment to data privacy.

    Strategic Focus Areas for DPDPA Readiness

    To align with the DPDPA, organizations must focus on the following core areas:

    1. Consent Management:

      • Obtain clear, informed, and specific consent from individuals (“Data Principals”) before collecting or processing their data.
      • Implement user-friendly consent mechanisms that allow individuals to understand what data is being collected and for what purpose.
      • Maintain auditable records of consent to demonstrate compliance during regulatory reviews.
    2. Data Minimization and Purpose Limitation:

      • Collect only the data necessary for the intended purpose and avoid excessive data collection.
      • Ensure data is processed strictly for the purpose for which consent was given, adhering to the DPDPA’s principle of purpose limitation.
    3. Data Security and Breach Preparedness:

      • Deploy robust cybersecurity measures to protect personal data, including encryption, access controls, and regular security audits.
      • Develop an incident response plan to address data breaches promptly and report them to the Data Protection Board of India within the required timeframe.
    4. Data Protection Impact Assessments (DPIAs):

      • Conduct DPIAs to identify and mitigate risks associated with data processing activities.
      • Integrate DPIAs into the planning phase of new projects or systems that handle personal data.
    5. Employee Training and Awareness:

      • Train employees regularly on DPDPA requirements and cybersecurity best practices, as they are often the first line of defense against data breaches.
      • Foster a culture of data protection to ensure compliance across all levels of the organization.
    6. Third-Party Vendor Management:

      • Ensure third-party vendors handling personal data comply with DPDPA requirements, as Data Fiduciaries are accountable for their vendors’ actions.
      • Include clear data protection clauses in vendor contracts and conduct periodic audits of vendor practices.

    Practical Steps for DPDPA Compliance

    Here are actionable steps organizations can take to achieve and maintain DPDPA compliance:

    1. Conduct a Data Inventory:

      1. Using automated tools, discover and classify all personal data collected, stored, and processed across the organization.
      2. Identify data flows, storage locations, and access points to understand the scope of compliance requirements.
    1. Appoint a Data Protection Officer (DPO):

      1. Designate a DPO as mandated for Significant Data Fiduciaries to oversee DPDPA compliance and engage with regulatory authorities.
      2. For other organizations, appoint privacy champions across key departments to ensure localized accountability and awareness.
    1. Implement Robust Consent Mechanisms:

      1. Designate a DPO as mandated for Significant Data Fiduciaries to oversee DPDPA compliance and engage with regulatory authorities.
      2. For other organizations, appoint privacy champions across key departments to ensure localized accountability and awareness and user-friendly consent forms that allow individuals to opt in or opt out easily.
      3. Regularly review and update consent mechanisms to align with evolving DPDPA guidelines.
    1. Engage with Legal and Compliance Experts:

      1. Partner with legal professionals to stay updated on DPDPA regulations and interpret its requirements for your industry.
      2. Seqrite’s advisory services can provide tailored guidance to streamline compliance efforts.
    1. Strengthen Cybersecurity Infrastructure:

      1. Deploy advanced cybersecurity solutions to safeguard personal data, such as endpoint protection, threat detection, and data loss prevention tools.
      2. Seqrite’s suite of cybersecurity products, including endpoint security and data encryption solutions, can help organizations meet DPDPA’s security standards.
    1. Develop a Data Breach Response Plan:

      1. Create a comprehensive plan outlining steps to detect, contain, and report data breaches.
      2. Conduct regular drills to ensure your team is prepared to respond effectively.

    Why DPDPA Compliance Matters

    Compliance with the DPDPA is more than a regulatory checkbox—it’s a competitive advantage. Non-compliance can result in significant fines and reputational damage, while proactive adherence builds customer trust and strengthens brand credibility. In today’s data-driven economy, prioritizing data protection is a strategic move that sets organizations apart.

    How Seqrite Can Help

    Seqrite, a cybersecurity and data protection leader, offers a comprehensive suite of solutions to support DPDPA compliance. From endpoint security to data encryption and threat intelligence, Seqrite’s tools are designed to protect sensitive data and ensure regulatory adherence. Additionally, Seqrite’s expert resources and advisory services empower organizations to navigate the complexities of data protection confidently.

    Conclusion

    The DPDPA is a critical step toward protecting personal data in India, and compliance is a shared responsibility for all organizations. Businesses can align with the law and build trust by implementing practical measures like consent management, robust cybersecurity, and employee training. With Seqrite’s cybersecurity expertise and solutions, organizations can confidently meet DPDPA requirements while safeguarding their data and reputation.

    For more information on how Seqrite can help you achieve DPDPA compliance, visit our website.



    Source link

  • Targeting Taiwan & Japan with DLL Implants

    Targeting Taiwan & Japan with DLL Implants


    • Introduction
    • Initial Findings.
    • Infection Chain.
    • Technical Analysis.
      • Stage 1 – Malicious LNK Script.
      • Stage 2 – Malicious Pterois Implant.
      • Stage 3 – Malicious Isurus Implant.
      • Stage 4 – Malicious Cobalt Strike Shellcode.
    • Infrastructure and Hunting.
    • Attribution
    • Conclusion
    • Seqrite Protection.
    • IOCs
    • MITRE ATT&CK.

    Introduction

    Seqrite Labs APT-Team has recently uncovered a campaign which we have termed as Swan Vector, that has been targeting the nations across the East China sea such as Taiwan and Japan. The campaign is aimed at educational institutes and mechanical engineering industry with lures aiming to deliver fake resume of candidates which acts as a decoy.

    The entire malware ecosystem involved in this campaign comprises a total of four stages, the first being one being a malicious LNK, the second stage involves the shortcut file executing DLL implant Pterois via a very well-known LOLBin. It uses stealthy methods to execute and download the third stage containing multiple files including legitimate Windows executable that is further used to execute another implant Isurus via DLL-Sideloading. This further executes the fourth stage that is the malicious Cobalt Strike shellcode downloaded by Pterois.

    In this blog, we’ll explore the sophistication and cover every minutia technical detail of the campaign we have encountered during our analysis. We will examine the various stages of this campaign, starting with the analysis of shortcut (.LNK) file to multiple DLL implants ending with analyzing the shellcode with a final overview.

    Initial Findings

    Recently in April, our team found a malicious ZIP file named as 歐買尬金流問題資料_20250413 (6).rar which can be translated to Oh My God Payment Flow Problem Data – 2025/04/13 (6) , which has been used as preliminary source of infection, containing various files such as one of them being an LNK and other a file with .PNG extension.

    The ZIP contains a malicious LNK file named, 詳細記載提領延遲問題及相關交易紀錄.pdf.lnk. which translates to, “Shortcut to PDF: Detailed Documentation of Withdrawal Delay Issues and Related Transaction Records.pdf.lnk”, which is responsible for running the DLL payload masqueraded as a PNG file known as Chen_YiChun.png. This DLL is then executed via a very well-known LOLBin that is RunDLL32.exe which further downloads other set of implants and a PDF file, which is a decoy.

    Looking into the decoy

    As, the first DLL implant aka Pterois was initially executed via the LOLBin, we saw a decoy file named rirekisho2025 which basically, stands for a nearly Japanese translation for Curriculum Vitae (CV 2025) was downloaded and stored inside the Temp directory along-side other implants and binaries. In the first page, there is a Japanese resume/employment history form “履歴書・職歴経歴書” dated with the Reiwa era format (令和5年4月). The form has a basic header section with fields for personal information including name (氏名), date, gender selection (男/女), birth date, address fields, email address (E-Mail), and contact numbers. There’s also a photo placeholder box in the upper right corner. The decoy appears to be mostly blank with rows for entering education and work history details. Notable fields include entries for different years (月), degree/qualification levels, and employment dates. At the bottom, there are sections for licenses/certifications and additional notes. In the second page, there are two identical sections labeled “職歴 1” and “職歴 2” for employment history entries. Each section contains fields for company name, position, employment dates, and a large notes section. The fields are arranged in a similar layout with spaces for company/organization name (会社・団体名), position title, dates of employment, and work-related details. There’s also a section with red text indicating additional about documents or materials (調査、調査料、ファイル等). In the third and last page, there is one more employment history section “職歴 3” with the same structure as the previous page – company name, position, employment dates, and notes. Below this, there are five additional employment history sections with repeated fields for company name, position, and employment dates, though these appear more condensed than the earlier sections. Each section follows the same pattern of requesting employment-related information in a structured format. Next, we will look into the infection chain and technical analysis.

    Infection Chain.

    Technical Analysis.

    We will break down the technical capabilities of this campaign into four different parts.

    Stage 1 – Malicious LNK Script.

    The ZIP contains a malicious LNK file, known as 詳細記載提領延遲問題及相關交易紀錄.pdf.lnk which translates to Detailed Record of Withdrawal Delay Issues and Related Transaction Records. Another name is also seen with the same LNK as 針對提領系統與客服流程的改進建議.pdf.lnk that translates to Suggestions for Improving the Withdrawal System and Customer Service Process. Creation time of LNK is 2025-03-04. Upon analyzing the contents of this malicious LNK file, we found that its sole purpose is to spawn an instance of the LOLBin rundll32.exe, which is then used to execute a malicious DLL implant named Pterois. The implant’s export function Trpo with an interesting argument 1LwalLoUdSinfGqYUx8vBCJ3Kqq_LCxIg, which we will look into the later part of this technical analysis, on how this argument is being leveraged by the implant.

    Stage 2 – Malicious Pterois Implant.

    Initially, upon examining the malicious RAR archive, along with the malicious LNK file, we found another file with .PNG extension known as Chen_YiChun.png . On doing some initial analysis, we figured out that the file is basically a DLL implant, and we have called it as Pterois. Now, let us examine the technicalities of this implant. While we did analyze the malicious LNK file, we did see that rundll32.exe is used to execute this DLL file’s export function Trpo. Looking inside the implant’s functionalities, it has two primary features, the first one is to perform API Hashing, and the latter is used to download the next stage of malware. The first function is responsible for resolving all APIs from the DLLs like NTDLL, UCRTBase, Kernel32 and other necessary libraries required, and the APIs required for desired functions. This is done by initially accessing the Process Environment Block (PEB) to retrieve the list of loaded modules. The code then traverses this list using the InMemoryOrderModuleList, which contains linked LDR_DATA_TABLE_ENTRY structures — each representing a loaded DLL. Within each LDR_DATA_TABLE_ENTRY, the BaseDllName field (a UNICODE_STRING) holds just the DLL’s filename (e.g., ntdll.dll), and the DllBase field contains its base address in memory.

    During traversal, the function converts the BaseDllName to an ANSI string, normalizes it by converting to uppercase and computes a case-insensitive SDBM hash of the resulting string. This computed hash is compared against a target hash provided to the function. If a match is found, the corresponding DLL’s base address is obtained from the DllBase field and returned. Now, once the DLL’s base address is returned, the code uses a similar case-insensitive SDBM hashing algorithm to resolve API function addresses within NTDLL.DLL. It does this by parsing the DLL’s Export Table, computing the SDBM hash of each exported function name, and comparing it to a target hash to find the matching function address. Here is a simple python script, which evaluates and performs hashing. So, in the first function, a total of four functions have been resolved. Similarly, the APIs for the other two dynamicalliy linked libraries ucrtbase.dll & Kernel32.dll , are being resolved in the same manner. In the next set of functions, where it is trying to resolve the APIs from DLLs like Iphlapi.dll , shell32.dll and WinHTTP.dll, it initially resolves the DLL’s base address just like the previous functions. Once it is returned, then it uses a simple yet pseudo-anti-analysis technique that is using Timer Objects to load these above DLLs. Initially it creates a timer-object using RtlCreateTimerQueue, once the Timer Object is created, then another API RtlCreateTimer is used to run a callback function, which is LoadLibraryW API in this case, further used to load the DLL. Then, the GetModuleHandleW is used to get a handle to the IPHLAPI.DLL. So, once it succeeds, the RtlDeleteTimerQueue API is used to delete and free the Timer Object. Then, finally an API GetAdaptersInfo is resolved via a hash. Similarly, other DLLs are also loaded in the same manner. Next, we will look into the later part of the implant that is the set of functions responsible for downloading the next stager. The function starts with initially getting the entire Command Line parameter comprising of the LOLBin and the argument, that later gets truncated to 1LwalLoUdSinfGqYUx8vBCJ3Kqq_LCxIg which basically is a hardcoded file-ID. Then it uses a technique to abuse Google Drive as a command-and-control server by first establishing authentication with legitimate OAuth credentials. After obtaining a valid access token through a properly formatted OAuth exchange, it uses the Google Drive API to retrieve files from specific hardcoded file IDs, including malicious executables, DLLs, and configuration files which it downloads to predetermined paths in C:\Windows\Temp.

    Then it sets the appropriate Content-Type header to “application/x-www-form-urlencoded” to ensure the request is processed correctly by Google’s authentication servers. Following this exchange, it performs precise JSON parsing capabilities, where it extracts the “access_token” field from Google’s response using cJSON_GetObjectItem. Looking into the memory dump clearly displays the obtained OAuth token beginning with “ya29.a0AZYk”, confirming a successful authentication process. Once this token is parsed and extracted then it is carefully stored and subsequently used to authorize API calls to Google Drive, allowing the implant to download additional payloads while appearing as legitimate traffic from Google Drive. The parsed JSON extracted from the memory looks something like this. Now, once the files are downloaded, another part of this implant uses CreateThread to spawn these downloaded decoy and other files to execute. Finally, these files are downloaded, and the decoy is spawned on the screen and the task of Pterois implant, is done. Well, the last part of this implant is, once the entire task is complete, it goes ahead and performs Self-Delete to cover its tracks and reduce the chance of detection.

    The self-deletion routine uses a delayed execution technique by spawning a cmd.exe process that pings localhost before deleting the file, ensuring the deletion occurs after the current process has completed and released its file handles.

    Next, we will look into the other DLL implant, which has been downloaded by this malicious loader.

    Stage 3 – Malicious Isurus Implant.

    The previous implant downloads a total of four samples. Out of which one of them is a legitimate Windows Signed binary known as PrintDialog.exe. Now, the other file PrintDialog.dll which is the other implant with compilation timestamp 2025-04-08 03:02:59 UTC, is responsible for running the shellcode contents present inside the ra.ini file, abuses a very well-known technique known as DLL-Sideloading by placing the malicious DLL in the current directory as PrintDialog.exe does not explicitly mention the path and this Implant which we call as Isurus performs malicious tasks. Looking, onto the export table, we can see that the malicious implant exports only two functions, one of them being the normal DllEntryPoint and the other being the malicious DllGetActivationFactory export function. Looking inside the export function, we can see that this Isurus performs API resolution via hash along with shellcode extraction and loads and executes the shellcode in memory. The implant initially resolves the APIs by performing the PEB-walking technique, traversing the Process Environment Block (PEB) to locate the base address of needed DLLs such as ntdll.dll and kernel32.dll. Once the base address of a target DLL is identified, the implant proceeds to manually parse the PE (Portable Executable) headers of the DLL to locate the Export Directory Table. Now, to resolve specific APIs, the implant employs a hashing algorithmCRC32. Instead of looking up an export by name, the loader computes a hash of each function name in the export table and compares it to precomputed constants embedded in the code to finally resolve the hashes. Now, let us look into how this implant extracts and loads the shellcode. It initially opens the existing file ra.ini with read permissions using CreateFileW API, then once it gets the handle, another API known as GetFileSize is used to read the size of the file. Once the file size is obtained, it is processed via ReadFile API. Then, using a hardcoded RC4 key wquefbqw the shellcode is then decrypted and returned. After extracting the shellcode, it is executed directly in memory using a syscall-based execution technique. This approach involves loading the appropriate syscall numbers into the EAX register and invoking low-level system calls to allocate memory, write the shellcode, change memory protections, and ultimately execute the shellcode—all without relying on higher-level Windows API functions. The PDB path of this implant also depicts the functionality:

    • C:\Users\test\source\repos\sysldr\x64\Release\weqfdqwefq.pdb

    In the next part, we will look into the malicious shellcode and its workings.

    Stage 4 – Malicious Cobalt Strike Shellcode.

    Upon looking into the file, we figured out that the shellcode is in encrypted format. Next, we decrypted the shellcode using the key, using a simple Python script. Further, on analyzing the shellcode, we found, that it is a Cobalt Strike based beacon. Therefore, here are the extracted configs. Extracted beacon config:

    Process Injection Targets:
    windir\syswow64\bootcfg.exe
    windir\sysnative\bootcfg.exe
    Infrastructural information:
    hxxps://52.199.49.4:7284/jquery-3.3.1.min.js
    hxxps://52.199.49.4:7284/jquery-3.3.2.min.js
    Request Body :
    GET /jquery-3.3.1.min.js HTTP/1.1
    Host: 52.199.49.4:7284
    
    
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Referer: http://code.jquery.com/
    Accept-Encoding: gzip, deflate
    Cookie: __cfduid=dT98nN_EYDF96RONtS1uMjE0IZIWy9GljNoWh6rXhEndZDFhNo_Ha4AmFQKcUn9C4ZUUqLTAI6-6HUu3jA-WcnuttiUnceIu3FbAlBPitw52PirDxM_nP460iXUlVqW6Lvv__Wr3k09xnyWZN4besu1gVlk3JWS2hX_yt5EioqY
    Connection: Keep-Alive
    Cache-Control: no-cache
    
    
    HTTP Settings GET Hash:
    52407f3c97939e9c8735462df5f7457d
    HTTP Settings POST Hash:
    7c48240b065248a8e23eb02a44bc910a

    Due to the extensive documentation and prevalence of Cobalt Strike in offensive security operations, an in-depth analysis is deemed unnecessary. Nonetheless, available extracted beacon configuration, confirm that the threat actor leveraged Cobalt Strike as a component of their intrusion toolkit in this campaign.

    Infrastructure and Hunting.

    As, we did encounter while reverse-engineering the implants, we found that the threat actor had been using Google-Drive as a command-and-control (C2) framework, which also leaked a lot of details such as sensitive API-keys and much more. We have found the associated details related to the threat actor’s infrastructure such as associated Gmail Address & list of implants, which had been scheduled by the threat actor for other campaigns, which have not been used In-The-Wild (ITW). Information related to Threat Actor’s Google Drive Account: {  “user”: {    “kind”: “drive#user”,    “displayName”: “Swsanavector56”,    “photoLink”: “https://lh3.googleusercontent.com/a/ACg8ocKiv7cWvdPxivqyPdYB70M1QTLrTsWUb-QHii8yNv60kYx8eA=s64”,    “me”: true,    “permissionId”: “09484302754176848006”,    “emailAddress”: “swsanavector42@gmail.com”  }} List of files found inside the Google Drive

    File Name File ID Type Size SHA-256 Hash
    PrintDialog.exe 14gFG2NsJ60CEDsRxE5aXvFN0Fs83YMMG EXE 123,032 bytes 7a942f65e8876aeec0a1372fcd4d53aa1f84d2279904b2b86c49d765e5a29d6f
    PrintDialog.dll 1VMrUQlxvKZZ-fRyQ8m3Ai8ZEhkzE3g5T DLL 108,032 bytes a9b33572237b100edf1d4c7b0a2071d68406e5931ab3957a962fcce4bfc2cc49
    ra.ini 1JAXiUPz6kvzOlokDMDxDhA4ohidt094b INI 265,734 bytes 0f303988e5905dffc3202ad371c3d1a49bd3ea5e22da697031751a80e21a13a7
    rirekisho2025.pdf 17hO28MbwD2assMsmA47UJnNbKB2fpM_A PDF 796,062 bytes 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd
    rirekisho2021_01.pdf 1LwalLoUdSinfGqYUx8vBCJ3Kqq_LCxIg PDF 796,062 bytes 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd
    wbemcomn.dll 1aY5oX6EIe4hfGD6QgAAzmCcwxM4DoLke DLL 181,760 bytes c7b9ae61046eed01651a72afe7a31de088056f1c1430b368b1acda0b58299e28
    svhost.exe 1P8_PG2DGtLWA3q8F4XPy43GMLznZFtQv EXE 209,920 bytes e0c6f9abfc11911747a7533f3282e7ff0c10fc397129228621bcb3a51f5be980
    0g9pglZr74.ini 1UE7gNfUIuTRzgjIv188hRIZG3YNtbvkV INI 265,734 bytes 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d
    KpEvjK3KG2.enc 1RxJi1RZMhcF31F1lgQ9TJfXMuvSJkYQl ENC 265,734 bytes e86feaa258df14e3023c7a74b7733f0b568cc75092248bec77de723dba52dd12
    LoggingPlatform.dll 1lZgq1ZNkK88eJsl6GlcvpzRuFlBgxEOF DLL 112,640 bytes 9df9bb3c13e4d20a83b0ac453e6a2908b77fc2bf841761b798b903efb2d0f4f7
    0g9pglZr74.ini 1ky1fEzC6v70U8-RbHBZG_i3YI79Ir8Og INI 265,734 bytes 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d
    python310.dll 1RuMLCJJ5hcFiVXbcg8kZK3giueWiVbTJ DLL 189,952 bytes e1b2d0396914f84d27ef780dd6fdd8bae653d721eea523f0ade8f45ac9a10faf
    ra.ini 13ooFQAYZ27Bx015UQG3qkHR293wlcL90 INI 265,734 bytes 777961d51eb92466ca4243fa32143520d49077a3f7c77a2fcbec183ebf975182
    pythonw.exe 19n1ta4hyQguQQmR8C6SAsZuGNQF4-ddU EXE 97,000 bytes 040d121a3179f49cd3f33f4bc998bc8f78b7f560bfd93f279224d69e76a06e92
    python.xml 1k4Q18FByEXW98Rr1CXyVVC-Kj8T0NBDW XML 1,526 bytes c8ed52278ec00a6fbc9697661db5ffbcbe19c5ab331b182f7fd0f9f7249b5896
    OneDriveFileLauncher.exe 137tczdqf5R7RMRoOb9fI_YjZuncd_TUn EXE 392,760 bytes 7bf5e1f3e29beccca7f25d7660545161598befff88506d6e3648b7b438181a75
    wbemcomn.dll 1xUPkhfaWIgYs5HSmxYPC_sZT4QKm_T7i DLL 181,760 bytes c7b9ae61046eed01651a72afe7a31de088056f1c1430b368b1acda0b58299e28
    0g9pglZr74.ini 1Ylpf9XVnztxeGk-joNw9df3b0Mv8wYU3 INI 265,734 bytes 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d
    svhost.exe 1wo1gZ9acixvy925lM6QAkz6Uaj6cRXxx EXE 209,920 bytes e0c6f9abfc11911747a7533f3282e7ff0c10fc397129228621bcb3a51f5be980
    llv 1ZuzB7x0zzgz34eNhHp_TI3auPhHj8Xhc Folder

    We also observed this host-address was being used where the Cobalt-Strike was being hosted under ASN 16509 with location of IP being in Japan. Also, apart from the Google Drive C2, we have also found that the Gmail address has been used to create accounts and perform activities which have currently been removed under multiple platforms like Google Maps, YouTube and Apple based services.

    Attribution.

    While attribution remains a key perspective when analyzing current and future motives of threat actors, we have observed similar modus operandi to this campaign, particularly in terms of DLL sideloading techniques. Previously, the Winnti APT group has exploited PrintDialog.exe using this method. Additionally, when examining the second implant, Isurus, we found some similarities with the codebase used by the Lazarus group, which has employed DLL sideloading techniques against wmiapsrv.exe – a file that was found uploaded to the threat actor’s Google Drive account. Along with which we have found a few similarities between Swan Vector and APT10’s recent targets across Japan & Taiwan.

    While these observations alone do not provide concrete attribution, when combined with linguistic analysis, implant maturity, and other collected artifacts, we are attributing this threat actor to the East Asian geosphere with medium confidence.

    Conclusion.

    Upon analysis and research, we have found that the threat actor is based out of East Asia and have been active since December 2024 targeting multiple hiring-based entities across Taiwan & Japan. The threat actor relies on custom development of implants comprising of downloader, shellcode-loaders & Cobalt Strike as their key tools with heavily relying on multiple evasion techniques like API hashing, Direct-syscalls, function callback, DLL Sideloading and self-deletion to avoid leaving any sort of traces on the target machine.

    We believe that the threat actor will be using the above implants which have been scheduled for upcoming campaigns which will be using DLL sideloading against applications like Python, WMI Performance Adapter Service, One Drive Launcher executable to execute their malicious Cobalt Strike beacon with CV-based decoys.

    Seqrite Protection.

    • Pterois.S36007342.
    • Trojan.49524.GC
    • trojan.49518.GC.

    Indicators-Of-Compromise (IOCs)

    Decoys (PDFs)

    Filename SHA-256
    rirekisho2021_01.pdf 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd
    rirekisho2025.pdf 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd

    IP/Domains

    Malicious Implants

    Filename SHA-256
    wbemcomn.dll c7b9ae61046eed01651a72afe7a31de088056f1c1430b368b1acda0b58299e28
    LoggingPlatform.dll 9df9bb3c13e4d20a83b0ac453e6a2908b77fc2bf841761b798b903efb2d0f4f7
    PrintDialog.dll a9b33572237b100edf1d4c7b0a2071d68406e5931ab3957a962fcce4bfc2cc49
    python310.dll e1b2d0396914f84d27ef780dd6fdd8bae653d721eea523f0ade8f45ac9a10faf
    Chen_YiChun.png de839d6c361c7527eeaa4979b301ac408352b5b7edeb354536bd50225f19cfa5
    針對提領系統與客服流程的改進建議.pdf.lnk 9c83faae850406df7dc991f335c049b0b6a64e12af4bf61d5fb7281ba889ca82

    Shellcode and other suspicious binaries

    Filename SHA-256
    0g9pglZr74.ini 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d
    ra.ini 0f303988e5905dffc3202ad371c3d1a49bd3ea5e22da697031751a80e21a13a7
    python.xml c8ed52278ec00a6fbc9697661db5ffbcbe19c5ab331b182f7fd0f9f7249b5896
    KpEvjK3KG2.enc e86feaa258df14e3023c7a74b7733f0b568cc75092248bec77de723dba52dd12

    MITRE ATT&CK.

    Tactic Technique ID Technique Name Sub-technique ID Sub-technique Name
    Initial Access T1566 Phishing T1566.001 Spearphishing Attachment
    Execution T1129 Shared Modules
    Execution T1106 Native API
    Execution T1204 User Execution T1204.002 Malicious File
    Persistence T1574 Hijack Execution Flow T1574.001 DLL Sideloading
    Privilege Escalation T1055 Process Injection T1055.003 Thread Execution Hijacking
    Privilege Escalation T1055 Process Injection T1055.004 Asynchronous Procedure Call
    Defense Evasion T1218 System Binary Proxy Execution T1218.011 Rundll32
    Defense Evasion T1027 Obfuscated Files or Information T1027.007 Dynamic API Resolution
    Defense Evasion T1027 Obfuscated Files or Information T1027.012 LNK Icon Smuggling
    Defense Evasion T1027 Obfuscated Files or Information T1027.013 Encrypted/Encoded File
    Defense Evasion T1070 Indicator Removal T1070.004 File Deletion
    Command and Control T1102 Web Service

    [ad_2]
    Source link

  • PHP 8.3 new features

    PHP 8.3 new features


    PHP 8.3 introduces several new features and improvements to enhance performance and the developer experience. Dive into the latest PHP 8.3 release and discover the new features set to revolutionize how developers build applications. From read-only properties to disjoint unions, learn how these enhancements can help you write more efficient and maintainable code while boosting overall performance.

    Here are some of the most significant updates:

    1. Readonly Properties for Classes.

    • Feature: PHP 8.3 introduces read-only properties that can only be assigned once, typically in the constructor.
    • Benefit: This enforces immutability for properties, which can help prevent accidental modifications and make the code easier to reason about.
    • Example
    class User {
        public readonly string $name;
    
        public function __construct(string $name) {
            $this->name = $name;
        }
    }
    
    $user = new User("Alice");
    // $user->name = "Bob"; // This will throw an error
    
    
    • Performance Impact: Immutable objects can lead to performance benefits by reducing the need for defensive copying and allowing for better optimization by the engine.

    2. Disjoint Unions

    • Feature: PHP 8.3 introduces disjoint unions, allowing developers to declare that a property or return type can be of one type or another, but not a common subtype.
    • Benefit: This adds more precision in type declarations, improving type safety and reducing potential bugs.
    • Example
    function process(mixed $input): int|string {
    if (is_int($input)) {
    return $input * 2;
    }
    if (is_string($input)) {
    return strtoupper($input);
    }
    throw new InvalidArgumentException();
    }

    3. json_validate() Function

    • Feature: A new json_validate() function is introduced, which allows developers to check if a string contains valid JSON without decoding it.
    • Benefit: This is useful for validating large JSON strings without the overhead of decoding them.
    • Example
    $jsonString = '{"name": "Alice", "age": 25}';
    if (json_validate($jsonString)) {
    echo "Valid JSON!";
    } else {
    echo "Invalid JSON!";
    }

    4. Typed Class Constants

    • Feature: PHP 8.3 allows class constants to have types, just like class properties.
    • Benefit: This feature enforces type safety for constants, reducing bugs caused by incorrect types.
    • Example
    class Config {
    public const int MAX_USERS = 100;
    }

    5. Improved Performance

    • JIT Improvements: PHP 8.3 includes enhancements to the Just-In-Time (JIT) compiler introduced in PHP 8.0. These improvements lead to faster execution of some workloads, especially those that are CPU-intensive.
    • Faster Hash Table Operations: Internal improvements have been made to how hash tables (the underlying structure for arrays and many other data structures) are handled, resulting in faster array operations and reduced memory usage.

    6. Enhanced Error Reporting

    • Feature: Error reporting has been improved with more precise messages and additional context, helping developers diagnose issues faster.
    • Benefit: Better error messages lead to quicker debugging and a smoother development experience.

    7. New Random\Engine  Class

    • Feature: PHP 8.3 introduces the Random\Engine class, which provides a standard way to generate random numbers using different engines.
    • Benefit: This adds more control over random number generation and allows for better customization, especially in cryptographic or statistical applications.
    • Example:
    $engine = new Random\Engine\Mt19937();
    $random = new Random\Randomizer($engine);
    echo $random->getInt(1, 100); // Random number between 1 and 100

    Conclusion

    PHP 8.3 brings a mix of new features, performance improvements, and developer experience enhancements. These changes help developers write more robust, efficient, and maintainable code, while also taking advantage of performance optimizations under the hood. The introduction of readonly properties, disjoint unions, and typed class constants, along with improvements in JIT and error reporting, are particularly impactful in making PHP a more powerful and developer-friendly language.



    Source link

  • Data Discovery and Classification for Modern Enterprises

    Data Discovery and Classification for Modern Enterprises


    In today’s high-stakes digital arena, data is the lifeblood of every enterprise. From driving strategy to unlocking customer insights, enterprises depend on data like never before. But with significant volume comes great vulnerability.

    Imagine managing a massive warehouse without labels, shelves, or a map. That’s how most organizations handle their data today—scattered across endpoints, servers, SaaS apps, and cloud platforms, much of it unidentified and unsecured. This dark, unclassified data is inefficient and dangerous.

    At Seqrite, the path to resilient data privacy and governance begins with two foundational steps: Data Discovery and Classification.

    Shedding Light on Dark Data: The Discovery Imperative

    Before protecting your data, you need to know what you have and where it resides. That’s the core of data discovery—scanning your digital landscape to locate and identify every piece of information, from structured records in databases to unstructured files in cloud folders.

    Modern Privacy tools leverage AI and pattern recognition to unearth sensitive data, whether it’s PII, financial records, or health information, often hidden in unexpected places. Shockingly, nearly 75% of enterprise data remains unused, mainly because it goes undiscovered.

    Without this visibility, every security policy and compliance program stands on shaky ground.

    Data Classification: Assigning Value and Implementing Control

    Discovery tells you what data you have. Classification tells you how to treat it.

    Is it public? Internal? Confidential? Restricted? Classification assigns your data a business context and risk level so you can apply the right protection, retention, and sharing rules.

    This is especially critical in industries governed by privacy laws like GDPR, DPDP Act, and HIPAA, where treating all data the same is both inefficient and non-compliant.

    With classification in place, you can:

    • Prioritize protection for sensitive data
    • Automate DLP and encryption policies
    • Streamline responses to individual rights requests
    • Reduce the clutter of ROT (redundant, obsolete, trivial) data

    The Power of Discovery + Classification

    Together, discovery and classification form the bedrock of data governance. Think of them as a radar system and rulebook:

    • Discovery shows you the terrain.
    • Classification helps you navigate it safely.

    When integrated into broader data security workflows – like Zero Trust access control, insider threat detection, and consent management – they multiply the impact of every security investment.

    Five Reasons Enterprises Can’t Ignore this Duo

    1. Targeted Security Where It Matters Most

    You can’t secure what you can’t see. With clarity on your sensitive data’s location and classification, you can apply fine-tuned protections such as encryption, role-based access, and DLP—only where needed. That reduces attack surfaces and simplifies security operations.

    1. Compliance Without Chaos

    Global data laws are demanding and constantly evolving. Discovery and classification help you prove accountability, map personal data flows, and respond to rights requests accurately and on time.

    1. Storage & Cost Optimization

    Storing ROT data is expensive and risky. Discovery helps you declutter, archive, or delete non-critical data while lowering infrastructure costs and improving data agility.

    1. Proactive Risk Management

    The longer a breach goes undetected, the more damage it does. By continuously discovering and classifying data, you spot anomalies and vulnerabilities early; well before they spiral into crises.

    1. Better Decisions with Trustworthy Data

    Only clean, well-classified data can fuel accurate analytics and AI. Whether it’s refining customer journeys or optimizing supply chains, data quality starts with discovery and classification.

    In Conclusion, Know your Data, Secure your Future

    In a world where data is constantly growing, moving, and evolving, the ability to discover and classify is a strategic necessity. These foundational capabilities empower organizations to go beyond reactive compliance and security, helping them build proactive, resilient, and intelligent data ecosystems.

    Whether your goal is to stay ahead of regulatory demands, reduce operational risks, or unlock smarter insights, it all starts with knowing your data. Discovery and classification don’t just minimize exposure; they create clarity, control, and confidence.

    Enterprises looking to take control of their data can rely on Seqrite’s Data Privacy solution, which delivers powerful discovery and classification capabilities to turn information into an advantage.



    Source link

  • Yelp Help Viewer Security Flaw in GNOME Linux Systems

    Yelp Help Viewer Security Flaw in GNOME Linux Systems


    Yelp is the default help browser in GNOME-based Linux distributions, including widely used systems such as Ubuntu, Fedora and Debian etc. It is responsible for rendering help documentation written in the Mallard XML format and integrates tightly with the desktop environment via the ghelp:// URI scheme. This integration allows applications and users to open help topics directly using protocol links, making Yelp a core utility for accessing user guides and documentation.

    A vulnerability was recently discovered in Yelp that allows it to process specially crafted help documents in unsafe ways. This flaw, identified as CVE-2025-3155, can be exploited to execute arbitrary scripts embedded within help files, potentially leading to the exposure of sensitive user data to external systems.

    Vulnerability Overview

    CVE-2025-3155 is a vulnerability in Yelp, the GNOME help browser, related to its handling of help documents written in the Mallard XML format.

    An attacker can craft a malicious .page file that uses XInclude to embed the contents of arbitrary local files—such as /etc/passwd or private SSH keys—directly into the displayed help content. If the user opens this file in Yelp, the referenced file is read and rendered within the interface, leading to local file disclosure.

    An attacker may also embed SVG elements containing JavaScript within the crafted help file. When processed by Yelp, these scripts can be executed as part of the rendering process, enabling the exfiltration of included file content to an external server. The vulnerability affects Yelp versions up to 42.1 and has been confirmed on GNOME-based distributions such as Ubuntu 22.04.

    Attack Flow

    The exploitation of CVE-2025-3155 involves delivering a malicious Mallard .page help file to the victim and leveraging Yelp’s behaviour to access and potentially leak sensitive local files. The process can be broken down into the following steps:

    Craft and Host the Malicious File

    The attacker creates a malicious .page file containing an XInclude directive to reference sensitive local files and embeds SVG-based JavaScript for exfiltration. This file is then hosted on a web page under the attacker’s control.

    Placing the File on the Victim’s System
    Through social engineering or a drive-by download technique, the attacker delivers the crafted file to a user-writable directory on the victim’s system. 

    Trigger Yelp via the ghelp URI Scheme

    The attacker leads the victim to a crafted ghelp:// link that references the previously downloaded malicious page file. When accessed, Yelp opens the file for processing.

    Yelp Processes and Exfiltrates Content

    When Yelp opens the page file, it processes the XInclude directive and reads content from the specified local files. In an attack scenario where the file contains embedded SVG scripting, the extracted data can be exfiltrated to an attacker-controlled server.

     

    Figure 1: Attack sequence demonstrating how an adversary leverages Yelp’s help file handling to read and exfiltrate sensitive files.

    Real-World Consequences

    CVE-2025-3155 highlights a significant weakness in how user-facing applications like Yelp process local help content. This flaw has the potential to enable attackers to exfiltrate sensitive user files such as SSH private keys or password stores. In targeted environments, such as hospitality, entertainment, or enterprise Linux workstations, exploitation of this vulnerability could:

    • Lead to unauthorized access to confidential files and credentials.
    • Serve as an early-stage foothold for lateral movement in broader attack campaigns.
    • Facilitate deployment of backdoors or data-stealing malware.
    • Precede or support larger cyberattacks carried out by advanced threat actors.

    Evidence from recent cyber threat reports suggests this vulnerability has already been leveraged by threat groups in targeted industries.

     

    Countermeasures for CVE-2025-3155

    To safeguard Linux systems and users against exploitation of this vulnerability, the following countermeasures are strongly recommended:

    Update Yelp Immediately: Ensure Yelp is updated to version 42.2 or later, where the vulnerability is patched.

    Restrict ghelp:// URI Usage: Avoid launching help files from untrusted sources or links. Consider limiting the exposure of ghelp:// handlers via URI sandboxing or policy enforcement.

    Harden File Access Permissions: Limit read permissions for sensitive files like ~/.ssh/id_rsa and other secrets. Regularly audit user permissions and use encrypted key storage wherever possible.

    Monitor Yelp Behaviour: Although monitoring is not a primary mitigation, security teams may choose to audit Yelp usage for post-exploitation indicators. Abnormal patterns—such as Yelp accessing sensitive files or initiating network connections—could signal an attempted abuse of the vulnerability. This should be used as part of broader endpoint visibility, not as a standalone defence.

     Educate End Users: Inform users about the risks of opening help files from unknown sources and recognize spoofed support documentation. Implement awareness campaigns that treat .page files as potentially harmful.

    By combining patch management with proactive monitoring and user education, organizations can mitigate the risks posed by CVE-2025-3155 and prevent it from being used as a stepping stone in larger attack chains.

    Conclusion

    CVE-2025-3155 demonstrates how functionality intended for local documentation rendering can become a vector for unintended data exposure. By leveraging features like XInclude and URI-based invocation, an attacker can craft a low-interaction exploitation chain capable of disclosing sensitive files and exfiltrating them without explicit user consent. This case underscores the importance of strict content handling in local applications and reinforces the need for timely updates and user vigilance against unfamiliar file types and protocol-driven links.

    References:

    https://gitlab.gnome.org/GNOME/yelp/-/issues/221

     

    Authors:

    Vinay Kumar

    Adrip Mukherjee

     

     



    Source link

  • Rule of 72 – Useful code

    Rule of 72 – Useful code


    Ever heard of the Rule of 72? It’s a classic finance shortcut that tells you how many years it takes for an investment to double at a given interest rate—without reaching for a calculator! Pretty much, if you want to understand when you are going to double your money, that are growing with 7% per year, then simply divide 72 by 7 and see the approximate answer. It works like that and it is approximately ok, for values between 5 and 10%.

    For all other values, the formula looks like this:

    ln(2) is approximately 0.693. Hence, it is 0.693 divided by ln(1+tiny percentage).

    With Python the formula looks like this:

    If you want to see how exact the formula is, then a good comparison vs the exact value looks like this:

    The execution of the code from above like this:

    The YT video, explaining the code and is here:

    https://www.youtube.com/watch?v=BURstTrQWkA

    The GitHub code is here: https://github.com/Vitosh/Python_personal/tree/master/YouTube/023_Python-Rule-of-72

    A nice picture from Polovrak Peak, Bulgaria

    Enjoy!



    Source link