A safe-to-host certificate is issued after an eligible auditing organisation has tested your application on the staging or testing environment provided by your hosting service provider, you have closed the findings, and the auditor has retested them. Every scheduling decision on the project follows from that one sentence.
The rule that reshapes your release plan: the audit is performed on the staging server or testing environment provided by the hosting service provider before the certificate issues, and GIGW 3.0 statement 5.3.1 requires the audit clearance certificate to have been issued before hosting in the production environment. Two test events, one development cycle in between, and the go-live date on the far side of all three. Every instrument this page relies on is linked at the point it is used.
Plain-English explainer · GIGW 3.0 statement 5.3.1 · CERT-In Audit Policy Guidelines v1.0 (25 July 2025) · CERT-In Auditor Guidelines v3.0 (May 2018) · CERT-In Empanelment Terms v7.2 (April 2024) · Last reviewed September 2026
You get a safe-to-host certificate by appointing an eligible auditing organisation — NIC, STQC, an STQC-empanelled laboratory or a CERT-In-empanelled laboratory — agreeing the scope in writing, letting that organisation test the application on the staging or testing environment your hosting service provider supplies, fixing what the findings report raises, and having the auditor retest and confirm closure. The certificate is issued on the strength of that retest, and it is issued before the application is hosted in production, not after. There is no application form, no portal and no government approval step in the middle. The certificate is a deliverable of an audit engagement between you and an eligible auditing organisation. What makes it official is who signed it, and what they were required to do before signing.
Who this path is for. This is the GIGW route, and GIGW binds Indian government websites and applications at any organisational level, central and state, including district administrations and local governments — with browser-based intranet applications recommended to follow it too. If you are a private company and a tender asks you for “safe to host”, you are almost always being asked for a security audit certificate from an empanelled auditing organisation: the same engagement shape, the same staging rule, the same retest, without GIGW statement 5.3.1 sitting behind it. That distinction is worked through in safe-to-host versus a security audit certificate, and it is worth settling before you write a scope.
The instrument that requires it is GIGW 3.0 — the Guidelines for Indian Government Websites and Apps. The National Informatics Centre formulated the first GIGW in 2009 and the Department of Administrative Reforms and Public Grievances made it part of the Central Secretariat Manual of Office Procedure. Version 3.0 was formulated jointly with the STQC Directorate of MeitY and CERT-In, and its chapter on cybersecurity was formulated by CERT-In. Statement 5.3.1 states the requirement plainly: Website, web application, web portal or mobile app have been Security Audited and an Audit Clearance certificate has been issued by NIC/ STQC/ STQC empanelled laboratory/ CERT-In empanelled laboratory before hosting in production environment. The evaluator action under the same statement closes the loop: the evaluator shall check that the website, web application, web portal or mobile app under evaluation has a valid security audit certificate issued by one of those bodies, fulfilling CERT-In requirements. And GIGW’s own page on what is new in 3.0 uses the working name in its own voice — government organisations must continue to obtain a “safe to host” certificate issued by the cybersecurity auditors empanelled by CERT-In or STQC, or the auditors of STQC or NIC. For what the certificate is and is not, see the safe-to-host certificate explained. For who may sign one, see who can issue safe-to-host certificates.
A numbering caveat worth knowing before you cite it
Chapter 5 of the GIGW manual carries three cybersecurity statements: 5.3.1 the audit clearance certificate, 5.3.2 the hosting environment, 5.3.3 the security, privacy and contingency policies. The published web page mis-numbers the third as 5.3.2, so “5.3.2” appears twice on that page. Cite the manual, and if a tender or an evaluator quotes 5.3.2 at you, check which of the two they mean.
Key Takeaways
- The certificate is the output of an audit engagement, not an application to a government body. You contract an eligible auditing organisation directly, and CERT-In is not a party to that contract.
- Only four kinds of body may issue it for GIGW purposes: NIC, STQC, an STQC empanelled laboratory, or a CERT-In empanelled laboratory. Verify eligibility against the empanelment listing yourself before award, not against a logo on a proposal.
- The audit is performed on the staging or testing environment provided by the hosting service provider, before the certificate issues. Plan that environment as a dated deliverable with a named owner — not as an assumption.
- It is two test events, not one: a first pass that produces the findings report, and a retest that confirms closure. The remediation cycle between them runs at your development team’s speed, which is what determines the real timeline.
- The report must state closure timelines by severity — but no CERT-In instrument publishes a table of days per severity. Your own security policy and the contract set the numbers, which is why the severity scheme is agreed before commencement, not after findings exist.
- It is mandatory for the auditor to share the audit report and audit metadata with CERT-In within five days of completion, and to report critical vulnerabilities with auditee details where those were raised and not fixed even through follow-up audits. The auditor must tell you this before the assignment starts.
- Severity is not an adjective: findings carry a CVSS score, an EPSS likelihood, and a CWE and CVE mapping. That is what makes a severity arguable on its merits rather than negotiable by seniority.
- The certificate is a gate, not a permanent state. GIGW 5.3.1 requires periodic auditing at least once a year or whenever the source code changes, whichever is earlier — so freeze server-side code between retest and go-live, and put the change trigger in the release process.
Why the audit happens on staging
Most of the confusion around safe-to-host comes from one assumption: that a security audit is something you do to a live website. For this certificate it is not, and two instruments say so. The Guidelines for CERT-In Empanelled Information Security Auditing Organizations v3.0 (May 2018) state it under their technical expectations — auditor will be required to audit and test the website on the staging server/testing environment provided by hosting service provider before issuing the audit certificate. The Comprehensive Cyber Security Audit Policy Guidelines v1.0 (25 July 2025) restate it at 15.2.3 and add a second half that matters just as much: the application hash values and version numbers must be obtained from the auditee and included in the report. The environment must be specified — test, development, UAT, pre-production or production — so the choice of environment is not a private matter between engineers. It is written into the deliverable, and it is the first thing a careful evaluator reads.
“We will launch on the 30th and get the certificate in the first week of the following month.”
Three consequences reshape a release plan. The staging environment becomes a hard dependency with its own owner and date: no staging, no audit, no certificate, no hosting. Go-live moves to the far side of a sequence you only partly control — you own the remediation window, the auditor owns both test windows. And the environment tested has to be the environment you ship, because a certificate issued against a build you subsequently changed describes something that no longer exists.
There is a benefit hiding inside the constraint, worth saying out loud to a board that sees only delay. On staging the auditor can test properly: nobody holds back on authentication testing because the system is carrying live citizen traffic, and a broken test does not become an incident. The 2025 guidelines make the trade-off explicit for live systems — in critical environments where availability is a top priority, testing should be conducted in a passive manner to avoid downtime or service disruption. Passive testing is thinner testing. Staging is how you avoid having to choose.
One sentence in the 2025 guidelines cuts the other way and deserves reading before you book anything. Under 16.3, the final audit report is to be issued after closure of vulnerabilities and completion of the follow-up audit of the application hosted on the production environment. Where the audit scope is limited to the staging platform, the report must explicitly state that the audit was not conducted on the production environment. For a pre-go-live certificate there is no production yet, so expect that sentence to appear in your report — and agree at award what post-go-live confirmation looks like, rather than discovering the gap when an evaluator asks.
The safe-to-host process: eleven stages, and where each one slips
This is the lifecycle as a project manager should draw it. The gate is the thing that must exist before a stage can be called done. The slip is where that stage goes wrong in practice — and almost every one of them is a scheduling failure rather than a technical one.
Decide the certificate is a gate, not a task
Gate A release plan in which the go-live date sits after certificate issue, with the staging environment, the test window, a remediation window and a retest window each shown separately.
Slip The plan treats the audit as a one-week block at the end. It is not one block — it is two test events separated by your own development cycle, and the second one cannot start until the first one closes.
Select an eligible auditing organisation
Gate The organisation appears on the current CERT-In empanelment listing (or is NIC, STQC, or an STQC-empanelled laboratory), and you have checked the listing yourself rather than accepting a logo on a proposal.
Slip A vendor is appointed on the strength of a claim, and the mismatch surfaces when the evaluator asks who signed the certificate. Re-procurement at that point costs the whole schedule, not a week of it.
Define the scope in writing
Gate A scope document listing URLs, roles, environments, APIs, mobile builds, third-party integrations and explicit exclusions, signed by both sides before any traffic is generated.
Slip Scope is agreed on a call. Two weeks later the auditor has not tested the admin panel because nobody named it, and the admin panel is the part the evaluator cares about most.
Close the pre-commencement paperwork
Gate NDA signed and legally enforceable, contract clauses permitting system access, agreed deliverable structure, audit-team composition approved in writing, tool list and licence confirmation received.
Slip Testing is scheduled before the NDA clears legal. The auditor cannot lawfully start, the window is lost, and the team blames the auditor for a delay procurement created.
Stand up the staging environment
Gate A staging or testing environment provided by the hosting service provider, running the build you intend to ship, with test accounts at every role and a named engineer on call for the test window.
Slip Staging is built from a two-month-old branch, or it is missing the payment gateway, or it has no non-admin test user. Every one of those turns the first pass into a partial pass.
Kick-off and environment walkthrough
Gate A short session in which the auditor is walked through the application, the roles, the data flows and the integrations, and states the test plan, the test window, and the origin from which remote testing will run.
Slip The walkthrough is skipped to save a day. The auditor then spends the first two days of a five-day window discovering the application instead of testing it.
The first test pass
Gate Testing performed against the agreed scope on the staging environment, with high-risk findings reported to you immediately rather than held for the report.
Slip The environment is unstable, or a WAF in front of staging blocks the test traffic, and hours are lost to unblocking rather than testing. Both are avoidable with one pre-test connectivity check.
The findings report
Gate A report in the agreed structure carrying the scope, the tests and tools used, the results, the analysis, the recommendations, and the closure timelines by severity.
Slip The report lands and sits for a week because no one has been named to own triage. Triage ownership is a decision to take in stage 01, not in stage 08.
Remediation
Gate Every finding either fixed, or carried with a written, dated risk acceptance signed by someone with authority to accept it. Fixes deployed to the same staging environment that was tested.
Slip Fixes are made on a developer branch and never deployed to staging, so the retest re-finds everything. This single mistake accounts for more lost retest cycles than any technical cause.
The retest
Gate A confirmatory pass over the closed findings, plus regression checking where a fix changed behaviour. The retest is the event that makes issue possible.
Slip Partial closure. The auditor retests, some findings are still open, and you are now in a third cycle — which is normal, but only if the plan allowed for it.
Issue, hosting handover and the clock starts
Gate The certificate, the final report, the evidence pack, and a re-audit date in the calendar. Hosting proceeds on the build that was tested, not a later one.
Slip Code changes between the retest and go-live. The certificate describes a build you are no longer shipping, and the honest answer is a delta test rather than a hopeful launch.
Read those eleven as three blocks. Stages 01 to 04 are procurement and paperwork, and they can run entirely in parallel with development. Stages 05 to 10 are the engagement itself, and they are strictly sequential — each one needs the previous one finished. Stage 11 is a handover plus the start of a set of running obligations that never stop. Projects that fail this process almost always fail it by compressing the first block and discovering that the second block cannot be compressed at all.
One department portal, two retests
An illustrative engagement shape, not a client and not a promise. The dates are relative to a notional Day 0 and they describe one plausible run of the eleven stages above — the point is the ordering and the dependencies, not the numbers.
| Day 0 | Two clocks start together | A departmental grievance portal, one web application plus an Android build, six roles, one payment integration. Auditor selection opens against the empanelment listing, and the draft NDA and the access clauses go to legal the same morning. These are the two items that punish a project for starting them in series. |
| Day 11 | Scope document signed | Hostnames enumerated from DNS, roles from the application’s role table, endpoints from the OpenAPI specification. The mobile build is named with its version code. Two integrations are recorded as sandbox-pending with a named owner and a request date against each. |
| Day 18 | Staging requested from the hosting provider | Raised as a service request with the build reference, the parity requirements and the auditor’s source addresses attached. This is the item that most often turns out to have been assumed rather than requested. |
| Day 29 | Connectivity check passes | Allowlisting confirmed at the CDN, the WAF and the security group. WAF set to detection-only for the auditor’s sources for the window. Lockout thresholds raised on the test accounts. One captured round-trip shared both ways. Two days earlier this check failed on the CDN layer, which is why it was run early. |
| Day 31 | Kick-off and walkthrough | The auditor is walked through the application, the roles, the data flows and the integrations, and states the test plan, the window and the origin from which remote testing will run. Escalation numbers exchanged on both sides. |
| Days 32–38 | First test pass | Two highs are reported the day they are found rather than held for the report — an authorisation defect on document download and a stored scripting issue in an administrative view. |
| Day 45 | Findings report issued | In the agreed structure, with severities carrying CVSS vectors and CWE mappings, closure timelines by severity, and a statement that the audit was conducted on the staging environment. |
| Day 45 | Triage, same day | Every finding becomes a ticket with an owner, a severity and a date, because the triage owner was named at stage 01. The configuration batch — headers, cookie attributes, error handling, banner suppression, default-path renaming — goes out as one change on Day 46. |
| Day 60 | The authorisation fix lands on staging | The slowest item, because it touched every document endpoint. It was started on the day the report arrived rather than after the easy findings were cleared, which is why it finished inside the window at all. |
| Day 64 | Retest booked against a build reference | The remediation tracker carries the staging deployment reference for every closed finding. No build reference, no booking — that rule is what stops a cycle being spent proving nothing changed. |
| Day 66 | Retest: two highs still open | One fix was incomplete on a second endpoint nobody mapped, and one introduced a regression in the approver view. Both are ordinary outcomes and both consume a second cycle. |
| Day 74 | Second retest | Closure confirmed on both, with regression checks over the approver workflow. One low is carried on a written risk acceptance signed by the head of the organisation, with a review date. |
| Day 76 | Certificate issued | Naming the application and version, the environment tested, the hash, the test and retest dates, the validity condition, and signed by the lead auditor and the head of the auditing organisation. |
| Day 80 | Go-live, with server-side code frozen | Nothing touches server-side application code between the retest and the launch. The change process now carries both triggers: the annual date, and any major change. |
The same calendar, with one thing missing
Take that run and remove a single item. None of these is a technical failure and none of them is unusual, but each one moves the whole tail of the plan.
Staging was assumed, not requested
The Day 18 request is raised on Day 30 instead, when the team turns to the audit. The hosting provider’s change process is unchanged by the urgency, and the first test window moves with it — carrying the report, the remediation window and both retests behind it.
Fixes sat on a branch
The Day 64 retest re-finds the original findings because the environment did not change. A full cycle is spent establishing that nothing happened, and the second cycle then does what the first was booked to do.
Procurement started after the build was finished
The two Day 0 clocks run in series instead of in parallel. Selection, the NDA and the access clauses all land before staging can even be requested, and the go-live date moves by the length of the paperwork rather than by the length of the testing.
A code change after the retest
The certificate describes a build that is no longer shipping. The honest answer is a delta test over the changed components, which is a booking, an effort estimate and a revised certificate — not a formality.
How long a safe-to-host audit takes, and where projects lose weeks
No CERT-In or GIGW instrument publishes a duration, and any figure presented as a standard one is invented. What does generalise is the model: a set of drivers that determine testing effort, four calendar blocks with different compressibility, and a set of lead-time items that sit entirely outside your engineering team. Build the plan from those three things and you will be close. Copy a number off a vendor page and you will not.
| What drives the effort | How it scales | What you can do about it |
|---|---|---|
| Distinct authenticated roles | Authorisation testing scales with pairs, not with roles — each role has to be tested against every other for horizontal and vertical access. Six roles is not twice the work of three. | Reduce the number of genuinely distinct privilege levels before the audit rather than during it, and supply two working accounts for each one that remains. |
| Functional modules and workflows | Business-logic testing is per workflow. A portal with grievance submission, escalation, transfer, closure and appeal is five workflows, each with its own state machine to attack. | Where a module is not launching with this release, exclude it explicitly and audit it with the release that ships it. |
| API endpoints, and whether a specification exists | A documented API is tested systematically. An undocumented one is tested by whatever the frontend happens to call. The second is both slower and thinner. | Supply the specification. This is the single cheapest thing you can do to raise coverage without extending the window. |
| Mobile builds | Android and iOS are separate artefacts with separate testing, and mobile work carries its own standards reference. Two builds is a second line of effort, not a rounding error on the first. | Decide early whether the app ships with this release. If it does, it belongs in this scope. If not, it needs its own. |
| Whether the hosting and configuration layer is in scope | Server, network-device and configuration review is a different activity with different evidence, and where the server belongs to the hosting provider the duty to audit it may not be yours at all. | Settle this in the scope document, and record what the platform operator already covers so nobody pays twice or, worse, assumes coverage that does not exist. |
| The state the application arrives in | This is the largest variable and the one nobody quotes for. An application that has never been security-tested produces a findings report whose remediation window is measured in the architecture, not in the configuration. | Run a pre-audit review early enough that architectural findings surface while there is still design time. Found on day one of a three-week window, an authorisation redesign is survivable. Found on day twelve it is not. |
| Retest cycles | Each cycle is a remediation window plus a retest booking plus the auditor’s availability. A second cycle is ordinary. A third is what happens when fixes were not deployed to the tested environment. | Plan one spare cycle. Not as a prediction — as the difference between a plan that absorbs an ordinary outcome and one that escalates. |
Draw the plan as four blocks rather than as one bar labelled “audit”: staging readiness, the first test window, the remediation window, the retest window. Two of them respond to effort and two do not. Procurement and remediation compress when you start them early and name owners. The auditor’s two windows and the hosting provider’s change process do not compress at all, which is why a board that understands the split stops asking for the wrong compression.
Five ways the weeks disappear
Every one is a dependency on somebody outside the engineering team — procurement, legal, the hosting service provider, a sandbox owner, an accepting authority — and each becomes expensive because it was never on the plan as a task with an owner and a date.
Procurement started after the build was finished
Empanelled capacity is booked in advance, and the pre-commencement gate — NDA, access clauses, team approval, deliverable structure — is legal work that runs at legal speed. Starting it when the code is done means the schedule absorbs procurement, contracting and testing in series.
Prevent Run auditor selection in parallel with development, and land the NDA and the contract clauses while the application is still being built. The work does not get shorter, but it stops being sequential.
No staging environment from the hosting provider
The audit cannot begin. Building a compliant staging environment involves the hosting service provider, the development agency and often a network change, and none of those three moves quickly when asked at short notice.
Prevent Treat the staging environment as a deliverable with an owner and a date, sitting in the plan a fortnight before the test window, not as an assumption.
A critical finding with an architectural fix
Authentication, session handling or authorisation design problems cannot be patched in an afternoon. The remediation window was sized for configuration fixes and is now sized wrong.
Prevent Commission a pre-audit review early enough that architectural findings surface while there is still time to act on them. Findings found early cost design time. The same findings found late cost the launch date.
The hosting handover starts from zero
GIGW 5.3.2 carries a list of mandatory aspects to check when choosing a hosting service provider, and it is longer than most departments expect. Where the server belongs to somebody else, the duty to audit that server, its operating system, the hosting software and the database sits with the organisation that owns and operates it. Discovering either fact at handover means discovering it late.
Prevent Run the 5.3.2 checklist with the provider during the audit window, and get the division of responsibility in writing at the same time. Both are answered by a different team from the one building your application, and both take their own time.
An integration sandbox was requested at the wrong stage
Identity, payment, e-Sign and messaging sandboxes are approvals, not configuration. They are granted by bodies outside your department on their own cycle, and a request raised when the staging environment is built lands mid-window rather than before it.
Prevent Open every sandbox request at stage 03, when the scope is being written, and record the request date against each integration in the scope document. Where one will not arrive in time, say so in the scope as a stated limitation rather than discovering it as an untested path.
One planning assumption is worth writing into the schedule rather than hoping for: allow one spare remediation-and-retest cycle. Not as a prediction about your application — as the difference between a plan that absorbs an ordinary outcome and one that escalates to a project board because of it.
What a safe-to-host audit costs, and what drives the number
We are not going to publish a price band on a page, because a number without a scope is a number without meaning — and because the scope drivers above move the figure by more than any rate card does. What we can give you is the pricing model, so that two quotes become comparable and so that you can see which line items a thin quote has left out.
Basis of the quote
Two bases are common. Effort-based pricing counts tester-days against the scope areas — web application, APIs, mobile builds, configuration review — and is the one you can actually compare between bidders. Scope-area pricing quotes a figure per application or per environment and hides the effort inside it. Ask for the effort split even where the commercial is a lump sum. Without it, two quotes are two numbers with nothing behind them.
What must not be in the basis
Any linkage between payment and outcome. The 2025 policy guidelines say it directly: payments should not be contingent upon the outcome of the audit, favourable or unfavourable, nor tied to the submission or approval of any closure report. Fees rest on predefined scopes, deliverables and timelines. A quote priced on “certificate issued” is offering the arrangement the instrument names as a threat to independence.
Usually bundled
The first test pass, the findings report, and one retest against the closed findings. Confirm the retest is included rather than assuming it. The retest is what makes issue possible, so a quote that excludes it is not a quote for a certificate.
Usually billed again
A second and any subsequent retest cycle. A delta test after a post-retest code change. A mobile build added after the scope was signed. A configuration or hosting review where the original scope covered the application only. Ask for each of these as a line item at award, when they are hypothetical and cheap, rather than at the point you need one.
The multi-year tender case
For critical applications or those with high user reach, the policy guidelines suggest contracts be awarded for a period of two to three years — and require the contract to let the auditee stop and switch auditor. That changes the commercial shape: you are buying an annual cycle with follow-up audits inside it, not a one-off certificate, and the follow-up audits should be named in the scope of work rather than assumed.
What the quote should not make you pay for twice
Where the application sits on a platform somebody else operates, the duty to audit the server, its operating system, the hosting software and the backend database software sits with the organisation that owns and operates the server. Ask the platform operator what coverage exists before you buy infrastructure testing that is already somebody else’s obligation.
One cost sits outside the audit altogether and catches departments budgeting for GIGW conformity rather than for the certificate alone. The STQC Website Quality Certification scheme, which is how conformity with GIGW is formally established, states in its own charges note that its fees do not include charges for security audit testing: you avail the services of an empanelled vendor of CERT-In or NIC, or STQC or its empanelled lab, and provide a copy of that certificate when you apply. It also notes that CERT-In empanelled vendors need to register with STQC. Budget the two separately, and check that your chosen auditor is registered where the scheme requires it.
Choosing an auditor who can actually issue
Eligibility is binary. Everything else is judgement. Run the first check before you read a proposal, then use the remaining ten to tell a security audit from a scan with a covering letter. Each carries the instrument it comes from, so you can quote it in a clarification rather than argue it as a preference. The CERT-In empanelment page and the published list of empanelled organisations are where the first check is actually answered.
| What to check | Instrument | Why it matters | What good looks like |
|---|---|---|---|
| Confirm eligibility against the source, not the proposal | GIGW 3.0, guideline 5.3.1 | GIGW 5.3.1 names who may issue: NIC, STQC, an STQC empanelled laboratory, or a CERT-In empanelled laboratory. Anything else is not a safe-to-host certificate however it is titled. Note the vocabulary mismatch while you check — GIGW writes “CERT-In empanelled laboratory”, CERT-In’s own instruments write “empanelled information security auditing organisation”. Same body, two names. | Open the CERT-In empanelment listing and find the organisation by name yourself. Save a dated copy of the listing with the procurement file. |
| Read the wording the auditor uses about CERT-In | Empanelment Terms 4.1–4.2 and Audit Policy Guidelines 10.5 | The empanelment terms permit exactly one sentence: that the organisation is empanelled by CERT-In for providing information security auditing service. No other wording is permitted without prior written permission — for which the proposed wording must be submitted to CERT-In first — and the logo may not be used on publicity or promotional material without it either. | A proposal that decorates itself with the CERT-In logo, or claims to be CERT-In accredited, approved or authorised, is telling you how it treats rules generally. |
| Ask which environment they will test | Audit Policy Guidelines 15.2.3 and Auditor Guidelines v3.0 | The auditor must test on the staging server or testing environment provided by the hosting service provider prior to issuing the certificate, obtain the application hash values and version numbers from you and include them in the report, and specify which environment — test, development, UAT, pre-production or production — the work ran in. | A proposal that assumes production testing has not read the instrument it is working under, and the mismatch will surface at the worst moment. |
| Ask how the work is verified internally | Audit Policy Guidelines 8 and 15.2.5, and Auditor Guidelines v3.0 | A separate verification team is expected to review and validate the work of the audit team — maker-checker, or in the older wording a red team verifying the white team. Both instruments also say plainly that solely tools-based testing should be discouraged. | Ask what the verification step actually is and who performs it. If the answer is the name of a scanner, you are buying a scan with a covering letter. |
| Ask who will be on the team, by name — and check they are declared | Audit Policy Guidelines 10.2, 12.2 and 12.3 | Only manpower declared to CERT-In in the snapshot information form may be deployed, and you are told to verify identity, ID cards and designations. The guidelines are blunt about who may not be fielded: freelancers, interns, freshers, moonlighters, third-party consultants, or employees serving notice. Anyone who has moved between empanelled organisations needs a no-objection or relieving letter. | Names, roles, and confirmation that the named people are the declared ones. A team that changes silently after award is a contractual issue, not a courtesy. |
| Settle the deliverable structure before award | Auditor Guidelines v3.0 and Audit Policy Guidelines 13.2.3 | The structure and contents of the final deliverable are to be finalised with the auditee before commencement, and the pre-commencement communication is expected to cover the type of audit, the report format, the standards, the assets, data handling and retention, and the timeline. | A redacted sample report, and written agreement on the sections, the severity scheme, and the retest letter format. |
| Understand what the auditor will send to CERT-In | Empanelment Terms 3.1.7 and 3.2.2, and Audit Policy Guidelines 10.6 and 13.2.1 | Mandatory: the auditor shares the audit report and audit metadata with CERT-In within five days of completion, in the prescribed format, and reports critical vulnerabilities with auditee details within the same five days where they were raised and not fixed even during follow-up audits. The terms say expressly that this happens without explicit permission of the auditee — and the auditor must tell you so before the assignment starts. | This is not negotiable and should not be negotiated. Know it before signing, so nobody is surprised — and so that unclosed critical findings are understood to carry a reporting consequence. |
| Check the data-handling terms against the rules | Audit Policy Guidelines 10.3 and 16.5–16.6 | Auditee data is held only on systems in India, encrypted on auditor laptops, and wiped after completion so that it cannot be retrieved by any known forensic technique — with a formal certificate of deletion issued to you. Where the agreement is silent, retention runs one year. Nothing goes to an overseas entity or partner without your written authorisation. | A contract clause that repeats those obligations, a named point of contact and deputy, and agreement on who issues the deletion certificate and when. |
| Ask how fees are structured, and refuse a contingent one | Audit Policy Guidelines 7 (Independence) | The sharpest procurement line in the 2025 guidelines, quoted exactly: payments should not be contingent upon the outcome of the audit — favourable or unfavourable — nor tied to the submission or approval of any closure report. Fees rest on predefined scopes, deliverables and timelines, and pressure or undue influence on an auditor is to be escalated to CERT-In. | A fee schedule tied to deliverables and dates. A proposal priced on “certificate issued” is offering you the one arrangement the instrument names as a threat to independence. |
| Agree the test plan in named effort, not in elapsed days | This page’s working rule, anchored in Audit Policy Guidelines 7 and 13.1.7 | No instrument prescribes a unit of estimation, but the guidelines require fees to rest on predefined scopes, deliverables and timelines, and the contract to carry a plan with tasks and reporting requirements. Elapsed days are not effort: two proposals that both say “five days” can differ threefold in tester-days on your application. | Effort by test area — web application, APIs, mobile builds, configuration review — with the named testers against each, plus the retest cycles included. That is a comparable quote. “Five days” is not. |
| Fix the escalation path for high-risk findings | Audit Policy Guidelines 16.3 and 16.4 | Critical and high findings must be notified during the course of the audit, as and when found, and again in the final outcome report — high-risk vulnerabilities immediately on discovery, with a practical recommended solution. | A named phone number on your side and a named one on theirs, agreed at kick-off. This path gets used at 9pm or not at all. |
The one sentence an empanelled auditor is permitted
“This Organization is empanelled by CERT-In for providing information Security Auditing Service”
That wording appears identically in three instruments: clause 4.2 of the empanelment terms, section 10.5 of the 2025 audit policy guidelines, and the 2018 auditor guidelines. All three add that no other words shall be used to describe the auditor’s relationship with CERT-In without prior written permission — for which the proposed wording and presentation must be submitted to CERT-In first — and that the CERT-In logo may not be used on publicity material, promotional material or a product without that permission either. Use it as a procurement filter: a firm advertising itself as CERT-In approved, CERT-In accredited or CERT-In authorised is describing a relationship in words the instrument does not permit, and doing it in public.
Documents required before testing can start
Eleven things must exist before the first packet is sent. None of them is optional, all of them take time from somebody outside the engineering team, and every one of them carries the clause it comes from. Put this block on the plan as its own swimlane and start it while the application is still being built. CERT-In publishes a model non-disclosure agreement you can hand to legal on day one, which removes the most common reason this block runs late.
| Non-disclosure agreement | Empanelment Terms 3.1.10 and Audit Policy Guidelines 13.1.7 | Signed before commencement of the project and legally enforceable. The terms say in their own words that the CERT-In model NDA may be customised as per project or organisation requirement — and CERT-In publishes that model, so legal has a starting document on day one. |
| Scope defined by the auditee | Audit Policy Guidelines 9.6.i and 13.1.1 | The complete audit process must be undertaken by the auditee organisation itself and must not be delegated, and the scope is derived from a consolidated, updated asset inventory and vetted by internal audit in consultation with the CISO. A scope the auditor wrote and you approved by silence is where the later argument starts. |
| Contractual access clauses | Empanelment Terms 3.1.4 and Audit Policy Guidelines 13.1.7 | The contract must expressly permit the auditor access to the system and permit the association of CERT-In representatives if needed. The policy guidelines add a content list for the same contract: audit criteria or standard, a plan with timelines, tasks, documentation and support expected, reporting requirements, and a revalidation clause pegged to your own compliance window. If your standard template lacks those, legal review is on the critical path. |
| Written authorisation to test | Auditor Guidelines v3.0 and Empanelment Terms 9.1 | Written approvals before any penetration testing or tool installation. The empanelment terms list involvement in any assessment, unannounced access or penetration without the target entity’s prior written consent as a ground for terminating empanelment — which is why a verbal go-ahead is not a go-ahead, for either side. |
| Deliverable structure agreed | Auditor Guidelines v3.0, Technical | The structure and contents of the final deliverable are finalised with the auditee before commencement. Agree the severity scheme here too, because the report’s closure timelines are expressed against it. |
| Audit team approved | Auditor Guidelines v3.0, and Audit Policy Guidelines 10.2 and 12.2 | The audit team is shared with the auditee and documented approval obtained before formal commencement. Only manpower declared to CERT-In in the snapshot information form may be deployed, and the auditee is expected to verify identities, ID cards and designations rather than take the list on trust. |
| Tool list and licence confirmation | Auditor Guidelines v3.0, Technical | A list of tools to be installed, plus written confirmation that using them violates no IPR or licence norms. Tools go in with your system administrator present and come out on completion, with your acceptance of the removal. |
| Expectation gap closed | Auditor Guidelines v3.0, Process | The guidelines name the expectation gap and put the duty to close it on the auditor: explain upfront the audit process, the collection of artifacts and the deliverables. Use that. A kick-off answering what is tested, how, when, by whom, what you provide and what you receive removes most of the friction that follows. |
| Point of contact named | Empanelment Terms 3.1.9 and Audit Policy Guidelines 16.5 | The audit outcome goes only to the specified point of contact, by secure methods, from official email addresses, password-protected or encrypted. Name the person and a deputy. A report that lands in a shared inbox is a disclosure problem of your own making. |
| Rules of engagement for restricted tests | Audit Policy Guidelines 13.2.7 and 15.2.2, and Empanelment Terms Annexure I | For remote and higher-risk work the testers’ identity, mobile number and source IPs are disclosed, and written permission is required before survivability failure tests, denial-of-service testing, process testing or social engineering. Distributed denial-of-service testing over the internet and any form of flood testing are excluded outright. |
| A statement that the application was built securely | Audit Policy Guidelines 8.viii and 9.4 | Read this before you award. An application developed without any secure design and development practices should not be considered for assessment and audit, and where that is the case the auditor informs the auditee in writing with a copy marked to CERT-In. The same guidelines require secure-by-design practices in the RFP in the first place. |
One clause in that list catches organisations by surprise more than the rest. The contract must expressly permit not only the auditor’s access to the system, but the association of representatives of CERT-In during audit assignments where needed — and clause 8.1 of the empanelment terms lets CERT-In review audit work and qualifications, carry out sample analysis, depute representatives to witness an audit, and seek the opinion of auditee organisations, because continued empanelment status depends on the quality of auditing services rendered. The auditor guidelines put the same point from the other side: CERT-In can be part of the audit team to assess the quality and maturity of the audit, and that should be communicated to the auditee. None of this makes CERT-In a party to your contract — clause 2.1 excludes that expressly — but it does mean your standard IT services template probably needs a clause it does not have.
Scoping the URLs, roles and environments
The duty here is yours, and the 2025 policy guidelines are direct about it: the complete audit process must be undertaken by the auditee organisation itself and must not be delegated, and the scope is derived from a consolidated, updated asset inventory vetted by the internal audit team in consultation with the CISO. The auditor helps identify the scope of work — help, not decide. Build it from systems rather than from memory: hostnames from DNS, roles from the application’s own role table, endpoints from the API specification, integrations from the architecture diagram. A scope assembled that way takes an afternoon and survives the first test pass. One assembled in a meeting takes twenty minutes and produces the mid-test renegotiation that costs a week. The inventory this scope is cut from, the role and credential matrix, the exclusion register and the rules-of-engagement gates are all worked through at length in scoping a VAPT so the result means something.
The scope document, field by field
This document reappears in the report as the terms of reference, so it is worth writing properly once. Twelve fields, each with a filled example. Copy it, fill it, and have the technical owner and the auditor’s engagement lead sign it before the window opens.
| Field | Filled example | Why the field exists |
|---|---|---|
| Application name and version | Grievance Redressal Portal v4.2.0 (build 4.2.0-rc7, commit 9f2ad41) | The certificate names a build. Nothing downstream works if this field is “the portal”. |
| Auditee organisation | Directorate of X, Government of Y — the body that will own and host the application | Not the development agency and not the hosting provider, even where one of them ran the procurement. |
| Production hostnames | grievance.dept.gov.in, admin.grievance.dept.gov.in, api.grievance.dept.gov.in, cdn-assets.dept.gov.in | Enumerated from DNS, not from memory. The admin hostname is the one most often absent. |
| Test environment hostname and access path | staging-grievance.dept.gov.in, reachable over the internet from allowlisted auditor source addresses | This is the environment the certificate will name. It has to exist as a written fact before the window opens. |
| Roles, with counts of test credentials | Anonymous, Citizen (2 accounts), Dealing Assistant (2), Section Officer (2), Content Editor (2), Super Admin (1) | Two accounts in the same role are what make horizontal authorisation testing possible. |
| APIs and specification reference | OpenAPI 3.1 spec at /docs/openapi.json covering 61 endpoints, and 4 internal endpoints listed separately | An API without a specification is tested shallowly or not at all. |
| Mobile builds | Android APK 4.2.0 (versionCode 420), iOS IPA 4.2.0 (build 1180), both pointed at the staging backend | Named as artefacts with build numbers, or they are not in scope however often they are mentioned. |
| Third-party integrations and sandbox status | Payment gateway — sandbox credentials issued 12 Mar. SMS gateway — sandbox pending, owner named. e-Sign — out of scope this cycle | Each integration is a dependency with its own owner and its own approval clock. |
| Explicit exclusions, each with a reason | Legacy 2019 subsite at old.dept.gov.in — scheduled for decommissioning 30 Jun, not hosted under this release | An exclusion nobody wrote down is not an exclusion. It is an omission, and it surfaces when an evaluator asks. |
| Data in the test environment | Masked copy of production, 40,000 synthetic grievance records, no live personal data. Masking approved by the named data owner | Real personal data in staging pulls the auditor’s India-only storage, encryption and forensic-wipe duties onto a test environment. |
| Restricted tests, permitted or not | Denial-of-service exploitation: not permitted. Social engineering: not in scope. Process testing: not in scope. | These need written permission where they are wanted, and a written refusal is just as useful as a written permission. |
| Signatures and date | Technical owner and auditor engagement lead, both signed, dated before the test window opens | An unsigned scope is a conversation. A signed one is the document the report’s terms of reference will reproduce. |
Integration sandboxes: open them here, not at stage 05
This is the dependency that most often lands mid-window, and it lands there because it was treated as configuration when it is actually an approval granted by a body outside your department. Raise every one of these while you are writing the scope, and record the request date in the scope document against the integration it belongs to. None of these is governed by a CERT-In or GIGW instrument — they are simply the approvals an Indian government application tends to need, each with its own owner.
Aadhaar-based authentication (AUA/KUA sandbox)
Sponsorship and onboarding paperwork precede any credential. Treat it as the longest item on the list and open it first.
DigiLocker
Partner registration, then sandbox keys, then a callback URL that has to be registered for the staging hostname specifically.
Payment gateway (PayGov, a bank gateway or an aggregator)
Merchant onboarding is a finance decision before it is a technical one. The staging callback URL needs registering separately from the production one.
SMS (DLT-registered sender and templates)
Header and template registration are per-template. A staging environment that sends an unregistered template silently fails, which reads as a broken OTP flow rather than a registration gap.
e-Sign / digital signature service
Sandbox access usually needs the agreement in place first, so it inherits the contracting timeline rather than the engineering one.
Bhashini or another language service
API keys are scoped to a registered application. Register the staging application as its own entry.
Who provides the staging server, and what it must look like
This is the deliverable nobody puts on a plan and everybody waits for. The instrument names a role — the hosting service provider — and leaves you to work out who that is on your project. Eight requirements below, each with the failure it prevents, then the four shapes the hosting service provider actually takes in Indian government practice and how the request differs in each.
| Aspect | Requirement | What it prevents |
|---|---|---|
| Application build | The build you intend to ship. Tag it, record the commit or release number, and freeze it for the duration of the test window. | A build that moves during testing produces findings that cannot be reproduced and a report that describes nothing that exists. |
| Provisioned by | The hosting service provider’s staging or testing environment. The guideline points at that environment specifically. | A developer laptop, a shared UAT instance on someone else’s cloud account, or a demo site are not it. |
| Configuration parity | Same web server, same application server, same database engine and version, same TLS configuration, same security headers, same WAF policy as production will run. | Configuration findings are among the most common. Testing a differently configured environment produces findings that do not apply and misses the ones that do. |
| Data | Synthetic or masked data by default, at realistic volume and shape. Where real data is unavoidable, decide and record who authorised it. | Volume matters: an empty list view hides the pagination flaw, and a five-row table hides the export that times out. |
| Test accounts | At least two working accounts per role, created and verified the day before the window opens, with password-reset and multi-factor flows usable. | Two accounts per role is what makes horizontal privilege testing possible — one user trying to read another user’s record. |
| Logging and monitoring | Application and server logs on and retained for the window, so that a reported finding can be corroborated from your side. | This is also a rehearsal for a live obligation. The 2022 CERT-In Directions require logs of all ICT systems to be enabled and maintained securely for a rolling period of 180 days, within Indian jurisdiction, once you are live. |
| Named engineer | One person who can restart a service, restore a test account and answer a question within the hour, rostered for the window. | The difference between a five-day test and a nine-day test is usually the availability of this one person. |
| Rollback and snapshots | A snapshot before testing begins and a documented way to restore it, since testing will create, modify and occasionally corrupt data. | Restoring staging mid-window without a snapshot means rebuilding the test accounts and the data set, and losing a day. |
One question deserves a deliberate answer rather than a default: whether staging holds real data. The comfortable answer is synthetic or masked data at realistic volume. The moment a production database is restored into staging, the auditor’s data-handling duties — India-only storage, encryption, forensic-grade wiping, a deletion certificate — attach to an environment that was probably not built for them. Those obligations are the auditor’s, but the decision to make them necessary is yours, and it should be recorded with a name against it.
Four kinds of hosting service provider, four different requests
The guideline says “hosting service provider” and stops there — it names a role, not a body. The four rows below are our own operational reading of what that role turns out to be on an Indian government project, offered as a planning aid rather than as anything published: each has a different request path, a different nodal owner and a different set of things it will not do. Work out which one you are dealing with before you promise a date.
| Provider | Who you raise it with | What to ask for | What drives the wait | What they will not give you |
|---|---|---|---|---|
| NIC | Your department’s NIC coordinator or the NIC officer who administers the existing hosting, through the nodal officer named on your hosting request. | A staging or testing instance at production parity for the named application, reachable by the auditor’s stated source addresses, with the build you intend to ship deployed to it and a named engineer for the window. | Internal approval hops, the existing hosting arrangement for the department, and whether the request is treated as a change to an existing service or as a new provisioning. | Free rein over infrastructure configuration, or production credentials. Where the server, the operating system, the hosting software and the database are theirs, the 2025 policy guidelines put the duty to audit those with the organisation that owns and operates the server — so ask what audit coverage already exists for the platform rather than asking to test it yourself. |
| State Data Centre | The SDC operations team through your department’s nodal officer, usually with the state IT agency copied in. | The same parity instance, plus a written statement of which layers are managed by the SDC and which by your application team — that split becomes the scope boundary. | Queue depth at the SDC, whether a network or firewall change is needed for auditor access, and whether the managed-service contract already covers staging. | Configuration exports on request without an approval, in most cases. Ask for them in writing at the start rather than on the day the auditor needs them. |
| MeitY-empanelled cloud service provider | The system integrator or managed-service partner who holds the account, not the cloud provider directly. | A separate staging account, project or subscription that mirrors production configuration, with allowlisting at the CDN, WAF and security-group layers for the auditor’s source addresses. | Commercials — a parity environment costs money, and somebody has to approve it — plus the lead time for the integrator to build it. | Parity for free. Where full parity is unaffordable, agree in writing which differences exist and record them in the scope. The report has to state the environment anyway. |
| A shared government platform | The platform’s own operations team, through whatever service-request channel the platform publishes. Your department is a tenant, not an operator. | What test instance the platform offers tenants, what the platform’s own audit coverage is, and who fixes a platform-level finding. | Entirely the platform’s change process. You cannot compress it and you cannot route around it. | A dedicated environment, usually. Plan on the assumption that the platform layer is audited by its operator and your scope is the content, configuration and any custom code you own — and get that division written down before the auditor quotes. |
The pre-test connectivity check
Run this two working days before the window opens, not on the first morning. Everything on it is owned by somebody who is not in the audit meeting, which is precisely why it fails at the worst possible time when it is left to the day.
- 01 Auditor source addresses allowlisted at every layer that can drop traffic — CDN, WAF, load balancer, and the security group or firewall in front of the application.
- 02 WAF set to detection-only for those sources for the window, or a documented bypass header agreed with the auditor. Record the decision. An audit performed through a blocking WAF tests the WAF, not the application.
- 03 Rate limiting and bot protection exempted for the auditor’s sources, or relaxed by a stated factor. A throttled scan produces a thin report and an argument about coverage.
- 04 Account lockout thresholds raised or lockout disabled for the test accounts, so that credential and authorisation testing does not lock out the very users the auditor needs.
- 05 DNS resolution and egress verified from the auditor’s stated origin, not from your own office network — they are not the same path.
- 06 One captured round-trip request and response, shared both ways, as evidence that the path works end to end before the window opens.
- 07 A named engineer and an out-of-hours number, because the moment this check fails is usually the first morning of the window.
Two of those need a decision rather than a configuration change, and both should be recorded. Relaxing the web application firewall for the auditor’s sources is a deliberate choice: leave it blocking and the audit measures your firewall rather than your application. Turn it off entirely and you have tested an application that will never run that way. Detection-only for the auditor’s addresses, with the WAF itself reviewed separately, is the honest middle. And the same reasoning applies to rate limiting: a throttled scan produces a thin report, and a thin report produces a limitations section an evaluator will read.
Does the mobile app need its own certificate?
Short answer: it needs to be in a scope and named in a report, and whether that is the same certificate or a second one depends on how you scoped it — not on how the app was built.
GIGW 5.3.1 covers a mobile app in exactly the same breath as a website, a web application and a web portal: security audited, with an audit clearance certificate issued by NIC, STQC, an STQC empanelled laboratory or a CERT-In empanelled laboratory before hosting in production. The government-organisation action under that statement names OWASP Top 10, OWASP ASVS and OWASP MAVS. The 2025 CERT-In policy guidelines treat mobile application audit as an engagement type in its own right and name OWASP MSTG among the applicable standards. So the requirement is settled. Only the packaging is a choice.
What changes in practice is the scope line and the effort. Android and iOS are two artefacts, and each is tested as a build rather than as a URL: the auditor needs the installable file with its version and build number, the backend it points at — which for a pre-go-live audit is the staging backend, not production — and either test devices or instructions for an emulator. Testing covers the client side as well as the transport: what the app stores locally, how it protects the session between launches, whether certificate handling can be downgraded, and whether an API that the web front end guards is equally guarded when the mobile client calls it. That last one is where a surprising number of authorisation findings live.
The sequencing mistake to avoid is scoping the web application now and the app “when it is ready”. If the app ships with this release, it belongs in this scope, this window and this certificate. If it ships later, it needs its own engagement, and the version and build number in your scope document is what makes the two documents tell a consistent story afterwards.
The first test pass, and its limits
What happens during the test window is more constrained than most buyers expect, and the constraints are useful to know because several of them are things you might otherwise ask for. Nine things to understand before the window opens, each with the instrument it comes from.
| What the pass is built from | Audit Policy Guidelines 8 and Auditor Guidelines v3.0 | Industry-standard methodologies and best practices for security testing, not tool output alone — both instruments say solely tools-based testing should be discouraged. In practice that means authenticated manual testing of business logic and authorisation alongside automated discovery. |
| The standards the work is measured against | Audit Policy Guidelines 8 and the GIGW 3.0 cybersecurity chapter | GIGW’s cybersecurity chapter tells the government organisation to ensure the hosting provider and the developer adhere to practices such as ISO 27001, OWASP ASVS, OWASP Top 10 and CIS benchmarks. The 2025 CERT-In policy guidelines name a longer list — ISO/IEC standards, the CERT-In Cyber Security Audit Baseline Requirements, the CSA Cloud Controls Matrix, OSSTMM 3, the OWASP Web Security Testing Guide, ASVS, MSTG and the DevSecOps Maturity Model — and carry a nuance most vendor pages get backwards: limited lists such as the OWASP Top 10 and SANS Top 25 should not be considered as standards or references for audits. So a proposal whose methodology is “we test the OWASP Top 10” has named a checklist, not a standard. |
| The ASVS level nobody specifies | This page’s working rule. GIGW names ASVS without a level | GIGW names OWASP ASVS but no verification level, and ASVS has three. Level 1 is the lowest, fully testable from outside. Level 2 is for applications handling sensitive data and the level suited to most government services. Level 3 is for applications needing the highest verification. Because the guideline is silent the level is the department’s choice, and it belongs in the scope of work — with the version, because the definitions were restructured between ASVS 4.0.3 and the current 5.0.0. |
| Verification of the 2022 CERT-In Directions | Audit Policy Guidelines 15.2.1.iv | The requirement most buyers have never heard of, and it changes what you are buying: the auditing organisation must include verification of compliance with the CERT-In Directions of 28 April 2022 in every audit assignment, with findings and evidence in the report. So log retention, clock synchronisation and the point of contact are not only post-go-live duties — they are inside the audit scope by default. |
| Internal verification | Audit Policy Guidelines 15.2.5 and Auditor Guidelines v3.0 | A separate verification team reviews and validates the work of the audit team — maker-checker, or in the older wording a red team verifying the white team. Ask how that step is evidenced. It is the difference between one person’s opinion and an organisation’s finding. |
| What is excluded outright | Empanelment Terms Annexure I, items 17–18, and Auditor Guidelines v3.0 | Distributed denial-of-service testing over the internet, and any form of flood testing. Do not ask for either. An auditor who agrees is not reading the same instrument you are. |
| What is excluded unless separately permitted | Audit Policy Guidelines 13.2.7 and 15.2.2 | Explicit written permission is required before denial-of-service or flood testing, survivability failure tests, process testing or social engineering. Social engineering runs by anonymised or statistical means against personnel inside the agreed scope only, with nobody individually identified or penalised, and never against customers, business partners, vendors or other third parties without specific written consent. And in critical environments where availability is the priority, testing is to be conducted in a passive manner to avoid downtime or service disruption. |
| Immediate escalation | Audit Policy Guidelines 16.3 and 16.4 | Critical and high findings are to be notified to you during the course of the audit on an as-and-when-found basis, and high-risk vulnerabilities reported immediately on discovery with a practical recommended solution. If you hear about a critical finding first in the report, the process was not followed. |
| What the auditor does about what it cannot reach | Audit Policy Guidelines 10.1.ii | In-scope assets the auditor could not access must be named in the report with the reasons — and brought to the notice of CERT-In. An inaccessible asset is therefore not a quiet omission. It is a reportable fact, which is a good argument for fixing access before the window rather than during it. |
Read the first two rows together and you have the plainest procurement test in the whole instrument set: a published expectation that testing is not tool output, and a published warning against treating the OWASP Top 10 as a standard. Between them they give you a basis for rejecting a methodology section that is a list of scanners, without having to argue taste. For the adjacent question of what testing a non-government organisation buys under the same umbrella, see safe-to-host versus a security audit certificate, and for the testing service itself, penetration testing and VAPT.
What the findings report must contain: fourteen items
Annexure II of the CERT-In empanelment terms sets out an audit report content format, and it is unusually concrete for a governance document. The 2025 audit policy guidelines extend it. Together they give you an acceptance checklist for the day the report lands — and a procurement checklist for the day you award, because the deliverable structure is supposed to be finalised with you before the project begins. Every row carries the instrument it comes from so you can quote it rather than assert it.
| Required content | Instrument | What to look for when you accept it |
|---|---|---|
| Identification of the auditee | Empanelment Terms, Annexure II | Organisation name, address and contact information, matching the entity that will host the application — not the development agency that commissioned the work on your behalf. |
| Dates and locations of the audit | Empanelment Terms, Annexure II | The actual test dates, which an evaluator can compare against your release date and against the certificate. A gap here is the first thing a careful reviewer notices. |
| Terms of reference, including the standard for the audit | Empanelment Terms, Annexure II | As agreed between auditee and auditor. This is where the scope document you signed reappears — which is why an unsigned scope produces an argument at exactly this point. |
| The audit plan | Empanelment Terms, Annexure II | What was planned. Where the plan changed mid-engagement, the change should be visible rather than silently absorbed. |
| Explicit reference to key auditee documents, by date or version | Empanelment Terms, Annexure II | Policy and procedure documents relied on during the audit. Version identifiers matter: a policy referenced without a version cannot be tied to what existed at the time. |
| Additional mandatory or voluntary standards or regulations applicable | Empanelment Terms, Annexure II | For a government application this is where GIGW 3.0 belongs, alongside anything sector-specific. |
| Summary of findings, including identification tests, tools used and results | Empanelment Terms, Annexure II | The tool names matter: they let a reviewer judge coverage, and they make the work reproducible. |
| Analysis of vulnerabilities and issues of concern | Empanelment Terms, Annexure II | The analysis, not just the list. This is the section that distinguishes a security audit report from a scanner export with a cover page. |
| Recommendations for action and follow-up audits | Empanelment Terms, Annexure II | What to fix, and what the follow-up looks like. Where the follow-up audit is not in the contract it will not happen on the contract’s money — the 2025 guidelines tell auditees to put follow-up audits in the scope of work or the RFP. |
| Personnel involved, including identification of any trainees | Empanelment Terms, Annexure II | Compare this against the team you approved before commencement. That is the point of approving it. The report itself is signed by the auditors who did the work, reviewed and signed by a mid-management reviewer outside the audit team, and finally authorised and signed by the head of the auditing organisation. |
| Duration, methodology, manual process, prioritisation, sampling, exemptions and limitations | Audit Policy Guidelines 16.1.ii | The 2025 guidelines extend the older list. Sampling decisions and stated limitations are the two that repay reading: they tell you what the audit did not look at, which is the question an evaluator will eventually ask you. |
| Severity by CVSS, exploitation likelihood by EPSS, and every finding mapped to CWE and CVE | Audit Policy Guidelines 16.2.ii | Severity is not the auditor’s adjective. Where a report gives you “High” with no CVSS vector, ask for the vector — and where a finding has no CWE mapping, ask what class it belongs to. Both are required, and both make the finding arguable on its merits. |
| Application hash values, version numbers and timestamps | Audit Policy Guidelines 9.5.i and 15.2.3.ii | The hash and version are captured by you, obtained by the auditor, included in the report and featured prominently on the certificate. They are what tie the document to a build — and the reason the guidelines also tell developers to avoid code changes to the audited application after the certificate issues. |
| A statement where the audit did not reach production | Audit Policy Guidelines 16.3.v | The sentence that separates the safe-to-host case from the general one: the final report is to be issued after closure and completion of the follow-up audit on production, and where the scope is limited to staging the report must explicitly state that the audit was not conducted on production. For a pre-go-live certificate there is no production yet, so expect that sentence in your report — and expect a post-go-live confirmation pass to be discussed. |
Eight quality rules the report is expected to meet
Contents are one thing. Quality is another, and the published expectations cover that too. These eight come from the process expectations in the auditor guidelines, the auditee expectations at Annexure I of the empanelment terms, and the reporting section of the 2025 policy guidelines. They are the difference between a report you can act on and a report you have to interpret.
Unknowns are marked as unknowns
Reports are expected to include all unknowns clearly marked as unknowns. An area that could not be tested — a blocked integration, an unavailable role — appears as an unknown, not as nothing.
All states of security are stated, not only failures
Reports are expected to state clearly all states of security found, and not only the failed security measures. A report that lists twelve findings and says nothing about what was tested and found sound is half a report.
Risk metrics rest on a method, not on a judgement call
The expectation is quoted almost exactly: only qualitative metrics based on industry-accepted methods, based on a mathematical formula and not on the feelings of the auditor. The 2025 guidelines name the formula — CVSS for severity, EPSS for real-world exploitation likelihood. Ask which vector produced a severity. If it cannot be explained, it cannot be argued with either.
Observations are supported by objective evidence
All observations made during the audit are to be well supported with objective evidence, compiled with the report and presented so that decision makers can make credible risk-based decisions from them.
Working notes and evidence are available to you
The guidelines tell the auditee to make a contractual provision for working notes and to ask for evidence as an appendix to the final report. Put it in the contract. Asking for working notes after a disputed finding is a conversation nobody enjoys.
Recommendations are implementable
Suggested controls and remedies are expected to be practical and implementable. A recommendation to re-architect authentication two weeks before go-live meets the letter and fails the test.
Closure timelines are stated by severity
The report must state closure timelines by severity. Note precisely what the instruments do and do not do: they require the timelines to be stated, and leave the numbers to be set — so the numbers come from your own security policy and the contract, not from a universal table.
The environment is named
The environment — test, development, UAT, pre-production or production — must be specified. For a safe-to-host engagement that sentence is doing real work: it is the evidence that the staging-environment rule was followed.
The closure-timelines rule is the one most often misreported elsewhere, so it is worth one precise sentence. The instruments require the timelines to be stated, but they publish no table of days per severity, and any page presenting one as a CERT-In requirement is inventing it. Settle your own numbers in procurement while they are abstract, because settling them after the findings exist turns a policy question into a negotiation about one specific embarrassing finding.
Remediation and severity-based closure
Severity does two jobs at once: it sets the order of work, and it sets the standard of proof the retest will apply. The framework below is how to read one. Read the fourth column carefully — it is where severity stops being a label and starts having consequences outside your organisation.
| Severity | What sits here, before go-live | The decision available to you | What follows if it stays open |
|---|---|---|---|
| Critical | Unauthenticated remote code execution, authentication bypass, exposure of personal data at scale, or anything giving full unmonitored access. Pre-go-live these are not risks to be accepted. They are reasons the application is not ready. | No route to acceptance. Fix, redeploy to staging, retest. If the fix is architectural and the date is immovable, the honest outcome is a smaller launch scope, not a launch with the finding open. | This is the row with a consequence outside your organisation. A critical raised during the audit and still unfixed even through follow-up audits is reportable by the auditor to CERT-In together with your details, within five days of completion of the audit. |
| High | Privilege escalation between roles, injection reachable by an authenticated low-privilege user, insecure direct object references over sensitive records, stored cross-site scripting in an administrative view. | Fix before issue in almost every case. A compensating control substitutes for a fix only where it passes three tests: it lives in the environment that was tested, it cannot be bypassed from the same position the finding was exploited from, and its own failure is detectable. Fail any one of those and it is a mitigation, not a closure — and the auditor is entitled to record it that way. | Highs left open are what turn one retest into three. They are also the findings most likely to be re-found because the fix went to a branch and not to staging. |
| Medium | Missing security headers, weak session or cookie attributes, verbose error handling, outdated components without a known exploited path, weak password policy, missing rate limiting. | Usually fixable inside the remediation window because most are configuration rather than code. Batch them: a single configuration change often closes four findings at once. | Deferred mediums accumulate into the next audit. GIGW 5.3.1 puts periodic auditing of the web application on the developer at least once a year, or whenever changes are made to the source code, whichever is earlier — and the 2025 policy guidelines require an audit before every major change. Nothing deferred stays out of sight for long. |
| Low | Informational disclosure such as server version banners, missing hardening flags with no direct exploit path, cosmetic issues in error pages. | Fix the cheap ones now because they are cheap, and carry the rest with a dated, owned entry in the risk register. Low does not mean invisible. | A register of accepted lows with named owners and review dates is a sign of a mature programme. A register with no owners is a list of things nobody will do. |
| Informational or unknown | Observations, hardening opportunities, and — importantly — areas the auditor could not test. The latter belong here rather than nowhere. | Decide explicitly what to do with untested areas: extend the window, supply the missing sandbox or credential, or accept in writing that the area is uncovered. | An untested area that is never resolved becomes a gap in the coverage of the certificate, discoverable by anyone who reads the scope section of the report. |
What closure evidence actually looks like
A retest goes faster when every finding arrives with the evidence of its own closure attached, and the shape of that evidence is the same whatever the finding class. Four artefacts per finding. The change itself — a code diff, a configuration export, a version manifest. The staging deployment reference that proves the change is in the environment the auditor will test. A reproduction of the auditor’s original request now failing, captured as request and response. Where a fix changed behaviour, a note of what to regression-check. Assemble these during remediation, not after the retest is booked.
The finding classes themselves — what recurs before go-live, why, and what closes each one — are worked through on why applications fail safe-to-host, which is the page to hand your development agency on the day the report lands.
Two sequencing notes save more time than any individual fix. First, batch the configuration findings and deploy them together on day one of the remediation window: headers, cookie attributes, error handling, banner suppression and default-path renaming are usually one change request between them, and closing eight findings on day one makes the remaining list legible. Second, start the architectural findings immediately even though they finish last, because an authorisation redesign discovered on day one of a three-week window is survivable and the same finding discovered on day twelve is not. The order that feels natural — easiest first, hardest last — is exactly backwards for anything that needs design time.
The risk acceptance, field by field
Every page tells you to write a risk acceptance and almost none of them says what goes in one or who may sign it. The signature is settled by the 2025 policy guidelines: risk treatment must be authorised and accepted by the head of the auditee organisation, and exceptions authorised by the head of the organisation, who is the owner of the application. The rest is a template — this one, with an example in each field.
| Field | Filled example | What makes it valid |
|---|---|---|
| Finding identifier and report reference | SH-2026-014, first findings report v1.0 dated 12 May 2026, section 4.3 | One acceptance per finding. A blanket acceptance covering “the remaining mediums” is not reviewable and will not survive the next audit. |
| Risk statement in business terms | A signed-in user of one district office could retrieve grievance attachments belonging to another district by altering the document identifier in the download URL. | Write what could happen to whom. A restatement of the technical finding is not a risk statement and gives the signer nothing to weigh. |
| Severity, with the vector that produced it | High — CVSS v3.1 base 7.5, vector recorded in the report, CWE-639 | Carry the auditor’s severity across unchanged. If you disagree with it, that is a dispute to have before the acceptance, not inside it. |
| Why it is not being fixed now | The fix requires an authorisation-layer change across 31 endpoints, estimated four weeks against a statutory launch date of 30 June. | Cost, time or dependency — stated plainly. “Low priority” is not a reason. It is the absence of one. |
| Compensating control, if any | Attachment downloads restricted to the requesting district by a gateway rule, with alerting on any cross-district request. Rule deployed to staging on 14 May and verified by the auditor at retest. | Apply the three tests: in the tested environment, not bypassable from the same position, and its failure detectable. Otherwise write “none”, which is an honest field value. |
| Accepting authority, by name and post | Head of the auditee organisation, as the owner of the application | Not the project manager, not the vendor, not the consultant. Where the finding is a High or a Critical there is no lower signature that means anything. |
| Date accepted and review date | Accepted 18 May 2026. Review 18 August 2026, and in any case at the next audit | An acceptance with no review date is a decision to forget. The review date is what turns it back into a ticket. |
| Expiry condition | Expires on the earlier of the review date, the next release that touches the attachment service, or the annual audit. | Tie expiry to a release trigger as well as to the calendar, for the same reason the certificate itself is tied to both. |
What a pre-audit review looks at
A pre-audit review is not a rehearsal of the audit and it is not a second opinion. It is a deliberately narrow pass over the six defect classes that need design time rather than a patch, run early enough that finding one is a planning event rather than a crisis. It has no standing in any instrument. Its only justification is arithmetic. A finding that needs three weeks of design, discovered before the audit, costs three weeks of development. The same finding discovered in the findings report costs three weeks of the launch date.
The authorisation model
Every object access, checked server-side against the acting user rather than against a client-supplied role. Horizontal access between two users in the same role, and vertical access from a low-privilege role into an administrative function.
Why here Authorisation defects are the class most likely to need design time rather than a patch, so they are the class you most want found before the audit rather than during it.
Session lifecycle
Session identifier regeneration on login and on privilege change, idle and absolute timeouts, invalidation on logout and on password change, cookie attributes on every hostname including the admin one.
Why here Cheap to fix, embarrassing to find in a report, and almost always inconsistent across a portal that grew a second front end.
File upload and storage
Type and content validation server-side, storage outside the web root or behind an authorisation check, filename handling, and what happens when the uploaded file is requested back.
Why here Government portals take documents from citizens. This path is both the most used and the most often left to the framework’s defaults.
Payment and callback verification
Server-to-server verification of every gateway callback, replay protection, and amount re-checked against the order rather than trusted from the callback.
Why here A callback trusted on its face is a finding with a direct financial consequence, and it is not visible from the front end at all.
Secrets handling
Credentials, connection strings, tokens and keys out of source control and configuration files, and rotated where they were ever committed.
Why here Removal from the current file does not remove a secret from history, which is why this is a rotation exercise rather than a deletion one.
Tenant and department separation
Where one deployment serves several departments, offices or districts, whether a user of one can reach the records of another by identifier manipulation.
Why here Shared deployments are common in government and the separation is usually enforced in the query rather than in the authorisation layer, which is exactly one missing clause away from a breach.
One boundary to hold while doing it. CERT-In’s 2025 guidelines define conflict of interest to cover the same entity implementing controls and auditing them, or auditing while responsible for remediation. A pre-audit review sits firmly on the remediation side of that line, which is exactly why the organisation that runs it must not be the organisation that later signs the certificate. Where the two are the same, you have bought a rehearsal marked by the examiner.
The retest, and its six outcomes
The retest is the event that makes issue possible, and it has more than one ending. Only the first row below ends in a certificate on the first attempt. The others are ordinary, and a plan that allows for one extra cycle absorbs them without drama.
| What you bring to the retest | What the auditor does | Where it ends |
|---|---|---|
| All findings closed and deployed to staging | The auditor re-runs the specific tests behind each finding, plus regression checks where a fix changed behaviour, and confirms closure. | The retest letter or updated report records closure, and the certificate can issue. This is the only path that ends in a clean certificate on the first retest. |
| Fixes made but not deployed to the tested environment | The auditor re-finds the original findings, because the environment they are testing has not changed. | A wasted cycle, and the most common one. Confirm the staging deployment reference and the build number before booking the retest, not after. |
| Partial closure with criticals or highs open | The auditor records what closed and what did not, and a further remediation and retest cycle follows. | Normal, and survivable if the plan allowed for it. Where critical findings remain open through follow-up audits, the auditor has a reporting obligation to CERT-In that runs regardless of your preference. |
| A fix introduced a new vulnerability | The new finding is raised in the retest. Rushed fixes to authorisation and input handling are the usual sources. | Treat the new finding on its own severity track. Do not assume a retest cannot make things worse — regression is exactly why the retest includes it. |
| Scope changed between the test and the retest | A module was added, an integration switched, a new hostname appeared. The retest does not cover what was never in scope. | Either extend the scope formally and test the addition, or ship without it and state plainly that it is uncovered. Quietly launching an untested module is the failure mode this whole process exists to prevent. |
| The build moved after the retest | Code changed between retest and go-live, so the certificate describes a build you are no longer shipping. | A delta test over the changed components. This is not an exception to the rule, it is the rule arriving early: GIGW 5.3.1 requires re-auditing as and when changes are done to the source code, and the 2025 policy guidelines require every change to be classified minor or major, with a major change — a system overhaul, a technology migration, or a configuration change affecting sensitive data or critical infrastructure — audited before implementation. |
The second row is the one to design against, because it is the most common and the most avoidable. Make the staging deployment reference a required field on your remediation tracker, and make the retest booking depend on it. If the tracker cannot tell you which build on staging contains the fixes, the retest is going to rediscover the findings and a whole cycle is going to be spent proving that nothing changed. For the pattern of which findings recur across engagements, see why applications fail safe-to-host.
When a delta test is enough, and what it has to cover
A delta test is a narrow pass over what changed since the tested build, and it is the right answer in exactly one situation: the code moved after the retest but before go-live, and the change is contained. Two rules keep it honest. A delta test suffices only where the change is a minor change under your own change-management classification — not a system overhaul, a technology migration, or a configuration change affecting sensitive data or critical infrastructure, each of which the 2025 policy guidelines put on the other side of a full audit before implementation.
And it must cover more than the diff: the changed components, everything that calls them, every authorisation path the change touches, and a regression pass over the findings previously closed in that area — plus a fresh hash and version for the certificate, because the point of the exercise is that the document describes the build that is running.
Safe-to-host certificate format: what it actually says
Read it before you file it. There is no prescribed template. What fixes the shape is the signature rule, the hash-and-version rule and the environment statement. Eight elements an evaluator can check — and one of them, the validity condition, determines how long you have before this whole sequence runs again.
The issuing organisation and its standing
The auditing organisation, and the basis on which it may issue. An evaluator checks this before reading anything else.
The auditee
The government organisation that owns and will host the application — not the development agency, and not the hosting provider, even where one of them managed the engagement.
What was certified
The application, its hostnames, and — where the engagement covered them — the mobile builds and APIs. Read this line against your scope document. They should say the same thing.
The environment tested
The staging or testing environment, named. This is the sentence that evidences the staging rule.
Dates
Test dates, retest date and issue date. The gap between retest and issue should be short. The gap between issue and go-live is the one you control.
The validity condition
The condition under which the certificate ceases to hold. On published specimen certificates this is expressed as validity until a change in the hash value or the dynamic content, or one year from the date of issue, whichever is earlier. That mirrors the duty on the other side of the transaction: GIGW 5.3.1 requires periodic auditing at least once a year or whenever the source code changes, whichever is earlier.
The application hash and version
Under the 2025 policy guidelines the hash values, versions and timestamps captured by the auditee are to be prominently featured in the certificate and the reports. This is the field that ties the document to a build, and the one an evaluator uses to check that what is running is what was audited.
Signature and authorisation
Check the paper against the chain the 2025 guidelines set: reports are signed only by manpower declared to CERT-In in the published snapshot — first the auditors who did the work, then a mid-management reviewer outside the audit team, then the head of the auditing organisation. The certificate itself must carry both the lead auditor and the head of the organisation. Not you, and not your consultant.
The validity condition is where a project either builds a habit or builds a problem. The duty sits on the developer under GIGW 5.3.1, quoted exactly: conduct periodic auditing of Web Application — at least once in a year or as and when any changes are done in the source code, whichever is earlier. Published specimen certificates express the same rule from the certificate’s own side, as validity until a change in the hash value or the dynamic content, or one year from issue, whichever is earlier. Either way the trigger is not only the calendar — it is your release process. Put the source-code-change test into the change-approval checklist, because a re-audit nobody scheduled is a certificate that has quietly stopped describing what is running. The validity page works through the change-classification question in detail.
Where this gets contested, and how to argue it
Eight arguments that actually happen on these engagements, with the ground each one is won or lost on. Note the pattern: almost every one is winnable on an instrument or on the contract, and almost none is winnable on seniority.
“We disagree with the severity the auditor assigned.”
Argue the method, not the adjective. Severity must rest on qualitative metrics based on industry-accepted methods — a formula rather than the auditor’s feelings — and the 2025 guidelines name CVSS for severity and EPSS for exploitation likelihood, with every finding mapped to CWE and CVE. So ask which vector produced the score and which metric is wrong: is the attack vector really network-adjacent, does exploitation really need no privileges, is the confidentiality impact really high. That is a conversation with an answer. “We think it is a medium” is not.
“We believe this finding is a false positive.”
Ask for the working notes and the evidence — the guidelines tell auditees to provide for working notes in the contract and to ask for evidence as an appendix, which is why that clause is worth having before you need it. Then reproduce the finding from the auditor’s own request and response. If it does not reproduce on the tested build, say so with your capture attached. If it does and you still disagree, the argument is about severity or exploitability, not existence.
“The auditor will not retest without a build reference.”
They are right, and it is not obstruction. A retest that cannot say which build it tested produces a certificate that cannot say what it covers, and the hash and version have to appear in the report and on the certificate. Give them the staging deployment reference. If your team cannot produce one, the auditor has exposed a release-management problem that will cost you again at the next audit.
“Scope has grown mid-window.”
Resolve it as a scope change in writing, not as a favour. Either the addition is tested — with effort and window extended to match — or it is excluded in writing and stated as a limitation in the report. Refuse the informal “we will look at it too”: it produces a certificate whose coverage nobody can describe afterwards.
“Who pays for a third retest cycle?”
Whoever the contract says — which is why this is a procurement question, not a dispute. Get the retest inclusions written as line items at award: first retest included, subsequent cycles at a stated rate, delta test after a post-retest change at a stated rate. A contract silent on this turns an ordinary technical outcome into a commercial argument at the worst moment.
“The auditor wants to test production.”
For a pre-go-live certificate there is no production to test, and the requirement runs the other way: the audit is performed on the staging environment provided by the hosting service provider prior to issue, and where the scope is limited to staging the report must say so explicitly. The related question is worth asking though — the 2025 guidelines contemplate a final report issued after closure and a follow-up audit on production, so agree at award what post-go-live confirmation looks like.
“The auditor has offered to fix what they found.”
Decline. The 2025 guidelines define conflict of interest to cover the same entity implementing controls and auditing them, or auditing while responsible for remediation. An auditor who wrote the fix would be verifying their own code at the retest. Remediation belongs on your side of the line — your development agency, your team, or a readiness partner who is not the one signing.
“Our development agency says the finding is not their responsibility.”
Possibly true, and the split is written down: where the application sits on somebody else’s server, the duty to audit that server, its operating system, the hosting software and the backend database sits with whoever owns and operates it, while the content owner remains responsible for getting the website data and software audited. Map each finding to a layer before assigning it, and raise platform-layer findings through the platform’s own process.
Who owns what, and who cannot
Several of these boundaries are structural rather than conventional — they exist so that nobody ends up verifying their own work. The last row is the one worth reading twice, because it is where most confusion about consultants, agencies and auditors actually lives.
| Activity | Who owns it | What the others do |
|---|---|---|
| Owning guideline compliance for the site | The Web Information Manager | This is the role most safe-to-host plans forget, and GIGW names it precisely: departments must appoint a Web Information Manager, who must be a senior official not below the rank of Joint Secretary. The WIM’s duties include getting the website certified for guideline compliance and ensuring it remains compliant throughout its lifecycle, and an evaluator will interview the WIM during a backend audit to assess awareness and competence. Identify yours before procurement, because the certificate is one of the things they are accountable for. |
| Defining the scope | The auditee organisation | The 2025 policy guidelines are blunt: the complete audit process must be undertaken by the auditee organisation itself and must not be delegated, and the scope is derived from the asset inventory and vetted with the CISO. The auditor helps identify the scope of work, but it does not decide it. |
| Providing the staging environment | The hosting service provider, with the development agency | The auditor states what parity is required. The auditee makes it happen. A staging environment supplied by anyone other than the hosting service provider is the most frequently missed requirement in this whole sequence. |
| Performing the test | The empanelled auditing organisation | Nobody else. |
| Triaging and fixing findings | The auditee, executing through the development agency | The auditor may explain a finding but must not fix it — remediation is the auditee’s work, and an auditor who wrote the fix would be verifying their own code at the retest. |
| Accepting a risk instead of fixing it | The head of the auditee organisation | Not the auditor, not the agency, not the consultant, and — per the 2025 policy guidelines — not a delegate either: risk treatment decisions must be authorised and accepted by the head of the auditee organisation, and exceptions authorised by the head of the organisation, who is the owner of the application. A risk acceptance is a management act, and it needs a name, a date and a review date to be worth anything. |
| Retesting and confirming closure | The empanelled auditing organisation | The auditee supplies the build reference and the evidence of each fix. |
| Issuing the certificate | The empanelled auditing organisation alone | No consultant, no agency and no hosting provider can issue it. |
The obligations that start at go-live
The certificate closes one process and opens another. Six duties attach to a live Indian government application, drawn from GIGW 3.0 and from the CERT-In Directions issued under section 70B(6) of the Information Technology Act, 2000 on 28 April 2022, which took effect sixty days after issue. Design for them during the build: two are infrastructure decisions that are expensive to retrofit.
| Obligation | Instrument | What it means in practice |
|---|---|---|
| Re-audit at least annually, and on source-code change | GIGW 3.0, statement 5.3.1, developer action (r) | Quoted exactly, because a great many pages paraphrase it loosely: conduct periodic auditing of Web Application — at least once in a year or as and when any changes are done in the source code, whichever is earlier. Put both triggers in the change process, not only the calendar one. The 2025 CERT-In audit policy guidelines say the same thing from the auditor’s side, and add that a major change must be audited before implementation. |
| Report web application security incidents immediately | GIGW 3.0, statement 5.3.1, developer action (s) | Report incidents to NIC-CERT and to CERT-In immediately, at the incident response help desk addresses GIGW publishes: incident@nic-cert.nic.in, incident@cert-in.org.in, and the CERT-In toll-free number 1800-11-4949. This sits alongside the six-hour statutory duty below rather than replacing it. |
| Keep the hosting environment to the 5.3.2 checklist | GIGW 3.0, statement 5.3.2, government organisation action | The mandatory aspects to check when choosing a hosting service provider, in GIGW’s own terms: Hosting of the web infrastructure within the geographical boundaries of India. A provider supplying data centre, business continuity and disaster recovery environments in high-availability mode. Periodic drills of the disaster recovery environment at least once in a year. Servers protected against environmental, physical and cyber threats. Data centre security controls and access control. Hardened servers and network devices with periodic vulnerability assessment and penetration testing followed by corrective action. A web application firewall deployed, hardened and available to the department on demand. Logs of the ICT infrastructure enabled and maintained for a rolling period of 180 days as per the CERT-In directions. |
| Report the mandated incident classes within six hours | CERT-In Directions under section 70B(6), 28 April 2022 | The Directions require cyber incidents of the types listed in their Annexure I to be reported to CERT-In within six hours of noticing them or being brought to notice of them. Website defacement, unauthorised access, data breach and data leak are on that list, as are attacks on applications such as e-governance and e-commerce. |
| Keep logs for 180 days, within India | CERT-In Directions, 28 April 2022, direction (iv) | Logs of all ICT systems must be enabled and maintained securely for a rolling period of 180 days, within Indian jurisdiction. Size the log retention in the hosting design, because retrofitting it after go-live is an infrastructure change. |
| Synchronise clocks to NIC or NPL, and keep a point of contact | CERT-In Directions, 28 April 2022, directions (i) and (iii) | Connect to the NTP server of NIC or NPL, or to servers traceable to them, for synchronisation of all ICT system clocks — which is also what makes 180 days of logs usable as evidence. A designated point of contact must be kept updated with CERT-In, and CERT-In may order information up to and including in near real time. Name a role, not a person who will change jobs. |
Two of those rows are answered by your hosting provider rather than by your development team, which is exactly why they should be asked during the audit window rather than at handover. A third is answered by your change board: the annual and source-code-change re-audit triggers belong in the release process, not in a diary. And the third statement in the GIGW cybersecurity chapter is worth a line of its own — the website must have a security policy, a privacy policy and a contingency management plan clearly defined and approved by the government organisation, with the Web Information Manager ensuring their implementation through the lifecycle. An evaluator compares the policies in the website quality manual against the ones published on the site, and then asks for the records the implementation generated. See GIGW compliance before go-live for the wider conformity picture, of which the safe-to-host certificate is one part.
The safe-to-host document checklist a finished engagement leaves behind
Thirteen documents. If an evaluator, an auditor general, a successor project manager or next year’s auditing organisation asks what happened, this is the answer. Assemble it as you go. Assembling it afterwards means reconstructing it from inboxes.
- 01 The signed scope document, with the exclusions written as sentences.
- 02 The executed NDA and the contract clauses permitting system access and CERT-In association.
- 03 The written authorisation to test, and the approved audit-team composition.
- 04 The tool list and the IPR or licence confirmation the auditor provided.
- 05 The staging environment definition: hostname, build or commit reference, and a note of how it differed from production.
- 06 The first findings report, in the agreed structure, with the severity scheme and the closure timelines it states.
- 07 A remediation tracker: finding, severity, owner, fix, staging deployment reference, date closed.
- 08 Evidence per fix — configuration exports, request and response captures, version manifests — assembled for the retest rather than after it.
- 09 Signed risk acceptances for anything not fixed, with the accepting authority and the review date.
- 10 The retest letter or updated report recording closure.
- 11 The auditor’s certificate of deletion for the auditee data it held during the engagement.
- 12 The safe-to-host certificate itself, with the validity condition read and diarised.
- 13 The re-audit date in the change calendar, plus the source-code-change trigger written into the release process.
One filing note, because it is easy to get wrong. The delivery rule that governs the report does not stop at delivery: a pack that enumerates your own vulnerabilities, including the ones you accepted, does not belong in a shared drive or a generic inbox because that was convenient during the project.
We deliver CERT-In audits
We deliver CERT-In audits, end to end, with our CERT-In empanelled partners. A safe-to-host audit is one of them, and the process on this page is the one it follows. See how a CERT-In audit runs with us.
Frequently Asked Questions
How do I get a safe-to-host certificate?
We are a private company and a tender asks for safe-to-host. Does this process apply to us?
Who provides the staging environment, and what if our hosting provider will not?
Can the security audit run in parallel with user acceptance testing?
What exactly do we hand the auditor on day one?
Can the same firm do the audit and the retest?
Who pays if a second retest is needed?
Does our mobile app need its own safe-to-host certificate?
Can the audit be done remotely, and what does the auditor need from our network team?
What if our application sits on a shared government platform we do not control?
Does a departmental sub-site need its own certificate?
Why does the audit have to be done on a staging server?
Does the auditor send our report to CERT-In?
What are the closure timelines for vulnerabilities by severity?
Can we launch first and get the certificate afterwards?
Is a vulnerability scan report the same as a safe-to-host certificate?
Primary sources for this page
- GIGW 3.0 security guidelines and attributes (statements 5.3.1–5.3.3)
- What is new in GIGW 3.0
- CERT-In Comprehensive Cyber Security Audit Policy Guidelines v1.0, 25 July 2025
- Guidelines for CERT-In Empanelled Information Security Auditing Organizations v3.0, May 2018
- Terms and Conditions for Empanelment v7.2, April 2024
- CERT-In empanelment page and list of empanelled organisations
- CERT-In model non-disclosure agreement
- CERT-In guidelines for secure application design and development
- CERT-In Directions under section 70B(6), 28 April 2022
Where this page states a working rule of our own rather than a published requirement, it says so on the line.
Related Reading
What a Safe-to-Host Certificate Is
The audit clearance certificate GIGW 5.3.1 requires before a government application is hosted in production.
Read moreWho Can Issue Safe-to-Host Certificates
NIC, STQC, an STQC empanelled laboratory, or a CERT-In empanelled laboratory — and how to check before award.
Read moreWhy Applications Fail Safe-to-Host
The finding classes that recur, and the ones that cost a second retest cycle.
Read moreHow Long a Safe-to-Host Certificate Lasts
One year, or the next source-code change — whichever comes first, and how to classify the change.
Read moreGIGW Compliance Before Go-Live
The wider conformity picture — quality, accessibility, cybersecurity and lifecycle — of which safe-to-host is one part.
Read moreVAPT / Penetration Testing
Manual-first web, API, network and mobile testing with retest included.
Read more