How to prepare for a penetration test

A checklist for the client: what to decide, what to prepare and whom to tell before the testers start, so that paid days are spent on testing.

Published4 min read

A penetration test is paid by the day. Every day the testers spend waiting for an account, guessing how a function is meant to work or being blocked by your own firewall is a day not spent on finding vulnerabilities. Most of that waiting can be removed before the start.

Decide

What is the question? “Is the new payment flow safe to release” and “what can someone on the internet do to us” lead to different tests. Write the question down in one sentence; the scope follows from it.

What is in scope, and what is not? List the applications, the addresses, the environments. List the exclusions too: the payment provider, the systems of the parent company, the legacy service that falls over when it is looked at.

Which environment? A staging environment that matches production is the best choice: the testers can be thorough and nothing real is at stake. If only production exists, agree the hours and the techniques that are off limits.

How much do the testers know? Testing with accounts and documentation finds more per day than testing blind. Testing blind answers one narrow question: what an outsider achieves with no information. Decide which you are paying for.

Prepare

Accounts. One for each role, and in two separate tenants if the product has tenants: access control between customers cannot be tested with one customer. Create them before the start, log in with each once, and check that they have realistic data.

Documentation. API specifications, a diagram of the architecture, a description of the roles and of the main workflows. Imperfect documents are better than none.

Access. If the test environment is behind a VPN or an allow-list, arrange access in advance and test it. Decide whether the web application firewall stays on. If the application is the subject of the test, allow the testers through it; if the firewall is, leave it on and say so.

Data. Populate the test environment with data that resembles the real thing in structure and not in content. Real personal data in a test environment is a finding before the test has begun.

Backups. Confirm that the environment under test can be restored. Testers are careful; backups are for the case in which care was not enough.

Tell

The operations team and the monitoring team, unless the test is meant to examine them. Give them the source addresses of the testers and the dates. Otherwise the first day ends with the testers blocked and an incident opened.

The hosting or cloud provider, where their policy requires it. The large cloud providers do not require notice for testing of your own resources within their published rules; smaller hosting companies often do.

Suppliers whose systems are touched. Their consent is needed in writing.

One contact person, reachable during testing hours, with the authority to make decisions: to extend an account, to restart a service, to stop the test.

Sign

  • the non-disclosure agreement, before any of the above is handed over;
  • the contract;
  • the authorisation letter and the rules of engagement.

What each of them is for is described in What makes a penetration test legal.

During the test

  • Do not deploy to the environment under test without telling the testers. A finding that disappears overnight costs a day of confusion.
  • Do not fix findings in the middle, except critical ones. If you fix one, say so.
  • Answer questions quickly. A tester who asks how a function is meant to work has usually found something.
  • Expect urgent findings at once. A critical vulnerability is reported when it is confirmed, not in the final report.

After the test

  • Read the summary with management, the findings with engineering. They are written for different readers.
  • Attend the debrief. It is the cheapest hour of the engagement.
  • Plan the fixes by priority, and tell the testers when they are deployed.
  • Use the retest. A fix that has not been verified is an assumption.
  • Keep the report confidential. Until the fixes are in, it is a manual for attacking you. For customers and auditors there is the attestation letter.

The checklist

Before the start Done
Question and scope written down, exclusions included
Environment chosen, test windows agreed
Accounts created for every role, in two tenants if the product has tenants
Documentation handed over
Network access arranged and tested
Test data in place, no real personal data
Backups verified
Operations, monitoring and providers informed
Contact person named
NDA, contract, authorisation letter, rules of engagement signed

The page of each service lists what that particular test needs from you.

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