"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 }