8 ms·
Oxy – A Security Focused Remote Access Tool
- kotharia 8y agoNo longer able to access the website but still on GitHub https://github.com/oxy-secure/oxy https://github.com/oxy-secure/oxy
- chinarulezzz 8y ago>Memory Safe + Fast $ grep 'unsafe {' -R ~/oxy --include=*.rs | wc -l 13 Not bad.
- jandrese 8y agoIt's a good start, but the problems with SSH lately have largely been things like timing attacks that even the smartest compiler won't catch. In fact a smart optimizing compiler can make that even harder to avoid since it is more difficult to know exactly what machine code it will produce.
- nine_k 8y agoI wonder how efficient a counter-measure would be adding small random delays in every part of code, possibly injected at MIR or LLVM level. It might drown any timing information in random noise. They will definitely lower the performance, but likely a bit slower and more secure connection process is preferable to a less secure one.
- ryanong 8y agoI thought timing attacks only matter for clear data to encrypted data and back part of the library, and as long as they didn’t write any data parsing that is content specific pre or post encryption their encryption and didn’t write their own encryption then there shouldn’t be any major holes.
- omeid2 8y agoThat is not bad after all, I am not bashing oxy, haven't studied it yet, but don't forget that the dependencies could be using more, and there is a fair few of them[0]. https://github.com/oxy-secure/oxy/blob/571ef12199f8b0f3eca5559f031b572677b8ab86/Cargo.toml#L15-L39 https://github.com/oxy-secure/oxy/blob/571ef12199f8b0f3eca55...
- floatboth 8y agobtw, a tool for quickly counting unsafe in dependencies: https://github.com/anderejd/cargo-geiger https://github.com/anderejd/cargo-geiger
- twic 8y agoI think they're all used for FFI: - in ui.rs, for resetting the blocking state of stdin via fcntl - in tuntap.rs, for an ioctl to do some tun/tap setup, and resetting errno beforehand - in pty.rs, for ioctls for controlling terminal admin and setting the terminal size - in util.rs, for getting the current UID, calling getpwnam or getpwuid, and extracting field values from the resulting passwd struct I have to confess that i don't know the details of the Linux API well enough to know for sure, but they all look eminently reasonable.
- tmikaeld 8y agoSeems really good! Might be interesting when there's an official third party audit (Yeah i know you do pentesting as a profession but that's biased, we need unbiased). A link to the Github repo would also help with gaining usage: https://github.com/oxy-secure/oxy https://github.com/oxy-secure/oxy
- scandox 8y ago> Years of testing and battle hardening? No, it's super green. But hey, if you try it you'll help make it less green! I’m interested: how long does it take for a piece of critical software like this to gain widespread adoption with a non-shite incumbent?
- tmikaeld 8y agoHaving it in all Linux/Unix default repos would certainly help?
- Spivak 8y agoYou pretty much just have to demonstrate the benefits to the maintainers of a few major distros and that it should be the default and the rest will follow to avoid breaking interop. Two major releases is a safe bet from the time the decision is made so <10 years.
- raesene9 8y agoThis is interesting, but shows some of the problems with the word "secure" The app. promises to be more secure than OpenSSH and provides a number of reasons why it thinks it will be. However the site is entirely anonymous, so you have no idea who wrote this tool and what their affiliations or background are. So either you audit the code to get some assurance, or you trust the author(s) without any evidence. Also the lack of any form of signed binaries would make me a little nervous from a security focused tool. You're then not only trusting the author(s) but their web hosting providers as anyone with access to that webserver can change the binary without it being obvious that they have.
- tmikaeld 8y ago...and 10 lines of css would be nice.
- code_duck 8y agoComing from years of open source software, I trust this sort of presentation more.
- nickik 8y agoActually I think this just smells of low effort. As a comparative: https://www.wireguard.com/ https://www.wireguard.com/ That how a serious open source project looks like.
- lucb1e 8y agoI really like the site as it currently is. I've been considering converting my own website, which has CSS but I've still gotten readability complaints about (usually I'm the one complaining), to such a plain format.
- tzahola 8y agoFeel free to change your browser's default stylesheet if you're not satisfied with it.
- 8y ago
- thesimon 8y agoAuthor seems to be https://twitter.com/JennaMagius/status/1010893277069914113 https://twitter.com/JennaMagius/status/1010893277069914113
- deleted 8y ago[deleted]
- kuwze 8y agoMan if this guy copied Mosh's feature-set it would be really awesome. edit: I guess I assumed something I shouldn't have
- tptacek 8y agoIt does not appear to be a "guy".
- hjek 8y ago> Definition of guy > 1 a : man, fellow > b : person —used in plural to refer to the members of a group regardless of sex > saw her and the rest of the guys From https://www.merriam-webster.com/dictionary/guy https://www.merriam-webster.com/dictionary/guy
- tptacek 8y agoI don't know that you read the definition you just quoted as carefully as you think you did.
- mlindner 8y agoYou're nitpicking this too much. "guy" is used by women and men, and probably others as well though I haven't heard it personally.
- al3xnull 8y agoThe virtue signaling doesn't come off as genuine as you tried to convey it.
- scandox 8y agoIf it's virtue signalling to point out a lack of precision then...well...harrumph...etc
- 8y ago
- elliotpage 8y agoI really enjoy the plain-text website. Bizarre font choices but perhaps the easiest to read site I have seen for a while!
- mxuribe 8y agoIf you meant the font choice for the general text of the website, than that's just whatever default font your web browser has chosen. In essence this website's code has not designated any font choice. So, whenever web browsers are not directed to use a certain font/typeface, they defer to their default font - usually some default system font. This has been the practice of web browsers since the very beginning of the web. As an example, for me on a windows 7 machine using chrome, it displays the font as Times New Roman; other browsers and OS combo might show different system fonts. I hope this helps!
- markussss 8y agoThe questions are styled to use courier, though. .question { font-family: Courier; }
- elliotpage 8y agoYes, this is what I meant! Thank you!
- pm 8y agoI'm not a security expert, so could one of the security experts who frequent HN weigh in on this? Otherwise this looks super cool.
- thesimon 8y agoI'm not a security expert and can only point out one thing that I noticed from my knowledge from network security class in college: >Upon successful verification of the signature contained in the third message (and verification that the eight-byte timestamp is current), the server proceeds to send three symmetrical messages: a long term server public key, an ephemeral server public key, and a signature message authenticating the ephemeral key. This might be vulnerable to replay attacks. The user proves freshness of his request by sending a signed unix timestamp, the server however doesn't seem to do that. Shouldn't compromise the security of the protocol, just one thing that I noticed.
- lvh 8y agoI haven't audited the code, but did take a peek at the protocol. Nothing obviously busted from the description, but there are definitely some weird design choices. https://news.ycombinator.com/item?id=17393780 https://news.ycombinator.com/item?id=17393780
- snvzz 8y ago>Well how does rsync work, then? rsync relies on executing a non-ssh helper program on the remote. And that's a bad idea why?
- simtel20 8y agoI don't think it's being called out as a bad idea. It seems to me that the author sees it as a feature to provide this in the tool and protocol, and is mentioning it. Whether it really is a good idea remains to be seen. [edited when I re-read the blurb and realized that oxy does more than ssh in this case]
- skibz 8y agoI interpreted this as not being a ‘bad idea’, rather, the implementation of rsync’s feature could be simplified if OpenSSH behaved in a similar way to Oxy.
- CGamesPlay 8y agoIt is a "bad idea" in terms of attackable footprint, although I don't think it was being called out as a bad idea in this page, more of clarification that the stated feature really doesn't exist in SSH.
- snvzz 8y ago>It is a "bad idea" in terms of attackable footprint So the more the features jammed in, the safer? Something about that doesn't seem alright to me.
- lucb1e 8y agoThis looks really neat. A fresh codebase creates the opportunity for some new things that would otherwise be breaking or hard to implement, as the author seems to have done.
- LinuxBender 8y agoInteresting! - Does this have the buffer limitations for file transfer that ssh has? i.e. Can I send near wire speed? - Which independent third party pen testing and code validation groups have reviewed this? - Since this does not depend on rsync helpers for file transfers, are there any plans to add multipart transfers similar to lftp's p-get or other mirror sub-system functions? i.e. split a 40gb file into 20 chunks / streams. - Is the UDP knocker optional? I can think of places that won't work. Captive portals, hotels, some airports, some public wifi, some corp networks. - What setcap capabilities does this require? - Any plans to add modules or helpers for things like U2F? - Any thoughts on centralized management of key trusts? that is the biggest gap in openssh that I know of and the original author of ssh acknowledges. i.e. "who" is really logging in as "who", "where" and how old is that key?
- nickik 8y agoU2F would be amazing. I hacked around with adding second factors to openssh and its possible but not great. There was even a hack to do it with U2F. But to have a ssh like thing that supports U2F out of box would be amazing.
- rkeene2 8y agoOpenSSH supports, at the very least, PKCS#11 modules out of the box these days, which can be used with hardware security modules.
- floatboth 8y agoFor a Yubikey, you don't even have to dick around with the PKCS11 mess. Just use gpg-agent, it will use the GPG key on your Yubikey as an SSH key.
- nickik 8y agoI have a Yubikey to but I never really liked that setup. I would much prefer to have my private keys on my computer and have U2F.
- otterpro 8y agoHaving an alternative to SSH is appealing, as SSH is pretty much required for most servers but it is also target of most attack vectors. If Oxy becomes production-ready, I'd definitely consider using it so I can block all SSH and eliminate SSH brute force attacks on my servers. As for SSH security, I strongly recommend Fail2Ban, alternate SSH port number, and requiring key-based authentication.
- provlem 8y agoThis is cool. Since, I know rust, I will be auditing source code tool soon and will write up, if I find any thing.
- lvh 8y agoGreat to see protocol versioning over negotiation. I don’t think replacing OpenSSH is as important as wireguard replacing OpenVPN but it’s up there. Protocol tasting notes: - If you’re going to dole out PSKs, why care about signatures? If you’re going to dole out PSKs, why are they separate from the knock PSKs? (You sort of address this by sharing knock PSKs are per server and handshake PSK is per pair. But if I have a PSK per pair anyway, why not use it for knocks?) - the knock protocol looks like semantically it wants a PRF. Is there a reason not to make it a PRF? - Why isn’t this a Noise instantiation? - Why sign instead of 3DH? - Why is PBKDF2 involved in the PSK (preshared key)? Of these, not using a PRF feels like a smell (probably not a vuln, but why would you choose to have that in your spec?). On the other hand, having PSKs and then choosing to have PBKDF2 involved (to stretch a passphrase, I guess?) and then having a key exchange anyway is really strange to me. The point of a key exchange protocol is to get a shared secret. But the protocol starts by assuming you already have a shared secret! Just use that already. Plugin in a PRF and the current time and some randomness and BAM: fast trustworthy crypto forever. Of course, there's a reason we don't use PSKs all over the place: it means that instead of exchanging N public keys you have to exchange N^2 secret ones. People do it, but it's not the default. I'm fine with something that uses PSKs and something that uses public keys, but I don't understand why a system would have both. You get the operational complexity of PSKs and the performance of KEXes. Why bother? (I understand that the protocol says the PSK is to make it post-quantum, but you'd get identical post-quantum properties if you just skipped the KEX!)
- galadran 8y agoThe Noise framework (and Wireguard) deliberately support the combination of psk and public key authentication. One clear benefit is that you get redundancy against a failure in either mode. If your DH implemention is broken, the attacker still has to compromise your shared secret. Alternatively if the attacker compromises your shared secret, they still have to break your public key crypto. In short, its an excellent hedge against user or implementor error. Less tangibly, it can prevent an adversary from recording your traffic now, waiting until Quantum Computers are practical, breaking your public key crypto and reading your messages. Sure, you can't just slap both modes together and claim the adversary has to break both, some care is involved, but it absolutely isn't strange at all. tl;dr there are plenty of good reasons to use a combination of modes. Both Noise and Wireguard have built on support for strengthening public key crypto with psks.
- parliament32 8y ago>Oxy operates as a hidden service, and connection initiation occurs over two phases: a UDP "knock", followed by a TCP connection that will contain all subsequent connection data. The TCP connection defaults to port 2600; however, the UDP "knock" uses a port number between 1025 and 65535, derived from the server's "identity" value. By not using a standardized port, detection of oxy services (and thereby deployment of exploits targeting the oxy service) is made more difficult. By not using a standardized port, I can't firewall off UDP on non-essential ports... I hope there's a way to disable this.
- wstuartcl 8y agocurl -O https://oxy-secure.app/oxy chmod +x oxy ./oxy --help All the signs of a security conscious developer.
- newdayrising 8y ago"Dylan Davis (@JennaMagius) is a senior security analyst at RiskSense. He has performed a variety of Fortune 500 incident response engagements, discovered new CVEs in major software, and performed vulnerability analysis on a wide variety of embedded devices."