Skip to content
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

Get entity type in local transform #58

Open
simonemarfo opened this issue Oct 26, 2023 · 5 comments
Open

Get entity type in local transform #58

simonemarfo opened this issue Oct 26, 2023 · 5 comments

Comments

@simonemarfo
Copy link

As described in Caveats, entity type is not passed to local transform, the type is always replaced with local.Unknown.
Is there a way to retrieve entity type in TRX or it is a Maltego limitation?

@crest42
Copy link
Collaborator

crest42 commented Nov 9, 2023

Hey @simonemarfo. This is a limitation with local transforms in particular. We advise you to use the pTDS if you require the entity type.

Can you describe what you need the entity type for in a bit more detail? Maybe we can help you find another solution.

@NullVibes
Copy link

NullVibes commented Dec 19, 2023

I 2nd this as an issue...
Scenario: Local transform reads data from a locally stored file on an air-gapped machine. Not uncommon...

Why would using the pTDS be required to query the entity type?

Line 345 of maltego.py seems to be the assignment causing this issue, while Line 309 clearly pulls the type, both during def init.

maltego.py -> Line 309: self.Type = entity.attributes["Type"].value
maltego.py -> Line 345: self.Type = "local.Unknown"

Possible solution?
maltego.py -> Line 345: self.Type = entity.attributes["Type"].value

@crest42
Copy link
Collaborator

crest42 commented Dec 19, 2023

Thanks for the feedback. The reasoning is that local transforms are executed with a very rudimentary CLI implementation, while the iTDS or pTDS provides a richer HTTP-based protocol. The proposed solution wouldn't work for this reason as well. The entity object is constructed from the HTTP body which we cannot transfer via CLI due to size limitations (This is also the reason we do not support entity properties in local transforms).

Local transforms are meant for very rudimentary transform support only and since all local transforms are defined on a single entity type, we suggest hard-coding the entity type in the transform. That does work assuming you are not relying on inheritance.

We are going to evaluate the requirement, but we are likely going to deprecate local transform in the future for a more future-proof alternative that has full protocol support rather than this limited subset. To solve the requirement of having entity ID's in air gapped envrionments, an iTDS is required for now.

@NullVibes
Copy link

Understood. Thanks for that feedback.

@NullVibes
Copy link

NullVibes commented Dec 20, 2023

Looking into this more, it sounds like custom transform development will soon require a LICENSE FEE in the form of an iTDS (a Business-class Enterprise/E+ license), or developers give their code over to the pTDS. Is this correct?

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

No branches or pull requests

3 participants