DESKTOP & SERVER APPLICATIONS
Doyensec tears apart all manner of thick clients and server daemons written in a diverse set of languages. We hit the ground running analyzing code written in C, C++, C#, Java and other languages.
Our familiarity with modern operating systems allows us to quickly evaluate the security posture of the application and identify issues caused by interdependent components.
Linux, Windows, macOS
During review of stand-alone applications and network services, we begin by mapping out the attack surface (IPC/RPC mechanisms, sockets, user-supplied input, etc.) to clearly define the threat model.
With static analysis techniques and dynamic testing/instrumentation we can understand the inner workings of the application even if custom file formats or protocols are used. We build custom tools to exercise the application behavior with our inputs, which ultimately leads to the discovery of security vulnerabilities.
For fuzzing, we use internally-built tools and well-known frameworks to facilitate our audits. Stack and heap overflows, format strings, use-after-free, integer overflows, path traversal, and local privileges escalation bugs are just few examples of the vulnerabilities classes uncovered during these assessments.
Information Gathering and Reconnaissance
- Features and Components
- Entry Points
- Error Messages
- Stack Traces and Debugging
- Admin Functionality
Configuration
- Stack Protection
- Pointer Protection / Encryption
- Stack Canaries
- Bounds Checking
- Position Independent Executable (PIE)
- Admin Console Exposure
- OS Privileges
- Sandboxing
- Class and Interface Declarations
- Method and Class Extensibility
- Mutable Objects
Memory Safety
- Heap Overflows
- Stack Overflows
- Integer Overflows
- Buffer Over-reads
- Use After Free
- Double Free
- Null Pointer Dereference
- Format Strings
Input Operations
- File Processing and Transcoding
- Floating Point Operations
- Deserialization
- String Operations
- Equality Comparisons
- Race Conditions
- Integer Conversions
Authentication
- Credential Storage
- Client / Server Attestation
- Licensing Enforcement
- User Attribution
Anti-Reversing
- Anti-debugging Protection
- Code Obfuscation
Cryptography
- X.509 Certificate Validation
- TLS/SSL Ciphers
- TLS/SSL Key Strength
- Unencrypted Channels
- Certificate Pinning
- Key Storage and Rotation
- Cipher Modes
Denial of Service
Resource Exhaustion
Assymertric Requests / Responses
Infinite Loops and Recursion
[**Advisory** 07/10/2025
Multiple Vulnerabilities in the Immersed Platform](/content/research.html#immersed_advisory/index.html)[**Publication** 04/12/2021
Security Auditing of Teleport (Q4 2020)](/content/research.html#security_auditing_of_teleport_q4_2020/index.html)[**Publication** 07/16/2022
Teleport Platform Features Security Audit Report (Q3 2021)](/content/research.html#teleport_platform_features_security_audit_report_q3_2021/index.html)[**Blog** 03/16/2020
Don't Clone That Repo: Visual Studio Code^2 Execution](/content/research.html#dont_clone_that_repo_visual_studio_code2_execution/index.html)