mojaloop / project

Repo to track product development issues for the Mojaloop project.
Other
22 stars 15 forks source link

Killing the audit process allows auditable activities to be carried out without an audit trail being generated #3914

Closed PaulMakinMojaloop closed 1 week ago

PaulMakinMojaloop commented 1 month ago

Summary: When running vNext, I found that if the audit BC process failed to start, or was directly terminated, I was able to carry out auditable activities (liquidity changes etc) with no entries being made in the audit log. This is a clear security/integrity risk; if an attacker is able to kill the audit process, they could (for example) allow a DFSP to continue transaction even if there is no liquidity available; come settlement time, this presents an existential risk to the scheme operator.

Severity: High

Priority: Critical

Expected Behavior If it is not possible to add an audit log entry, then the associated activity should not be allowed.

Acceptance Criteria

elnyry-sam-k commented 1 month ago

Thanks @PaulMakinMojaloop , this is critical. I've observed the same as well.

PhyuSinMyat8 commented 2 weeks ago

Dear @PaulMakinMojaloop ,

We have already tested the auditing service and discovered that once the auditing service has been restored, the actions that were performed during the downtime are recorded in the audit log.

Scenario 1 Step 1 : Terminate the auditing service

image.png image.png

Step 2 : Deposit 1000 MXN to demoWalletLcc

image.png

Step 3 : Approve that fund deposit by user account

image.png

Result 1 : Any audit log is available since auditing service is down

image.png

Step 5 : Auditing service is up

image.png

Result 2 : Fund deposit and approval actions appear after the service has been up

image.png

Result 3 : Log details in kibana search

image.png

Scenario 2 Step 1 : Terminate the auditing service Step 2 : Make transactions

image.png image.png image.png

Step 3 : Auditing service is up Result : These transactions appears in kibana after the service has been up

image.png
ei-nghon-phoo commented 2 weeks ago

Testing Result after termination of Kafka service

State 1: Kafka service is up.

image.png

result 1: transaction is successful with 0 error.

image.png

State 2: Kakfa service is terminated.

image.png

Result 2: transaction is failed with 100% error rate.

image.png

Result 3: No participant data available and no deposit activity available after Kafka service termination.

image.png

Result 4: All the related services that need to communicate with Kafka that included settlement, participant, quote, transfer, account lookup and such are down.

image.png
Monicaminzy commented 2 weeks ago

test momo

JulieG19 commented 1 week ago

Confirmed by @PaulMakinMojaloop that we can closed this comment.