xrootd security FAQ


Intro

This page is intended for the sysadmins and/or site computing security who suddenly find themselves with someone in their office who wants to run elements of the xrootd system on their machines.

After the initial response of "Huh? What the !%@%# is xrootd?", for which answers can be found in the xrootd web pages, most admins and/or site computing security people will have a set of security related questions.

This page collects answers from the primary developer, Andy Hanushevsky, to some sets of questions which have been sent. If you have xrootd-related security questions not covered below feel free to send them to the mailing list.

Questions from Nick White - RAL

Will we get source RPMs so that we can compile xrootd per OS?

Both a source rpm and a simple source tarball are made available with each xrootd version.

Will we get binary RPMs, which are OS dependent?

The source RPM's and tarballs are always provided. The binary RPM is provided solely for convenience, but will typically be available for the most common platforms in use at high energy physics sites.

How will security issues with xrootd be handled?

As for security patches; that would be handled as any other patch.

A new version will be produced and announced on the mailing list. How the new version is distributed and deployed withing the site is up to the local sysadmin. As the clients are intentionally designed to be fault-tolerant against server restarts, deployment of new versions (with security fixes, for example) should be possible without complicated scheduled outages.

Let me elaborate on a related topic. The current xrootd supports Kerberos 5 authentication. CERN is quickly providing additional security mechanisms (GSI, etc). I doubt there will be many authentication types that are not supported. Additionally, security is handled via a plugin mechanism. So, any site can easily add whatever authentication is relevant to them. The enhanced filesystem support comes with an authorization package. While not a plugin, it is a separate linkable library.

Who will be responsible for patching xrootd?

What dependencies does xrootd have such as compilers, linkers, OSes, glibc, Java, etc....?

We have gone out of our way to make sure that the server side does not depend on any third party packages and is compiler and OS agnostic.

Are there web pages that hold security info?

See the pages linked from the main xrootd page.


Questions from Gary Buhrmaster - SLAC computing security

There are a number of good books on how to write secure code. Which is the one the developer uses as a guide?

The author uses his in-depth experience in the security field (e.g., author of side-car and virtual smart card) as well as numeous seminars and courses on security to guide his work.

What account does the code run under? Does the code drop all capabilities (on platforms where capabilities exist) after startup?

It only runs under a non-privileged user (though I suppose it should verify that it is not being run as root -- though you get what you ask for). We have not seen any platforms that we support where dropping capabilities is an option in a portable fashion.

What trust relationship does that account require outside the local machine for full functionality of the product?

Currently, host-based authentication and admin control. Not great but ok for now. Future plans for strong authentication where it makes sense (e.g., cross-domain services).

Was the code written with security or functionality as the highest priority?

Yes in the sense that security competed on equal footing but was never compromised to meet another goal.

Has the code been independently audited for security issues (for example, use of strcpy, snprintf, system, and appropriate checking input parms for sanity before using them, etc)?

No.

What code review process occurs to insure that new proposed features or changes do not compromise security?

None.

Is the code GPL'd, or does it have usage and/or (re)distribution restrictions?

It is distributed under a Berkeley-style license.

Is the code possibly encumbered based on any developer(s) having any previous access to any proprietary source code or information and insights made available under NDA (once tainted, there is no way to untaint an individual, which means that others may not be able to view xrootd code either, even to verify its security status, without losing their ability to provide code in the future)?

None to my knowledge.

What authenticators are available, and which ones have been demonstrated in a production environment? What sites?

Kerberos 5 here and at CERN.

Is the protocol proxyable and firewallable with commercial products (including load balancers), including their authentication/authorization mechanisms? Does it support socks?

The protocol is proxiable and firewallable. It does not support socks.

Does the protocol support/require full data encryption?

Support, yes (never implemented); require no.

Does the protocol support/require encryption for authentication/authorization?

Depends on the authentication method.

Does the protocol support/require data integrity validation?

No.

What authentication, authorization and resource allocation schemes exist to insure site policy is enforced both with and without proxies and front-end load balancers.

A general authorization package is available and is site optional. SLAC has not chosen the option.

What local/remote management services are provided (stop, start, ?)? How are they authorized?

Full fledged services available. Strong authentication required.

What local/remote instrumentation is supposed? How are they authorized?

Monitoring. No secure information is made available. Information can be freely obtained.

What connection/application throttling is implemented to insure that (D)DOS attempts will not succeed against the server?

Server will delay socket communication and break requests into mangeable pieces.

Why would I want to offer remote root access for anyone, I thought that was wuftp's job (bad joke due to a VERY confusing choice of name for the underlying programs - not your fault)?

Not my idea.

Who are the complete list of developers who have contributed code, and which was assigned as the security review engineer?

So far me (Andy Hanushevsky) and Heinz Stockinger. I was responsible for the security review (OK not independent but that's all we had).

For xrootd, what security weaknesses in the protocol/program are the developers aware of?

The only weakness is that sites can select to run without security (i.e., it's not enforced but has to be configured).

What percentage of future time will the developers spend reviewing code for security issues?

It's constantly ongoing.

What is a "best practice" configuration for maximum security?

Strong authentication and full access control.

What other sites have implemented xrootd, and who are the site security officers that I can talk to to understand what process they followed to review and approve the product?

IN2P3, CNAF, INFN-Padova and RAL. We never asked.


Last modified 19-Aug-2004, Peter.Elmer@cern.ch