Skip to content

Create a dedicated threat model for Leios #452

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jul 24, 2025
Merged

Create a dedicated threat model for Leios #452

merged 10 commits into from
Jul 24, 2025

Conversation

ch1bo
Copy link
Member

@ch1bo ch1bo commented Jul 10, 2025

This is a first sketch for a threat model as a dedicated artifact. We have another similar collection of threats here

https://github.com/input-output-hk/ouroboros-leios/blob/main/docs/technical-report-1.md#threat-model

In this document, we follow an established process of threat modeling by also describing a system overview, assets to protect and go more into detail detail on threats, prerequisites, attack vector, cost and impact.

This should be updated with more detail / reference the concrete protocol variant we propose in the CIP and accordingly with assets, threats and mitigations.

5. SPOs in different segments create EBs endorsing different conflicting transactions
6. Voting nodes must choose between conflicting EBs, potentially causing certification failures

**Cost**: MEDIUM-HIGH - Requires significant network infrastructure, multiple nodes, and sustained coordination
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Cost**: MEDIUM-HIGH - Requires significant network infrastructure, multiple nodes, and sustained coordination
**Cost**: MEDIUM - Requires significant network infrastructure, multiple nodes, and sustained coordination

This doesn't require deploying many nodes if they are nodes custom-modified for this attack. The attack would require more nodes if vanilla ones are used.


**Prerequisites**:
- Control over significant network infrastructure (BGP routes, ISPs, or direct node connections)
- Knowledge of top 500 voting nodes' network addresses and topology
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Fait Accompli paper considers attacks similar to this and its proofs address the safety of FA in the face of those.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you contribute a reference to this on the system overview, threat or mitigation of this?


**Assets Affected**: Operational Sustainability

#### T6: VRF Manipulation
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to cross-reference the anti-grinding CPS and CIP.

- Knowledge of transaction dependencies and profitable patterns

**Attack Vector**:
1. Monitor mempool for profitable transaction patterns
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this really different from the situation with Praos?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, but that does not make it less of a threat and I wanted to cover a range of threats which had been in discussion lately. What's your suggestion here?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this document we don't need to change anything, but when representation Leios we might want to clearly distinguish three categories of threats:

  1. Exists in Praos and similarly exists in Leios.
  2. Exists in Praos but more serious in Leios.
  3. Does not exist in Praos but does exist in Leios.

**Control Type**: Preventive
**Implementation**:
- Parameterize EB opportunities and sizes for adversarial stake assumptions
- Example: Assume 30% adversarial stake, produce 2 EBs per stage on average
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to define a "design basis threat" that includes constraints on the stake controllable by each type of adversary.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean? A threat that our assumed adversarial stake is wrong?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I'd like clarity about whether Leios should be robust against a 49% adversary, like Praos is theoretically. Or instead maybe we're aiming for robustness against a weaker adversary, perhaps 30%.

Copy link
Collaborator

@bwbush bwbush left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The vote/certificate assumptions here ("top 500 nodes" etc.) clash with the previously reviewed specification. Is this document proposing a different approach to vote and certificate cryptography? If we we need a detailed specification that the cryptography team can study.

At some point we might want to align terminology between this document and the Notes on Attack Surface in the 2nd Tech report before we move any of this material into the Leios CIP itself.

A lot of the attack vectors are means to get conflicting txs in the EBs, so that resource are wasted. It might be helpful to discuss that in more detail, and centrally, so that individual threat and mitigation sections can reference that.

@bwbush bwbush requested a review from rrtoledo July 11, 2025 14:29
@ch1bo
Copy link
Member Author

ch1bo commented Jul 11, 2025

The vote/certificate assumptions here ("top 500 nodes" etc.) clash with the previously reviewed specification. Is this document proposing a different approach to vote and certificate cryptography? If we we need a detailed specification that the cryptography team can study.

I scoped the protocol with very broad strokes here, for this needs to change as we zero in on a protocol variant for the CIP. Nonetheless I think sketching cardinalities on how many nodes, voters, transactions etc. we are dealing with is useful for threat modeling. What reviewed specification? Sounds like there is a recommendation; what should I put instead?

At some point we might want to align terminology between this document and the Notes on Attack Surface in the 2nd Tech report before we move any of this material into the Leios CIP itself.

A lot of the attack vectors are means to get conflicting txs in the EBs, so that resource are wasted. It might be helpful to discuss that in more detail, and centrally, so that individual threat and mitigation sections can reference that.

Yes, let's do that. Does this mean we move the threat model of tech report 1 and those sections in tech report 2 here or instead expand the thread model part of a tech report?

What do you think of a dedicated threat model that details assets, threats and mitigations this way / following this threat modeling process?

1. Attacker maps network topology and identifies cluster boundaries
2. Creates conflicting transaction pairs spending identical UTXOs
3. Submits Transaction A to Network Segment 1, Transaction B to Network Segment 2
4. Uses network position control (BGP, routing, eclipse techniques) to prevent cross-segment propagation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is necessary. Even if all EB producers know about both transactions, how would you force them to all pick the same one? With random selection you'd get a 50% probability that both are selected so the expected value would be 1.5 transactions for the price of one. Now you can improve that in various ways, segmenting the network being one of them, but you can also control some stake (to make EBs that you know will conflict) or if you know about the EB schedule you can probably optimize who you send your transactions to. But also, depending on the details of an attack you might not even need to increase the probability of the conflict in the first pace.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also means that Control over multiple network positions to segment the peer-to-peer network would not be required.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is necessary.

I think it is a prerequisite in order to get conflicting transactions into the mempools of concurrently producing nodes. One would need to defeat the natural (fair?) tx diffusion happening between nodes. I should make that more clear in the attack vector here.

can also control some stake (to make EBs that you know will conflict)

I'd characterize this as a different attack due to the requirements and attack vector being quite different. This one is really about a network-attacker that does not control stake. Do you feel this would be much different to also T4 or T8 to warrant a dedicated entry? Would this "stake-based deliberate conflict" attack result in different impacts onto assets in the given system than the ones mentioned?

depending on the details of an attack you might not even need to increase the probability of the conflict in the first pace.

The attack here is about creating conflicting views, i.e. one or more transactions conflict between concurrently created blocks.

@ch1bo ch1bo requested a review from bwbush July 18, 2025 14:32

**Assets Affected**: Decentralization

#### T?: Honey Pot Contract
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@WhatisRT Can you check whether I summarized your attack correctly?

Copy link
Collaborator

@bwbush bwbush left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My comments were adequately addressed. It looks ready now. Thanks!

ch1bo added 10 commits July 24, 2025 11:35
This is a first sketch for a threat model as a dedicated artifact. We
have another similar collection of threats here

https://github.com/input-output-hk/ouroboros-leios/blob/main/docs/technical-report-1.md#threat-model

In this document, we follow an established process of threat modeling by
also describing a system overview, assets to protect and go more into
detail detail on threats, prerequisites, attack vector, cost
and impact.

This should be updated with more detail / reference the concrete
protocol variant we propose in the CIP and accordingly with assets,
threats and mitigations.
@ch1bo ch1bo merged commit 613deb7 into main Jul 24, 2025
1 check was pending
@ch1bo ch1bo deleted the threat-model branch July 24, 2025 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants