A real test goes as deep as an attacker would — and the signed RoE is what makes that depth safe. Twelve clauses. Each one is here because leaving it out is what turns a security test into an argument. Fill in the blanks, delete what does not apply to the engagement, and keep the numbering — your client will refer to it by number.
The person who signs has to hold authority to authorise the test on behalf of the organisation. A technician who operates the system is usually not that person.
Why this clause exists: The authorisation is the only thing separating a security test from an incident. It has to come from someone who can give it, and it has to stay on record with a name, an address and a date.
One per line, written out in full. No abbreviations, and no "and subdomains".
The rule that governs the whole document: what is not on this list is not authorised.
Why this clause exists: "And anything else that belongs to the client" is where the accidents live — a third-party host that merely looks like the client's, a shared hosting IP carrying four other companies. The explicit list is your defence.
Why this clause exists: A shared IP address is the classic trap: the target resolves to a host that also serves companies who never authorised anything. Naming the exclusion is cheaper than explaining it afterwards.
Why this clause exists: Depth is the difference between "we found a door" and "we went in". Raising it later is new scope, and new scope needs a new signed RoE — not an edit to this one.
Outside this window, nothing runs.
Why this clause exists: Agree the window with whoever operates the system, not only with whoever signs. The person who signs rarely knows that the monthly closing runs on the third business day.
Be honest about identification. Some stages use varied identifiers, including ones deliberately shaped like an ordinary browser or a known scanning tool, because part of what is being assessed is how the controls react to each of them. Network services — SMB, LDAP, SSH, databases — have no equivalent field at all.
What separates this test from a real incident is not the label on the traffic. It is this authorisation and the window above.
Why this clause exists: Without an agreed rate ceiling, a test can take down a fragile service, and the next conversation is about losses rather than about security.
Describe it in the client's language, matching what you actually contracted. A workable baseline:
Why this clause exists: A client who does not know what was done cannot tell a finding from an opinion. This clause is what makes the report defensible later.
Why this clause exists: Only promise what the engagement actually refrains from. A fixed list of noble-sounding exclusions, printed on an engagement that does the opposite, is the kind of contradiction a client signs without noticing — and discovers at the worst possible moment.
An active test is not passive observation. Say so plainly:
Why this clause exists: This is the conversation nobody wants to have afterwards. Signed beforehand, an incident becomes something that was foreseen.
Stop the test immediately on any of these: a service becomes unavailable, data is lost, a critical finding shows active exposure, or the client asks you to stop.
Why this clause exists: A stop rule nobody can execute is decoration. Both contacts have to be reachable during the window — which means a mobile number, not a ticket queue.
If any part of the processing happens on infrastructure you do not own — analysis, comparison across assessments, anything that leaves your own systems — say it here, and say where. Do not write "no data leaves our environment" if data leaves it.
Why this clause exists: A confidentiality promise your operation does not keep is the promise that catches you in an audit. The clause that protects you is the one that describes what actually happens, including the parts you would rather not mention.
Why this clause exists: Editing a signed document destroys the only thing it was for. The signature proves consent to a specific text; change the text and you are holding a signature for something nobody agreed to.
Eleven lines to run through before you send the document for signature. Every one of them exists because skipping it is survivable right up until the day it is not.
Those four are what answer the question "who authorised this test?" months later, when the person who signed has left the company and the only thing left is your record.
Why this clause exists: The fourth is the one people forget. A signature attached to a scope that has since been edited proves nothing at all.
Copy it, fill in the brackets, send it. It is deliberately short: the three points below are the ones clients actually come back with questions about.
[Name],
Before any test runs, I need your authorisation in writing. Attached (or at the link below) are the Rules of Engagement: what will be tested, when, within which limits, what will not be done, and what the possible impact is.
Three points I would like you to read carefully:
If you agree, sign [at the link / on the document] and send it back. Nothing starts before that.
Any questions, call me on [phone] — I am available throughout the test window.
[Signature]
Everything above works on paper, and paper is where it usually breaks: the scope gets edited after signature, the window is agreed in a chat thread, and six months later nobody can say what exactly was authorised. This part describes how the same twelve clauses behave when a platform enforces them. It is deliberately factual — this kit is written to be forwarded to your own client, so it sells nothing.
Why this clause exists: Clause 12 is the one a platform can keep and a PDF cannot. A signature that is bound by hash to a frozen scope cannot be quietly widened afterwards — which is the single failure this whole document is written to prevent.
Reproduced as it stands on the signing page today, because clause 11 is only worth as much as its honesty:
"Os achados ficam armazenados na plataforma Wardizon. Quem conduz o teste, a sua organização e, para suporte e auditoria, a Wardizon podem acessá-los. Para conduzir a avaliação, analisar os achados e compará-los entre avaliações, os dados desta avaliação — como alvos, tecnologias detectadas, evidências e achados — são processados na infraestrutura da Wardizon, no Brasil, e na de suboperadores, nos EUA. A lista de suboperadores está disponível sob pedido a quem conduz o teste. Os dados de cada organização são isolados dos das demais, e o acesso à plataforma é feito por conexão protegida (HTTPS)."
Note what it does not say. It does not promise that no data leaves, and it does not promise that no finding is ever shared — because analysis and comparison across assessments do process assessment data on sub-processors. An earlier version of this text did make that promise, and it was removed for being wider than the truth. That is the standard clause 11 asks you to hold yourself to.