OpenCTI and Elastic Security integration: what it does and how to confirm the method
A security team that wants OpenCTI observables and indicators available to Elastic Security detections, and Elastic incidents recorded back in the OpenCTI knowledge graph, depends on a supported connector or API path between the two platforms. That path must be confirmed against the OpenCTI connectors repository and the Elastic Security documentation before any scope is written. DeployOpen plans, builds and tests the path inside the client's own infrastructure. This page names no connector that the supplied sources do not establish, so the first task is to identify which existing connector or API route fits the required direction of data flow.
The work runs in two directions, and each needs its own confirmation. In the outbound direction, OpenCTI indicators and observables must reach Elastic Security in a form the detection engine can use, such as the threat intelligence data that indicator match rules evaluate, or the detection rules generated from that data. In the inbound direction, Elastic Security alerts or incidents must be written into OpenCTI as objects that link to existing indicators, malware and intrusion sets. For each direction, confirm which Elastic objects the path writes to, which OpenCTI entity types it reads, and how STIX objects map to Elastic fields. Mapping gaps are the most common source of rework, so they should be reviewed before build.
Several items decide whether the path can be used as planned. Confirm the OpenCTI version range the connector supports, since OpenCTI uses date-based release numbers and LTS lines with their own support windows. Confirm the Elastic Stack version line in use, because the Elastic Security documentation and API behavior can differ between release lines. Confirm the authentication method the Elastic side requires, such as an API key or a service account, and who issues and rotates it. Confirm the Elastic subscription tier that provides each API or detection feature you need, using Elastic's subscriptions page for self-managed deployments and your Elastic account team for Elastic Cloud. Do not assume a feature is available on your tier until it is confirmed in writing.
Before scoping, ask the implementation partner for a written plan that names the connector or API path, the pinned OpenCTI and Elastic versions, the entity types and Elastic objects in scope, and a test plan using non-production data. Generated detection rules need a decision of their own. Elastic's prebuilt rules are delivered automatically from the detection-rules project, so the team must decide how custom rules generated from OpenCTI will coexist with them, who reviews them, and how changes are tracked. Quotes should reflect the number of indicator types, the expected incident flow, the Elastic deployment model and the verification effort. Ask which of these items are one-time build work and which recur through maintenance and upgrades.
What you need in place before the OpenCTI and Elastic Security integration starts
Six prerequisites decide whether the integration can be built and run. Some sit on the OpenCTI side, some on the Elastic side, and some sit between the two platforms. Work through each card with the platform owners before you choose a connector version.
OpenCTI edition and version line
Choose Community Edition (Apache License 2.0) or Enterprise Edition (proprietary license). Defining authentication strategies, including SSO, is an Enterprise feature from OpenCTI 7.260224.0, so settle this before you plan user access. Next, pick a regular release or an LTS line. LTS releases require a specific license key. Versions follow the x.YYMMDD.z pattern, and the latest release in the supplied facts is 7.261016.0. Confirm the minimum OpenCTI version your chosen connector requires.
OpenCTI's own Elasticsearch store
OpenCTI needs Elasticsearch 8.0 or later, or OpenSearch 2.9 or later, as its own data store. This cluster holds OpenCTI's knowledge graph and is separate from the Elastic Security deployment that receives indicators and detection rules. Size it on its own, with its own snapshots and access controls, so work on one cluster does not put the other at risk. Keep the two clusters' credentials separate from the start.
Redis, RabbitMQ and object storage
OpenCTI also requires Redis 7.1 or later, RabbitMQ 3.11 or later, and S3-compatible storage such as MinIO. RabbitMQ carries the messages that Python workers consume for asynchronous writes, so queue health affects how quickly indicators reach Elastic Security. Provision Redis and object storage with the platform and include them in backups. Check each version against the OpenCTI deployment overview before you build the images.
Elastic Cloud or self-managed release line
Elastic Security runs on Elastic Cloud or on self-managed clusters. The current release lines are 9.5.5 and 9.4.8, both released on October 6, 2026, and 8.19.23 is still maintained. Confirm the exact Elastic version your chosen connector supports, because a connector may trail the newest line. For self-managed clusters, Platinum is no longer sold to new customers, so check which subscription covers the detection engine and threat intelligence features you need.
Elastic role and service account
Create a dedicated service account for the connector and bind it to a role with rights to the threat intelligence index and the detection engine. Avoid superuser or shared administrator accounts so audit logs show which system wrote each indicator or rule. Ask the connector documentation which index patterns and detection privileges it needs, then grant only those. Record who owns the account and how often its credentials rotate.
Network paths and certificates
Open the network path from the OpenCTI connector runtime to the Elastic endpoint, and from Elastic back to OpenCTI if you plan to import incidents. Confirm the required ports and protocols with the connector documentation and your firewall team before requesting rules. Plan for TLS by making sure the connector host trusts the issuing certificate authority, and track certificate expiry and renewal. Keep credentials in a secret manager and out of plain connector configuration files.
How indicators and incidents move between OpenCTI and Elastic Security
Treat the two data directions as separate workstreams with their own owners, credentials and failure handling. The outbound workstream moves observables and indicators from OpenCTI into the Elastic Security threat intelligence index, where indicator match rules can compare them against events. The inbound workstream imports Elastic Security incidents into OpenCTI as incidents or related objects. Both touch the same two platforms, but each has different data, different triggers and different ways of failing, so a design that plans them separately is easier to test and operate.
OpenCTI runs connectors in defined roles, including import, enrichment, file extraction, export and stream consumption. The outbound path usually sits in an export or stream role, and the inbound path usually sits in an import role. The role matters because it determines what starts the work, whether data is sent continuously or in batches, and where progress is recorded. Before you build, confirm in the documentation for your chosen OpenCTI release which connector covers each direction, which Elastic endpoint or index it writes to, and whether it supports the direction you need. Do not assume that a connector built to import can also export.
Outbound decisions include which entity types and indicator fields are sent, which TLP markings and confidence levels are allowed to leave OpenCTI, and how expired or revoked indicators are removed from the index so that stale values do not keep matching. Ask the connector maintainer or the release notes whether revocations propagate. Inbound decisions include how Elastic incidents map to OpenCTI incident objects, which identifier is stored so re-runs do not create duplicates, and which organization owns the imported objects. Record each mapping in writing before the first run, because changing it later can leave duplicate or orphaned objects in the knowledge graph.
Create a separate service account and API token for each direction, with only the permissions that direction needs. Then verify the flow with a small, labeled test set. Confirm that a test indicator appears in the threat intelligence index, that an indicator match rule in a non-production Elastic space fires on it, and that an Elastic test incident appears once in OpenCTI after a second run. Also check that the connector supports the Elastic Stack line you operate. Elastic currently publishes the 9.5 and 9.4 lines and maintains 8.19, so confirm compatibility against the version in your environment, not the latest one.
Configuration sequence for the OpenCTI and Elastic Security integration
This sequence takes a team from a confirmed connector version to a bounded, reviewed sync between OpenCTI and Elastic Security. Each step closes with a check the team can repeat, so indicator flow, incident import and detection rules are verified before production use.
Confirm the integration method and versions
Check the OpenCTI connectors repository for the Elastic Security connector that matches your OpenCTI release line, and read the Elastic Security documentation for the Elastic Stack version your cluster runs. Record the OpenCTI version, connector version, Elastic version and the license tier your subscription includes for detection rules and indicator match. Confirm that the connector supports each direction you plan to use. Done when the platform owner and the security engineering lead sign off on a written compatibility record.
Create a dedicated Elastic service identity
Create a separate Elastic user or API key used only by the OpenCTI connector. Assign it a role limited to the threat intelligence indices and the detection rule and alert privileges the chosen mode requires. Confirm the exact privilege names in the Elastic Security documentation for your version, and avoid reusing an administrator or analyst credential. Store the key in your secrets manager. Check: a read against the target index succeeds with the key, and a write to an index outside its scope is refused.
Stand up the connector in a non-production instance
Deploy the connector against a non-production OpenCTI instance, pointed at a test Elastic cluster or a separate Elastic space. Start from the configuration template in the connectors repository and load a small, known data set. Keep connector logs detailed enough to show each request during this phase. The platform engineer owns the deployment, and the security engineer reviews the configuration. Check: the connector reports healthy in the OpenCTI connector view, and the test cluster logs show successful connections with no authorization errors.
Scope outbound entity types and TLP levels
Decide which OpenCTI entity types flow to Elastic, such as indicators and observables, and which TLP markings may leave the platform. Limit the export to markings your sharing agreements permit outward, and exclude anything marked for restricted distribution. Write the filter as a configuration file kept in version control so reviewers can read it. Check: a test indicator with an allowed TLP marking appears in the export, and a test indicator with a restricted marking does not appear in the connector output.
Configure inbound incident import with owner and label
Set the connector to import Elastic Security alerts or cases as incidents in OpenCTI. Assign a named owner group and a label that identifies the Elastic source. Define which Elastic detection outcomes create incidents so analysts do not receive every low-severity event. Confirm that the owner group holds the needed access rights in OpenCTI before enabling the import. Check: a test alert raised in the Elastic test space appears as an incident in OpenCTI with the expected label and owner.
Review mapping before enabling rule generation
Compare how OpenCTI indicator types and patterns map to Elastic indicator match fields. Review field names, pattern syntax and any severity or score translation. A detection engineer approves the mapping in writing. Only after that approval, enable detection rule generation in the test space, and keep generated rules disabled in production until they are reviewed. Check: each generated rule names its source indicator, and a test indicator triggers the rule in the test space and produces an alert there.
Run a bounded sync and verify results
Run one sync limited to a small, known set of indicators, such as a labeled batch created for testing. Keep the time window and volume narrow. Compare the document count in the Elastic threat intelligence index with the number of objects the connector exported, and inspect a sample of documents for field accuracy against the OpenCTI source. Record any gaps, errors or duplicates before widening scope. Check: the document count matches the expected batch, sampled fields match their source, and no unexpected entity types appear.
Mapping OpenCTI observables and indicators to Elastic Security fields
This table compares how OpenCTI STIX2 objects map to Elastic Security threat intelligence and incident fields. Read each row as a decision to record before configuring the connector. The main takeaway is that exact field names must come from the chosen connector's documentation and Elastic's index mapping, and every unmapped field needs a recorded decision.
| OpenCTI source | Elastic Security target | Mapping decision |
|---|---|---|
| Observables: IP address, domain, file hash, URL | Threat intelligence index indicator type and value fields used by indicator match rules | Map each observable type to its own field and confirm names in both documentations |
| Indicator labels | Tag or custom threat fields that rule filters can query | Define a fixed label vocabulary so rules filter on consistent values |
| Confidence score | Indicator confidence field on the threat intelligence document | Confirm the scale in each platform and record any conversion applied |
| Valid-from and valid-until dates | First-seen and last-seen style timestamps on the indicator document | Decide whether expired indicators are removed or kept with a status flag |
| TLP marking | Marking field on the indicator document | Map TLP per indicator and decide whether to filter markings before sync |
| Incident identifiers in OpenCTI | Elastic Security alert or case identifiers | Record which platform is the system of record for each identifier |
| Severity or priority attribute | Elastic Security severity field | Agree a value translation table before the first import |
| Host and user entities | OpenCTI observables linked to the incident for hostname and user account | Link entities to the incident and confirm the observable types supported |
When generated detection rules need review before Elastic runs them
The first decision is whether the chosen integration method generates detection rules at all. Confirm that before promising anything to the business. Elastic develops its prebuilt detection rules in the elastic/detection-rules repository, where the rules and code are licensed under the Elastic License v2, and the latest prebuilt rules are delivered to the Kibana detection engine automatically. Your own rules, including any rule built from OpenCTI observables, sit alongside that stream of vendor updates. Treat each generated rule as a separate change control item with its own record, owner, approval and rollback path. If the method only pushes indicators into the threat intelligence index, the review gate below applies to the matching and enrichment design instead.
Rule type and observable scope drive most of the false positive risk. Elastic's subscriptions page lists correlation, indicator match and threshold rules within the detection engine. An indicator match rule fires when an event field equals a value from a threat intelligence source, so a broad observable, such as an IP address shared by many tenants on hosting or CDN infrastructure, can match large volumes of benign traffic. A threshold rule counts events over a window and can turn a noisy observable into an apparent campaign. A correlation rule combines several conditions. For each generated rule, review the observable's scope, its TLP marking, its score, its age and whether it is a shared infrastructure address before the rule is enabled.
Put a named reviewer in front of every generated rule. A detection engineer should check the query logic, the fields and index patterns used, the indicator filters and expiry, and the severity assigned, then record approval in your ticketing system. Test in a non-production Kibana space with rules disabled, and observe match counts over a representative period before enabling them. Document any alert suppression settings. Before you finalize the design, confirm feature availability by tier on Elastic's subscriptions page and self-managed subscriptions page. The detection engine appears under Platinum, which Elastic no longer sells to new customers, so new self-managed buyers should confirm whether they need Enterprise or Elastic Cloud.
Each generated rule, or rule family, needs one owner who accepts the expected alert volume, defines the on-call route and sets the criteria for retuning or disabling the rule. Without that owner, alerts from OpenCTI-derived detections reach the SOC with no one accountable for their precision. Ask the integrator to deliver a written rule register that lists the source observable set, rule type, approver, owner, review date and the false positive notes from testing. Review the register whenever OpenCTI indicator scoring changes or your Elastic Stack version is upgraded, because either change can alter what a rule matches.
Securing the OpenCTI to Elastic Security data path
Connecting OpenCTI to Elastic Security moves threat intelligence across a trust boundary in both directions. The controls below cover how the connector authenticates, how traffic is protected, which identities and markings it can use, and what evidence each side keeps. Each card names one control to design and one check to run before go-live.
Dedicated Elastic API key
Create a separate Elastic API key for the OpenCTI connector and do not reuse an administrator or personal credential. Scope its privileges to the threat intelligence index and the detection rules it manages, and nothing else. Store the key in the secrets handling you choose for OpenCTI, and confirm it never appears in connector logs, configuration files kept in version control, or the OpenCTI interface. Document who can rotate the key and how the rotation is tested before the old key is retired.
Transport encryption and certificate trust
Serve every connection between OpenCTI and Elastic over TLS, and confirm the connector trusts the internal certificate authority that issued the Elastic endpoint certificate. Check the certificate chain, hostname validation and expiry dates before go-live, because a connector that disables verification may appear to work while exposing traffic. Plan renewal for both sides, including the CA bundle mounted into the connector container. Confirm which TLS options your connector version exposes in its configuration.
Least-privilege OpenCTI service accounts
Give each connector its own OpenCTI service account with only the group membership and marking access needed to read the indicators it streams. Do not grant administrative capabilities or access to restricted marking definitions the connector does not need. For the Elastic-to-OpenCTI direction, use a separate account whose write permissions cover only the objects it creates. Review these accounts on the same schedule as human access reviews, and record which connector instance uses which account.
TLP filtering at the boundary
Set the stream filter so that only indicators carrying TLP markings your data owners have cleared for Elastic leave OpenCTI. Confirm whether the filter checks the marking on each observable, indicator and related entity, because a restricted object linked to a shared one can change what is sent. Test with a restricted sample indicator and verify it never reaches the Elastic threat intelligence index. Record the approved TLP levels in your runbook so the filter can be audited.
Audit logging on both sides
Log connector activity in OpenCTI and the writes it makes to the Elastic threat intelligence index, then keep both sets of records somewhere your security operations team can query. In OpenCTI, activity monitoring and audit logs are an Enterprise Edition feature, so confirm your edition before you design the evidence trail. On the Elastic side, confirm which audit events your deployment records for API key use and index writes, and where they are shipped. Match timestamps and key identifiers across both logs during testing.
Edition dependencies for each control
Map each control to the edition it requires before you commit to a design. Since OpenCTI 7.260224.0, defining and using authentication strategies, including SSO, is an Enterprise Edition feature, and activity monitoring, audit logs and organization-based data segregation are also Enterprise Edition features. Elastic SAML or OpenID Connect single sign-on is listed under the Enterprise tier and matters only for administrator access to Elastic. Ask both vendors to confirm which features your license covers.
Testing the OpenCTI and Elastic Security integration before production
The test plan should prove the integration works end to end in a non-production OpenCTI and Elastic environment before any indicator reaches a production detection engine. Start by seeding a small set of known test indicators, each with a deliberate TLP marking and an explicit expiry date, so every later check has a known expected result. Record each indicator's type, value, marking and expiry in a test register before the connector runs, so the team can compare what arrives against what was sent. Use fictitious values or documentation address ranges so that no test indicator can match real traffic. Then confirm that the threat intelligence index receives each indicator with the expected fields, including the TLP marking, the expiry and the mapped indicator type and value. Check field names against your own Elastic version, because mappings can differ between releases.
Next, test detection behavior in a dedicated test space. Send a synthetic event that contains a test value and confirm that the indicator match rule fires and creates an alert with the expected rule name, severity and threat fields populated from the indicator. Then run the negative cases. An expired indicator and a revoked indicator should stop matching after the expiry time or after the revocation reaches Elastic, so send events carrying their values and confirm that no new alert is created. Allow for sync latency, and measure timing against the schedule you configured rather than assuming it. Repeat the matching checks with your TLP filter in place to confirm that indicators marked above your sharing level never reach the Elastic side.
Confirm the reverse path with a synthetic Elastic incident or alert created in the test space. It should import into OpenCTI as the intended object type, with the source fields, observables and labels that your mapping specifies. Then run a load check against the sizing guidance in the OpenCTI deployment overview. That guidance lists 2 cores and at least 8 GB RAM for the platform, 2 cores, 8 GB RAM and 16 GB SSD for Elasticsearch or OpenSearch, and at least one platform node for every 3 workers. Load your expected production indicator volume into the test environment and measure worker queue depth, connector run time and index growth. If the measurements exceed the sizing assumptions, change the design before production rather than after go-live.
Finish with a rollback test. Remove the connector from the test environment, then check that nothing it created remains. Detection rules tied to the integration should be deleted or disabled, the threat intelligence index and any data streams or index templates it created should be removed or deliberately retained, and service accounts or API keys should be revoked. Alerts must not point to deleted rules. Record each object type and the console or API step used to confirm its removal, then ask your implementation partner to state in writing what their runbook removes and what it leaves in place. Sign off production only after the rollback result is documented.
Common failures in the OpenCTI and Elastic Security integration
This table lists the failures teams most often hit when syncing OpenCTI indicators into Elastic Security and importing incidents back. Each row gives the likely cause and the first check to run. Work through the rows in order, because permission, version and certificate problems block every later test.
| Failure | Likely cause | Check first |
|---|---|---|
| Sync fails with authorization errors | The API key lacks write access to the threat intelligence index or the privileges needed to create detection rules | Confirm the key's role in Elastic grants only the required index and detection permissions, scoped to the target space and indices |
| Connector errors after an upgrade | The connector release is not matched to the Elastic release line in use | Record the connector version and the Elastic Stack version together, and check the connector's compatibility notes before upgrading either side |
| Indicators never appear in Elastic | TLP or entity type filters in the connector exclude the indicators you expect | Run the same filters against OpenCTI for one known indicator, then widen one filter at a time until it appears |
| Duplicate indicators or alert floods | Repeated syncs lack a stable document identifier, and broad observables such as common domains or generic hashes match widely | Confirm each document ID derives from a stable key, compare document counts after two runs, and review observable types before enabling rules |
| Expired indicators still match | The valid-until value is not mapped to an expiry field, so Elastic never retires the indicator | Inspect a sample document for a populated expiry field and check that rule time windows match indicator lifetimes |
| Certificate trust failures between hosts | The internal certificate authority is missing from the trust store of the connector or the Elastic node | Test TLS from the connector host with the CA bundle configured, and confirm the chain includes all intermediate certificates |
| Incidents imported without owners or labels | The import mapping does not assign an owner, labels or a default case group for Elastic Security incidents | Check a sample imported incident in OpenCTI for the owner and label fields, then review the mapping before the next import run |
Questions buyers ask before hiring help for the OpenCTI and Elastic Security integration
How much does an OpenCTI and Elastic Security integration project cost?
The cost depends on the drivers below, so no single figure applies to every environment. Cost drivers: the sync method you confirm, the number of OpenCTI entity types and sync directions, your Elastic tier and deployment model, the volume of detection rule review, how deep testing goes, and whether the work is fixed-scope or retained. DeployOpen prices from a written scope, and the quote should list each deliverable separately. Ask for one-time items, such as mapping design, connector configuration, rule creation and test validation, to be shown apart from recurring items, such as rule tuning, connector updates after OpenCTI releases and monitoring. Confirm with each vendor which licenses you must buy directly, since OpenCTI and Elastic subscriptions are separate from the implementation work. Ask that assumptions appear in the quote so that any change can be priced against them.
Can our team build the OpenCTI to Elastic Security integration ourselves?
Yes, if your team already administers both Elastic Security and OpenCTI and has time to validate mappings. The connection itself is rarely the hardest part. The harder work is deciding which observables and indicators become Elastic threat intelligence entries, how STIX fields map to the Elastic fields your rules use, and which records are excluded by TLP markings or labels. Those decisions need test data and a review cycle before anything reaches production alerting. Your staff should be able to configure the OpenCTI connector and its credentials, manage Elastic Security indices, spaces and detection rules, and work from the Elastic Security documentation for the release line you run. If one of those skills is thin, a partner can cover that part or train your staff while the build proceeds.
How long does an OpenCTI Elastic Security integration take?
Duration depends on the confirmed sync method, the number of entity types and directions, and the test plan agreed for validation. DeployOpen does not publish a standard timeline. The timeline is stated in the written scope once the method is confirmed and your environment is known. Dependencies that can move it include access approvals, creation of the test Elastic space and the availability of your rule approver. Ask for the timeline to be split into design, build, test and handover phases, with the client actions each phase needs. Also ask how a change to your OpenCTI version or Elastic release line would affect the schedule, because both the connector and the Elastic release matter. A shorter schedule with a thin test plan moves risk into production, so compare schedules only when test depth is the same.
What access and people do we need to provide for the project?
Plan to provide environment access, a dedicated test Elastic space, named data owners and a rule approver. Environment access means accounts that can configure the OpenCTI connector, read connector logs and manage Elastic Security objects in the test and production clusters, all under your change process. The test space keeps sampled or synthetic indicators away from live alerting until the mappings are proven. Data owners decide how TLP markings and labels map to what leaves OpenCTI, because those decisions control what is shared with Elastic and who can see it. The rule approver signs off each generated detection rule before it is enabled, and should understand both your alert handling and the source data. Ask for these roles to be named in the scope, with backups for absences, since waiting on approvals is one of the easiest ways to slow the work.
Does the Elastic license tier change an OpenCTI integration plan?
Yes. The Elastic subscription tier determines which detection and identity features are available, so confirm your plan against the Elastic subscriptions page before design starts. Indicator match rules appear among the detection engine capabilities listed there, and SAML or OpenID Connect single sign-on is listed under Enterprise on the self-managed page. Platinum is no longer sold to new self-managed customers, so a new buyer chooses between Basic and Enterprise or moves to Elastic Cloud. On the OpenCTI side, authentication strategies including SSO became an Enterprise Edition feature in OpenCTI 7.260224.0, so SSO for OpenCTI is a separate licensing question. Confirm your Elastic deployment model, your OpenCTI edition and whether any feature you need requires a purchase before the build. Ask the vendors to confirm current feature placement for your versions, because subscription tables change.
How do entity types and sync direction change the integration effort?
Each OpenCTI entity type you send to Elastic, and each direction you add, creates its own mapping, filtering and testing work. Observables and indicators are the usual starting point, but file hashes, domains, IP addresses and other STIX object types each need a decision about which Elastic field they populate and how they are matched. Bidirectional flow adds the import of Elastic Security incidents into OpenCTI, which needs its own mapping for status, severity and related entities. It also needs a rule that stops a loop where an incident creates an indicator that is then sent back. Ask the scope to list each entity type and direction by name, with the fields and test cases for each. A clearly bounded list with explicit TLP rules is easier to validate than a broad one, so settle the scope before connector setup begins.
Should we buy a fixed-scope integration or a retained support model?
Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. A fixed-scope build fits a defined set of entity types, one Elastic deployment and an agreed test plan, ending in handover to your team. A retained arrangement fits when your intelligence program keeps changing, for example through new entity types, OpenCTI release upgrades, rule tuning as detections mature or connector maintenance after platform changes. DeployOpen offers ongoing support, upgrades and continuous testing as retainers. The two can also be combined: build once under a fixed scope, then keep a retainer for upgrades and tuning. Ask which items sit in each part, who handles regular and LTS release changes, and how a change request raised mid-build is priced and scheduled.
Who approves the detection rules generated from OpenCTI indicators?
Your named rule approver should approve them, and approval should happen before any generated rule is enabled in Elastic Security. Generated rules are only as sound as the indicators behind them, so the approver checks the rule type, indicator scope, severity and expected alert volume in the test space. Elastic's detection rules are maintained in a public repository under the Elastic License v2, and prebuilt rules are delivered to the Kibana detection engine automatically. Keep your generated rules separate from prebuilt rules so upgrades do not blur ownership. Review load grows with indicator volume and the number of rule types, so ask how many rules the scope covers and how tuning requests are handled after go-live. Record each approval with its reason so that later tuning and audits can trace each decision.
How DeployOpen scopes, builds and supports the OpenCTI and Elastic Security integration
DeployOpen plans, builds, documents and supports the OpenCTI and Elastic Security integration inside your own infrastructure, from the platforms you already run. Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts, and ongoing support is available as a retainer.
How we scope
- Confirm which OpenCTI edition and version you run, and whether Enterprise Edition features are needed for your SSO setup.
- Confirm your Elastic Stack deployment type, subscription tier and Elastic Security features before choosing the sync approach.
- Agree in writing which observable and indicator types sync, which detection rules are generated, and which data flows back into OpenCTI.
How we build
- Configure the OpenCTI connector and Elastic Security side with service accounts, least-privilege roles and secrets stored in your vault.
- Test indicator sync and generated detection rules in a non-production Elastic environment before any production change is made.
- Tune filters, TLP handling and rule settings so noisy or sensitive intelligence does not reach the wrong Elastic spaces or users.
How we hand over
- Deliver configuration documentation, a data flow diagram and a record of the tests run against your agreed acceptance criteria.
- Walk your security engineers through rule lifecycle, indicator expiry and how to troubleshoot a stalled connector.
- Provide a runbook covering connector restarts, credential rotation and the checks to run after each OpenCTI or Elastic upgrade.
How we support
- Plan OpenCTI and Elastic upgrades together, checking connector compatibility before either platform moves to a new version.
- Review connector logs, rule performance and alert volume on a schedule agreed in your support scope or retainer.
- Keep the integration aligned with new OpenCTI releases and Elastic Stack lines by confirming each version change with you in writing first.

