Live data from Hacker News

Fusker - a NodeJS security system that attacks back

github.com

21–30 of 36 posts

Re: Fusker - a NodeJS security system that attacks back

#22
OP/Creator here

Entire project was created in a matter of hours so it's pretty basic for now. Not a fan of the "this is lame shitsux" mentality going around but I'll get used to it. All included modules will become much more sophisticated with time so please hold those comments off until I get more than 2 hours to put towards the project

If you have any detection/payload suggestions please comment in here and I will most likely add them. Keep in mind that this is all for the lulz

If you have anything you want to add, feel free to fork!

Re: Fusker - a NodeJS security system that attacks back

#23

Completely misses the point of XSS and XSRF attacks. In those scenarios the 'attacking' browser is actually the attacker's victim. If you use this module, an attacker can link a victim to you and have your 'defences' arbitrarily attack them, making you part of the problem, not the solution.

Hmm... this never occurred to me. The future of the project is going to be socket.io packet analysis with detectives. The current http request analysis is really weak and not intended to be the main focus

If you want to prevent this from happening there will be http-xss and socket-xss detectives in the future, just leave out the http-xss to keep it safe. Optionally you could always set your payloads to logging only

Re: Fusker - a NodeJS security system that attacks back

#24
Not to belabor the point, since other people have assessed this library quite well, but:

1. Detecting XSS by looking for '', '(', or ')' in the URL is a very naive approach. It can be bypassed fairly easily and many XSS vectors could have payloads constructed that bypass this filter. Also, you're likely to get some false positives for a certain subset of applications, since parenthesis have legitimate uses.

2. I'm not sure on what basis the first part of the CSRF protection is valid or what it's trying to protect. Is it looking for an Accept header for application/json?

3. The second part of the CSRF protection, which looks at the referer header, seems buggy and easy to bypass. What is it trying to accomplish? Right now, it seems like it blocks POST requests where the referer is set and contains the server's hostname (which valid requests will have).

4. Detecting CSRF by looking for non-GET/POST methods is a bad idea unless your application specifically constrains itself to those two methods. Many modern applications are using PUT and DELETE internally for routing purposes.

5. Detecting LFI in the URL by looking for ../ is, again, naive (although less likely to lead to false positives than the XSS testing).

6. The most "objectionable" part here seems to be the "fight back" options. There are definitely some legitimate concerns about an attacker being able to get a targeted user banned from a site (after all, you can't distinguish between a failed CSRF that an attacker is sending and a failed CSRF that an attacker tried to convince a target to send). For the most part though, I don't think they're a big deal for a small, independent site that opts-in to them: they sound a lot like the Miserable Users mod for VB (http://www.vbulletin.org/forum/showthread.php?t=93258)

That being said, no system that operates like a WAF is going to be perfect. The idea of a mod_security-like system for node.js is very cool though. I just think the way you tried to launch it here, with no indication on GitHub or otherwise that it's not a finished product, has led to some backlash. :-)

Re: Fusker - a NodeJS security system that attacks back

#26
post #24

Not to belabor the point, since other people have assessed this library quite well, but: 1. Detecting XSS by looking for ' ', '(', or ')' in the URL is a very naive approach. It can be bypassed fairly easily and many XSS vectors could have payloads constructed that bypass this filter. Also, you're likely to get some false positives for a certain subset of applications, since parenthesis have legitimate uses. 2. I'm n…

Thanks for the suggestions. All of the detections are extremely primitive right now, I didn't get a lot of time to put work into them (the whole project has roughly 2-3 hours of time into it) but tomorrow they will be improved.

As I said to someone in another comment, the main purpose of the framework is socket.io packet analysis. The http detectives are merely for testing at this point while the framework itself matures

Re: Fusker - a NodeJS security system that attacks back

#27

OP/Creator here Entire project was created in a matter of hours so it's pretty basic for now. Not a fan of the "this is lame shitsux" mentality going around but I'll get used to it. All included modules will become much more sophisticated with time so please hold those comments off until I get more than 2 hours to put towards the project If you have any detection/payload suggestions please comment in here and I will…

Thanks for your contribution to the node community. Keep up the good work.

Re: Fusker - a NodeJS security system that attacks back

#28

OP/Creator here Entire project was created in a matter of hours so it's pretty basic for now. Not a fan of the "this is lame shitsux" mentality going around but I'll get used to it. All included modules will become much more sophisticated with time so please hold those comments off until I get more than 2 hours to put towards the project If you have any detection/payload suggestions please comment in here and I will…

Well, it would help if a link were posted when the project is in a more mature state. When something is linked and upvoted, people will judge it by the current quality, not some future state of the project.

Good luck though!

Re: Fusker - a NodeJS security system that attacks back

#29

OP/Creator here Entire project was created in a matter of hours so it's pretty basic for now. Not a fan of the "this is lame shitsux" mentality going around but I'll get used to it. All included modules will become much more sophisticated with time so please hold those comments off until I get more than 2 hours to put towards the project If you have any detection/payload suggestions please comment in here and I will…

I think the idea is fun, but the HN community has pretty high expectations. Half-implemented ideas out as a solution attracts plenty of critics.

I think what's important to take away here is that people are genuinely interested in some sort of NodeJS web security framework given by the fact that people are viewing your source and commenting at all. If we thought it was a bad idea, I don't think you would have gotten any feedback at all. So, I think if you sift through the noise, you'll find a few folks will put up some good suggestions.

Post reply on HN