Re: dns_fingerprint.nasl - silent exit after 3 timeouts, why?

Renaud Deraison <[email protected]>
Newsgroups gmane.comp.security.nessus.devel
Message-ID <[email protected]>
On Thu, Jul 22, 2004 at 09:04:48PM +0200, Pavel Kankovsky wrote:
> > > I think the most annoying part of this was the fact the plugin exited
> > > silently (and this is a "feature" of many other plugins). I think all
> > > those occurences of exit(0) should be replaced with
> > > exit("unable to open connection") or exit("too many timeouts") etc.
> > > and Nessus should write those messages to its log (and perhaps,
> > > optionally, include them in the report).
> > 
> > We are heading this way thanks to global_settings.inc. I receive too
> > many complaints already of "useless output" (like the service banners),
> > so adding a message per failing plugin is not an option.
> 
> "Not an option" is supposed to mean it won't be available, not even as
> an optional feature for people who would like it?

No. It means that _today_ having a plugin which issues
non-vulnerability related messages in the report (like reporting
connections issues) is not something that everyone wants. Thanks to
global_settings.inc this will become an optional feature in a
not-so-distant future, but it requires a lot of work as you probably
guessed already. And at the same time we have to stay up-to-date
vulnerability-wise, and unfortunately the days in the US have the same
length at those in Europe.

> > Besides, in that particular case we _know_ that not everything can be
> > fingerprinted reliably. Adding an extra message to emphasize this fact
> > is not a good idea.
> 
> But it is still a good idea (in general) to make it possible to figure out
> why the given plugin failed without having to resort to trial and error.
> Detailed error diagnostics helps to find and fix bugs, esp. bugs that are
> hard to reproduce (I am afraid quite a lot of plugin failure falls in this
> category).


Yes - Prefs->Verbose report (or maybe "Report failures") will be your
next new best friend.

> > Yes and no. The plugin you are talking about is a real special case
> > because it's UDP and stateless. If you start to highly parallelize TCP
> > plugins (80% of the network-based checks), you end up crashing embedded
> > devices and old Solaris boxes.
> 
> Most TCP plugins do not need to wait for a timeout, do they?

Yes they do. recv() takes a long time if supplied with incorrect
expected length (which is a good thing), network connectivity can be
slow, and so on. Besides, the simple fact to run N connections at the
same time really crashes many devices for a ridiculously low value of N.

That is not to say that things could not be parallelized a little
better, but this also requires a lot of work : if we decided tomorrow
that UDP plugins can run in a highly parallel setup (say 100 plugins at
the same time), then we'd have to cope problems such as excessive
bandwidth consumption (if 100 plugins _start_ at the same time, you end
up sending too many packets to the remote host). You'll also notice that
the recv() function in the UDP plugins actually _resends_ the packets,
in case the initial request has been lost, and this also consumes
bandwidth if you have many of them in parallel.


				-- Renaud
_______________________________________________
Nessus-devel mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.