- From: Harry Halpin <hhalpin@ibiblio.org>
- Date: Tue, 13 Feb 2007 15:55:50 -0500
- To: Jeremy Carroll <jjc@hpl.hp.com>
- Cc: public-grddl-comments@w3.org, jena-devel <jena-devel@lists.sourceforge.net>
Jeremy, The final decision in DanC's hands, but we already decided as a WG not to use conformance labels. However, we do want implementers to be aware of security issues. So, if that text was added to section 7 as informative text and we substituted the words "GRDDL-aware agent" for "GRDDL-aware processor", would you feel like your comment has been addressed? thanks, harry Jeremy Carroll wrote: > > > This is a personal comment concerning the security considerations > section. > > a) editorial: the last paragraph of > > http://www.w3.org/2004/01/rdxh/spec#sec > > should be elsewhere, and not under security. > > b) substantive: > > Neither > http://www.w3.org/2004/01/rdxh/spec#sec > nor > http://www.w3.org/TR/2006/WD-grddl-20061024/#sec > > is adequately detailed. > > Without detailed instructions a typical semantic web developer is > unlikely to produce adequately secure code at reasonable cost. > The phrase "should take the appropriate measures" puts an unreasonable > burden on implementers, who may need to hire security experts to > advise them as to what are "the appropriate measures". > > Without appropriate advice, most GRDDL implementations are likely > to have significant security flaws, which may will lead to the > technology being branded as insecure and untrustworthy, reducing > the value of the work of the working group, and other, more secure, > implementations. > > A better approach would be, in the words quoted in your spec, to: > [[ > [use] the discussion of the "application/postscript" type [...] as a > model for considering other [...] remote execution capabilities. > ]] > > as an appendix to this comment, I attempt precisely that, and offer > that as a first draft of text that would address this comment. > > I note that the text from RFC 2046 appears to have normative force, > but "should" and "may" have their usual English meanings, rather than > the precise definitions of RFC 2119. My preference is that advice to > implementers concerning security should be normative. > > Making this change before last call would allow last call reviewers to > offer their own expert opinion as to whether the suggested text (as > modified by the WG) is adequate or not. > > ===== > End of comment. > > As an aside, in discussion with colleagues, the point was made that an > underlying problem is the unsatisfactory nature of the security > considerations for XSLT (both versions). The GRDDL WG may choose to > alert the XSLT and XQuery WGs to this comment. > > ===== > > Appendix: Draft Text > > Provenance: > taken from > http://www.faqs.org/rfcs/rfc2046.html > section 4.5.2, with much alteration > copyright issues may need to be explored, I see no copyright notice in > that copy of RFC 2046, I assume the general IETF policy allows this > form of reuse. > > > > The execution of general-purpose programming languages > as interpreters for transformations entails > serious security risks, and implementors are discouraged from simply > sending GRDDL transforms to "off-the-shelf" interpreters. While it > is usually safe to pass documents from trusted sources through a > GRDDL processor, where the potential > for harm is constrained by lack of mailicious intent, > implementors should consider all of the following before they add > the ability to execute arbitrary GRDDL transforms linked from > arbitrary Web documents. > > The remainder of this section outlines some, though probably not all, > of the possible problems with the execution of GRDDL transforms, > with particular reference to transforms in XSLT. > > [[ New point (1), not in RFC 2046 ]] > (1) GRDDL, like many Web technologies, fundamentally > relies on the dereferencing of URLs. With unconstrained > use of GRDDL, untrusted transform may access URLs which > the end-user has read or write permission, while > the author of the transform does not. This is particularly > pertinent for URLs from the file: scheme; but many other > schemes are also impacted. > The untrusted > code may, having read documents which the author > did not have permission to access, transmit the > content of the documents, to arbitrary Web > servers by encoding the contents within a URL, > that may be passed to the server. [[See tests, > currently security4, security6 in the Jena GRDDL Reader > test area]] > > (2) Dangerous operations in the XSLT language > include, but may not be limited to, the operations > involving getting a URL: > "document()", "doc()", "unparsed-text() and > "unparsed-text-available()", and "xsl:result-document" > which involves writing to a URL. > "xsl:include" and "xsl:import" present fewer risks > if they are processed before execution > of the transform, rather than during it. > However, some GRDDL processing paths, particularly > those involving profile transformations and > schema transformations, process an xsl:include > or xsl:import for one transform after having > completed the execution of some other transform. > [[Note: last sentence is true, but I don't think it exposes any risks > that are not exposed by the truth that GRDDL will get a URL generated > during a profile transformation, as in security6. Perhaps the last > sentence is unnecessary and distracting]] > > > Writers of GRDDL transforms should avoid the use of > potentially dangerous URL operations, since these > operations are quite likely to be unavailable in secure > GRDDL implementations. Software executing > GRDDL transforms should either completely disable > all potentially dangerous URL operations or take > special care not to delegate any special authority to > their operation. In particular, operations to read > or write URLs should not be executed with the > privileges of the current user, but with the privileges > associated with an untrusted party. > Such disabling and/or checking > should be done completely outside of the reach of the > transform language itself; care should be taken to > insure that no method exists for re-enabling full- > function versions of these operators. > > [[ Note (2) and (3) of 4.5.2 RFC 2046 not applicable]] > > > (3) Some implementations of the transform language may > provide nonstandard > facilities for the direct loading and execution of > other programming language code. For example, an XSLT > implementation may provide a method of calling Java code. > Such facilities are quite obviously open > to substantial abuse. GRDDL transforms should > not make use of such features. Besides being totally > implementation-specific, they are also likely to be > unavailable in secure implementations of the transformation > langauge. > Software executing GRDDL transforms should not > allow such operators to be used if they exist. > > (4) XSLT is an extensible language, and many, if not > most, implementations of it provide a number of their > own extensions. This document does not deal with such > extensions explicitly since they constitute an unknown > factor. GRDDL transforms should not make use > of nonstandard extensions; they are likely to be > missing from some implementations. Software executing GRDDL > transforms should make sure that any > nonstandard operations are secure and don't > present any kind of threat. > > (5) It is possible to write transforms that consumes huge > amounts of various system resources. It is also > possible to write transforms that loop > indefinitely. Both types of transforms have the > potential to cause damage if sent to unsuspecting > recipients. GRDDL documents should avoid the > construction and dissemination of such transforms, which > is antisocial. Software executing GRDDL > transforms should provide appropriate mechanisms to abort > processing after a reasonable amount of time has > elapsed. In addition, GRDDL software should be > limited to the consumption of only a reasonable amount > of any given system resource. > > [[ point (7) of 4.5.2 RFC 2046 n/a ]] > > (6) Finally, bugs may exist in some interpreters of the > transform language > which could possibly be exploited to gain unauthorized > access to a recipient's system. Apart from noting this > possibility, there is no specific action to take to > prevent this, apart from the timely correction of such > bugs if any are found. > > > > -- -harry Harry Halpin, University of Edinburgh http://www.ibiblio.org/hhalpin 6B522426
Received on Tuesday, 13 February 2007 20:55:54 UTC