Folks interested in the state of the art of this kind of DPI evasion might want to check out obs4, which is a "look-like nothing obfuscation protocol", and the default pluggable transport for connecting to tor bridges from places where tor is blocked.
I love this! Using a 2000+ year cipher to circumvent Deep Packet Inspection seems almost poetic.
I feel like the article missed out on mentioning one key thing: Using a deny-list doesn’t work. It’s much more viable to default block and allow the stuff you know you’ll allow. Defaulting to allow and blocking stuff you don’t want is how you end up being owned by rot13.
The method is interesting as a mental exercise and its archaeological interest. If you are a company employee be careful about trying these or any other type of tunneling or deep packet inspection circumvention methods.
Some companies mention in their employment contracts these type of circumvention activities, unless explicitly allowed, are a firing offense.
It's interesting how the pendulum of ideas swings back and forth over history, similar problems arise and similar solutions to them resurface also. It would be great to see that on some kind go graph or timeline.
> They permit SSL to some known websites (for https), but the moment I try to create an SSL or SSH connection to an unknown server (eg. to the bastion box), their gateway instantly terminates the TCP connection!
They are clearly already whitelisting connections, but still allow unidentified connections through?! What sort of logic is that?
The author only used rot13 to make a point about the failure mode of inspection. DPI is only there to stop everyday employees from bypassing security policies inadvertently, not to stop an actual attacker. An attacker could use any number of other approaches: hiding payloads in innocuous keywords, using actual encryption, steganography, what have you.
I'm not a security expert but we had those kind of measures at a previous job and AFAIK they are there so that a lazy employee (me) doesn't just skip configuring their tools to go through Artifactory out of laziness and introduce a supply chain vulnerability. If "pip install XYZ" just worked out of the box, how likely would it be that all 10k devs in your organization would bother configuring it to avoid PYPI?
The use of rot13 was just an amusement in this case given its vintage. Replacing rot13 with any other simple stdin/stdout transcoder should be simple to do via the socat invocation, eg base64, a sed replace command, gzip/gunzip, even an actual symmetric encryption protocol like AES, etc.
This is why rolling your own crypto often works in practice if you are a smaller operator: Nobody ****ing expects it, and there's a good chance nobody cares enough to investigate manually what you did or add support to commercial products to handle it.
I once did rot13 on /lib/firmware/* (not just 13 but 0-255), piped it via 'strings' command and find longest word in English corpus (/usr/share/dict/*). I forget what I found but it's trivial to replicate.
[+] [-] xelxebar|4 years ago|reply
[+] [-] sporksmith|4 years ago|reply
obs4: https://github.com/Yawning/obfs4
obs4 in tor: https://support.torproject.org/glossary/obfs4/
[+] [-] MadsRC|4 years ago|reply
I feel like the article missed out on mentioning one key thing: Using a deny-list doesn’t work. It’s much more viable to default block and allow the stuff you know you’ll allow. Defaulting to allow and blocking stuff you don’t want is how you end up being owned by rot13.
[+] [-] pdkl95|4 years ago|reply
"The Six Dumbest Ideas in Computer Security"
> #1) Default Permit
> #2) Enumerating Badness
[+] [-] throw0101a|4 years ago|reply
* http://www.dest-unreach.org/socat/doc/socat.html#ADDRESS_OPE...
* http://www.dest-unreach.org/socat/doc/socat.html#ADDRESS_OPE...
Just create a self-signed certificate:
for the server and tell the client not to check ("verify=0").[+] [-] belter|4 years ago|reply
Some companies mention in their employment contracts these type of circumvention activities, unless explicitly allowed, are a firing offense.
[+] [-] throwaway984393|4 years ago|reply
[+] [-] sockpuppet_12|4 years ago|reply
[+] [-] zokier|4 years ago|reply
They are clearly already whitelisting connections, but still allow unidentified connections through?! What sort of logic is that?
[+] [-] ranger_danger|4 years ago|reply
[+] [-] aaomidi|4 years ago|reply
[+] [-] annoyingnoob|4 years ago|reply
[+] [-] jeffrallen|4 years ago|reply
[+] [-] aaaaaaaaaaab|4 years ago|reply
[+] [-] usr1106|4 years ago|reply
[+] [-] xmcqdpt2|4 years ago|reply
I'm not a security expert but we had those kind of measures at a previous job and AFAIK they are there so that a lazy employee (me) doesn't just skip configuring their tools to go through Artifactory out of laziness and introduce a supply chain vulnerability. If "pip install XYZ" just worked out of the box, how likely would it be that all 10k devs in your organization would bother configuring it to avoid PYPI?
[+] [-] jortr0n|4 years ago|reply
[+] [-] vermilingua|4 years ago|reply
[+] [-] ocdtrekkie|4 years ago|reply
[+] [-] dvh|4 years ago|reply
[+] [-] rwmj|4 years ago|reply
Edit: The sort -u option hides words of the same length. Removing that option (and the head command) gives more results, but nothing that interesting.
[+] [-] spdegabrielle|4 years ago|reply
[+] [-] spdegabrielle|4 years ago|reply
[+] [-] jeffrallen|4 years ago|reply
[+] [-] kzrdude|4 years ago|reply