What makes a penetration test legal

The same actions are a service with authorisation and an offence without it. Which documents create the authorisation, who may sign them, and where the usual gaps are.

Published4 min read

A penetration tester does what an intruder does: looks for a way in and uses it. Computer crime laws in most countries do not ask about intentions. They ask whether the access was authorised. The whole difference between a service and an offence is a set of documents, signed by the right person before the work starts.

This article describes those documents. It is not legal advice: the law differs between countries, and your lawyers decide what applies to you.

The documents

Contract

The commercial agreement: what is done, by when, for how much, with what liability and confidentiality. The contract alone is not the authorisation. It obliges the parties to each other; it does not by itself state what may be attacked.

Authorisation letter

The statement by which the owner of the systems permits the test. It should name:

  • the systems, by address, domain or another unambiguous identifier;
  • the period during which testing is permitted;
  • the people or the company permitted to test;
  • the person who signs, and the capacity in which that person signs.

Testers carry it, literally or figuratively, for the whole engagement. When a hosting provider or a law enforcement body asks what is going on, this is the document that answers.

Rules of engagement

The technical limits: which techniques are permitted and which are excluded, the hours of testing, the request rates, what happens when a system becomes unstable, whom to call at night. NIST SP 800-115 treats the rules of engagement as a required part of planning, and PTES places them in the pre-engagement phase for the same reason: questions that are not settled before the test are settled during an incident.

Scope statement

The list of what is in and what is out. Exclusions matter as much as inclusions: the payment provider behind the checkout, the shared platform of the hosting company, the single sign-on service that belongs to the parent company.

Confidentiality and data protection

A non-disclosure agreement, signed before technical details are exchanged. Where personal data may be encountered, a data processing agreement. In the European Union this follows from Article 28 of the GDPR when the tester processes personal data on behalf of the client.

Who may sign

The authorisation is worth as much as the authority of the person who signs it.

  • The owner of the system, not its user. A company cannot authorise the testing of a SaaS product it subscribes to.
  • A person entitled to bind the company. A developer who orders a test of the employer’s production system without the knowledge of management has not authorised anything.
  • Every owner, where there are several. A system operated by one company on the infrastructure of another may need both.

A careful provider verifies this: checks the commercial register, the ownership of the domains and confirms the order through an official channel of the company. A provider who does not ask should worry you.

Third parties

Your authorisation covers what is yours. Around it there are usually systems that are not.

Cloud providers. The large providers publish policies for the testing of resources that customers run on their platforms. At the time of writing, AWS, Microsoft Azure and Google Cloud permit customers to test their own resources without prior approval, within the rules each of them publishes; AWS also lists the services that may be tested. Denial-of-service testing is restricted by all of them. The policies change, so they are checked before every engagement and not remembered from the last one.

Hosting and managed services. Shared hosting, managed databases and content delivery networks have their own terms. Some require notice, some prohibit testing altogether.

Suppliers and partners. An integration with a partner does not extend your authorisation to the partner’s side of it. Without the partner’s written consent, testing stops at your boundary.

The usual gaps

  • The test has started, the letter is still “being signed”.
  • The scope lists a domain, and the application behind it moved to another address last month.
  • The letter is signed by someone who had no authority to sign it.
  • Production is in scope, and nobody told the operations team.
  • A subsidiary in another country is tested under the authorisation of the parent.

Each of them turns an authorised test into an unauthorised one for a part of the work, and none of them is visible from the technical side.

Bug bounty is an authorisation too

A bug bounty program is an authorisation given in public: the program policy says what may be tested and how, and whoever follows it acts with the permission of the owner. A safe harbour clause adds the owner’s commitment not to pursue researchers who stay within the policy. It binds the owner only. It does not change criminal law and does not bind third parties, which is why the policy has to be followed exactly and why a system with no program is not a target.

In short

Before the first packet is sent there should be a contract, an authorisation letter signed by someone entitled to sign it, rules of engagement, a scope with its exclusions, and the consent of every third party whose systems are touched. The details of how we handle this are on the engagement page.

Request

Tell us what needs testing

  • Website check free of charge
  • Reply within 1 business day
  • NDA before any technical detail
  • Fixed price for paid engagements
  • No obligation

Request an assessment

Describe the systems and the goal. A manager replies within 1 business day with clarifying questions and the next step.

Who to reply to

We reply to this address unless you choose another channel.

A sole proprietor writes their own name.

Preferred channel
What to assess
Services of interest

Choose all that apply.

Free check

We check your website free of charge

If we find no problems, you receive the report free of charge as well. You pay for the report only when we find problems, and its price depends on their number and severity.

Terms of the free website security check

Application security

Infrastructure and cloud

Adversary simulation

AI, Web3 and cryptography

Programs and assurance

Application security

Free website security check

We look at your website from the outside, the way an attacker does, and check whether it can be broken into: weak settings, outdated software, exposed files, unsafe forms. The check is free of charge.

Application security

Web application penetration testing

We try to break into your web application the way a real attacker would: log in to the accounts of other people, read the data of other customers, change prices or orders. You learn what is possible before criminals do.

Application security

API security testing

An API is the channel through which your app, your website and your partners exchange data with your servers. We check that nobody can use it to read or change data that is not theirs.

Application security

Mobile application penetration testing

We examine your iOS or Android app and the servers behind it: what the app keeps on the phone, what can be extracted from it and whether its requests can be tampered with.

Application security

Secure code review

Our specialists read the source code of your product and find the mistakes that lead to a break-in, including those that cannot be seen from the outside.

Infrastructure and cloud

Cloud & Kubernetes security assessment

We check how your cloud is set up (AWS, Azure, Google Cloud, Kubernetes): who has access to what, which data is open to the internet and how far an attacker gets after the first mistake.

Infrastructure and cloud

Infrastructure penetration testing

We test your servers and your office network from the outside and from the inside: can an attacker get in, and once inside, reach the accounting system, the mail or the backups.

Infrastructure and cloud

External attack surface assessment

We find everything your company exposes to the internet, including what has been forgotten: old websites, test servers, leaked passwords. Then we show which of it can be attacked.

Infrastructure and cloud

CI/CD & supply chain security

We check the path your code takes from the developer to the customer: build servers, third-party libraries, access keys. Whoever controls that path controls your product.

Adversary simulation

Red team operations

A full-scale exercise. Our team plays a real attacker with a goal, for example to reach customer data, and you see whether your defence notices and stops it.

Adversary simulation

Purple team exercises

Our attackers and your defenders work side by side: we show an attack technique, your team checks whether it sees it, and the gaps in monitoring are closed on the spot.

Adversary simulation

Social engineering assessment

We test people, not machines: the phishing emails, calls and messages that attackers use to obtain passwords. You learn how many employees would be deceived and what to train.

AI, Web3 and cryptography

AI & LLM security testing

If your product has a chatbot or another AI model, we check whether it can be talked into revealing confidential data, breaking its own rules or acting on behalf of someone else.

AI, Web3 and cryptography

Smart contract audit

Before a smart contract holds money, we look for mistakes in its code that would let someone withdraw or freeze the funds. After deployment such mistakes cannot be corrected.

AI, Web3 and cryptography

Cryptography review

We check how your product encrypts data and protects keys: whether the right algorithms are chosen and whether they are applied correctly. A mistake here makes the encryption useless.

Programs and assurance

Bug bounty program management

A bug bounty is a program in which independent researchers look for vulnerabilities in your product and are paid for each one they find. We launch and run such a program for you.

Programs and assurance

Vulnerability disclosure program (VDP)

A public page and a procedure that tell researchers how to report a vulnerability to you safely. Without them reports get lost or arrive as threats. We set the process up and handle incoming reports.

Programs and assurance

Continuous penetration testing

Instead of one test a year, we test every significant change of your product throughout the year, so that a new vulnerability does not wait for months to be found.

Programs and assurance

Compliance-driven penetration testing

A penetration test arranged so that an auditor, a regulator or a large customer accepts its report: PCI DSS, DORA, NIS2, ISO/IEC 27001, SOC 2.

Services of interest

Not sure yet

Choose this if you do not know which service you need. Describe the task in your own words, and a specialist will suggest the service in the reply.

Domain or URL of the website or of the main system to test, for example app.example.com.

What needs testing, why now, and any deadline or compliance requirement. No passwords, keys or vulnerability details.

Confirmations

Do not send credentials, keys or details of a vulnerability through this form. A secure channel is agreed after the first reply.

Automated abuse check