On Dec 15, 2005, at 9:46, Isac Balder wrote:

In short I don't beleive Dave King was asking for
specifics of the code or the algorithims Tenable is
using to increase perfomance.  Let's face it the 6
bullets on the release announcement would hardly
classify as change documentation.

You're correct. George is not involved in the developement process either -- he replied with his point of view of a plugin writer and does not necessarily knows of all the NASL3-specific changes, since we all want to write as many NASL2 compatible plugins as possible.

Here's a slightly more detailed list. Still very high level, though :

NASL :

- The NASL syntax and behavior is roughly the same as for Nessus 2.x, except for the following:

+ It is now legal to have 'arrays of arrays'. Ie: foo[1] = make_list(1,2,3); works + It is now legal to write to strings (foo = "str"; foo[1] = "X"; display(foo); ) + Some functions to extend the language have been added but are not documented yet (on the top of my head) :
        - socket_ready() returns TRUE if a socket can be written to
        - socket_pending() returns TRUE if data is pending on the socket
- prompt() has been re-introduced (this allows you to write interactive nasl scripts) - fill_list(length:N, value:X) creates an array of N elements all set to value X. + A new packet forgery API (specific to Nessus3) will be released as .inc files soon + Support for multiple public keys for signed scripts (so users can sign their own scripts). Just add your RSA public keys (.pem files) in /opt/nessus/var/nessus/

- 'nasl -k <kb>' loads a KB in memory before executing a script
- 'nasl -W' executes a script but displays compilation warnings (think 'gcc -Wall') - 'nasl -V' shows a script ID, name, version,etc... in an easily parseable way - 'nasl -VV' does the same as above but also shows the script description

- 'nasl -T' has been removed due to the change of interpreter. There will be a real debugger in a future revision of Nessus (at worse Nessus 3.2.0, but maybe in a 3.0.x release) -- it's just not ready for prime time yet.




nessusd :

- shared sockets are more robust and more efficient
- internal process communication is more robust and more efficient
- new architecture to execute plugins - instead of running one plugin per process, only one process is spawned per host - Plugins are pre-processed and stored in a libdb for a faster startup of nessusd - nessusd reduces max_hosts if the CPU is too loaded (throttle_scan = no in nessusd.conf if you want to disable this behavior) - nessusd fetches new plugins by itself every 24 hours if it is registered (auto-update = no in nessusd.conf to disable this behavior). - nessusd can load '.nasl' files, but also '.nasl3' (nasl3 specific scripts) and '.nbin' (nasl3 binaries) '.inc3' are also valid

- 'nessusd -R' forces the re-processing of all the plugins (generates a new database) - killall -HUP2 nessusd dumps the state of the various NASL plugins on disk (in var/log/nessus/)



I'd also like to point out that there is a Nessus 3.0 manual in http://www.nessus.org/documentation/ which may cover items I've missed.


                                        -- Renaud
_______________________________________________
Nessus mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus

Reply via email to