"Fossies" - the Fresh Open Source Software Archive 
Member "libsafe-2.0-16/doc/whitepaper-1.3/whitepaper-13.bib" (6 Feb 2001, 21038 Bytes) of package /linux/misc/old/libsafe-2.0-16.tgz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) BibTeX source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 %------------------------------------------------------------------------------
2 % Binary instrumentation
3
4 % Pixie
5 @TechReport{Smith90,
6 author = "Michael D. Smith",
7 title = "Tracing with {Pixie}",
8 institution = "Center for Integrated Systems, Stanford University",
9 year = "November 1991",
10 number = "CSL-TR-91-497",
11 }
12
13 @InProceedings{WAL:1991,
14 author = "David Wall",
15 title = "{\em``Systems for Late Code Modification''}",
16 booktitle = "{``Code Generation --- Concepts, Tools, Techniques'',
17 Proceedings of the International Workshop on Code
18 Generation, Dagstuhl, Germany, 20-24 May 1991}",
19 editor = "Robert Giegerich and Susan L. Graham",
20 series = "Workshops in Computing",
21 year = "1991",
22 pages = "275--293",
23 publisher = "Springer-Verlag",
24 note = "ISBN 3-540-19757-5 and 3-387-19757-5",
25 abstract = "Modification of code after it has been generated is
26 useful for a variety of applications including some
27 kinds of late optimization and many kinds of high-level
28 and low-level instrumentation and simulation. Two
29 systems that have been developed for doing this are the
30 code modification part of my Mahler system and the
31 {"}pixie{"} tool developed independently at Mips. The
32 Mahler code modifier is part of the linker, and
33 modifies object modules as they are being linked. This
34 has several advantages. An object file contains a
35 relocation dictionary and loader symbol table, so
36 Mahler can recognize address references and can correct
37 them to reflect the changes made. The symbol table also
38 provides a channel for additional information that the
39 compiler can include to explain tricky things in the
40 compiled code. Mahler has the added advantage that the
41 Mahler compiler produces all of the object modules: it
42 serves both as the back end of all high-level compilers
43 and also as the only available assembler. This means
44 that any coding conventions followed by the Mahler
45 compiler are guaranteed to hold throughout the entire
46 program. Mahler has the disadvantage that the linker is
47 nonstandard. Moreover, a user who requests a particular
48 application must re-link the program, and so must know
49 what object modules and libraries make up the program.
50 The pixie system works differently. Pixie modifies an
51 executable file that has already been fully linked. The
52 relocation dictionaries are gone, and the loader symbol
53 table may be gone as well. This means that a user can
54 invoke pixie on an executable without knowing or caring
55 how it was built. However, it also means that pixie
56 must be conservative in many ways: for instance, each
57 indirect jump in the original code is replaced by a
58 sequence of instructions that jumps via a huge address
59 translation table incorporated into the modified
60 executable. This kind of overhead makes pixie an
61 unsuitable medium for modifications that optimize,
62 though it is still very convenient for modifications
63 that instrument. I am exploring two intermediate points
64 between Mahler and pixie. The first is {"}dixie{"},
65 which acts on an executable as pixie does, but assumes
66 that it was generated using the Mips compiler
67 conventions. Most executables include some assembly
68 code from libraries, which might not follow these
69 conventions, so dixie looks for library routines that
70 it knows violate the conventions but that it can
71 understand anyway. In many cases this allows dixie to
72 modify a program without needing the big jump table,
73 though programs that contain unexpected indirect
74 procedure calls must still include the table. The
75 second is {"}epoxie{"}, which assumes that the program
76 has been completely linked using an incremental linker
77 that leaves the relocation dictionaries in place. (Unix
78 linkers normally have an option that does this.) This
79 gives waxie some of Mahler's advantages without
80 requiring modifications to the standard linker. A jump
81 table is never required, and the code modification
82 process can (I hope) be unintrusive enough to use for
83 optimization as well as for instrumentation.",
84 }
85
86 @Article{Wilson:1996:DBO,
87 author = "Linda S. Wilson and Craig A. Neth and Michael J.
88 Rickabaugh",
89 title = "Delivering Binary Object Modification Tools for
90 Program Analysis and Optimization",
91 journal = "Digital Technical Journal of Digital Equipment
92 Corporation",
93 volume = "8",
94 number = "1",
95 pages = "19--31 (or 18--31??)",
96 month = may,
97 year = "1996",
98 coden = "DTJOEL",
99 ISSN = "0898-901X",
100 bibdate = "Thu Mar 20 18:15:43 MST 1997",
101 url = "ftp://ftp.digital.com/pub/Digital/info/DTJ/v8n1/Delivering_Binary_Object_Modif_04jun1996DTJL02P8.ps;
102 http://www.digital.com:80/info/DTJL02/DTJL02AH.HTM;
103 http://www.digital.com:80/info/DTJL02/DTJL02.HTM;
104 http://www.digital.com:80/info/DTJL02/DTJL02SC.TXT;
105 http://www.digital.com:80/info/DTJL02/DTJL02P8.PS;
106 http://www.digital.com:80/info/DTJL02/DTJL02PF.PDF",
107 abstract = "Digital has developed two binary object modification
108 tools for program analysis and optimization on the
109 Digital UNIX version 4.0 operating system for the Alpha
110 platform. The technology originated from research
111 performed at Digital's Western Research Laboratory. The
112 OM object modification tool is a transformation tool
113 that focuses on postlink optimizations. OM can apply
114 powerful intermodule and interlanguage optimizations,
115 even to routines in system libraries. Atom, an analysis
116 tool with object modification, provides a flexible
117 framework for customizing the transformation process to
118 analyze a program. With Atom, compilation system
119 changes are not needed to create both simple and
120 sophisticated tools to directly diagnose or debug
121 application-specific performance problems. The linker
122 and loader are enhanced to support Atom. The
123 optimizations OM performs can be driven from
124 performance data generated with the Atom-based pixie
125 tool. Applying OM and Atom to commercial applications
126 provided performance improvements of up to 15
127 percent.",
128 acknowledgement = ack-nhfb,
129 classcodes = "C6150G (Diagnostic, testing, debugging and evaluating
130 systems); C6150J (Operating systems); C6150C
131 (Compilers, interpreters and other processors); C6115
132 (Programming support)",
133 corpsource = "Nebraska Univ., Lincoln, NE, USA",
134 keywords = "Alpha platform; application-specific performance;
135 Atom; binary object modification tools; compilation
136 system; Digital UNIX version 4.0 operating system;
137 optimization; postlink optimizations; problems;
138 program; program analysis; program compilers; program
139 debugging; transformation tool; Unix",
140 treatment = "A Application; P Practical",
141 }
142
143 @TechReport{CMU//CS-94-137,
144 type = "Technical Report",
145 number = "CS-94-137",
146 title = "Adaptable Binary Programs",
147 month = apr,
148 notes = "Compilation, late code modification, program
149 instrumentation",
150 pages = "18",
151 year = "1994",
152 bibdate = "September 13, 1995",
153 author = "Robert Wahbe and Steven Lucco and Susan L. Graham",
154 abstract = "To accurately and comprehensively monitor a program's
155 behavior, many performance measurement tools must
156 transform the program's executable representation or
157 binary. By instrumenting binary programs to monitor
158 program events, tools can precisely analyze compiler
159 optimization effectiveness, memory system performance,
160 pipeline interlocking, and other dynamic program
161 characteristics that are fully exposed only at this
162 level. Binary transformation has also been used to
163 support software-enforced fault isolation, debugging,
164 machine re-targeting and machine-dependent
165 optimization. At present, binary transformation
166 applications face a difficult trade-off. Previous
167 approaches to implementing robust transformations incur
168 significant disk space and run-time overhead. To
169 improve efficiency, some current systems sacrifice
170 robustness, relying on heuristic assumptions about the
171 program and recognition of complex, compiler-dependent
172 code generation idioms. In this paper we present
173 adaptable binaries, a technique for implementing
174 robust, efficient, and compiler-independent binary
175 transformations. We evaluated a prototype
176 implementation of adaptable binaries under the Ultrix
177 4.2 operating system and the MIPS processor
178 architecture. Using the C SPEC92 benchmarks, we
179 assessed adaptable binaries in three ways. First, we
180 demonstrated that the information necessary to build
181 adaptable binaries can be compactly recorded,
182 increasing space overhead by only 9\% for the SPEC92
183 benchmarks. Second, we measured the run-time overhead
184 of previous approaches to implementing robust binary
185 transformations, and showed that adaptable binaries
186 significantly reduce this overhead. Finally, we
187 measured the run-time transformation overhead of two
188 user applications, pixie and MemSpy. For our benchmark
189 programs, using adaptable binaries eliminates pixie's
190 110\% average transformation overhead and reduces
191 MemSpy's average overhead from 1296\% to 33\%.",
192 institution = "Carnegie Mellon University, School of Computer
193 Science",
194 }
195
196 % Ufo Global File System
197 @InProceedings{Alexandrov:1997:EOS,
198 author = "Albert D. Alexandrov and Maximilian Ibel and Klaus E.
199 Schauser and Chris J. Scheiman",
200 title = "Extending the Operating System at the User-Level: the
201 {Ufo} Global File System",
202 booktitle = "Proceedings of the 7th USENIX Annual Technical Conference",
203 year = "1997",
204 }
205
206 % Janus
207 @InProceedings{goldberg96:secure,
208 author = "Ian Goldberg and David Wagner and Randi Thomas and
209 Eric A. Brewer",
210 title = "A Secure Environment for Untrusted Helper
211 Applications",
212 url = "http://www.cs.berkeley.edu:80/~daw/papers/janus-usenix96.ps",
213 booktitle = "Proceedings of the 6th USENIX Security Symposium",
214 year = "1996",
215 abstract = "Many popular programs, such as Netscape, use untrusted
216 helper applications to process data from the network.
217 Unfortunately, the unauthenticated network data they
218 interpret could well have been created by an adversary,
219 and the helper applications are usually too complex to
220 be bug-free. This raises significant security concerns.
221 Therefore, it is desirable to create a secure
222 environment to contain untrusted helper applications.
223 We propose to reduce the risk of a security breach by
224 restricting the program's access to the operating
225 system. In particular, we intercept and filter
226 dangerous system calls via the Solaris process tracing
227 facility. This enabled us to build a simple, clean,
228 user-mode implementation of a secure environment for
229 untrusted helper applications. Our implementation has
230 negligible performance impact, and can protect
231 pre-existing applications.",
232 }
233
234 % Ballista
235 @conference{koopman99,
236 author = "Philip Koopman and John DeVale",
237 title = "Comparing the Robustness of POSIX Operating Systems",
238 booktitle
239 = "Proceedings 29th International Symposium on Fault-Tolerant
240 Computing (FTCS-29)",
241 year = 1999,
242 month = jun,
243 address = "Madison, Wisconsin, USA",
244 pages = "30-37"
245 }
246
247
248 % n-DFS
249 @incollection{fowler95,
250 author = "Glenn Fowler and David Korn and Stephen North and Herman Rao
251 and Kiem-Phong Vo",
252 title = "Libraries and File System Architecture -- n-DFS: The
253 Multiple Deimensional File System",
254 booktitle
255 = "Practical Reusable UNIX Software",
256 publisher
257 = "John Wiley \& Sons, Inc.",
258 year = 1995,
259 editor = "Balachander Krishnamurthy",
260 chapter = "2.5",
261 pages = "82-90",
262 address = "New York, New York, USA"
263 }
264
265
266 @conference{wagner00,
267 author = "David Wagner and Jeffrey S. Foster and Eric A. Brewer and
268 Alexander Aiken",
269 title = "A First Step Towards Automated Detection of Buffer Overrun
270 Vulnerabilities",
271 booktitle
272 = "Proceedings 7th Network and Distributed System
273 Security Symposium (to appear)",
274 year = 2000,
275 month = feb,
276 }
277
278 @InProceedings{stackguard98,
279 author = "Crispin Cowan and Calton Pu and Dave Maier and Heather
280 Hinton and Peat Bakke and Steve Beattie and Aaron Grier
281 and Perry Wagle and Qian Zhang",
282 title = {{StackGuard:} Automatic Adaptive Detection and Prevention
283 of Buffer-Overflow Attacks},
284 booktitle = {Proceedings of the 7th USENIX Security Conference},
285 year = 1998
286 }
287
288 %% -----------------------------------
289
290 @Misc{cert,
291 key = {CERT},
292 title = {{CERT} coordination center},
293 howpublished = {\url{http://www.cert.org}}
294 }
295
296
297 @Misc{dildog,
298 author = {dark spyrit aka Barnaby Jack},
299 title = {Win32 Buffer Overflows (Location, Exploitation
300 and Prevention)},
301 howpublished = {\url{http://www.insecure.org}}
302 }
303
304
305 @Misc{linux98a,
306 author = {Linus Torvalds},
307 title = {Posting to Linux Kernel Mailing List},
308 howpublished = {\url{http://www.lwn.net/980806/a/linus-noexec.html}},
309 year = 1998,
310 }
311
312 @Misc{Mudge95,
313 author = {Mudge},
314 title = {How to write Buffer Overflows},
315 howpublished = {\url{http://www.insecure.org/stf/mudge_buffer_overflow_tutorial.html}},
316 year = 1995
317 }
318
319 @Article{Instenes:1997:SSW,
320 author = "Shawn Instenes",
321 title = "Stack Smashing: What To Do?",
322 journal = ";login: the USENIX Association newsletter",
323 month = apr,
324 year = "1997",
325 }
326
327 @Misc{smith97,
328 author = {Nathan Smith},
329 title = {Stack Smashing vulnerabilities in the {UNIX}
330 operating system},
331 howpublished = {\url{http://millcomm.com/~nate/machines/security/stack-smashing/nate-buffer.ps}},
332 year = 1997
333 }
334
335 @Article{aleph198,
336 author = {{Aleph} One},
337 title = {Smashing The Stack For Fun And Profit},
338 journal = {Phrack Magazine},
339 year = 1998,
340 volume = 49,
341 number = 14
342 }
343
344 @Article{thomas99,
345 author = {Evan Thomas},
346 title = {Attack Class: Buffer Overflows},
347 journal = {Hello World!},
348 year = 1999
349 }
350
351
352 @Misc{gcc-extensions,
353 author = {Richard Jones},
354 title = {Bounds Checking Patches for GCC},
355 howpublished = {\url{http://web.inter.NL.net/hcc/Haj.Ten.Brugge}}
356 }
357
358 @Misc{snarskii97,
359 author = {Alexandre Snarskii},
360 title = {Increasing overall security....},
361 howpublished = {\url{ftp://ftp.lucky.net/pub/unix/local/libc-letter} and \url{http://www.lexa.ru:8100/snar/libparanoia}},
362 year = 1997
363 }
364
365 @Misc{snarskii,
366 key = {Alexandre Snarskii},
367 author = {A. Snarskii},
368 title = {libparanoia library},
369 howpublished = {\url{http://www.lexa.ru:8100/snar/libparanoia}}
370 }
371
372 @Article{Evans96,
373 key = "Evans",
374 author = "David Evans",
375 title = "Static Detection of Dynamic Memory Errors",
376 journal = "ACM SIGPLAN Notices",
377 year = "1996",
378 volume = "31",
379 number = "5",
380 month = may,
381 pages = "44--53",
382 note = "Proceedings of the 1996 ACM SIGPLAN Conference on
383 Programming Language Design and Implementation
384 (PLDI).",
385 url = "ftp://larch.lcs.mit.edu/pub/Larch/lclint/pldi96.ps.gz",
386 annote = "11 references.",
387 }
388
389 @Manual{lint78,
390 title = {Lint, a C program checker},
391 key = {Technical report 65},
392 author = {Stephen C. Johnson},
393 note = "Computer Science Technical Report 65",
394 organization = {Bell Laboratories},
395 month = dec,
396 address = "Murray Hill, New Jersey, USA",
397 year = 1977,
398 }
399
400 @Misc{openwall,
401 author = {Openwall Project},
402 title = {Linux kernel patch from the Openwall Project},
403 howpublished = {\url{http://www.openwall.com/linux}}
404 }
405
406 @Misc{nonexecutable99,
407 author = {Solar Designer},
408 title = {Linux kernel patch from the Openwall Project},
409 howpublished = {/url{http://www.openwall.com/linux/README}},
410 year = 1999
411 }
412
413
414 @Misc{woj98,
415 author = {Rafel Wojtczuk},
416 title = {Defeating Solar Designer Non-Executable Stack Path},
417 howpublished = {\url{http://geek-girl.com/bugtraq}},
418 month = {January},
419 year = 1998
420 }
421
422 @Misc{cowan99,
423 author = {Crispin Cowan},
424 howpublished = {\url{http://geek-girl.com/bugtraq/1999_1/0481.html}},
425 note = {Posting to Bugtraq Mailing List},
426 year = 1999
427 }
428
429 @InProceedings{SSP89*326,
430 author = "Mark W. Eichin and Jon A. Rochlis",
431 title = "With Microscope and Tweezers: An Analysis of the
432 Internet Virus of November 1988",
433 booktitle = "Proceedings of the 1989 {IEEE} Computer Society
434 Symposium on Security and Privacy ({SSP} '89)",
435 ISBN = "0-8186-1939-2",
436 year = 1989,
437 }
438
439 @Article{Rochlis89,
440 author = "Jon A. Rochlis and Mark W. Eichin",
441 title = "With Microscope and Tweezers: The Worm from {MIT}'s
442 Perspective",
443 journal = "Communications of the ACM",
444 month = jun,
445 year = 1989,
446 keywords = "Security",
447 }
448
449 @InProceedings{Seeley89,
450 author = "Donn Seeley",
451 title = "A Tour of the Worm",
452 booktitle = "Proceedings 1989 Winter USENIX Technical Conference",
453 month = jan # " 30 - " # feb # " 3",
454 year = 1989,
455 abstract = "{\bf Abstract:} On the evening of November 2, 1988, a
456 self-replicating program was released upon the
457 Internet. This program (a {\it worm}) invaded VAX and
458 Sun-3 computers running versions of Berkeley UNIX and
459 used their resources to attack still more computers.
460 Within the space of hours this program had spread
461 across the U.S., infecting hundreds or thousands of
462 computers and making many of them unusable due to the
463 burden of its activity. This paper provides a
464 chronology for the outbreak and presents a detailed
465 description of the internals of the worm, based on a C
466 version produced by decompiling.",
467 }
468
469 @Misc{zlibc,
470 author = {Alain Knaff},
471 title = {ZLIBC - Transparent access to compressed file},
472 howpublished = {\url{http://zlibc.linux.lu}}
473 }
474
475 @InProceedings{sosp93*80,
476 author = "Michael B. Jones",
477 title = "Interposition Agents: Transparently Interposing User
478 Code at the System Interface",
479 ISBN = "0-89791-632-8",
480 booktitle = "Proceedings of the 14th Symposium on Operating Systems
481 Principles (SOSP)",
482 month = dec,
483 year = "1993",
484 }
485
486 @InProceedings{mediating_connectors,
487 title = "Mediating Connectors",
488 author = "Robert Balzer and Neil Goldman",
489 booktitle = "Proceedings the 19th IEEE International Conference
490 on Distributed Computing Systems Workshop",
491 year = 1999,
492 }