From 3f0ce359a2b7452bf345247a4ced0f7373451b8e Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Fri, 26 Nov 2010 13:14:52 -0800 Subject: [PATCH] Cleanup of the Bro distribution. * Deleting a lot of old stuff no longer maintained or needed. * Updating some of the top-level instructions. --- AUTHORS | 0 COPYING | 9 +- ChangeLog | 0 Checklist-for-Release | 3 + FILES.bin | 3 - INSTALL | 57 +- Makefile.am | 64 - NEWS | 0 README | 29 +- TODO-For-Next-Release | 9 - VERSION | 2 +- acinclude.m4 | 1007 - autogen.sh | 143 - compile | 136 - config.guess | 1388 -- config.sub | 1492 -- configure.in | 964 - depcomp | 526 - doc/Makefile.am | 9 - doc/README | 1 + doc/README.txt | 14 - doc/misc/conn-logs | 82 - doc/misc/ssl.txt | 49 - doc/old/manual-src.tar.gz | Bin 202714 -> 0 bytes doc/old/manual.pdf | Bin 1029222 -> 0 bytes doc/old/manual/WARNINGS | 60 - doc/old/manual/images.aux | 1 - doc/old/manual/images.idx | 0 doc/old/manual/images.log | 607 - doc/old/manual/images.pl | 332 - doc/old/manual/images.tex | 1104 - doc/old/manual/img1.gif | Bin 111 -> 0 bytes doc/old/manual/img10.gif | Bin 224 -> 0 bytes doc/old/manual/img11.gif | Bin 108 -> 0 bytes doc/old/manual/img12.gif | Bin 139 -> 0 bytes doc/old/manual/img13.gif | Bin 160 -> 0 bytes doc/old/manual/img14.gif | Bin 120 -> 0 bytes doc/old/manual/img15.gif | Bin 159 -> 0 bytes doc/old/manual/img16.gif | Bin 284 -> 0 bytes doc/old/manual/img17.gif | Bin 182 -> 0 bytes doc/old/manual/img18.gif | Bin 159 -> 0 bytes doc/old/manual/img19.gif | Bin 161 -> 0 bytes doc/old/manual/img2.gif | Bin 104 -> 0 bytes doc/old/manual/img20.gif | Bin 5770 -> 0 bytes doc/old/manual/img21.gif | Bin 5039 -> 0 bytes doc/old/manual/img22.gif | Bin 15449 -> 0 bytes doc/old/manual/img23.gif | Bin 166 -> 0 bytes doc/old/manual/img24.gif | Bin 174 -> 0 bytes doc/old/manual/img25.gif | Bin 230 -> 0 bytes doc/old/manual/img26.gif | Bin 228 -> 0 bytes doc/old/manual/img27.gif | Bin 221 -> 0 bytes doc/old/manual/img28.gif | Bin 222 -> 0 bytes doc/old/manual/img29.gif | Bin 223 -> 0 bytes doc/old/manual/img3.gif | Bin 478 -> 0 bytes doc/old/manual/img30.gif | Bin 224 -> 0 bytes doc/old/manual/img31.gif | Bin 223 -> 0 bytes doc/old/manual/img32.gif | Bin 173 -> 0 bytes doc/old/manual/img33.gif | Bin 215 -> 0 bytes doc/old/manual/img34.gif | Bin 213 -> 0 bytes doc/old/manual/img35.gif | Bin 179 -> 0 bytes doc/old/manual/img36.gif | Bin 9337 -> 0 bytes doc/old/manual/img37.gif | Bin 7113 -> 0 bytes doc/old/manual/img38.gif | Bin 8106 -> 0 bytes doc/old/manual/img39.gif | Bin 12098 -> 0 bytes doc/old/manual/img4.gif | Bin 205 -> 0 bytes doc/old/manual/img40.gif | Bin 5510 -> 0 bytes doc/old/manual/img41.gif | Bin 229 -> 0 bytes doc/old/manual/img42.gif | Bin 331 -> 0 bytes doc/old/manual/img43.gif | Bin 331 -> 0 bytes doc/old/manual/img44.gif | Bin 173 -> 0 bytes doc/old/manual/img45.gif | Bin 2664 -> 0 bytes doc/old/manual/img46.gif | Bin 6628 -> 0 bytes doc/old/manual/img47.gif | Bin 27595 -> 0 bytes doc/old/manual/img48.gif | Bin 427 -> 0 bytes doc/old/manual/img49.gif | Bin 4526 -> 0 bytes doc/old/manual/img5.gif | Bin 207 -> 0 bytes doc/old/manual/img50.gif | Bin 183 -> 0 bytes doc/old/manual/img51.gif | Bin 240 -> 0 bytes doc/old/manual/img6.gif | Bin 207 -> 0 bytes doc/old/manual/img7.gif | Bin 196 -> 0 bytes doc/old/manual/img8.gif | Bin 335 -> 0 bytes doc/old/manual/img9.gif | Bin 434 -> 0 bytes doc/old/manual/internals.pl | 3978 ---- doc/old/manual/labels.pl | 3985 ---- doc/old/manual/manual.css | 30 - doc/pubs/bro-CN99.ps | 5025 ----- doc/quick-start/Bro-installation.texi | 229 - doc/quick-start/Bro-overview.texi | 143 - doc/quick-start/Bro-quick-start.pdf | Bin 159017 -> 0 bytes doc/quick-start/Bro-quick-start.texi | 99 - doc/quick-start/Bro-requirements.texi | 79 - doc/quick-start/Bro-running.texi | 316 - doc/quick-start/Makefile.am | 29 - doc/quick-start/README.txt | 8 - doc/quick-start/bro-deployment.pdf | Bin 180977 -> 0 bytes doc/quick-start/bro-deployment.png | Bin 36530 -> 0 bytes doc/quick-start/bro.css | 43 - doc/ref-manual/Bro-Ref-Manual.pdf | Bin 1152424 -> 0 bytes doc/ref-manual/Bro-Ref-Manual.texi | 96 - doc/ref-manual/Makefile.am | 27 - doc/ref-manual/README.txt | 8 - doc/ref-manual/analysis.texi | 6110 ------ doc/ref-manual/bro.css | 43 - doc/ref-manual/debugger.texi | 389 - doc/ref-manual/intro.texi | 170 - doc/ref-manual/predefined.texi | 3108 --- doc/ref-manual/references.texi | 122 - doc/ref-manual/signatures.texi | 295 - doc/ref-manual/started.texi | 868 - doc/ref-manual/stmts.texi | 773 - doc/ref-manual/todo.texi | 174 - doc/ref-manual/values.texi | 1945 -- doc/ref-manual/vars.texi | 294 - doc/user-manual/Bro-Linux.texi | 11 - doc/user-manual/Bro-analysis.texi | 322 - doc/user-manual/Bro-blocking.texi | 37 - doc/user-manual/Bro-customizing.texi | 508 - doc/user-manual/Bro-dir-files.texi | 647 - doc/user-manual/Bro-hardware.texi | 94 - doc/user-manual/Bro-installation.texi | 432 - doc/user-manual/Bro-intrusion-prevention.texi | 91 - doc/user-manual/Bro-log-files.texi | 3 - doc/user-manual/Bro-offline-analysis.texi | 102 - doc/user-manual/Bro-output.texi | 806 - doc/user-manual/Bro-overview.texi | 143 - doc/user-manual/Bro-production.texi | 26 - doc/user-manual/Bro-requirements.texi | 93 - doc/user-manual/Bro-running.texi | 147 - doc/user-manual/Bro-setup.texi | 40 - doc/user-manual/Bro-signatures.texi | 143 - doc/user-manual/Bro-software.texi | 71 - doc/user-manual/Bro-tuning.texi | 144 - doc/user-manual/Bro-user-manual.pdf | Bin 409511 -> 0 bytes doc/user-manual/Bro-user-manual.texi | 135 - doc/user-manual/BroDir.pdf | Bin 20125 -> 0 bytes doc/user-manual/BroDir.png | Bin 4048 -> 0 bytes doc/user-manual/Makefile.am | 32 - doc/user-manual/README.txt | 8 - doc/user-manual/bro-deployment.pdf | Bin 35482 -> 0 bytes doc/user-manual/bro-deployment.png | Bin 36530 -> 0 bytes doc/user-manual/bro.css | 43 - example-attacks/ftp-site-exec.trace | Bin 67810 -> 0 bytes example-attacks/ntp-attack.trace | Bin 5664 -> 0 bytes install-sh | 250 - libpcap.bufsize.patch | 56 - linux-include/README | 2 - linux-include/net/slcompress.h | 148 - linux-include/net/slip.h | 45 - linux-include/netinet/if_ether.h | 88 - linux-include/netinet/in_systm.h | 56 - linux-include/netinet/ip.h | 170 - linux-include/netinet/ip_icmp.h | 160 - linux-include/netinet/ip_var.h | 178 - linux-include/netinet/tcp.h | 102 - linux-include/netinet/tcp_var.h | 280 - linux-include/netinet/tcpip.h | 59 - linux-include/netinet/udp.h | 45 - linux-include/netinet/udp_var.h | 92 - linux-include/sys/mbuf.h | 5 - missing | 360 - policy/Makefile.am | 71 - policy/sigs/Makefile.am | 6 - policy/sigs/ex.web-rules.sig | 8914 -------- policy/sigs/snort-default.sig | 14888 -------------- policy/sigs/ssl-worm.sig | 38 - policy/sigs/worm.sig | 41 - policy/time-machine/Makefile.am | 7 - scripts/IP4.pm | 150 - scripts/Makefile.am | 167 - scripts/README | 29 - scripts/alert_scores | 37 - scripts/bro.cfg.example | 161 - scripts/bro.rc-hooks.sh | 57 - scripts/bro.rc.in | 1098 - scripts/bro_config.in | 1008 - scripts/bro_log_compress.sh | 88 - scripts/diskspace.sh | 36 - scripts/frontend-mail-reports.sh | 29 - scripts/frontend-site-report.sh | 32 - scripts/install_cron.sh | 111 - scripts/intern.bro.default | 15 - scripts/local.lite.bro | 30 - scripts/local.site.bro.default | 15 - scripts/localnetMAC.pl.in | 184 - scripts/mail_notice.sh | 28 - scripts/mail_reports.sh | 81 - scripts/make-ftp-safe-vocabulary.awk | 19 - scripts/my-local.bro | 20 - scripts/my-site.bro | 17 - scripts/perl/MANIFEST | 13 - scripts/perl/Makefile.PL | 230 - scripts/perl/README | 64 - scripts/perl/ext/Config-General-2.27.tar.gz | Bin 35847 -> 0 bytes scripts/perl/lib/Bro/Config.pm | 120 - scripts/perl/lib/Bro/Log.pm | 295 - scripts/perl/lib/Bro/Log/Alarm.pm | 694 - scripts/perl/lib/Bro/Log/Conn.pm | 773 - scripts/perl/lib/Bro/Report.pm | 714 - scripts/perl/lib/Bro/Report/Alarm.pm | 2070 -- scripts/perl/lib/Bro/Report/Conn.pm | 770 - scripts/perl/lib/Bro/Signature.pm | 1316 -- scripts/perl/script/edit-brorule.pl | 1126 - scripts/perl/script/site-report.pl | 1367 -- scripts/process_bro_logs.py | 182 - scripts/push_logs.sh | 22 - scripts/s2b/Makefile.am | 3 - scripts/s2b/README | 74 - scripts/s2b/bin/Makefile.am | 8 - scripts/s2b/bin/s2b.pl | 2991 --- scripts/s2b/bin/snort2bro | 1036 - scripts/s2b/bro-include/Makefile.am | 4 - scripts/s2b/bro-include/sig-addendum.sig | 408 - scripts/s2b/bro-include/sig-functions.bro | 278 - scripts/s2b/etc/Makefile.am | 8 - scripts/s2b/etc/s2b-augment.cfg | 17162 ---------------- scripts/s2b/etc/s2b-ruleset-augment.cfg | 157 - scripts/s2b/etc/s2b-sigmap.cfg | 38 - scripts/s2b/etc/s2b.cfg | 113 - scripts/s2b/example_bro_files/Makefile.am | 4 - scripts/s2b/example_bro_files/sig-action.bro | 626 - scripts/s2b/example_bro_files/signatures.sig | 15805 -------------- scripts/s2b/pm/Config-General-2.26.tar.gz | Bin 35915 -> 0 bytes scripts/s2b/pm/Makefile.am | 4 - scripts/s2b/snort_rules2.2/Makefile.am | 15 - .../s2b/snort_rules2.2/attack-responses.rules | 29 - scripts/s2b/snort_rules2.2/backdoor.rules | 87 - scripts/s2b/snort_rules2.2/bad-traffic.rules | 26 - scripts/s2b/snort_rules2.2/cgi-bin.list | 16 - scripts/s2b/snort_rules2.2/chat.rules | 48 - .../s2b/snort_rules2.2/classification.config | 66 - scripts/s2b/snort_rules2.2/ddos.rules | 51 - scripts/s2b/snort_rules2.2/deleted.rules | 399 - scripts/s2b/snort_rules2.2/dns.rules | 35 - scripts/s2b/snort_rules2.2/dos.rules | 28 - scripts/s2b/snort_rules2.2/experimental.rules | 12 - scripts/s2b/snort_rules2.2/exploit.rules | 78 - scripts/s2b/snort_rules2.2/finger.rules | 21 - scripts/s2b/snort_rules2.2/ftp.rules | 100 - scripts/s2b/snort_rules2.2/gen-msg.map | 131 - scripts/s2b/snort_rules2.2/generators | 37 - scripts/s2b/snort_rules2.2/icmp-info.rules | 107 - scripts/s2b/snort_rules2.2/icmp.rules | 35 - scripts/s2b/snort_rules2.2/imap.rules | 41 - scripts/s2b/snort_rules2.2/info.rules | 14 - scripts/s2b/snort_rules2.2/local.rules | 6 - scripts/s2b/snort_rules2.2/misc.rules | 94 - scripts/s2b/snort_rules2.2/multimedia.rules | 20 - scripts/s2b/snort_rules2.2/mysql.rules | 15 - scripts/s2b/snort_rules2.2/netbios.rules | 150 - scripts/s2b/snort_rules2.2/nntp.rules | 18 - scripts/s2b/snort_rules2.2/oracle.rules | 44 - scripts/s2b/snort_rules2.2/other-ids.rules | 22 - scripts/s2b/snort_rules2.2/p2p.rules | 25 - scripts/s2b/snort_rules2.2/policy.rules | 40 - scripts/s2b/snort_rules2.2/pop2.rules | 11 - scripts/s2b/snort_rules2.2/pop3.rules | 42 - scripts/s2b/snort_rules2.2/porn.rules | 36 - scripts/s2b/snort_rules2.2/reference.config | 14 - scripts/s2b/snort_rules2.2/rpc.rules | 219 - scripts/s2b/snort_rules2.2/rservices.rules | 20 - scripts/s2b/snort_rules2.2/scan.rules | 36 - scripts/s2b/snort_rules2.2/shellcode.rules | 36 - scripts/s2b/snort_rules2.2/sid | 2 - scripts/s2b/snort_rules2.2/sid-msg.map | 2431 --- scripts/s2b/snort_rules2.2/smtp.rules | 68 - scripts/s2b/snort_rules2.2/snmp.rules | 24 - scripts/s2b/snort_rules2.2/snort.conf | 617 - scripts/s2b/snort_rules2.2/sql.rules | 51 - scripts/s2b/snort_rules2.2/telnet.rules | 27 - scripts/s2b/snort_rules2.2/tftp.rules | 24 - scripts/s2b/snort_rules2.2/threshold.conf | 61 - scripts/s2b/snort_rules2.2/unicode.map | 104 - scripts/s2b/snort_rules2.2/virus.rules | 20 - scripts/s2b/snort_rules2.2/web-attacks.rules | 60 - scripts/s2b/snort_rules2.2/web-cgi.rules | 372 - scripts/s2b/snort_rules2.2/web-client.rules | 25 - .../s2b/snort_rules2.2/web-coldfusion.rules | 43 - .../s2b/snort_rules2.2/web-frontpage.rules | 41 - scripts/s2b/snort_rules2.2/web-iis.rules | 152 - scripts/s2b/snort_rules2.2/web-misc.rules | 406 - scripts/s2b/snort_rules2.2/web-php.rules | 142 - scripts/s2b/snort_rules2.2/x11.rules | 9 - scripts/signature_scores | 11 - scripts/snort2bro/snort2bro | 1023 - scripts/snort2bro/snort2bro.cfg | 15 - scripts/spot-trace | 146 - scripts/start-capture-all | 19 - shtool | 716 - src/Makefile.am | 410 - 289 files changed, 40 insertions(+), 127706 deletions(-) delete mode 100644 AUTHORS delete mode 100644 ChangeLog delete mode 100644 FILES.bin delete mode 100644 Makefile.am delete mode 100644 NEWS delete mode 100644 TODO-For-Next-Release delete mode 100644 acinclude.m4 delete mode 100755 autogen.sh delete mode 100755 compile delete mode 100755 config.guess delete mode 100755 config.sub delete mode 100644 configure.in delete mode 100755 depcomp delete mode 100644 doc/Makefile.am create mode 100644 doc/README delete mode 100644 doc/README.txt delete mode 100644 doc/misc/conn-logs delete mode 100644 doc/misc/ssl.txt delete mode 100644 doc/old/manual-src.tar.gz delete mode 100644 doc/old/manual.pdf delete mode 100644 doc/old/manual/WARNINGS delete mode 100644 doc/old/manual/images.aux delete mode 100644 doc/old/manual/images.idx delete mode 100644 doc/old/manual/images.log delete mode 100644 doc/old/manual/images.pl delete mode 100644 doc/old/manual/images.tex delete mode 100644 doc/old/manual/img1.gif delete mode 100644 doc/old/manual/img10.gif delete mode 100644 doc/old/manual/img11.gif delete mode 100644 doc/old/manual/img12.gif delete mode 100644 doc/old/manual/img13.gif delete mode 100644 doc/old/manual/img14.gif delete mode 100644 doc/old/manual/img15.gif delete mode 100644 doc/old/manual/img16.gif delete mode 100644 doc/old/manual/img17.gif delete mode 100644 doc/old/manual/img18.gif delete mode 100644 doc/old/manual/img19.gif delete mode 100644 doc/old/manual/img2.gif delete mode 100644 doc/old/manual/img20.gif delete mode 100644 doc/old/manual/img21.gif delete mode 100644 doc/old/manual/img22.gif delete mode 100644 doc/old/manual/img23.gif delete mode 100644 doc/old/manual/img24.gif delete mode 100644 doc/old/manual/img25.gif delete mode 100644 doc/old/manual/img26.gif delete mode 100644 doc/old/manual/img27.gif delete mode 100644 doc/old/manual/img28.gif delete mode 100644 doc/old/manual/img29.gif delete mode 100644 doc/old/manual/img3.gif delete mode 100644 doc/old/manual/img30.gif delete mode 100644 doc/old/manual/img31.gif delete mode 100644 doc/old/manual/img32.gif delete mode 100644 doc/old/manual/img33.gif delete mode 100644 doc/old/manual/img34.gif delete mode 100644 doc/old/manual/img35.gif delete mode 100644 doc/old/manual/img36.gif delete mode 100644 doc/old/manual/img37.gif delete mode 100644 doc/old/manual/img38.gif delete mode 100644 doc/old/manual/img39.gif delete mode 100644 doc/old/manual/img4.gif delete mode 100644 doc/old/manual/img40.gif delete mode 100644 doc/old/manual/img41.gif delete mode 100644 doc/old/manual/img42.gif delete mode 100644 doc/old/manual/img43.gif delete mode 100644 doc/old/manual/img44.gif delete mode 100644 doc/old/manual/img45.gif delete mode 100644 doc/old/manual/img46.gif delete mode 100644 doc/old/manual/img47.gif delete mode 100644 doc/old/manual/img48.gif delete mode 100644 doc/old/manual/img49.gif delete mode 100644 doc/old/manual/img5.gif delete mode 100644 doc/old/manual/img50.gif delete mode 100644 doc/old/manual/img51.gif delete mode 100644 doc/old/manual/img6.gif delete mode 100644 doc/old/manual/img7.gif delete mode 100644 doc/old/manual/img8.gif delete mode 100644 doc/old/manual/img9.gif delete mode 100644 doc/old/manual/internals.pl delete mode 100644 doc/old/manual/labels.pl delete mode 100644 doc/old/manual/manual.css delete mode 100644 doc/pubs/bro-CN99.ps delete mode 100644 doc/quick-start/Bro-installation.texi delete mode 100644 doc/quick-start/Bro-overview.texi delete mode 100644 doc/quick-start/Bro-quick-start.pdf delete mode 100644 doc/quick-start/Bro-quick-start.texi delete mode 100644 doc/quick-start/Bro-requirements.texi delete mode 100644 doc/quick-start/Bro-running.texi delete mode 100644 doc/quick-start/Makefile.am delete mode 100644 doc/quick-start/README.txt delete mode 100644 doc/quick-start/bro-deployment.pdf delete mode 100644 doc/quick-start/bro-deployment.png delete mode 100644 doc/quick-start/bro.css delete mode 100644 doc/ref-manual/Bro-Ref-Manual.pdf delete mode 100644 doc/ref-manual/Bro-Ref-Manual.texi delete mode 100644 doc/ref-manual/Makefile.am delete mode 100644 doc/ref-manual/README.txt delete mode 100644 doc/ref-manual/analysis.texi delete mode 100644 doc/ref-manual/bro.css delete mode 100644 doc/ref-manual/debugger.texi delete mode 100644 doc/ref-manual/intro.texi delete mode 100644 doc/ref-manual/predefined.texi delete mode 100644 doc/ref-manual/references.texi delete mode 100644 doc/ref-manual/signatures.texi delete mode 100644 doc/ref-manual/started.texi delete mode 100644 doc/ref-manual/stmts.texi delete mode 100644 doc/ref-manual/todo.texi delete mode 100644 doc/ref-manual/values.texi delete mode 100644 doc/ref-manual/vars.texi delete mode 100644 doc/user-manual/Bro-Linux.texi delete mode 100644 doc/user-manual/Bro-analysis.texi delete mode 100644 doc/user-manual/Bro-blocking.texi delete mode 100644 doc/user-manual/Bro-customizing.texi delete mode 100644 doc/user-manual/Bro-dir-files.texi delete mode 100644 doc/user-manual/Bro-hardware.texi delete mode 100644 doc/user-manual/Bro-installation.texi delete mode 100644 doc/user-manual/Bro-intrusion-prevention.texi delete mode 100644 doc/user-manual/Bro-log-files.texi delete mode 100644 doc/user-manual/Bro-offline-analysis.texi delete mode 100644 doc/user-manual/Bro-output.texi delete mode 100644 doc/user-manual/Bro-overview.texi delete mode 100644 doc/user-manual/Bro-production.texi delete mode 100644 doc/user-manual/Bro-requirements.texi delete mode 100644 doc/user-manual/Bro-running.texi delete mode 100644 doc/user-manual/Bro-setup.texi delete mode 100644 doc/user-manual/Bro-signatures.texi delete mode 100644 doc/user-manual/Bro-software.texi delete mode 100644 doc/user-manual/Bro-tuning.texi delete mode 100644 doc/user-manual/Bro-user-manual.pdf delete mode 100644 doc/user-manual/Bro-user-manual.texi delete mode 100644 doc/user-manual/BroDir.pdf delete mode 100644 doc/user-manual/BroDir.png delete mode 100644 doc/user-manual/Makefile.am delete mode 100644 doc/user-manual/README.txt delete mode 100644 doc/user-manual/bro-deployment.pdf delete mode 100644 doc/user-manual/bro-deployment.png delete mode 100644 doc/user-manual/bro.css delete mode 100644 example-attacks/ftp-site-exec.trace delete mode 100644 example-attacks/ntp-attack.trace delete mode 100755 install-sh delete mode 100644 libpcap.bufsize.patch delete mode 100644 linux-include/README delete mode 100644 linux-include/net/slcompress.h delete mode 100644 linux-include/net/slip.h delete mode 100644 linux-include/netinet/if_ether.h delete mode 100644 linux-include/netinet/in_systm.h delete mode 100644 linux-include/netinet/ip.h delete mode 100644 linux-include/netinet/ip_icmp.h delete mode 100644 linux-include/netinet/ip_var.h delete mode 100644 linux-include/netinet/tcp.h delete mode 100644 linux-include/netinet/tcp_var.h delete mode 100644 linux-include/netinet/tcpip.h delete mode 100644 linux-include/netinet/udp.h delete mode 100644 linux-include/netinet/udp_var.h delete mode 100644 linux-include/sys/mbuf.h delete mode 100755 missing delete mode 100644 policy/Makefile.am delete mode 100644 policy/sigs/Makefile.am delete mode 100644 policy/sigs/ex.web-rules.sig delete mode 100644 policy/sigs/snort-default.sig delete mode 100644 policy/sigs/ssl-worm.sig delete mode 100644 policy/sigs/worm.sig delete mode 100644 policy/time-machine/Makefile.am delete mode 100644 scripts/IP4.pm delete mode 100644 scripts/Makefile.am delete mode 100644 scripts/README delete mode 100644 scripts/alert_scores delete mode 100644 scripts/bro.cfg.example delete mode 100644 scripts/bro.rc-hooks.sh delete mode 100755 scripts/bro.rc.in delete mode 100755 scripts/bro_config.in delete mode 100755 scripts/bro_log_compress.sh delete mode 100755 scripts/diskspace.sh delete mode 100644 scripts/frontend-mail-reports.sh delete mode 100644 scripts/frontend-site-report.sh delete mode 100755 scripts/install_cron.sh delete mode 100644 scripts/intern.bro.default delete mode 100644 scripts/local.lite.bro delete mode 100644 scripts/local.site.bro.default delete mode 100755 scripts/localnetMAC.pl.in delete mode 100755 scripts/mail_notice.sh delete mode 100755 scripts/mail_reports.sh delete mode 100644 scripts/make-ftp-safe-vocabulary.awk delete mode 100644 scripts/my-local.bro delete mode 100644 scripts/my-site.bro delete mode 100644 scripts/perl/MANIFEST delete mode 100644 scripts/perl/Makefile.PL delete mode 100644 scripts/perl/README delete mode 100644 scripts/perl/ext/Config-General-2.27.tar.gz delete mode 100644 scripts/perl/lib/Bro/Config.pm delete mode 100644 scripts/perl/lib/Bro/Log.pm delete mode 100644 scripts/perl/lib/Bro/Log/Alarm.pm delete mode 100644 scripts/perl/lib/Bro/Log/Conn.pm delete mode 100644 scripts/perl/lib/Bro/Report.pm delete mode 100644 scripts/perl/lib/Bro/Report/Alarm.pm delete mode 100644 scripts/perl/lib/Bro/Report/Conn.pm delete mode 100644 scripts/perl/lib/Bro/Signature.pm delete mode 100755 scripts/perl/script/edit-brorule.pl delete mode 100755 scripts/perl/script/site-report.pl delete mode 100755 scripts/process_bro_logs.py delete mode 100644 scripts/push_logs.sh delete mode 100644 scripts/s2b/Makefile.am delete mode 100644 scripts/s2b/README delete mode 100644 scripts/s2b/bin/Makefile.am delete mode 100755 scripts/s2b/bin/s2b.pl delete mode 100755 scripts/s2b/bin/snort2bro delete mode 100644 scripts/s2b/bro-include/Makefile.am delete mode 100644 scripts/s2b/bro-include/sig-addendum.sig delete mode 100644 scripts/s2b/bro-include/sig-functions.bro delete mode 100644 scripts/s2b/etc/Makefile.am delete mode 100644 scripts/s2b/etc/s2b-augment.cfg delete mode 100644 scripts/s2b/etc/s2b-ruleset-augment.cfg delete mode 100644 scripts/s2b/etc/s2b-sigmap.cfg delete mode 100644 scripts/s2b/etc/s2b.cfg delete mode 100644 scripts/s2b/example_bro_files/Makefile.am delete mode 100644 scripts/s2b/example_bro_files/sig-action.bro delete mode 100644 scripts/s2b/example_bro_files/signatures.sig delete mode 100644 scripts/s2b/pm/Config-General-2.26.tar.gz delete mode 100644 scripts/s2b/pm/Makefile.am delete mode 100644 scripts/s2b/snort_rules2.2/Makefile.am delete mode 100644 scripts/s2b/snort_rules2.2/attack-responses.rules delete mode 100644 scripts/s2b/snort_rules2.2/backdoor.rules delete mode 100644 scripts/s2b/snort_rules2.2/bad-traffic.rules delete mode 100644 scripts/s2b/snort_rules2.2/cgi-bin.list delete mode 100644 scripts/s2b/snort_rules2.2/chat.rules delete mode 100644 scripts/s2b/snort_rules2.2/classification.config delete mode 100644 scripts/s2b/snort_rules2.2/ddos.rules delete mode 100644 scripts/s2b/snort_rules2.2/deleted.rules delete mode 100644 scripts/s2b/snort_rules2.2/dns.rules delete mode 100644 scripts/s2b/snort_rules2.2/dos.rules delete mode 100644 scripts/s2b/snort_rules2.2/experimental.rules delete mode 100644 scripts/s2b/snort_rules2.2/exploit.rules delete mode 100644 scripts/s2b/snort_rules2.2/finger.rules delete mode 100644 scripts/s2b/snort_rules2.2/ftp.rules delete mode 100644 scripts/s2b/snort_rules2.2/gen-msg.map delete mode 100644 scripts/s2b/snort_rules2.2/generators delete mode 100644 scripts/s2b/snort_rules2.2/icmp-info.rules delete mode 100644 scripts/s2b/snort_rules2.2/icmp.rules delete mode 100644 scripts/s2b/snort_rules2.2/imap.rules delete mode 100644 scripts/s2b/snort_rules2.2/info.rules delete mode 100644 scripts/s2b/snort_rules2.2/local.rules delete mode 100644 scripts/s2b/snort_rules2.2/misc.rules delete mode 100644 scripts/s2b/snort_rules2.2/multimedia.rules delete mode 100644 scripts/s2b/snort_rules2.2/mysql.rules delete mode 100644 scripts/s2b/snort_rules2.2/netbios.rules delete mode 100644 scripts/s2b/snort_rules2.2/nntp.rules delete mode 100644 scripts/s2b/snort_rules2.2/oracle.rules delete mode 100644 scripts/s2b/snort_rules2.2/other-ids.rules delete mode 100644 scripts/s2b/snort_rules2.2/p2p.rules delete mode 100644 scripts/s2b/snort_rules2.2/policy.rules delete mode 100644 scripts/s2b/snort_rules2.2/pop2.rules delete mode 100644 scripts/s2b/snort_rules2.2/pop3.rules delete mode 100644 scripts/s2b/snort_rules2.2/porn.rules delete mode 100644 scripts/s2b/snort_rules2.2/reference.config delete mode 100644 scripts/s2b/snort_rules2.2/rpc.rules delete mode 100644 scripts/s2b/snort_rules2.2/rservices.rules delete mode 100644 scripts/s2b/snort_rules2.2/scan.rules delete mode 100644 scripts/s2b/snort_rules2.2/shellcode.rules delete mode 100644 scripts/s2b/snort_rules2.2/sid delete mode 100644 scripts/s2b/snort_rules2.2/sid-msg.map delete mode 100644 scripts/s2b/snort_rules2.2/smtp.rules delete mode 100644 scripts/s2b/snort_rules2.2/snmp.rules delete mode 100644 scripts/s2b/snort_rules2.2/snort.conf delete mode 100644 scripts/s2b/snort_rules2.2/sql.rules delete mode 100644 scripts/s2b/snort_rules2.2/telnet.rules delete mode 100644 scripts/s2b/snort_rules2.2/tftp.rules delete mode 100644 scripts/s2b/snort_rules2.2/threshold.conf delete mode 100644 scripts/s2b/snort_rules2.2/unicode.map delete mode 100644 scripts/s2b/snort_rules2.2/virus.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-attacks.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-cgi.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-client.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-coldfusion.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-frontpage.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-iis.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-misc.rules delete mode 100644 scripts/s2b/snort_rules2.2/web-php.rules delete mode 100644 scripts/s2b/snort_rules2.2/x11.rules delete mode 100644 scripts/signature_scores delete mode 100644 scripts/snort2bro/snort2bro delete mode 100644 scripts/snort2bro/snort2bro.cfg delete mode 100755 scripts/spot-trace delete mode 100755 scripts/start-capture-all delete mode 100755 shtool delete mode 100644 src/Makefile.am diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/COPYING b/COPYING index f4bafa114c..f9bba2b90e 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 1995-2008, The Regents of the University of California, +Copyright (c) 1995-2010, The Regents of the University of California, through Lawrence Berkeley National Laboratory. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -31,7 +31,7 @@ POSSIBILITY OF SUCH DAMAGE. Note that some files in the Bro distribution carry their own copyright notices. The above applies to the Bro scripts in policy/ (other than as -noted below) and the source files in src/ , other than: +noted below) and the source files in src/, other than: policy/sigs/p0fsyn.osf src/H3.h @@ -44,6 +44,5 @@ noted below) and the source files in src/ , other than: src/patricia.c src/patricia.h -In addition, the build components such as Makefile.in, acinclude.m4, and -others have separate copyrights, as do a number of the elements in the -aux/ subdirectory and in scripts/s2b/snort_rules2.2/ . +In addition, other components, such as the build system, may have +separate copyrights. diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Checklist-for-Release b/Checklist-for-Release index f5f477f766..e0d0572872 100644 --- a/Checklist-for-Release +++ b/Checklist-for-Release @@ -1,3 +1,6 @@ + +TODO: Needs update. -Robin + - Make sure BroV6 works. - Make sure --enable-int64 builds w/o warnings. diff --git a/FILES.bin b/FILES.bin deleted file mode 100644 index f0b07e4bec..0000000000 --- a/FILES.bin +++ /dev/null @@ -1,3 +0,0 @@ -README -VERSION -bro diff --git a/INSTALL b/INSTALL index 9fd880c242..64f87c2049 100644 --- a/INSTALL +++ b/INSTALL @@ -1,3 +1,8 @@ +============== +Installing Bro +============== + + Prerequisites ============= @@ -25,7 +30,7 @@ before you begin: These are usually already installed as well. * OpenSSL headers and libraries - For analysis of SSL certificates by the HTTP analyzer, and + For analysis of SSL certificates by the HTTP analyzer, and for encrypted Bro-to-Bro communication. These are likely installed, though some platforms may require installation of a 'devel' package for the headers. @@ -42,65 +47,41 @@ installation time: * Libmagic For identifying file types (e.g., in FTP transfers). - + * LibGeoIP For geo-locating IP addresses. - + * Libz For decompressing HTTP bodies by the HTTP analyzer, and for compressed Bro-to-Bro communication. + Installation ============ To build and install into /usr/local/bro: > ./configure - > cd build > make > make install -This will perform an out-of-source build into the build directory using the -default build options and then install binaries into /usr/local/bro/bin. +This will perform an out-of-source build into a directory called +build/, using default build options. It then installs the Bro binary +into /usr/local/bro/bin. Depending on the Bro package you +downloaded, there may be auxiliary tools and libraries available in +the aux/ directory. If so, they will be installed by default as well +if not explicitly disabled via configure options. You can specify a different installation directory with > ./configure --prefix= -Run "./configure --help" for more options. +Run "./configure --help" for more options. Running Bro =========== Bro is a complex program and it takes a bit of time to get familiar -with it. In the following we give a few simple examples. See -http://www.bro-ids.org/wiki for more information. - -To run a policy file from /usr/local/share/bro, such as mt.bro, on a -previously captured tcpdump save file named foo: - - bro -r foo mt.bro - -To run from interface le0: - - bro -i le0 mt - -You can alternatively specify interface and scripts to load in your own -policy file: - - @load mt - redef interfaces = "le0"; - -and then run - - bro ./my-policy.bro - -You can see the BPF filter Bro will use (if not overridden) by executing - - bro mt print-filter - -To run interactively (e.g., for playing with expression evaluation): - - bro - -"bro -h" lists the various options. +with it. In the following we give a few simple examples. See the +quickstart guide at http://www.bro-ids.org for more information; you +can the source that in doc/quick-start. diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index bdbdc25ef5..0000000000 --- a/Makefile.am +++ /dev/null @@ -1,64 +0,0 @@ -## Process this file with automake to produce Makefile.in - -# snag the whole linux-include directory -EXTRA_DIST = CHANGES README VERSION shtool linux-include \ - autogen.sh depcomp ylwrap - -# When running distcheck, make sure we skip building GtkDoc-based -# documentation. This applies to Broccoli only, and needs to be -# duplicated here because DISTCHECK_CONFIGURE_FLAGS isn't otherwise -# noticed. -# -DISTCHECK_CONFIGURE_FLAGS = --disable-gtk-doc - -chown = @CHOWN@ - -# aux before src so we compile the libpcap -SUBDIRS = aux src scripts policy doc - -test: - ( cd ../testing && $(MAKE) test ) - -install-broctl: - $(MAKE) install - ( cd aux/broctl && $(MAKE) install-broctl ) - -# Deprecated. Don't use. -install-brolite: - $(MAKE) install - $(INSTALL) -d $(prefix)/logs - $(INSTALL) -d $(prefix)/archive - $(INSTALL) -d $(prefix)/var - ( cd scripts && $(MAKE) install-brolite ) - ( cd aux && $(MAKE) install-brolite ) - - @CHOWN@ -R `cat scripts/bro_user_id` ${prefix}/ - @echo "*********************************************************" - @echo "Please run \"${prefix}/etc/bro.rc --start\" to start bro" - @echo "*********************************************************" - -docs: - ( cd doc && $(MAKE) doc ) - -doc-install: - ( cd doc && $(MAKE) doc-install ) - -update: - ( cd scripts && $(MAKE) update ) - ( cd policy && $(MAKE) install ) - -update-sigs: - (cd scripts && $(MAKE) update-sigs ) - -reports: - ( cd scripts && $(MAKE) reports ) - -# make sure we don't leak CVS/SVN or private policy files -dist-hook: - rm -rf `find $(distdir) -name CVS` - rm -rf `find $(distdir) -name .svn` - rm -rf $(distdir)/policy/local - -release: - ./autogen.sh - ./configure - $(MAKE) distcheck diff --git a/NEWS b/NEWS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/README b/README index 160aea36b7..66a580fa19 100644 --- a/README +++ b/README @@ -1,29 +1,24 @@ -This is release 1.5 of Bro, a system for detecting network intruders in +This is release 1.6 of Bro, a system for detecting network intruders in real-time using passive network monitoring. -Please see the file INSTALL for installation instructions and some examples -on how to run Bro. For more documentation, see the Bro Wiki: +Please see the file INSTALL for installation instructions and +pointers for getting started. For more documentation, see the +documentation on Bro's home page: - http://www.bro-ids.org/wiki/index.php/User_Manual + http://www.bro-ids.org/docs -Please note that this documentation is preliminary and still missing pieces. -PDF and HTML versions of older versions of the manuals are also available -in the doc/ directory. - -There's also in doc/misc/conn-logs/ a brief summary of the connection logs -generated by the sample policy scripts (which are in policy/). +The main parts of Bro's documentation are also available in the doc/ +directory of the distribution. (Please note that the documentation +is still a work in progress; there will be more in future releases.) Numerous other Bro-related publications, including a paper describing the system, can be found at - http://www.bro-ids.org/publications.html + http://www.bro-ids.org/publications.html -Some auxiliary scripts and utilities are available in the aux/ directory. -Note that these are not installed by default. - -Send comments, etc., to the Bro mailing list, bro@bro-ids.org. However, -please note that you must first subscribe to the list in order to be able -to post to it. +Send comments, etc., to the Bro mailing list, bro@bro-ids.org. +However, please note that you must first subscribe to the list in +order to be able to post to it. - Vern Paxson & Robin Sommer, on behalf of the Bro development team diff --git a/TODO-For-Next-Release b/TODO-For-Next-Release deleted file mode 100644 index e8985b669e..0000000000 --- a/TODO-For-Next-Release +++ /dev/null @@ -1,9 +0,0 @@ -Plan for 1.6: - Originally, with 1.5 we were going to start working with --use-binpac - as the default. However, this has been deferred pending development - of BinPAC++. We might however turn on BinPAC for the SSL analyzer, - for which the BinPAC version is more robust. It, though, doesn't - support storing certs to disk, which some folks use operationally. - - Given DPD means we might not filter traffic anyway, we no longer - have such a good excuse for not dealing with IPv6 options. diff --git a/VERSION b/VERSION index dcfb77b1f4..d421eb9c4e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.2.7 +1.6.0.1 diff --git a/acinclude.m4 b/acinclude.m4 deleted file mode 100644 index b8554a299b..0000000000 --- a/acinclude.m4 +++ /dev/null @@ -1,1007 +0,0 @@ -dnl @(#) $Id: acinclude.m4 6084 2008-08-27 16:13:23Z vern $ (LBL) -dnl -dnl Copyright (c) 1995, 1996, 1997, 1998, 1999, 2002, 2003 -dnl The Regents of the University of California. All rights reserved. -dnl -dnl Redistribution and use in source and binary forms, with or without -dnl modification, are permitted provided that: (1) source code distributions -dnl retain the above copyright notice and this paragraph in its entirety, (2) -dnl distributions including binary code include the above copyright notice and -dnl this paragraph in its entirety in the documentation or other materials -dnl provided with the distribution, and (3) all advertising materials mentioning -dnl features or use of this software display the following acknowledgement: -dnl ``This product includes software developed by the University of California, -dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of -dnl the University nor the names of its contributors may be used to endorse -dnl or promote products derived from this software without specific prior -dnl written permission. -dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED -dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -dnl -dnl LBL autoconf macros -dnl - -dnl -dnl Define RETSIGTYPE and RETSIGVAL -dnl -dnl usage: -dnl -dnl AC_LBL_TYPE_SIGNAL -dnl -dnl results: -dnl -dnl RETSIGTYPE (defined) -dnl RETSIGVAL (defined) -dnl -AC_DEFUN([AC_LBL_TYPE_SIGNAL], - [[AC_BEFORE([$0], [AC_LBL_LIBPCAP]) - AC_TYPE_SIGNAL - if test "$ac_cv_type_signal" = void ; then - AC_DEFINE(RETSIGVAL,,[signal function return value]) - else - AC_DEFINE(RETSIGVAL,(0)) - fi - case "$target_os" in - - irix*) - AC_DEFINE(_BSD_SIGNALS,,[irix's BSD style signals]) - ;; - - *) - dnl prefer sigset() to sigaction() - AC_CHECK_FUNCS(sigset) - if test $ac_cv_func_sigset = yes ; then - AC_DEFINE(signal,sigset,[use sigset() instead of signal()]) - else - AC_CHECK_FUNCS(sigaction) - fi - ;; - esac]]) - -dnl -dnl Determine which compiler we're using (cc or gcc) -dnl If using gcc, determine the version number -dnl If using cc, require that it support ansi prototypes -dnl If using gcc, use -O2 (otherwise use -O) -dnl If using cc, explicitly specify /usr/local/include -dnl -dnl usage: -dnl -dnl AC_LBL_C_INIT(copt, incls) -dnl -dnl results: -dnl -dnl $1 (copt set) -dnl $2 (incls set) -dnl CC -dnl LDFLAGS -dnl LBL_CFLAGS -dnl -AC_DEFUN([AC_LBL_C_INIT], - [AC_PREREQ(2.12) - AC_BEFORE([$0], [AC_PROG_CC]) - AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) - AC_BEFORE([$0], [AC_LBL_DEVEL]) - AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) - $1="-O" - $2="" - if test "${srcdir}" != "." ; then - $2='-I$(srcdir)' - fi - if test "${CFLAGS+set}" = set; then - LBL_CFLAGS="$CFLAGS" - fi - if test -z "$CC" ; then - case "$target_os" in - - bsdi*) - AC_CHECK_PROG(SHLICC2, shlicc2, yes, no) - if test $SHLICC2 = yes ; then - CC=shlicc2 - export CC - fi - ;; - esac - fi - if test -z "$CC" -a "$with_gcc" = no ; then - CC=cc - export CC - fi - AC_PROG_CC - if test "$GCC" != yes ; then - AC_MSG_CHECKING(that $CC handles ansi prototypes) - AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes, - AC_TRY_COMPILE( - [#include ], - [int frob(int, char *)], - ac_cv_lbl_cc_ansi_prototypes=yes, - ac_cv_lbl_cc_ansi_prototypes=no)) - AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes) - if test $ac_cv_lbl_cc_ansi_prototypes = no ; then - case "$target_os" in - - hpux*) - AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE)) - savedcflags="$CFLAGS" - CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS" - AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa, - AC_TRY_COMPILE( - [#include ], - [int frob(int, char *)], - ac_cv_lbl_cc_hpux_cc_aa=yes, - ac_cv_lbl_cc_hpux_cc_aa=no)) - AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa) - if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then - AC_MSG_ERROR(see the INSTALL doc for more info) - fi - CFLAGS="$savedcflags" - $1="-Aa $$1" - AC_DEFINE(_HPUX_SOURCE,,[HP-UX ansi compiler]) - ;; - - *) - AC_MSG_ERROR(see the INSTALL doc for more info) - ;; - esac - fi - $2="$$2 -I/usr/local/include" - LDFLAGS="$LDFLAGS -L/usr/local/lib" - - case "$target_os" in - - irix*) - $1="$$1 -xansi -signed -g3" - ;; - - osf*) - $1="$$1 -std1 -g3" - ;; - - ultrix*) - AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes) - AC_CACHE_VAL(ac_cv_lbl_cc_const_proto, - AC_TRY_COMPILE( - [#include ], - [struct a { int b; }; - void c(const struct a *)], - ac_cv_lbl_cc_const_proto=yes, - ac_cv_lbl_cc_const_proto=no)) - AC_MSG_RESULT($ac_cv_lbl_cc_const_proto) - if test $ac_cv_lbl_cc_const_proto = no ; then - AC_DEFINE(const,,[ultrix can't hack const]) - fi - ;; - esac - fi -]) - -dnl AC_LBL_ENABLE_CHECK(brov6 activemapping expire-dfa-states) -dnl -dnl This allows us to check for bogus configure enable/disable -dnl command line options -dnl -dnl usage: -dnl -dnl AC_LBL_ENABLE_CHECK(opt ...) -dnl -AC_DEFUN([AC_LBL_ENABLE_CHECK], - [set | - sed -n -e 's/^enable_\([[^=]]*\)=[[^=]]*$/\1/p' | - while read var; do - ok=0 - for o in option_checking m4_translit([$1], -, _); do - if test "${o}" = "${var}" ; then - ok=1 - break - fi - done - if test ${ok} -eq 0 ; then - # It's hard to kill configure script from subshell! - AC_MSG_ERROR(unknown enable option: ${var}) - exit 1 - fi - done - if test $? -ne 0 ; then - exit 1 - fi]) - -dnl -dnl Use pfopen.c if available and pfopen() not in standard libraries -dnl Require libpcap -dnl Look for libpcap in .. -dnl Use the installed libpcap if there is no local version -dnl -dnl usage: -dnl -dnl AC_LBL_LIBPCAP(pcapdep, incls) -dnl -dnl results: -dnl -dnl $1 (pcapdep set) -dnl $2 (incls appended) -dnl LIBS -dnl LDFLAGS -dnl LBL_LIBS -dnl -AC_DEFUN([AC_LBL_LIBPCAP], - [AC_REQUIRE([AC_LBL_LIBRARY_NET]) - dnl - dnl save a copy before locating libpcap.a - dnl - LBL_LIBS="$LIBS" - pfopen=/usr/examples/packetfilter/pfopen.c - if test -f $pfopen ; then - AC_CHECK_FUNCS(pfopen) - if test $ac_cv_func_pfopen = "no" ; then - AC_MSG_RESULT(Using $pfopen) - LIBS="$LIBS $pfopen" - fi - fi - AC_MSG_CHECKING(for local pcap library) - libpcap=FAIL - lastdir=FAIL - dnl Since config is at the top level, .. is meaningless for subdirs, get - dnl the full path - oneup=`(cd ..; pwd)` - places=`ls .. | sed -e 's,/$,,' -e "s,^,$oneup/," | \ - egrep '/libpcap-[[0-9]]*\.[[0-9]]*(\.[[0-9]]*)?([[ab]][[0-9]]*)?$'` - for dir in $places $oneup/libpcap libpcap ; do - basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'` - if test $lastdir = $basedir ; then - dnl skip alphas when an actual release is present - continue; - fi - lastdir=$dir - if test -r $dir/pcap.c ; then - libpcap=$dir/libpcap.a - d=$dir - dnl continue and select the last one that exists - fi - done - if test "x$libpcap" = xFAIL ; then - AC_MSG_RESULT(not found) - AC_CHECK_LIB(pcap, pcap_open_live, libpcap="-lpcap") - unset ac_cv_lib_pcap_pcap_open_live - if test "x$libpcap" = xFAIL ; then - CFLAGS="$CFLAGS -I/usr/local/include" - LIBS="$LIBS -L/usr/local/lib" - AC_CHECK_LIB(pcap, pcap_open_live, libpcap="-lpcap") - unset ac_cv_lib_pcap_pcap_open_live - if test "x$libpcap" = xFAIL ; then - AC_MSG_ERROR(see the INSTALL doc for more info) - fi - $2="$$2 -I/usr/local/include" - fi - LIBS="$LIBS -lpcap" - else - $1=$libpcap - $2="-I$d $$2" - AC_MSG_RESULT($libpcap) - fi - if test "x$libpcap" != "x-lpcap" ; then - LIBS="-L$d -lpcap $LIBS" - fi - - dnl check libpcap is modern enough for Bro (>= 0.6.1) - AC_CHECK_LIB(pcap, pcap_freecode) - if test "$ac_cv_lib_pcap_pcap_freecode" = no ; then - AC_DEFINE([DONT_HAVE_LIBPCAP_PCAP_FREECODE],[],[Old libpcap versions (< 0.6.1) need defining pcap_freecode and pcap_compile_nopcap]) - fi - - dnl check pcap headers location - AC_MSG_CHECKING(for pcap headers) - pcap_header_locations="\ - $PWD/../libpcap \ - /usr/include \ - /usr/include/pcap \ - /usr/src/sys \ - /usr/local/include \ - /usr/local/src/libpcap \ - $d" - pcap_includes=FAIL - for dir in $pcap_header_locations; do - if test -r $dir/pcap.h ; then - pcap_includes=$dir - break - fi - done - if test "x$pcap_includes" = xFAIL ; then - AC_MSG_ERROR(couldn't find pcap.h) - fi - if test "x$pcap_includes" != x/usr/include ; then - AC_MSG_RESULT($pcap_includes) - V_INCLS="$V_INCLS -I$pcap_includes" - else - AC_MSG_RESULT($pcap_includes) - fi - - dnl check if pcap_compile_nopcap needs error parameter (NetBSDism) - if test "$ac_cv_lib_pcap_pcap_freecode" = yes ; then - CFLAGS="$CFLAGS -I$pcap_includes" - AC_MSG_CHECKING(if pcap_compile_nopcap needs error parameter) - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ - #include - ]], [[ - int snaplen; - int linktype; - struct bpf_program fp; - int optimize; - bpf_u_int32 netmask; - char str[10]; - snaplen = 50; - linktype = DLT_EN10MB; - optimize = 1; - netmask = 0L; - str[0] = 'i'; str[1] = 'p'; str[2] = '\0'; - (void)pcap_compile_nopcap(snaplen, linktype, &fp, str, optimize, netmask); - ]])],result="ok",result="wrong") - if test "$result" = "ok" ; then - AC_MSG_RESULT(not needed) - else - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ - #include - ]], [[ - int snaplen; - int linktype; - struct bpf_program fp; - int optimize; - bpf_u_int32 netmask; - char str[10]; - char error[1024]; - snaplen = 50; - linktype = DLT_EN10MB; - optimize = 1; - netmask = 0L; - str[0] = 'i'; str[1] = 'p'; str[2] = '\0'; - (void)pcap_compile_nopcap(snaplen, linktype, &fp, str, optimize, netmask, &error); - ]])],result="ok",result="wrong") - if test "$result" = "ok" ; then - AC_DEFINE([LIBPCAP_PCAP_COMPILE_NOPCAP_HAS_ERROR_PARAMETER],[], - [Some libpcap versions use an extra parameter (error) in pcap_compile_nopcap]) - AC_MSG_RESULT(needed) - else - AC_MSG_ERROR(don't know (weird pcap_compile_nopcap)) - fi - fi - fi - - - case "$target_os" in - - aix*) - pseexe="/lib/pse.exp" - AC_MSG_CHECKING(for $pseexe) - if test -f $pseexe ; then - AC_MSG_RESULT(yes) - LIBS="$LIBS -I:$pseexe" - fi - ;; - esac]) - -dnl -dnl Define RETSIGTYPE and RETSIGVAL -dnl -dnl usage: -dnl -dnl AC_LBL_TYPE_SIGNAL -dnl -dnl results: -dnl -dnl RETSIGTYPE (defined) -dnl RETSIGVAL (defined) -dnl -AC_DEFUN([AC_LBL_TYPE_SIGNAL], - [AC_BEFORE([$0], [AC_LBL_LIBPCAP]) - AC_TYPE_SIGNAL - if test "$ac_cv_type_signal" = void ; then - AC_DEFINE(RETSIGVAL,,[signal function return value]) - else - AC_DEFINE(RETSIGVAL,(0)) - fi - case "$target_os" in - - irix*) - AC_DEFINE(_BSD_SIGNALS,,[irix's BSD style signals]) - ;; - - *) - dnl prefer sigset() to sigaction() - AC_CHECK_FUNCS(sigset) - if test $ac_cv_func_sigset = yes ; then - AC_DEFINE(signal,sigset,[use sigset() instead of signal()]) - else - AC_CHECK_FUNCS(sigaction) - fi - ;; - esac]) - -dnl -dnl If using gcc, make sure we have ANSI ioctl definitions -dnl -dnl usage: -dnl -dnl AC_LBL_FIXINCLUDES -dnl -AC_DEFUN([AC_LBL_FIXINCLUDES], - [if test "$GCC" = yes ; then - AC_MSG_CHECKING(for ANSI ioctl definitions) - AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes, - AC_TRY_COMPILE( - [/* - * This generates a "duplicate case value" when fixincludes - * has not be run. - */ -# include -# include -# include -# ifdef HAVE_SYS_IOCCOM_H -# include -# endif], - [switch (0) { - case _IO('A', 1):; - case _IO('B', 1):; - }], - ac_cv_lbl_gcc_fixincludes=yes, - ac_cv_lbl_gcc_fixincludes=no)) - AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes) - if test $ac_cv_lbl_gcc_fixincludes = no ; then - # Don't cache failure - unset ac_cv_lbl_gcc_fixincludes - AC_MSG_ERROR(see the INSTALL for more info) - fi - fi]) - -dnl -dnl Check for flex, default to lex -dnl Require flex 2.4 or higher -dnl Check for bison, default to yacc -dnl Default to lex/yacc if both flex and bison are not available -dnl Define the yy prefix string if using flex and bison -dnl -dnl usage: -dnl -dnl AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix) -dnl -dnl results: -dnl -dnl $1 (lex set) -dnl $2 (yacc appended) -dnl $3 (optional flex and bison -P prefix) -dnl -AC_DEFUN([AC_LBL_LEX_AND_YACC], - [AC_ARG_WITH(flex, [ --without-flex don't use flex]) - AC_ARG_WITH(bison, [ --without-bison don't use bison]) - if test "$with_flex" = no ; then - $1=lex - else - AC_CHECK_PROGS($1, flex, lex) - fi - if test "$$1" = flex ; then - # The -V flag was added in 2.4 - AC_MSG_CHECKING(for flex 2.4 or higher) - AC_CACHE_VAL(ac_cv_lbl_flex_v24, - if flex -V >/dev/null 2>&1; then - ac_cv_lbl_flex_v24=yes - else - ac_cv_lbl_flex_v24=no - fi) - AC_MSG_RESULT($ac_cv_lbl_flex_v24) - if test $ac_cv_lbl_flex_v24 = no ; then - s="2.4 or higher required" - AC_MSG_WARN(ignoring obsolete flex executable ($s)) - $1=lex - fi - fi - if test "$with_bison" = no ; then - $2=yacc - else - AC_CHECK_PROGS($2, bison, yacc) - fi - if test "$$2" = bison ; then - $2="$$2 -y" - fi - if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then - AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc) - $1=lex - $2=yacc - fi - if test "$$1" = flex -a -n "$3" ; then - $1="$$1 -P$3" - $2="$$2 -p $3" - fi]) - -dnl -dnl Checks to see if union wait is used with WEXITSTATUS() -dnl -dnl usage: -dnl -dnl AC_LBL_UNION_WAIT -dnl -dnl results: -dnl -dnl DECLWAITSTATUS (defined) -dnl -AC_DEFUN([AC_LBL_UNION_WAIT], - [AC_MSG_CHECKING(if union wait is used) - AC_CACHE_VAL(ac_cv_lbl_union_wait, - AC_TRY_COMPILE([ -# include -# include ], - [int status; - u_int i = WEXITSTATUS(status); - u_int j = waitpid(0, &status, 0);], - ac_cv_lbl_union_wait=no, - ac_cv_lbl_union_wait=yes)) - AC_MSG_RESULT($ac_cv_lbl_union_wait) - if test $ac_cv_lbl_union_wait = yes ; then - AC_DEFINE(DECLWAITSTATUS,union wait) - else - AC_DEFINE(DECLWAITSTATUS,int) - fi]) - -dnl -dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member -dnl -dnl usage: -dnl -dnl AC_LBL_SOCKADDR_SA_LEN -dnl -dnl results: -dnl -dnl HAVE_SOCKADDR_SA_LEN (defined) -dnl -AC_DEFUN([AC_LBL_SOCKADDR_SA_LEN], - [AC_CHECK_MEMBERS(struct sockaddr.sa_len,,,[ -# include -# include ])]) - -dnl -dnl Makes sure socklen_t is defined -dnl -dnl usage: -dnl -dnl AC_LBL_SOCKLEN_T -dnl -dnl results: -dnl -dnl socklen_t (defined if missing) -dnl -AC_DEFUN([AC_LBL_SOCKLEN_T], - [AC_MSG_CHECKING(for socklen_t in sys/socket.h using $CC) - AC_CACHE_VAL(ac_cv_lbl_socklen_t, - AC_TRY_COMPILE([ -# include "confdefs.h" -# include -# include -# if STDC_HEADERS -# include -# include -# endif], - [socklen_t i], - ac_cv_lbl_socklen_t=yes, - ac_cv_lbl_socklen_t=no)) - AC_MSG_RESULT($ac_cv_lbl_socklen_t) - if test $ac_cv_lbl_socklen_t = no ; then - AC_DEFINE(socklen_t, int, [Define socklen_t if missing]) - fi]) - -dnl -dnl Checks to see if the IFF_LOOPBACK exists as a define or enum -dnl -dnl (stupidly some versions of linux use an enum...) -dnl -dnl usage: -dnl -dnl AC_LBL_IFF_LOOPBACK -dnl -dnl results: -dnl -dnl HAVE_IFF_LOOPBACK (defined) -dnl -AC_DEFUN([AC_LBL_IFF_LOOPBACK], - [AC_MSG_CHECKING(for IFF_LOOPBACK define/enum) - AC_CACHE_VAL(ac_cv_lbl_have_iff_loopback, - AC_TRY_COMPILE([ -# include -# include -# include -# include -# ifdef HAVE_SYS_SOCKIO_H -# include -# endif -# include -# include -# include ], - [int i = IFF_LOOPBACK], - ac_cv_lbl_have_iff_loopback=yes, - ac_cv_lbl_have_iff_loopback=no)) - AC_MSG_RESULT($ac_cv_lbl_have_iff_loopback) - if test $ac_cv_lbl_have_iff_loopback = yes ; then - AC_DEFINE(HAVE_IFF_LOOPBACK,, [Have IFF_LOOPBACK define/enum]) - fi]) - -dnl -dnl Checks to see if -R is used -dnl -dnl usage: -dnl -dnl AC_LBL_HAVE_RUN_PATH -dnl -dnl results: -dnl -dnl ac_cv_lbl_have_run_path (yes or no) -dnl -AC_DEFUN([AC_LBL_HAVE_RUN_PATH], - [AC_MSG_CHECKING(for ${CC-cc} -R) - AC_CACHE_VAL(ac_cv_lbl_have_run_path, - [echo 'main(){}' > conftest.c - ${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1 - if test ! -s conftest.out ; then - ac_cv_lbl_have_run_path=yes - else - ac_cv_lbl_have_run_path=no - fi - rm -f conftest*]) - AC_MSG_RESULT($ac_cv_lbl_have_run_path) - ]) - -dnl -dnl Due to the stupid way it's implemented, AC_CHECK_TYPE is nearly useless. -dnl -dnl usage: -dnl -dnl AC_LBL_CHECK_TYPE -dnl -dnl results: -dnl -dnl int32_t (defined) -dnl u_int32_t (defined) -dnl -AC_DEFUN([AC_LBL_CHECK_TYPE], - [AC_MSG_CHECKING(for $1 using $CC) - AC_CACHE_VAL(ac_cv_lbl_have_$1, - AC_TRY_COMPILE([ -# include "confdefs.h" -# include -# if STDC_HEADERS -# include -# include -# endif], - [$1 i], - ac_cv_lbl_have_$1=yes, - ac_cv_lbl_have_$1=no)) - AC_MSG_RESULT($ac_cv_lbl_have_$1) - if test $ac_cv_lbl_have_$1 = no ; then - AC_DEFINE($1, $2, Define $1) - fi]) - -dnl -dnl Checks to see if unaligned memory accesses fail -dnl -dnl usage: -dnl -dnl AC_LBL_UNALIGNED_ACCESS -dnl -dnl results: -dnl -dnl LBL_ALIGN (DEFINED) -dnl -AC_DEFUN([AC_LBL_UNALIGNED_ACCESS], - [AC_MSG_CHECKING(if unaligned accesses fail) - AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, - [case "$target_cpu" in - - alpha|hp*|mips|sparc) - ac_cv_lbl_unaligned_fail=yes - ;; - - *) - cat >conftest.c < -# include -# include - unsigned char a[[5]] = { 1, 2, 3, 4, 5 }; - main() { - unsigned int i; - pid_t pid; - int status; - /* avoid "core dumped" message */ - pid = fork(); - if (pid < 0) - exit(2); - if (pid > 0) { - /* parent */ - pid = waitpid(pid, &status, 0); - if (pid < 0) - exit(3); - exit(!WIFEXITED(status)); - } - /* child */ - i = *(unsigned int *)&a[[1]]; - printf("%d\n", i); - exit(0); - } -EOF - ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \ - conftest.c $LIBS >/dev/null 2>&1 - if test ! -x conftest ; then - dnl failed to compile for some reason - ac_cv_lbl_unaligned_fail=yes - else - ./conftest >conftest.out - if test ! -s conftest.out ; then - ac_cv_lbl_unaligned_fail=yes - else - ac_cv_lbl_unaligned_fail=no - fi - fi - rm -f conftest* core core.conftest - ;; - esac]) - AC_MSG_RESULT($ac_cv_lbl_unaligned_fail) - if test $ac_cv_lbl_unaligned_fail = yes ; then - AC_DEFINE(LBL_ALIGN) - fi]) - -dnl -dnl add all warning option to CFLAGS -dnl -dnl usage: -dnl -dnl AC_LBL_CHECK_WALL(copt) -dnl -dnl results: -dnl -dnl $1 (copt appended) -dnl ac_cv_lbl_gcc_vers -dnl -AC_DEFUN([AC_LBL_CHECK_WALL], - [ if test "$GCC" = yes ; then - if test "$SHLICC2" = yes ; then - ac_cv_lbl_gcc_vers=2 - $1="`echo $$1 | sed -e 's/-O/-O2/'`" - else - AC_MSG_CHECKING(gcc version) - AC_CACHE_VAL(ac_cv_lbl_gcc_vers, - # Gag, the gcc folks keep changing the output... - ac_cv_lbl_gcc_vers=`$CC --version 2>&1 | \ - sed -e '1!d' -e 's/.* //' -e 's/\..*//'`) - AC_MSG_RESULT($ac_cv_lbl_gcc_vers) - if test $ac_cv_lbl_gcc_vers -gt 1 ; then - $1="`echo $$1 | sed -e 's/-O/-O2/'`" - fi - fi - if test "${LBL_CFLAGS+set}" != set; then - if test "$ac_cv_prog_cc_g" = yes ; then - $1="-g $$1" - fi - $1="$$1 -Wall" - if test $ac_cv_lbl_gcc_vers -gt 1 ; then - $1="$$1 -Wmissing-prototypes -Wstrict-prototypes" - fi - fi - else - case "$target_os" in - - irix6*) - $1="$$1 -fullwarn -n32" - ;; - - *) - ;; - esac - fi]) - -dnl -dnl If using gcc and the file .devel exists: -dnl Compile with -g (if supported) and -Wall -dnl If using gcc 2, do extra prototype checking -dnl If an os prototype include exists, symlink os-proto.h to it -dnl -dnl usage: -dnl -dnl AC_LBL_DEVEL(copt) -dnl -dnl results: -dnl -dnl $1 (copt appended) -dnl HAVE_OS_PROTO_H (defined) -dnl os-proto.h (symlinked) -dnl -AC_DEFUN([AC_LBL_DEVEL], - [rm -f os-proto.h - if test "${LBL_CFLAGS+set}" = set; then - $1="$$1 ${LBL_CFLAGS}" - fi - if test -f .devel ; then - AC_LBL_CHECK_WALL($1) - os=`echo $target_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'` - name="lbl/os-$os.h" - if test -f $name ; then - ln -s $name os-proto.h - AC_DEFINE(HAVE_OS_PROTO_H,,[have os-proto.h]) - else - AC_MSG_WARN(can't find $name) - fi - fi]) - -dnl -dnl Improved version of AC_CHECK_LIB -dnl -dnl Thanks to John Hawkinson (jhawk@mit.edu) -dnl -dnl usage: -dnl -dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, -dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]]) -dnl -dnl results: -dnl -dnl LIBS -dnl - -define(AC_LBL_CHECK_LIB, -[AC_MSG_CHECKING([for $2 in -l$1]) -dnl Use a cache variable name containing both the library and function name, -dnl because the test really is for library $1 defining function $2, not -dnl just for library $1. Separate tests with the same $1 and different $2's -dnl may have different results. -ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'` -AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var, -[ac_save_LIBS="$LIBS" -LIBS="-l$1 $5 $LIBS" -AC_TRY_LINK(dnl -ifelse([$2], [main], , dnl Avoid conflicting decl of main. -[/* Override any gcc2 internal prototype to avoid an error. */ -]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus -extern "C" -#endif -])dnl -[/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $2(); -]), - [$2()], - eval "ac_cv_lbl_lib_$ac_lib_var=yes", - eval "ac_cv_lbl_lib_$ac_lib_var=no") -LIBS="$ac_save_LIBS" -])dnl -if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then - AC_MSG_RESULT(yes) - ifelse([$3], , -[changequote(, )dnl - ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` -changequote([, ])dnl - AC_DEFINE_UNQUOTED($ac_tr_lib) - LIBS="-l$1 $LIBS" -], [$3]) -else - AC_MSG_RESULT(no) -ifelse([$4], , , [$4 -])dnl -fi -]) - -dnl -dnl AC_LBL_LIBRARY_NET -dnl -dnl This test is for network applications that need socket() and -dnl gethostbyname() -ish functions. Under Solaris, those applications -dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link -dnl with "-lnsl" but should *not* link with "-lsocket" because -dnl libsocket.a breaks a number of things (for instance: -dnl gethostbyname() under IRIX 5.2, and snoop sockets under most -dnl versions of IRIX). -dnl -dnl Unfortunately, many application developers are not aware of this, -dnl and mistakenly write tests that cause -lsocket to be used under -dnl IRIX. It is also easy to write tests that cause -lnsl to be used -dnl under operating systems where neither are necessary (or useful), -dnl such as SunOS 4.1.4, which uses -lnsl for TLI. -dnl -dnl This test exists so that every application developer does not test -dnl this in a different, and subtly broken fashion. - -dnl It has been argued that this test should be broken up into two -dnl seperate tests, one for the resolver libraries, and one for the -dnl libraries necessary for using Sockets API. Unfortunately, the two -dnl are carefully intertwined and allowing the autoconf user to use -dnl them independantly potentially results in unfortunate ordering -dnl dependancies -- as such, such component macros would have to -dnl carefully use indirection and be aware if the other components were -dnl executed. Since other autoconf macros do not go to this trouble, -dnl and almost no applications use sockets without the resolver, this -dnl complexity has not been implemented. -dnl -dnl The check for libresolv is in case you are attempting to link -dnl statically and happen to have a libresolv.a lying around (and no -dnl libnsl.a). -dnl -AC_DEFUN([AC_LBL_LIBRARY_NET], [ - # Most operating systems have gethostbyname() in the default searched - # libraries (i.e. libc): - AC_CHECK_FUNC(gethostbyname, , - # Some OSes (eg. Solaris) place it in libnsl: - AC_CHECK_LIB(nsl, gethostbyname, , - # Some strange OSes (SINIX) have it in libsocket: - AC_CHECK_LIB(socket, gethostbyname, , - # Unfortunately libsocket sometimes depends on libnsl. - # AC_CHECK_LIB's API is essentially broken so the - # following ugliness is necessary: - AC_CHECK_LIB(socket, gethostbyname, - LIBS="-lsocket -lnsl $LIBS", - AC_CHECK_LIB(resolv, gethostbyname), - -lnsl)))) - AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , - AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , - -lnsl))) - # DLPI needs putmsg under HPUX so test for -lstr while we're at it - AC_CHECK_LIB(str, putmsg) - ]) - - -dnl -dnl Checks to see if declaring syslog() and openlog() as returning int -dnl is compatible with and , or if we should not -dnl declare them explicitly. -dnl -dnl usage: -dnl -dnl AC_BRO_SYSLOG_INT -dnl -dnl results: -dnl -dnl SYSLOG_INT (either defined or not defined) -dnl -AC_DEFUN([AC_BRO_SYSLOG_INT], - [AC_LANG_CPLUSPLUS - AC_MSG_CHECKING(if syslog returns int) - AC_CACHE_VAL(ac_cv_bro_syslog_int, - AC_TRY_COMPILE([ -# include -# include - extern "C" { - int openlog(const char* ident, int logopt, int facility); - int syslog(int priority, const char* message_fmt, ...); - int closelog(); - }],, - ac_cv_bro_syslog_int=yes, - ac_cv_bro_syslog_int=no)) - AC_MSG_RESULT($ac_cv_bro_syslog_int) - if test $ac_cv_bro_syslog_int = yes ; then - AC_DEFINE(SYSLOG_INT,,[should we declare syslog() and openlog()]) - fi]) - -dnl -dnl Checks to see if we should explicitly declare socket() and friends. -dnl -dnl usage: -dnl -dnl AC_BRO_SOCK_DECL -dnl -dnl results: -dnl -dnl DO_SOCK_DECL (either defined or not defined) -dnl -AC_DEFUN([AC_BRO_SOCK_DECL], - [AC_LANG_C - AC_MSG_CHECKING(if we should declare socket and friends) - AC_CACHE_VAL(ac_cv_bro_sock_decl, - AC_TRY_COMPILE([ -# include -# include - extern int socket(int, int, int); - extern int connect(int, const struct sockaddr *, int); - extern int send(int, const void *, int, int); - extern int recvfrom(int, void *, int, int, struct sockaddr *, int *); - ],, - ac_cv_bro_sock_decl=yes, - ac_cv_bro_sock_decl=no)) - AC_MSG_RESULT($ac_cv_bro_sock_decl) - if test $ac_cv_bro_sock_decl = yes ; then - AC_DEFINE(DO_SOCK_DECL,,[should explicitly declare socket() and friends]) - fi]) diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 817498c141..0000000000 --- a/autogen.sh +++ /dev/null @@ -1,143 +0,0 @@ -#!/bin/sh - -# Initialization script to set up the initial configuration files etc. -# shtool usage inspired by the autogen script of the ferite scripting -# language -- cheers Chris :) -# -# This is 'borrowed' from netdude, with minor changes for bro - -BLD_ON=`./shtool echo -n -e %B` -BLD_OFF=`./shtool echo -n -e %b` - -srcdir=`dirname $0` -NAME=bro - -DIE=0 - -echo -echo " "${BLD_ON}"BRO Build Tools Setup"${BLD_OFF} -echo "====================================================" -echo -echo "Checking whether we have all tools available ..." - -(autoconf --version) < /dev/null > /dev/null 2>&1 || { - echo - echo ${BLD_ON}"Error"${BLD_OFF}": You must have \`autoconf' installed to." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1 -} - -(automake --version) < /dev/null > /dev/null 2>&1 || { - echo - echo ${BLD_ON}"Error"${BLD_OFF}": You must have \`automake' installed." - echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 - NO_AUTOMAKE=yes -} - -# if no automake, don't bother testing for aclocal -test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { - echo - echo ${BLD_ON}"Error"${BLD_OFF}": Missing \`aclocal'. The version of \`automake'" - echo "installed doesn't appear recent enough." - echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 -} - -if test "$DIE" -eq 1; then - exit 1 -fi - -echo "All necessary tools found." -echo - -if [ -d autom4te.cache ] ; then - echo "Removing autom4te.cache ..." - rm -rf autom4te.cache - #echo - #echo ${BLD_ON}"Error"${BLD_OFF}": autom4te.cache directory exists" - #echo "please remove it, and rerun this script" - #echo - #exit 1 -fi - -echo -echo "running "${BLD_ON}"aclocal"${BLD_OFF} -echo "----------------------------------------------------" -aclocal -I . $ACLOCAL_FLAGS -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo "running "${BLD_ON}"autoheader"${BLD_OFF} -echo "----------------------------------------------------" -autoheader -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo "running "${BLD_ON}"automake"${BLD_OFF} -echo "----------------------------------------------------" -automake -a -c -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo "running "${BLD_ON}"autoconf"${BLD_OFF} -echo "----------------------------------------------------" -autoconf -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo -echo "Running aux/binpac/autogen.sh" -echo "----------------------------------------------------" -(cd aux/binpac/ && BROBUILD=yes ./autogen.sh) -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo -echo "Running aux/broccoli/autogen.sh" -echo "----------------------------------------------------" -(cd aux/broccoli/ && BROBUILD=yes ./autogen.sh) -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo -echo "Running aux/broctl/aux/capstats/autogen.sh" -echo "----------------------------------------------------" -(cd aux/broctl/aux/capstats && ./autogen.sh) -if [ $? -ne 0 ]; then - echo "*** ERROR($NAME), aborting." - exit 1 -fi - -echo -echo -echo "Setup finished. Now run:" -echo -echo " $ "${BLD_ON}"./configure"${BLD_OFF}" (with options as needed, try --help)" -echo -echo "and then" -echo -echo " $ "${BLD_ON}"make"${BLD_OFF} -echo " # "${BLD_ON}"make install"${BLD_OFF} -echo diff --git a/compile b/compile deleted file mode 100755 index a81e000ae1..0000000000 --- a/compile +++ /dev/null @@ -1,136 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. - -scriptversion=2003-11-09.00 - -# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. - -Report bugs to . -EOF - exit 0 - ;; - -v | --v*) - echo "compile $scriptversion" - exit 0 - ;; -esac - - -prog=$1 -shift - -ofile= -cfile= -args= -while test $# -gt 0; do - case "$1" in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we do something ugly here. - ofile=$2 - shift - case "$ofile" in - *.o | *.obj) - ;; - *) - args="$args -o $ofile" - ofile= - ;; - esac - ;; - *.c) - cfile=$1 - args="$args $1" - ;; - *) - args="$args $1" - ;; - esac - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$prog" $args -fi - -# Name of file we expect compiler to create. -cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d -while true; do - if mkdir $lockdir > /dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir $lockdir; exit 1" 1 2 15 - -# Run the compile. -"$prog" $args -status=$? - -if test -f "$cofile"; then - mv "$cofile" "$ofile" -fi - -rmdir $lockdir -exit $status - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/config.guess b/config.guess deleted file mode 100755 index 6bdac8d7b6..0000000000 --- a/config.guess +++ /dev/null @@ -1,1388 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2003-05-09' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i586-pc-interix3 - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.sub b/config.sub deleted file mode 100755 index fe4f1edf3c..0000000000 --- a/config.sub +++ /dev/null @@ -1,1492 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2003-05-09' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | msp430 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/configure.in b/configure.in deleted file mode 100644 index 16c1113a3a..0000000000 --- a/configure.in +++ /dev/null @@ -1,964 +0,0 @@ -dnl @(#) $Id: configure.in 6960 2009-12-19 06:22:16Z vern $ (LBL) -dnl -dnl Copyright (c) 1997, 1998, 2001, 2002 -dnl The Regents of the University of California. All rights reserved. -dnl -dnl Process this file with autoconf to produce a configure script. -dnl - -## broken versioning stuff -##m4_include([version.m4]) -##AC_INIT([bro], VERSION_NUMBER) - -## NOTICE: this sets the version at the autoconf time, not -## at configure time, so it may be out of date! - -## start of changes for different versions of automake/conf - -# this will work with automake 1.8.5 -dnl AC_INIT(bro, esyscmd([tr -d '\n' < VERSION])) -dnl AC_CONFIG_SRCDIR(src/Active.cc) -dnl AC_CANONICAL_SYSTEM -dnl AM_INIT_AUTOMAKE -dnl AC_CONFIG_HEADER(config.h) -dnl AC_LBL_C_INIT(V_CCOPT, V_INCLS) -dnl AC_PROG_LEX - -## This should work with automake 1.6 -AC_INIT(src/Active.cc) -AC_CANONICAL_SYSTEM -#AM_INIT_AUTOMAKE(bro, 0.1.0) -AM_INIT_AUTOMAKE(bro, esyscmd([tr -d '\n' < VERSION])) -AM_CONFIG_HEADER(config.h) -AC_LBL_C_INIT(V_CCOPT, V_INCLS) -AM_PROG_LEX - -## end of changes for versions of automake/conf - -dnl Commands for funkier shell output: -BLD_ON=`./shtool echo -n -e %B` -BLD_OFF=`./shtool echo -n -e %b` - -# We should install everything in /usr/local/bro{bin,lib,policy,etc} -AC_PREFIX_DEFAULT(/usr/local/bro) - -dnl ################################################ -dnl # Checks for programs -dnl ################################################ -AC_PROG_YACC -AC_PROG_CXX -AC_PROG_INSTALL -AC_PROG_MAKE_SET -AC_PROG_RANLIB -AC_CHECK_PROGS(COMPRESS, gzip, compress) - -AM_CONDITIONAL(USEV6, false) - -AC_ARG_ENABLE(brov6, - [ --enable-brov6 enable IPV6 processing], - AC_DEFINE(BROv6,,[enable IPV6 processing]) - AM_CONDITIONAL(USEV6,true)) -AC_ARG_ENABLE(int64, - [ --enable-int64 enable use of int64 (long long) for integers], - AC_DEFINE(USE_INT64,1,[enable use of 64-bit integers])) -AC_ARG_ENABLE(activemapping, - [ --enable-activemapping enable active mapping processing], - AC_DEFINE(ACTIVE_MAPPING,,[Enable active mapping processing])) -AC_ARG_ENABLE(expire-dfa-states, - [ --enable-expire-dfa-states enable DFA state expiration], - AC_DEFINE(EXPIRE_DFA_STATES,,[Enable DFA state expiration])) - -AC_ARG_ENABLE(debug, - [ --enable-debug no compiler optimizations], - debug="yes" - V_CCOPT="-g -DDEBUG" - CFLAGS="-DDEBUG `echo $CFLAGS | sed -e 's/-O2//'`" - CPPFLAGS="-DDEBUG `echo $CPPFLAGS | sed -e 's/-O2//'`" - CXXFLAGS="-DDEBUG `echo $CXXFLAGS | sed -e 's/-O2//'`", - debug="no") - -AC_ARG_ENABLE(select-loop, - [ --disable-select-loop disable select-based main loop], - check_select_loop=no, - check_select_loop=yes) - -AC_ARG_ENABLE(perftools, - [ --enable-perftools use Google's perftools], - use_perftools=yes, - use_perftools=no) - -AC_ARG_WITH(openssl, - [ --with-openssl=PATH path to OpenSSL (needed for SSL analyzer and secure communication)], - if test "$withval" != "no" -a "$withval" != "NO"; then - use_openssl=yes - OPENSSL="$withval" - LDFLAGS="${LDFLAGS} -L${OPENSSL}/lib " - V_INCLS="${V_INCLS} -I${OPENSSL}/include" - CXXFLAGS="${CXXFLAGS} -I${OPENSSL}/include" - else - use_openssl=no - fi - ) - -AC_ARG_ENABLE(shippedpcap, - [ --enable-shippedpcap use the shipped version of libpcap ], - [ if test "$enableval" = yes; then - use_shippedpcap=yes - else - use_shippedpcap=no - fi ], - [ use_shippedpcap=no ]) - -AC_ARG_WITH(perl, [ --with-perl=PATH path/name of the Perl interpreter], - PERL=$withval, PERL=${PERL:-}) - -AC_ARG_WITH(dag, - [ --with-dag=PATH path to the DAG library (for native support for Endace Tech.'s DAG monitoring cards)], - if test "$withval" != "no" -a "$withval" != "NO"; then - use_dag=yes - DAGPATH="$withval" - LDFLAGS="${LDFLAGS} -L${DAGPATH}/lib " - V_INCLS="${V_INCLS} -I${DAGPATH}/include" - else - use_dag=no - fi - ) - -AC_ARG_WITH(binpac, - [ --with-binpac=PATH path to a binpac executable for compiling analyzer code], - BINPAC="$withval") - -AC_ARG_ENABLE(nbdns, - AC_HELP_STRING([--disable-nbdns], [Disable non-blocking DNS support]), - nbdns="no", nbdns="yes") - -AC_LBL_ENABLE_CHECK([activemapping binpac broccoli brov6 debug \ - expire-dfa-states gtk-doc int64 openssl perftools perl \ - select-loop shippedpcap broctl cluster nbdns]) - -dnl ################################################ -dnl # OpenSSL -dnl ################################################ - -if test "$use_openssl" != "no" -a "$use_openssl" != "NO"; then - saved_libs="${LIBS}" - AC_CHECK_LIB(crypto, OPENSSL_add_all_algorithms_conf, - LIBS="${LDFLAGS} -lcrypto" - AC_CHECK_LIB(ssl, SSL_new,, AC_MSG_ERROR([Can't find SSL library])) - LIBS="${LDFLAGS} -lssl" - use_openssl=yes, - use_openssl=no - ) - LIBS="${saved_libs}" -else - use_openssl=no -fi - -if test "$use_openssl" != "no"; then - saved_cflags="${CFLAGS}" - CFLAGS="${CFLAGS} -I${OPENSSL}/include" - AC_CHECK_DECL(OPENSSL_add_all_algorithms_conf,, - use_openssl=no, - [#include ]) - CFLAGS="${saved_cflags}" -fi - -if test "$use_openssl" = "yes"; then - # On Red Hat we may need to include Kerberos header. - # (CHECK_HEADER doesn't work here) - saved_cflags="${CFLAGS}" - CFLAGS="${CFLAGS} -I${OPENSSL}/include" - AC_COMPILE_IFELSE([#include ],, - CFLAGS="${CFLAGS} -I/usr/kerberos/include" - AC_CHECK_HEADER(krb5.h, - V_INCLS="${V_INCLS} -I/usr/kerberos/include" - AC_DEFINE(NEED_KRB5_H,,[Include krb5.h]), - use_openssl=no - AC_MSG_WARN([Can't compile OpenSSL test; disabling OpenSSL.]); - , - [#include - #include ] - ) - CFLAGS="${saved_cflags}" - ) -fi - -# Check for version >= 0.9.7 -if test "$use_openssl" = "yes"; then - saved_libs="${LIBS}" - LIBS="${LIBS} -lssl -lcrypto" - AC_MSG_CHECKING([for OpenSSL >= 0.9.7]) - AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include ]], [[OPENSSL_add_all_algorithms_conf();]]), - AC_MSG_RESULT(yes) - use_openssl=yes, - AC_MSG_RESULT(no) - use_openssl=no) - LIBS="${saved_libs}" -fi - -AM_CONDITIONAL(USE_OPENSSL, false) -if test "$use_openssl" = "yes"; then - AM_CONDITIONAL(USE_OPENSSL, true) - AC_DEFINE(USE_OPENSSL,,[Use OpenSSL]) - LIBS="${LIBS} -lssl -lcrypto" -fi - -# A test to see whether d2i_X509() uses const for the u_char** -# argument. Since one cannot just cast a u_char** to a const one -# (http://parashift.com/c++-faq-lite/const-correctness.html#faq-18.17) -# we test and then force a u_char** cast only when needed. -# -if test "$use_openssl" = "yes"; then - AC_MSG_CHECKING([whether d2i_X509() uses a const unsigned char**]) - AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE( - AC_LANG_PROGRAM([[#include ]], - [[const unsigned char** cpp = 0; - X509** x = 0; d2i_X509(x, cpp, 0);]]), - AC_DEFINE(OPENSSL_D2I_X509_USES_CONST_CHAR,,[d2i_x509 uses const char**]) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no)) - AC_LANG_POP([C++]) -fi - -# do we use ssl? -AM_CONDITIONAL(USE_SSL, test "$use_openssl" = "yes") - - -dnl ################################################ -dnl # Check for Perl executable -dnl ################################################ -if test -n "$PERL"; then - if echo "$PERL" | grep '^/' >/dev/null; then - AC_MSG_CHECKING(for $PERL) - if test -s "$PERL"; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - PERL='none' - fi - else - find_perl="$PERL" - PERL='' - fi -fi - -dnl if there is no perl, go find one! -if test -z "$PERL"; then - AC_PATH_PROGS(PERL,perl5 perl,,/usr/local/bin:/opt/local/bin:/usr/bin::.) -fi - -dnl if we still can't find it, warn them -if test -z "$PERL"; then - AC_MSG_WARN([Cannot find perl; please use --with-perl=/path/to/perl option.]) -else - dnl this seems backwards to me .....? but works - if ${PERL} -e 'exit ($] >= 5.006001)' > /dev/null 2>&1; then - AC_MSG_WARN([Bad perl version, need perl 5.6.1 or higher.; please use --with-perl=/path/to/perl option.]) - fi -fi - -AC_SUBST(PERL) - -dnl ################################################ -dnl # Check for chown binary -dnl ################################################ -AC_PATH_PROG(CHOWN, chown, , - [/usr/sbin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin]) -AC_SUBST(CHOWN) - -dnl ################################################ -dnl # OS-specific hacks and tweaks -dnl ################################################ - -AC_LBL_DEVEL(V_CCOPT) -AM_CONDITIONAL(USE_NMALLOC, false) - -dnl Our resolver tests below include an absolute libray location. -dnl This is its default, it may be changed for some OSs. -bro_absolute_libresolv="/usr/lib/libresolv.a" - -case "$target_os" in - -freebsd*) - # alternate malloc is faster for FreeBSD, but needs more testing - # need to add way to set this from the command line - AM_CONDITIONAL(USE_NMALLOC, true) - ;; - -darwin*) - AC_MSG_CHECKING([if we need to include arpa/nameser_compat.h]) - AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[#include ]], [[HEADER *hdr; int d = NS_IN6ADDRSZ;]]), bro_ns_header_defined=yes, bro_ns_header_defined=no) - # if the header is found, we don't need compatibility - if test "x$bro_ns_header_defined" = xyes; then - AC_MSG_RESULT(no) - else - AC_DEFINE(NEED_NAMESER_COMPAT_H,,[Compatibility for Darwin]) - AC_MSG_RESULT(yes) - fi - # Support for MacPorts and Fink package-management. - test -d /opt/local/lib && LDFLAGS="${LDFLAGS} -L/opt/local/lib" - test -d /sw/lib && LDFLAGS="${LDFLAGS} -L/sw/lib" - V_INCLS="${V_INCLS} -I/opt/local/include -I/sw/include" - CXXFLAGS="${CXXFLAGS} -I/opt/local/include -I/sw/include" - ;; - -openbsd*) - AM_CONDITIONAL(USE_NMALLOC, true) - AC_DEFINE(HAVE_OPENBSD,,[We are on a OpenBSD system]) - LDFLAGS="${LDFLAGS} -L/usr/local/lib" - V_INCLS="${V_INCLS} -I/usr/local/include" - CXXFLAGS="${CXXFLAGS} -I/usr/local/include" - ;; - -linux*) - V_INCLS="$V_INCLS -I\${top_srcdir}/linux-include" - AC_DEFINE(HAVE_LINUX,,[We are on a Linux system]) - AC_MSG_CHECKING(Linux kernel version) - AC_CACHE_VAL(ac_cv_linux_vers, - ac_cv_linux_vers=`uname -r 2>&1 | \ - sed -n -e '$s/.* //' -e '$s/\..*//p'`) - AC_MSG_RESULT($ac_cv_linux_vers) - if test $ac_cv_linux_vers -lt 2 ; then - AC_MSG_ERROR(version 2 or higher required; see the INSTALL doc for more info) - fi - if test "a$build_cpu" = "ax86_64"; then - bro_absolute_libresolv="/usr/lib64/libresolv.a" - fi - ;; - -solaris*) - LIBS="${LIBS} -lnsl -lsocket" - ;; - -osf*) - dnl Workaround around ip_hl vs. ip_vhl problem in netinet/ip.h - V_CCOPT="$V_CCOPT -D__STDC__=2" -esac - -dnl ################################################ -dnl # Enable large file support for all platforms. -dnl # Can be disabled with --disable-largefile -dnl ################################################ -AC_SYS_LARGEFILE - -dnl ################################################ -dnl # Checks for types and header files. -dnl ################################################ -AC_HEADER_STDC -AC_LBL_TYPE_SIGNAL -AC_LBL_CHECK_TYPE(int32_t, int) -AC_LBL_CHECK_TYPE(u_int32_t, u_int) -AC_LBL_CHECK_TYPE(u_int16_t, u_short) -AC_LBL_CHECK_TYPE(u_int8_t, u_char) -AC_HEADER_TIME - -AC_CHECK_HEADERS(memory.h netinet/in.h socket.h getopt.h) -AC_CHECK_HEADERS(net/ethernet.h netinet/ether.h netinet/if_ether.h sys/ethernet.h,,, - [#include - #include - #include - #include ]) - -AC_CHECK_HEADERS(netinet/ip6.h,,, - [#include - #include - #include - #include ]) - -AC_DEFUN([AC_C_SOCKLEN_T], -[AC_CACHE_CHECK(for socklen_t, ac_cv_c_socklen_t, -[ - AC_TRY_COMPILE([ - #include - #include - ],[ - socklen_t foo; - ],[ - ac_cv_c_socklen_t=yes - ],[ - ac_cv_c_socklen_t=no - ]) -]) -if test $ac_cv_c_socklen_t = no; then - AC_DEFINE(socklen_t, int, [define to int if socklen_t not available]) -fi -]) - -AC_C_SOCKLEN_T - -AC_BRO_SYSLOG_INT -AC_BRO_SOCK_DECL - -dnl ################################################ -dnl # PCAP stuff. -dnl ################################################ - -# ensure we are either YES or NO -if test "$use_shippedpcap" = "no" ; then - pcap_local="NO" - pcapmsg="system-provided" - AM_CONDITIONAL(USE_LOCALPCAP, false) -else - pcap_local="YES" - pcapmsg="shipped with Bro" - AM_CONDITIONAL(USE_LOCALPCAP, true) -fi - -# if not using local version, find one on the system -if test "$pcap_local" = "NO"; then - AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS) - CPPFLAGS="$CPPFLAGS $V_INCLS" - AC_CHECK_HEADERS(pcap-int.h) - AC_CHECK_FUNCS(bpf_set_bufsize) - dnl ################################################ - dnl # Check whether pcap provides pcap_version - dnl ################################################ - AC_MSG_CHECKING([for pcap_version in libpcap]) - AC_LINK_IFELSE( - AC_LANG_PROGRAM([extern char pcap_version[];], [puts(pcap_version);]), - AC_MSG_RESULT(yes) - AC_DEFINE(PCAP_VERSION_STRING,,[Have a version string in libpcap]), - AC_MSG_RESULT(no)) - dnl ################################################ - dnl # Check whether linking to pcap works - dnl ################################################ - AC_CHECK_LIB(pcap, main, , AC_MSG_ERROR([Bro requires pcap - install from aux/ if necessary.])) -else - # we have to define the abilites of the local pcap - # as it hasn't been unpacked/configured/installed - # yet and we can't query it. - AC_DEFINE(HAVE_PCAP_INT_H, 1, [Define to 1 if you have the header file.]) - AC_DEFINE(HAVE_BPF_SET_BUFSIZE, 0, [Define to 1 if you have the bpf_set_bufsize function.]) - AC_DEFINE(PCAP_VERSION_STRING, 1, [Have a version string in libpcap]) - AC_DEFINE(HAVE_LIBPCAP, 1, [Define to 1 if you have the pcap library (-lpcap).]) -fi - -dnl AC_CHECK_HEADERS(pcap-int.h) -dnl AC_CHECK_FUNCS(bpf_set_bufsize) - -dnl ################################################ -dnl # STL compatibility tests. -dnl ################################################ - -dnl # Whether basic_string<> requires additional -dnl # definitions for char_traits. In that case, we -dnl # fall back to vector. -dnl # -AC_MSG_CHECKING([if char_traits defines all methods]) -AC_LANG_PUSH([C++]) -AC_LINK_IFELSE( - AC_LANG_PROGRAM([[ -#include -using namespace std; -class Foo { }; -]], [[ -char_traits foo; -Foo f; -Foo *fp; -foo.assign(&fp, 10, &f);]]), - AC_MSG_RESULT([yes]) - basic_string_works=yes, - AC_MSG_RESULT([no]) - basic_string_works=no - AC_DEFINE(BASIC_STRING_BROKEN,,[basic_string not usable with non-char template arg])) -AC_LANG_POP([C++]) - -dnl ################################################ -dnl # Include the Broccoli tree in aux/broccoli in -dnl # the setup, unless specifically disabled. -dnl ################################################ -AC_ARG_ENABLE(broccoli, - AC_HELP_STRING([--disable-broccoli], [Do not build/package Broccoli]), - broccoli="no", broccoli="yes") - -AM_CONDITIONAL(USE_BROCCOLI, test "x$broccoli" = xyes) -if test "x$broccoli" = xyes; then - AC_CONFIG_SUBDIRS(aux/broccoli) -fi - -dnl ################################################ -dnl # Include the broctl tree in aux/broctl into -dnl # the setup, unless specifically disabled. -dnl # Per default, we configure it in standalone mode; -dnl # if --enable-cluster is given, we switch to -dnl # cluster mode. -dnl ################################################ -AC_ARG_ENABLE(broctl, - AC_HELP_STRING([--disable-broctl], [Do not build/package broctl framework]), - broctl=$enableval, broctl="yes") - -AC_ARG_ENABLE(cluster, - AC_HELP_STRING([--enable-cluster], [Configure broctl for cluster usage]), - cluster=$enableval, cluster="no") - -dnl ################################################ -dnl # Include the Binpac tree in aux/binpac in the -dnl # build, unless the user selected another binpac -dnl # via --with-binpac=. -dnl ################################################ -if test "$BINPAC" = ""; then - AC_CONFIG_SUBDIRS(aux/binpac) - BINPAC="\${top_builddir}/aux/binpac/src/binpac" - binpacmsg="shipped with Bro" -else # Check (somewhat) whether the binpac given is valid - AC_MSG_CHECKING([whether given binpac is executable]) - if test -x "$BINPAC"; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - echo "Please check whether $BINPAC is correct." - exit 1 - fi - binpacmsg="$BINPAC" -fi - -AC_SUBST(BINPAC) - -dnl ################################################ -dnl # DNS resolver checks. -dnl ################################################ -dnl -dnl Check whether our arpa/nameser.h provides type ns_msg. -dnl If not, we disable nonblocking DNS lookups. -dnl We assume worst case first and improve on it below. -AM_CONDITIONAL(USE_NBDNS, false) - -dnl Add potential header locations to path -if test -d /usr/local/include/bind; then - CFLAGS="$CFLAGS -I/usr/local/include/bind" -fi - -AC_CHECK_TYPE(ns_msg, bro_check_nb_dns=yes, bro_check_nb_dns=no, [#include ]) - -if test $bro_check_nb_dns = no; then - AC_MSG_NOTICE([Nonblocking DNS disabled.]) - use_nb_dns=no -else - dnl We will check for ns_initparse and res_mkquery using a number - dnl of resolver library variations, a list of which we build up now. - bro_resolver_options="none -lresolv ${bro_absolute_libresolv} -lbind" - - save_cflags="$CFLAGS" - save_ldflags="$LDFLAGS" - save_libs="$LIBS" - - dnl Okay now try to link both symbols with each of the resolver - dnl location variants. As soon as one works, we're happy. - for res in $bro_resolver_options; do - - AC_MSG_CHECKING([for ns_inittab/res_mkquery with resolver '$res']) - - dnl "none" just means "try without any additional flags". - if test "$res" = "none"; then - res="" - fi - - CFLAGS="${save_cflags}" - LDFLAGS="${save_ldflags}" - LIBS="${save_libs} $res" - - dnl In the generic -lbind case, we check for the existence - dnl of a number of directories and add them to the relevant - dnl paths. - dnl - if test "$res" = "-lbind"; then - if test -d /usr/local/bind/lib; then - LDFLAGS="$LDFLAGS -L/usr/local/bind/lib" - fi - - if test -d /usr/local/lib; then - LDFLAGS="$LDFLAGS -L/usr/local/lib" - fi - fi - - bro_ns_initparse_works=no - bro_res_mkquery_works=no - - AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include ]], - [[ns_initparse(0,0,0);]]), - bro_ns_initparse_works=yes) - - AC_LINK_IFELSE(AC_LANG_PROGRAM([[ -#include -#include -#include -#include -#include ]], -[[int (*p)() = res_mkquery]]), bro_res_mkquery_works=yes) - - if test $bro_ns_initparse_works = yes && test $bro_res_mkquery_works = yes && test $nbdns = yes; then - AC_MSG_RESULT(yes) - AC_MSG_NOTICE([Nonblocking DNS enabled.]) - - dnl Make sure that nb_dns.o is linked in. - NBDNS="nb_dns.o" - AC_SUBST(NBDNS) - - AM_CONDITIONAL(USE_NBDNS, true) - AC_DEFINE(HAVE_NB_DNS,,[async dns support]) - use_nb_dns=yes - break - else - AC_MSG_RESULT(no) - fi - done - - if test "x$NBDNS" != "xnb_dns.o"; then - AC_MSG_NOTICE([Nonblocking DNS disabled.]) - use_nb_dns=no - CFLAGS="${save_cflags}" - LDFLAGS="${save_ldflags}" - LIBS="${save_libs}" - fi -fi - -dnl ################################################ -dnl # Checks for library functions. -dnl ################################################ - -AC_FUNC_MEMCMP -AC_FUNC_STRFTIME -AC_CHECK_FUNCS(strerror strsep strcasestr mallinfo getopt_long) -AC_SEARCH_LIBS(inet_aton, resolv) - -# We use deflatePrime() to make sure that zlib is recent enough. -AC_CHECK_LIB(z, deflatePrime) - -# Libmagic -have_libmagic=yes -AC_CHECK_HEADERS([magic.h],,have_libmagic=no) -AC_CHECK_LIB(magic,magic_open,,have_libmagic=no) - -# Libclamav -# have_libclamav=yes -# AC_CHECK_HEADERS([clamav.h],,have_libclamav=no) -# AC_CHECK_LIB(clamav,cl_retdbdir,,have_libclamav=no) - -# Libclamav is broken because of changed API. -have_libclamav=no - -if test "$have_libclamav" = "yes"; then - AC_DEFINE(USE_LIBCLAMAV,,[Use libclamav]) -fi - -# LibGeoIP -have_libgeoip=yes -AC_CHECK_HEADERS([GeoIPCity.h],,have_libgeoip=no) -if test "$have_libgeoip" = "yes"; then - AC_CHECK_LIB(GeoIP,GeoIP_open_type,,have_libgeoip=no) -fi -if test "$have_libgeoip" = "yes"; then - AC_DEFINE(USE_GEOIP,,[GeoIP geographic lookup functionality]) -fi - -dnl ################################################ -dnl # Terminal library support -dnl ################################################ - -bro_have_termlibrary=no - -dnl 1) Check if termcap is available -AC_CHECK_LIB(termcap, tgetnum, - [AC_CHECK_HEADERS([termcap.h term.h], - LIBS="${LIBS} -ltermcap" - bro_have_termlibrary=yes)]) - -dnl 2) Check if curses is available instaed -if test "$bro_have_termlibrary" = no; then - AC_CHECK_LIB(curses, tgetnum, - [AC_CHECK_HEADERS([curses.h term.h], - LIBS="${LIBS} -lcurses" - bro_have_termlibrary=yes)]) -fi - -dnl 3) Check for ncurses as a final resort -if test "$bro_have_termlibrary" = no; then - AC_CHECK_LIB(ncurses, tgetnum, - [AC_CHECK_HEADERS([ncurses.h curses.h term.h], - LIBS="${LIBS} -lncurses" - bro_have_termlibrary=yes)]) -fi - -if test "$bro_have_termlibrary" != yes; then - AC_MSG_RESULT(no) - AC_MSG_ERROR([No terminal emulation library found! Consider installing termcap, curses, or ncurses.]) -else - AC_MSG_RESULT(yes) -fi - -dnl Check whether we have readline and history libraries -AC_CHECK_HEADER([readline/readline.h], bro_readline=yes) -AC_CHECK_HEADER([readline/history.h], bro_history=yes) -AC_CHECK_LIB(readline, using_history,, bro_libreadline=no) - -if test "$bro_history" = yes; then - AC_CHECK_MEMBER([HISTORY_STATE.entries], - [bro_history_entries=yes], [], - [#include - #include ]) -fi - -if test "$bro_readline" = yes -a \ - "$bro_history" = yes -a \ - "$bro_libreadline" != no -a \ - "$bro_history_entries" = yes; then - AC_DEFINE(HAVE_READLINE,1,[line editing & history powers]) -fi - -AC_C_BIGENDIAN( - AC_DEFINE(WORDS_BIGENDIAN,1,[whether words are stored with the most significant byte first]) - dnl This is intentionally named differently so as to not collide with WORDS_BIGENDIAN - HOST_BIGENDIAN="#define HOST_BIGENDIAN 1" - AC_SUBST(HOST_BIGENDIAN)) - -AC_CHECK_TYPES([union semun, struct sembuf],[],[], -[#include -#include -]) - -# see if we have sin_len -AC_CHECK_MEMBER(struct sockaddr_in.sin_len, - [AC_DEFINE(SIN_LEN,,[have sin_len field in sockaddr_in])],, - [ -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_SOCKET_H -# include -#endif -#if HAVE_NETINET_IN_H -# include -#endif -]) - -AC_CHECK_SIZEOF(long long) -AC_CHECK_SIZEOF(long int) -AC_CHECK_SIZEOF(void *) - -# Per default we do not use the select-based main loop. We activate it only if -# (i) the user requests it -# (ii) we know the OS to support selectable pcap fds -use_select_loop=no - -if test $check_select_loop = yes; then - case "$target_os" in - - linux*) - # Linux should support selectable at least since 2.2 (not sure - # about earlier versions) - AC_MSG_CHECKING(Linux kernel version support selectable fds) - AC_CACHE_VAL(ac_cv_linux_major_vers, - ac_cv_linux_major_vers=`uname -r 2>&1 | \ - sed 's/-.*$//g' | awk -v FS='.' '{print $1}'`) - AC_CACHE_VAL(ac_cv_linux_minor_vers, - ac_cv_linux_minor_vers=`uname -r 2>&1 | \ - sed 's/-.*$//g' | awk -v FS='.' '{print $2}'`) - - linux_version=`expr $ac_cv_linux_major_vers '*' 10 '+' $ac_cv_linux_minor_vers` - if test $linux_version -gt 21; then - use_select_loop=yes - AC_MSG_RESULT($ac_cv_linux_major_vers.$ac_cv_linux_minor_vers is ok) - else - AC_MSG_RESULT($ac_cv_linux_major_vers.$ac_cv_linux_minor_vers is too old) - fi - ;; - - freebsd*) - # FreeBSD supports selectable fds correctly since 4.6. - AC_MSG_CHECKING(FreeBSD kernel version support selectable fds) - AC_CACHE_VAL(ac_cv_freebsd_major_vers, - ac_cv_freebsd_major_vers=`uname -r 2>&1 | \ - sed 's/-.*$//g' | awk -v FS='.' '{print $1}'`) - AC_CACHE_VAL(ac_cv_freebsd_minor_vers, - ac_cv_freebsd_minor_vers=`uname -r 2>&1 | \ - sed 's/-.*$//g' | awk -v FS='.' '{print $2}'`) - - freebsd_version=`expr $ac_cv_freebsd_major_vers '*' 10 '+' $ac_cv_freebsd_minor_vers` - if test $freebsd_version -gt 45; then - use_select_loop=yes - AC_MSG_RESULT($ac_cv_freebsd_major_vers.$ac_cv_freebsd_minor_vers is ok) - else - AC_MSG_RESULT($ac_cv_freebsd_major_vers X $ac_cv_freebsd_minor_vers is too old) - fi - ;; - - esac -fi - -if test "$use_select_loop" = "yes"; then - AC_DEFINE(USE_SELECT_LOOP,,[Use select-based main loop]) -fi - -dnl ################################################ -dnl # Endace DAG support -dnl ################################################ - -if test "$use_dag" != "no" -a "$use_dag" != "NO"; then - AC_CHECK_LIB(dag, dag_open, use_dag=yes, use_dag=no) - AC_CHECK_HEADER(pcap.h,,use_dag=no) - - if test "$use_dag" = "yes"; then - AC_DEFINE(USE_DAG,,[Include Endace DAG support]) - LIBS="${LIBS} -ldag" - AC_SUBST(WANT_DAG_OBJ, "\$(DAG_OBJ)") - else - AC_SUBST(WANT_DAG_OBJ, "") - fi -else - use_dag=no -fi - -dnl ################################################ -dnl # If configured with --enable-perftools, look for -dnl # Google's perftools to do heap checking. -dnl ################################################ - -if test "$use_perftools" != "no" -a "$use_perftools" != "NO"; then - AC_LANG_PUSH(C++) - saved_libs="${LIBS}" - LIBS="${LIBS} -ltcmalloc -lpthread" - AC_TRY_LINK([#include ], - [HeapLeakChecker heap_checker("test");], - [use_perftools="yes"],[use_perftools="no"]) - LIBS="${saved_libs}" - AC_LANG_POP([C++]) - - if test "$use_perftools" = "yes"; then - AC_DEFINE(USE_PERFTOOLS,,[Use Google's perftools]) - LIBS="${LIBS} -ltcmalloc -lpthread" - fi -fi - -############################### -# Configure broctl. -############################### - -# Need Python >= 2.4. -have_python=no -AC_PATH_TOOL(pybin, python, "") -if test "x$pybin" != x -a "x$broctl" = xyes; then - AC_MSG_CHECKING([for Python >= 2.4]) - AC_CACHE_VAL(ac_cv_python_major_vers, - ac_cv_python_major_vers=`python -V 2>&1 | \ - sed 's/^Python //g' | awk -v FS='.' '{print $1}'`) - AC_CACHE_VAL(ac_cv_python_minor_vers, - ac_cv_python_minor_vers=`python -V 2>&1 | \ - sed 's/^Python //g' | awk -v FS='.' '{print $2}'`) - - pyversion=`expr $ac_cv_python_major_vers '*' 10 '+' $ac_cv_python_minor_vers` - if test $pyversion -ge 24; then - AC_MSG_RESULT([yes]) - have_python=yes - fi - - AC_CHECK_PROG(have_python, python-config, $have_python, no) - - if test "x$have_python" != xyes; then - AC_MSG_RESULT([no, disabling broctl]) - fi -fi - -if test "x$have_python" != xyes; then - broctl=no -fi - -AM_CONDITIONAL(USE_BROCTL, test "x$broctl" = xyes) - -if test "x$broctl" = xyes; then - if test "x$cluster" = xno; then - standalone="--standalone" - fi - echo "=== configuring in aux/broctl" - - test -d aux || mkdir aux - test -d aux/broctl || mkdir aux/broctl - - ${srcdir}/aux/broctl/configure --prefix=${prefix} --builddir=`pwd`/aux/broctl --brodist=${srcdir} ${standalone} - - AC_CONFIG_SUBDIRS([aux/broctl/aux/capstats]) -fi - -if test "$use_xqilla" = "yes"; then - LIBS="${LIBS} -lxqilla" -fi - -# grab the hostname -BROHOST=`hostname 2>/dev/null` || `uname -n 2>/dev/null` -AC_SUBST(BROHOST) - -dnl Setup pcap path just before creating files, this way tests won't fail -dnl with 'can't find libpcap' when we use the local pcap which hasn't -dnl been unpacked yet - -if test "$pcap_local" = "YES"; then - LIBS="-L\${top_srcdir}/aux/libpcap-0.9.8 -lpcap $LIBS" - V_INCLS="$V_INCLS -I\${top_builddir}/aux/libpcap-0.9.8" -fi - -AC_SUBST(V_CCOPT) -AC_SUBST(V_INCLS) -AC_SUBST(LDFLAGS) - - -dnl AC_SUBST(V_PCAPDEP) dnl (libpcap dependancies -- not used) -AC_OUTPUT([Makefile - src/Makefile - doc/Makefile - doc/ref-manual/Makefile - doc/quick-start/Makefile - doc/user-manual/Makefile - aux/adtrace/Makefile - aux/cf/Makefile - aux/hf/Makefile - aux/nftools/Makefile - aux/scripts/Makefile - aux/bdcat/Makefile - aux/rst/Makefile - aux/Makefile - policy/Makefile - policy/sigs/Makefile - policy/time-machine/Makefile - scripts/Makefile - scripts/bro_config - scripts/bro.rc - scripts/localnetMAC.pl - scripts/s2b/Makefile - scripts/s2b/bro-include/Makefile - scripts/s2b/example_bro_files/Makefile - scripts/s2b/etc/Makefile - scripts/s2b/bin/Makefile - scripts/s2b/pm/Makefile - scripts/s2b/snort_rules2.2/Makefile - ], - [chmod +x scripts/bro_config - chmod +x scripts/localnetMAC.pl] - ) - -if test "$use_openssl" != "yes"; then - OPENSSL="" -#else -# AC_OUTPUT(aux/bdcat/Makefile) -fi - -echo -echo " "${BLD_ON}"Bro Configuration Summary"${BLD_OFF} -echo "==========================================================" -echo -echo " - Debugging enabled: "${BLD_ON}$debug${BLD_OFF} -echo " - OpenSSL support: "${BLD_ON}$use_openssl $OPENSSL${BLD_OFF} -echo " - Non-blocking main loop: "${BLD_ON}$use_select_loop${BLD_OFF} -echo " - Non-blocking resolver: "${BLD_ON}$use_nb_dns${BLD_OFF} -echo " - Installation prefix: "${BLD_ON}$prefix${BLD_OFF} -echo " - Perl interpreter: "${BLD_ON}$PERL${BLD_OFF} -echo " - Using basic_string: "${BLD_ON}$basic_string_works${BLD_OFF} -echo " - Using libmagic: "${BLD_ON}$have_libmagic${BLD_OFF} -# echo " - Using libclamav: "${BLD_ON}$have_libclamav${BLD_OFF} -echo " - Using perftools: "${BLD_ON}$use_perftools${BLD_OFF} -echo " - Binpac used: "${BLD_ON}$binpacmsg${BLD_OFF} -echo " - Using libGeoIP: "${BLD_ON}$have_libgeoip${BLD_OFF} -echo " - Enabled broctl: "${BLD_ON}$broctl${BLD_OFF} -echo " - Enabled cluster: "${BLD_ON}$cluster${BLD_OFF} -echo " - Pcap used: "${BLD_ON}$pcapmsg${BLD_OFF} -echo -exit 0 diff --git a/depcomp b/depcomp deleted file mode 100755 index 25bdb18892..0000000000 --- a/depcomp +++ /dev/null @@ -1,526 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2004-04-25.13 - -# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit 0 - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit 0 - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi - -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # Dependencies are output in .lo.d with libtool 1.4. - # They are output in .o.d with libtool 1.5. - tmpdepfile1="$dir.libs/$base.lo.d" - tmpdepfile2="$dir.libs/$base.o.d" - tmpdepfile3="$dir.libs/$base.d" - "$@" -Wc,-MD - else - tmpdepfile1="$dir$base.o.d" - tmpdepfile2="$dir$base.d" - tmpdepfile3="$dir$base.d" - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - elif test -f "$tmpdepfile2"; then - tmpdepfile="$tmpdepfile2" - else - tmpdepfile="$tmpdepfile3" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index 2842129441..0000000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -EXTRA_DIST = README.txt -SUBDIRS = ref-manual quick-start user-manual - -doc: - @echo "Build Bro Documentation (html and pdf)" - for d in $(SUBDIRS); do \ - ( cd $$d && $(MAKE) $@ ); \ - done - diff --git a/doc/README b/doc/README new file mode 100644 index 0000000000..2a34ea6bdf --- /dev/null +++ b/doc/README @@ -0,0 +1 @@ +TODO. diff --git a/doc/README.txt b/doc/README.txt deleted file mode 100644 index 6b0a6b70c7..0000000000 --- a/doc/README.txt +++ /dev/null @@ -1,14 +0,0 @@ - -The current documentation is in the following directories: - -quick-start/ -user-manual/ -ref-manual/ - -To build html and pdf version of the documents, 'makeinfo' and 'texi2dvi', part -of the GNU texinfo package, version 4.7 or higher is required. - -Pre-built (and probably more current) versions of the documentation -are available at: - http://www.bro-ids.org/manuals.html - diff --git a/doc/misc/conn-logs b/doc/misc/conn-logs deleted file mode 100644 index 88c156e261..0000000000 --- a/doc/misc/conn-logs +++ /dev/null @@ -1,82 +0,0 @@ -TCP connection logs are generated by tcp.bro. The summaries are written -to stdout, one line per connection: - - start-time duration protocol orig-bytes resp-bytes \ - local-addr remote-addr state flags additional - - start-time: timestamp of when the connection's first packet was - observed - - duration: time until connection finished, in seconds, or '?' if - not determined - - protocol: TCP protocol, if well-known port; or portmapper request - - orig-bytes: total bytes sent by originator. Computed from difference - between starting and ending sequence numbers, so sometimes - wrong (if wrong, the values tend to be erroneously large) - - resp-bytes: same for bytes sent by connection responder - - local-addr: IP address of local end of connection - remote-addr: IP address of remote end of connection - Note that these would make more sense as originator/responder, - but for historical reasons they're defined in terms of - "local" and "remote", where "local" is specified by the - "local_nets" set in hot.bro. To pull out the originator - and responder addresses requires looking at the "flags" - field to see whether the connection originated locally. - - state: final connection state (see below) - - flags: some characteristics of the connection. The most important is - the 'L' flag, which if present indicates that the connection - was initiated by the local address (see above); otherwise - it was initiated by the remote address. - - additional: protocol-specific additional information, such as the FTP - session identifier, telnet user name, finger request, or - portmapper results. - -The scripts "hot-report" and "mon-report" (in the aux/scripts/ directory) -generate readable versions of these connection summaries. They include -a mnemonic indicating the connection's state. Here is the list of -abbreviations used: - - Symbol Name Meaning - ------ ------- ------------------- - } S0 Initial SYN seen, no reply seen ("unanswered") - > S1 Initial SYN handshake seen ("established") - - > SF Established and normal FIN handshake seen - for termination. Note that this is the same - symbol as for state S1. You can tell the two - apart because for S1 there will not be any - byte counts, while for SF there will be. - - [ REJ Initial SYN elicited RST in reply ("rejected") - - }2 S2 Established and FIN from originator only seen - }3 S3 Established and FIN from responder only seen - - >] RSTO Established, originator sent a RST to terminate - >[ RSTR Established, responder sent a RST to terminate - - }] RSTOS0 Originator sent a SYN followed by a RST, - we never saw a SYN ack from the responder - <[ RSTRH Responder sent a SYN ack followed by a RST, - we never saw a SYN from the originator - - >h SH Originator sent a SYN followed by a FIN, - we never saw a SYN ack from the responder - (so "half" open) - ? OTH No SYN seen, just midstream traffic - -The sundry weird states can arise from broken TCPs, but also from split -routing in which Bro just sees one side of a connection. - -For UDP, if we see a request but no reply, that's state S0 ("}"); a request -followed by a reply is SF (">"); and a reply but no request is SHR (" - cd - mkdir private newcerts cert crl - chmod 700 private - touch index.txt - echo 01 >serial - cp bro/openssl.conf . - - * Create a private CA key: - openssl genrsa -des3 -out private/ca_key.pem - - * Self-sign it: - openssl req -new -x509 -key private/ca_key.pem -out ca_cert.pem -days 1095 - -- For each Bro: - - * Create a private key (w/o password): - openssl genrsa -out bro_key.pem - - * Create a certification request: - openssl req -new -key bro_key.pem -out bro.csr - - * Create a certificate using the CA key: - openssl ca -config openssl.cnf -in bro.csr -out bro_cert.pem - - * Verify that the certicate is ok: - openssl verify -CAfile ca_cert.pem bro_cert.pem - - * Concat Bro key and certificate: - cat bro_key.pem bro_cert.pem >bro.pem - - * Copy this and the CA certificate to the IDS machine: - scp bro.pem ca_cert.pem ids:... - - * Redef Bro's variables to point to the files: - redef ssl_ca_certificate = "...../ca_cert.pem"; - redef ssl_private_key = "...../bro.pem"; - - * Remove the unnecessary stuff: - rm bro_key.pem bro.csr bro_cert.pem bro.pem diff --git a/doc/old/manual-src.tar.gz b/doc/old/manual-src.tar.gz deleted file mode 100644 index 0e959c40a9db15e25bbec7b0112266bc173fe91f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202714 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

TvvAy4LgopB}8k8`eb39eumo+s{U3c&h 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%0DD0~N3^9YfbkPtPxb?O2*s_QKY7Xi-Ntzi(ViHl@ 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⋘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

ym`AcGOP`MN>A@`d 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­V$f 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ô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

    {e9(PYV*(^fN*|4DTw37=uZ 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

    1s8y-P6Ow!h|MY6P!&my%9Js{X+lYm&LF^M$* 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�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⁣1Tf!&^Qsaogii}ISq-KcfZRzZ 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 fCN}V3Pe(Rn1+7set_contents_file" - -No number for "print-filterprintsoutthetcpdumpfilteryourBroscriptwoulduseandthenexits." - -No number for "Definitionofthenet_statsrecord." - -No number for "Definitionofconn_idandconnectionrecords." - -No number for "TCPandUDPconnectionstates,asstoredinanendpointrecord." - -No number for "Summariesofconnectionstates,asreportedinredfiles." - -No number for "Differentconnectionstatestousewhencallingcheck_hot." - -No number for "Sampledefinitionoflog_hook" - -No number for "Definitionofthedns_mappingrecord." - -No number for "Definitionoftheftp_session_inforecord" - -No number for "ExampleofFTPlogfileentriesforasingleFTPsession." - -No number for "ExampleofHTTPlogfileentriesforasingleHTTPsession." - -No number for "Differenttypesofconfusionthatloginanalyzercanreport." - -No number for "TypesofcallstotheRPCportmapperservice." - -No number for "TypesofRPCstatuscodes." - -No number for "endpoint_statsfieldsforsummarizingconnectionendpointstatistics,alloftypecount." - -No number for "Possibleactionstotakeforsignaturesmatches.signatures-logdefaultstoopen_log_file(;SPMquot;signatures;SPMquot;)." - -No number for "Definitionofthex509record" - -No number for "Definitionofthessl_connection_inforecord" - -No number for "ExampleofSSLlogfilewithasingleSSLsession." - -No number for "Differenttypesofpossibleactionstotakefor``weird''events." - -No number for "Definitionofthesignature_staterecord." - -Failed to convert image /tmp/l2h6233/image052.ps diff --git a/doc/old/manual/images.aux b/doc/old/manual/images.aux deleted file mode 100644 index f23e54680b..0000000000 --- a/doc/old/manual/images.aux +++ /dev/null @@ -1 +0,0 @@ -\relax diff --git a/doc/old/manual/images.idx b/doc/old/manual/images.idx deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/doc/old/manual/images.log b/doc/old/manual/images.log deleted file mode 100644 index b1ffb1e95c..0000000000 --- a/doc/old/manual/images.log +++ /dev/null @@ -1,607 +0,0 @@ -This is TeX, Version 3.14159 (Web2C 7.3.1) (format=latex 2001.8.15) 21 MAR 2004 07:20 -**./images.tex -(./images.tex -LaTeX2e <1999/12/01> patch level 1 -Babel and hyphenation patterns for american, french, german, ngerman, n -ohyphenation, loaded. - -(/usr/local/share/texmf/tex/latex/base/report.cls -Document Class: report 1999/09/10 v1.4a Standard LaTeX document class -(/usr/local/share/texmf/tex/latex/base/size10.clo -File: size10.clo 1999/09/10 v1.4a Standard LaTeX file (size option) -) -\c@part=\count79 -\c@chapter=\count80 -\c@section=\count81 -\c@subsection=\count82 -\c@subsubsection=\count83 -\c@paragraph=\count84 -\c@subparagraph=\count85 -\c@figure=\count86 -\c@table=\count87 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -) (/usr/local/share/texmf/tex/latex/base/ifthen.sty -Package: ifthen 1999/09/10 v1.1b Standard LaTeX ifthen package (DPC) -) (/usr/local/share/texmf/tex/latex/base/makeidx.sty -Package: makeidx 1999/09/17 v1.0l Standard LaTeX package -) (/usr/local/share/texmf/tex/latex/psnfss/times.sty -Package: times 1999/03/29 PSNFSS v.7.2 Times font as default roman : S Rahtz -) (/usr/local/share/texmf/tex/generic/misc/psfig.sty -\@unused=\write3 -\ps@stream=\read1 -\p@intvaluex=\dimen103 -\p@intvaluey=\dimen104 -psfig/tex 1.10-dvips -) (/home/jaguar/u0/vern/latex2html/texinputs/html.sty -Package: html 1999/07/19 v1.38 hypertext commands for latex2html (nd, hws, rrm) - -\c@lpart=\count88 -\c@lchapter=\count89 -\c@lsection=\count90 -\c@lsubsection=\count91 -\c@lsubsubsection=\count92 -\c@lparagraph=\count93 -\c@lsubparagraph=\count94 -\c@lsubsubparagraph=\count95 -\ptrfile=\write4 -) -\@indexfile=\write5 -\openout5 = `images.idx'. - -Writing index file images.idx -(/usr/local/share/texmf/tex/latex/graphics/color.sty -Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC) -(/usr/local/share/texmf/tex/latex/config/color.cfg) -Package color Info: Driver file: dvips.def on input line 125. -(/usr/local/share/texmf/tex/latex/graphics/dvips.def -File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) -) (/usr/local/share/texmf/tex/latex/graphics/dvipsnam.def -File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) -)) (/usr/local/share/texmf/tex/latex/base/inputenc.sty -Package: inputenc 1999/09/17 v0.992 Input encoding file -(/usr/local/share/texmf/tex/latex/base/latin1.def -File: latin1.def 1999/09/17 v0.992 Input encoding file -)) -\sizebox=\box26 -\lthtmlwrite=\write6 -No file images.aux. -\openout1 = `images.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 334. -LaTeX Font Info: ... okay on input line 334. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 334. -LaTeX Font Info: ... okay on input line 334. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 334. -LaTeX Font Info: ... okay on input line 334. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 334. -LaTeX Font Info: ... okay on input line 334. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 334. -LaTeX Font Info: ... okay on input line 334. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 334. -LaTeX Font Info: ... okay on input line 334. -LaTeX Font Info: Try loading font information for OT1+ptm on input line 334. - -(/usr/local/share/texmf/tex/latex/psnfss/ot1ptm.fd -File: ot1ptm.fd 1998/07/06 Fontinst v1.800 font definitions for OT1/ptm. -) - -latex2htmlLength hsize=349.0pt - -latex2htmlLength vsize=633.0pt - -latex2htmlLength hoffset=0.0pt - -latex2htmlLength voffset=0.0pt - -latex2htmlLength topmargin=0.0pt - -latex2htmlLength topskip=0.00003pt - -latex2htmlLength headheight=0.0pt - -latex2htmlLength headsep=0.0pt - -latex2htmlLength parskip=0.0pt plus 1.0pt - -latex2htmlLength oddsidemargin=-10.84006pt - -latex2htmlLength evensidemargin=-10.84006pt - -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <7> on input line 399. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <5> on input line 399. -l2hSize :tex2html_wrap_inline5436:6.74997pt::0.0pt::13.00003pt. -[1 - - - -] -l2hSize :tex2html_wrap_inline5438:6.74997pt::0.0pt::8.00003pt. -[2 - - -] -l2hSize :tex2html_wrap_inline5440:6.83331pt::0.0pt::73.23354pt. -[3 - - -] -l2hSize :tex2html_wrap_inline5442:6.83331pt::0.0pt::15.04518pt. -[4 - - -] -l2hSize :tex2html_wrap_inline5444:8.14003pt::0.0pt::13.9723pt. -[5 - - -] -l2hSize :tex2html_wrap_inline5446:8.14003pt::0.0pt::13.9723pt. -[6 - - -] -l2hSize :tex2html_wrap_inline5448:8.14003pt::0.0pt::9.98618pt. -[7 - - -] -l2hSize :tex2html_wrap_inline5450:6.83331pt::0.0pt::41.50558pt. -[8 - - -] -l2hSize :tex2html_wrap_inline5452:6.83331pt::0.0pt::59.23058pt. -[9 - - -] -l2hSize :tex2html_wrap_inline5454:6.83331pt::0.0pt::16.67014pt. -[10 - - -] -l2hSize :tex2html_wrap_inline5456:7.96227pt::0.0pt::7.13895pt. -[11 - - -] -l2hSize :tex2html_wrap_inline5458:6.88586pt::0.0pt::5.09726pt. -[12 - - -] -l2hSize :tex2html_wrap_inline8536:7.24997pt::7.24997pt::4.98616pt. -[13 - - -] -l2hSize :tex2html_wrap_inline8540:7.24997pt::7.24997pt::4.98616pt. -[14 - - -] -l2hSize :tex2html_wrap_inline8614:7.24997pt::7.24997pt::4.98616pt. -[15 - - -] -l2hSize :tex2html_wrap_inline16373:7.24997pt::7.24997pt::21.05557pt. -[16 - - -] -l2hSize :tex2html_wrap_inline16375:6.74997pt::0.0pt::9.28017pt. -[17 - - -] -l2hSize :tex2html_wrap_inline16379:6.74997pt::0.0pt::6.50238pt. -[18 - - -] -l2hSize :tex2html_wrap_inline16393:6.94444pt::0.0pt::6.26161pt. -[19 - - -] -LaTeX Font Info: Try loading font information for OT1+pcr on input line 614. - -(/usr/local/share/texmf/tex/latex/psnfss/ot1pcr.fd -File: ot1pcr.fd 1998/07/06 Fontinst v1.800 font definitions for OT1/pcr. -) -Overfull \hbox (59.0pt too wide) in paragraph at lines 631--631 -[] \OT1/pcr/m/n/10 print fmt("(%s) and (%s)", capture_filter, restrict_f -ilter);[] - [] - -l2hSize :figure22361:203.09998pt::0.0pt::349.0pt. -[20 - - -] -Overfull \hbox (41.0pt too wide) in paragraph at lines 647--647 -[] \OT1/pcr/m/n/10 pkts_recvd: count; # Number of packets received so -far.[] - [] - - -Overfull \hbox (59.0pt too wide) in paragraph at lines 647--647 -[] \OT1/pcr/m/n/10 pkts_dropped: count; # Number of packets *reported* d -ropped.[] - [] - - -Overfull \hbox (83.0pt too wide) in paragraph at lines 647--647 -[] \OT1/pcr/m/n/10 interface_drops: count; # Number of drops reported by in -terface(s).[] - [] - -l2hSize :figure22485:83.09998pt::0.0pt::349.0pt. -[21 - - -] -Overfull \hbox (29.0pt too wide) in paragraph at lines 680--680 -[] \OT1/pcr/m/n/10 id: conn_id; # Originator/responder addresses/port -s.[] - [] - - -Overfull \hbox (71.0pt too wide) in paragraph at lines 680--680 -[] \OT1/pcr/m/n/10 duration: interval; # How long it was active (or has been - so far).[] - [] - - -Overfull \hbox (95.0pt too wide) in paragraph at lines 680--680 -[] \OT1/pcr/m/n/10 service: string; # The service we associate with it (e -.g., "http").[] - [] - - -Overfull \hbox (59.0pt too wide) in paragraph at lines 680--680 -[] \OT1/pcr/m/n/10 addl: string; # Additional information associated w -ith it.[] - [] - - -Overfull \hbox (71.0pt too wide) in paragraph at lines 680--680 -[] \OT1/pcr/m/n/10 hot: count; # How many times we've marked it as s -ensitive.[] - [] - -l2hSize :figure22528:275.09998pt::0.0pt::349.0pt. -[22 - - -] -l2hSize :tex2html_wrap_inline31877:6.83331pt::0.0pt::8.00005pt. -[23 - - -] -l2hSize :tex2html_wrap_inline31879:6.83331pt::0.0pt::8.58684pt. -[24 - - -] -l2hSize :tex2html_wrap_inline31899:7.33331pt::7.33331pt::12.53233pt. -[25 - - -] -l2hSize :tex2html_wrap_inline31901:7.33331pt::7.33331pt::12.51337pt. -[26 - - -] -l2hSize :tex2html_wrap_inline31903:7.33331pt::7.33331pt::11.0695pt. -[27 - - -] -l2hSize :tex2html_wrap_inline31905:7.33331pt::7.33331pt::12.4283pt. -[28 - - -] -l2hSize :tex2html_wrap_inline31927:7.33331pt::7.33331pt::12.44727pt. -[29 - - -] -l2hSize :tex2html_wrap_inline31937:7.33331pt::7.33331pt::11.0792pt. -[30 - - -] -l2hSize :tex2html_wrap_inline31941:7.33331pt::7.33331pt::11.06023pt. -[31 - - -] -l2hSize :tex2html_wrap_inline31943:6.83331pt::0.0pt::9.05698pt. -[32 - - -] -l2hSize :tex2html_wrap_inline31957:7.33331pt::7.33331pt::11.36739pt. -[33 - - -] -l2hSize :tex2html_wrap_inline31961:7.33331pt::7.33331pt::11.34842pt. -[34 - - -] -l2hSize :tex2html_wrap_inline31971:7.24997pt::7.24997pt::5.53128pt. -[35 - - -] -l2hSize :figure23775:263.09998pt::0.0pt::349.0pt. -[36 - - -] -Overfull \hbox (35.0pt too wide) in paragraph at lines 830--830 -[] \OT1/pcr/m/n/10 req_host: string; # The hostname in the request, if a -ny.[] - [] - - -Overfull \hbox (29.0pt too wide) in paragraph at lines 830--830 -[] \OT1/pcr/m/n/10 req_addr: addr; # The address in the request, if an -y.[] - [] - - -Overfull \hbox (59.0pt too wide) in paragraph at lines 830--830 -[] \OT1/pcr/m/n/10 hostname: string; # The hostname in the answer, or "< -none>".[] - [] - - -Overfull \hbox (35.0pt too wide) in paragraph at lines 830--830 -[] \OT1/pcr/m/n/10 addrs: set[addr]; # The addresses in the answer, if a -ny.[] - [] - -l2hSize :figure23860:131.09998pt::0.0pt::349.0pt. -[37 - - -] -Overfull \hbox (41.0pt too wide) in paragraph at lines 858--858 -[] \OT1/pcr/m/n/10 id: count; # unique number associated w/ ses -sion[] - [] - - -Overfull \hbox (71.0pt too wide) in paragraph at lines 858--858 -[] \OT1/pcr/m/n/10 log_if_not_denied: bool; # unless code 530 on repl -y, log it[] - [] - - -Overfull \hbox (71.0pt too wide) in paragraph at lines 858--858 -[] \OT1/pcr/m/n/10 log_if_not_unavail: bool; # unless code 550 on repl -y, log it[] - [] - -l2hSize :figure24088:131.09998pt::0.0pt::349.0pt. -[38 - - -] -Overfull \hbox (35.0pt too wide) in paragraph at lines 877--877 -[]\OT1/pcr/m/n/10 972499885.784104 #26 131.243.70.68/1899 > 64.55.26.206/ftp st -art[] - [] - - -Overfull \hbox (5.0pt too wide) in paragraph at lines 877--877 -[]\OT1/pcr/m/n/10 972499886.685046 #26 response (220 tuvok.ooc.com FTP server[] - - [] - - -Overfull \hbox (23.0pt too wide) in paragraph at lines 877--877 -[] \OT1/pcr/m/n/10 (Version wu-2.6.0(1) Fri Jun 23 09:17:44 EDT 2000) ready. -)[] - [] - - -Overfull \hbox (41.0pt too wide) in paragraph at lines 877--877 -[]\OT1/pcr/m/n/10 972499889.493020 #26 SIZE /pub/OB/4.0/JOB-4.0.3.zip (213 1675 -597)[] - [] - - -Overfull \hbox (65.0pt too wide) in paragraph at lines 877--877 -[]\OT1/pcr/m/n/10 972499890.135706 #26 *RETR /pub/OB/4.0/JOB-4.0.3.zip, ABOR (c -omplete)[] - [] - - -Overfull \hbox (11.0pt too wide) in paragraph at lines 877--877 -[]\OT1/pcr/m/n/10 972500055.491045 #26 response (225 ABOR command successful.)[ -] - [] - -l2hSize :figure24192:119.53992pt::0.0pt::349.0pt. -[39 - - -] -l2hSize :figure24357:83.53992pt::0.0pt::349.0pt. -[40 - - -] -l2hSize :tex2html_wrap_inline31983:7.24997pt::7.24997pt::16.05556pt. -[41 - - -] -l2hSize :tex2html_wrap_inline31987:7.24997pt::7.24997pt::26.05559pt. -[42 - - -] -l2hSize :tex2html_wrap_inline31989:7.24997pt::7.24997pt::31.0556pt. -[43 - - -] -l2hSize :tex2html_wrap_inline31991:7.24997pt::7.24997pt::8.27783pt. -[44 - - -] -l2hSize :figure25695:59.09998pt::0.0pt::349.0pt. -[45 - - -] -Overfull \hbox (29.0pt too wide) in paragraph at lines 970--970 -[] \OT1/pcr/m/n/10 id: count; # the log identifier numb -er[] - [] - - -Overfull \hbox (29.0pt too wide) in paragraph at lines 970--970 -[] \OT1/pcr/m/n/10 connection_id: conn_id; # IP connection informati -on[] - [] - - -Overfull \hbox (83.0pt too wide) in paragraph at lines 970--970 -[] \OT1/pcr/m/n/10 version: count; # version associated with - connection[] - [] - - -Overfull \hbox (59.0pt too wide) in paragraph at lines 970--970 -[] \OT1/pcr/m/n/10 id_index: string; # index for associated se -ssionID[] - [] - - -Overfull \hbox (131.0pt too wide) in paragraph at lines 970--970 -[] \OT1/pcr/m/n/10 handshake_cipher: count; # cipher suite client and - server agreed upon[] - [] - -l2hSize :figure25707:119.09998pt::0.0pt::349.0pt. -[46 - - -] -Overfull \hbox (59.0pt too wide) in paragraph at lines 992--992 -[]\OT1/pcr/m/n/10 1046778101.534846 #1 192.168.0.98/32988 > 213.61.126.124/http -s start[] - [] - - -Overfull \hbox (2135.0pt too wide) in paragraph at lines 992--992 -[]\OT1/pcr/m/n/10 1046778101.534846 #1 cipher suites: SSLv3x_RSA_WITH_RC4_128_M -D5 (0x4), SSLv3x_RSA_FIPS_WITH_3DES_EDE_CBC_SHA (0xFEFF), SSLv3x_RSA_WITH_3DES_ -EDE_CBC_SHA (0xA), SSLv3x_RSA_FIPS_WITH_DES_CBC_SHA (0xFEFE), SSLv3x_RSA_WITH_D -ES_CBC_SHA(0x9), SSLv3x_RSA_EXPORT1024_WITH_RC4_56_SHA (0x64), SSLv3x_RSA_EXPOR -T1024_WITH_DES_CBC_SHA (0x62), SSLv3x_RSA_EXPORT_WITH_RC4_40_MD5 (0x3), SSLv3x_ -RSA_EXPORT_WITH_RC2_CBC_40_MD5 (0x6),[] - [] - - -Overfull \hbox (65.0pt too wide) in paragraph at lines 992--992 -[]\OT1/pcr/m/n/10 1046778101.753356 #1 cipher suite: SSLv3x_RSA_WITH_RC4_128_MD -5 (0x4),[] - [] - - -Overfull \hbox (749.0pt too wide) in paragraph at lines 992--992 -[]\OT1/pcr/m/n/10 1046778101.762601 #1 X.509 server issuer: /C=DE/ST=Hamburg/L= -Hamburg/O=TC TrustCenter for Security in Data Networks GmbH/OU=TC TrustCenter C -lass 3 CA/Email=certificate@trustcenter.de,[] - [] - - -Overfull \hbox (521.0pt too wide) in paragraph at lines 992--992 -[]\OT1/pcr/m/n/10 1046778101.762601 #1 X.509 server subject: /C=DE/ST=Berlin/O= -Lehmanns Fachbuchhandlung GmbH/OU=Zentrale EDV/CN=www.jfl.de/Email=admin@lehman -ns.de[] - [] - - -Overfull \hbox (257.0pt too wide) in paragraph at lines 992--992 -[]\OT1/pcr/m/n/10 1046778101.894567 #1 handshake finished, version 3.1, cipher -suite: SSLv3x_RSA_WITH_RC4_128_MD5 (0x4)[] - [] - -l2hSize :figure25794:155.25494pt::0.0pt::349.0pt. -[47 - - -] -l2hSize :tex2html_wrap_inline31993:7.31989pt::7.31989pt::51.61522pt. -[48 - - -] -Overfull \hbox (41.0pt too wide) in paragraph at lines 1037--1037 -[] \OT1/pcr/m/n/10 is_orig: bool; # True if current endpoint is origin -ator[] - [] - - -Overfull \hbox (95.0pt too wide) in paragraph at lines 1037--1037 -[] \OT1/pcr/m/n/10 payload_size: count; # Payload size of the first pkt of c -urr. endpoint[] - [] - -l2hSize :figure39539:83.09998pt::0.0pt::349.0pt. -[49 - - -] -l2hSize :tex2html_wrap_inline39988:6.83331pt::0.0pt::9.625pt. -[50 - - -] -l2hSize :tex2html_wrap_inline39992:7.33331pt::7.33331pt::17.4028pt. -[51 - - -] (/home/jaguar/u0/vern/bro/bro-doc/index.tex (/home/jaguar/u0/vern/bro/bro-doc -/doc.ind -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24.88> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1. -LaTeX Font Info: Font shape `OT1/pcr/m/it' in size <10> not available -(Font) Font shape `OT1/pcr/m/sl' tried instead on input line 1539. - -! TeX capacity exceeded, sorry [main memory size=263001]. -\par ...@m \@noitemerr {\@@par }\fi \else {\@@par - }\fi -l.2843 \subitem - reading, 17 -If you really absolutely need more capacity, -you can ask a wizard to enlarge me. - - -Here is how much of TeX's memory you used: - 1313 strings out of 10901 - 15527 string characters out of 72380 - 263001 words of memory out of 263001 - 4278 multiletter control sequences out of 10000+0 - 6696 words of font info for 23 fonts, out of 400000 for 1000 - 14 hyphenation exceptions out of 1000 - 23i,5n,19p,429b,425s stack positions out of 300i,100n,500p,50000b,4000s -Output written on images.dvi (51 pages, 17976 bytes). diff --git a/doc/old/manual/images.pl b/doc/old/manual/images.pl deleted file mode 100644 index d419b8ea7a..0000000000 --- a/doc/old/manual/images.pl +++ /dev/null @@ -1,332 +0,0 @@ -# LaTeX2HTML 2002-2 (1.70) -# Associate images original text with physical files. - - -$key = q/B;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$B$|; - -$key = q/A_i;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$A\_i$|; - -$key = q/ge1024;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\ge 1024$|; - -$key = q/2^{24};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$2^{24}$|; - -$key = q/S_{o};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$S_{o}$|; - -$key = q/ge256;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\ge 256$|; - -$key = q/pmN;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\pm N$|; - -$key = q/{figure}preform{verbatim312#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type dns_mapping: record {
-creation_time: time;...
-... set[addr];  ...|; - -$key = q/_{2};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$_{2}$|; - -$key = q/N_1{{tt{.}N_2{{tt{.};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$N\_1 {\tt .} N\_2 {\tt .}$|; - -$key = q/{figure}preform{verbatim338#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type ssl_connection_info: record {
-id: count;  ...|; - -$key = q/A_{l};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$A_{l}$|; - -$key = q/{figure}preform{verbatim345#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type signature_state: record {
-id: string;  ...|; - -$key = q/ge;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\ge$|; - -$key = q/{figure}preform{verbatim298#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}event bro_init()
-{
-if ( restrict_filter == '''...
-...%s)'', capture_filter, restrict_filter);exit();
-}\end{verbatim}
-\end{figure}|; - -$key = q/S_{r};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$S_{r}$|; - -$key = q/P_{o};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$P_{o}$|; - -$key = q/2^8;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$2^8$|; - -$key = q/A_{o};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$A_{o}$|; - -$key = q/p;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$p$|; - -$key = q/D;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$D$|; - -$key = q/_{1};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$_{1}$|; - -$key = q/N;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$N$|; - -$key = q/~tilde{~}~~~;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$ \tilde{ }   $|; - -$key = q/P_{r};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$P_{r}$|; - -$key = q/A_{r};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$A_{r}$|; - -$key = q/N_i;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$N\_i$|; - -$key = q/B_{o};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$B_{o}$|; - -$key = q/2cdotmbox{MSL}=4;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$2 \cdot \mbox{MSL} = 4$|; - -$key = q/{figure}preform{verbatim300#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type conn_id: record {
-orig_h: addr;  ...|; - -$key = q/{figure}preform{verbatim319#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}972482763.371224 %1596 start 200.241.229.80 > 13...
-...g/movies/off.gif
-%1596 GET /vfrog/new.frog.small.gif
-\end{verbatim}
-\end{figure}|; - -$key = q/{figure}preform{verbatim317#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}972499885.784104  ...|; - -$key = q/{figure}preform{verbatim315#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type ftp_session_info: record {
-id: count;  ...|; - -$key = q/{figure}preform{verbatim311#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}global msg_count: table[string] of count &defaul...
-... schedule +5 min { log_summary(msg) };return F;
-}\end{verbatim}
-\end{figure}|; - -$key = q/{figure}preform{verbatim339#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}1046778101.534846  ...|; - -$key = q/{figure}preform{verbatim337#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type x509: record {
-issuer: string;  ...|; - -$key = q/^*;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$^*$|; - -$key = q/{figure}preform{verbatim299#preform{{{{figure};FSF=1.6;AAT/; -$cached_env_img{$key} = q|\begin{figure}\begin{verbatim}type net_stats: record {
-...|; - -$key = q/h;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$h$|; - -$key = q/B_{r};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$B_{r}$|; - -$key = q/m;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$m$|; - -$key = q/le2;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\le 2$|; - -$key = q/2^{16};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$2^{16}$|; - -$key = q/le26;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\le 26$|; - -$key = q/A;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$A$|; - -$key = q/A_1{{tt{.}A_2{{tt{.}A_3{{tt{.}A_4;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$A\_1 {\tt .} A\_2 {\tt .} A\_3 {\tt .} A\_4$|; - -$key = q/_{3};MSF=1.6;AAT/; -$cached_env_img{$key} = q|$_{3}$|; - -$key = q/^+;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$^+$|; - -$key = q/N_1{{tt{.}N_2{{tt{.}N_3;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$N\_1 {\tt .} N\_2 {\tt .} N\_3 $|; - -$key = q/tilde{~}~~;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$\tilde{ }  $|; - -$key = q/n;MSF=1.6;AAT/; -$cached_env_img{$key} = q|$n$|; - -1; - diff --git a/doc/old/manual/images.tex b/doc/old/manual/images.tex deleted file mode 100644 index ea01ededfa..0000000000 --- a/doc/old/manual/images.tex +++ /dev/null @@ -1,1104 +0,0 @@ -\batchmode - - -\documentclass[twoside]{report} -\RequirePackage{ifthen} - - - - -\frenchspacing - - -\sloppy - - -\usepackage{makeidx} -\usepackage{times} -\usepackage{psfig} -\usepackage{html} - - -\textwidth=6.5in -\oddsidemargin=-0.15in -\evensidemargin=-0.15in - - -\title{ - The {\em Bro} 0.8 User Manual -} - -% -\providecommand{\note}[1]{\emph{Note: #1}}% -\providecommand{\privatenote}[1]{}% -\providecommand{\updateme}[1]{#1}% -\providecommand{\unlikeC}[1]{\emph{Unlike with C,} #1}% -\providecommand{\deficiency}[1]{\emph{Deficiency: #1}}% -\providecommand{\fixme}[1]{\emph{Fix me: #1}} - -% -\providecommand{\xref}[1]{\hyperref{\S~\ref{#1}}{}{}{#1}}% -\providecommand{\pxref}[1]{(\hyperref{\S~\ref{#1}}{}{}{#1})}% -\providecommand{\cxref}[1]{\hyperref{Chapter~\ref{#1}}{}{}{#1}}% -\providecommand{\link}[2]{\hyperref{#1}{}{}{#2}}% -\providecommand{\lab}[2]{\label{#1}{#2}}% -\providecommand{\labsectchapter}[2]{\chapter{#2 #1}}% -\providecommand{\labsectsection}[2]{\section{#2 #1}}% -\providecommand{\labsectsubsection}[2]{\subsection{#2 #1}}% -\providecommand{\labsectsubsubsection}[2]{\subsubsection{#2 #1}}% -\providecommand{\itemwithextra}[3]{\item[{\tt #1#3}]}% -\providecommand{\optsyntax}[1]{{\emph{[} \texttt{#1} \emph{]}}}% -\providecommand{\nl}{} - -% -\providecommand{\itemwithtype}[2]{\item[{\tt #1 : #2}]} - -% -\providecommand{\f}[1]{Figure~\ref{#1}}% -\providecommand{\tbl}[1]{Table~\ref{#1}}% -\providecommand{\percent}{{{\tt \%}}}% -\providecommand{\hash}{{{\tt \#}}}% -\providecommand{\caret}{{{\tt \^}}}% -\providecommand{\load}{{{\tt @load}{ }}}% -\providecommand{\loadx}{{{\tt @load}}}% -\providecommand{\prefix}{{{\tt @prefix}{ }}}% -\providecommand{\prefixx}{{{\tt @prefix}}}% -\providecommand{\void}{void} - -% -\providecommand{\kludge}{{\tt \mbox{\hspace{0.01in}}~}} - -% -\providecommand{\indplain}[2]{\index{#1 #2}\index{#2s!#1}{#1}}% -\providecommand{\indtt}[2]{\index{#1 #2@{\protect\tt #1} #2}\index{#2s}\index{#2s!#1@{\tt #1}}{{\tt #1}}}% -\providecommand{\indttbang}[2]{\index{#1@{\tt #1}}\index{#1!#2@#2}{{\tt #1}}}% -\providecommand{\indttparen}[2]{\index{#1 #2@{\protect\tt (#1)} #2}\index{#2s}\index{#2s!#1@{\tt (#1)}}{{\tt (#1)}}}% -\providecommand{\indttnotext}[2]{\index{#1 #2@{\protect\tt #1} #2}\index{#2s}\index{#2s!#1@{\tt #1}}}% -\providecommand{\indttnotexttwo}[3]{\index{#1 #2 #3@{\protect\tt #1 #2} #3}\index{#2 #3@{\tt #2} #3}\index{#2 #3!#1@{\tt #1}}}% -\providecommand{\indttzero}[1]{\index{#1@{\protect\tt #1}}{{\tt #1}}}% -\providecommand{\indtttwo}[3]{\index{#2@{\protect\tt #1} #3}\index{#3s}\index{#3s!#2@{\tt #1}}}% -\providecommand{\itemindtt}[2]{\index{#1 #2@{\protect\tt #1} #2}\index{#2s}\index{#2s!#1@{\tt #1}}\item[{\tt #1}]}% -\providecommand{\indttbegin}[2]{\index{#1 #2@{\protect\tt #1} #2|(}\index{#2s}\index{#2s!#1@{\tt #1}|(}{\tt #1}}% -\providecommand{\indttend}[2]{\index{#1 #2@{\protect\tt #1} #2|)}\index{#2s}\index{#2s!#1@{\tt #1}|)}{\tt #1}} - -% -\providecommand{\opind}[1]{\index{#1 operator@{\protect\tt #1} operator}\index{operators!{\protect\tt #1}}}% -\providecommand{\indopone}[2]{\index{#1 #2@{\protect\tt #1} #2}\index{operators!{\protect\tt #1}}}% -\providecommand{\indoponekey}[3]{\index{#3@{\protect\tt #1} #2}\index{operators!{\protect\tt #1}}}% -\providecommand{\indoptwo}[2]{\index{#1 #2@{\protect\tt #1\protect\ } #2}\index{operators!{\protect\tt #1}}} - -% -\providecommand{\keyind}[1]{\index{#1 keyword@{\protect\tt #1} keyword}\index{keywords!{\protect\tt #1}}} - -% -\providecommand{\indevent}[2]{\index{#1 event@{\protect\tt #1} event}\index{events!{\protect\tt #1}}\label{#2-event}{{\tt #1}}}% -\providecommand{\itemindevent}[2]{\index{#1 event@{\protect\tt #1} event}\index{events!{\protect\tt #1}}\label{#2-event}{\item[{\tt #1}]}}% -\providecommand{\indeventnolabel}[1]{\index{#1 event@{\protect\tt #1} event}\index{events!{\protect\tt #1}}}% -\providecommand{\indeventtype}[3]{\index{#1 event@{\protect\tt #1} event}\index{events!{\protect\tt #1}}\label{#2-event}{\item[{\tt \tt #1 (#3)}]}}% -\providecommand{\indeventtypenolabel}[2]{\index{#1 event@{\protect\tt #1} event}\index{events!{\protect\tt #1}}\item[{\tt \tt #1 (#2)}]}% -\providecommand{\xrefevent}[2]{\hyperref{\tt #1}{}{}{#2-event}}% -\providecommand{\xrefindevent}[2]{\index{#1 event@{\protect\tt #1} event}\index{events!{\protect\tt #1}}\hyperref{\tt #1}{}{}{#2-event}} - -% -\providecommand{\indenvnotext}[1]{\index{#1 environment variable@{\protect\tt \$#1} environment variable}\index{environment variables!#1@{\tt \$#1}}}% -\providecommand{\indenv}[2]{\index{#1 environment variable@{\protect\tt \$#1} environment variable}\index{environment variables!#1@{\tt \$#1}}\label{#2-env}{{\tt \$#1}}}% -\providecommand{\itemindenv}[2]{\index{#1 environment variable@{\protect\tt \$#1} environment variable}\index{environment variables!#1@{\tt \$#1}}\label{#2-env}{\item[{\tt \$#1}]} }% -\providecommand{\xrefenv}[2]{\hyperref{\tt \$#1}{}{}{#2-env}} - -% -\providecommand{\analyzer}[1]{{\tt #1}}% -\providecommand{\indanalyzer}[2]{\index{#1 analyzer@{\protect\tt #1} analyzer}\index{analyzers!{\protect \tt #1}}\label{#2-analyzer-module}{{\tt #1}}}% -\providecommand{\indanalyzernolabel}[1]{{\index{#1 analyzer@{\protect\tt #1} analyzer}\index{analyzers!{\protect \tt #1}}{\tt #1}}}% -\providecommand{\xrefanalyzer}[2]{\hyperref{\tt #1}{}{}{#2-analyzer-module}} - -% -\providecommand{\module}[1]{{\tt #1}}% -\providecommand{\indmodule}[2]{\index{#1 module@{\protect\tt #1} module}\index{modules!{\protect \tt #1}}\label{#2-analyzer-module}{{\tt #1}}}% -\providecommand{\xrefmodule}[2]{\hyperref{\tt #1}{}{}{#2-analyzer-module}} - -% -\providecommand{\indfunc}[2]{\index{#1 function@{\protect\tt #1} function}\index{functions!{\protect \tt #1}}\label{#2-func}{{\tt #1}}}% -\providecommand{\itemindfunc}[3]{\index{#1 function@{\protect\tt #1} function}\index{functions!{\protect \tt #1}}\label{#2-func}{\item[{\tt \tt #1\tt #3 }]}}% -\providecommand{\indfuncnolabel}[2]{\index{#1 function@{\protect\tt #1} function}\index{functions!{\protect \tt #1}}{\tt #1}}% -\providecommand{\xreffunc}[2]{\hyperref{\tt #1}{}{}{#2-func}}% -\providecommand{\xrefindfunc}[2]{\index{#1 function@{\protect\tt #1} function}\index{functions!{\protect \tt #1}}\hyperref{\tt #1}{}{}{#2-func}}% -\providecommand{\xreffuncnott}[2]{\hyperref{\S~\ref{#2-func}}{}{}{#2-func}} - -% -\providecommand{\xreflog}[1]{\hyperref{\tt #1}{}{}{#1-log}} - -% -\providecommand{\itemindstmtemph}[1]{\index{#1 statement@{\protect\emph{#1}} statement}\index{statements!{\protect\emph{#1}}}\label{#1-stmt}{\item[{\emph{#1}}]}}% -\providecommand{\itemindstmttt}[1]{\index{#1 statement@{\protect\tt #1} statement}\index{statements!{\protect\tt #1}}\label{#1-stmt}{\item[{\tt #1}]}}% -\providecommand{\itemindstmttttwo}[2]{\index{#1 statement@{\protect\tt #1} statement}\index{#2 statement@{\protect\tt #2} statement}\index{statements!{\protect\tt #1}}\index{statements!{\protect\tt #2}}\label{#1-stmt}\label{#2-stmt}{\item[{\tt #1}, {\tt #2}]}}% -\providecommand{\xrefstmt}[2]{\hyperref{\tt #1}{}{}{#2-stmt}} - -% -\providecommand{\itemindexpremph}[1]{\index{#1 expression@{\protect\emph{#1}} expression}\index{expressions!{\protect\emph{#1}}}\label{#1-expr}{\item[{\emph{#1}}]}}% -\providecommand{\itemindexprtt}[1]{\index{#1 expression@{\protect\tt #1} expression}\index{expressions!{\protect\tt #1}}\label{#1-expr}{\item[{\tt #1}]}}% -\providecommand{\itemindexprtttwo}[2]{\index{#1 expressions@{\protect\tt #1} expressions}\index{#2 expressions@{\protect\tt #2} expressions}\index{expressions!{\protect\tt #1}}\index{expressions!{\protect\tt #2}}\label{#1-expr}\label{#2-expr}{\item[{\tt #1}, {\tt #2}]}}% -\providecommand{\itemindexpremphtwo}[2]{\index{#1 expressions@{\protect\em #1} expressions}\index{#2 expressions@{\protect\em #2} expressions}\index{expressions!{\protect\em #1}}\index{expressions!{\protect\em #2}}\label{#1-expr}\label{#2-expr}{\item[{\em #1}, {\em #2}]}}% -\providecommand{\itemindexprtttwonott}[2]{\index{#1 expressions@{#1} expressions}\index{#2 expressions@{#2} expressions}\index{expressions!{#1}}\index{expressions!{#2}}\label{#1-expr}\label{#2-expr}{\item[{#1}, {#2}]}}% -\providecommand{\xrefexpr}[2]{\hyperref{\tt #1}{}{}{#2-expr}} - -% -\providecommand{\indfield}[4]{\index{#1@{\tt #1}}\index{#1!#3@{\tt #3} field}\index{#3 record@{\tt #3} record}\label{#4-#2-field}{\item[{\tt #1}]}}% -\providecommand{\xreffield}[3]{\hyperref{\tt #1}{}{}{#3-#2-field}}% -\providecommand{\xrefscript}[2]{\hyperref{\tt #1}{}{}{#2-script}} - -% -\providecommand{\indvar}[1]{\index{#1 variable@{\protect\tt #1} variable}\index{variables!{\protect \tt #1}}{\tt #1}}% -\providecommand{\indvartype}[3]{\index{#1 variable@{\protect\tt #1} variable}\index{variables!{\protect \tt #1}}\label{#2-var}{\item[{\tt \tt #1 : #3}]}}% -\providecommand{\indvarbegin}[1]{\index{#1 variable@{\tt #1} variable|(}\index{variables!{\protect \tt #1}|(}}% -\providecommand{\indvarend}[1]{\index{#1 variable@{\tt #1} variable|)}\index{variables!{\protect \tt #1}|)}}% -\providecommand{\xrefvar}[2]{\hyperref{\tt #1}{}{}{#2-var}}% -\providecommand{\xrefvarnott}[2]{\hyperref{\S~\ref{#2-var}}{}{}{#2-var}}% -\providecommand{\pxrefvarnott}[2]{(\hyperref{\S~\ref{#2-var}}{}{}{#2-var})} - -% -\providecommand{\xreftype}[2]{\hyperref{\tt #1}{}{}{#2-type}} - -% -\providecommand{\indattr}[2]{\index{#1 attribute@{\protect\tt \} attribute}\index{attributes!#1@{\tt \}}\label{#2-attr}{{\tt \}}}% -\providecommand{\indattrnotext}[1]{\index{#1 attribute@{\protect\tt \} attribute}\index{attributes!#1@{\tt \}}}% -\providecommand{\itemindattr}[2]{\index{#1 attribute@{\protect\tt \} attribute}\index{attributes!#1@{\tt \}}\label{#2-attr}{\item[{\tt \}]} }% -\providecommand{\xrefattr}[2]{\hyperref{\tt \}{}{}{#2-attr}} - -% -\providecommand{\indintvar}[1]{\index{#1 internal variable@{\protect\tt #1} internal variable}\index{internal variables!{\protect \tt #1}}{\tt #1}} - -% -\providecommand{\indformat}[1]{\index{#1 format@{\protect\tt #1} format}\index{format!#1@{\tt #1}}\item[#1]}% -\providecommand{\indformatnoitem}[1]{\index{#1 format@{\protect\tt #1} format}\index{format!#1@{\tt #1}}} - -% -\providecommand{\indweird}[2]{\index{#1 (``weird'' event)@{\protect\tt #1} (``weird'' event)}\index{weird event@``weird'' event}\index{weird event!#1@{\protect \tt #1}}\label{#2-weird}{\item[{\tt #1}]}} - -% -\providecommand{\indextext}[2]{\index{#1 (#2)@{\protect\tt "#1"} (#2)}\index{#2s}\index{#2s!#1@{\tt "#1"}}{\tt "#1"}}% -\providecommand{\indexmsg}[1]{\index{#1@{\protect\tt "#1"}}\index{message!{\protect \tt "#1"}}} - -% -\providecommand{\indfatal}[1]{\index{#1!fatal run-time error}\index{fatal run-time error!#1}\index{run-time error!#1}}% -\providecommand{\indruntime}[1]{\index{#1!run-time error}\index{run-time error!#1}} - -% -\providecommand{\indglobalnotext}[1]{{\index{#1 global variable@{\protect\tt #1} global variable}}{\index{global variables!{\protect\tt #1}}}}% -\providecommand{\indglobal}[1]{{\index{#1 global variable@{\protect\tt #1} global variable}}{\index{global variables!{\protect\tt #1}}}{\tt #1}} - -% -\providecommand{\indpredefvar}[3]{\index{#1 variable@{\protect\tt #1} variable}\index{predefined variables!{\protect \tt #1}}\index{variables!{\protect \tt #1}}\label{#2-global}{\item[{\tt \tt #1 : #3}]}} - -% -\providecommand{\xrefglobal}[2]{\hyperref{\tt #1}{}{}{#2-global}}% -\providecommand{\xrefglobalind}[2]{\hyperref{\tt #1}{}{}{#2-global}{\index{#1 global variable@{\protect\tt #1} global variable}}{\index{global variables!{\protect\tt #1}}}} - -% -\providecommand{\indlibrary}[2]{{\index{#1 library@{\protect\em #1} library}}{\index{libraries!{\protect\em #1}}}{\index{libraries!{\protect\em #1}}}\label{#2-library}{{\em #1}}}% -\providecommand{\xreflibrary}[2]{\hyperref{\emph{#1}}{}{}{#2-library}} - -% -\providecommand{\indutility}[2]{{\index{#1 utility program@{\protect\em #1} utility program}}{\index{programs!{\protect\em #1}}}{\index{utility programs!{\protect\em #1}}}\label{#2-utility}{{\em #1}}}% -\providecommand{\xrefutility}[2]{\hyperref{\emph{#1}}{}{}{#2-utility}} - -% -\providecommand{\mkflagind}[1]{\index{#1 flag@{\protect\tt -#1} flag}\index{flags!{\protect \tt -#1}}\index{Bro!flags!{\protect \tt -#1}}}% -\providecommand{\indflag}[1]{\index{#1 flag@{\protect\tt -#1} flag}\index{flags!{\protect \tt -#1}}\index{Bro!flags!{\protect \tt -#1}}\label{flag-#1}{\item[{\tt -#1}]}}% -\providecommand{\indflagnoitem}[1]{\index{#1 flag@{\protect\tt -#1} flag}\index{flags!{\protect \tt -#1}}\index{Bro!flags!{\protect \tt -#1}}{\tt -#1}}% -\providecommand{\indflagtwo}[2]{\index{#1 flag@{\protect\tt -#1} flag}\index{flags!{\protect \tt -#1}}\index{Bro!flags!{\protect \tt -#1}}\label{flag-#1}{\item[{\tt \tt -#1 \emph{#2}}] \\}}% -\providecommand{\xrefflag}[1]{\hyperref{\tt #1}{}{}{flag#1}} - -% -\providecommand{\indpredeffunc}[3]{\index{#1 function@{\tt #1} function}\index{predefined functions!{\protect \tt #1}}\index{functions!{\protect \tt #1}}\label{#2-func}{\item[{\tt \tt #1 #3}]}}% -\providecommand{\indpredeffuncnolab}[2]{\index{#1 predefined function@{\tt #1} predefined function}\index{predefined functions!{\protect \tt #1}}\index{functions!{\protect \tt #1}}\item[{\tt \tt #1 #2}]} - -% -\providecommand{\indtype}[1]{\index{#1@{\protect\tt #1}|see{types, {\protect\tt #1}}}} - -% -\providecommand{\indconfig}[2]{\index{#1 configuration option@{\tt {--}#1} configuration option}\index{configuration options!{\tt {--}#1}}\label{#2-config}{{\tt {--}#1}}}% -\providecommand{\xrefconfig}[2]{\hyperref{\tt {--}#1}{}{}{#2-config}} - -% -\providecommand{\addindextocentry}{\addcontentsline{toc}{chapter}{\protect\numberline{Index}{}}} - -% -\providecommand{\indsigattr}[1]{\item[\tt #1]} - - -\makeindex - - - - -\usepackage[dvips]{color} - - -\pagecolor[gray]{.7} - -\usepackage[latin1]{inputenc} - - - -\makeatletter - -\makeatletter -\count@=\the\catcode`\_ \catcode`\_=8 -\newenvironment{tex2html_wrap}{}{}% -\catcode`\<=12\catcode`\_=\count@ -\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}% -\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}% - \expandafter\renewcommand\csname #1\endcsname}% -\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}% -\let\newedcommand\renewedcommand -\let\renewedenvironment\newedenvironment -\makeatother -\let\mathon=$ -\let\mathoff=$ -\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi -\newbox\sizebox -\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt} -\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt} -\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt} -\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt} -\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt} -\setlength{\textwidth}{349pt} -\newwrite\lthtmlwrite -\makeatletter -\let\realnormalsize=\normalsize -\global\topskip=2sp -\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float -\def\@float{\let\@savefreelist\@freelist\real@float} -\def\liih@math{\ifmmode$\else\bad@math\fi} -\def\end@float{\realend@float\global\let\@freelist\@savefreelist} -\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float -\let\@largefloatcheck=\relax -\let\if@boxedmulticols=\iftrue -\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt} -\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize - \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}% - \def\phantompar{\csname par\endcsname}\normalsize}% -\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}% -\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }% -\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }% -\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup % - \let\ifinner=\iffalse \let\)\liih@math }% -\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}% - \expandafter\box\next\egroup}% -\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}% -\newcommand\lthtmllogmath{\lthtmltypeout{l2hSize % -:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}% -\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist - \lthtmlmathtype{#1}\lthtmlvboxmathA}% -\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}% -\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup - \let\@savefreelist\@freelist \lthtmlhboxmathB}% -\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}% -\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox - \global\let\@freelist\@savefreelist}% -\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}% -\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}% -\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}% - \lthtmldisplayA{#1}\let\@eqnnum\relax}% -\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}% -\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB} -\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA - \vrule height1.5ex width0pt }% -\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}% -\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}% -\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % - \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline} -\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % - \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath} -\newcommand\lthtmlindisplaymathZ{\egroup % - \centerinlinemath\lthtmllogmath\lthtmlsetmath} -\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{% - \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi - \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} -\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{% - \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt% - \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt% - \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} -\def\centerinlinemath{% - \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi - \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1 - \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax} - -\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize - \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill - \else\expandafter\vss\fi}% -\providecommand{\selectlanguage}[1]{}% -\makeatletter \tracingstats = 1 - - -\begin{document} -\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}% -\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}% -\makeatletter -\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}% -\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi% -\lthtmltypeout{}% -\makeatother -\setcounter{page}{1} -\onecolumn - -% !!! IMAGES START HERE !!! - -\stepcounter{chapter} -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsubsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5436}% -$~\tilde{~}~~~$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5438}% -$\tilde{~}~~$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsubsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5440}% -$A\_1 {\tt .} A\_2 {\tt .} A\_3 {\tt .} A\_4$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5442}% -$A\_i$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{section} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5444}% -$2^{24}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5446}% -$2^{16}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5448}% -$2^8$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5450}% -$N\_1 {\tt .} N\_2 {\tt .}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5452}% -$N\_1 {\tt .} N\_2 {\tt .} N\_3 $% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5454}% -$N\_i$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5456}% -$^+$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline5458}% -$^*$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{chapter} -\stepcounter{section} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline8536}% -$_{2}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline8540}% -$_{1}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline8614}% -$_{3}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} - -% -\providecommand{\constmsg}{\\NOTE: This variable is {\tt const}, -so may only be changed via {\tt redef}.}% - -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline16373}% -$\le 26$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline16375}% -$m$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline16379}% -$n$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline16393}% -$h$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure22361}% -\begin{figure}\begin{verbatim} - -event bro_init() - { - if ( restrict_filter == "" && capture_filter == "" ) - print "tcp or not tcp"; # Capture everything. - - else if ( restrict_filter == "" ) - print capture_filter; - - else if ( capture_filter == "" ) - print restrict_filter; - - else - print fmt("(%s) and (%s)", capture_filter, restrict_filter); - - exit(); - }\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -{\newpage\clearpage -\lthtmlfigureA{figure22485}% -\begin{figure}\begin{verbatim} - -type net_stats: record { - # All counts are cumulative. - pkts_recvd: count; # Number of packets received so far. - pkts_dropped: count; # Number of packets *reported* dropped. - interface_drops: count; # Number of drops reported by interface(s). -};\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure22528}% -\begin{figure}\begin{verbatim} - -type conn_id: record { - orig_h: addr; # Address of originating host. - orig_p: port; # Port used by originator. - resp_h: addr; # Address of responding host. - resp_p: port; # Port used by responder. -}; - -type endpoint: record { - size: count; # Bytes sent by this endpoint so far. - state: count; # The endpoint's current state. -}; - -type connection: record { - id: conn_id; # Originator/responder addresses/ports. - orig: endpoint; # Endpoint info for originator. - resp: endpoint; # Endpoint info for responder. - start_time: time; # When the connection began. - duration: interval; # How long it was active (or has been so far). - service: string; # The service we associate with it (e.g., "http"). - addl: string; # Additional information associated with it. - hot: count; # How many times we've marked it as sensitive. -};\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31877}% -$A$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31879}% -$B$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31899}% -$B_{o}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31901}% -$B_{r}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31903}% -$A_{l}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31905}% -$A_{r}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31927}% -$A_{o}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31937}% -$S_{o}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31941}% -$S_{r}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31943}% -$D$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31957}% -$P_{o}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31961}% -$P_{r}$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31971}% -$p$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -{\newpage\clearpage -\lthtmlfigureA{figure23775}% -\begin{figure}\begin{verbatim} - -global msg_count: table[string] of count &default = 0; - -event log_summary(msg: string) - { - log fmt("(%s) %d times", msg, msg_count[msg]); - } - -function log_hook(msg: string): bool - { - if ( ++msg_count[msg] == 1 ) - # First time we've seen this message - log it. - return T; - - if ( msg_count[msg] == 5 ) - # We've seen it five times, enough to be worth - # summarizing. Do so five minutes from now, - # for whatever total we've seen by then. - schedule +5 min { log_summary(msg) }; - - return F; - }\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure23860}% -\begin{figure}\begin{verbatim} - -type dns_mapping: record { - creation_time: time; # When the mapping was created. - - req_host: string; # The hostname in the request, if any. - req_addr: addr; # The address in the request, if any. - - valid: bool; # Whether we received an answer. - hostname: string; # The hostname in the answer, or "". - addrs: set[addr]; # The addresses in the answer, if any. -};\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure24088}% -\begin{figure}\begin{verbatim} - -type ftp_session_info: record { - id: count; # unique number associated w/ session - user: string; # username, if determined - request: string; # pending request or requests - num_requests: count; # count of pending requests - request_t: time; # time of request - log_if_not_denied: bool; # unless code 530 on reply, log it - log_if_not_unavail: bool; # unless code 550 on reply, log it - log_it: bool; # if true, log the request(s) -};\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure24192}% -\begin{figure}\begin{verbatim} - -972499885.784104 #26 131.243.70.68/1899 > 64.55.26.206/ftp start -972499886.685046 #26 response (220 tuvok.ooc.com FTP server - (Version wu-2.6.0(1) Fri Jun 23 09:17:44 EDT 2000) ready.) -972499886.686025 #26 USER anonymous/IEUser@ (logged in) -972499887.850621 #26 TYPE I (ok) -972499888.421741 #26 PASV (227 64.55.26.206/2427) -972499889.493020 #26 SIZE /pub/OB/4.0/JOB-4.0.3.zip (213 1675597) -972499890.135706 #26 *RETR /pub/OB/4.0/JOB-4.0.3.zip, ABOR (complete) -972500055.491045 #26 response (225 ABOR command successful.)\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure24357}% -\begin{figure}\begin{verbatim} - -972482763.371224 %1596 start 200.241.229.80 > 131.243.2.12 -%1596 GET /ITG.hm.pg.docs/dissect/portuguese/dissect.html -%1596 GET /vfrog/bottom.icon.gif -%1596 GET /vfrog/top.icon.gif -%1596 GET /vfrog/movies/off.gif -%1596 GET /vfrog/new.frog.small.gif -\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31983}% -$\le 2$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31987}% -$\ge 256$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31989}% -$\ge 1024$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31991}% -$\ge$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure25695}% -\begin{figure}\begin{verbatim} - -type x509: record { - issuer: string; # issuer name of the certificate - subject: string; # subject name of the certificate -};\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure25707}% -\begin{figure}\begin{verbatim} - -type ssl_connection_info: record { - id: count; # the log identifier number - connection_id: conn_id; # IP connection information - version: count; # version associated with connection - client_cert: x509; - server_cert: x509; - id_index: string; # index for associated sessionID - handshake_cipher: count; # cipher suite client and server agreed upon -};\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlfigureA{figure25794}% -\begin{figure}\begin{verbatim} - -1046778101.534846 #1 192.168.0.98/32988 > 213.61.126.124/https start -1046778101.534846 #1 connection attempt version: 3.1 -1046778101.534846 #1 cipher suites: SSLv3x_RSA_WITH_RC4_128_MD5 (0x4), SSLv3x_RSA_FIPS_WITH_3DES_EDE_CBC_SHA (0xFEFF), SSLv3x_RSA_WITH_3DES_EDE_CBC_SHA (0xA), SSLv3x_RSA_FIPS_WITH_DES_CBC_SHA (0xFEFE), SSLv3x_RSA_WITH_DES_CBC_SHA(0x9), SSLv3x_RSA_EXPORT1024_WITH_RC4_56_SHA (0x64), SSLv3x_RSA_EXPORT1024_WITH_DES_CBC_SHA (0x62), SSLv3x_RSA_EXPORT_WITH_RC4_40_MD5 (0x3), SSLv3x_RSA_EXPORT_WITH_RC2_CBC_40_MD5 (0x6), -1046778101.753356 #1 server reply, version: 3.1 -1046778101.753356 #1 cipher suite: SSLv3x_RSA_WITH_RC4_128_MD5 (0x4), -1046778101.762601 #1 X.509 server issuer: /C=DE/ST=Hamburg/L=Hamburg/O=TC TrustCenter for Security in Data Networks GmbH/OU=TC TrustCenter Class 3 CA/Email=certificate@trustcenter.de, -1046778101.762601 #1 X.509 server subject: /C=DE/ST=Berlin/O=Lehmanns Fachbuchhandlung GmbH/OU=Zentrale EDV/CN=www.jfl.de/Email=admin@lehmanns.de -1046778101.894567 #1 handshake finished, version 3.1, cipher suite: SSLv3x_RSA_WITH_RC4_128_MD5 (0x4) -1046778104.877207 #1 finish ---- -Used cipher-suites statistics: -SSLv3x_RSA_WITH_RC4_128_MD5 (0x4): 1\end{verbatim} - -\end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline31993}% -$2 \cdot \mbox{MSL} = 4$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{section} -\stepcounter{subsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -\stepcounter{subsubsection} -{\newpage\clearpage -\lthtmlfigureA{figure39539}% -\begin{figure} \begin{verbatim} - -type signature_state: record { - id: string; # ID of the signature - conn: connection; # Current connection - is_orig: bool; # True if current endpoint is originator - payload_size: count; # Payload size of the first pkt of curr. endpoint - };\end{verbatim} - - - \end{figure}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{subsection} -\stepcounter{section} -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline39988}% -$N$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -{\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline39992}% -$\pm N$% -\lthtmlinlinemathZ -\lthtmlcheckvsize\clearpage} - -\stepcounter{chapter} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -\stepcounter{section} -{\newpage\clearpage -\lthtmlfigureA{center42103}% -\begin{center}\vbox{\input{index.tex} -}\end{center}% -\lthtmlfigureZ -\lthtmlcheckvsize\clearpage} - - -\end{document} diff --git a/doc/old/manual/img1.gif b/doc/old/manual/img1.gif deleted file mode 100644 index 0223c17338d02fe925d61bdfa795ef28dd4a394c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmZ?wbhEHblwuHKSi}GVbLPyMFkwPVOG`yX#pcbM8R{7rE=Vf=WMO1rU}ew&sQ{^U zU^d|hxbttrN{`jMEMD)Oqrn*Hcsax9spT@QquWy0-QVk+^tIq=jJn-A-`7I

    =4C L{=-jH7#OSpxFaV8 diff --git a/doc/old/manual/img10.gif b/doc/old/manual/img10.gif deleted file mode 100644 index 427749b200627a073f5b484aef62537053297c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmZ?wbhEHbRA3Nd*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Do4r2lrTL?r&!ZSfD3+`1n>YG40b&H#RXE zga|RTE7g8uWe?u+(@4RFhk-FFPl|&t$flG(l7ovsPO^?;LbYhESaypPt4W2Y2vZwF Wov2BeHaA1Z{HhfF^&4~q8LR;_y-2+P diff --git a/doc/old/manual/img11.gif b/doc/old/manual/img11.gif deleted file mode 100644 index 8c06e38f4f5e5602fbe3dd1d61402594196addf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmZ?wbhEHb6l4%#Si}GVbLPzP@bHk3kl4I=GXsMMLp=k-1xdx9EQ|~cEDSmz6(F?^ z%!V8ecmBPasH(o!$Z3t?p18}MGACvzz0%Biz3ZVmS8AB>LGBAHV|#fH>Xrp@b?#cC I#K>R`02^B&Q~&?~ diff --git a/doc/old/manual/img12.gif b/doc/old/manual/img12.gif deleted file mode 100644 index 7555544ec54f845ee86be3894d38728083859e63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmZ?wbhEHb9ww@NV@ o%(yZu=|S)7QaPQDqwB*3WkgyZp1TzEG;do-$>%9`c7hDn088gFm;e9( diff --git a/doc/old/manual/img13.gif b/doc/old/manual/img13.gif deleted file mode 100644 index e96a66a481d48e7969a39f91156fe4db1b96618b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmZ?wbhEHbhlhcIfr^TXgoFeS56|Y! zK!vXv_NX&3q$>VoVPs(7VbB5T1exK$;w!-5wmS9Gt22itIRqBovY5I|O+nLZqDIWA z+b4NACkW`ON{B~Y5K}(qaAL`YO>abF^^?~wS|A|i*Y-f*1!o0Mph(w5zLRGSO=8`& JrwTGy0{|tfGxz`i diff --git a/doc/old/manual/img14.gif b/doc/old/manual/img14.gif deleted file mode 100644 index 5a93808349e2279427a9d470f3976fc7dbe2f36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmZ?wbhEHb?tU8Y(1FpT@aMW>QP;C V=3_F~+=DCDS}J{9*TuqM4FI;7D(wIO diff --git a/doc/old/manual/img15.gif b/doc/old/manual/img15.gif deleted file mode 100644 index 7a9ad3b96c76ef200ae6bd0e5060e9d589a95269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmZ?wbhEHbVoVPs(7VbB5T1exK$;v>M|wmS9Gt20iMIs*!CSxkLqs^Qobq#`x_ zbD2>)lTJ&vB=`I`W;F*@PAs|9p?GPIS=w7CE+Y|+g?dl4Qmn5n6Y)}wUY5T3gJsw* HWd>^iq@*@= diff --git a/doc/old/manual/img16.gif b/doc/old/manual/img16.gif deleted file mode 100644 index b52710213a7f7a8c564bc91cf7ce7dc3d62649a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmV+%0ptEhNk%w1VJ83}0J8u90001}sHmKroRE-^goK26czA4VY+ztuR8&+*NJu<9 zJTNdYBqSsl7#Iu;470PdA^8LW000jFEC2ui04D$-06+xE5P(Oky*TS9Yih!_DFp=} z!Gjo8C%$ky#q{QCLV{!n@em9aWpQ{67&4InvBM0Ck3fQAfEJpZS#4{%ak<`aE&OAK zHjXYuG02byW|%=parjJ0F<7gok^3TlfEp5ohKGoWiim@Ld|Ofg4p0=43U^sJ2?=Ky zNE8GLR9K&x6$A<>TLYpG4y+DXrl6@QGzWA5cLJq?Ih-4F6m1U*m}w@DH4cUg6$lOt il(P(qt$>1!7uni*-8RbKUE$)%<%Hzri|g!*5db@QkY@t` diff --git a/doc/old/manual/img17.gif b/doc/old/manual/img17.gif deleted file mode 100644 index c827cd1997d213e822bb2024f9ecda200bdc2e34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmZ?wbhEHb6k!lz*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{DoZr|Xr?%#X0tP;2wgky)9yzWHiw`W| fSaQg5@g|LcDQWYyeHBeKxsy{vHFVoF1sSXXYvDS4 diff --git a/doc/old/manual/img18.gif b/doc/old/manual/img18.gif deleted file mode 100644 index 94fc1b7cbf16a7492fcf69c75707f0bc59118880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmZ?wbhEHb6krfy*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0^)R8%A+ zBzSmuHg5(hPgVTM!pOkD$Djk!2{OZh#Ycd_ef8E!(;8e}P+=!-&t`kEFipDd;%wQDI=P F1^~K?B(?wm diff --git a/doc/old/manual/img20.gif b/doc/old/manual/img20.gif deleted file mode 100644 index 8f14da337649be2777e46a729c191d29fd67114c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5770 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 IuoeLTI|X3YasU7T diff --git a/doc/old/manual/img21.gif b/doc/old/manual/img21.gif deleted file mode 100644 index 03516183256c72d1792eee933ec8bebe13aa3ad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5039 zcmV;g6Hx3&Nk%w1VXOje0K@=_8i~=MALIE8C76xd+;VdY2B0*KLt> zM-Fh{a1%A}esUsoBmxTvF?}RxBWn-{3kBjKIa)7R9~?{Mt$CR8E@&Eq8HzWx6H00RmfNU)&6g9sBUT*wOBI)e^v zMP!J8fW;O76i9+6VrcJ+X3Z;COhoLS=AZ-dTA{#|%Dp!YR}q$R^u4 znzj(zhm=id9x--rkJ4~W7+#w-3RlHoQ=leFySDAyxO40NVTwRw2nGgY^Aak@Og{*S z33z*=%%0B!8f@Gmg1DRHEDAg$klYJhj_G3KZB1OKYAPP?`j`c?z5W z$Qh7D2^e6fn?&fz=bwNED(Im8ROJ9&geI!!qKr1$WOGYeksbstQaUA=C_D+=UDgWe z9}8nDXhN2sITR{10MsYrkDXGx7HjOF z7D>^90R{dR+OxH&`sYg0{*H9)wb<$;3Z^HF5=S-!N+zy4!nh*X5M4&Xpbo(Eotw)^Efp0oeUkxPc7yTe_K`0D2T&+oCyQUfNyDH| z@;q=3tlmQF@Cq~F^IEG=d&Qhw^1O|M053c>&*K#C)JMOWZ3%bLOMw6=WH17<&wcMo zAMF5OIs8R|c+Fd%>UQ8f=q+M^i_o1S7D%!ejP44%6ORVl$2ts7u!6I@-|Q#_!ZV1l zC`#yH0W~)Shm?gO3Q))7gz!V16fq}0bkq@lu(;P<4;3~TA|;fSiYUsWi3xaO3anTx zE~3DTM1=kY7PTmZ0ifjsg1AL*tk#t=Fd__NNMZ>>w1>PzViJ{jqZ;h?2?m715P~bg zB{G4IBf&~D0L=u3c-Ro< zNzZx?D>DqTr#|<|&p+*{p8yJ|Ko7FSRuuG8r63AP4m!|=J`NjHd}k|fu*2t(u^N4; zDE{VRK)AXgw0vwsDAx+dNu=SefO-Qa)q*CH1L(t{FpX&nuqjfRo`Qll&8bdz%F~|u z6d*oP!%v4w)S}9udKWDLA}T@{m9pS>srsK+T*y7-C9h6tvXKs>_mp~t&Xwz8o&z@+ zL3x${s=BF@ zuLS6w+Cfo?MgX4|yox&Z`A~?i<`(`u?Hu_$$o%McAk!`glL~rJ9SljK8hyz}R_f4w zW>wQ;OsY~|QJj{zL0#}BW4S@PFG5eXDl4_>IN$B7bo*xAeI)osMAEKE7%Z#to-I=X z{!Ax+)F@&msSm$rL&#^J@6P5yCG&DQ0|3Qfm=qSHSEI_TF5TDFKzw4xXO%_vhLVYof) z$1i=6tlW|*ECYC+h_yV6L;OUukCwrtF@uXyr}>DG4xDyTeO9JAQHuFC##ejR5oxpl?1-gk4T zWI7%5@)%Yy)(O8nVBI&5xy;*@u$y~5-ZYHg=DeQXv%$Oy1S1*3fD_hsRl$m=n+eRg zF0!o8J_=L}AM^OU!JCN0PK2gQzWve$_jM!#Lt12l4*AF=TzFFe`(PWZrU-STai zJL78}`RW*u(V!2#=tocb(gPII6rVxr2eNt-ROBLf(FnPn>Izh!X^BRX1?p2_0D~VK z)V0@UXp?66jh>qXAhokBt6uzsdKS)4epW{cr+U#wKOW9rJ`u8Z?{g0dH2P^(kt!E1^0e>$b6O+?`TLVN8NE?SWIH+ZM9N2*#_<X@^7z7;$CLU)BXQy~GrvgJaLC2wa zh-Y`80&*FV2CGb;**`hASW{u)Fj^tR5=6H_in2zeWjyr){KY&;NF^xF|k3pb~>==5l7mk#2 z2_vX|DlsTzbB_W^7KYaX--nII2Yqo-VD-^q`C&Dh(jR!pU>y=-CgNZdrUDVhM#y10 z@-=*BLn_IXOjMLGUV>o*`GMTm0(1gyBk7L{2_)@zHQDD73b+CV2z~OGR1uLH?T2m2 zl#?}u3{4{fQ6hjT34%%10{5l^F-a2sUuI4|Mo4-iWJ3miMYc|ZaD#mYeQ!2PJQikF z`IAg$3He7m;zSi$i8$dSXKLn5iN zdX5GWlExF2#sZf%2sgKB*%S+&rUryr1U8|FxR7f0_#eg~0F_BBMhHMWgoU1?g}yS4 zVCYw8IR_;|W|Smt&Y#!$Wv+byds5Kcp!=NJaqGgAv(d2D?d%;3Gbg z5O~O@nq&7s@n(kcvR?JGMHbg|`4d+B!wRf958cRw$3dD>_*ET(nrRq@V1ias<($VR zkH?dBdzC8S8A2!|660BhF0}pv)Cp|*vxHxGo{eU1>qZw2;fHt;i0+1N%peX`fDa>p zaDV6mgQ#rKz-;f3ecA_Y7w8Mq_L+TfZNo>F-*P+Mwh!OtZz)iSct{xL78(<31+FFz z3A%g+dY~mBi0M|MBLH+jf=v#pqrrA-h{%%L00t`Rd`Q{}D5@yC#uWv}6q416P?$KM zv{)xVTJ8mFLD&OU+J~b!d>HBwa7j#lLK^bFp zSSNU}NOzk`SnJ}9I+RR zumU@7S1+>x@XKz?ttvNw6Mk(xLZ6*ly@uG5-QKI^DD38owg5G(0? z-v_oL8aAXmHi_^oD1kN?7gGM15e7HAv|AZ;Lw!*bfTZgLbw74ntdn`5>al|6=Ka$}W{MKx== zNx888lohySegMBB8fB<79WeGyFyOw-OSb0AWogM~Gj_dW_P?9q1}wIfjc5XIX1(AG zO9R-zKF7e%^he4!1L^xI0!+cyi@wl=V{xg23n53g@q)QfmxMySy8y$wpu&T4Xa-@! z!7{C2ml8V+Q#h;}Kb#vu9K-}$#72C?NSwqlHJC~qTPT5<655%cc?2>{3sCF>i`l(A zRC16>jjAx2o>{xQam6b;z<>%WL;%K9%mbwLJ~4{~^vIi8Raf2`J?#0P5VW7%rJYXE zon=K>Yv_c~IaP!gnprr7yknc{**Ve~3dcD?z3IrLn?PiukKHSr#zsNfBgoxDbjkkt zR?AsF%~?Zu9G&^8$Jr6crA)}qXvo}vK(#u^e|%LiG;8@O$Q$&V>`5ts3|@iqo!m)=^LYX#TbhUr3U4g4mjsd|aED3?r|L$XXJc;(n$Ac1%`r)b1KlM2%%Ih=q_0+!DB#a1ntMi>qwQv*L8H(x*%1HtxuW5@ z$pop2kf%l|1BnVGje5|i6b6er11{YeR}s(gyNOXa7eQdA6{r`m`(A+Irv8=~12bLH zUOE-fH`7fjR0qU{pA^+gElb#dsN0aHXVa!4Mg@?Fx>w1EFWs>~!qRv!s2W=cH?25b z+zMH91GAVf&>A4mYOPM_t@<)D$!ap6dabS`jeUUEscHq2N;|`ta-TOae~qr&u&TK_ z*Xb3EL72@coph+Z{n<%JuFv?{$QX9cNIn-AbLN_Y zCqUZI3fnHHc(0Aul)bHVX9_1MC6f+~ zecR9w4zs-`S%d=eS}gU-+V^_KH<7PKMZHxl1PCc8PRW=(+{Ex5Ki~2_-}GJI_I=;@ zO$!0=*7@DvG=mJ4?B4=jEQ|pY8am(z&MU|;rU~BQB?eDh>);X|C<%Zm<~`vU?j|7s F06Rz?@^%0K diff --git a/doc/old/manual/img22.gif b/doc/old/manual/img22.gif deleted file mode 100644 index bbd0b4f8a88d5914658fd5f3ccb0e0f073c8e8ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15449 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%0A~5RekZ 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 H0C@R-7;!J) diff --git a/doc/old/manual/img23.gif b/doc/old/manual/img23.gif deleted file mode 100644 index 280d924c1cb09ac02da916cd9626e335d957d9c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmZ?wbhEHb6k-r!*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zRCsuJHg5(hPgVTM!pOkD$Djk!2{OZhC0KyLef3_yM-4B6rm6I$bcV7!v;?Q}h+Pc2 z_$l6qnlJG+h@vWQ_|R`hF^G@9-0o@5xLQa;@!pshHFg<(SSgdZB4xkQr+H#e*o VaawFU&A{ba@|TxdKUD=8tO0oyHrfCH diff --git a/doc/old/manual/img25.gif b/doc/old/manual/img25.gif deleted file mode 100644 index 8aa47363f5af77c9c3a0e55bd73c2e1218b550ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmZ?wbhEHblw?p~*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{DoCuLkok_o?bDws zk8HaA-lx)U{rShfdv4`s6bRP^NN}-=afCF9u@x&PL~yZZ*%SrViZXHVwX!nu$;TVy cuurV663fnCk+aHwjn6vI4fKibf3rY<2)Fm*9||fVTx}`lONERNItpET3 diff --git a/doc/old/manual/img28.gif b/doc/old/manual/img28.gif deleted file mode 100644 index 3212cf87f007888e8b1afe24738db0fa6ac19066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmZ?wbhEHblw?p~*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Do(7FY662ugiA}qq912tT3WmgPLPpfZWWAFniT!KC*^G3 z?)xtbPnPM*GR&(|V_BeX$Y{o$R3*yH!P3bYmg>c3B*LP{YQV_P<#V}`z#qORNWXYxVgf_m^oN_I74g1*i1xO960M)VF5xd ziZ^lPnR-gGwGYY}j3dux{bsZkMM5kZkI1BQ$!t2GP~+wRAZ!p0g|I`lY7kZe!{F&| z6xKi@QLcIn+fl_Zun@MIZGthcSMD1F2NY@)dwq6z7JL*0Y!8PNbcr8viWWT~9+{dP zoSk2w4{{hL0G}C`rK6}74i>5vrmZIdjSC&KxdE0J17HM>xE-+%zrn&C24sQ2$sPg< z8ppv2!x#l#qp-!I-rwNi7o_6l=I0`@0S*65CfwJ1f+3T*l--I4ix_(=!L<6l?9BnE-L#N(!v0V8a&o0sjz{(jwCr` z+g5=b1q1>pC=i$@SI!4J%P{-$GiV0^W3CkCiOC;FS(p+Q(F9Z2MXgCcF;(u;c*K-wb4`X=z_7UJFta{baJwSb7& Ugy8IJB>5Gw*UYD diff --git a/doc/old/manual/img30.gif b/doc/old/manual/img30.gif deleted file mode 100644 index 33713b6a1649463a2b17b410fdbb506e8d014fba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 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 diff --git a/doc/old/manual/img38.gif b/doc/old/manual/img38.gif deleted file mode 100644 index 802eb22a71d68c099029c191b2f0fa90f006dd10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8106 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 EJN$dRbN~PV diff --git a/doc/old/manual/img39.gif b/doc/old/manual/img39.gif deleted file mode 100644 index 490e8c748c7b4de3215a0153d9dca0e954f702e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12098 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 diff --git a/doc/old/manual/img4.gif b/doc/old/manual/img4.gif deleted file mode 100644 index dfd4c3db1f0768779a29ff2cbf1f6d950e63fb1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmZ?wbhEHblw}ZN*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Do(zi=+uhKvEe;yf|xArd5PH7mpCTn?5%~RZw!F-kiA%f(+IG D2Sr5N diff --git a/doc/old/manual/img40.gif b/doc/old/manual/img40.gif deleted file mode 100644 index b077d4b6038a1de4a4646ae6f2281179eb6c88a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5510 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 IhaLd{J9-cJm;e9( diff --git a/doc/old/manual/img41.gif b/doc/old/manual/img41.gif deleted file mode 100644 index 5e8e4cd56a2e6cf548af30749cf559d1fef41041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmZ?wbhEHblxI+2*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Do)3v?L~LR*SsGlMNrtuAg$4W%OcA=dOFeMKKTNI*6h)0tK34$6=6a*nh83tkxwy+xo2?sA81GxYO4i3Ez$INw; z7JjrC2h|TwEQkWXXaNWbs3L(Bdb$(>bR)0pz-bPagxL!K3%xK745shCnz^171*{}( d;F*F3aUe{H0Tjb%4{JD#2#b@&ix(pR06QcWbL{{C diff --git a/doc/old/manual/img43.gif b/doc/old/manual/img43.gif deleted file mode 100644 index 9600430261fbb4788d20ae626efdd513d8f93d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 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 diff --git a/doc/old/manual/img46.gif b/doc/old/manual/img46.gif deleted file mode 100644 index 11d39cbe0ccdf6dc259ff224649c3ff58fa14ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6628 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 i_+yYm_VyZOI2QS2lv7rDH5(1)hBQ5RvzIT7k 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 M%Glh^3lRYTJD=_Rv;Y7A diff --git a/doc/old/manual/img5.gif b/doc/old/manual/img5.gif deleted file mode 100644 index d6e4587a50d40ab8223675c1598d0408b5cd830b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmZ?wbhEHblx7fN*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Dot8EtFtz*fj*IKB&_~O`L z!LMl=DZXpcrKjcTRp;OTzFetW))-tItj*3@D3a~o=H0>1!x@z-l3th4la|27G|ebp ol!<{grOz=`JbeCwmWuU~%`KZ7w^nX1-&wLdpnm^>3_%8K00e_rh5!Hn diff --git a/doc/old/manual/img6.gif b/doc/old/manual/img6.gif deleted file mode 100644 index e92fc18acd49f60fadd08d3602cb249b41f788a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmZ?wbhEHblx7fN*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Do{ROTUlm! zNgk^@rLkuf$47ylsFfiVGD1tQxdv{@oYKs!+EAjVdSgx5>8)0U5=R{+Ei4#1Qd+qR zJnZ?8GflW)8=}IskTLw%R59iner_%yyCyCUrYv!Gr?~P46QzlhWFonzB}@yCnZH1g G!5RSJOhtSE diff --git a/doc/old/manual/img7.gif b/doc/old/manual/img7.gif deleted file mode 100644 index 424994a0c6c053ca7440e2ed8f940e815feef3e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmZ?wbhEHb6lD-$*vtR|D^{$SGiT0(2@_gcS}H0ka&mGK5)wi}LOeV?Y;0@{3=C9M zR3s!MczAd=Z{Do?N5Ch5*TDSl39P1vWfIEIVmhN t&}uoRypdaB(fY-y3i=g{T&|T8?DkQjMk35X?tCHKJ&|hRQ^EuptN~x;JW~Jw diff --git a/doc/old/manual/img8.gif b/doc/old/manual/img8.gif deleted file mode 100644 index 95e3b29fc014b3b05edab0ac47240a4ee5a037cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHl@Nk%w1VMhQG0J8u90001}sHmKroRE-^goK26czA4VY+ztuR8&+*NJu<9 zJTNdYBqSsl7#Iu;470PdA^8LW000jFEC2ui07n2406+x%5P(Oky*TU5dzIHwIiewW z6DLySV|tHLWKwP4c&_h!uVaVA!g4re5DrC3B_tX#2*QKFFwmBdRfPa}aOe@VNX6d@$A&1j-}2SM(YV7H9tKt#hI5#iFqfL0 zo^BTk3;>l62>?kOR2`zE6{o2fYN%QloD>IK1AluRxd6L)8)6g$3Un3&QU(A44+5nd zj>*f-&(RwL#~8O-2*-?HzJK5_2iTw$$`+#NG#u*{?H!a9!L}&^NB~k5L-;ii*!ag_ hn?48pEc|m*;{n1N1h+l7^{L_<9~d)g+z22706QeEdK&-$ diff --git a/doc/old/manual/img9.gif b/doc/old/manual/img9.gif deleted file mode 100644 index b5af385015b7b84a4c9fbf03cd0fa731ab5c72a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmV;j0Zsl#Nk%w1VPgOi0J8u90001}sHmKroRE-^goK26czA4VY+ztuR8&+*NJu<9 zJTNdYBqSsl7#Iu;470PdA^8LW000jFEC2ui0Am0W06+x(5P(Oky*TU5yZ@MU9hE~G zf;Vv_Wj^Sq6k7YdF=sFiO-aC@a7Zi~kI1AFi8&+|mP0Coa41%+XLO1|5FP}EVdI2W zq#MOIkVyQn4;zI5;Bw#zM)X3rV+Jj36nSTSbsc(hZVw_Lj*pO$kBxf_iw_7Y9we3( znHmlja3c?$6rUOk0dr=Q6gC0?1*mr&u(Gro24iFuv9pc>3U89d#>bAX$ji*e$_fks zyblQgRvTd*(9#vv*BETpau?gv-U=Gw4hXA^qj7Wto|?At^BRd@!!`D&wG}Ir3ix6G zz$yXLHoUtq5Qf1A2tN$i_lMxah#n@&b4Tjbuv}mo7Vhzg>BE799Wi|bAwUeV3JNPg zLm84oObRnQ?4q!d;TM@MIZ$NuQa}{|KPi|I6$C*LGYs|_b%4~u(l40 -D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F -A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2 -5BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I49 D103 D108 D111 D E /Fd -141[72 2[72 44[72 66[{TeXBase1Encoding ReEncodeFont}3 -119.999947 /Courier rf /Fe 2 67 df<4B7E1503150782150F151FA2153FA2156F15 -CF82EC0187140315071406140E140C02187FA2EC30031460A214C013011480D903007F91 -B5FC5B90380C0001A25B13380130805B01E013005B12011203000F4A7ED8FFF890381FFF -E0A22B2A7DA932>65 D<013FB512F816FF903A01FC001FC04AEB07E0EE03F001031401A2 -4A14F8A2130717F04A130317E0010F1407EE0FC04AEB1F80EE7E00011F495A91B512F0A2 -91388001FC013FEB007E8291C7EA1F80160F4915C0A2137EA213FEEE1F805BEE3F000001 -153E16FE49EB01F84B5A0003EC1FC0B7C7FC15F82D287DA732>I -E /Ff 130[40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 -40 40 40 40 1[40 40 40 40 40 40 40 40 40 1[40 1[40 40 -40 1[40 1[40 40 40 40 40 40 40 40 40 40 1[40 2[40 40 -1[40 40 40 40 40 40 1[40 40 40 1[40 40 40 40 40 40 40 -40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 -40 40 33[{TeXBase1Encoding ReEncodeFont}82 66.666664 -/Courier rf /Fg 143[60 3[60 2[60 5[60 60 60 97[{ -TeXBase1Encoding ReEncodeFont}6 100.000000 /Courier rf -/Fh 134[50 2[50 55 33 39 44 1[55 50 55 83 28 55 1[28 -55 50 33 44 55 44 55 50 6[66 3[72 1[66 55 72 1[61 78 -1[94 3[39 2[61 66 72 72 11[50 50 50 50 50 50 50 2[25 -46[{TeXBase1Encoding ReEncodeFont}42 100.000000 /Times-Bold -rf /Fi 4 121 df15 D102 D<12FCEAFFC0EA07F0EA01FCEA -007E7F80131F80130FB3A7801307806D7E6D7EEB007EEC1FF0EC07F8EC1FF0EC7E00495A -495A495A5C130F5CB3A7131F5C133F91C7FC137E485AEA07F0EAFFC000FCC8FC1D537ABD -2A>I<137E3801FFC03807C1E0380F0070001E1338003E131C48130C141E147E5AA3143C -1400A3127CA37E121E7E6C7E6C7EEA00F013FCEA03FF380F8780381F01E0003E13F0EB00 -F848137CA200FC133E5A141FA6127C143F6C133EA26C137CEA0F80000713F83801E1F038 -00FFC0EB3F00130FEB03C0EB01E0EB00F01478147C143EA3141FA3123C127EA3143E1278 -12300038137C6C13786C13F0380783E03803FF8038007E00184C7ABA25>120 -D E /Fj 9 113 df<121C127FEAFF80A5EA7F00121C0909798817>58 -D<1760177017F01601A21603A21607160FA24C7EA216331673166316C3A2ED0183A2ED03 -03150683150C160115181530A21560A215C014011580DA03007FA202061300140E140C5C -021FB5FC5CA20260C7FC5C83495A8349C8FC1306A25BA25B13385B01F01680487E000716 -FFB56C013F13FF5EA2383C7DBB3E>65 D<0103B77E4916F018FC903B0007F80003FE4BEB -00FFF07F80020FED3FC0181F4B15E0A2141FA25DA2143F19C04B143F1980027F157F1900 -92C812FE4D5A4A4A5AEF0FF04AEC1FC005FFC7FC49B612FC5F02FCC7B4FCEF3FC00103ED -0FE0717E5C717E1307844A1401A2130F17035CA2131F4D5A5C4D5A133F4D5A4A4A5A4D5A -017F4BC7FC4C5A91C7EA07FC49EC3FF0B812C094C8FC16F83B397DB83F>I<902603FFF8 -91381FFFF8496D5CA2D90007030113006FEC007C02061678DA0EFF157081020C6D1460A2 -DA1C3F15E0705CEC181F82023815016F6C5C1430150702706D1303030392C7FC02607FA2 -DAE0015C701306ECC0008201016E130EEF800C5C163F0103EDC01C041F131891C713E016 -0F49EDF03818300106140717F8010E02031370EFFC60130CEE01FE011C16E004005B0118 -15FF177F1338600130153FA20170151F95C8FC01F081EA07FCB512E01706A245397DB843 ->78 D<4BB4FC031F13F09238FE01FC913903F0007EDA07C0EB1F80DA1F80EB0FC0023EC7 -EA07E002FCEC03F0495A4948EC01F8495A4948EC00FC495A49C912FE49167E13FE49167F -1201485AA2485AA2120F5B001F17FFA2485AA34848ED01FEA400FFEE03FC90C9FCA2EF07 -F8A2EF0FF0A218E0171F18C0EF3F806C167F180017FE4C5A6C6C5D1603001F4B5A6D4A5A -000FED1F806C6C4AC7FC6D147E0003EC01F8D801FC495AD8007EEB0FC090263F807FC8FC -903807FFF801001380383D7CBA3F>I<0003B812FEA25A903AF8003FC00101C091388000 -7E4848163C90C7007F141C121E001C92C7FCA2485CA200305C007017180060130112E048 -5CA21403C716005DA21407A25DA2140FA25DA2141FA25DA2143FA25DA2147FA292C9FCA2 -5CA25CA21301A25CA21303A25CEB0FFC003FB6FC5AA237397EB831>84 -D107 -D110 D<90390F8003F090391FE00FFC90 -3939F03C1F903A70F8700F80903AE0FDE007C09038C0FF80030013E00001491303018015 -F05CEA038113015CA2D800031407A25CA20107140FA24A14E0A2010F141F17C05CEE3F80 -131FEE7F004A137E16FE013F5C6E485A4B5A6E485A90397F700F80DA383FC7FC90387E1F -FCEC07E001FEC9FCA25BA21201A25BA21203A25B1207B512C0A32C3583A42A>112 -D E /Fk 5 54 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49 -DI<13FF000313C0380F03E0381C00F014F800 -3E13FC147CA2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00 -F01478147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFF -C00001130018227DA01E>I<14E01301A213031307A2130D131D13391331136113E113C1 -EA01811203EA07011206120C121C12181230127012E0B6FCA2380001E0A6EB03F0EB3FFF -A218227DA11E>I<00101330381E01F0381FFFE014C01480EBFE00EA1BF00018C7FCA513 -FE381BFF80381F03C0381C01E0381800F014F8C71278A2147CA21230127812F8A2147848 -13F8006013F0387001E01238381E07803807FF00EA01F816227CA01E>I -E /Fl 133[37 42 42 60 42 46 28 32 37 1[46 42 46 69 23 -46 1[23 46 42 28 37 46 37 46 42 11[60 55 46 60 1[51 65 -60 78 1[65 1[32 65 2[55 60 60 1[60 18[21 28 21 47 40[46 -2[{TeXBase1Encoding ReEncodeFont}44 83.333336 /Times-Bold -rf /Fm 131[50 1[50 50 50 50 50 50 50 50 50 50 50 50 50 -50 50 50 50 50 50 50 50 50 50 50 50 50 3[50 50 50 3[50 -50 50 50 50 50 1[50 50 50 1[50 1[50 50 50 1[50 50 50 -50 50 50 1[50 50 50 50 1[50 1[50 50 50 50 1[50 50 50 -50 50 50 50 50 50 50 50 50 1[50 50 50 2[50 33[{ -TeXBase1Encoding ReEncodeFont}74 83.333336 /Courier rf -/Fn 5 54 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 -D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15 -005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003 -0012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C00 -30137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC3800 -01E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F01 -F03807FFC0C690C7FC19277DA521>I<1438A2147814F81301A2130313071306130C131C -131813301370136013C012011380EA03005A120E120C121C5A12305A12E0B612E0A2C7EA -F800A7497E90383FFFE0A21B277EA621>I<0018130C001F137CEBFFF85C5C1480D819FC -C7FC0018C8FCA7137F3819FFE0381F81F0381E0078001C7F0018133EC7FC80A21580A212 -30127C12FCA3150012F00060133E127000305B001C5B380F03E03803FFC0C648C7FC1927 -7DA521>I E /Fo 136[44 1[33 18 26 26 1[33 33 1[48 1[29 -5[29 22[44 10[44 67[{TeXBase1Encoding ReEncodeFont}12 -66.666664 /Times-Italic rf /Fp 104[66 33 1[29 29 25[33 -33 48 33 33 18 26 22 33 33 33 33 52 18 33 1[18 33 33 -22 29 33 29 33 29 3[22 1[22 41 1[48 63 1[48 41 37 44 -1[37 48 48 59 41 1[26 22 48 1[37 41 48 44 44 48 6[18 -33 33 33 33 33 33 33 33 33 33 1[17 22 17 2[22 22 22 35[37 -37 2[{TeXBase1Encoding ReEncodeFont}70 66.666664 /Times-Roman -rf /Fq 1 4 df<136013701360A20040132000E0137038F861F0387E67E0381FFF803807 -FE00EA00F0EA07FE381FFF80387E67E038F861F038E060700040132000001300A2137013 -6014157B9620>3 D E /Fr 134[37 37 55 37 42 23 32 32 42 -42 42 42 60 23 37 1[23 42 42 23 37 42 37 42 42 8[51 69 -1[60 46 42 51 1[51 60 55 69 46 2[28 60 60 51 51 1[55 -1[51 6[28 42 1[42 3[42 1[42 1[23 21 28 3[28 28 28 35[42 -3[{TeXBase1Encoding ReEncodeFont}54 83.333336 /Times-Italic -rf /Fs 104[83 42 1[37 37 24[37 42 42 60 42 42 23 32 28 -42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 3[28 -1[28 51 60 60 78 60 60 51 46 55 60 46 60 60 74 51 60 -32 28 60 60 46 51 60 55 55 60 5[23 23 42 42 42 42 42 -42 42 42 42 42 23 21 28 21 47 1[28 28 28 1[69 3[28 29[46 -46 2[{TeXBase1Encoding ReEncodeFont}82 83.333336 /Times-Roman -rf /Ft 134[60 60 86 1[66 40 47 53 1[66 60 66 100 33 66 -1[33 66 60 40 53 66 53 66 60 12[80 66 86 8[47 2[73 80 -3[86 6[40 60 60 60 60 60 60 60 60 60 3[40 42[66 2[{ -TeXBase1Encoding ReEncodeFont}41 119.999947 /Times-Bold -rf /Fu 1 4 df<130C131EA50060EB01800078130739FC0C0FC0007FEB3F80393F8C7F00 -3807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807CCF8383F8C7F397F0C3F80 -00FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C9E23>3 -D E /Fv 134[50 50 72 50 1[28 39 33 2[50 50 1[28 50 1[28 -50 50 33 44 50 44 50 44 10[72 1[61 55 66 1[55 1[72 1[61 -2[33 5[66 66 72 92 17[25 1[25 5[78 38[{TeXBase1Encoding ReEncodeFont}35 -100.000000 /Times-Roman rf /Fw 134[72 1[104 1[72 40 56 -48 2[72 72 112 40 72 1[40 1[72 48 64 72 64 1[64 12[88 -80 96 3[104 4[48 4[104 1[96 104 6[40 12[48 45[{ -TeXBase1Encoding ReEncodeFont}28 144.000000 /Times-Roman -rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin - -%%EndSetup -%%Page: 1 1 -1 0 bop 180 161 a Fw(Bro:)43 b(A)36 b(System)e(for)h(Detecting)f(Netw)o -(ork)f(Intruders)h(in)i(Real-T)-5 b(ime)1700 402 y Fv(V)-11 -b(ern)25 b(P)o(axson)854 634 y(La)o(wrence)h(Berk)o(ele)o(y)f(National) -f(Laboratory)-6 b(,)24 b(Berk)o(ele)o(y)-6 b(,)24 b(CA)3045 -598 y Fu(\003)1878 751 y Fv(and)792 867 y(A)-11 b(T&T)24 -b(Center)i(for)f(Internet)g(Research)h(at)f(ICSI,)h(Berk)o(ele)o(y)-6 -b(,)24 b(CA)1650 983 y(v)o(ern@aciri.or)n(g)-150 1309 -y Ft(Abstract)-150 1498 y Fs(W)-7 b(e)36 b(describe)f(Bro,)k(a)c -(stand-alone)f(system)h(for)g(detecting)f(net-)-150 1598 -y(w)o(ork)c(intruders)f(in)i(real-time)e(by)h(passi)n(v)o(ely)g -(monitoring)e(a)j(net-)-150 1698 y(w)o(ork)23 b(link)g(o)o(v)o(er)g -(which)g(the)g(intruder')-5 b(s)23 b(traf)n(\002c)g(transits.)36 -b(W)-7 b(e)24 b(gi)n(v)o(e)-150 1797 y(an)c(o)o(v)o(ervie)n(w)e(of)h -(the)h(system')-5 b(s)20 b(design,)f(which)h(emphasizes)f(high-)-150 -1897 y(speed)30 b(\(FDDI-rate\))f(monitoring,)i(real-time)f -(noti\002cation,)i(clear)-150 1996 y(separation)18 b(between)g -(mechanism)g(and)h(polic)o(y)-5 b(,)18 b(and)g(e)o(xtensibility)-5 -b(.)-150 2096 y(T)e(o)21 b(achie)n(v)o(e)f(these)h(ends,)g(Bro)g(is)h -(di)n(vided)d(into)i(an)g(\223e)n(v)o(ent)f(engine\224)-150 -2196 y(that)e(reduces)f(a)h(k)o(ernel-\002ltered)e(netw)o(ork)g(traf)n -(\002c)i(stream)f(into)h(a)g(se-)-150 2295 y(ries)27 -b(of)f(higher)n(-le)n(v)o(el)f(e)n(v)o(ents,)i(and)f(a)h(\223polic)o(y) -f(script)g(interpreter\224)-150 2395 y(that)33 b(interprets)g(e)n(v)o -(ent)f(handlers)g(written)h(in)h(a)f(specialized)g(lan-)-150 -2495 y(guage)17 b(used)g(to)h(e)o(xpress)g(a)g(site')-5 -b(s)19 b(security)e(polic)o(y)-5 b(.)23 b(Ev)o(ent)17 -b(handlers)-150 2594 y(can)24 b(update)f(state)i(information,)e -(synthesize)h(ne)n(w)g(e)n(v)o(ents,)g(record)-150 2694 -y(information)e(to)i(disk,)g(and)g(generate)e(real-time)i -(noti\002cations)f(via)-150 2793 y Fr(syslo)o(g)p Fs(.)62 -b(W)-7 b(e)34 b(also)f(discuss)g(a)g(number)d(of)j(attacks)f(that)h -(attempt)-150 2893 y(to)25 b(sub)o(v)o(ert)f(passi)n(v)o(e)h -(monitoring)e(systems)j(and)f(defenses)f(against)-150 -2993 y(these,)k(and)f(gi)n(v)o(e)f(particulars)f(of)i(ho)n(w)f(Bro)h -(analyzes)f(the)h(six)g(ap-)-150 3092 y(plications)22 -b(inte)o(grated)e(into)i(it)h(so)g(f)o(ar:)29 b(Finger)m(,)22 -b(FTP)-9 b(,)22 b(Portmapper)m(,)-150 3192 y(Ident,)d(T)-6 -b(elnet)20 b(and)f(Rlogin.)24 b(The)c(system)g(is)h(publicly)d(a)n(v)n -(ailable)h(in)-150 3292 y(source)g(code)h(form.)-150 -3584 y Ft(1)119 b(Intr)n(oduction)-150 3774 y Fs(W)m(ith)31 -b(gro)n(wing)f(Internet)g(connecti)n(vity)f(comes)i(gro)n(wing)e(oppor) -n(-)-150 3873 y(tunities)j(for)e(attack)o(ers)i(to)f(illicitly)h -(access)h(computers)c(o)o(v)o(er)i(the)-150 3973 y(netw)o(ork.)51 -b(The)29 b(problem)e(of)i(detecting)f(such)h(attacks)g(is)h(termed)-150 -4073 y Fr(network)19 b(intrusion)f(detection)p Fs(,)g(a)h(relati)n(v)o -(ely)f(ne)n(w)g(area)h(of)f(security)-150 4172 y(research)29 -b([MHL94)n(].)53 b(W)-7 b(e)31 b(can)e(di)n(vide)g(these)h(systems)g -(into)f(tw)o(o)-150 4272 y(types,)h(those)f(that)g(rely)f(on)g(audit)g -(information)f(gathered)f(by)j(the)-150 4372 y(hosts)19 -b(in)h(the)f(netw)o(ork)e(the)o(y)i(are)g(trying)f(to)h(protect,)f(and) -h(those)f(that)-150 4471 y(operate)24 b(\223stand-alone\224)f(by)h -(observing)f(netw)o(ork)h(traf)n(\002c)h(directly)-5 -b(,)-150 4571 y(and)23 b(passi)n(v)o(ely)-5 b(,)23 b(using)g(a)h(pack)o -(et)f(\002lter)-5 b(.)36 b(There)23 b(is)i(also)f(increasing)-150 -4670 y(interest)29 b(in)f(b)n(uilding)f(hybrid)g(systems)i(that)g -(combine)e(these)h(tw)o(o)-150 4770 y(approaches)18 b([Ax99)n(].)p --150 4850 801 4 v -66 4903 a Fq(\003)-30 4927 y Fp(This)f(paper)h -(appears)h(in)f Fo(Computer)g(Networks)p Fp(,)h(31\(23\22624\),)f(pp.)g -(2435\2262463,)-150 5006 y(14)i(Dec.)h(1999.)31 b(This)20 -b(w)o(ork)g(w)o(as)h(supported)h(by)e(the)h(Director)m(,)i(Of)n(\002ce) -e(of)f(Ener)o(gy)-150 5085 y(Research,)k(Of)n(\002ce)e(of)f -(Computational)k(and)d(T)-5 b(echnology)23 b(Research,)h(Mathemati-) --150 5163 y(cal,)17 b(Information,)i(and)e(Computational)j(Sciences)f -(Di)n(vision)f(of)f(the)g(United)h(States)-150 5242 y(Department)k(of)f -(Ener)o(gy)f(under)h(Contract)i(No.)c(DE-A)m(C03-76SF00098.)32 -b(An)20 b(ear)o(-)-150 5321 y(lier)j(v)o(ersion)g(of)f(this)g(paper)h -(appeared)h(in)e(the)h(Proceedings)h(of)e(the)g(7th)h(USENIX)-150 -5400 y(Security)c(Symposium,)e(San)g(Antonio,)h(TX,)d(January)k(1998.) -2132 1309 y Fs(In)25 b(this)h(paper)e(we)i(focus)f(on)g(the)g(problem)f -(of)h(b)n(uilding)f(stand-)2049 1408 y(alone)15 b(systems,)i(which)e -(we)h(will)h(term)e(\223monitors.)-6 b(\224)22 b(Though)14 -b(mon-)2049 1508 y(itors)28 b(necessarily)g(f)o(ace)g(the)g(dif)n -(\002culties)g(of)g(more)g(limited)g(infor)n(-)2049 1607 -y(mation)35 b(than)g(systems)h(with)f(access)h(to)g(audit)f(trails,)40 -b(monitors)2049 1707 y(also)26 b(gain)f(the)g(major)g(bene\002t)h(that) -f(the)o(y)g(can)h(be)f(added)g(to)h(a)g(net-)2049 1807 -y(w)o(ork)k(without)g(requiring)e(an)o(y)i(changes)f(to)i(the)f(hosts.) -56 b(F)o(or)30 b(our)2049 1906 y(purposes\227monitoring)22 -b(a)k(collection)f(of)h(se)n(v)o(eral)g(thousand)e(het-)2049 -2006 y(erogeneous,)17 b(di)n(v)o(ersely-administered)f(hosts\227this)k -(adv)n(antage)e(is)2049 2106 y(immense.)2132 2211 y(Our)34 -b(monitoring)e(system)j(is)h(called)e(Bro)h(\(an)f(Orwellian)g(re-)2049 -2311 y(minder)f(that)h(monitoring)e(comes)i(hand)f(in)i(hand)e(with)h -(the)g(po-)2049 2410 y(tential)48 b(for)f(pri)n(v)n(ac)o(y)e -(violations\).)106 b(A)48 b(number)e(of)h(commer)n(-)2049 -2510 y(cial)35 b(products)d(e)o(xist)j(that)f(do)g(what)g(Bro)g(does,)k -(generally)32 b(with)2049 2609 y(much)f(more)g(sophisticated)g(interf)o -(aces)g(and)g(management)f(soft-)2049 2709 y(w)o(are)f([In99)n(,)h(T)-7 -b(o99)n(,)30 b(Ci99],)2900 2679 y Fn(1)2968 2709 y Fs(and)f(lar)o(ger)f -(\223attack)h(signature\224)f(li-)2049 2809 y(braries.)51 -b(T)-7 b(o)29 b(our)f(kno)n(wledge,)h(ho)n(we)n(v)o(er)m(,)g(there)g -(are)g(no)f(detailed)2049 2908 y(accounts)c(in)h(the)h(netw)o(ork)d -(security)i(literature)f(of)h(ho)n(w)g(monitors)2049 -3008 y(can)f(be)h(b)n(uilt.)38 b(Furthermore,)23 b(monitors)g(can)i(be) -f(susceptible)g(to)h(a)2049 3108 y(number)j(of)h(attacks)h(aimed)f(at)h -(sub)o(v)o(erting)d(the)j(monitoring;)i(we)2049 3207 -y(belie)n(v)o(e)19 b(the)i(attacks)f(we)h(discuss)f(here)g(ha)n(v)o(e)g -(not)g(been)g(pre)n(viously)2049 3307 y(described)g(in)i(the)g -(literature.)29 b(Thus,)21 b(the)h(contrib)n(ution)d(of)j(this)g(pa-) -2049 3406 y(per)h(is)i(not)e(at)h(heart)f(a)h(no)o(v)o(el)e(idea)h -(\(though)f(we)i(belie)n(v)o(ed)e(it)i(no)o(v)o(el)2049 -3506 y(when)30 b(we)h(undertook)c(the)k(project,)h(in)e(1995\),)h(b)n -(ut)g(rather)e(a)i(de-)2049 3606 y(tailed)i(o)o(v)o(ervie)n(w)d(of)i -(some)h(e)o(xperiences)e(with)h(b)n(uilding)g(such)g(a)2049 -3705 y(system.)2132 3811 y(Prior)16 b(to)g(de)n(v)o(eloping)e(Bro,)j -(we)f(had)g(signi\002cant)g(operational)e(e)o(x-)2049 -3910 y(perience)20 b(with)i(a)g(simpler)g(system)f(based)h(on)f(of)n -(f-line)f(analysis)i(of)2049 4010 y Fm(tcpdump)29 b Fs([JLM89)o(])h -(trace)f(\002les.)55 b(Out)30 b(of)g(this)g(e)o(xperience)e(we)2049 -4110 y(formulated)18 b(a)j(number)d(of)i(design)f(goals)i(and)e -(requirements:)2049 4315 y Fl(High-speed,)h(lar)o(ge)g(v)o(olume)g -(monitoring)40 b Fs(F)o(or)69 b(our)f(en)m(viron-)2215 -4415 y(ment,)20 b(we)h(vie)n(w)f(the)h(greatest)f(source)g(of)g -(threats)h(as)g(e)o(xternal)2215 4515 y(hosts)28 b(connecting)d(to)j -(our)f(hosts)g(o)o(v)o(er)f(the)i(Internet.)46 b(Since)2215 -4614 y(the)28 b(netw)o(ork)f(we)i(w)o(ant)f(to)g(protect)g(has)g(a)h -(single)f(link)f(con-)2215 4714 y(necting)e(it)i(to)g(the)f(remainder)f -(of)h(the)g(Internet)f(\(a)h(\223DMZ\224\),)2215 4814 -y(we)42 b(can)f(economically)f(monitor)g(our)h(greatest)g(potential) -2215 4913 y(source)23 b(of)g(attacks)g(by)g(passi)n(v)o(ely)f(w)o -(atching)h(the)g(DMZ)g(link.)p 2049 5007 V 2134 5061 -a Fk(1)2169 5085 y Fp(Or)18 b(at)h(least)h(appear)m(,)h(according)g(to) -e(their)h(product)g(literature,)i(to)d(do)g(the)h(same)2049 -5163 y(things\227we)f(do)e(not)g(ha)o(v)o(e)h(direct)h(e)o(xperience)h -(with)e(an)o(y)f(of)g(these)h(products.)2115 5242 y(A)h(some)n(what)i -(dif)n(ferent)h(sort)d(of)g(product,)i(the)f(\223Netw)o(ork)h(Flight)g -(Recorder)m(,)-5 b(\224)23 b(is)2049 5321 y(described)d(in)e([RLSSL)-5 -b(W97)o(],)17 b(though)i(it)f(is)g(no)n(w)f(increasingly)k(used)d(for)g -(intrusion)2049 5400 y(detection)i([Ne99)q(].)1929 5649 -y Fs(1)p eop -%%Page: 2 2 -2 1 bop 16 -104 a Fs(Ho)n(we)n(v)o(er)m(,)22 b(the)i(link)f(is)h(an)g -(FDDI)g(ring,)f(so)h(to)g(monitor)e(it)i(re-)16 -5 y(quires)g(a)h -(system)g(that)f(can)h(capture)e(traf)n(\002c)h(at)h(speeds)g(of)f(up) -16 95 y(to)c(100)g(Mbps.)-150 266 y Fl(No)g(pack)o(et)g(\002lter)h(dr)o -(ops)41 b Fs(If)25 b(an)h(application)e(using)h(a)h(pack)o(et)f(\002l-) -16 366 y(ter)20 b(cannot)e(consume)g(pack)o(ets)h(as)i(quickly)d(as)i -(the)o(y)f(arri)n(v)o(e)f(on)16 466 y(the)25 b(monitored)d(link,)j -(then)f(the)h(\002lter)g(will)g(b)n(uf)n(fer)e(the)i(pack-)16 -565 y(ets)g(for)g(later)f(consumption.)36 b(Ho)n(we)n(v)o(er)m(,)24 -b(e)n(v)o(entually)e(the)j(\002l-)16 665 y(ter)30 b(will)g(run)e(out)h -(of)h(b)n(uf)n(fer)m(,)f(at)h(which)f(point)g(it)h Fr(dr)l(ops)f -Fs(an)o(y)16 765 y(further)i(pack)o(ets)g(that)h(arri)n(v)o(e.)60 -b(From)31 b(a)i(security)e(monitor)n(-)16 864 y(ing)25 -b(perspecti)n(v)o(e,)h(drops)e(can)i(completely)e(defeat)h(the)h(mon-) -16 964 y(itoring,)41 b(since)c(the)h(missing)g(pack)o(ets)f(might)g -(contain)f(e)o(x-)16 1063 y(actly)24 b(the)g(interesting)f(traf)n -(\002c)h(that)g(identi\002es)g(a)g(netw)o(ork)f(in-)16 -1163 y(truder)-5 b(.)27 b(Gi)n(v)o(en)21 b(our)f(\002rst)i(design)f -(requirement\227high-speed)16 1263 y(monitoring\227then)c(a)n(v)n -(oiding)i(pack)o(et)h(\002lter)h(drops)f(becomes)16 1362 -y(another)f(strong)g(requirement.)16 1498 y(It)25 b(is)h(sometimes)f -(tempting)f(to)h(dismiss)g(a)h(problem)d(such)i(as)16 -1598 y(pack)o(et)h(\002lter)h(drops)e(with)i(an)f(ar)o(gument)e(that)i -(it)h(is)h(unlik)o(ely)16 1697 y(a)e(traf)n(\002c)g(spik)o(e)f(will)i -(occur)d(at)i(the)g(same)g(time)g(as)g(an)g(attack)16 -1797 y(happens)j(to)h(be)g(underw)o(ay)-5 b(.)52 b(This)31 -b(ar)o(gument,)f(ho)n(we)n(v)o(er)m(,)g(is)16 1896 y(completely)e -(undermined)f(if)j(we)h(assume)e(that)h(an)g(attack)o(er)16 -1996 y(might,)35 b(in)e(parallel)f(with)h(a)h(break-in)d(attempt,)k -Fr(attac)n(k)e(the)16 2096 y(monitor)20 b(itself)33 b -Fs(\(see)20 b(belo)n(w\).)-150 2267 y Fl(Real-time)g(noti\002cation)39 -b Fs(One)50 b(of)f(our)g(main)g(dissatisf)o(actions)16 -2367 y(with)31 b(our)e(initial)i(of)n(f-line)e(system)h(w)o(as)h(the)g -(lengthy)d(delay)16 2467 y(incurred)33 b(before)h(detecting)g(an)h -(attack.)69 b(If)35 b(an)g(attack,)j(or)16 2566 y(an)25 -b(attempted)f(attack,)h(is)h(detected)e(quickly)-5 b(,)24 -b(then)g(it)i(can)f(be)16 2666 y(much)c(easier)h(to)g(trace)g(back)f -(the)h(attack)o(er)f(\(for)g(e)o(xample,)g(by)16 2765 -y(telephoning)d(the)i(site)h(from)d(which)i(the)o(y)f(are)h(coming\),)e -(min-)16 2865 y(imize)35 b(damage,)i(pre)n(v)o(ent)c(further)g -(break-ins,)k(and)d(initiate)16 2965 y(full)28 b(recording)d(of)j(all)h -(of)e(the)h(attack)o(er')-5 b(s)28 b(netw)o(ork)f(acti)n(vity)-5 -b(.)16 3064 y(Therefore,)24 b(one)h(of)g(our)f(requirements)g(for)g -(Bro)h(w)o(as)i(that)e(it)16 3164 y(detect)i(attacks)g(in)g(real-time.) -44 b(This)27 b(is)g(not)g(to)g(discount)f(the)16 3264 -y(enormous)e(utility)i(of)f(k)o(eeping)f(e)o(xtensi)n(v)o(e,)i -(permanent)e(logs)16 3363 y(of)g(netw)o(ork)e(acti)n(vity)i(for)f -(later)h(analysis.)36 b(In)m(v)n(ariably)-5 b(,)21 b(when)16 -3463 y(we)28 b(ha)n(v)o(e)e(suf)n(fered)g(a)h(break-in,)g(we)h(turn)e -(to)i(these)f(logs)g(for)16 3562 y(retrospecti)n(v)o(e)20 -b(damage)g(assessment,)i(sometimes)f(searching)16 3662 -y(back)f(a)g(number)f(of)g(months.)-150 3834 y Fl(Mechanism)i(separate) -f(fr)o(om)f(policy)41 b Fs(Sound)h(softw)o(are)g(design)16 -3933 y(often)29 b(stresses)j(constructing)c(a)i(clear)g(separation)f -(between)16 4033 y(mechanism)g(and)i(polic)o(y;)k(done)29 -b(properly)-5 b(,)31 b(this)g(b)n(uys)f(both)16 4133 -y(simplicity)f(and)g(\003e)o(xibility)-5 b(.)53 b(The)29 -b(problems)f(f)o(aced)h(by)g(our)16 4232 y(system)19 -b(particularly)d(bene\002t)i(from)g(separating)f(the)h(tw)o(o:)25 -b(be-)16 4332 y(cause)32 b(we)f(ha)n(v)o(e)g(a)h(f)o(airly)f(high)g(v)n -(olume)g(of)g(traf)n(\002c)g(to)h(deal)16 4431 y(with,)i(we)d(need)f -(to)h(be)g(able)f(to)h(easily)h(trade-of)n(f)c(at)k(dif)n(fer)n(-)16 -4531 y(ent)19 b(times)g(ho)n(w)g(we)g(\002lter)m(,)g(inspect)g(and)f -(respond)f(to)i(dif)n(ferent)16 4631 y(types)d(of)h(traf)n(\002c.)23 -b(If)16 b(we)h(hardwired)e(these)h(responses)g(into)h(the)16 -4730 y(system,)j(then)g(these)g(changes)g(w)o(ould)f(be)h(cumbersome)e -(\(and)16 4830 y(error)n(-prone\))f(to)j(mak)o(e.)-150 -5001 y Fl(Extensible)42 b Fs(Because)27 b(there)h(are)f(an)h(enormous)e -(number)g(of)h(dif-)16 5101 y(ferent)39 b(netw)o(ork)g(attacks,)45 -b(with)40 b(who)g(kno)n(ws)f(ho)n(w)h(man)o(y)16 5201 -y(w)o(aiting)32 b(to)h(be)g(disco)o(v)o(ered,)g(the)f(system)h(clearly) -f(must)h(be)16 5300 y(designed)17 b(in)h(order)f(to)h(mak)o(e)g(it)h -(easy)f(to)g(add)g(to)g(it)h(kno)n(wledge)16 5400 y(of)25 -b(ne)n(w)g(types)f(of)h(attacks.)40 b(In)24 b(addition,)h(while)g(our)f -(system)2215 -104 y(is)e(a)f(research)f(project,)g(it)i(is)g(at)g(the)f -(same)g(time)g(a)g(production)2215 -5 y(system)30 b(that)h(plays)f(a)g -(signi\002cant)g(role)f(in)i(our)e(daily)h(secu-)2215 -95 y(rity)h(operations.)56 b(Consequently)-5 b(,)31 b(we)g(need)f(to)i -(be)f(able)f(to)2215 194 y(upgrade)18 b(it)j(in)f(small,)h(easily)f -(deb)n(ugged)e(increments.)2049 394 y Fl(A)-8 b(v)o(oid)20 -b(simple)h(mistak)o(es)42 b Fs(Of)19 b(course,)g(we)g(al)o(w)o(ays)h(w) -o(ant)f(to)h(a)n(v)n(oid)2215 493 y(mistak)o(es.)36 b(Ho)n(we)n(v)o(er) -m(,)23 b(here)g(we)i(mean)e(that)h(we)g(particularly)2215 -593 y(desire)k(that)g(the)g(w)o(ay)g(that)g(a)h(site)g(de\002nes)f(its) -h(security)e(pol-)2215 693 y(ic)o(y)22 b(be)g(both)f(clear)h(and)f(as)i -(error)n(-free)c(as)k(possible.)30 b(\(F)o(or)21 b(e)o(x-)2215 -792 y(ample,)j(we)g(w)o(ould)f(not)g(consider)f(e)o(xpressing)g(the)i -(polic)o(y)e(in)2215 892 y(C)f(code)f(as)h(meeting)e(these)h(goals.\)) -2049 1091 y Fl(The)h(monitor)f(will)h(be)g(attack)o(ed)40 -b Fs(W)-7 b(e)18 b(must)f(assume)h(that)f(attack-)2215 -1191 y(ers)30 b(will)h(\(e)n(v)o(entually\))c(ha)n(v)o(e)i(full)h(kno)n -(wledge)e(of)h(the)h(tech-)2215 1290 y(niques)j(used)g(by)g(the)h -(monitor)m(,)g(and)f(access)h(to)g(its)g(source)2215 -1390 y(code,)29 b(and)f(will)h(use)g(this)g(kno)n(wledge)d(in)i -(attempts)h(to)f(sub-)2215 1490 y(v)o(ert)c(or)h(o)o(v)o(erwhelm)d(the) -j(monitor)e(so)i(that)g(it)g(f)o(ails)h(to)f(detect)2215 -1589 y(the)18 b(attack)o(er')-5 b(s)17 b(break-in)f(acti)n(vity)-5 -b(.)23 b(This)18 b(assumption)f(signi\002-)2215 1689 -y(cantly)f(complicates)g(the)h(design)f(of)h(the)g(monitor;)f(b)n(ut)h -(f)o(ailing)2215 1788 y(to)j(address)g(it)h(is)g(to)g(b)n(uild)e(a)i -(house)e(of)h(cards.)2215 1938 y(W)-7 b(e)22 b(do,)f(ho)n(we)n(v)o(er)m -(,)e(allo)n(w)i(one)g(further)f(assumption,)g(namely)2215 -2038 y(that)34 b Fr(the)f(monitor)h(will)g(only)f(be)h(attac)n(k)o(ed)f -(fr)l(om)h(one)f(end)p Fs(.)2215 2137 y(That)c(is,)k(gi)n(v)o(en)28 -b(a)i(netw)o(ork)f(connection)e(between)i(hosts)h Fj(A)2215 -2237 y Fs(and)21 b Fj(B)t Fs(,)h(we)g(assume)f(that)g(at)h(most)g(one)e -(of)h Fj(A)i Fs(or)e Fj(B)26 b Fs(has)21 b(been)2215 -2336 y(compromised)k(and)i(might)g(try)h(to)g(attack)f(the)h(monitor)m -(,)g(b)n(ut)2215 2436 y(not)c(both.)37 b(This)25 b(assumption)e -(greatly)h(aids)g(in)h(dealing)e(with)2215 2536 y(the)29 -b(problem)d(of)i(attacks)h(on)f(the)h(monitor)m(,)f(since)h(it)g(means) -2215 2635 y(that)g Fr(we)i(can)d(trust)j(one)d(of)i(the)f(endpoints)f -Fs(\(though)f(we)j(do)2215 2735 y(not)20 b(kno)n(w)f(which\).)2215 -2884 y(In)26 b(addition,)g(we)g(note)f(that)i(this)f(second)f -(assumption)g(costs)2215 2984 y(us)17 b(virtually)e(nothing.)22 -b(If,)17 b(indeed,)f(both)g Fj(A)h Fs(and)f Fj(B)21 b -Fs(ha)n(v)o(e)16 b(been)2215 3084 y(compromised,)28 b(then)g(the)h -(attack)o(er)g(can)f(establish)h(intricate)2215 3183 -y(co)o(v)o(ert)19 b(channels)g(between)h(the)g(tw)o(o.)25 -b(These)20 b(can)g(be)g(immea-)2215 3283 y(surably)27 -b(hard)g(to)i(detect,)h(depending)25 b(on)j(ho)n(w)g(de)n(vious)f(the) -2215 3383 y(channel)18 b(is;)i(that)f(our)e(system)i(f)o(ails)h(to)f -(do)f(so)h(only)f(means)g(we)2215 3482 y(gi)n(v)o(e)h(up)h(on)g -(something)f(e)o(xtremely)f(dif)n(\002cult)i(an)o(yw)o(ay)-5 -b(.)2132 3698 y(A)28 b(\002nal)g(important)f(point)g(concerns)f(the)i -(broader)e(conte)o(xt)g(for)2049 3798 y(our)20 b(monitoring)e(system.) -27 b(Our)21 b(site)g(is)h(engaged)c(in)j(basic,)g(unclas-)2049 -3897 y(si\002ed)k(research.)37 b(The)24 b(consequences)f(of)h(a)h -(break-in)e(are)h(usually)2049 3997 y(limited)31 b(to)g(\(potentially)f -(signi\002cant\))g(e)o(xpenditure)e(in)k(lost)f(time)2049 -4097 y(and)d(re-securing)e(the)j(compromised)d(machines,)j(and)f -(perhaps)f(a)2049 4196 y(tarnished)20 b(public)g(image)h(depending)d -(on)j(the)g(subsequent)f(actions)2049 4296 y(of)g(the)g(attack)o(ers.) -25 b(Thus,)20 b(while)g(we)h(v)o(ery)e(much)h(aim)g(to)g(minimize)2049 -4395 y(break-in)d(acti)n(vity)-5 b(,)19 b(we)g(do)g(not)f(try)h(to)h -(achie)n(v)o(e)e(\223airtight\224)g(security)-5 b(.)2049 -4495 y(W)e(e)18 b(instead)f(emphasize)f(monitoring)f(o)o(v)o(er)h -(blocking)f(when)i(possi-)2049 4595 y(ble.)31 b(Ob)o(viously)-5 -b(,)20 b(other)h(sites)j(may)d(ha)n(v)o(e)h(quite)g(dif)n(ferent)e -(security)2049 4694 y(priorities,)f(which)h(we)h(do)e(not)h(claim)g(to) -h(address.)2132 4802 y(In)i(the)h(remainder)e(of)h(this)h(paper)f(we)h -(discuss)g(ho)n(w)f(the)g(design)2049 4902 y(of)d(Bro)h(attempts)f(to)h -(meet)f(these)h(goals)f(and)g(constraints.)25 b(First,)c(in)2049 -5001 y Fi(x)d Fs(2)g(we)g(gi)n(v)o(e)e(an)i(o)o(v)o(ervie)n(w)d(of)j -(the)f(structure)g(of)g(the)h(whole)f(system.)2049 5101 -y Fi(x)23 b Fs(3)f(presents)g(the)h(specialized)f Fm(Bro)g -Fs(language)f(used)h(to)g(e)o(xpress)g(a)2049 5201 y(site')-5 -b(s)21 b(security)e(polic)o(y)-5 b(.)23 b(W)-7 b(e)20 -b(turn)f(in)h Fi(x)g Fs(4)f(to)h(the)g(details)f(of)h(ho)n(w)f(the)2049 -5300 y(system)29 b(is)h(currently)e(implemented.)49 b -Fi(x)30 b Fs(5)f(discusses)h(attacks)f(on)2049 5400 y(the)23 -b(monitoring)e(system.)33 b Fi(x)24 b Fs(6)f(looks)f(at)i(the)f -(specialized)g(analysis)1929 5649 y(2)p eop -%%Page: 3 3 -3 2 bop 175 -187 a - 10656645 18968821 0 0 33285570 59269365 startTexFig - 175 -187 a -%%BeginDocument: structure.eps -%Magnification: 1.00 -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --142.0 971.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -n 0 79200 m 0 0 l 61200 0 l 61200 79200 l cp clip - 0.06000 0.06000 sc -7.500 slw -% Polyline -n 2385 5385 m 10785 5385 l 10785 3585 l 2385 3585 l cp gs col-1 s gr -% Polyline -n 2385 8940 m 10785 8940 l 10785 7140 l 2385 7140 l cp gs col-1 s gr -60.000 slw -% Polyline -gs clippath -6435 13410 m 6585 12690 l 6735 13410 l 6735 12480 l 6435 12480 l cp clip -n 6585 14355 m 6585 12555 l gs col7 0.95 shd ef gr gs col-1 s gr gr - -% arrowhead -n 6435 13410 m 6585 12690 l 6735 13410 l 6585 13290 l 6435 13410 l cp gs 0.00 setgray ef gr col-1 s -7.500 slw -% Polyline -n 2385 12555 m 10785 12555 l 10785 10755 l 2385 10755 l cp gs col-1 s gr -45.000 slw -% Polyline -gs clippath -6465 9624 m 6585 9048 l 6705 9624 l 6705 8880 l 6465 8880 l cp clip -n 6585 10740 m 6585 8940 l gs col7 0.95 shd ef gr gs col-1 s gr gr - -% arrowhead -n 6465 9624 m 6585 9048 l 6705 9624 l 6585 9528 l 6465 9624 l cp gs 0.00 setgray ef gr col-1 s -30.000 slw -% Polyline -gs clippath -6495 5898 m 6585 5466 l 6675 5898 l 6675 5340 l 6495 5340 l cp clip -n 6585 7185 m 6585 5385 l gs col7 0.95 shd ef gr gs col-1 s gr gr - -% arrowhead -n 6495 5898 m 6585 5466 l 6675 5898 l 6585 5826 l 6495 5898 l cp gs 0.00 setgray ef gr col-1 s -15.000 slw -% Polyline -gs clippath -6540 1542 m 6600 1254 l 6660 1542 l 6660 1170 l 6540 1170 l cp clip -n 6600 3600 m 6600 1200 l gs col7 0.95 shd ef gr gs col-1 s gr gr - -% arrowhead -n 6540 1542 m 6600 1254 l 6660 1542 l 6600 1494 l 6540 1542 l cp gs 0.00 setgray ef gr col-1 s -% Polyline - [100.0] 0 sd -gs clippath -3060 10506 m 3000 10746 l 2940 10506 l 2940 10830 l 3060 10830 l cp clip -n 3000 9000 m 3000 10800 l gs col7 0.95 shd ef gr gs col-1 s gr gr - [] 0 sd -% arrowhead -n 3060 10506 m 3000 10746 l 2940 10506 l 3000 10506 l 3060 10506 l cp gs col7 1.00 shd ef gr col-1 s -% Polyline - [100.0] 0 sd -gs clippath -3060 6906 m 3000 7146 l 2940 6906 l 2940 7230 l 3060 7230 l cp clip -n 3000 5400 m 3000 7200 l gs col7 0.95 shd ef gr gs col-1 s gr gr - [] 0 sd -% arrowhead -n 3060 6906 m 3000 7146 l 2940 6906 l 3000 6906 l 3060 6906 l cp gs col7 1.00 shd ef gr col-1 s -% Polyline - [100.0] 0 sd -gs clippath -3060 3306 m 3000 3546 l 2940 3306 l 2940 3630 l 3060 3630 l cp clip -n 3000 1200 m 3000 3600 l gs col7 0.95 shd ef gr gs col-1 s gr gr - [] 0 sd -% arrowhead -n 3060 3306 m 3000 3546 l 2940 3306 l 3000 3306 l 3060 3306 l cp gs col7 1.00 shd ef gr col-1 s -7.500 slw -% Polyline -n 2385 14355 m 10785 14355 l 10785 16155 l 2385 16155 l cp gs col7 0.50 shd ef gr gs col-1 s gr -/Helvetica-Bold ff 540.00 scf sf -5520 15442 m -gs 1 -1 sc (Network) col-1 sh gr -/Helvetica ff 360.00 scf sf -6885 6405 m -gs 1 -1 sc (Event stream) col-1 sh gr -/Helvetica ff 360.00 scf sf -6855 2835 m -gs 1 -1 sc (Record to disk) col-1 sh gr -/Helvetica ff 360.00 scf sf -6825 2265 m -gs 1 -1 sc (Real-time notification) col-1 sh gr -/Helvetica ff 360.00 scf sf -6885 9960 m -gs 1 -1 sc (Filtered packet stream) col-1 sh gr -/Times-Bold ff 540.00 scf sf -6615 8220 m -gs 1 -1 sc (Event Engine) dup sw pop 2 div neg 0 rm col-1 sh gr -/Helvetica ff 360.00 scf sf -3210 2505 m -gs 1 -1 sc (Policy script) col-1 sh gr -/Helvetica ff 360.00 scf sf -3210 6405 m -gs 1 -1 sc (Event control) col-1 sh gr -/Helvetica ff 360.00 scf sf -3210 10005 m -gs 1 -1 sc (Tcpdump filter) col-1 sh gr -/Helvetica ff 360.00 scf sf -6885 13575 m -gs 1 -1 sc (Packet stream) col-1 sh gr -/Times-Bold ff 540.00 scf sf -6615 4665 m -gs 1 -1 sc (Policy Script Interpreter) dup sw pop 2 div neg 0 rm col-1 sh gr -/Courier-Bold ff 540.00 scf sf -6615 11835 m -gs 1 -1 sc (libpcap) dup sw pop 2 div neg 0 rm col-1 sh gr -$F2psEnd -rs -%%EndDocument - - endTexFig - 220 2398 a Fs(Figure)19 b(1:)25 b(Structure)20 b(of)f(the)i(Bro)f -(system)-150 2675 y(Bro)d(does)h(for)e(six)i(Internet)e(applications:) -23 b(FTP)-9 b(,)17 b(Finger)m(,)g(Portmap-)-150 2775 -y(per)m(,)22 b(Ident,)g(T)-6 b(elnet)22 b(and)g(Rlogin.)31 -b Fi(x)23 b Fs(7)g(gi)n(v)o(es)f(the)g(status)h(of)f(the)h(im-)-150 -2874 y(plementation)i(and)i(our)g(e)o(xperiences)e(with)j(it,)h -(including)d(a)h(brief)-150 2974 y(assessment)d(of)g(its)g -(performance.)33 b Fi(x)24 b Fs(8)g(of)n(fers)e(some)i(thoughts)e(on) --150 3074 y(future)28 b(directions.)51 b(Finally)-5 b(,)30 -b(an)f(Appendix)e(illustrates)j(ho)n(w)f(the)-150 3173 -y(dif)n(ferent)21 b(elements)h(of)g(the)g(system)h(come)e(together)g -(for)h(monitor)n(-)-150 3273 y(ing)e(Finger)f(traf)n(\002c.)-150 -3580 y Ft(2)119 b(Structur)n(e)31 b(of)f(the)g(system)-150 -3775 y Fs(Bro)e(is)g(conceptually)e(di)n(vided)g(into)h(an)h(\223e)n(v) -o(ent)f(engine\224)f(that)i(re-)-150 3874 y(duces)15 -b(a)g(stream)h(of)f(\(\002ltered\))f(pack)o(ets)h(to)g(a)h(stream)f(of) -g(higher)n(-le)n(v)o(el)-150 3974 y(netw)o(ork)i(e)n(v)o(ents,)i(and)f -(an)g(interpreter)f(for)h(a)h(specialized)f(language)-150 -4074 y(that)25 b(is)i(used)e(to)g(e)o(xpress)g(a)h(site')-5 -b(s)26 b(security)f(polic)o(y)-5 b(.)39 b(More)25 b(gener)n(-)-150 -4173 y(ally)-5 b(,)20 b(the)g(system)h(is)g(structured)e(in)i(layers,)f -(as)h(sho)n(wn)e(in)i(Figure)f(1.)-150 4273 y(The)26 -b(lo)n(wer)n(-most)f(layers)h(process)g(the)h(greatest)f(v)n(olume)f -(of)h(data,)-150 4373 y(and)20 b(hence)f(must)i(limit)g(the)f(w)o(ork)g -(performed)d(to)k(a)g(minimum.)j(As)-150 4472 y(we)i(go)g(higher)e(up)h -(through)f(the)i(layers,)g(the)g(data)g(stream)g(dimin-)-150 -4572 y(ishes,)g(allo)n(wing)d(for)g(more)h(processing)f(per)g(data)h -(item.)38 b(This)24 b(ba-)-150 4671 y(sic)h(design)f(re\003ects)h(the)g -(need)f(to)h(conserv)o(e)e(processing)g(as)j(much)-150 -4771 y(as)i(possible,)h(in)f(order)e(to)i(meet)f(the)h(goals)f(of)h -(monitoring)d(high-)-150 4871 y(speed,)20 b(lar)o(ge)f(v)n(olume)g -(traf)n(\002c)h(\003o)n(ws)g(without)g(dropping)d(pack)o(ets.)-150 -5135 y Fh(2.1)99 b Fg(libpcap)-150 5300 y Fs(From)18 -b(the)h(perspecti)n(v)o(e)f(of)g(the)h(rest)h(of)f(the)g(system,)g -(just)g(abo)o(v)o(e)f(the)-150 5400 y(netw)o(ork)24 b(itself)i(is)g -Fm(libpcap)e Fs([MLJ94)n(],)j(the)e(pack)o(et-capture)d(li-)2049 --104 y(brary)j(used)h(by)g Fm(tcpdump)f Fs([JLM89)o(].)43 -b(Using)26 b Fm(libpcap)f Fs(gains)2049 -5 y(signi\002cant)34 -b(adv)n(antages:)51 b(it)35 b(isolates)g(Bro)f(from)f(details)i(of)f -(the)2049 95 y(netw)o(ork)k(link)g(technology)f(\(Ethernet,)42 -b(FDDI,)d(SLIP)-9 b(,)39 b(etc.\);)48 b(it)2049 194 y(greatly)21 -b(aids)h(in)g(porting)f(Bro)g(to)i(dif)n(ferent)d(Unix)h(v)n(ariants)g -(\(which)2049 294 y(also)28 b(mak)o(es)f(it)h(easier)f(to)h(upgrade)d -(to)j(f)o(aster)f(hardw)o(are)f(as)i(it)g(be-)2049 394 -y(comes)34 b(a)n(v)n(ailable\);)41 b(and)34 b(it)h(means)f(that)g(Bro)h -(can)f(also)h(operate)2049 493 y(on)c Fm(tcpdump)f Fs(sa)n(v)o(e)h -(\002les,)k(making)29 b(of)n(f-line)h(de)n(v)o(elopment)e(and)2049 -593 y(analysis)20 b(easy)-5 b(.)2132 693 y(Another)24 -b(major)g(adv)n(antage)f(of)h Fm(libpcap)h Fs(is)g(that)g(if)h(the)f -(host)2049 792 y(operating)41 b(system)i(pro)o(vides)e(a)i(suf)n -(\002ciently)e(po)n(werful)g(k)o(ernel)2049 892 y(pack)o(et)32 -b(\002lter)m(,)k(such)d(as)h(BPF)g([MJ93)o(],)i(then)d -Fm(libpcap)f Fs(do)n(wn-)2049 992 y(loads)18 b(the)f(\002lter)h(used)g -(to)g(reduce)e(the)i(traf)n(\002c)f(into)h(the)g(k)o(ernel.)23 -b(Con-)2049 1091 y(sequently)-5 b(,)17 b(rather)g(than)h(ha)n(ving)g -(to)g(haul)g(e)n(v)o(ery)f(pack)o(et)h(up)g(to)h(user)n(-)2049 -1191 y(le)n(v)o(el)30 b(merely)f(so)i(the)f(majority)f(can)h(be)g -(discarded)f(\(if)h(the)g(\002lter)2049 1291 y(accepts)e(only)g(a)h -(small)f(proportion)e(of)i(the)g(traf)n(\002c\),)i(the)e(rejected)2049 -1390 y(pack)o(ets)d(can)f(instead)h(be)g(discarded)e(in)i(the)g(k)o -(ernel,)g(without)f(suf-)2049 1490 y(fering)i(a)i(conte)o(xt)e(switch)h -(or)g(data)h(cop)o(ying.)44 b(W)m(inno)n(wing)26 b(do)n(wn)2049 -1589 y(the)c(pack)o(et)g(stream)g(as)h(soon)f(as)g(possible)g(greatly)g -(abets)g(monitor)n(-)2049 1689 y(ing)e(at)h(high)e(speeds)h(without)f -(losing)h(pack)o(ets.)2132 1789 y(The)26 b(k)o(e)o(y)g(to)h(pack)o(et)f -(\002ltering)g(is,)j(of)d(course,)h(judicious)e(selec-)2049 -1889 y(tion)e(of)f(which)g(pack)o(ets)h(to)g(k)o(eep)f(and)h(which)f -(to)h(discard.)32 b(F)o(or)23 b(the)2049 1988 y(application)17 -b(protocols)f(that)j(Bro)f(kno)n(ws)f(about,)h(it)h(captures)e(e)n(v)o -(ery)2049 2088 y(pack)o(et,)25 b(so)g(it)g(can)f(analyze)g(ho)n(w)g -(the)g(application)f(is)j(being)d(used.)2049 2187 y(In)d -Fm(tcpdump)p Fs(')-5 b(s)20 b(\002ltering)f(language,)g(this)h(looks)g -(lik)o(e:)2208 2351 y Ff(port)40 b(finger)f(or)g(port)g(ftp)h(or)f(tcp) -h(port)f(113)g(or)2208 2430 y(port)h(telnet)f(or)g(port)g(login)h(or)f -(port)g(111)2049 2613 y Fs(That)34 b(is,)k(the)c(\002lter)h(accepts)f -(an)o(y)f(TCP)i(pack)o(ets)f(with)g(a)g(source)2049 2713 -y(or)g(destination)f(port)g(of)h(79)g(\(Finger\),)i(21)d(\(FTP\),)h -(113)f(\(Ident\),)2049 2813 y(23)18 b(\(T)-6 b(elnet\),)17 -b(513)g(\(Rlogin\),)g(and)h(an)o(y)f(TCP)i(or)f(UDP)h(pack)o(ets)e -(with)2049 2912 y(a)g(source)f(or)g(destination)f(port)h(of)g(111)g -(\(Portmapper\).)21 b(In)16 b(addition,)2049 3012 y(Bro)k(uses:)2208 -3175 y Ff(tcp[13])39 b(&)h(7)g(!=)f(0)2049 3359 y Fs(to)19 -b(capture)f(an)o(y)g(TCP)i(pack)o(ets)e(with)h(the)g(SYN,)g(FIN,)g(or)g -(RST)g(con-)2049 3458 y(trol)i(bits)g(set.)27 b(These)21 -b(pack)o(ets)f(delimit)h(the)f(be)o(ginning)f(\(SYN\))h(and)2049 -3558 y(end)f(\(FIN)g(or)h(RST\))g(of)f(each)g(TCP)i(connection.)h -(Because)e(TCP/IP)2049 3658 y(pack)o(et)i(headers)g(contain)f -(considerable)g(information)f(about)i(each)2049 3757 -y(TCP)36 b(connection,)i(from)c(just)i(these)g(control)e(pack)o(ets)i -(one)f(can)2049 3857 y(e)o(xtract)30 b(connection)e(start)j(time,)j -(duration,)d(participating)e(hosts,)2049 3957 y(ports)15 -b(\(and)g(hence,)g(generally)-5 b(,)15 b(the)g(application)f -(protocol\),)h(and)g(the)2049 4056 y(number)24 b(of)h(bytes)h(sent)g -(in)f(each)h(direction.)40 b(Thus,)26 b(by)f(capturing)2049 -4156 y(on)f(the)g(order)f(of)i(only)e(4)h(pack)o(ets)h(\(the)f(tw)o(o)g -(initial)h(SYN)g(pack)o(ets)2049 4255 y(e)o(xchanged,)30 -b(and)g(the)g(\002nal)h(tw)o(o)g(FIN)f(pack)o(ets)g(e)o(xchanged\),)g -(we)2049 4355 y(can)c(determine)f(a)i(great)f(deal)g(about)g(a)h -(connection)d(e)n(v)o(en)h(though)2049 4455 y(we)c(\002lter)f(out)g -(all)h(of)f(its)h(data)f(pack)o(ets.)2132 4555 y(The)g(\002nal)g -(\002lter)h(we)f(use)h(is:)2208 4718 y Ff(ip[6:2])39 -b(&)h(0x3fff)f(!=)g(0)2049 4902 y Fs(which)f(captures)g(IP)i -(fragments,)i(necessary)c(for)g(sound)g(traf)n(\002c)2049 -5001 y(analysis,)21 b(and)g(also)g(to)h(protect)e(against)h(particular) -e(attacks)j(on)f(the)2049 5101 y(monitoring)d(system)i -Fi(x)h Fs(5.3.)2132 5201 y(When)j(using)f(a)i(pack)o(et)e(\002lter)m(,) -i(one)e(must)h(also)g(choose)f(a)i Fr(snap-)2049 5300 -y(shot)37 b(length)p Fs(,)j(which)c(determines)g(ho)n(w)h(much)f(of)g -(each)h(pack)o(et)2049 5400 y(should)20 b(be)g(captured.)25 -b(F)o(or)20 b(e)o(xample,)f(by)h(def)o(ault)g Fm(tcpdump)g -Fs(uses)1929 5649 y(3)p eop -%%Page: 4 4 -4 3 bop -150 -104 a Fs(a)20 b(snapshot)e(length)g(of)h(68)g(bytes,)g -(which)f(suf)n(\002ces)i(to)f(capture)f(link-)-150 -5 -y(layer)g(and)g(TCP/IP)i(headers,)e(b)n(ut)h(generally)e(discards)h -(most)h(of)g(the)-150 95 y(data)j(in)h(the)f(pack)o(et.)32 -b(The)22 b(smaller)g(the)h(snapshot)e(length,)h(the)g(less)-150 -194 y(data)e(per)f(accepted)g(pack)o(et)g(needs)h(to)g(copied)e(up)i -(to)g(the)g(user)n(-le)n(v)o(el)-150 294 y(by)29 b(the)g(pack)o(et)g -(\002lter)m(,)i(which)d(aids)i(in)f(accelerating)f(pack)o(et)h(pro-) --150 394 y(cessing)j(and)g(a)n(v)n(oiding)f(loss.)61 -b(On)32 b(the)g(other)f(hand,)j(to)e(analyze)-150 493 -y(connections)14 b(at)i(the)g(application)e(le)n(v)o(el,)i(Bro)g -(requires)f(the)h(full)g(data)-150 593 y(contents)25 -b(of)h(each)g(pack)o(et.)42 b(Consequently)-5 b(,)25 -b(it)i(sets)g(the)f(snapshot)-150 693 y(length)19 b(to)i(capture)e -(entire)h(pack)o(ets.)-150 945 y Fh(2.2)99 b(Ev)o(ent)26 -b(engine)-150 1105 y Fs(The)21 b(resulting)g(\002ltered)g(pack)o(et)g -(stream)h(is)g(then)g(handed)e(up)h(to)h(the)-150 1205 -y(ne)o(xt)g(layer)m(,)g(the)h(Bro)g(\223e)n(v)o(ent)f(engine.)-6 -b(\224)32 b(This)22 b(layer)h(\002rst)g(performs)-150 -1305 y(se)n(v)o(eral)d(inte)o(grity)g(checks)h(to)g(assure)g(that)g -(the)g(pack)o(et)f(headers)h(are)-150 1404 y(well-formed,)d(including)g -(v)o(erifying)f(the)j(IP)h(header)d(checksum.)24 b(If)-150 -1504 y(these)e(checks)g(f)o(ail,)h(then)e(Bro)h(generates)g(an)g(e)n(v) -o(ent)f(indicating)g(the)-150 1604 y(problem)h(and)h(discards)h(the)f -(pack)o(et.)35 b(It)24 b(is)h(also)f(at)g(this)g(point)f(that)-150 -1703 y(Bro)29 b(reassembles)g(IP)h(fragments)d(so)j(it)g(can)f(then)f -(analyze)g(com-)-150 1803 y(plete)20 b(IP)h(datagrams.)-67 -1905 y(If)37 b(the)h(checks)f(succeed,)k(then)c(the)g(e)n(v)o(ent)g -(engine)f(looks)h(up)-150 2005 y(the)f(connection)f(state)i(associated) -f(with)g(the)h(tuple)f(of)g(the)g(tw)o(o)-150 2104 y(IP)30 -b(addresses)g(and)f(the)h(tw)o(o)g(TCP)h(or)f(UDP)g(port)f(numbers,)i -(cre-)-150 2204 y(ating)22 b(ne)n(w)g(state)i(if)f(none)e(already)g(e)o -(xists.)33 b(It)23 b(then)f(dispatches)g(the)-150 2304 -y(pack)o(et)32 b(to)g(a)h(handler)e(for)h(the)g(corresponding)d -(connection)h(\(de-)-150 2403 y(scribed)24 b(shortly\).)35 -b(Bro)25 b(maintains)e(a)i Fm(tcpdump)e Fs(trace)i(\002le)f(asso-)-150 -2503 y(ciated)i(with)g(the)f(traf)n(\002c)h(it)g(sees.)43 -b(The)25 b(connection)f(handler)g(indi-)-150 2603 y(cates)17 -b(upon)f(return)f(whether)h(the)h(engine)f(should)g(record)f(the)i -(entire)-150 2702 y(pack)o(et)j(to)h(the)f(trace)h(\002le,)g(just)g -(its)h(header)m(,)c(or)j(nothing)e(at)i(all.)26 b(This)-150 -2802 y(triage)f(trades)g(of)n(f)f(the)h(completeness)f(of)h(the)g(traf) -n(\002c)g(trace)g(v)o(ersus)-150 2901 y(its)h(size)g(and)f(time)h -(spent)f(generating)e(the)i(trace.)41 b(Generally)-5 -b(,)24 b(Bro)-150 3001 y(records)f(full)h(pack)o(ets)g(if)h(it)g -(analyzed)e(the)h(entire)g(pack)o(et;)i(just)f(the)-150 -3101 y(header)16 b(if)h(it)h(only)e(analyzed)f(the)i(pack)o(et)f(for)h -(SYN/FIN/RST)g(com-)-150 3200 y(putations;)j(and)h(skips)g(recording)e -(the)h(pack)o(et)h(if)g(it)h(did)e(not)h(do)f(an)o(y)-150 -3300 y(processing)f(on)h(it.)-67 3402 y(W)-7 b(e)25 b(no)n(w)e(gi)n(v)o -(e)g(an)h(o)o(v)o(ervie)n(w)e(of)h(general)g(processing)f(done)h(for) --150 3502 y(TCP)28 b(and)f(UDP)h(pack)o(ets.)46 b(In)27 -b(both)g(cases,)i(the)f(processing)e(ends)-150 3601 y(with)j(in)m(v)n -(oking)d(a)j(handler)e(to)i(process)f(the)g(data)g(payload)f(of)i(the) --150 3701 y(pack)o(et.)24 b(F)o(or)c(applications)e(kno)n(wn)g(to)i -(Bro,)g(this)g(results)g(in)g(further)-150 3801 y(analysis,)g(as)g -(discussed)f(in)h Fi(x)g Fs(6.)25 b(F)o(or)19 b(other)g(applications,)g -(analysis)-150 3900 y(ends)h(at)h(this)f(point.)-67 4003 -y Fl(TCP)41 b(pr)o(ocessing)o(.)87 b Fs(F)o(or)40 b(each)h(TCP)g(pack)o -(et,)k(the)c(connec-)-150 4102 y(tion)25 b(handler)e(\(a)i(C++)h -(virtual)e(function\))f(v)o(eri\002es)i(that)g(the)g(entire)-150 -4202 y(TCP)c(header)e(is)j(present)d(and)h(v)n(alidates)g(the)h(TCP)g -(checksum)e(o)o(v)o(er)-150 4301 y(the)30 b(pack)o(et)g(header)f(and)h -(payload.)53 b(If)30 b(successful,)j(it)e(then)e(tests)-150 -4401 y(whether)23 b(the)g(TCP)i(header)e(includes)g(an)o(y)g(of)g(the)h -(SYN/FIN/RST)-150 4501 y(control)35 b(\003ags,)41 b(and)36 -b(if)h(so)g(adjusts)g(the)f(connection')-5 b(s)35 b(state)j(ac-)-150 -4600 y(cordingly)-5 b(.)46 b(Finally)-5 b(,)29 b(it)f(processes)g(an)o -(y)f(data)h(ackno)n(wledgement)-150 4700 y(present)23 -b(in)h(the)f(header)m(,)g(and)g(then)g(in)m(v)n(ok)o(es)f(a)i(handler)e -(to)i(process)-150 4800 y(the)c(payload)f(data,)h(if)g(an)o(y)-5 -b(.)-67 4902 y(Dif)n(ferent)28 b(changes)g(in)i(the)f(connection')-5 -b(s)28 b(state)i(generate)e(dif-)-150 5001 y(ferent)42 -b(e)n(v)o(ents.)93 b(When)43 b(the)g(initial)h(SYN)g(pack)o(et)e -(requesting)-150 5101 y(a)37 b(connection)e(is)j(seen,)j(the)c(e)n(v)o -(ent)f(engine)g(schedules)g(a)i(timer)-150 5201 y(for)i -Fj(T)52 b Fs(seconds)40 b(in)g(the)h(future)e(\(presently)-5 -b(,)43 b(\002)n(v)o(e)e(minutes\);)49 b(if)-150 5300 -y(the)h(timer)g(e)o(xpires)g(and)f(the)i(connection)d(has)i(not)g -(changed)-150 5400 y(state,)23 b(then)e(the)h(engine)f(generates)g(a)h -Fm(connection)p 1479 5400 25 4 v 28 w(attempt)2049 -104 -y Fs(e)n(v)o(ent.)125 b(If)54 b(before)f(that)h(time,)62 -b(ho)n(we)n(v)o(er)m(,)e(the)54 b(other)f(con-)2049 -5 -y(nection)g(endpoint)f(replies)h(with)h(a)g(correct)f(SYN)h(ackno)n(w-) -2049 95 y(ledgement)35 b(pack)o(et,)k(then)d(the)g(engine)f -(immediately)g(generates)2049 194 y(a)44 b Fm(connection)p -2635 194 V 28 w(established)e Fs(e)n(v)o(ent,)48 b(and)42 -b(cancels)i(the)2049 294 y(connection)49 b(attempt)i(timer)-5 -b(.)118 b(On)51 b(the)g(other)g(hand,)57 b(if)52 b(the)2049 -394 y(endpoint)c(replies)h(with)h(a)g(RST)g(pack)o(et,)57 -b(then)49 b(the)g(connec-)2049 493 y(tion)38 b(attempt)g(has)h(been)e -(rejected,)42 b(and)c(the)g(engine)g(generates)2049 593 -y Fm(connection)p 2554 593 V 28 w(rejected)p Fs(.)47 -b(Similarly)-5 b(,)28 b(if)h(a)f(connection)d(ter)n(-)2049 -693 y(minates)31 b(via)g(a)h(normal)e(FIN)i(e)o(xchange,)f(then)g(the)g -(engine)f(gen-)2049 792 y(erates)23 b Fm(connection)p -2771 792 V 28 w(finished)p Fs(.)34 b(It)23 b(also)h(generates)e(se)n(v) -o(eral)2049 892 y(other)f(e)n(v)o(ents)g(re\003ecting)g(more)g(unusual) -g(w)o(ays)h(in)g(which)f(connec-)2049 991 y(tions)f(can)g(terminate.) -2132 1099 y Fl(UDP)j(pr)o(ocessing)o(.)34 b Fs(UDP)24 -b(processing)e(is)i(similar)f(b)n(ut)h(simpler)m(,)2049 -1199 y(since)k(there)f(is)h(no)f(connection)f(state,)k(e)o(xcept)c(in)i -(one)f(re)o(gard.)45 b(If)2049 1299 y(host)16 b Fj(A)g -Fs(sends)g(a)g(UDP)g(pack)o(et)f(to)h(host)g Fj(B)k Fs(with)c(a)g -(source)f(port)g(of)g Fj(p)3996 1311 y Fe(A)2049 1398 -y Fs(and)k(a)h(destination)e(port)h(of)g Fj(p)2915 1410 -y Fe(B)2972 1398 y Fs(,)h(then)f(Bro)h(considers)e Fj(A)i -Fs(as)h(ha)n(ving)2049 1498 y(initiated)16 b(a)h(\223request\224)e(to)i -Fj(B)t Fs(,)g(and)f(establishes)h(pseudo-connection)2049 -1597 y(state)27 b(associated)g(with)f(that)h(request.)43 -b(If)27 b Fj(B)k Fs(subsequently)25 b(sends)2049 1697 -y(a)31 b(UDP)g(pack)o(et)e(to)i Fj(A)g Fs(with)f(a)h(source)e(port)h -(of)g Fj(p)3549 1709 y Fe(B)3636 1697 y Fs(and)g(destina-)2049 -1797 y(tion)d Fj(p)2248 1809 y Fe(A)2302 1797 y Fs(,)j(then)e(Bro)f -(considers)g(this)i(pack)o(et)e(to)h(re\003ect)f(a)i(\223reply\224)2049 -1896 y(to)23 b(the)f(request.)32 b(The)22 b(handlers)g(\(virtual)f -(functions\))g(for)h(the)h(UDP)2049 1996 y(payload)j(data)i(can)f(then) -g(readily)g(distinguish)g(between)g(requests)2049 2096 -y(and)22 b(replies)g(for)g(the)g(usual)h(case)g(when)e(UDP)i(traf)n -(\002c)f(follo)n(ws)g(that)2049 2195 y(pattern.)43 b(The)26 -b(def)o(ault)g(handlers)f(for)h(UDP)h(requests)f(and)g(replies)2049 -2295 y(simply)20 b(generate)f Fm(udp)p 2753 2295 V 29 -w(request)h Fs(and)f Fm(udp)p 3442 2295 V 30 w(reply)g -Fs(e)n(v)o(ents.)2049 2578 y Fh(2.3)124 b(P)n(olicy)24 -b(script)h(inter)o(pr)n(eter)2049 2749 y Fs(After)30 -b(the)g(e)n(v)o(ent)f(engine)g(has)h(\002nished)g(processing)f(a)h -(pack)o(et,)i(it)2049 2849 y(then)h(checks)g(whether)f(the)h -(processing)f(generated)g(an)o(y)g(e)n(v)o(ents.)2049 -2948 y(\(These)26 b(are)h(k)o(ept)f(on)g(a)h(FIFO)g(queue.\))43 -b(If)27 b(so,)h(it)g(processes)e(each)2049 3048 y(e)n(v)o(ent)h(until)h -(the)f(queue)g(is)i(empty)-5 b(,)28 b(as)h(described)d(belo)n(w)-5 -b(.)47 b(It)28 b(also)2049 3148 y(checks)19 b(whether)f(an)o(y)h(timer) -g(e)n(v)o(ents)g(ha)n(v)o(e)g(e)o(xpired,)e(and)i(if)h(so)g(pro-)2049 -3247 y(cesses)h(them,)f(too)g(\(see)g Fi(x)h Fs(4)f(for)g(more)f(on)h -(timer)g(e)o(xpiration\).)3882 3217 y Fn(2)2132 3355 -y Fs(A)d(k)o(e)o(y)e(f)o(acet)i(of)f(Bro')-5 b(s)17 b(design)e(is)i -(the)g(clear)f(distinction)f(between)2049 3455 y(the)33 -b(generation)d(of)j(e)n(v)o(ents)e(v)o(ersus)i(what)f(to)h(do)f(in)h -(response)e(to)2049 3554 y(the)26 b(e)n(v)o(ents.)40 -b(These)26 b(are)g(sho)n(wn)f(as)h(separate)f(box)o(es)g(in)h(Figure)f -(1,)2049 3654 y(and)18 b(this)h(structure)f(re\003ects)g(the)h -(separation)e(between)h(mechanism)2049 3754 y(and)25 -b(polic)o(y)g(discussed)g(in)h Fi(x)h Fs(1.)42 b(The)25 -b(\223polic)o(y)g(script)g(interpreter\224)2049 3853 -y(e)o(x)o(ecutes)17 b(scripts)h(written)g(in)g(the)g(specialized)f -Fm(Bro)h Fs(language)e(\(de-)2049 3953 y(tailed)h(in)h -Fi(x)g Fs(3\).)24 b(These)17 b(scripts)h(specify)f(e)n(v)o(ent)f -(handlers,)h(which)g(are)2049 4052 y(essentially)26 b(identical)f(to)h -(Bro)g(functions)e(e)o(xcept)h(that)h(the)o(y)f(don')o(t)2049 -4152 y(return)19 b(a)i(v)n(alue.)k(F)o(or)20 b(each)g(e)n(v)o(ent)f -(passed)i(to)f(the)h(interpreter)m(,)d(it)j(re-)2049 -4252 y(trie)n(v)o(es)g(the)h(\(semi-\)compiled)d(code)i(for)g(the)g -(corresponding)d(han-)2049 4351 y(dler)m(,)28 b(binds)e(the)h(v)n -(alues)f(of)h(the)f(e)n(v)o(ents)h(to)f(the)h(ar)o(guments)e(of)i(the)p -2049 4455 801 4 v 2134 4509 a Fk(2)2169 4532 y Fp(There)e(is)f(a)h -(subtle)h(design)g(decision)g(in)m(v)o(olv)o(ed)h(with)e(processing)i -(all)e(of)g(the)2049 4611 y(generated)g(e)n(v)o(ents)f(before)g -(proceeding)h(to)e(read)g(the)g(ne)o(xt)g(pack)o(et.)39 -b(W)-5 b(e)22 b(might)h(be)2049 4690 y(tempted)f(to)e(defer)h(e)n(v)o -(ent)h(processing)g(until)g(a)e(period)h(of)g(relati)n(v)o(ely)j(light) -d(acti)n(vity)l(,)2049 4769 y(to)g(aid)g(the)g(engine)h(with)f(k)o -(eeping)i(up)d(during)h(periods)h(of)e(hea)o(vy)h(load.)32 -b(Ho)n(we)n(v)o(er)m(,)2049 4848 y(doing)24 b(so)f(can)h(lead)h(to)f -(races:)35 b(the)24 b(\223e)n(v)o(ent)h(control\224)h(arro)n(w)e(in)g -(Figure)g(1)f(re\003ects)2049 4927 y(the)e(f)o(act)h(that)g(the)f -(polic)o(y)h(script)g(can,)f(to)g(a)g(limited)h(de)o(gree,)h -(manipulate)g(the)e(con-)2049 5006 y(nection)h(state)f(maintained)i -(inside)e(the)f(engine.)31 b(If)19 b(e)n(v)o(ent)j(processing)f(is)f -(deferred,)2049 5085 y(then)k(such)f(control)h(may)f(happen)h(after)g -(the)f(connection)j(state)e(has)f(already)i(been)2049 -5163 y(changed)20 b(due)f(to)f(more)g(recently-recei)n(v)o(ed)24 -b(traf)n(\002c.)h(So,)18 b(to)g(ensure)h(that)g(e)n(v)o(ent)h(pro-)2049 -5242 y(cessing)e(al)o(w)o(ays)i(re\003ects)e(fresh)g(data,)g(and)g -(does)g(not)g(inadv)o(ertently)j(lead)e(to)e(incon-)2049 -5321 y(sistent)k(connection)i(state,)e(we)f(process)h(e)n(v)o(ents)g -(immediately)l(,)h(before)f(mo)o(ving)g(on)2049 5400 -y(to)c(ne)n(wly-arri)n(v)o(ed)k(netw)o(ork)e(traf)n(\002c.)1929 -5649 y Fs(4)p eop -%%Page: 5 5 -5 4 bop -150 -104 a Fs(handler)m(,)23 b(and)h(interprets)g(the)g(code.) -37 b(This)25 b(code)e(in)i(turn)e(can)i(e)o(x)o(e-)-150 --5 y(cute)19 b(arbitrary)e(Bro)i(scripting)f(commands,)f(including)h -(generating)-150 95 y(ne)n(w)27 b(e)n(v)o(ents,)h(logging)e(real-time)g -(noti\002cations)g(\(using)h(the)g(Unix)-150 194 y Fr(syslo)o(g)d -Fs(function\),)e(recording)g(data)h(to)h(disk,)g(or)g(modifying)d -(inter)n(-)-150 294 y(nal)k(state)g(for)f(access)i(by)e(subsequently)f -(in)m(v)n(ok)o(ed)g(e)n(v)o(ent)h(handlers)-150 394 y(\(or)c(by)f(the)i -(e)n(v)o(ent)e(engine)g(itself\).)-67 497 y(Finally)-5 -b(,)41 b(along)c(with)g(separating)g(mechanism)f(from)g(polic)o(y)-5 -b(,)-150 597 y(Bro')g(s)23 b(emphasis)g(on)f(asynchronous)e(e)n(v)o -(ents)i(as)i(the)f(link)f(between)-150 696 y(the)c(e)n(v)o(ent)f -(engine)g(and)h(the)g(polic)o(y)e(script)i(interpreter)f(b)n(uys)h(a)g -(great)-150 796 y(deal)28 b(in)f(terms)h(of)f(e)o(xtensibility)-5 -b(.)46 b(Adding)26 b(ne)n(w)i(functionality)d(to)-150 -896 y(Bro)e(generally)f(consists)i(of)f(adding)e(a)j(ne)n(w)f(protocol) -e(analyzer)h(to)-150 995 y(the)e(e)n(v)o(ent)f(engine)g(and)h(then)g -(writing)f(ne)n(w)h(e)n(v)o(ent)f(handlers)g(for)h(the)-150 -1095 y(e)n(v)o(ents)27 b(generated)f(by)h(the)h(analyzer)-5 -b(.)46 b(Neither)27 b(the)h(analyzer)e(nor)-150 1194 -y(the)g(e)n(v)o(ent)f(handlers)g(tend)h(to)g(ha)n(v)o(e)g(much)f(o)o(v) -o(erlap)f(with)i(e)o(xisting)-150 1294 y(functionality)-5 -b(,)16 b(so)k(for)e(the)h(most)f(part)h(we)g(can)g(a)n(v)n(oid)f(the)h -(subtle)g(in-)-150 1394 y(teractions)25 b(between)g(loosely)g(coupled)f -(modules)h(that)h(can)f(easily)-150 1493 y(lead)20 b(to)g(maintenance)f -(headaches)g(and)g(b)n(uggy)g(programs.)-150 1794 y Ft(3)119 -b(The)31 b Fd(Bro)e Ft(language)-150 1987 y Fs(As)21 -b(discussed)g(abo)o(v)o(e,)d(we)j(e)o(xpress)f(security)g(policies)h -(in)f(terms)h(of)-150 2086 y(scripts)i(written)g(in)g(the)g -(specialized)f Fm(Bro)h Fs(language.)31 b(In)23 b(this)g(sec-)-150 -2186 y(tion)18 b(we)g(gi)n(v)o(e)f(an)g(o)o(v)o(ervie)n(w)f(of)h(the)h -(language')-5 b(s)17 b(features.)23 b(The)17 b(aim)-150 -2285 y(is)25 b(to)g(con)m(v)o(e)o(y)d(the)i(\003a)n(v)n(or)h(of)f(the)g -(language,)g(rather)f(than)h(describe)-150 2385 y(it)d(precisely)-5 -b(.)-67 2488 y(Our)23 b(goal)f(of)h(\223a)n(v)n(oid)g(simple)g(mistak)o -(es\224)g(\()p Fi(x)g Fs(1\),)h(while)f(perhaps)-150 -2588 y(sounding)28 b(trite,)k(in)e(f)o(act)g(hea)n(vily)g(in\003uenced) -e(the)i(design)f(of)h(the)-150 2688 y Fm(Bro)24 b Fs(language.)35 -b(Because)24 b(intrusion)f(detection)g(can)h(form)f(a)h(cor)n(-)-150 -2787 y(nerstone)18 b(of)i(the)f(security)g(measures)g(a)n(v)n(ailable)g -(to)h(a)g(site,)g(we)g(v)o(ery)-150 2887 y(much)26 b(w)o(ant)g(our)g -(polic)o(y)f(scripts)i(to)g(beha)n(v)o(e)e(as)j(e)o(xpected.)42 -b(From)-150 2987 y(our)20 b(o)n(wn)h(e)o(xperience,)e(a)j(big)f(step)g -(to)n(w)o(ards)g(a)n(v)n(oiding)f(surprises)h(is)-150 -3086 y(to)d(use)g(a)g(strongly)f(typed)g(language)f(that)i(detects)g -(typing)e(inconsis-)-150 3186 y(tencies)21 b(at)h(compile-time,)e(and)g -(that)i(guarantees)e(that)h(all)h(v)n(ariable)-150 3285 -y(references)h(at)i(run-time)d(will)j(be)f(to)h(v)n(alid)f(v)n(alues.) -36 b(Furthermore,)-150 3385 y(we)26 b(ha)n(v)o(e)e(come)h(to)g -(appreciate)f(the)h(bene\002ts)g(of)g(domain-speci\002c)-150 -3485 y(languages,)32 b(that)f(is,)j(languages)29 b(tailored)h(for)g(a)h -(particular)e(task.)-150 3584 y(Ha)n(ving)c(cobbled)f(together)g(our)h -(\002rst)h(monitoring)d(system)j(out)f(of)-150 3684 y -Fm(tcpdump)p Fs(,)30 b Fm(awk)p Fs(,)h(and)d(shell)h(scripts,)i(we)e -(thirsted)f(for)g(w)o(ays)h(to)-150 3784 y(deal)j(directly)g(with)h -(hostnames,)h(IP)f(addresses,)i(port)c(numbers,)-150 -3883 y(and)20 b(the)g(lik)o(e,)g(rather)f(than)h(de)n(vising)f(ASCII)h -(pseudo-equi)n(v)n(alents.)-150 3983 y(By)c(making)e(these)h(sorts)g -(of)g(entities)h(\002rst-class)g(v)n(alues)f(in)g Fm(Bro)p -Fs(,)h(we)-150 4082 y(both)k(increase)g(the)h(ease)g(of)g(e)o -(xpression)e(of)n(fered)g(by)h(the)h(language)-150 4182 -y(and,)h(due)f(to)h(strong)f(typing,)g(catch)h(errors)f(\(such)g(as)i -(comparing)c(a)-150 4282 y(port)h(to)g(an)g(IP)h(address\))e(that)h -(might)g(otherwise)f(slip)i(by)-5 b(.)-150 4540 y Fh(3.1)99 -b(Data)25 b(types)g(and)h(constants)-150 4703 y Fl(Atomic)d(types.)35 -b Fm(Bro)23 b Fs(supports)f(se)n(v)o(eral)h(types)g(f)o(amiliar)g(to)g -(users)-150 4802 y(of)32 b(traditional)g(languages:)48 -b Fm(bool)32 b Fs(for)g(booleans,)i Fm(int)f Fs(for)f(in-)-150 -4902 y(te)o(gers,)25 b Fm(count)f Fs(for)g(non-ne)o(gati)n(v)o(e)d -(inte)o(gers)j(\(\223unsigned\224)e(in)j(C\),)-150 5001 -y Fm(double)k Fs(for)g(double-precision)d(\003oating)j(point,)i(and)e -Fm(string)-150 5101 y Fs(for)18 b(a)h(series)g(of)f(bytes.)24 -b(The)19 b(\002rst)g(four)e(of)h(these)h(\(all)g(b)n(ut)f -Fm(string)p Fs(\))-150 5201 y(are)h(termed)g Fr(arithmetic)g -Fs(types,)g(and)g(mixing)f(them)h(in)h(e)o(xpressions)-150 -5300 y(promotes)35 b Fm(bool)h Fs(to)h Fm(count)p Fs(,)i -Fm(count)d Fs(to)h Fm(int)p Fs(,)j(and)c Fm(int)g Fs(to)-150 -5400 y Fm(double)p Fs(.)2132 -104 y Fm(Bro)e Fs(pro)o(vides)d -Fm(T)j Fs(and)f Fm(F)h Fs(as)g Fm(bool)g Fs(constants)f(for)g(true)g -(and)2049 -5 y(f)o(alse;)38 b(a)33 b(series)f(of)g(digits)g(for)g -Fm(count)f Fs(constants;)38 b(and)31 b(C-style)2049 95 -y(constants)20 b(for)f Fm(double)h Fs(and)g Fm(string)p -Fs(.)2132 194 y(Unlik)o(e)27 b(in)g(C,)g(ho)n(we)n(v)o(er)m(,)f -Fm(Bro)h Fs(strings)g(are)g(represented)e(inter)n(-)2049 -294 y(nally)j(as)g(a)h(count)e(and)g(a)i(v)o(ector)d(of)i(bytes,)i -(rather)d(than)g(a)i(NUL-)2049 394 y(terminated)24 b(series)j(of)e -(bytes.)41 b(This)26 b(dif)n(ference)d(is)k(important)d(be-)2049 -493 y(cause)34 b(NULs)g(can)g(easily)g(be)g(introduced)d(into)j -(strings)f(deri)n(v)o(ed)2049 593 y(from)22 b(netw)o(ork)f(traf)n -(\002c,)i(either)f(by)h(the)f(nature)g(of)h(the)f(application,)2049 -693 y(inadv)o(ertently)-5 b(,)35 b(or)f(maliciously)g(by)g(an)g(attack) -o(er)g(attempting)f(to)2049 792 y(sub)o(v)o(ert)21 b(the)i(monitor)-5 -b(.)30 b(An)23 b(e)o(xample)e(of)h(the)h(latter)g(is)g(sending)f(the) -2049 892 y(follo)n(wing)d(to)h(an)g(FTP)h(serv)o(er:)2208 -1043 y Ff(USER)40 b(nice\\0USER)e(root)2049 1216 y Fs(where)20 -b(\223)p Fm(\\0)p Fs(\224)g(represents)f(a)i(NUL.)f(Depending)f(on)h -(ho)n(w)f(it)i(is)h(writ-)2049 1315 y(ten,)33 b(the)e(FTP)h -(application)d(recei)n(ving)h(this)h(te)o(xt)g(might)f(well)i(in-)2049 -1415 y(terpret)i(it)h(as)h(tw)o(o)f(separate)f(commands,)j(\223)p -Fm(USER)49 b(nice)p Fs(\224)34 b(fol-)2049 1515 y(lo)n(wed)d(by)g(\223) -p Fm(USER)49 b(root)p Fs(\224.)58 b(But)32 b(if)g(the)g(monitoring)d -(program)2049 1614 y(uses)18 b(NUL-terminated)c(strings,)k(then)e(it)i -(will)g(ef)n(fecti)n(v)o(ely)d(see)i(only)2049 1714 y(\223)p -Fm(USER)49 b(nice)p Fs(\224)27 b(and)h(ha)n(v)o(e)f(no)h(opportunity)c -(to)k(detect)g(the)g(sub-)2049 1813 y(v)o(ersi)n(v)o(e)19 -b(action.)2132 1913 y(Similarly)-5 b(,)22 b(it)h(is)h(important)c(that) -j(when)f(Bro)g(logs)h(such)f(strings,)2049 2013 y(or)33 -b(prints)g(them)f(as)i(te)o(xt)f(to)g(a)h(\002le,)i(that)e(it)f(e)o -(xpands)f(embedded)2049 2112 y(NULs)19 b(into)g(visible)f(escape)h -(sequences)f(to)h(\003ag)f(their)h(appearance.)2132 2212 -y Fm(Bro)44 b Fs(also)f(includes)g(a)h(number)e(of)h(non-traditional)e -(types,)2049 2312 y(geared)35 b(to)n(w)o(ards)h(its)i(speci\002c)f -(problem)d(domain.)73 b(A)37 b(v)n(alue)f(of)2049 2411 -y(type)23 b Fm(time)h Fs(re\003ects)g(an)g(absolute)f(time,)i(and)e -Fm(interval)g Fs(a)h(dif-)2049 2511 y(ference)35 b(in)h(time.)74 -b(Subtracting)34 b(tw)o(o)j Fm(time)f Fs(v)n(alues)g(yields)g(an)2049 -2610 y Fm(interval)p Fs(;)17 b(adding)e(or)h(subtracting)f(an)i -Fm(interval)e Fs(to)i(a)g Fm(time)2049 2710 y Fs(yields)25 -b(a)h Fm(time)p Fs(;)j(adding)24 b(tw)o(o)i Fm(time)f -Fs(v)n(alues)g(is)i(an)e(error)-5 b(.)40 b(There)2049 -2810 y(are)24 b(presently)e(no)i Fm(time)f Fs(constants,)h(b)n(ut)g -Fm(interval)f Fs(constants)2049 2909 y(can)33 b(be)h(speci\002ed)f -(using)g(a)h(numeric)f(\(possibly)f(\003oating-point\))2049 -3009 y(v)n(alue)i(follo)n(wed)f(by)h(a)g(unit)h(of)f(time,)j(such)e(as) -g(\223)p Fm(30)49 b(min)p Fs(\224)34 b(for)2049 3109 -y(thirty)20 b(minutes.)2132 3208 y(The)k Fm(port)g Fs(type)g -(corresponds)e(to)i(a)h(TCP)g(or)e(UDP)i(port)f(num-)2049 -3308 y(ber)-5 b(.)24 b(TCP)18 b(and)e(UDP)h(ports)g(are)g(distinct.)23 -b(Thus,)17 b(a)h(v)n(ariable)d(of)i(type)2049 3407 y -Fm(port)j Fs(can)g(hold)f(either)h(a)h(TCP)g(or)f(a)g(UDP)h(port,)f(b)n -(ut)g(at)g(an)o(y)g(gi)n(v)o(en)2049 3507 y(time)g(it)h(is)g(holding)e -(e)o(xactly)g(one)h(of)g(these.)2132 3607 y(There)29 -b(are)h(tw)o(o)h(forms)e(of)h Fm(port)g Fs(constants.)55 -b(The)30 b(\002rst)g(con-)2049 3706 y(sists)h(of)f(an)g(unsigned)e -(inte)o(ger)h(follo)n(wed)f(by)i(either)f(\223)p Fm(/tcp)p -Fs(\224)h(or)2049 3806 y(\223)p Fm(/udp)p Fs(.)-6 b(\224)46 -b(So,)28 b(for)f(e)o(xample,)g(\223)p Fm(80/tcp)p Fs(\224)g -(corresponds)d(to)k(TCP)2049 3906 y(port)c(80)h(\(the)f(HTTP)h -(protocol)e(used)i(by)f(the)h(W)-7 b(orld)25 b(W)m(ide)f(W)-7 -b(eb\).)2049 4005 y(The)39 b(second)e(form)h(of)h(constant)f(is)i -(speci\002ed)e(using)h(a)g(prede-)2049 4105 y(\002ned)28 -b(identi\002er)m(,)i(such)e(as)i(\223)p Fm(http)p Fs(\224,)g(equi)n(v)n -(alent)d(to)h(\223)p Fm(80/tcp)p Fs(.)-6 b(\224)2049 -4204 y(Originally)h(,)15 b(we)h(w)o(ould)g(look)f(up)g -(otherwise-unde\002ned)e(identi\002ers)2049 4304 y(using)33 -b(the)h Fr(g)o(etservbyname)e Fs(library)g(routine.)64 -b(Ho)n(we)n(v)o(er)m(,)35 b(doing)2049 4404 y(so)e(not)f(only)f(runs)h -(into)h(dif)n(\002culties)f(when)f(a)i(single)g(name)e(lik)o(e)2049 -4503 y(\223)p Fm(domain)p Fs(\224)g(has)h(both)f(TCP)i(and)e(UDP)h -(de\002nitions,)i(b)n(ut,)g(more)2049 4603 y(fundamentally)-5 -b(,)27 b(erodes)h(portability)e(because)i(a)h Fr(g)o(etservbyname)2049 -4703 y Fs(service)e(name)h(kno)n(wn)e(on)h(one)h(system)f(might)h(well) -g(be)g(missing)2049 4802 y(from)17 b(another)g(system,)h(rendering)e -(in)m(v)n(alid)h(an)o(y)g Fm(Bro)h Fs(scripts)h(writ-)2049 -4902 y(ten)h(using)g(the)g(service)g(name.)2132 5001 -y(V)-9 b(alues)20 b(of)g(type)g Fm(port)g Fs(may)g(be)g(compared)e(for) -i(equality)f(or)h(or)n(-)2049 5101 y(dering)31 b(\(for)g(e)o(xample,)j -(\223)p Fm(20/tcp)48 b(<)i(telnet)p Fs(\224)31 b(yields)i(true\),)2049 -5201 y(b)n(ut)20 b(otherwise)g(cannot)f(be)h(operated)f(on.)2132 -5300 y(Another)j(netw)o(orking)f(type)i(pro)o(vided)e(by)i -Fm(Bro)g Fs(is)h Fm(addr)p Fs(,)g(cor)n(-)2049 5400 y(responding)29 -b(to)j(an)f(IP)h(address.)59 b(These)31 b(are)h(represented)e(inter)n -(-)1929 5649 y(5)p eop -%%Page: 6 6 -6 5 bop -150 -104 a Fs(nally)17 b(as)h(unsigned,)e(32-bit)g(inte)o -(gers,)h(b)n(ut)g(in)h Fm(Bro)f Fs(scripts)h(the)f(only)-150 --5 y(operations)26 b(that)h(can)g(be)g(performed)d(on)j(them)f(are)h -(comparisons)-150 95 y(for)e(equality)g(or)h(inequality)e(\(also,)j(a)f -(b)n(uilt-in)f(function)f(pro)o(vides)-150 194 y(masking,)19 -b(as)h(discussed)g(belo)n(w\).)k(Constants)c(of)g(type)f -Fm(addr)h Fs(ha)n(v)o(e)-150 294 y(the)g(f)o(amiliar)g(\223dotted)f -(quad\224)g(format,)g Fj(A)1064 306 y Fn(1)1102 294 y -Fj(:A)1187 306 y Fn(2)1224 294 y Fj(:A)1309 306 y Fn(3)1347 -294 y Fj(:A)1432 306 y Fn(4)1469 294 y Fs(.)-67 394 y(More)37 -b(interesting)g(are)g Fr(hostname)f Fs(constants.)77 -b(There)37 b(is)h(no)-150 493 y Fm(Bro)45 b Fs(type)f(corresponding)d -(to)j(Internet)g(hostnames,)49 b(because)-150 593 y(hostnames)26 -b(can)g(correspond)e(to)j(multiple)f(IP)h(addresses,)g(so)g(one)-150 -693 y(quickly)34 b(runs)g(into)h(ambiguities)f(if)h(comparing)d(one)j -(hostname)-150 792 y(with)h(another)-5 b(.)71 b Fm(Bro)36 -b Fs(does,)j(ho)n(we)n(v)o(er)m(,)e(support)e(hostnames)g(as)-150 -892 y(constants.)81 b(An)o(y)38 b(series)i(of)e(tw)o(o)i(or)e(more)h -(identi\002ers)f(delim-)-150 991 y(ited)c(by)f(dots)h(forms)f(a)i -(hostname)d(constant,)37 b(so,)g(for)c(e)o(xample,)-150 -1091 y(\223)p Fm(lbl.gov)p Fs(\224)23 b(and)h(\223)p -Fm(www.microsoft.com)p Fs(\224)d(are)j(both)f(host-)-150 -1191 y(name)f(constants)g(\(the)h(latter)m(,)g(as)g(of)f(this)i -(writing,)e(corresponds)e(to)-150 1290 y(6)27 b(distinct)g(IP)h -(addresses\).)44 b(The)27 b(v)n(alue)f(of)h(a)g(hostname)f(constant) --150 1390 y(is)21 b(a)g Fm(list)g Fs(of)f Fm(addr)g Fs(containing)f -(one)h(or)g(more)g(elements.)26 b(These)-150 1490 y(lists)21 -b(cannot)e(be)g(used)h(in)g Fm(Bro)f Fs(e)o(xpressions;)g(b)n(ut)h(the) -o(y)f(play)g(a)h(cen-)-150 1589 y(tral)27 b(role)f(in)h(initializing)f -Fm(Bro)h(table)p Fs(')-5 b(s)26 b(and)g Fm(set)p Fs(')-5 -b(s,)29 b(discussed)-150 1689 y(in)20 b Fi(x)h Fs(3.3)f(belo)n(w)-5 -b(.)-67 1788 y Fl(Aggr)o(egate)22 b(types.)38 b Fm(Bro)24 -b Fs(also)h(supports)e(a)i(number)e(of)h(aggre-)-150 -1888 y(gate)j(types.)46 b(A)28 b Fm(record)f Fs(is)h(a)g(collection)e -(of)h(elements)g(of)g(arbi-)-150 1988 y(trary)19 b(type.)25 -b(F)o(or)19 b(e)o(xample,)f(the)i(prede\002ned)e Fm(conn)p -1370 1988 25 4 v 29 w(id)j Fs(type,)e(used)-150 2087 -y(to)f(hold)g(connection)e(identi\002ers,)i(is)i(de\002ned)d(in)h(the)h -Fm(Bro)f Fs(run-time)-150 2187 y(initialization)i(\002le)g(as:)9 -2339 y Ff(type)40 b(conn_id:)e(record)h({)169 2418 y(orig_h:)g(addr;) -169 2497 y(orig_p:)g(port;)169 2576 y(resp_h:)g(addr;)169 -2655 y(resp_p:)g(port;)9 2734 y(};)-150 2907 y Fs(The)27 -b Fm(orig)p 212 2907 V 29 w(h)h Fs(and)f Fm(resp)p 667 -2907 V 29 w(h)h Fs(elements)f(\(or)g(\223\002elds\224\))g(ha)n(v)o(e)g -(type)-150 3006 y Fm(addr)e Fs(and)g(hold)g(the)h(connection)d -(originator')-5 b(s)24 b(and)h(responder')-5 b(s)-150 -3106 y(IP)21 b(addresses.)26 b(Similarly)-5 b(,)20 b -Fm(orig)p 862 3106 V 29 w(p)h Fs(and)f Fm(resp)p 1303 -3106 V 29 w(p)h Fs(hold)f(the)h(orig-)-150 3205 y(inator)g(and)f -(responder)f(ports.)28 b(Record)21 b(\002elds)h(are)f(accessed)g(using) --150 3305 y(the)f(\223)p Fm($)p Fs(\224)g(operator)-5 -b(.)-67 3405 y(F)o(or)20 b(specifying)e(security)i(policies,)f(a)i -(particularly)d(useful)i Fm(Bro)-150 3504 y Fs(type)26 -b(is)i Fm(table)p Fs(.)44 b Fm(Bro)26 b Fs(tables)h(ha)n(v)o(e)f(tw)o -(o)h(components,)f(a)h(set)h(of)-150 3604 y Fr(indices)c -Fs(and)g(a)h Fr(yield)g(type)p Fs(.)37 b(The)24 b(indices)h(may)f(be)g -(of)g(an)o(y)g(atomic)-150 3704 y(\(non-aggre)o(gate\))c(type,)25 -b(and/or)e(an)o(y)h Fm(record)g Fs(types)h(that,)g(when)-150 -3803 y(\(recursi)n(v)o(ely\))i(e)o(xpanded)g(into)i(all)h(of)f(their)g -(elements,)i(are)e(com-)-150 3903 y(prised)h(of)h(only)f(atomic)h -(types.)57 b(\(Thus,)32 b Fm(Bro)f Fs(tables)g(pro)o(vide)e(a)-150 -4002 y(form)19 b(of)h(associati)n(v)o(e)g(array)-5 b(.\))23 -b(So,)d(for)g(e)o(xample,)9 4155 y Ff(table[port])39 -b(of)g(string)-150 4307 y Fs(can)20 b(be)g(inde)o(x)o(ed)e(by)i(a)h -Fm(port)f Fs(v)n(alue,)f(yielding)g(a)h Fm(string)p Fs(,)g(and:)9 -4445 y Ff(table[conn_id])38 b(of)i(ftp_session_info)-150 -4603 y Fs(is)34 b(inde)o(x)o(ed)c(by)i(a)h Fm(conn)p -623 4603 V 30 w(id)f Fs(record\227or)m(,)h(equi)n(v)n(alently)-5 -b(,)33 b(by)g(an)-150 4703 y Fm(addr)p Fs(,)42 b(a)d -Fm(port)p Fs(,)j(another)36 b Fm(addr)p Fs(,)43 b(and)37 -b(another)g Fm(port)p Fs(\227and)-150 4802 y(yields)20 -b(an)g Fm(ftp)p 323 4802 V 30 w(session)p 703 4802 V -28 w(info)g Fs(record)f(as)i(a)f(result.)-67 4902 y(Closely)i(related)e -(to)i Fm(table)e Fs(types)h(are)h Fm(set)f Fs(types.)28 -b(These)21 b(are)-150 5001 y(simply)d Fm(table)f Fs(types)h(that)h(do)e -(not)h(yield)g(a)g(v)n(alue.)24 b(Their)17 b(purpose)-150 -5101 y(is)j(to)f(maintain)f(collections)h(of)g(tuples,)g(e)o(xpressed)e -(in)j(terms)f(of)g(the)-150 5201 y(set')-5 b(s)18 b(indices.)23 -b(The)16 b(e)o(xamples)f(in)i Fi(x)g Fs(3.3)f(clarify)f(ho)n(w)h(this)h -(is)g(useful.)-67 5300 y(Another)27 b(aggre)o(gate)e(type)i(supported)f -(is)j Fm(file)p Fs(.)48 b(Support)26 b(for)-150 5400 -y(\002les)d(is)g(presently)d(crude:)28 b(a)22 b(script)g(can)g(open)f -(\002les)h(for)g(writing)f(or)2049 -104 y(appending,)j(and)g(can)h -(pass)h(the)g(resulting)e Fm(file)h Fs(v)n(ariable)f(to)i(the)2049 --5 y Fm(print)e Fs(command)f(to)i(specify)f(where)g(it)i(should)e -(write,)i(b)n(ut)e(that)2049 95 y(is)j(all.)42 b(Also,)27 -b(these)f(\002les)h(are)f(simple)f(ASCII.)h(In)g(the)f(future,)h(we) -2049 194 y(plan)g(to)h(e)o(xtend)f(\002les)i(to)f(support)e(reading,)i -(ASCII)g(parsing,)g(and)2049 294 y(binary)19 b(\(typed\))f(reading)h -(and)h(writing.)2132 394 y(Finally)-5 b(,)24 b(abo)o(v)o(e)d(we)j -(alluded)f(to)h(the)f Fm(list)g Fs(type,)h(which)f(holds)2049 -493 y(zero)e(or)g(more)g(instances)h(of)f(a)h(v)n(alue.)28 -b(Currently)-5 b(,)20 b(this)i(type)f(is)i(not)2049 593 -y(directly)c(a)n(v)n(ailable)g(to)h(the)g Fm(Bro)f Fs(script)h(writer)m -(,)f(other)g(than)g(implic-)2049 693 y(itly)k(when)e(using)h -Fr(hostname)f Fs(constants.)30 b(Since)22 b(its)i(present)d(use)i(is) -2049 792 y(primarily)g(internal)h(to)g(the)h(script)f(interpreter)f -(\(when)g(initializing)2049 892 y(v)n(ariables,)c(per)h -Fi(x)h Fs(3.3\),)e(we)h(do)g(not)g(describe)f(it)i(further)-5 -b(.)2132 991 y Fl(Regular)44 b(expr)o(essions.)99 b Fs(The)45 -b(last)g(b)n(uilt-in)f Fm(Bro)h Fs(type)g(is)2049 1091 -y Fm(pattern)p Fs(.)51 b(P)o(atterns)29 b(are)g(Unix-style)f(re)o -(gular)g(e)o(xpressions;)k(in)2049 1191 y(particular)m(,)22 -b(the)h(syntax)f(used)h(by)g(the)g Fr(\003e)n(x)g Fs(utility)g([P)o -(a96)n(].)34 b(P)o(attern)2049 1290 y(constants)20 b(are)g(enclosed)f -(by)h Fm(/)g Fs(delimiters.)25 b(F)o(or)20 b(e)o(xample:)2208 -1435 y Ff(/sync|lp|uucp|operator|ezsetup|4dgifts/)2049 -1600 y Fs(is)k(a)f(pattern)f(that)i(matches)e(a)i(number)d(of)i(common) -e(def)o(ault)h(Unix)2049 1700 y(accounts.)2132 1800 y(Presently)-5 -b(,)20 b(only)h(tw)o(o)g(operations)f(are)h(allo)n(wed)f(on)h(pattern)f -(v)n(al-)2049 1899 y(ues:)25 b(assignment,)18 b(and)h(testing)g(to)h -(see)f(whether)g(the)g(pattern)f(v)n(alue)2049 1999 y(matches)i(a)g(gi) -n(v)o(en)f(string)h(\(discussed)g(belo)n(w\).)2049 2233 -y Fh(3.2)99 b(Operators)2049 2389 y Fm(Bro)27 b Fs(pro)o(vides)e(a)j -(number)d(of)i(C-lik)o(e)g(operators)f(\()p Fm(+)p Fs(,)j -Fm(-)p Fs(,)g Fm(*)p Fs(,)f Fm(/)p Fs(,)h Fm(\045)p Fs(,)2049 -2489 y Fm(!)p Fs(,)g Fm(&&)p Fs(,)f Fm(||)p Fs(,)h Fm(?:)p -Fs(,)f(relationals)e(lik)o(e)h Fm(<=)p Fs(\))g(with)g(which)f(we)i -(assume)2049 2588 y(the)e(reader)f(is)i(f)o(amiliar)m(,)f(and)g(will)h -(not)e(detail)h(here.)42 b(Assignment)2049 2688 y(is)28 -b(done)e(using)h Fm(=)p Fs(,)i(table)e(and)f(set)i(inde)o(xing)d(with)i -Fm([])p Fs(,)i(and)e(func-)2049 2787 y(tion)19 b(in)m(v)n(ocation)f -(and)h(e)n(v)o(ent)g(generation)e(with)j Fm(\(\))p Fs(.)25 -b(Numeric)18 b(v)n(ari-)2049 2887 y(ables)35 b(can)g(be)f(incremented)f -(and)h(decremented)f(using)h Fm(++)h Fs(and)2049 2987 -y Fm(--)p Fs(.)i(Record)23 b(\002elds)i(are)f(accessed)g(using)g -Fm($)p Fs(,)h(to)f(a)n(v)n(oid)g(ambiguity)2049 3086 -y(with)30 b Fr(hostname)f Fs(constants.)54 b(Assignment)30 -b(of)f(aggre)o(gate)f(v)n(alues)2049 3186 y(is)h Fr(shallow)p -Fs(\227the)e(ne)n(wly-assigned)e(v)n(ariable)i(refers)g(to)h(the)f -(same)2049 3286 y(aggre)o(gate)20 b(v)n(alue)h(as)i(the)f(right-hand)d -(side)j(of)g(the)g(assignment)f(e)o(x-)2049 3385 y(pression.)52 -b(This)30 b(choice)f(w)o(as)h(made)f(to)h(f)o(acilitate)f(performance;) -2049 3485 y(we)e(ha)n(v)o(e)f(not)g(yet)h(been)f(bitten)g(by)h(the)f -(semantics)h(\(which)f(dif)n(fer)2049 3585 y(from)21 -b(C\).)i(W)-7 b(e)24 b(may)d(in)i(the)f(future)g(add)f(a)i -Fm(copy)f Fs(operator)f(to)h(con-)2049 3684 y(struct)e(\223deep\224)f -(copies.)2132 3784 y(From)30 b(the)g(perspecti)n(v)o(e)e(of)i(C,)g(the) -g(only)g(no)o(v)o(el)e(operators)h(are)2049 3883 y Fm(in)f -Fs(and)e Fm(!in)p Fs(.)47 b(These)27 b(in\002x)g(operators)f(yield)h -Fm(bool)g Fs(v)n(alues)g(de-)2049 3983 y(pending)16 b(on)h(whether)g -(or)g(not)h(a)g(gi)n(v)o(en)e(inde)o(x)h(is)h(in)g(a)g(gi)n(v)o(en)f -Fm(table)2049 4083 y Fs(or)k Fm(set)p Fs(.)26 b(F)o(or)21 -b(e)o(xample,)e(if)i Fm(sensitive)p 3322 4083 V 29 w(services)f -Fs(is)h(a)h Fm(set)2049 4182 y Fs(inde)o(x)o(ed)c(by)i(a)h(single)f -Fm(port)p Fs(,)f(then)2208 4327 y Ff(23/tcp)39 b(in)h -(sensitive_services)2049 4492 y Fs(returns)20 b(true)g(if)h(the)g(set)h -(has)f(an)g(element)f(corresponding)d(to)k(an)g(in-)2049 -4592 y(de)o(x)c(of)h(TCP)h(port)f(23,)g(f)o(alse)g(if)h(it)g(does)f -(not)g(ha)n(v)o(e)f(such)h(an)g(element.)2049 4692 y(Similarly)-5 -b(,)25 b(if)f Fm(RPC)p 2630 4692 V 30 w(okay)g Fs(is)i(a)e -Fm(set)h Fs(\(or)f Fm(table)p Fs(\))g(inde)o(x)o(ed)e(by)i(a)2049 -4791 y(source)30 b(address,)i(a)f(destination)e(address,)k(and)d(an)g -(RPC)i(service)2049 4891 y(number)18 b(\(a)j Fm(count)p -Fs(\),)e(then)2129 5035 y Ff([src_addr,)38 b(dst_addr,)h(serv])g(in)g -(RPC_okay)2049 5201 y Fs(yields)34 b(true)f(if)h(the)g(gi)n(v)o(en)e -(ordered)g(triple)h(is)i(present)e(as)h(an)g(in-)2049 -5300 y(de)o(x)26 b(into)h Fm(RPC)p 2507 5300 V 30 w(okay)p -Fs(.)45 b(The)27 b Fm(!in)g Fs(operator)f(simply)g(returns)h(the)2049 -5400 y(boolean)19 b(ne)o(gation)f(of)i(the)g Fm(in)g -Fs(operator)-5 b(.)1929 5649 y(6)p eop -%%Page: 7 7 -7 6 bop -67 -104 a Fs(Presently)-5 b(,)17 b(inde)o(xing)e(a)j(table)g -(or)f(set)h(with)g(a)g(v)n(alue)f(that)h(does)f(not)-150 --5 y(correspond)24 b(to)i(one)g(of)g(its)h(elements)f(leads)g(to)h(a)g -(run-time)d(error)m(,)-150 95 y(so)d(such)g(operations)e(need)h(to)h -(be)g(preceded)e(by)h Fm(in)h Fs(tests.)28 b(W)-7 b(e)22 -b(\002nd)-150 194 y(this)g(not)f(entirely)f(satisfying,)h(and)g(plan)f -(to)i(add)f(a)g(mechanism)f(for)-150 294 y(optionally)28 -b(specifying)g(the)h(action)g(to)h(tak)o(e)f(in)h(such)f(cases)h(on)f -(a)-150 394 y(per)n(-table)19 b(basis.)-67 498 y(Another)26 -b(use)h(of)f(the)h Fm(in)g Fs(and)g Fm(!in)g Fs(operators)e(is)j(for)e -(re)o(gular)n(-)-150 598 y(e)o(xpression)19 b(pattern)g(matching.)k(F)o -(or)d(e)o(xample,)-70 785 y Ff(filename)38 b(in)i(/rootkit-1\\.[5-8]/) --150 987 y Fs(yields)20 b(true)h(if)g(the)f(v)n(alue)g(of)g(the)h(e)o -(xpression)e Fm(filename)g Fs(\(which)-150 1087 y(must)26 -b(ha)n(v)o(e)g(type)g Fm(string)p Fs(\))f(matches)h(an)o(y)f(of)h -Fm(rootkit-1.5)p Fs(,)-150 1187 y Fm(rootkit-1.6)p Fs(,)18 -b Fm(rootkit-1.7)p Fs(,)h(or)h Fm(rootkit-1.8)p Fs(.)-67 -1291 y(Finally)-5 b(,)33 b Fm(Bro)d Fs(includes)h(a)g(number)e(of)h -(prede\002ned)f(functions)-150 1391 y(to)46 b(perform)e(operations)g -(not)i(directly)f(a)n(v)n(ailable)h(in)g(the)g(lan-)-150 -1490 y(guage.)27 b(Some)21 b(of)g(the)g(more)f(interesting:)27 -b Fm(fmt)21 b Fs(pro)o(vides)e Fr(sprintf)12 b Fs(-)-150 -1590 y(style)26 b(formatting)d(for)i(use)g(in)h(printing)d(or)i -(manipulating)f(strings;)-150 1690 y Fm(edit)j Fs(returns)f(a)i(cop)o -(y)e(of)h(a)g(string)g(that)g(has)g(been)g(edited)f(using)-150 -1789 y(the)i(gi)n(v)o(en)f(editing)h(characters)f(\(currently)f(it)j -(only)f(kno)n(ws)g(about)-150 1889 y(single-character)44 -b(deletions\);)57 b Fm(mask)p 1041 1889 25 4 v 29 w(addr)46 -b Fs(tak)o(es)g(an)g Fm(addr)-150 1989 y Fs(and)31 b(returns)f(another) -g Fm(addr)g Fs(corresponding)e(to)j(its)i(top)d Fj(n)i -Fs(bits;)-150 2088 y Fm(open)43 b Fs(and)g Fm(close)g -Fs(manipulate)f Fm(file)p Fs(s;)55 b Fm(network)p 1628 -2088 V 29 w(time)-150 2188 y Fs(returns)62 b(the)h(timestamp)g(of)g -(the)g(most)g(recently)f(recei)n(v)o(ed)-150 2287 y(pack)o(et;)29 -b Fm(getenv)d Fs(pro)o(vides)e(access)j(to)g(en)m(vironment)c(v)n -(ariables;)-150 2387 y Fm(skip)p 55 2387 V 29 w(further)p -434 2387 V 29 w(processing)e Fs(marks)h(a)h(connection)e(as)i(not)-150 -2487 y(requiring)d(an)o(y)h(further)f(analysis;)j Fm(set)p -1035 2487 V 29 w(record)p 1364 2487 V 29 w(packets)e -Fs(in-)-150 2586 y(structs)38 b(the)f(e)n(v)o(ent)f(engine)g(whether)g -(or)h(not)g(to)h(record)d(an)o(y)i(of)-150 2686 y(a)j(connection')-5 -b(s)38 b(future)g(pack)o(ets)h(\(though)e(SYN/FIN/RST)k(are)-150 -2786 y(al)o(w)o(ays)c(recorded\);)43 b Fm(set)p 658 2786 -V 29 w(contents)p 1087 2786 V 29 w(file)36 b Fs(speci\002es)i(a)f -(\002le)-150 2885 y(to)k(which)f(Bro)h(records)f(the)h(connection')-5 -b(s)39 b(reassembled)h(byte)-150 2985 y(stream;)46 b -Fm(system)36 b Fs(e)o(x)o(ecutes)h(a)g(string)g(as)h(a)g(Unix)f(shell)g -(com-)-150 3084 y(mand;)25 b(and)e Fm(parse)p 483 3084 -V 29 w(ftp)p 662 3084 V 30 w(port)g Fs(tak)o(es)i(an)e(FTP)i(\223POR)-5 -b(T\224)24 b(com-)-150 3184 y(mand)g(and)h(returns)g(a)g -Fm(record)g Fs(with)h(the)f(corresponding)d Fm(addr)-150 -3284 y Fs(and)e Fm(port)p Fs(.)-150 3549 y Fh(3.3)99 -b(V)-9 b(ariables)-150 3714 y Fm(Bro)28 b Fs(supports)f(tw)o(o)h(le)n -(v)o(els)g(of)f(scoping:)40 b(local)27 b(to)h(a)h(function)d(or)-150 -3813 y(e)n(v)o(ent)31 b(handler)m(,)i(and)e(global)g(to)h(the)g(entire) -f Fm(Bro)h Fs(script.)60 b(Expe-)-150 3913 y(rience)28 -b(has)h(already)f(sho)n(wn)g(that)i(we)f(w)o(ould)f(bene\002t)g(by)h -(adding)-150 4013 y(a)37 b(third,)i(intermediate)c(le)n(v)o(el)h(of)g -(scoping,)j(perhaps)c(as)i(part)f(of)-150 4112 y(a)f(\223module\224)d -(or)j(\223object\224)e(f)o(acility)-5 b(,)37 b(or)d(e)n(v)o(en)g(as)h -(simple)f(as)h(C')-5 b(s)-150 4212 y Fm(static)33 b Fs(scoping.)65 -b(Local)33 b(v)n(ariables)g(are)h(declared)e(using)i(the)-150 -4312 y(k)o(e)o(yw)o(ord)20 b Fm(local)p Fs(,)i(and)f(the)h -(declarations)f(must)g(come)h(inside)g(the)-150 4411 -y(body)c(of)i(a)g(function)e(or)h(e)n(v)o(ent)g(handler)-5 -b(.)24 b(There)19 b(is)i(no)e(requirement)-150 4511 y(to)31 -b(declare)f(v)n(ariables)g(at)i(the)f(be)o(ginning)d(of)j(the)g -(function.)55 b(The)-150 4610 y(scope)21 b(of)h(the)g(v)n(ariable)e -(ranges)h(from)g(the)h(point)f(of)g(declaration)f(to)-150 -4710 y(the)j(end)e(of)i(the)f(body)-5 b(.)30 b(Global)22 -b(v)n(ariables)g(are)g(declared)g(using)g(the)-150 4810 -y(k)o(e)o(yw)o(ord)28 b Fm(global)h Fs(and)g(the)g(declarations)g(must) -g(come)g(outside)-150 4909 y(of)g(an)o(y)f(function)g(bodies.)51 -b(F)o(or)29 b(either)f(type)h(of)g(declaration,)h(the)-150 -5009 y(k)o(e)o(yw)o(ord)17 b(can)h(be)g(replaced)f(instead)i(by)f -Fm(const)p Fs(,)g(which)g(indicates)-150 5109 y(that)i(the)g(v)n -(ariable')-5 b(s)20 b(v)n(alue)f(is)j(constant)d(and)h(cannot)f(be)h -(changed.)-67 5213 y(Syntactically)-5 b(,)19 b(a)h(v)n(ariable)f -(declaration)g(looks)h(lik)o(e:)-150 5400 y Ff({class})39 -b({identifier})f([':')h({type}])g(['=')g({init}])2049 --104 y Fs(That)29 b(is,)j(a)d(class)h(\()p Fm(local)e -Fs(or)h Fm(global)g Fs(scope,)h(or)f(the)g Fm(const)2049 --5 y Fs(quali\002er\),)21 b(the)h(name)f(of)h(the)f(v)n(ariable,)g(an)h -(optional)f(type,)g(and)h(an)2049 95 y(optional)k(initialization)g(v)n -(alue.)45 b(One)27 b(of)g(the)g(latter)g(tw)o(o)h(must)f(be)2049 -194 y(speci\002ed.)43 b(If)26 b(both)f(are,)i(then)f(naturally)f(the)h -(type)g(of)f(the)i(initial-)2049 294 y(ization)22 b(much)g(agree)g -(with)h(the)f(speci\002ed)g(type.)32 b(If)23 b(only)e(a)i(type)g(is) -2049 394 y(gi)n(v)o(en,)e(then)g(the)h(v)n(ariable)f(is)i(mark)o(ed)d -(as)j(not)e(ha)n(ving)g(a)h(v)n(alue)f(yet;)2049 493 -y(attempting)f(to)i(access)h(its)f(v)n(alue)f(before)g(\002rst)h -(setting)g(it)g(results)g(in)2049 593 y(a)f(run-time)d(error)-5 -b(.)2132 694 y(If)23 b(only)f(an)g(initializer)h(is)h(speci\002ed,)f -(then)f(Bro)h(infers)f(the)h(v)n(ari-)2049 793 y(able')-5 -b(s)19 b(type)g(from)f(the)h(form)f(of)h(the)g(initializer)-5 -b(.)25 b(This)19 b(pro)o(v)o(es)f(quite)2049 893 y(con)m(v)o(enient,)i -(as)j(does)f(the)g(ease)h(with)f(which)g(comple)o(x)f(tables)h(and)2049 -993 y(sets)f(can)f(be)g(initialized.)25 b(F)o(or)20 b(e)o(xample,)2049 -1160 y Ff(const)39 b(IRC)h(=)f({)h(6666/tcp,)e(6667/tcp,)h(6668/tcp)g -(};)2049 1348 y Fs(infers)20 b(a)g(type)g(of)g Fm(set[port])f -Fs(for)h Fm(IRC)p Fs(,)g(while:)2049 1515 y Ff(const)39 -b(ftp_serv)g(=)g({)h(ftp.lbl.gov,)e(www.lbl.gov)g(};)2049 -1703 y Fs(infers)33 b(a)h(type)g(of)f Fm(set[addr])f -Fs(for)i Fm(ftp)p 3393 1703 V 29 w(serv)p Fs(,)i(and)e(initial-)2049 -1802 y(izes)i(it)g(to)g(consist)f(of)g(the)h(IP)f(addresses)g(for)g -Fm(ftp.lbl.gov)2049 1902 y Fs(and)30 b Fm(www.lbl.gov)p -Fs(,)i(which,)g(as)g(noted)d(abo)o(v)o(e,)j(may)e(encom-)2049 -2001 y(pass)22 b(more)e(than)h(tw)o(o)h(addresses.)28 -b(Bro)21 b(infers)g(compound)e(indices)2049 2101 y(by)h(use)g(of)g -Fm([])g Fs(notation:)2049 2269 y Ff(const)39 b(allowed_services)f(=)h -({)2169 2348 y([ftp.lbl.gov,)e(ftp],)j([ftp.lbl.gov,)d(smtp],)2169 -2427 y([ftp.lbl.gov,)g(ident],)i([ftp.lbl.gov,)f(20/tcp],)2169 -2505 y([www.lbl.gov,)f(ftp],)j([www.lbl.gov,)d(smtp],)2169 -2584 y([www.lbl.gov,)g(ident],)i([www.lbl.gov,)f(20/tcp],)2169 -2663 y([nntp.lbl.gov,)f(nntp])2049 2742 y(};)2049 2929 -y Fs(results)25 b(in)g Fm(allowed)p 2736 2929 V 29 w(services)f -Fs(ha)n(ving)f(type)i Fm(set[addr,)2049 3029 y(port])p -Fs(.)47 b(Here)28 b(again,)g(the)g Fr(hostname)f Fs(constants)g(may)h -(result)f(in)2049 3129 y(more)20 b(than)f(one)h(IP)h(address.)k(An)o(y) -19 b(time)i(Bro)f(encounters)f(a)i Fm(list)2049 3228 -y Fs(of)33 b(v)n(alues)g(in)h(an)g(initialization,)h(it)g(replicates)e -(the)g(correspond-)2049 3328 y(ing)22 b(inde)o(x.)31 -b(Furthermore,)21 b(one)h(can)g(e)o(xplicitly)g(introduce)e(lists)k(in) -2049 3427 y(initializers)h(by)f(enclosing)f(a)i(series)g(of)f(v)n -(alues)g(\(with)g(compatible)2049 3527 y(types\))c(in)g -Fm([])p Fs(')-5 b(s,)21 b(so)f(the)g(abo)o(v)o(e)f(could)g(be)h -(written:)2049 3695 y Ff(const)39 b(allowed_services:)e(set[addr,)i -(port])g(=)h({)2169 3774 y([ftp.lbl.gov,)d([ftp,)j(smtp,)f(ident,)g -(20/tcp]],)2169 3852 y([www.lbl.gov,)e([ftp,)j(smtp,)f(ident,)g -(20/tcp]],)2169 3931 y([nntp.lbl.gov,)e(nntp])2049 4010 -y(};)2049 4198 y Fs(The)18 b(only)f(cost)i(of)f(such)g(an)g -(initialization)g(is)h(that)f(Bro')-5 b(s)19 b(algorithm)2049 -4297 y(for)k(inferring)e(the)i(v)n(ariable')-5 b(s)23 -b(type)g(from)f(its)i(initializer)f(currently)2049 4397 -y(gets)17 b(confused)d(by)i(these)h(embedded)d(lists,)k(so)f(the)f -(type)g(no)n(w)g(needs)2049 4496 y(to)k(be)g(e)o(xplicitly)g(supplied,) -f(as)h(sho)n(wn.)2132 4597 y(In)h(addition,)e(an)o(y)h(pre)n -(viously-de\002ned)d(global)j(v)n(ariable)g(can)h(be)2049 -4697 y(used)j(in)h(the)f(initialization)g(of)g(a)h(subsequent)e(global) -h(v)n(ariable.)37 b(If)2049 4796 y(the)19 b(v)n(ariable)f(used)g(in)h -(this)h(f)o(ashion)e(is)i(a)f Fm(set)p Fs(,)g(then)f(its)i(indices)f -(are)2049 4896 y(e)o(xpanded)e(as)j(if)f(enclosed)g(in)g(their)g(o)n -(wn)g(list.)26 b(So)20 b(the)f(abo)o(v)o(e)f(could)2049 -4996 y(be)i(further)f(simpli\002ed)h(to:)2049 5163 y -Ff(const)39 b(allowed_services:)e(set[addr,)i(port])g(=)h({)2169 -5242 y([ftp_serv,)e([ftp,)h(smtp,)g(ident,)g(20/tcp]],)2169 -5321 y([nntp.lbl.gov,)e(nntp])2049 5400 y(};)1929 5649 -y Fs(7)p eop -%%Page: 8 8 -8 7 bop -150 -104 a Fs(Initializing)17 b Fm(table)g Fs(v)n(alues)g -(looks)g(v)o(ery)g(similar)m(,)g(with)h(the)g(dif)n(fer)n(-)-150 --5 y(ence)h(that)g(a)h Fm(table)f Fs(initializer)g(includes)f(a)i -Fr(yield)h Fs(v)n(alue,)e(too.)24 b(F)o(or)-150 95 y(e)o(xample:)-150 -257 y Ff(global)39 b(port_names)f(=)i({)-30 336 y([7/tcp])e(=)i -("echo",)-30 415 y([9/tcp])e(=)i("discard",)-30 493 y([11/tcp])e(=)i -("systat",)-30 572 y(...)-150 651 y(};)-150 834 y Fs(which)20 -b(infers)f(a)i(type)f(of)g Fm(table[port])47 b(of)j(string)p -Fs(.)-67 934 y(W)-7 b(e)35 b(\002nd)e(that)h(these)g(forms)f(of)g -(initialization)g(shorthand)f(are)-150 1033 y(much)k(more)g(than)g -(syntactic)h(sugar)-5 b(.)74 b(Because)37 b(the)o(y)f(allo)n(w)h(us) --150 1133 y(to)29 b(de\002ne)g(lar)o(ge)f(tables)i(in)f(a)g(succinct)g -(f)o(ashion,)i(by)d(referring)f(to)-150 1232 y(pre)n(viously-de\002ned) -16 b(objects)j(and)g(by)h(concisely)e(capturing)g(forms)-150 -1332 y(of)i(replication)e(in)j(the)f(table,)g(we)g(can)g(specify)f -(intricate)h(polic)o(y)f(re-)-150 1432 y(lationships)31 -b(in)g(a)h(f)o(ashion)e(that')-5 b(s)32 b(both)e(easy)i(to)f(write)h -(and)e(easy)-150 1531 y(to)d(v)o(erify)-5 b(.)41 b(Certainly)-5 -b(,)27 b(we)g(w)o(ould)f(prefer)f(the)h(\002nal)h(de\002nition)e(of) --150 1631 y Fm(allowed)p 205 1631 25 4 v 29 w(services)g -Fs(abo)o(v)o(e)f(to)i(an)o(y)g(of)f(its)i(predecessors,)f(in)-150 -1731 y(terms)20 b(of)g(kno)n(wing)e(e)o(xactly)i(what)g(the)g(set)h -(consists)g(of.)-67 1830 y(Along)39 b(with)h(clarity)f(and)g -(conciseness,)44 b(another)38 b(important)-150 1930 y(adv)n(antage)31 -b(of)h Fm(Bro)p Fs(')-5 b(s)33 b(emphasis)f(on)g(tables)g(and)g(sets)i -(is)f(speed.)-150 2030 y(Consider)c(the)h(common)d(problem)h(of)i -(attempting)e(to)i(determine)-150 2129 y(whether)18 b(access)h(is)h -(allo)n(wed)e(to)h(service)g Fm(S)g Fs(of)g(host)f Fm(H)p -Fs(.)h(Rather)g(than)-150 2229 y(using)h(\(conceptually\):)-150 -2391 y Ff(if)40 b(\()f(H)h(==)g(ftp.lbl.gov)e(||)h(H)h(==)g -(www.lbl.gov)e(\))9 2470 y(if)i(\()g(S)f(==)h(ftp)f(||)h(S)g(==)f(smtp) -g(||)h(...)f(\))-150 2549 y(else)g(if)h(\()g(H)f(==)h(nntp.lbl.gov)e -(\))9 2627 y(if)i(\()g(S)f(==)h(nntp)f(\))-150 2706 y(...)-150 -2889 y Fs(we)21 b(can)f(simply)f(use:)-150 3051 y Ff(if)40 -b(\()f([S,)h(H])f(in)h(allowed_services)d(\))49 3130 -y(...)j(it's)f(okay)g(...)-150 3313 y Fs(The)23 b Fm(in)h -Fs(operation)d(translates)j(into)f(a)h(single)f(hash)g(table)h(lookup,) --150 3412 y(a)n(v)n(oiding)17 b(the)i(cascaded)f Fm(if)p -Fs(')-5 b(s)19 b(and)f(clearly)g(sho)n(wing)g(the)h(intent)f(of)-150 -3512 y(the)i(test.)-150 3750 y Fh(3.4)99 b(Statements)-150 -3906 y Fm(Bro)26 b Fs(currently)e(supports)h(only)g(a)i(modest)e(group) -f(of)i(statements,)-150 4005 y(which)g(we)i(ha)n(v)o(e)e(so)h(f)o(ar)g -(found)e(suf)n(\002cient.)45 b(Along)26 b(with)h(C-style)-150 -4105 y Fm(if)17 b Fs(and)g Fm(return)g Fs(and)g(e)o(xpression)e(e)n(v)n -(aluation,)h(other)g(statements)-150 4204 y(are:)38 b -Fm(print)27 b Fs(a)g(list)h(of)e(e)o(xpressions)g(to)g(a)i -Fm(file)e Fs(\()p Fr(stdout)i Fs(by)e(de-)-150 4304 y(f)o(ault\);)f -Fm(log)e Fs(a)h(list)h(of)e(e)o(xpressions;)h Fm(add)g -Fs(an)f(element)g(to)h(a)f Fm(set)p Fs(;)-150 4404 y -Fm(delete)g Fs(an)h(element)f(from)g(a)h Fm(set)g Fs(or)f(a)i -Fm(table)p Fs(;)g(and)e Fm(event)p Fs(,)-150 4503 y(which)d(generates)f -(a)i(ne)n(w)f(e)n(v)o(ent.)-67 4603 y(In)h(particular)m(,)e(the)h -(language)g(does)g(not)h(support)e(looping)g(using)-150 -4703 y(a)27 b Fm(for)p Fs(-style)g(construct.)43 b(W)-7 -b(e)28 b(are)f(w)o(ary)g(of)f(loops)h(in)g(e)n(v)o(ent)e(han-)-150 -4802 y(dlers)33 b(because)f(the)o(y)f(can)i(lead)f(to)h(arbitrarily)e -(lar)o(ge)h(processing)-150 4902 y(delays,)c(which)e(in)h(turn)f(could) -g(lead)g(to)h(pack)o(et)g(\002lter)g(drops.)43 b(W)-7 -b(e)-150 5001 y(w)o(anted)23 b(to)g(see)h(whether)e(we)i(could)e(still) -i(adequately)e(e)o(xpress)g(se-)-150 5101 y(curity)g(policies)g(in)g -Fm(Bro)g Fs(without)g(resorting)f(to)i(loops;)f(if)h(so,)g(then)-150 -5201 y(we)17 b(ha)n(v)o(e)e(some)h(con\002dence)f(that)h(e)n(v)o(ery)f -(e)n(v)o(ent)g(is)i(handled)e(quickly)-5 b(.)-150 5300 -y(So)23 b(f)o(ar)m(,)g(this)g(e)o(xperiment)e(has)i(been)f(successful.) -33 b(Looping)21 b(is)i(still)-150 5400 y(possible)29 -b(via)g(recursion)f(\(either)g(functions)g(calling)h(themselv)o(es,) -2049 -104 y(or)23 b(e)n(v)o(ent)g(handlers)f(generating)g(their)h(o)n -(wn)g(e)n(v)o(ents\),)h(b)n(ut)f(we)h(ha)n(v)o(e)2049 --5 y(not)c(found)e(a)j(need)e(to)i(resort)f(to)g(it.)2132 -96 y(Lik)o(e)i(in)h(C,)g(we)g(can)f(group)f(sets)j(of)e(statements)g -(into)g Fr(bloc)n(ks)h Fs(by)2049 196 y(enclosing)c(them)h(within)g -Fi(fg)p Fs(')-5 b(s.)25 b(Function)19 b(de\002nitions)g(look)g(lik)o -(e:)2049 367 y Ff(function)39 b(endpoint_id\(h:)e(addr,)j(p:)f(port\):) -g(string)2169 445 y({)2169 524 y(if)g(\()h(p)g(in)f(port_names)f(\)) -2288 603 y(return)h(fmt\("\045s/\045s",)f(h,)i(port_names[p]\);)2169 -682 y(else)2288 761 y(return)f(fmt\("\045s/\045d",)f(h,)i(p\);)2169 -840 y(})2049 1029 y Fs(Ev)o(ent)63 b(handler)f(de\002nitions)h(look)f -(the)i(same)g(e)o(xcept)e(that)2049 1129 y Fm(function)18 -b Fs(is)i(replaced)d(by)i Fm(event)f Fs(and)g(the)o(y)g(cannot)g -(specify)g(a)2049 1229 y(return)h(type.)24 b(See)d(Appendix)d(A)j(for)f -(an)g(e)o(xample.)2132 1330 y(Functions)f(are)i(in)m(v)n(ok)o(ed)d(the) -j(usual)f(w)o(ay)-5 b(,)20 b(as)h(e)o(xpressions)e(spec-)2049 -1430 y(i\002ed)28 b(by)f(the)g(function')-5 b(s)26 b(name)h(follo)n -(wed)f(by)h(its)i(ar)o(guments)c(en-)2049 1529 y(closed)d(within)f -(parentheses.)29 b(Ev)o(ents)21 b(are)h(generated)e(in)i(a)g(similar) -2049 1629 y(f)o(ashion,)31 b(e)o(xcept)d(using)h(the)g(k)o(e)o(yw)o -(ord)f Fm(event)h Fs(before)f(the)h(han-)2049 1728 y(dler')-5 -b(s)30 b(name)g(and)f(ar)o(gument)f(list.)56 b(Since)31 -b(e)n(v)o(ents)e(do)h(not)g(return)2049 1828 y(v)n(alues)17 -b(\(the)o(y)f(can')o(t,)h(since)g(the)o(y)g(are)g(processed)f -(asynchronously\),)2049 1928 y(e)n(v)o(ent)g(generation)e(is)k(a)e -(statement)h(in)f Fm(Bro)h Fs(and)f(not)g(an)g(e)o(xpression.)2132 -2029 y Fm(Bro)22 b Fs(also)f(allo)n(ws)h(\223global\224)f(statements)g -(that)h(are)f(not)h(part)f(of)g(a)2049 2129 y(function)15 -b(or)i(e)n(v)o(ent)f(handler)f(de\002nition.)23 b(These)16 -b(are)h(e)o(x)o(ecuted)e(after)2049 2228 y(parsing)30 -b(the)g(full)h(script,)i(and)d(can)h(of)g(course)f(in)m(v)n(ok)o(e)f -(functions)2049 2328 y(or)e(generate)e(e)n(v)o(ents.)45 -b(The)26 b(e)n(v)o(ent)g(engine)g(also)h(generates)f(e)n(v)o(ents)2049 -2427 y(during)21 b(dif)n(ferent)f(phases)j(of)f(its)h(operation:)28 -b Fm(bro)p 3555 2427 V 29 w(init)22 b Fs(when)g(it)2049 -2527 y(is)27 b(about)f(to)g(be)o(gin)f(operation,)h Fm(bro)p -3162 2527 V 29 w(done)g Fs(when)g(it)h(is)g(about)e(to)2049 -2627 y(terminate,)18 b(and)f Fm(bro)p 2696 2627 V 30 -w(signal)h Fs(when)f(it)j(recei)n(v)o(es)d(a)i(Unix)f(signal.)2132 -2728 y(One)32 b(dif)n(ference)e(between)h(de\002ning)g(functions)f(and) -i(de\002ning)2049 2828 y(e)n(v)o(ent)24 b(handlers)f(is)i(that)g -Fm(Bro)f Fs(allo)n(ws)h(multiple,)f(dif)n(ferent)f(de\002ni-)2049 -2927 y(tions)j(for)g(a)h(gi)n(v)o(en)e(e)n(v)o(ent)h(handler)-5 -b(.)42 b(Whene)n(v)o(er)25 b(an)i(e)n(v)o(ent)e(is)i(gen-)2049 -3027 y(erated,)f(each)f(instance)h(of)f(a)h(handler)e(is)j(in)m(v)n(ok) -o(ed)c(in)j(turn)f(\(in)h(the)2049 3127 y(order)g(the)o(y)h(appear)f -(in)h(the)h(script\).)46 b(So,)29 b(for)e(e)o(xample,)g(dif)n(ferent) -2049 3226 y(\(conceptual\))f(modules)i(can)g(each)g(de\002ne)g -Fm(bro)p 3516 3226 V 29 w(init)h Fs(handlers)2049 3326 -y(to)23 b(tak)o(e)f(care)g(of)h(their)f(initialization.)31 -b(W)-7 b(e)24 b(\002nd)e(this)h(considerably)2049 3425 -y(simpli\002es)17 b(the)g(task)h(of)e(creating)g(modular)f(sets)j(of)f -(e)n(v)o(ent)f(handlers,)2049 3525 y(b)n(ut)21 b(we)h(anticipate)f -(requiring)e(greater)i(control)f(in)h(the)h(future)e(o)o(v)o(er)2049 -3625 y(the)g(e)o(xact)g(order)f(in)h(which)g Fm(Bro)g -Fs(in)m(v)n(ok)o(es)f(multiple)h(handlers.)2049 3914 -y Ft(4)119 b(Implementation)30 b(issues)2049 4103 y Fs(W)-7 -b(e)24 b(implemented)c(the)j(Bro)g(e)n(v)o(ent)e(engine)h(and)g(script) -g(interpreter)2049 4203 y(in)35 b(C++,)k(currently)33 -b(about)g(27,000)g(lines.)69 b(In)34 b(this)i(section)e(we)2049 -4302 y(discuss)40 b(some)f(of)g(the)g(signi\002cant)g(implementation)e -(decisions)2049 4402 y(and)29 b(tradeof)n(fs.)53 b(W)-7 -b(e)31 b(defer)e(to)h Fi(x)g Fs(5)g(discussion)f(of)h(ho)n(w)f(Bro)h -(de-)2049 4502 y(fends)i(against)f(attacks)h(on)g(the)g(monitoring)e -(system,)35 b(and)d(post-)2049 4601 y(pone)23 b(application-speci\002c) -f(issues)k(until)e Fi(x)g Fs(6,)i(as)f(that)f(discussion)2049 -4701 y(bene\002ts)c(from)f(notions)g(de)n(v)o(eloped)f(in)i -Fi(x)h Fs(5.)2132 4802 y Fl(Use)26 b(of)f(C++.)41 b Fs(Our)25 -b(use)g(of)g(C++)h(w)o(as)g(moti)n(v)n(ated)d(by)i(our)g(suc-)2049 -4902 y(cessful)33 b(e)o(xperience)d(with)j(using)f(it)h(for)f -(implementing)e(another)2049 5001 y(e)n(v)o(ent-oriented)j(script)j -(interpreter)m(,)i(the)e(Glish)g(\223softw)o(are)f(b)n(us\224)2049 -5101 y([PS93)o(].)29 b(F)o(or)21 b(Bro,)h(this)g(has)f(been)g(a)h -(clear)f(success.)29 b(Class)23 b(hierar)n(-)2049 5201 -y(chies)g(map)f(well)i(to)e(protocol)f(layers,)i(which)g(then)f -(simpli\002es)h(e)o(x-)2049 5300 y(tending)e(the)i(e)n(v)o(ent)e -(engine)h(and)g(script)g(interpreter)-5 b(.)31 b(W)-7 -b(e)24 b(ha)n(v)o(e)e(not)2049 5400 y(percei)n(v)o(ed)17 -b(an)o(y)h(performance)e(problems)i(related)g(to)i(the)f(choice)f(of) -1929 5649 y(8)p eop -%%Page: 9 9 -9 8 bop -150 -104 a Fs(C++;)19 b(the)e(choice)g(of)g(interpreting)e(v)o -(ersus)i(compiling)f(\(see)i(belo)n(w\))-150 -5 y(is)j(clearly)f(a)g -(more)g(dominant)e(ef)n(fect.)-67 99 y Fl(Single-thr)o(eaded)k(design.) -37 b Fs(Since)23 b(e)n(v)o(ent)g(handling)f(lies)i(at)h(the)-150 -199 y(heart)20 b(of)g(the)g(system,)h(it)g(is)g(natural)f(to)g -(consider)f(a)i(multi-threaded)-150 298 y(design,)e(with)h(one)f -(thread)g(per)h(acti)n(v)o(e)f(e)n(v)o(ent)g(handler)-5 -b(.)24 b(W)-7 b(e)21 b(ha)n(v)o(e)e(so)-150 398 y(f)o(ar)25 -b(resisted)g(this)g(approach,)e(because)h(of)h(concerns)e(that)i(it)h -(could)-150 498 y(lead)20 b(to)g(subtle)h(race)e(conditions)g(in)i -Fm(Bro)f Fs(scripts.)-67 602 y(An)25 b(important)f(consequence)e(of)j -(a)h(single-threaded)c(design)j(is)-150 701 y(that)j(the)g(system)g -(must)g(be)g(careful)f(before)g(initiating)g(an)o(y)g(acti)n(v-)-150 -801 y(ity)h(that)g(may)f(potentially)f(block)h(w)o(aiting)h(for)f(a)h -(resource,)g(lead-)-150 900 y(ing)d(to)h(pack)o(et)f(\002lter)h(drops)e -(as)j(the)e(engine)g(f)o(ails)h(to)g(consume)e(in-)-150 -1000 y(coming)g(traf)n(\002c.)41 b(A)26 b(particular)e(concern)g(is)i -(performing)d(Domain)-150 1100 y(Name)18 b(System)h(\(DNS\))f(lookups,) -f(which)h(can)g(tak)o(e)g(man)o(y)f(seconds)-150 1199 -y(to)24 b(complete)e(or)i(time)g(out.)35 b(Currently)-5 -b(,)22 b(Bro)i(only)f(performs)f(such)-150 1299 y(lookups)k(when)h -(parsing)g(its)i(input)e(\002le,)j(b)n(ut)e(we)g(w)o(ant)g(in)f(the)h -(fu-)-150 1399 y(ture)19 b(to)g(be)f(able)h(to)g(mak)o(e)f(address)h -(and)f(hostname)g(translations)g(on)-150 1498 y(the)23 -b(\003y)-5 b(,)22 b(both)g(to)h(generate)e(clearer)h(messages,)h(and)f -(to)h(detect)g(cer)n(-)-150 1598 y(tain)17 b(types)f(of)h(attacks.)24 -b(Consequently)-5 b(,)15 b(Bro)i(includes)f(customized)-150 -1697 y(non-blocking)d(DNS)18 b(routines)e(that)i(perform)d(DNS)j -(lookups)d(asyn-)-150 1797 y(chronously)-5 b(.)-67 1901 -y(W)e(e)22 b(may)e(yet)h(adopt)f(a)h(multi-threaded)d(design.)26 -b(A)c(more)e(lik)o(ely)-150 2001 y(possibility)42 b(is)h(e)n(v)n -(olving)e(Bro)h(to)n(w)o(ards)g(a)h(distrib)n(uted)e(design,)-150 -2100 y(in)28 b(which)f(loosely-coupled,)f(multiple)h(Bro')-5 -b(s)29 b(on)e(separate)g(hosts)-150 2200 y(monitor)17 -b(the)h(same)g(netw)o(ork)f(link.)24 b(Each)18 b(Bro)g(w)o(ould)f(w)o -(atch)i(a)f(dif-)-150 2299 y(ferent)k(type)f(of)i(traf)n(\002c)f -(\(e.g.,)f(HTTP)i(or)f(NFS\))h(and)f(communicate)-150 -2399 y(only)c(at)h(a)g(high)e(le)n(v)o(el,)i(to)f(con)m(v)o(e)o(y)e -(current)i(threat)g(information.)1732 2369 y Fn(3)1791 -2399 y Fs(A)-150 2499 y(further)i(e)o(xtension)f(of)i(this)h(notion)e -(is)i(a)g(more)e(general)g(distrib)n(uted)-150 2598 y(design,)25 -b(in)f(which)g(multiple)g(Bro')-5 b(s)25 b(w)o(atch)g(multiple)f -(links,)h(parti-)-150 2698 y(tioning)i(the)h(monitoring)d(w)o(orkload;) -30 b(and)e(also)g(interacting)e(with)-150 2798 y(host-based)18 -b(agents.)24 b(Others)19 b(ha)n(v)o(e)g(recently)f(also)i(be)o(gun)d -(pursuing)-150 2897 y(distrib)n(uted)i(architectures)g([Ci99)o(,)i -(In99)n(].)-67 3001 y Fl(Managing)27 b(timers.)49 b Fs(Bro)28 -b(uses)g(numerous)e(timers)i(internally)-150 3101 y(for)18 -b(operations)g(such)g(as)i(timing)f(out)f(a)i(connection)c -(establishment)-150 3200 y(attempt.)57 b(It)31 b(sometimes)g(has)g -(thousands)e(of)i(timers)g(pending)e(at)-150 3300 y(a)g(gi)n(v)o(en)f -(moment.)50 b(Consequently)-5 b(,)29 b(it)h(is)g(important)d(that)i -(timers)-150 3400 y(be)j(v)o(ery)g(lightweight:)49 b(quick)31 -b(to)i(set)g(and)f(to)h(e)o(xpire.)60 b(Our)33 b(ini-)-150 -3499 y(tial)f(implementation)e(used)h(a)h(single)f(priority)g(heap,)i -(which)e(we)-150 3599 y(found)d(attracti)n(v)o(e)h(since)h(insert)g -(and)f(delete)h(operations)e(both)h(re-)-150 3699 y(quire)19 -b(only)f Fj(O)r Fc(\(log)q(\()p Fj(N)9 b Fc(\)\))21 b -Fs(time)f(if)f(the)h(heap)f(contains)f Fj(N)29 b Fs(elements.)-150 -3798 y(Ho)n(we)n(v)o(er)m(,)22 b(we)i(found)e(that)h(when)g(the)h(heap) -f(gro)n(ws)f(quite)i(lar)o(ge\227)-150 3898 y(such)29 -b(as)g(during)f(a)h(hostile)g(port)f(scan)h(that)g(creates)g(hundreds)e -(of)-150 3997 y(ne)n(w)d(connections)e(each)i(second\227then)e(this)i -(o)o(v)o(erhead)e(becomes)-150 4097 y(signi\002cant.)43 -b(Consequently)-5 b(,)25 b(we)i(percei)n(v)o(ed)d(a)j(need)e(to)i -(redesign)-150 4197 y(timers)21 b(to)g(bring)e(the)i(o)o(v)o(erhead)d -(closer)i(to)h Fj(O)r Fc(\(1\))p Fs(.)28 b(T)-7 b(o)21 -b(achie)n(v)o(e)e(this,)-150 4296 y(Bro)h(no)n(w)g(uses)h(\223calendar) -d(queues\224)i(instead)g([Br88)n(].)-67 4400 y(A)36 b(related)e(issue)i -(with)f(managing)e(timers)j(concerns)d(e)o(xactly)-150 -4500 y(when)15 b(to)i(e)o(xpire)e(timers.)23 b(Bro)16 -b(deri)n(v)o(es)g(its)h(notion)d(of)i(time)h(from)e(the)-150 -4599 y(timestamps)28 b(pro)o(vided)d(by)j Fm(libpcap)g -Fs(with)g(each)g(pack)o(et)f(it)i(de-)-150 4699 y(li)n(v)o(ers.)d -(Whene)n(v)o(er)19 b(this)i(clock)f(adv)n(ances)g(to)h(a)g(time)g -(later)f(than)h(the)-150 4799 y(\002rst)e(element)e(on)g(the)h(timer)g -(queue,)e(Bro)i(be)o(gins)f(remo)o(ving)e(timers)-150 -4898 y(from)27 b(the)h(queue)f(and)g(processing)g(their)g(e)o -(xpiration,)h(continuing)-150 4998 y(until)22 b(the)h(queue)e(is)i -(empty)f(or)g(its)i(\002rst)f(element)f(has)g(a)h(timestamp)p --150 5086 801 4 v -65 5140 a Fk(3)-30 5163 y Fp(Some)c(systems,)g(such) -g(as)g(DIDS)g(and)h(CSM,)e(orchestrate)23 b(multiple)e(monitors)-150 -5242 y(w)o(atching)g(multiple)f(netw)o(ork)h(links,)e(in)g(order)g(to)g -(track)h(users)e(as)h(the)o(y)g(mo)o(v)o(e)g(from)-150 -5321 y(machine)d(to)e(machine)i([MHL94,)d(WFP96].)19 -b(These)c(dif)n(fer)g(from)f(what)g(we)h(en)m(vision)-150 -5400 y(for)i(Bro)g(in)h(that)g(the)o(y)g(require)g(each)h(host)e(in)g -(the)h(netw)o(ork)h(to)e(run)g(a)g(monitor)l(.)2049 -104 -y Fs(later)29 b(than)f(the)h(current)f(time.)51 b(This)29 -b(approach)d(is)k(\003a)o(wed,)g(ho)n(w-)2049 -5 y(e)n(v)o(er)m(,)i -(because)e(in)g(some)h(situations\227such)e(as)j(port)e(scans\227the) -2049 95 y(e)n(v)o(ent)23 b(engine)g(may)g(\002nd)h(it)g(needs)g(to)g(e) -o(xpire)e(hundreds)g(of)h(timers)2049 194 y(that)29 b(ha)n(v)o(e)e -(suddenly)g(become)g(due,)j(because)e(the)g(clock)g(has)h(ad-)2049 -294 y(v)n(anced)d(by)h(a)h(lar)o(ge)e(amount)g(due)h(to)g(a)h(lull)g -(in)f(incoming)f(traf)n(\002c.)2049 394 y(W)-7 b(e)23 -b(a)n(v)n(oid)f(incurring)f(a)h(lar)o(ge)g(processing)f(spik)o(e)h(in)g -(this)h(situation)2049 493 y(by)e(placing)f(an)h(upper)f(limit)i -Fj(k)j Fs(on)c(the)g(number)f(of)h(timers)g(e)o(xpired)2049 -593 y(for)16 b(an)o(y)g(single)g(adv)n(ance)f(of)i(the)f(clock.)24 -b(Doing)15 b(so)i(trades)g(of)n(f)f(timer)2049 693 y(e)o(xactness)j -(for)h(spreading)e(out)h(load.)25 b(Since)20 b(we)g(do)f(not)h(percei)n -(v)o(e)e(a)2049 792 y(requirement)e(for)i(precise)h(timers,)g(this)g -(is)h(an)e(acceptable)g(compro-)2049 892 y(mise.)2132 -996 y Fl(Implementing)28 b(r)o(egular)f(expr)o(essions.)47 -b Fs(Bro)28 b(uses)g(a)g(custom)2049 1095 y(re)o(gular)n(-e)o -(xpression)e(matching)i(library)-5 b(,)30 b(rather)e(than)h(reusing)g -(an)2049 1195 y(e)o(xisting)d(one,)i(for)f(tw)o(o)g(reasons.)46 -b(First,)29 b(we)e(were)g(unable)f(to)i(lo-)2049 1294 -y(cate)33 b(a)h(high)e(performance)f(re)o(gular)g(e)o(xpression)h -(library)g(with)h(a)2049 1394 y(redistrib)n(ution)25 -b(license)h(we)h(found)e(acceptable.)43 b(In)26 b(addition,)h(in-)2049 -1494 y(trusion)20 b(detection)f(pattern-matching)e(dif)n(fers)j(from)f -(more)h(typical)2049 1593 y(te)o(xt)g(matching)f(in)h(tw)o(o)h(w)o -(ays.)2132 1697 y(First,)26 b(we)g(w)o(ant)e(the)h(ability)g(to)g -(match)f(te)o(xt)g(piecemeal,)h(so)g(we)2049 1797 y(can)19 -b(feed)f(the)h(matcher)e(ne)n(w)i(chunks)e(of)i(te)o(xt)g(as)g(the)o(y) -f(arri)n(v)o(e,)g(with-)2049 1896 y(out)23 b(ha)n(ving)g(to)h -(construct)f(a)h(cop)o(y)f(of)g(the)h(entire)f(string)g(to)h(match.) -2049 1996 y(Second,)31 b(we)e(anticipate)g(matching)f(sets)j(of)e -(patterns)g(and)g(w)o(ant-)2049 2096 y(ing)g(to)h(kno)n(w)f(which)g -(subset)h(were)f(matched)g(by)g(a)h(gi)n(v)o(en)e(set)j(of)2049 -2195 y(te)o(xt,)26 b(and)f(for)g(performance)e(reasons)i(we)h(w)o(ant)g -(to)f(do)h(the)f(match)2049 2295 y(with)20 b(a)f(single)h(\002nite)f -(automaton)f(rather)g(than)h(trying)f(each)h(pattern)2049 -2395 y(sequentially)-5 b(.)2132 2498 y(Since)22 b(we)h(had)f(e)o -(xperience)e(writing)h(a)i(high)e(performance)f(re)o(g-)2049 -2598 y(ular)28 b(e)o(xpression)e(compiler)h([P)o(a96)n(],)j(and)e(one)f -(that)h(already)f(sup-)2049 2698 y(ported)22 b(the)i(second)e(of)h(the) -h(abo)o(v)o(e)d(requirements,)h(we)i(decided)e(to)2049 -2797 y(tak)o(e)f(that)g(compiler)f(and)g(reimplement)f(it)j(in)f(C++)g -(to)g(\002t)h(into)f(Bro.)2049 2897 y(Doing)k(so)h(w)o(as)g(actually)f -(considerably)e(easier)j(than)f(anticipated,)2049 2996 -y(and)30 b(the)g(only)g(remaining)f(piece)h(for)g(supporting)e(the)i -(abo)o(v)o(e)f(re-)2049 3096 y(quirements)19 b(no)n(w)g(is)i(the)f -(corresponding)d(Bro)j(interpreter)f(modi\002-)2049 3196 -y(cations.)2132 3300 y(One)24 b(\002nal)h(f)o(acet)f(of)g(implementing) -e(re)o(gular)h(e)o(xpressions)f(con-)2049 3399 y(cerns)36 -b(caching:)55 b(we)36 b(emplo)o(y)f(a)h(lar)o(ge)f(number)f(of)h -(patterns)g(in)2049 3499 y(our)29 b(analysis)g(\(particularly)f(for)h -(scanning)f(interacti)n(v)o(e)g(sessions,)2049 3598 y(as)33 -b(discussed)f(in)g Fi(x)h Fs(6.5\).)60 b(These)32 b(can)g(tak)o(e)g(a)h -(lar)o(ge)e(amount)g(of)2049 3698 y(CPU)24 b(time)e(\(minutes\))g(to)h -(compile,)f(which)g(is)h(problematic)e(when)2049 3798 -y(we)j(w)o(ant)f(to)h(start)g(up)f(the)g(monitor)f(quickly)-5 -b(.)33 b(Consequently)-5 b(,)21 b(Bro)2049 3897 y(maintains)36 -b(a)g(cache)g(of)g(pre)n(viously-compiled)c(re)o(gular)j(e)o(xpres-) -2049 3997 y(sions,)d(and)d(if)h(called)f(upon)f(to)i(compile)f(one)g -(that)g(is)i(already)d(in)2049 4097 y(the)j(cache,)j(simply)d(loads)g -(the)g(compiled)f(v)o(ersion,)i(taking)f(v)o(ery)2049 -4196 y(little)21 b(time.)2132 4300 y Fl(Inter)o(pr)o(eting)g(vs.)31 -b(compiling)o(.)g Fs(Presently)-5 b(,)21 b(Bro)h(interprets)g(the)2049 -4400 y(polic)o(y)j(script:)38 b(that)27 b(is,)i(it)e(parses)g(the)f -(script)h(into)f(a)h(tree)g(of)f(C++)2049 4499 y(objects)i(that)h -(re\003ect)f(an)g(abstract)g(syntax)g(tree)g(\(AST\),)g(and)g(then)2049 -4599 y(e)o(x)o(ecutes)i(portions)g(of)h(the)g(tree)g(as)h(needed)e(by)h -(in)m(v)n(oking)e(a)j(vir)n(-)2049 4698 y(tual)27 b(e)n(v)n(aluation)f -(method)f(at)j(the)f(root)f(of)h(a)h(gi)n(v)o(en)d(subtree.)45 -b(This)2049 4798 y(method)17 b(in)h(turn)g(recursi)n(v)o(ely)e(in)m(v)n -(ok)o(es)i(e)n(v)n(aluation)e(methods)i(on)g(its)2049 -4898 y(children.)2132 5001 y(Such)32 b(a)g(design)g(has)g(the)g -(virtues)g(of)g(simplicity)g(and)f(ease)i(of)2049 5101 -y(deb)n(ugging,)24 b(b)n(ut)h(comes)g(at)h(the)f(cost)h(of)f -(considerable)e(o)o(v)o(erhead.)2049 5201 y(From)h(its)h(inception,)f -(we)h(intended)e Fm(Bro)h Fs(to)h(readily)e(admit)h(com-)2049 -5300 y(pilation)29 b(to)h(a)f(lo)n(w-le)n(v)o(el)g(virtual)g(machine.) -51 b(Ex)o(ecution)28 b(pro\002les)2049 5400 y(of)h(the)f(current)g -(implementation)f(indicate)h(that)h(the)g(interpreti)n(v)o(e)1929 -5649 y(9)p eop -%%Page: 10 10 -10 9 bop -150 -104 a Fs(o)o(v)o(erhead)17 b(is)j(indeed)e -(signi\002cant,)h(so)h(we)g(anticipate)f(de)n(v)o(eloping)d(a)-150 --5 y(compiler)23 b(and)h(optimizer)-5 b(.)36 b(\(The)23 -b(current)g(interpreter)g(does)h(some)-150 95 y(simple)40 -b(constant)f(folding)g(and)g(peephole)g(optimization)f(when)-150 -194 y(b)n(uilding)19 b(the)h(AST)-6 b(,)20 b(b)n(ut)g(no)g(more.\))-67 -298 y(Using)25 b(an)f(interpreter)f(also)i(inadv)o(ertently)d -(introduced)g(an)j(im-)-150 398 y(plementation)k(problem.)55 -b(By)31 b(structuring)e(the)i(interpreter)e(such)-150 -497 y(that)23 b(it)h(recursi)n(v)o(ely)d(in)m(v)n(ok)o(es)h(virtual)g -(e)n(v)n(aluation)f(methods)h(on)h(the)-150 597 y(AST)-6 -b(,)23 b(we)h(wind)e(up)h(intricately)f(tying)h(the)g -Fm(Bro)g Fs(e)n(v)n(aluation)e(stack)-150 697 y(with)i(the)h(C++)f -(run-time)f(stack.)34 b(Consequently)-5 b(,)22 b(we)h(cannot)f(eas-) --150 796 y(ily)f(b)n(undle)e(up)h(a)h Fm(Bro)f Fs(function')-5 -b(s)19 b(e)o(x)o(ecution)f(state)j(into)f(a)h(closure)-150 -896 y(to)i(e)o(x)o(ecute)f(at)i(some)f(later)g(point)f(in)i(time.)34 -b(Y)-8 b(et)23 b(we)h(w)o(ould)e(lik)o(e)h(to)-150 996 -y(ha)n(v)o(e)g(this)g(functionality)-5 b(,)21 b(so)j -Fm(Bro)f Fs(scripts)g(ha)n(v)o(e)g(timers)g(a)n(v)n(ailable)-150 -1095 y(to)e(them;)f(the)h(semantics)f(of)h(these)f(timers)h(are)g(to)f -(e)o(x)o(ecute)g(a)h(block)-150 1195 y(of)k(statements)h(when)f(a)i -(timer)e(e)o(xpires,)h(including)e(access)j(to)f(the)-150 -1294 y(local)j(v)n(ariables)g(of)g(the)h(function)e(or)h(e)n(v)o(ent)f -(handler)g(scheduling)-150 1394 y(the)23 b(timer)-5 b(.)35 -b(Therefore,)22 b(adding)g(timers)h(to)h Fm(Bro)f Fs(will)h(require)e -(at)i(a)-150 1494 y(minimum)g(implementing)g(an)i(e)o(x)o(ecution)d -(stack)j(for)f Fm(Bro)h Fs(scripts)-150 1593 y(separate)20 -b(from)f(that)h(of)g(the)g(interpreter)-5 b(.)-67 1697 -y Fl(Checkpointing)o(.)30 b Fs(W)-7 b(e)23 b(run)e(Bro)h(continuously)e -(to)i(monitor)e(our)-150 1797 y(DMZ)d(netw)o(ork.)22 -b(Ho)n(we)n(v)o(er)m(,)16 b(we)h(need)f(to)h(periodically)e(checkpoint) --150 1896 y(its)24 b(operation,)e(both)h(to)g(reclaim)g(memory)f(tied)h -(up)g(in)g(remember)n(-)-150 1996 y(ing)16 b(state)h(for)f -(long-dormant)d(connections)h(\(because)h(we)i(don')o(t)e(yet)-150 -2096 y(ha)n(v)o(e)j(timers)i(in)f(the)g(scripting)f(language;)g(see)h -(abo)o(v)o(e\),)e(and)i(to)g(col-)-150 2195 y(lect)i(a)f(snapshot)f -(for)h(archi)n(ving)e(and)h(of)n(f-line)g(analysis)h(\(discussed)-150 -2295 y(belo)n(w\).)-67 2399 y(Checkpointing)15 b(is)j(currently)e(a)i -(three-stage)e(process.)24 b(First,)18 b(we)-150 2498 -y(run)27 b(a)g(ne)n(w)h(instance)f(of)g(Bro)g(that)h(parses)f(the)g -(polic)o(y)g(script)g(and)-150 2598 y(resolv)o(es)d(all)h(of)f(the)g -(DNS)h(names)f(in)h(it.)38 b(Because)24 b(we)h(ha)n(v)o(e)f(non-)-150 -2698 y(blocking)e(DNS)j(routines,)f(Bro)h(can)f(perform)e(a)j(lar)o(ge) -e(number)g(of)-150 2797 y(lookups)30 b(in)h(parallel,)i(as)f(well)f(as) -h(timing)f(out)f(lookup)g(attempts)-150 2897 y(whene)n(v)o(er)c(it)i -(chooses.)47 b(F)o(or)27 b(each)h(lookup,)f(it)i(compares)d(the)i(re-) --150 2996 y(sults)e(with)e(an)o(y)g(it)i(may)e(ha)n(v)o(e)g(pre)n -(viously)f(cached)g(and)i(generates)-150 3096 y(corresponding)19 -b(e)n(v)o(ents)k(\(mapping)d(v)n(alid,)j(mapping)e(un)m(v)o(eri\002ed)f -(if)-150 3196 y(it)25 b(had)e(to)i(time)f(out)g(the)g(lookup,)f(or)h -(mapping)e(changed\).)35 b(It)24 b(then)-150 3295 y(updates)19 -b(the)i(DNS)f(cache)g(\002le)h(and)f(e)o(xits.)-67 3399 -y(In)25 b(the)h(second)e(stage,)j(we)f(run)e(another)g(instance)h(of)g -(Bro,)i(this)-150 3499 y(time)j(specifying)e(that)i(it)g(should)e(only) -h(consult)g(the)h(DNS)g(cache)-150 3598 y(and)15 b(not)g(perform)f -(lookups.)21 b(Because)16 b(it)g(w)o(orks)f(directly)g(out)g(of)h(the) --150 3698 y(cache,)27 b(it)g(starts)g(v)o(ery)e(quickly)-5 -b(.)42 b(After)26 b(w)o(aiting)g(a)h(short)f(interv)n(al,)-150 -3798 y(we)k(then)e(send)h(a)h(signal)f(to)g(the)g(long-running)c(Bro)30 -b(telling)f(it)g(to)-150 3897 y(terminate.)24 b(When)c(it)h(e)o(xits,)f -(the)g(checkpointing)d(is)22 b(complete.)-67 4001 y(W)-7 -b(e)31 b(\002nd)f(the)g(checkpointing)d(de\002cient)j(in)g(tw)o(o)h(w)o -(ays.)55 b(First,)-150 4101 y(it)26 b(w)o(ould)f(be)h(simpler)f(to)h -(coordinate)e(a)i(checkpoint)d(if)j(a)g(ne)n(w)g(in-)-150 -4200 y(stance)33 b(of)g(Bro)g(could)f(directly)g(signal)h(an)g(old)g -(instance)g(to)g(an-)-150 4300 y(nounce)20 b(that)h(it)i(is)f(ready)f -(to)g(tak)o(e)h(o)o(v)o(er)e(monitoring.)27 b(Second,)20 -b(and)-150 4400 y(more)25 b(important,)g(currently)f(no)h(state)i -(survi)n(v)o(es)d(the)i(checkpoint-)-150 4499 y(ing.)43 -b(In)26 b(particular)m(,)h(if)f(the)h(older)e(Bro)i(has)f(identi\002ed) -g(some)g(sus-)-150 4599 y(pect)f(acti)n(vity)g(and)g(is)i(w)o(atching)e -(it)h(particularly)e(closely)h(\(say)-5 b(,)26 b(by)-150 -4698 y(recording)16 b(all)i(of)g(its)h(pack)o(ets\),)f(this)h -(information)c(is)k(lost)g(when)f(the)-150 4798 y(ne)n(w)i(Bro)g(tak)o -(es)h(o)o(v)o(er)-5 b(.)24 b(Clearly)-5 b(,)19 b(we)i(need)e(to)i -(\002x)f(this.)-67 4902 y Fl(Off-line)30 b(analysis.)56 -b Fs(As)31 b(mentioned)e(abo)o(v)o(e,)i(one)f(reason)g(for)-150 -5001 y(checkpointing)j(the)i(system)h(is)h(to)f(f)o(acilitate)g(of)n -(f-line)e(analysis.)-150 5101 y(The)24 b(\002rst)i(step)f(of)f(this)h -(analysis)g(is)g(to)g(cop)o(y)f(the)g Fm(libpcap)g Fs(sa)n(v)o(e)-150 -5201 y(\002le)k(and)g(an)o(y)e(\002les)j(generated)d(by)h(the)h(polic)o -(y)f(script)h(to)f(an)h(anal-)-150 5300 y(ysis)h(machine.)46 -b(Our)28 b(polic)o(y)f(script)h(generates)f(six)h(such)g(\002les:)41 -b(a)-150 5400 y(summary)24 b(of)h(all)h(connection)d(acti)n(vity)-5 -b(,)25 b(including)f(starting)h(time,)2049 -104 y(duration,)c(size)i -(in)f(each)g(direction,)f(protocol,)g(IP)h(addresses,)g(con-)2049 --5 y(nection)i(state,)j(and)e(an)o(y)f(additional)g(information)f -(\(such)i(as)h(user)n(-)2049 95 y(name,)21 b(when)g(identi\002ed\);)h -(a)g(summary)e(of)h(the)h(netw)o(ork)e(interf)o(ace)2049 -194 y(and)30 b(pack)o(et)g(\002lter)i(statistics;)37 -b(a)31 b(list)h(of)f(all)g(generated)e(log)i(mes-)2049 -294 y(sages;)f(summaries)c(of)g(Finger)f(and)h(FTP)h(commands;)h(and)e -(a)g(list)2049 394 y(of)20 b(all)h(unusual)e(netw)o(orking)f(e)n(v)o -(ents.)2132 498 y(Re)o(garding)k(this)j(last,)h(the)e(e)n(v)o(ent)g -(engine)f(identi\002es)i(more)e(than)2049 598 y(70)17 -b(dif)n(ferent)f(types)h(of)g(unusual)f(beha)n(vior)m(,)f(such)j(as)g -(incorrect)d(con-)2049 697 y(nection)h(initiations)h(and)f -(terminations,)g(checksum)g(errors,)g(pack)o(et)2049 -797 y(length)h(mismatches,)h(and)f(protocol)f(violations.)24 -b(F)o(or)17 b(each,)h(it)g(gen-)2049 896 y(erates)g(a)h -Fm(conn)p 2522 896 25 4 v 29 w(weird)f Fs(or)g Fm(net)p -3057 896 V 29 w(weird)g Fs(e)n(v)o(ent,)f(identifying)g(the)2049 -996 y(beha)n(vior)25 b(with)j(a)f(prede\002ned)e(string.)46 -b(Our)26 b(polic)o(y)g(script)i(uses)f(a)2049 1096 y -Fm(table[string])47 b(of)j(count)19 b Fs(to)h(map)f(these)h(strings)f -(to)h(one)2049 1195 y(of)j(\223ignore,)-6 b(\224)22 b(\223\002le,)-6 -b(\224)24 b(\223log)e(al)o(w)o(ays,)-6 b(\224)24 b(\223log)f(once)f -(per)h(connection,)-6 b(\224)2049 1295 y(and)26 b(\223log)f(once)h(per) -g(originating)e(source)h(address,)-6 b(\224)27 b(meaning)e(ig-)2049 -1395 y(nore)e(the)i(beha)n(vior)e(entirely)-5 b(,)23 -b(record)g(it)i(to)g(the)f(anomaly)f(\002le,)j(log)2049 -1494 y(it)f(\(real-time)f(noti\002cation\))f(and)h(record)f(it)j(to)f -(the)f(\002le,)i(and)f(log)f(it)2049 1594 y(b)n(ut)i(only)g(the)g -(\002rst)h(time)f(it)h(occurs)f(for)f(the)i(gi)n(v)o(en)e(connection)f -(or)2049 1693 y(the)16 b(gi)n(v)o(en)e(source)i(address.)23 -b(Some)15 b(anomalies)g(pro)o(v)o(e)f(surprisingly)2049 -1793 y(common,)j(and)i(on)g(a)g(typical)g(day)g(the)g(anomaly)e(\002le) -j(contains)f(se)n(v-)2049 1893 y(eral)k(thousand)e(entries,)j(e)n(v)o -(en)e(though)f(our)i(script)g(suppresses)f(du-)2049 1992 -y(plicate)h(messages.)32 b(\(See)23 b Fi(x)g Fs(7.3)f(belo)n(w)g(for)g -(further)f(discussion)h(of)2049 2092 y(anomalies.\))2132 -2196 y(All)i(of)e(the)h(copied)f(\002les)h(thus)g(form)f(an)h(archi)n -(v)n(al)f(record)f(of)i(the)2049 2296 y(day')-5 b(s)17 -b(traf)n(\002c.)23 b(W)-7 b(e)18 b(k)o(eep)e(these)h(\002les)h -(inde\002nitely)-5 b(.)22 b(The)o(y)16 b(can)g(pro)o(v)o(e)2049 -2395 y(in)m(v)n(aluable)28 b(when)i(we)h(disco)o(v)o(er)e(a)h(break-in) -f(that)h(\002rst)i(occurred)2049 2495 y(weeks)19 b(or)f(months)g(in)h -(the)g(past.)25 b(In)18 b(addition,)g(once)g(we)h(ha)n(v)o(e)f(iden-) -2049 2595 y(ti\002ed)25 b(an)f(attacking)g(site,)i(we)f(can)f(run)g(it) -h(through)e(the)h(archi)n(v)o(e)f(to)2049 2694 y(\002nd)c(an)o(y)f -(other)h(hosts)g(it)h(may)f(ha)n(v)o(e)g(attack)o(ed)f(that)i(the)f -(monitoring)2049 2794 y(f)o(ailed)j(to)g(detect)g(\(for)f(e)o(xample,)g -(the)h(attack)o(er)f(has)i(obtained)d(a)i(list)2049 2894 -y(of)e(passw)o(ords)g(using)f(a)i(passw)o(ord-snif)n(fer\).)2132 -2998 y(Finally)-5 b(,)28 b(the)f(of)n(f-line)f(analysis)h(generates)f -(a)i(traf)n(\002c)f(summary)2049 3097 y(highlighting)14 -b(the)i(b)n(usiest)h(hosts)f(and)g(gi)n(ving)e(the)j(v)n(olume)e -(\(number)2049 3197 y(of)23 b(connections)e(and)i(bytes)g -(transferred\))e(due)i(to)h(dif)n(ferent)d(appli-)2049 -3297 y(cations.)27 b(As)22 b(of)f(this)g(writing,)g(on)f(a)i(typical)e -(day)h(our)f(site)i(engages)2049 3396 y(in)k(about)e(1,200,000)f -(connections)g(transferring)h(40)h(GB)i(of)e(data.)2049 -3496 y(The)e(great)g(majority)g(\(75\22680\045\))e(of)i(the)h -(connections)e(are)h(HTTP;)2049 3596 y(the)28 b(highest)f(byte)g(v)n -(olume)f(comes)h(from)g(HTTP)-9 b(,)27 b(FTP)h(data,)h(and)2049 -3695 y(sometimes)20 b(the)g(NFS)h(netw)o(ork)e(\002le)i(system.)2049 -4001 y Ft(5)119 b(Attacks)30 b(on)g(the)g(monitor)2049 -4195 y Fs(In)21 b(this)i(section)e(we)h(discuss)g(the)g(dif)n(\002cult) -f(problem)f(of)h(defending)2049 4295 y(the)h(monitor)f(against)h -(attacks)h(upon)e(itself.)32 b(W)-7 b(e)24 b(defer)d(discussion)2049 -4394 y(of)26 b(Bro')-5 b(s)27 b(application-speci\002c)d(processing)h -(until)h(after)g(this)h(sec-)2049 4494 y(tion,)c(because)g(elements)g -(of)g(that)g(processing)f(re\003ect)h(attempts)g(to)2049 -4594 y(defeat)d(the)g(types)g(of)g(attacks)g(we)h(describe)e(here.)2132 -4698 y(As)28 b(discussed)f(in)g Fi(x)g Fs(1,)i(we)e(assume)g(that)h -(such)e(attack)o(ers)h(ha)n(v)o(e)2049 4798 y(full)c(access)g(to)h(the) -f(monitor')-5 b(s)21 b(algorithms)h(and)h(source)f(code;)i(b)n(ut)2049 -4897 y(also)e(that)f(the)o(y)g(ha)n(v)o(e)g(control)f(o)o(v)o(er)g -(only)h(one)g(of)g(the)h(tw)o(o)f(connec-)2049 4997 y(tion)g -(endpoints.)26 b(In)21 b(addition,)f(we)i(assume)f(that)g(the)h(crack)o -(er)e(does)2049 5096 y Fr(not)f Fs(ha)n(v)o(e)e(access)h(to)g(the)g -Fm(Bro)f Fs(polic)o(y)g(script,)h(which)f(each)g(site)i(will)2049 -5196 y(ha)n(v)o(e)h(customized,)e(and)i(should)f(k)o(eep)h(well)g -(protected.)2132 5300 y(While)c(pre)n(vious)f(w)o(ork)g(has)h -(addressed)f(the)h(general)f(problem)f(of)2049 5400 y(testing)29 -b(intrusion)g(detection)f(systems)i([PZCMO96)o(],)h(this)f(w)o(ork)1908 -5649 y(10)p eop -%%Page: 11 11 -11 10 bop -150 -104 a Fs(has)19 b(focused)e(on)h(correctness)f(of)h -(the)g(system)h(in)f(terms)h(of)f(whether)-150 -5 y(it)23 -b(does)f(indeed)f(recognize)f(the)j(attacks)f(claimed.)30 -b(T)-7 b(o)22 b(our)g(kno)n(wl-)-150 95 y(edge,)i(the)h(\002rst)g -(discussion)f(in)g(the)g(literature)g(speci\002cally)g(aimed)-150 -194 y(at)16 b(the)f(problem)e(of)i(attack)o(ers)g(sub)o(v)o(erting)e(a) -j(netw)o(ork)e(intrusion)g(de-)-150 294 y(tection)24 -b(system)h(w)o(as)h(the)f(concurrent)d(publication)h(of)i(the)g -(earlier)-150 394 y(v)o(ersion)16 b(of)h(this)h(paper)e([P)o(a98)o(])i -(and)e(that)i(of)f(Ptacek)g(and)g(Ne)n(wsham)-150 493 -y([PN98)o(].)-67 595 y(The)34 b(second)f(of)h(these)g(is)h(the)f(more)g -(thorough,)g(being)f(com-)-150 695 y(pletely)17 b(de)n(v)n(oted)f(to)h -(the)g(topic.)24 b(The)17 b(authors)f(consider)g(three)h(types)-150 -794 y(of)i(attacks,)g(\223insertion,)-6 b(\224)18 b(in)h(which)g(the)g -(attack)o(er)f(attempts)h(to)g(mis-)-150 894 y(lead)32 -b(the)h(monitor)e(into)h(accepting)f(traf)n(\002c)i(that)f(the)h -(destination)-150 994 y(end-system)24 b(rejects;)j(\223e)n(v)n(asion,) --6 b(\224)25 b(in)g(which)f(the)h(monitor)e(f)o(ails)i(to)-150 -1093 y(accept)31 b(traf)n(\002c)g(that)h(the)f(end-system)f(does)h(in)h -(f)o(act)f(accept;)37 b(and)-150 1193 y(denial-of-service,)28 -b(in)i(which)f(the)g(attack)o(er)g(attempts)g(to)h(e)o(xploit)-150 -1293 y(a)21 b(monitor')-5 b(s)20 b(proacti)n(v)o(e)f(mechanisms)h -(\(such)h(as)g(terminating)e(con-)-150 1392 y(nections)i(belonging)f -(to)i(an)g(apparent)e(attack\))i(in)g(order)e(to)i(disrupt)-150 -1492 y(le)o(gitimate)e(uses)g(of)g(the)g(netw)o(ork.)-67 -1594 y(F)o(or)k(our)f(purposes,)h(ho)n(we)n(v)o(er)m(,)e(we)j(use)f(a)h -(dif)n(ferent)d(attack)i(tax-)-150 1693 y(onomy)-5 b(,)34 -b(because)f(we)h(focus)e(on)h(designing)f(monitors)g(to)i(resist)-150 -1793 y(these)18 b(attacks.)25 b(W)-7 b(e)19 b(classify)g(netw)o(ork)e -(monitor)g(attacks)h(into)g(three)-150 1893 y(cate)o(gories:)31 -b Fr(o)o(verload)p Fs(,)23 b Fr(cr)o(ash)p Fs(,)h(and)f -Fr(subterfug)o(e)p Fs(.)35 b(The)23 b(remainder)-150 -1992 y(of)17 b(this)g(section)g(de\002nes)g(each)f(cate)o(gory)f(and)i -(brie\003y)f(discusses)i(the)-150 2092 y(de)o(gree)h(to)h(which)g(Bro)g -(meets)g(that)h(class)g(of)f(threat.)-150 2342 y Fh(5.1)99 -b(Ov)o(erload)25 b(attacks)-150 2502 y Fs(W)-7 b(e)24 -b(term)e(an)g(attack)h(as)g(an)f Fr(o)o(verload)i Fs(if)f(the)f(goal)g -(of)h(the)f(attack)h(is)-150 2601 y(to)f(o)o(v)o(erb)n(urden)d(the)j -(monitor)f(to)h(the)g(point)g(where)f(it)i(f)o(ails)g(to)f(k)o(eep)-150 -2701 y(up)h(with)g(the)g(data)g(stream)g(it)g(must)h(process.)32 -b(The)23 b(attack)g(has)g(tw)o(o)-150 2801 y(phases,)k(the)g(\002rst)f -(in)h(which)e(the)i(attack)o(er)e(dri)n(v)o(es)h(the)g(monitor)e(to) --150 2900 y(the)i(point)f(of)h(o)o(v)o(erload,)f(and)h(the)g(second)f -(in)h(which)g(the)g(attack)o(er)-150 3000 y(attempts)c(a)h(netw)o(ork)e -(intrusion.)30 b(The)22 b(monitor)f(w)o(ould)h(ordinarily)-150 -3100 y(detect)i(this)g(second)f(phase,)h(b)n(ut)f(f)o(ails)i(to)f(do)f -(so\227or)g(at)h(least)h(f)o(ails)-150 3199 y(to)20 b(do)f(so)h(with)g -(some)g(non-ne)o(gligible)c(probability\227because)g(it)21 -b(is)-150 3299 y(no)27 b(longer)e(tracking)h(all)h(of)g(the)g(data)g -(necessary)f(to)h(detect)g(e)n(v)o(ery)-150 3398 y(current)19 -b(threat.)-67 3500 y(It)40 b(is)g(this)g(last)h(consideration,)h(that)e -(the)f(attack)g(might)g(still)-150 3600 y(be)30 b(detected)e(because)h -(the)h(monitor)e(w)o(as)j(not)e(suf)n(\002ciently)g(o)o(v)o(er)n(-)-150 -3700 y(whelmed,)18 b(that)g(complicates)g(the)g(use)h(of)f(o)o(v)o -(erload)e(attacks;)j(so,)g(in)-150 3799 y(turn,)d(this)i(pro)o(vides)d -(a)i(defensi)n(v)o(e)e(strate)o(gy)-5 b(,)16 b(namely)f(to)i(lea)n(v)o -(e)g(some)-150 3899 y(doubt)i(as)i(to)f(the)g(e)o(xact)g(po)n(wer)f -(and)h(typical)g(load)f(of)h(the)g(monitor)-5 b(.)-67 -4001 y(Another)19 b(defensi)n(v)o(e)g(strate)o(gy)g(is)j(for)d(the)i -(monitor)e(to)h Fr(shed)g(load)-150 4100 y Fs(when)26 -b(it)h(becomes)f(unduly)f(stressed)i(\(see)f([CT94)o(])h(for)f(a)h -(discus-)-150 4200 y(sion)f(of)g(shedding)f(load)h(in)g(a)h(dif)n -(ferent)e(conte)o(xt\).)41 b(F)o(or)26 b(e)o(xample,)-150 -4300 y(the)21 b(monitor)f(might)h(decide)f(to)i(cease)f(to)h(capture)e -(HTTP)h(pack)o(ets,)-150 4399 y(as)26 b(these)g(form)e(a)i(high)e -(proportion)f(of)i(the)g(traf)n(\002c.)40 b(Of)26 b(course,)f(if)-150 -4499 y(the)31 b(attack)o(er)f(kno)n(ws)h(the)g(form)f(of)g -(load-shedding)e(used)j(by)g(the)-150 4598 y(monitor)m(,)24 -b(then)h(the)o(y)f(can)h(e)o(xploit)f(its)i(consequent)d(blindness)h -(and)-150 4698 y(launch)19 b(a)i(no)n(w-undetected)c(attack.)-67 -4800 y(F)o(or)29 b(Bro)g(in)h(particular)m(,)f(to)h(de)n(v)o(elop)d(an) -i(o)o(v)o(erload)e(attack)i(one)-150 4900 y(might)16 -b(be)o(gin)g(by)g(inspecting)g(Figure)g(1)h(to)g(see)h(ho)n(w)e(to)h -(increase)g(the)-150 4999 y(data)22 b(\003o)n(w)-5 b(.)32 -b(One)23 b(step)g(is)g(to)g(send)f(pack)o(ets)h(that)f(match)h(the)f -(pack)o(et)-150 5099 y(\002lter;)35 b(another)m(,)30 -b(pack)o(et)f(streams)h(that)g(in)g(turn)f(generate)f(e)n(v)o(ents;) --150 5198 y(and)20 b(a)g(third,)g(e)n(v)o(ents)f(that)h(lead)h(to)f -(logging)e(or)i(recording)e(to)i(disk.)-67 5300 y(The)55 -b(\002rst)h(of)f(these)g(is)h(particularly)e(easy)-5 -b(,)63 b(because)55 b(the)-150 5400 y Fm(libpcap)26 b -Fs(\002lter)i(used)f(by)g(Bro)g(is)h(\002x)o(ed.)45 b(One)27 -b(defense)f(against)2049 -104 y(it)32 b(is)g(to)f(use)g(a)g(hardw)o -(are)f(platform)f(with)i(suf)n(\002cient)g(processing)2049 --5 y(po)n(wer)23 b(to)h(k)o(eep)g(up)f(with)h(a)h(high)e(v)n(olume)g -(of)h(\002ltered)g(traf)n(\002c,)g(and)2049 95 y(it)c(w)o(as)h(this)f -(consideration)e(that)i(lead)g(to)f(our)g(elaborating)f(the)i(goal)2049 -194 y(of)f(\223no)h(pack)o(et)f(\002lter)h(drops\224)e(in)i -Fi(x)g Fs(1.)25 b(The)19 b(second)g(le)n(v)o(el)h(of)f(attack,)2049 -294 y(causing)h(the)i(engine)e(to)h(generate)f(a)h(lar)o(ge)g(v)n -(olume)f(of)h(e)n(v)o(ents,)f(is)i(a)2049 394 y(bit)d(more)f(dif)n -(\002cult)g(to)h(achie)n(v)o(e)f(because)g(Bro)h(e)n(v)o(ents)f(are)h -(designed)2049 493 y(to)30 b(be)g(lightweight.)53 b(It)30 -b(is)h(only)e(the)h(e)n(v)o(ents)g(for)f(which)g(the)h(pol-)2049 -593 y(ic)o(y)24 b(speci\002es)g(quite)g(a)g(bit)h(of)f(w)o(ork)f(that)h -(pro)o(vide)e(much)h(le)n(v)o(erage)2049 693 y(for)31 -b(an)h(attack)f(at)i(this)f(le)n(v)o(el,)i(and)d(we)i(do)e -Fr(not)i Fs(assume)f(that)g(the)2049 792 y(attack)o(er)24 -b(has)i(access)f(to)g(the)g(polic)o(y)f(scripts.)39 b(This)25 -b(same)h(consid-)2049 892 y(eration)20 b(mak)o(es)i(an)f(attack)g(at)h -(the)f(\002nal)h(le)n(v)o(el\227ele)n(v)n(ating)d(the)i(log-)2049 -991 y(ging)27 b(or)g(recording)e(rate\227dif)n(\002cult,)j(because)f -(the)h(attack)o(er)f(does)2049 1091 y(not)20 b(necessarily)f(kno)n(w)h -(which)f(e)n(v)o(ents)h(lead)g(to)g(logging.)2132 1193 -y(Finally)-5 b(,)55 b(to)49 b(help)f(defend)f(against)h(o)o(v)o(erload) -e(attacks,)56 b(the)2049 1293 y(e)n(v)o(ent)18 b(engine)g(periodically) -g(generates)g(a)i Fm(net)p 3448 1293 25 4 v 29 w(stats)p -3727 1293 V 29 w(update)2049 1393 y Fs(e)n(v)o(ent.)59 -b(The)31 b(v)n(alue)g(of)g(this)i(e)n(v)o(ent)d(gi)n(v)o(es)i(the)f -(number)f(of)i(pack-)2049 1492 y(ets)24 b(recei)n(v)o(ed,)f(the)g -(number)f(dropped)f(by)i(the)h(pack)o(et)f(\002lter)g(due)g(to)2049 -1592 y(insuf)n(\002cient)h(b)n(uf)n(fer)m(,)g(and)g(the)h(number)e -(reported)h(dropped)e(by)j(the)2049 1691 y(netw)o(ork)18 -b(interf)o(ace)g(because)g(the)h(k)o(ernel)f(f)o(ailed)g(to)h(consume)f -(them)2049 1791 y(quickly)27 b(enough.)48 b(Thus,)30 -b Fm(Bro)f Fs(scripts)g(at)g(least)h(ha)n(v)o(e)e(some)g(ba-)2049 -1891 y(sic)g(information)d(a)n(v)n(ailable)i(to)h(them)f(to)h -(determine)e(whether)h(the)2049 1990 y(monitor)19 b(is)i(becoming)d(o)o -(v)o(erloaded.)2049 2243 y Fh(5.2)99 b(Crash)25 b(attacks)2049 -2403 y Fr(Cr)o(ash)30 b Fs(attacks)f(aim)g(to)h(knock)d(the)j(monitor)d -(completely)h(out)h(of)2049 2503 y(action)17 b(by)h(causing)f(it)i(to)f -(either)f(f)o(ault)h(or)g(run)f(out)h(of)g(resources.)23 -b(As)2049 2603 y(with)e(an)g(o)o(v)o(erload)d(attack,)j(the)g(crash)g -(attack)f(has)i(tw)o(o)f(phases,)g(the)2049 2702 y(\002rst)27 -b(during)d(which)i(the)g(attack)o(er)f(crashes)h(the)h(monitor)m(,)e -(and)h(the)2049 2802 y(second)19 b(during)g(which)g(the)o(y)h(then)g -(proceed)e(with)j(an)f(intrusion.)2132 2904 y(Crash)25 -b(attacks)g(can)g(be)f(much)g(more)g(subtle)h(than)f(o)o(v)o(erload)e -(at-)2049 3004 y(tacks,)32 b(though.)52 b(By)30 b(careful)f(source)g -(code)g(analysis,)j(it)e(may)g(be)2049 3103 y(possible)g(to)g(\002nd)g -(a)h(series)f(of)g(pack)o(ets,)i(or)e(e)n(v)o(en)f(just)i(one,)h(that,) -2049 3203 y(when)18 b(recei)n(v)o(ed)f(by)h(the)h(monitor)m(,)e(causes) -i(it)g(to)g(f)o(ault)g(due)f(to)g(a)h(cod-)2049 3303 -y(ing)h(error)-5 b(.)24 b(The)c(ef)n(fect)g(can)g(be)g(immediate)f(and) -h(violent.)2132 3405 y(W)-7 b(e)29 b(can)e(perhaps)f(defend)g(against)g -(this)i(form)f(of)g(crash)g(attack)2049 3504 y(by)22 -b(careful)g(coding)g(and)g(testing.)33 b(Another)21 b(type)i(of)f -(crash)h(attack,)2049 3604 y(harder)15 b(to)j(defend)d(against,)i(is)g -(one)g(that)g(causes)g(the)g(monitor)e(to)i(e)o(x-)2049 -3704 y(haust)f(its)h(a)n(v)n(ailable)e(resources:)23 -b(dynamic)14 b(memory)g(or)i(disk)g(space.)2049 3803 -y(Ev)o(en)28 b(if)i(the)f(monitor)f(has)h(no)g(memory)f(leaks,)j(it)f -(still)h(needs)d(to)2049 3903 y(maintain)21 b(state)h(for)g(an)o(y)e -(acti)n(v)o(e)i(traf)n(\002c.)29 b(Therefore,)20 b(one)h(attack)h(is) -2049 4003 y(to)d(create)f(traf)n(\002c)h(that)g(consumes)f(a)h(lar)o -(ge)f(amount)f(of)i(state.)25 b(When)2049 4102 y Fm(Bro)k -Fs(supports)f(timers)h(for)g(polic)o(y)e(scripts,)32 -b(this)d(attack)g(will)h(be-)2049 4202 y(come)23 b(more)g(dif)n -(\002cult,)h(because)f(it)h(will)h(be)e(harder)g(to)h(predict)f(the) -2049 4301 y(necessary)k(le)n(v)o(el)g(of)h(bogus)f(traf)n(\002c.)47 -b(Attacks)28 b(on)f(disk)h(space)g(are)2049 4401 y(lik)o(e)n(wise)33 -b(dif)n(\002cult,)h(unless)f(one)f(kno)n(ws)f(the)h(a)n(v)n(ailable)g -(disk)h(ca-)2049 4501 y(pacity)-5 b(.)39 b(In)25 b(addition,)g(the)g -(monitor)f(might)g(continue)g(to)h(run)g(e)n(v)o(en)2049 -4600 y(with)j(no)g(disk)g(space)g(a)n(v)n(ailable,)h(sacri\002cing)f -(an)g(archi)n(v)n(al)f(record)2049 4700 y(b)n(ut)20 b(still)h -(producing)c(real-time)i(noti\002cations,)g(so)h(a)g(disk)g(space)f -(at-)2049 4800 y(tack)h(might)g(f)o(ail)g(to)h(mask)f(a)g(follo)n(w-on) -e(attack.)2132 4902 y(Bro)30 b(pro)o(vides)e(tw)o(o)i(features)f(to)g -(aid)h(with)g(defending)d(against)2049 5001 y(crash)k(attacks.)57 -b(First,)34 b(the)d(e)n(v)o(ent)f(engine)f(maintains)i(a)g(\223w)o -(atch-)2049 5101 y(dog\224)23 b(timer)i(that)f(e)o(xpires)g(e)n(v)o -(ery)f Fj(T)36 b Fs(seconds.)i(\(This)24 b(timer)g(is)i(not)2049 -5201 y(a)c(Bro)g(internal)f(timer)m(,)h(b)n(ut)g(rather)f(a)h(Unix)g -(\223alarm.)-6 b(\224\))29 b(Upon)21 b(e)o(xpi-)2049 -5300 y(ration,)d(the)g(w)o(atchdog)g(handler)f(checks)h(to)g(see)h -(whether)f(the)g(e)n(v)o(ent)2049 5400 y(engine)28 b(has)i(f)o(ailed)f -(to)g(\002nish)h(processing)e(the)h(pack)o(et)g(\(and)f(sub-)1908 -5649 y(11)p eop -%%Page: 12 12 -12 11 bop -150 -104 a Fs(sequent)24 b(e)n(v)o(ents\))h(it)g(w)o(as)h(w) -o(orking)e(on)h Fj(T)36 b Fs(seconds)25 b(before.)38 -b(If)25 b(so,)-150 -5 y(then)16 b(the)g(w)o(atchdog)f(presumes)g(that)h -(the)h(engine)e(is)i(in)f(some)h(sort)f(of)-150 95 y(processing)24 -b(jam)h(\(perhaps)e(due)i(to)g(a)g(coding)f(error)m(,)g(perhaps)g(due) --150 194 y(to)i(e)o(xcessi)n(v)o(e)f(time)h(spent)g(managing)d(o)o(v)o -(erb)n(urdened)f(resources\),)-150 294 y(and)d(terminates)f(the)h -(monitor)f(process)h(\(\002rst)g(logging)f(this)i(f)o(act,)f(of)-150 -394 y(course,)g(and)h(generating)e(a)j(core)e(image)h(for)f(later)i -(analysis\).)-67 496 y(This)d(feature)g(might)f(not)h(seem)h -(particularly)d(useful,)i(e)o(xcept)f(for)-150 596 y(the)28 -b(f)o(act)h(that)g(it)g(is)g(coupled)e(with)i(a)g(second)e(feature:)41 -b(the)29 b(script)-150 695 y(that)d(runs)f(Bro)g(also)h(detects)g(if)f -(it)i(e)n(v)o(er)d(unduly)g(e)o(xits,)j(and,)f(if)f(so,)-150 -795 y(logs)e(this)g(f)o(act)f(and)h(e)o(x)o(ecutes)e(a)i(cop)o(y)f(of)g -Fm(tcpdump)g Fs(that)h(records)-150 894 y(the)d(same)g(traf)n(\002c)g -(that)g(the)g(monitor)e(w)o(ould)i(ha)n(v)o(e)f(captured.)k(Thus,)-150 -994 y(crash)k(attacks)h(are)g(\(1\))f(logged,)h(and)f(\(2\))g(do)h(not) -f(allo)n(w)h(a)g(subse-)-150 1094 y(quent)18 b(intrusion)g(attempt)h -(to)g(go)f(unrecorded,)e(only)j(to)g(e)n(v)n(ade)f(real-)-150 -1193 y(time)26 b(detection.)42 b(Ho)n(we)n(v)o(er)m(,)25 -b(there)h(is)h(a)g(windo)n(w)e(of)h(opportunity)-150 -1293 y(between)i(the)g(time)h(when)f(the)h(Bro)g(monitor)e(crashes)h -(and)g(when)-150 1393 y Fm(tcpdump)21 b Fs(runs.)29 b(If)22 -b(an)f(attack)o(er)h(can)f(predict)g(e)o(xactly)g(when)g(this)-150 -1492 y(windo)n(w)i(occurs,)h(then)f(the)o(y)g(can)h(still)h(e)n(v)n -(ade)e(detection.)35 b(But)24 b(de-)-150 1592 y(termining)g(the)h -(windo)n(w)g(is)h(dif)n(\002cult)f(without)g(kno)n(wledge)e(of)j(the) --150 1691 y(e)o(xact)h(con\002guration)f(of)h(the)h(monitoring)e -(system.)48 b(One)28 b(w)o(ay)g(of)-150 1791 y(closing)21 -b(this)g(windo)n(w)f(is)j(to)e(emplo)o(y)f(a)h(second,)g(\223shado)n -(w\224)f(moni-)-150 1891 y(toring)d(machine)g(that)h(simply)g(records)f -(to)h(disk)g(the)g(same)g(traf)n(\002c)g(as)-150 1990 -y(the)i(Bro)g(monitor)f(inspects.)-150 2243 y Fh(5.3)99 -b(Subterfuge)27 b(attacks)-150 2403 y Fs(In)j(a)h Fr(subterfug)o(e)e -Fs(attack,)k(an)d(attack)o(er)g(attempts)g(to)g(mislead)h(the)-150 -2503 y(monitor)26 b(as)i(to)g(the)f(meaning)f(of)h(the)g(traf)n(\002c)h -(it)g(analyzes.)46 b(These)-150 2603 y(attacks)30 b(are)g(particularly) -e(dif)n(\002cult)i(to)g(defend)f(against,)i(because)-150 -2702 y(\(1\))26 b(unlik)o(e)g(o)o(v)o(erload)e(and)i(crash)h(attacks,)h -(if)f(successful)f(the)o(y)g(do)-150 2802 y(not)e(lea)n(v)o(e)g(an)o(y) -f(traces)i(that)f(the)o(y)f(ha)n(v)o(e)h(occurred,)f(and)h(\(2\))f(the) -h(at-)-150 2901 y(tacks)32 b(can)f(be)g(quite)g(subtle.)59 -b(Access)32 b(to)g(the)f(monitor')-5 b(s)30 b(source)-150 -3001 y(code)20 b(particularly)e(aids)i(with)h(de)n(vising)e(subterfuge) -f(attacks.)-67 3103 y(W)-7 b(e)33 b(brie\003y)f(discussed)g(an)g(e)o -(xample)e(of)i(a)h(subterfuge)d(attack)-150 3203 y(in)24 -b Fi(x)g Fs(3.1,)g(in)g(which)f(the)h(attack)o(er)g(sends)f(te)o(xt)h -(with)g(an)g(embedded)-150 3303 y(NUL)d(in)g(the)f(hope)g(that)h(the)f -(monitor)f(will)j(miss)f(the)g(te)o(xt)f(after)h(the)-150 -3402 y(NUL.)c(Another)g(form)f(of)h(subterfuge)f(attack)h(is)i(using)e -(fragmented)-150 3502 y(IP)24 b(datagrams)e(in)h(an)h(attempt)f(to)g -(elude)g(monitors)f(that)i(f)o(ail)f(to)h(re-)-150 3601 -y(assemble)d(IP)h(fragments)e(\(an)h(attack)g(well-kno)n(wn)e(to)j(the) -f(\002re)n(w)o(all)-150 3701 y(community)-5 b(,)14 b(and)h(one)g(we)i -(ha)n(v)o(e)e(increasingly)f(detected)h(in)h(our)f(on-)-150 -3801 y(going)k(operation)f(of)i(Bro\).)k(The)c(k)o(e)o(y)g(principle)e -(is)j(to)g(\002nd)e(a)i(traf)n(\002c)-150 3900 y(pattern)f(interpreted) -f(by)h(the)h(monitor)e(in)i(a)g(dif)n(ferent)e(f)o(ashion)h(than)-150 -4000 y(by)25 b(the)h(recei)n(ving)f(endpoint,)g(and)g(then)g(to)h(le)n -(v)o(erage)f(this)h(into)g(an)-150 4100 y(insertion)19 -b(or)h(e)n(v)n(asion)f(attack,)h(as)h(discussed)f(abo)o(v)o(e.)-67 -4202 y(T)-7 b(o)23 b(thw)o(art)f(subterfuge)e(attacks,)j(as)g(we)f(de)n -(v)o(eloped)e(Bro)j(we)f(at-)-150 4301 y(tempted)d(at)i(each)f(stage)h -(to)f(analyze)f(the)i(e)o(xplicit)e(and)h(implicit)g(as-)-150 -4401 y(sumptions)h(made)g(by)h(the)f(system,)i(and)e(ho)n(w)-5 -b(,)21 b(by)h(violating)e(them,)-150 4501 y(an)31 b(attack)g(might)f -(successfully)g(elude)h(detection.)56 b(This)31 b(can)g(be)-150 -4600 y(a)26 b(dif)n(\002cult)g(process,)h(though,)e(and)g(we)i(mak)o(e) -e(no)h(claims)g(to)g(ha)n(v)o(e)-150 4700 y(found)17 -b(them)h(all!)25 b(In)19 b(the)g(remainder)d(of)j(this)g(section,)g(we) -g(focus)f(on)-150 4800 y(subterfuge)k(attacks)i(on)g(the)g(inte)o -(grity)f(of)h(the)g(byte)g(stream)g(moni-)-150 4899 y(tored)e(for)h(a)g -(TCP)h(connection.)31 b(Then,)23 b(in)g Fi(x)g Fs(6.5,)g(we)g(look)g -(at)g(sub-)-150 4999 y(terfuge)c(attacks)h(aimed)g(at)h(hiding)d(k)o(e) -o(yw)o(ords)h(in)h(interacti)n(v)o(e)f(te)o(xt.)-67 5101 -y(T)-7 b(o)27 b(analyze)f(a)h(TCP)g(connection)e(at)i(the)f -(application)g(le)n(v)o(el)g(re-)-150 5201 y(quires)17 -b(e)o(xtracting)f(the)i(payload)e(data)h(from)f(each)i(TCP)g(pack)o(et) -f(and)-150 5300 y(reassembling)j(it)h(into)g(its)h(proper)d(sequence.) -26 b(W)-7 b(e)22 b(no)n(w)e(consider)g(a)-150 5400 y(spectrum)k(of)i -(approaches)d(to)j(this)g(problem,)e(ranging)g(from)g(sim-)2049 --104 y(plest)d(and)e(easiest)i(to)g(defeat,)e(to)h(increasingly)f -(resilient.)2132 -1 y(Scanning)28 b(the)h(data)h(in)f(indi)n(vidual)f -(pack)o(ets)h(without)g(remem-)2049 99 y(bering)20 b(an)o(y)h -(connection)f(state,)i(while)g(easiest,)h(ob)o(viously)c(suf)n(fers) -2049 199 y(from)24 b(major)g(problems:)33 b(an)o(y)24 -b(time)g(the)h(te)o(xt)g(of)f(interest)h(happens)2049 -298 y(to)e(straddle)g(the)g(boundary)d(between)i(the)h(end)f(of)h(one)g -(pack)o(et)f(and)2049 398 y(the)g(be)o(ginning)d(of)i(the)h(ne)o(xt,)f -(the)g(te)o(xt)h(will)g(go)g(unobserv)o(ed.)k(Such)2049 -497 y(a)e(split)f(can)g(happen)e(simply)i(by)g(accident,)g(and)f -(certainly)g(by)h(ma-)2049 597 y(licious)d(intent.)2132 -701 y(Some)48 b(systems)h(address)f(this)h(problem)e(by)h(remembering) -2049 801 y(pre)n(viously-seen)16 b(te)o(xt)j(up)f(to)h(a)h(certain)e -(de)o(gree)f(\(perhaps)h(from)g(the)2049 900 y(be)o(ginning)25 -b(of)i(the)g(current)g(line\).)46 b(This)28 b(approach)d(f)o(ails)j(as) -g(soon)2049 1000 y(as)g(a)g(sequence)e(\223hole\224)h(appears:)39 -b(that)28 b(is,)i(an)o(y)c(time)i(a)g(pack)o(et)f(is)2049 -1099 y(missing\227due)d(to)i(loss)g(or)g(out-of-order)21 -b(deli)n(v)o(ery\227then)i(the)j(re-)2049 1199 y(sulting)g -(discontinuity)f(in)i(the)f(data)h(stream)f(again)g(can)g(mask)h(the) -2049 1299 y(presence)19 b(of)h(k)o(e)o(y)g(te)o(xt)g(that)g(is)h(only)e -(partially)h(present.)2132 1402 y(The)i(ne)o(xt)h(step)g(is)g(to)g -(fully)g(reassemble)f(the)h(TCP)g(data)g(stream,)2049 -1502 y(based)c(on)g(the)g(sequence)g(numbers)f(associated)h(with)g -(each)g(pack)o(et.)2049 1602 y(Doing)42 b(so)h(requires)e(maintaining)g -(a)i(list)h(of)e(contiguous)f(data)2049 1701 y(blocks)27 -b(recei)n(v)o(ed)f(so)i(f)o(ar)m(,)h(and)e(\002tting)g(the)h(data)g -(from)e(ne)n(w)i(pack-)2049 1801 y(ets)23 b(into)e(the)h(blocks,)g(mer) -o(ging)e(no)n(w-adjacent)f(blocks)j(when)f(pos-)2049 -1901 y(sible.)26 b(At)21 b(an)o(y)e(gi)n(v)o(en)h(moment,)f(one)g(can)i -(then)e(scan)i(the)f(te)o(xt)h(from)2049 2000 y(the)28 -b(be)o(ginning)e(of)i(the)h(connection)d(to)i(the)h(highest)e -(in-sequence)2049 2100 y(byte)20 b(recei)n(v)o(ed.)2132 -2204 y(Unless)54 b(we)g(are)f(careful,)60 b(e)n(v)o(en)53 -b(k)o(eeping)f(track)h(of)g(non-)2049 2303 y(contiguous)31 -b(data)i(blocks)g(does)g(not)g(suf)n(\002ce)g(to)h(pre)n(v)o(ent)d(a)j -(TCP)2049 2403 y(subterfuge)29 b(attack.)57 b(The)31 -b(k)o(e)o(y)f(observ)n(ation)f(is)j(that)f(an)g(attack)o(er)2049 -2502 y(can)20 b(manipulate)e(the)i(pack)o(ets)f(their)h(TCP)g(sends)g -(so)g(that)g(the)g(mon-)2049 2602 y(itor)i(sees)i(a)f(particular)e -(pack)o(et,)i(b)n(ut)f(the)h(endpoint)e(does)h(not.)32 -b(One)2049 2702 y(w)o(ay)h(of)g(doing)f(so)h(is)h(to)g(transmit)f(the)g -(pack)o(et)f(with)i(an)f(in)m(v)n(alid)2049 2801 y(TCP)23 -b(checksum.)31 b(\(This)23 b(particular)e(attack)i(can)f(be)h(dealt)f -(with)h(by)2049 2901 y(checksumming)g(e)n(v)o(ery)g(pack)o(et,)j(and)f -(discarding)f(those)h(that)g(f)o(ail;)2049 3001 y(a)e(monitor)d(needs)i -(to)h(do)e(this)i(an)o(yw)o(ay)e(so)i(that)f(it)h(correctly)e(tracks) -2049 3100 y(the)30 b(endpoint')-5 b(s)29 b(state)i(in)f(the)g(presence) -f(of)h(honest)g(data)g(corrup-)2049 3200 y(tion)18 b(errors,)g(which)g -(are)g(not)g(particularly)f(rare)g([P)o(a97a)o(].\))24 -b(Another)2049 3300 y(w)o(ay)18 b(is)g(to)g(launch)e(the)i(pack)o(et)f -(with)g(an)h(IP)g(\223T)m(ime)f(T)-7 b(o)18 b(Li)n(v)o(e\224)f(\(TTL\)) -2049 3399 y(\002eld)22 b(suf)n(\002cient)f(to)g(carry)g(the)g(pack)o -(et)g(past)h(the)f(monitoring)f(point,)2049 3499 y(b)n(ut)30 -b(insuf)n(\002cient)f(to)h(carry)g(it)g(all)h(the)f(w)o(ay)g(to)g(the)g -(endpoint.)53 b(\(If)2049 3598 y(the)28 b(site)h(has)f(a)g(comple)o(x)e -(topology)-5 b(,)27 b(it)i(may)e(be)h(dif)n(\002cult)f(for)h(the)2049 -3698 y(monitor)19 b(to)h(detect)g(this)h(attack.\))j(A)d(third)e(w)o -(ay)i(becomes)e(possible)2049 3798 y(if)27 b(the)f(\002nal)h(path)f(to) -h(the)g(attack)o(ed)f(endpoint)e(happens)h(to)i(ha)n(v)o(e)f(a)2049 -3897 y(smaller)21 b(Maximum)f(T)m(ransmission)g(Unit)h(\(MTU\))g(than)f -(the)h(Inter)n(-)2049 3997 y(net)c(path)f(from)g(the)h(attack)o(er')-5 -b(s)17 b(host)g(to)g(the)g(monitoring)e(point.)23 b(The)2049 -4097 y(attack)o(er)c(then)h(sends)g(a)g(pack)o(et)g(with)g(a)g(size)h -(e)o(xceeding)d(this)j(MTU)2049 4196 y(and)c(with)h(the)g(IP)g -(\223Don')o(t)e(Fragment\224)g(header)h(bit)g(set.)25 -b(This)18 b(pack)o(et)2049 4296 y(will)25 b(then)f(transit)g(past)h -(the)f(monitoring)e(point,)i(b)n(ut)h(be)f(discarded)2049 -4395 y(by)c(the)g(router)f(at)i(the)f(point)f(where)h(the)g(MTU)g -(narro)n(ws.)2132 4499 y(By)28 b(manipulating)e(pack)o(ets)i(in)g(this) -h(f)o(ashion,)f(an)g(attack)o(er)g(can)2049 4599 y(send)38 -b(innocuous)f(te)o(xt)h(for)g(the)h(bene\002t)f(of)g(the)h(monitor)m(,) -i(such)2049 4698 y(as)27 b(\223)p Fm(USER)49 b(nice)p -Fs(\224,)26 b(and)g(then)f(retransmit)g(\(using)g(the)h(same)g(se-)2049 -4798 y(quence)d(numbers\))g(attack)i(te)o(xt)f(\(\223)p -Fm(USER)49 b(root)p Fs(\224\),)24 b(this)i(time)e(al-)2049 -4898 y(lo)n(wing)k(the)i(pack)o(ets)f(to)g(tra)n(v)o(erse)g(all)h(the)f -(w)o(ay)h(to)f(the)h(endpoint.)2049 4997 y(If)19 b(the)h(monitor)e -(simply)h(discards)g(retransmitted)g(data)g(without)g(in-)2049 -5097 y(specting)k(it,)j(then)d(it)i(will)g(mistak)o(enly)e(belie)n(v)o -(e)g(that)h(the)g(endpoint)2049 5197 y(recei)n(v)o(ed)19 -b(the)h(innocuous)e(te)o(xt,)i(and)f(f)o(ail)i(to)f(detect)g(the)g -(attack.)2132 5300 y(Figure)29 b(2)h(illustrates)g(this)g(attack.)53 -b(Here,)32 b(the)d(attack)o(er)h(sends)2049 5400 y(the)19 -b(te)o(xt)g(\223)p Fm(USER)p Fs(\224)g(with)g(an)g(initial)h(TTL)e(of)h -(20)g(hops,)g(co)o(v)o(ering)d(se-)1908 5649 y(12)p eop -%%Page: 13 13 -13 12 bop -125 -187 a - 15392931 10313261 5788794 18945146 34930114 38613893 startTexFig - -125 -187 a -%%BeginDocument: evasion.idraw - -/arrowhead { -0 begin -transform originalCTM itransform -/taily exch def -/tailx exch def -transform originalCTM itransform -/tipy exch def -/tipx exch def -/dy tipy taily sub def -/dx tipx tailx sub def -/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def -gsave -originalCTM setmatrix -tipx tipy translate -angle rotate -newpath -arrowHeight neg arrowWidth 2 div moveto -0 0 lineto -arrowHeight neg arrowWidth 2 div neg lineto -patternNone not { -originalCTM setmatrix -/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul -arrowWidth div def -/padtail brushWidth 2 div def -tipx tipy translate -angle rotate -padtip 0 translate -arrowHeight padtip add padtail add arrowHeight div dup scale -arrowheadpath -ifill -} if -brushNone not { -originalCTM setmatrix -tipx tipy translate -angle rotate -arrowheadpath -istroke -} if -grestore -end -} dup 0 9 dict put def - -/arrowheadpath { -newpath -arrowHeight neg arrowWidth 2 div moveto -0 0 lineto -arrowHeight neg arrowWidth 2 div neg lineto -} def - -/leftarrow { -0 begin -y exch get /taily exch def -x exch get /tailx exch def -y exch get /tipy exch def -x exch get /tipx exch def -brushLeftArrow { tipx tipy tailx taily arrowhead } if -end -} dup 0 4 dict put def - -/rightarrow { -0 begin -y exch get /tipy exch def -x exch get /tipx exch def -y exch get /taily exch def -x exch get /tailx exch def -brushRightArrow { tipx tipy tailx taily arrowhead } if -end -} dup 0 4 dict put def - - -/arrowHeight 8 def -/arrowWidth 4 def - -/IdrawDict 54 dict def -IdrawDict begin - -/reencodeISO { -dup dup findfont dup length dict begin -{ 1 index /FID ne { def }{ pop pop } ifelse } forall -/Encoding ISOLatin1Encoding def -currentdict end definefont -} def - -/ISOLatin1Encoding [ -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright -/parenleft/parenright/asterisk/plus/comma/minus/period/slash -/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon -/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N -/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright -/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m -/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve -/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut -/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar -/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot -/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior -/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine -/guillemotright/onequarter/onehalf/threequarters/questiondown -/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla -/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute -/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis -/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave -/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex -/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis -/yacute/thorn/ydieresis -] def -/Helvetica-Bold reencodeISO def -/Times-Roman reencodeISO def -/Courier-Bold reencodeISO def -/Helvetica-Oblique reencodeISO def - -/none null def -/numGraphicParameters 17 def -/stringLimit 65535 def - -/Begin { -save -numGraphicParameters dict begin -} def - -/End { -end -restore -} def - -/SetB { -dup type /nulltype eq { -pop -false /brushRightArrow idef -false /brushLeftArrow idef -true /brushNone idef -} { -/brushDashOffset idef -/brushDashArray idef -0 ne /brushRightArrow idef -0 ne /brushLeftArrow idef -/brushWidth idef -false /brushNone idef -} ifelse -} def - -/SetCFg { -/fgblue idef -/fggreen idef -/fgred idef -} def - -/SetCBg { -/bgblue idef -/bggreen idef -/bgred idef -} def - -/SetF { -/printSize idef -/printFont idef -} def - -/SetP { -dup type /nulltype eq { -pop true /patternNone idef -} { -dup -1 eq { -/patternGrayLevel idef -/patternString idef -} { -/patternGrayLevel idef -} ifelse -false /patternNone idef -} ifelse -} def - -/BSpl { -0 begin -storexyn -newpath -n 1 gt { -0 0 0 0 0 0 1 1 true subspline -n 2 gt { -0 0 0 0 1 1 2 2 false subspline -1 1 n 3 sub { -/i exch def -i 1 sub dup i dup i 1 add dup i 2 add dup false subspline -} for -n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline -} if -n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline -patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if -brushNone not { istroke } if -0 0 1 1 leftarrow -n 2 sub dup n 1 sub dup rightarrow -} if -end -} dup 0 4 dict put def - -/Circ { -newpath -0 360 arc -patternNone not { ifill } if -brushNone not { istroke } if -} def - -/CBSpl { -0 begin -dup 2 gt { -storexyn -newpath -n 1 sub dup 0 0 1 1 2 2 true subspline -1 1 n 3 sub { -/i exch def -i 1 sub dup i dup i 1 add dup i 2 add dup false subspline -} for -n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline -n 2 sub dup n 1 sub dup 0 0 1 1 false subspline -patternNone not { ifill } if -brushNone not { istroke } if -} { -Poly -} ifelse -end -} dup 0 4 dict put def - -/Elli { -0 begin -newpath -4 2 roll -translate -scale -0 0 1 0 360 arc -patternNone not { ifill } if -brushNone not { istroke } if -end -} dup 0 1 dict put def - -/Line { -0 begin -2 storexyn -newpath -x 0 get y 0 get moveto -x 1 get y 1 get lineto -brushNone not { istroke } if -0 0 1 1 leftarrow -0 0 1 1 rightarrow -end -} dup 0 4 dict put def - -/MLine { -0 begin -storexyn -newpath -n 1 gt { -x 0 get y 0 get moveto -1 1 n 1 sub { -/i exch def -x i get y i get lineto -} for -patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if -brushNone not { istroke } if -0 0 1 1 leftarrow -n 2 sub dup n 1 sub dup rightarrow -} if -end -} dup 0 4 dict put def - -/Poly { -3 1 roll -newpath -moveto --1 add -{ lineto } repeat -closepath -patternNone not { ifill } if -brushNone not { istroke } if -} def - -/Rect { -0 begin -/t exch def -/r exch def -/b exch def -/l exch def -newpath -l b moveto -l t lineto -r t lineto -r b lineto -closepath -patternNone not { ifill } if -brushNone not { istroke } if -end -} dup 0 4 dict put def - -/Text { -ishow -} def - -/idef { -dup where { pop pop pop } { exch def } ifelse -} def - -/ifill { -0 begin -gsave -patternGrayLevel -1 ne { -fgred bgred fgred sub patternGrayLevel mul add -fggreen bggreen fggreen sub patternGrayLevel mul add -fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor -eofill -} { -eoclip -originalCTM setmatrix -pathbbox /t exch def /r exch def /b exch def /l exch def -/w r l sub ceiling cvi def -/h t b sub ceiling cvi def -/imageByteWidth w 8 div ceiling cvi def -/imageHeight h def -bgred bggreen bgblue setrgbcolor -eofill -fgred fggreen fgblue setrgbcolor -w 0 gt h 0 gt and { -l w add b translate w neg h scale -w h true [w 0 0 h neg 0 h] { patternproc } imagemask -} if -} ifelse -grestore -end -} dup 0 8 dict put def - -/istroke { -gsave -brushDashOffset -1 eq { -[] 0 setdash -1 setgray -} { -brushDashArray brushDashOffset setdash -fgred fggreen fgblue setrgbcolor -} ifelse -brushWidth setlinewidth -originalCTM setmatrix -stroke -grestore -} def - -/ishow { -0 begin -gsave -fgred fggreen fgblue setrgbcolor -/fontDict printFont printSize scalefont dup setfont def -/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end -transform exch pop def -/vertoffset 1 printSize sub descender sub def { -0 vertoffset moveto show -/vertoffset vertoffset printSize sub def -} forall -grestore -end -} dup 0 3 dict put def -/patternproc { -0 begin -/patternByteLength patternString length def -/patternHeight patternByteLength 8 mul sqrt cvi def -/patternWidth patternHeight def -/patternByteWidth patternWidth 8 idiv def -/imageByteMaxLength imageByteWidth imageHeight mul -stringLimit patternByteWidth sub min def -/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv -patternHeight mul patternHeight max def -/imageHeight imageHeight imageMaxHeight sub store -/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def -0 1 imageMaxHeight 1 sub { -/y exch def -/patternRow y patternByteWidth mul patternByteLength mod def -/patternRowString patternString patternRow patternByteWidth getinterval def -/imageRow y imageByteWidth mul def -0 patternByteWidth imageByteWidth 1 sub { -/x exch def -imageString imageRow x add patternRowString putinterval -} for -} for -imageString -end -} dup 0 12 dict put def - -/min { -dup 3 2 roll dup 4 3 roll lt { exch } if pop -} def - -/max { -dup 3 2 roll dup 4 3 roll gt { exch } if pop -} def - -/midpoint { -0 begin -/y1 exch def -/x1 exch def -/y0 exch def -/x0 exch def -x0 x1 add 2 div -y0 y1 add 2 div -end -} dup 0 4 dict put def - -/thirdpoint { -0 begin -/y1 exch def -/x1 exch def -/y0 exch def -/x0 exch def -x0 2 mul x1 add 3 div -y0 2 mul y1 add 3 div -end -} dup 0 4 dict put def - -/subspline { -0 begin -/movetoNeeded exch def -y exch get /y3 exch def -x exch get /x3 exch def -y exch get /y2 exch def -x exch get /x2 exch def -y exch get /y1 exch def -x exch get /x1 exch def -y exch get /y0 exch def -x exch get /x0 exch def -x1 y1 x2 y2 thirdpoint -/p1y exch def -/p1x exch def -x2 y2 x1 y1 thirdpoint -/p2y exch def -/p2x exch def -x1 y1 x0 y0 thirdpoint -p1x p1y midpoint -/p0y exch def -/p0x exch def -x2 y2 x3 y3 thirdpoint -p2x p2y midpoint -/p3y exch def -/p3x exch def -movetoNeeded { p0x p0y moveto } if -p1x p1y p2x p2y p3x p3y curveto -end -} dup 0 17 dict put def - -/storexyn { -/n exch def -/y n array def -/x n array def -n 1 sub -1 0 { -/i exch def -y i 3 2 roll put -x i 3 2 roll put -} for -} def - -/SSten { -fgred fggreen fgblue setrgbcolor -dup true exch 1 0 0 -1 0 6 -1 roll matrix astore -} def - -/FSten { -dup 3 -1 roll dup 4 1 roll exch -newpath -0 0 moveto -dup 0 exch lineto -exch dup 3 1 roll exch lineto -0 lineto -closepath -bgred bggreen bgblue setrgbcolor -eofill -SSten -} def - -/Rast { -exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore -} def - - -%I Idraw 10 Grid 3 3 - - -Begin -%I b u -%I cfg u -%I cbg u -%I f u -%I p u -%I t -[ 0.955325 0 0 0.955325 0 0 ] concat -/originalCTM matrix currentmatrix def - -Begin %I Line -%I b 65520 -0 0 0 [12 4] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 -0 -0 1 117 149 ] concat -%I -228 226 228 451 Line -%I 1 -End - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 -0 -0 1 117 149 ] concat -%I -213 211 228 181 Line -%I 1 -End - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -%I p -0 SetP -%I t -[ 1 -0 -0 1 117 149 ] concat -%I -228 181 243 211 Line -%I 1 -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* -Helvetica-Bold 14 SetF -%I t -[ 1 0 0 1 322 317 ] concat -%I -[ -(Monitor) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 0.92 0 0 0.92 355.92 609.68 ] concat -%I -[ -(\(10 hops\)) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 473 580 ] concat -%I -[ -(\(18 hops\)) -] Text -End - -Begin %I Rect -%I b 65535 -1 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 0 0 1 58.25 112.5 ] concat -%I -105 437 146 462 Rect -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-courier-bold-r-normal-*-12-*-*-*-*-*-*-* -Courier-Bold 12 SetF -%I t -[ 1 0 0 1 170.25 566.5 ] concat -%I -[ -(USER) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 145 590 ] concat -%I -[ -(seq= 6 ... 9) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 129.25 566.5 ] concat -%I -[ -(ttl=20) -] Text -End - -Begin %I Rect -%I b 65535 -1 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 0 0 1 103.25 67.5 ] concat -%I -105 437 146 462 Rect -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 173.25 522 ] concat -%I -[ -(ttl=12) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 211 545 ] concat -%I -[ -(10 .. 13) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-courier-bold-r-normal-*-12-*-*-*-*-*-*-* -Courier-Bold 12 SetF -%I t -[ 1 0 0 1 215.25 521.5 ] concat -%I -[ -(nice) -] Text -End - -Begin %I Rect -%I b 65535 -1 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 0 0 1 103.25 8.50003 ] concat -%I -105 437 146 462 Rect -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 211 486 ] concat -%I -[ -(10 .. 13) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 173.25 463 ] concat -%I -[ -(ttl=20) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-courier-bold-r-normal-*-12-*-*-*-*-*-*-* -Courier-Bold 12 SetF -%I t -[ 1 0 0 1 215.25 463 ] concat -%I -[ -(root) -] Text -End - -Begin %I Line -%I b 65535 -2 0 1 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 -0 -0 1 172.25 248.5 ] concat -%I -88 211 308 212 Line -%I 1 -End - -Begin %I Line -%I b 65535 -2 0 1 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 -0 -0 1 169.25 246.5 ] concat -%I -93 271 206 272 Line -%I 1 -End - -Begin %I Pict -%I b u -%I cfg u -%I cbg u -%I f u -%I p u -%I t -[ 1 0 0 1 5 0.5 ] concat - -Begin %I Pict -%I b u -%I cfg u -%I cbg u -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I p u -%I t -[ 0.214567 0 0 0.214567 300.249 408.973 ] concat - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 0.125 -0 -0 0.125 346 477.5 ] concat -%I -329 115 40 403 Line -%I 8 -End - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 0.125 -0 -0 0.125 346 477.5 ] concat -%I -41 115 329 403 Line -%I 8 -End - -End %I eop - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* -Times-Roman 12 SetF -%I t -[ 1 0 0 1 374.75 510.25 ] concat -%I -[ -(ttl expires) -] Text -End - -End %I eop - -Begin %I Rect -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1.7938 0 0 0.865636 184.784 -12.9233 ] concat -%I -105 437 146 462 Rect -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-courier-bold-r-normal-*-12-*-*-*-*-*-*-* -Courier-Bold 12 SetF -%I t -[ 1 0 0 1 378.906 380.68 ] concat -%I -[ -(USER nice) -] Text -End - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 -0 -0 1 118.906 247.18 ] concat -%I -291 118 291 140 Line -%I 1 -End - -Begin %I Rect -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1.7938 0 0 0.865636 184.784 -38.4233 ] concat -%I -105 437 146 462 Rect -End - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 0 0 1 118.906 221.68 ] concat -%I -291 118 291 140 Line -%I 1 -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-courier-bold-r-normal-*-12-*-*-*-*-*-*-* -Courier-Bold 12 SetF -%I t -[ 1 0 0 1 378.906 355.18 ] concat -%I -[ -(USER root) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-helvetica-medium-o-normal-*-14-*-*-*-*-*-*-* -Helvetica-Oblique 14 SetF -%I t -[ 1 0 0 1 453 382 ] concat -%I -[ -(?) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-helvetica-medium-o-normal-*-14-*-*-*-*-*-*-* -Helvetica-Oblique 14 SetF -%I t -[ 1 0 0 1 453 357 ] concat -%I -[ -(?) -] Text -End - -Begin %I Rect -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1.7938 0 0 0.865636 292.284 104.577 ] concat -%I -105 437 146 462 Rect -End - -Begin %I Line -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 1 0 0 1 226.406 364.68 ] concat -%I -291 118 291 140 Line -%I 1 -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-courier-bold-r-normal-*-12-*-*-*-*-*-*-* -Courier-Bold 12 SetF -%I t -[ 1 0 0 1 486.406 498.18 ] concat -%I -[ -(USER root) -] Text -End - -Begin %I Line -%I b 65535 -2 0 1 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 0.5 -0 -0 0.5 338.25 314.5 ] concat -%I --246 496 287 494 Line -%I 2 -End - -Begin %I Pict -%I b u -%I cfg u -%I cbg u -%I f u -%I p u -%I t -[ 1 0 0 1 6 32 ] concat - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* -Helvetica-Bold 14 SetF -%I t -[ 1 0 0 1 477 493 ] concat -%I -[ -(Victim) -] Text -End - -Begin %I Text -%I cfg Black -0 0 0 SetCFg -%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* -Helvetica-Bold 14 SetF -%I t -[ 1 0 0 1 89 494 ] concat -%I -[ -(Attacker) -] Text -End - -End %I eop - -Begin %I BSpl -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -none SetP %I p n -%I t -[ 0.25 -0 -0 0.25 313.75 281.5 ] concat -%I 3 -89 266 -126 302 -160 267 -3 BSpl -%I 4 -End - -Begin %I BSpl -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -%I p -0 SetP -%I t -[ 0.25 -0 -0 0.25 313.75 281.5 ] concat -%I 3 -106 279 -125 269 -145 282 -3 BSpl -%I 4 -End - -Begin %I BSpl -%I b 65535 -0 0 0 [] 0 SetB -%I cfg Black -0 0 0 SetCFg -%I cbg White -1 1 1 SetCBg -%I p -0 SetP -%I t -[ 0.25 -0 -0 0.25 313.75 281.5 ] concat -%I 3 -145 281 -125 291 -106 281 -3 BSpl -%I 4 -End - -End %I eop - -showpage - - -end -%%EndDocument - - endTexFig - -150 1302 a Fs(Figure)19 b(2:)24 b(A)c(TTL-based)e(e)n(v)n(asion)g -(attack)h(on)g(an)g(intrusion)f(detec-)-150 1401 y(tion)i(system)-150 -1691 y(quence)27 b(numbers)f(6)i(through)e(9)i(in)g(the)g(TCP)h(data)e -(stream.)48 b(It)29 b(is)-150 1791 y(18)f(hops)h(to)g(the)g(victim)f -(and)h(10)f(hops)g(to)h(the)g(monitor)m(,)g(so)g(both)-150 -1890 y(see)g(this)g(te)o(xt)g(and)f(accept)g(it.)51 b(The)29 -b(attack)o(er)f(ne)o(xt)g(transmits)h(the)-150 1990 y(te)o(xt)g(\223)p -Fm(nice)p Fs(\224)f(co)o(v)o(ering)f(the)i(ne)o(xt)f(consecuti)n(v)o(e) -f(span)i(of)f(the)h(se-)-150 2090 y(quence)34 b(space,)40 -b(10)35 b(through)e(13,)39 b(b)n(ut)d(with)g(an)f(initial)h(TTL)g(of) --150 2189 y(only)19 b(12,)f(which)h(suf)n(\002ces)h(for)f(the)g(pack)o -(et)g(to)g(tra)n(v)o(el)h(past)f(the)h(mon-)-150 2289 -y(itor)m(,)35 b(b)n(ut)e(not)g(all)g(the)g(w)o(ay)g(to)g(the)g(victim.) -62 b(Hence,)36 b(the)d(moni-)-150 2388 y(tor)28 b(sees)h(this)g(te)o -(xt)f(b)n(ut)g(the)g(victim)g(does)g(not.)49 b(The)28 -b(attack)o(er)g(the)-150 2488 y(sends)e(the)g(te)o(xt)g(\223)p -Fm(root)p Fs(\224)g(with)g(the)g(same)g(sequence)f(numbers)g(as)-150 -2588 y(\223)p Fm(nice)p Fs(\224,)20 b(b)n(ut)h(this)g(time)g(with)g -(enough)d(TTL)j(to)f(reach)g(the)h(victim.)-150 2687 -y(The)26 b(victim)f(will)i(thus)f(only)f(see)h(the)g(te)o(xt)g(\223)p -Fm(USER)p Fs(\224)f(follo)n(wed)g(by)-150 2787 y(\223)p -Fm(root)p Fs(\224,)d(while)h(the)f(monitor)f(will)i(see)g(tw)o(o)g(v)o -(ersions)e(of)h(the)h(te)o(xt)-150 2887 y(for)17 b(sequence)g(numbers)f -(10)i(through)d(13,)j(and)f(will)i(ha)n(v)o(e)e(to)h(decide)-150 -2986 y(which)i(to)h(assume)f(w)o(as)i(also)f(recei)n(v)o(ed)e(by)h(the) -g(victim)h(\(if,)f(indeed,)-150 3086 y(it)e(e)n(v)o(en)f(detects)h -(that)g(the)f(data)h(stream)f(includes)g(an)h(inconsistenc)o(y)-5 -b(,)-150 3185 y(which)25 b(requires)f(e)o(xtra)h(w)o(ork)f(on)h(the)h -(monitor')-5 b(s)24 b(part\).)40 b(While)25 b(in)-150 -3285 y(this)c(case)g(by)f(inspecting)f(the)h(TTLs)h(it)g -Fr(may)f Fs(be)g(able)g(to)h(determine)-150 3385 y(which)c(of)g(the)g -(tw)o(o)g(v)o(ersions)g(the)g(victim)g(will)h(ha)n(v)o(e)e(seen,)i -(there)f(are)-150 3484 y(man)o(y)28 b(other)g(w)o(ays)h(\(windo)n(w)e -(checks,)j(the)f(MTU)g(attack)f(abo)o(v)o(e,)-150 3584 -y(checksums,)e(ackno)n(wledgement)c(sequence)j(number)f(checks\))h(of) --150 3684 y(subtly)31 b(af)n(fecting)g(header)g(\002elds)h(such)g(that) -g(the)g(victim)f(will)i(re-)-150 3783 y(ject)21 b(one)f(or)g(the)g -(other)g(of)g(the)g(tw)o(o)h(v)o(ersions.)j(Fundamentally)-5 -b(,)18 b(the)-150 3883 y(monitor)j(cannot)h(con\002dently)f(kno)n(w)h -(which)h(of)f(the)h(tw)o(o)h(v)o(ersions)-150 3982 y(to)c(accept.)-67 -4093 y(A)27 b(partial)g(defense)e(against)h(this)h(attack)g(is)h(that)e -(when)g(we)h(ob-)-150 4193 y(serv)o(e)j(a)h(retransmitted)e(pack)o(et)h -(\(one)f(with)i(data)f(that)g(wholly)g(or)-150 4293 y(partially)21 -b(o)o(v)o(erlaps)g(pre)n(viously-seen)e(data\),)j(we)g(compare)f(it)h -(with)-150 4392 y(an)o(y)f(data)g(it)i(o)o(v)o(erlaps,)d(and)h(sound)g -(an)g(alarm)h(\(or)m(,)f(for)g(Bro,)h(gener)n(-)-150 -4492 y(ate)k(an)g(e)n(v)o(ent\))f(if)h(the)o(y)f(disagree.)41 -b(A)27 b(properly-functioning)20 b(TCP)-150 4592 y(will)31 -b(al)o(w)o(ays)f(retransmit)f(the)h(same)g(data)f(as)i(originally)d -(sent,)k(so)-150 4691 y(an)o(y)23 b(disagreement)f(is)j(either)f(due)f -(to)h(a)h(brok)o(en)d(TCP)-9 b(,)24 b(undetected)-150 -4791 y(data)19 b(corruption)d(\(i.e.,)j(corruption)e(the)i(checksum)e -(f)o(ails)j(to)f(catch\),)-150 4890 y(or)h(an)g(attack.)-67 -5001 y(W)-7 b(e)28 b(ha)n(v)o(e)e(ar)o(gued)f(that)i(the)g(monitor)e -(must)i(retain)f(a)h(record)f(of)-150 5101 y(pre)n(viously)34 -b(transmitted)i(data,)k(both)35 b(in-sequence)g(and)g(out-of-)-150 -5201 y(sequence.)30 b(The)22 b(question)f(no)n(w)g(arises)i(as)g(to)f -(ho)n(w)g(long)g(the)g(mon-)-150 5300 y(itor)f(must)g(k)o(eep)g(this)g -(data)g(around.)26 b(If)21 b(it)h(k)o(eeps)e(it)i(for)f(the)g(lifetime) --150 5400 y(of)d(the)h(connection,)d(then)i(it)i(may)e(require)f -(prodigious)f(amounts)i(of)2049 -104 y(memory)25 b(an)o(y)g(time)i(it)g -(happens)e(upon)g(a)h(particularly)f(lar)o(ge)g(con-)2049 --5 y(nection;)i(these)e(are)g(not)g(infrequent)e([P)o(a94)n(].)40 -b(W)-7 b(e)26 b(instead)f(w)o(ould)2049 95 y(lik)o(e)31 -b(to)g(discard)f(data)h(blocks)f(as)h(soon)g(as)g(possible,)i(to)e -(reclaim)2049 194 y(the)g(associated)g(memory)-5 b(.)55 -b(Clearly)-5 b(,)33 b(we)f(cannot)d(safely)i(discard)2049 -294 y(blocks)17 b(abo)o(v)o(e)f(a)j(sequencing)c(hole,)j(as)h(we)f -(then)f(lose)h(the)g(opportu-)2049 394 y(nity)i(to)h(scan)f(the)h(te)o -(xt)f(that)h(crosses)g(from)e(the)i(sequence)e(hole)h(into)2049 -493 y(the)h(block.)28 b(But)22 b(we)g(w)o(ould)e(lik)o(e)i(to)g -(determine)e(when)g(it)i(is)h(safe)e(to)2049 593 y(discard)f -(in-sequence)e(data.)2132 698 y(Here)i(we)h(can)f(mak)o(e)g(use)h(of)f -(our)f(assumption)g(that)i(the)f(attack)o(er)2049 798 -y(controls)j(only)f(one)h(of)h(the)f(connection)f(endpoints.)33 -b(Suppose)23 b(the)2049 897 y(stream)30 b(of)g(interest)g(\003o)n(ws)g -(from)f(host)h Fj(A)h Fs(to)f(host)g Fj(B)t Fs(.)55 b(If)29 -b(the)h(at-)2049 997 y(tack)o(er)i(controls)g Fj(B)t -Fs(,)k(then)c(the)o(y)g(are)g(unable)g(to)g(manipulate)g(the)2049 -1097 y(data)21 b(pack)o(ets)g(in)h(a)g(subterfuge)d(attack,)i(so)h(we)g -(can)f(safely)g(discard)2049 1196 y(the)h(data)h(once)e(it)i(is)g -(in-sequence)e(and)h(we)g(ha)n(v)o(e)g(had)g(an)g(opportu-)2049 -1296 y(nity)e(to)h(analyze)e(it.)26 b(On)21 b(the)f(other)g(hand,)f(if) -h(the)o(y)g(control)f Fj(A)p Fs(,)i(then,)2049 1395 y(from)i(our)f -(assumption,)h(an)o(y)g(traf)n(\002c)h(we)g(see)g(from)e -Fj(B)29 b Fs(re\003ects)24 b(the)2049 1495 y(correct)16 -b(functioning)f(of)i(its)i(TCP)f(\(this)f(assumes)h(that)f(we)h(use)g -(anti-)2049 1595 y(spoo\002ng)f(\002lters)j(so)f(that)g(the)g(attack)o -(er)f(cannot)g(for)o(ge)f(bogus)h(traf)n(\002c)2049 1694 -y(purportedly)g(coming)h(from)h Fj(B)t Fs(\).)27 b(In)21 -b(particular)m(,)e(we)i(can)f(trust)h(that)2049 1794 -y(if)f(we)g(see)h(an)f(ackno)n(wledgement)c(from)j Fj(B)24 -b Fs(for)c(sequence)e(number)2049 1894 y Fj(n)p Fs(,)26 -b(then)e(indeed)f Fj(B)29 b Fs(has)c(recei)n(v)o(ed)e(all)i(data)g(in)f -(sequence)g(up)g(to)g Fj(n)p Fs(.)2049 1993 y(At)d(this)f(point,)g -Fj(B)t Fs(')-5 b(s)21 b(TCP)g(will)g(deli)n(v)o(er)m(,)d(or)i(has)h -(already)e(deli)n(v)o(ered,)2049 2093 y(this)24 b(data)f(to)h(the)f -(application)f(running)f(on)i Fj(B)t Fs(.)35 b(In)23 -b(particular)m(,)f Fj(B)t Fs(')-5 b(s)2049 2192 y(TCP)31 -b(cannot)e(accept)h(an)o(y)f(retransmitted)g(data)h(belo)n(w)g -(sequence)2049 2292 y Fj(n)p Fs(,)24 b(as)g(it)f(has)h(already)e -(indicated)g(it)h(has)h(no)e(more)h(interest)g(in)g(such)2049 -2392 y(data.)h(Therefore,)15 b(when)h(the)i(monitor)d(sees)j(an)f -(ackno)n(wledgement)2049 2491 y(for)k Fj(n)p Fs(,)h(it)g(can)f(safely)h -(release)f(an)o(y)g(memory)f(associated)h(with)h(data)2049 -2591 y(up)e(to)g(sequence)f Fj(n)p Fs(.)2132 2696 y(While)d(this)g -(defense)e(w)o(orks)h(for)g(detecting)f(this)i(general)f(class)h(of) -2049 2796 y(insertion)k(attacks,)h(it)h(suf)n(fers)e(from)g(f)o(alse)h -(positi)n(v)o(es,)f(as)i(discussed)2049 2895 y(in)e Fi(x)h -Fs(7.3)f(belo)n(w)-5 b(.)2132 3000 y(Finally)g(,)33 b(we)f(note)e(a)i -(general)e(defense)h(against)f(certain)h(types)2049 3100 -y(of)22 b(subterfuge)e(attacks,)i(which)f(we)h(term)g(\223bifurcating)e -(analysis.)-6 b(\224)2049 3200 y(The)23 b(idea)g(is)h(that)f(when)g -(the)g(monitor)e(cannot)h(determine)g(ho)n(w)h(an)2049 -3299 y(endpoint)15 b(will)j(interpret)e(some)h(netw)o(ork)f(traf)n -(\002c)g(\(such)h(as)h(whether)2049 3399 y(it)25 b(will)h(accept)e -Fm(USER)49 b(nice)25 b Fs(or)f Fm(USER)49 b(root)p Fs(\),)25 -b(it)g(forms)f(mul-)2049 3499 y(tiple)c(threads)g(of)g(analysis,)g(e)o -(xamining)e(each)i(of)g(the)g(possibilities.)2049 3598 -y(W)-7 b(e)25 b(note)d(one)h(e)o(xample)f(of)h(doing)g(so)g(in)h -Fi(x)g Fs(6.5)e(belo)n(w)h(in)h(our)e(dis-)2049 3698 -y(cussion)e(of)g(analyzing)e(T)-6 b(elnet)20 b(and)g(Rlogin)g(traf)n -(\002c.)2049 4008 y Ft(6)119 b(A)m(pplication-speci\002c)33 -b(pr)n(ocessing)2049 4204 y Fs(W)-7 b(e)21 b(\002nish)g(our)e(o)o(v)o -(ervie)n(w)f(of)i(Bro)g(with)g(a)h(discussion)e(of)h(the)g(addi-)2049 -4304 y(tional)j(processing)f(it)i(does)g(for)e(the)i(six)g -(applications)e(it)i(currently)2049 4404 y(kno)n(ws)33 -b(about:)51 b(Finger)m(,)36 b(FTP)-9 b(,)33 b(Portmapper)m(,)i(Ident,)h -(T)-6 b(elnet)33 b(and)2049 4503 y(Rlogin.)e(Admittedly)21 -b(these)h(are)g(just)h(a)g(small)f(portion)f(of)h(the)g(dif-)2049 -4603 y(ferent)g(Internet)g(applications)g(used)g(in)h(attacks,)h(and)e -(Bro')-5 b(s)24 b(ef)n(fec-)2049 4703 y(ti)n(v)o(eness)e(will)h -(bene\002t)g(greatly)e(as)i(more)f(are)g(added.)31 b(F)o(ortunately)-5 -b(,)2049 4802 y(we)34 b(ha)n(v)o(e)f(in)h(general)f(found)f(that)i(the) -g(system)g(meets)g(our)f(goal)2049 4902 y(of)f(e)o(xtensibility)e(\()p -Fi(x)j Fs(1\),)h(and)d(adding)g(ne)n(w)h(applications)e(to)i(Bro)2049 -5001 y(is\227other)j(than)f(the)i(sometimes)f(major)f(headache)g(of)h -(rob)n(ustly)2049 5101 y(interpreting)d(the)j(application)e(protocol)f -(itself\227quite)i(straight-)2049 5201 y(forw)o(ard,)d(a)f(matter)g(of) -g(deri)n(ving)e(a)i(C++)h(class)g(to)f(analyze)f(each)2049 -5300 y(connection')-5 b(s)18 b(traf)n(\002c,)h(and)g(de)n(vising)g(a)h -(set)g(of)f(e)n(v)o(ents)g(correspond-)2049 5400 y(ing)h(to)g -(signi\002cant)g(elements)g(of)g(the)g(application.)1908 -5649 y(13)p eop -%%Page: 14 14 -14 13 bop -150 -104 a Fh(6.1)99 b(Finger)-150 51 y Fs(The)33 -b(\002rst)i(of)e(the)h(applications)f(is)h(the)g(Finger)f(\223User)h -(Informa-)-150 151 y(tion\224)22 b(service)f([Zi91)o(].)30 -b(Structurally)-5 b(,)20 b(Finger)h(is)i(v)o(ery)e(simple:)29 -b(the)-150 250 y(connection)i(originator)f(sends)j(a)g(single)g(line,)i -(terminated)d(by)g(a)-150 350 y(carriage-return)20 b(line-feed,)i -(specifying)f(the)i(user)g(for)f(which)g(the)o(y)-150 -450 y(request)28 b(information.)50 b(An)29 b(optional)f(\003ag)h -(requests)g(\223full\224)g(\(v)o(er)n(-)-150 549 y(bose\))g(output.)54 -b(The)29 b(responder)f(returns)h(whate)n(v)o(er)g(information)-150 -649 y(it)c(deems)f(appropriate)f(in)h(multiple)g(lines)h(of)f(te)o(xt,) -i(after)e(which)g(it)-150 749 y(closes)d(the)f(connection.)-67 -848 y(Bro)37 b(generates)f(a)h Fm(finger)p 825 848 25 -4 v 28 w(request)f Fs(e)n(v)o(ent)g(whene)n(v)o(er)f(it)-150 -948 y(monitors)18 b(a)i(complete)e(Finger)h(request.)24 -b(A)c(handler)e(for)h(this)g(e)n(v)o(ent)-150 1047 y(looks)h(lik)o(e:) --150 1191 y Ff(event)39 b(finger_request\(c:)e(connection,)687 -1270 y(user:)i(string,)g(full:)g(bool\))-150 1435 y Fs(Our)18 -b(site')-5 b(s)20 b(polic)o(y)d(for)h(Finger)g(requests)g(includes)g -(testing)g(for)g(pos-)-150 1534 y(sible)j(b)n(uf)n(fer)n(-o)o(v)o -(er\003o)n(w)16 b(attacks)21 b(and)e(checking)g(the)h(user)g(against)g -(a)-150 1634 y(list)27 b(of)e(sensiti)n(v)o(e)h(user)g(ID')-5 -b(s,)27 b(such)f(as)g(pri)n(vile)o(ged)e(accounts.)41 -b(See)-150 1734 y(Appendix)26 b(A)i(for)f(a)h(discussion)f(of)h(ho)n(w) -f(the)h(Finger)f(analysis)h(is)-150 1833 y(inte)o(grated)19 -b(into)g(Bro.)-67 1933 y(Bro)h(generates)g(an)g(analogous)e -Fm(finger)p 1174 1933 V 29 w(reply)i Fs(e)n(v)o(ent:)-150 -2077 y Ff(event)39 b(finger_reply\(c:)f(connection,)607 -2155 y(reply_line:)g(string\))-150 2320 y Fs(for)20 b(each)f(line)i(of) -f(the)g(reply)f(from)g(the)i(Finger)e(serv)o(er)-5 b(.)-67 -2420 y(A)19 b(\002nal)g(note:)24 b(if)19 b(the)f(e)n(v)o(ent)g(engine)f -(\002nds)i(that)g(the)f(polic)o(y)g(script)-150 2519 -y(does)29 b(not)g(de\002ne)f(a)i Fm(finger)p 772 2519 -V 29 w(request)e Fs(or)h Fm(finger)p 1578 2519 V 29 w(reply)-150 -2619 y Fs(handler)m(,)19 b(then)h(it)h(does)f(not)g(bother)f(creating)h -(Finger)n(-speci\002c)f(ana-)-150 2719 y(lyzers)j(for)g(ne)n(w)g -(Finger)g(connections.)30 b(In)22 b(general,)g(the)g(e)n(v)o(ent)g(en-) --150 2818 y(gine)g(tries)i(to)f(determine)e(as)j(early)f(as)g(possible) -g(whether)f(the)h(user)-150 2918 y(has)c(de\002ned)f(a)h(particular)e -(handler)m(,)g(and,)i(if)g(not,)f(a)n(v)n(oids)h(undertak-)-150 -3017 y(ing)29 b(the)g(w)o(ork)f(associated)h(with)h(generating)d(the)i -(corresponding)-150 3117 y(e)n(v)o(ent.)-150 3351 y Fh(6.2)99 -b(FTP)-150 3507 y Fs(The)30 b(File)h(T)m(ransfer)f(Protocol)f([PR85)o -(])i(is)g(much)f(more)f(comple)o(x)-150 3607 y(than)h(the)g(Finger)f -(protocol;)k(it)e(also,)h(ho)n(we)n(v)o(er)m(,)e(is)h(highly)e(struc-) --150 3706 y(tured)34 b(and)g(easy)h(to)g(parse,)j(so)d(interpreting)e -(an)h(FTP)i(dialog)e(is)-150 3806 y(straight-forw)o(ard.)-67 -3906 y(F)o(or)28 b(FTP)h(requests,)i(Bro)d(parses)h(each)f(line)h(sent) -g(by)f(the)g(con-)-150 4005 y(nection)22 b(originator)e(into)j(a)g -(command)e(\(\002rst)i(w)o(ord\))f(and)g(an)g(ar)o(gu-)-150 -4105 y(ment)28 b(\(the)g(remainder\),)f(splitting)h(the)h(tw)o(o)f(at)h -(the)f(\002rst)h(instance)-150 4204 y(of)f(whitespace)f(it)i(\002nds,)h -(and)e(con)m(v)o(erting)d(the)j(command)e(to)i(up-)-150 -4304 y(percase)20 b(\(to)g(circumv)o(ent)e(problems)g(such)i(as)h(a)g -(polic)o(y)e(script)h(test-)-150 4404 y(ing)i(for)g(\223store)g -(\002le\224)h(commands)e(as)i Fm(STOR)f Fs(or)h Fm(stor)p -Fs(,)f(and)g(an)g(at-)-150 4503 y(tack)o(er)j(instead)g(sending)f -Fm(stOR)p Fs(,)g(which)h(the)g(remote)g(FTP)g(serv)o(er)-150 -4603 y(will)32 b(happily)e(accept\).)57 b(It)31 b(then)g(generates)f -(an)h Fm(ftp)p 1478 4603 V 29 w(request)-150 4703 y Fs(e)n(v)o(ent)24 -b(with)h(these)g(and)f(the)h(corresponding)c(connection)i(as)i(ar)o -(gu-)-150 4802 y(ments.)-67 4902 y(FTP)20 b(replies)f(be)o(gin)g(with)g -(a)h(status)g(code)f(\(a)h(number\),)d(follo)n(wed)-150 -5001 y(by)f(an)o(y)g(accompan)o(ying)d(te)o(xt.)23 b(Replies)18 -b(also)e(can)h(indicate)f(whether)-150 5101 y(the)o(y)24 -b(continue)f(to)i(another)e(line.)38 b(Accordingly)-5 -b(,)23 b(for)h(each)g(line)h(of)-150 5201 y(reply)31 -b(the)i(e)n(v)o(ent)e(engine)g(generates)g(an)h Fm(ftp)p -1263 5201 V 29 w(reply)g Fs(with)h(the)-150 5300 y(code,)25 -b(the)f(te)o(xt,)h(a)g(\003ag)g(indicating)e(continuation,)g(and)h(the) -h(corre-)-150 5400 y(sponding)18 b(connection)g(as)j(ar)o(guments.)2132 --104 y(As)35 b(f)o(ar)f(as)h(the)f(e)n(v)o(ent)f(engine)g(is)i -(concerned,)g(that')-5 b(s)34 b(it\227100)2049 -5 y(lines)18 -b(of)g(straight-forw)o(ard)d(C++.)24 b(What)19 b(is)f(interesting)f -(about)g(FTP)2049 95 y(is)32 b(that)f(all)h(the)f(remaining)f(w)o(ork)g -(can)h(be)g(done)f(in)i Fm(Bro)f Fs(\(about)2049 194 -y(400)d(lines)g(for)g(our)g(site\).)50 b(The)29 b Fm(ftp)p -3182 194 V 29 w(request)f Fs(handler)f(k)o(eeps)2049 -294 y(track)k(of)f(distinct)i(FTP)f(sessions,)k(pulls)c(out)f -(usernames)g(to)i(test)2049 394 y(against)26 b(a)h(list)g(of)g(sensiti) -n(v)o(e)f(ID')-5 b(s)27 b(\(and)f(to)g(annotate)g(the)g(connec-)2049 -493 y(tion')-5 b(s)24 b(general)f(summary\),)g(and,)h(for)f(an)o(y)g -(FTP)i(request)e(that)h(ma-)2049 593 y(nipulates)29 b(a)i(\002le,)i -(checks)c(for)h(access)g(to)h(sensiti)n(v)o(e)e(\002les.)56 -b(Some)2049 693 y(of)23 b(these)g(checks)g(depend)e(on)i(conte)o(xt;)h -(for)e(e)o(xample,)h(a)g(guest)g(\(or)2049 792 y(\223anon)o -(ymous\224\))i(user)k(should)f(not)g(attempt)g(to)h(manipulate)f(user)n -(-)2049 892 y(con\002guration)18 b(\002les,)i(while)h(for)e(other)h -(users)g(doing)f(so)h(is)h(\002ne.)2132 998 y(One)f(subtlety)h(in)f -(the)h(FTP)g(analysis)g(is)g(being)f(careful)g(to)g(main-)2049 -1097 y(tain)32 b(a)h(notion)d(of)i(\223current)f(requests)g(a)o(w)o -(aiting)h(replies,)-6 b(\224)34 b(rather)2049 1197 y(than)f(just)h -(\223the)f(most)g(recently)g(seen)g(request.)-6 b(\224)64 -b(Doing)33 b(so)g(cir)n(-)2049 1297 y(cumv)o(ents)23 -b(an)h(attack)h(in)f(which)g(the)h(attack)o(er)e(pipelines)h(multiple) -2049 1396 y(requests\227rather)g(than)h(issuing)g(a)h(single)g(request) -e(at)i(a)g(time)g(and)2049 1496 y(a)o(w)o(aiting)18 b(its)i -(response\227and)c(confuses)i(the)h(monitor)e(as)i(to)g(which)2049 -1595 y(replies)h(go)g(with)g(which)g(requests.)2132 1701 -y(A)g(\002nal)g(analysis)f(step)h(for)f Fm(ftp)p 3093 -1701 V 29 w(request)g Fs(e)n(v)o(ents)g(is)h(to)g(parse)2049 -1801 y(an)o(y)i Fm(PORT)g Fs(request)g(to)h(e)o(xtract)f(the)g -(hostname)g(and)g(TCP)h(port)f(as-)2049 1901 y(sociated)f(with)g(an)h -(upcoming)c(transfer)-5 b(.)28 b(\(The)21 b(FTP)h(protocol)d(uses)2049 -2000 y(multiple)28 b(TCP)i(connections,)f(one)g(for)f(the)h(control)f -(information)2049 2100 y(such)g(as)h(user)f(requests,)i(and)e(others,)h -(dynamically)e(created,)i(for)2049 2199 y(each)34 b(data)f(transfer)-5 -b(.\))65 b(This)34 b(is)h(an)f(important)e(step,)38 b(because)33 -b(it)2049 2299 y(enables)27 b(the)g(script)g(to)g(tell)h(which)e -(subsequent)g(connections)f(be-)2049 2399 y(long)h(to)g(this)i(FTP)f -(session)g(and)f(which)g(do)g(not.)44 b(A)27 b(site')-5 -b(s)28 b(polic)o(y)2049 2498 y(might)d(allo)n(w)h(FTP)g(access)h(to)f -(particular)e(serv)o(ers,)j(b)n(ut)e(an)o(y)g(other)2049 -2598 y(access)f(to)f(those)g(serv)o(ers)f(merits)i(an)f(alarm;)h(b)n -(ut)f(without)g(parsing)2049 2698 y(the)c Fm(PORT)h Fs(request,)e(it)j -(can)e(be)g(impossible)g(to)h(distinguish)e(a)i(le)o(git-)2049 -2797 y(imate)j(FTP)g(data)f(transfer)g(connection)f(from)g(an)i -(illicit,)h(non-FTP)2049 2897 y(connection.)54 b(Consequently)-5 -b(,)30 b(the)h(script)f(k)o(eeps)h(track)f(of)g(pend-)2049 -2996 y(ing)23 b(data)h(transfer)e(connections,)g(and)h(when)g(it)h -(encounters)e(them,)2049 3096 y(marks)g(them)g(as)h Fm(ftp-data)f -Fs(applications,)f(e)n(v)o(en)g(if)i(the)o(y)f(do)g(not)2049 -3196 y(use)j(the)g(well-kno)n(wn)e(port)i(associated)g(with)g(such)f -(transfers)h(\(the)2049 3295 y(standard)19 b(does)h(not)g(require)f -(them)g(to)i(do)f(so\).)2132 3401 y(W)-7 b(e)18 b(also)f(note)f(that,)h -(in)g(addition)f(to)g(correctly)g(identifying)e(FTP-)2049 -3501 y(related)30 b(traf)n(\002c,)i(parsing)d Fm(PORT)h -Fs(requests)g(mak)o(es)g(it)h(possible)e(to)2049 3600 -y(detect)e(\223FTP)h(bounce\224)d(attacks.)47 b(In)27 -b(these)g(attacks,)i(a)f(malicious)2049 3700 y(FTP)j(client)g -(instructs)g(an)g(FTP)g(serv)o(er)g(to)g(open)e(a)j(data)e(transfer) -2049 3800 y(connection)f(not)i(back)f(to)i(it,)i(b)n(ut)d(to)h(a)f -(third,)i(victim)e(site.)59 b(The)2049 3899 y(client)25 -b(can)f(thus)h(manipulate)e(the)h(serv)o(er)g(into)h(uploading)d(data)i -(to)2049 3999 y(an)e(arbitrary)e(service)h(on)h(the)g(victim)f(site,)i -(or)f(to)g(ef)n(fecti)n(v)o(ely)e(port-)2049 4099 y(scan)h(the)g -(victim)g(site)h(\(which)e(the)h(client)g(does)g(by)g(using)f(multiple) -2049 4198 y(bogus)30 b Fm(PORT)g Fs(requests)h(and)f(observing)f(the)i -(completion)e(status)2049 4298 y(of)20 b(subsequent)f(data-transfer)g -(requests\).)25 b(Our)20 b(script)h(\003ags)g Fm(PORT)2049 -4397 y Fs(requests)d(that)g(attempt)f(an)o(y)h(redirection)e(of)h(the)h -(data)g(transfer)f(con-)2049 4497 y(nection.)23 b(Interestingly)-5 -b(,)16 b(we)j(added)e(this)i(check)e(mostly)h(because)g(it)2049 -4597 y(w)o(as)e(easy)g(to)g(do)f(so;)j(months)d(later)m(,)h(we)g -(monitored)d(the)j(\002rst)g(of)g(se)n(v-)2049 4696 y(eral)22 -b(subsequent)e(FTP)i(bounce)e(attacks.)30 b(This)22 b(form)f(of)g -(serendip-)2049 4796 y(itous)h(disco)o(v)o(ery)e(of)h(an)h -(unanticipated)e(type)h(of)h(attack)g(ar)o(gues)e(for)2049 -4896 y(emplo)o(ying)c(a)j(general)f(principle)f(of)h(\223sanity)h -(checking\224)d(the)j(mon-)2049 4995 y(itored)25 b(traf)n(\002c)g(as)h -(much)e(as)i(possible.)40 b(F)o(or)25 b(a)h(dif)n(\002culty)e(with)i -(this)2049 5095 y(principle,)19 b(ho)n(we)n(v)o(er)m(,)e(see)k -Fi(x)g Fs(7.3.)2132 5201 y(F)o(or)26 b Fm(ftp)p 2428 -5201 V 29 w(reply)f Fs(e)n(v)o(ents,)i(most)f(of)g(the)g(w)o(ork)f(is)i -(simply)e(for)n(-)2049 5300 y(matting)h(a)i(succinct)e(one-line)g -(summary)g(of)h(the)g(request)f(and)h(its)2049 5400 y(result)f(for)f -(recording)e(in)i(the)h(FTP)g(acti)n(vity)f(log.)41 b(In)25 -b(addition,)h(an)1908 5649 y(14)p eop -%%Page: 15 15 -15 14 bop -150 -104 a Fs(FTP)19 b Fm(PASV)f Fs(request)g(has)g(a)h -(structure)f(similar)g(to)h(a)f Fm(PORT)g Fs(request,)-150 --5 y(e)o(xcept)c(that)i(the)f(FTP)h(serv)o(er)f(instead)g(of)g(the)g -(client)g(determines)g(the)-150 95 y(speci\002cs)22 b(of)g(the)f -(subsequent)f(data)i(transfer)f(connection.)27 b(Conse-)-150 -194 y(quently)h(our)g(script)h(subjects)g Fm(PASV)g Fs(replies)g(to)g -(the)g(same)g(anal-)-150 294 y(ysis)f(as)h Fm(PORT)e -Fs(requests.)47 b(Finally)-5 b(,)28 b(there)f(is)i(nothing)d(to)h(pre)n -(v)o(ent)-150 394 y(a)f Fr(dif)o(fer)m(ent)g Fs(remote)e(host)i(from)e -(connecting)f(to)j(the)f(data)g(transfer)-150 493 y(port)c(of)n(fered)f -(by)i(a)g(serv)o(er)f(via)h(a)g Fm(PASV)g Fs(reply)-5 -b(.)29 b(It)22 b(may)g(be)f(hard)g(to)-150 593 y(see)i(why)e(this)i -(might)f(actually)f(occur)m(,)h(b)n(ut)g(putting)f(in)h(a)h(test)g(for) -f(it)-150 693 y(is)k(simple)f(\(unfortunately)-5 b(,)21 -b(there)k(are)g(some)f(f)o(alse)h(alarms)g(due)f(to)-150 -792 y(multi-homed)17 b(clients;)j(we)f(use)h(heuristics)f(to)g(reduce)f -(these\);)h(and,)-150 892 y(indeed,)32 b(se)n(v)o(eral)d(months)h -(after)g(adding)f(it,)k(it)f(triggered,)f(due)e(to)-150 -991 y(an)18 b(attack)o(er)g(using)g(3-w)o(ay)f(FTP)i(as)g(\(e)n -(vidently\))d(a)j(w)o(ay)f(to)h(disguise)-150 1091 y(their)d(trail,)i -(another)d(serendipitous)g(result)i(of)g(the)f(sanity-checking)-150 -1191 y(principle.)-150 1587 y Fh(6.3)99 b(P)n(ortmapper)-150 -1798 y Fs(Man)o(y)26 b(services)h(based)g(on)g(Remote)g(Procedure)e -(Call)k(\(RPC;)f(de-)-150 1897 y(\002ned)16 b(in)g([Sr95a)o(]\))g(do)f -(not)h(listen)h(for)e(requests)h(on)g(a)h(\223well-kno)n(wn\224)-150 -1997 y(port,)k(b)n(ut)g(rather)g(pick)g(an)g(arbitrary)f(port)h(when)f -(initialized.)29 b(The)o(y)-150 2096 y(then)22 b(re)o(gister)g(this)h -(port)f(with)h(a)g(Portmapper)d(service)j(running)d(on)-150 -2196 y(the)32 b(same)h(machine.)60 b(Only)32 b(the)g(Portmapper)e -(needs)i(to)g(run)g(on)-150 2296 y(a)24 b(well-kno)n(wn)e(port;)j(when) -f(clients)g(w)o(ant)g(access)g(to)g(the)g(service,)-150 -2395 y(the)o(y)16 b(\002rst)i(contact)f(the)g(Portmapper)m(,)e(and)h -(it)i(tells)g(them)f(which)f(port)-150 2495 y(the)o(y)24 -b(should)g(then)g(contact)g(in)h(order)e(to)i(reach)f(the)g(service.)38 -b(This)-150 2595 y(second)25 b(port)g(may)g(be)h(for)f(TCP)h(or)g(UDP)g -(access)g(\(depending)d(on)-150 2694 y(which)d(of)g(these)g(the)g -(client)g(requests)g(from)f(the)i(Portmapper\).)-67 2823 -y(Thus,)c(by)h(monitoring)d(Portmapper)g(traf)n(\002c,)j(we)g(can)f -(detect)g(an)o(y)-150 2922 y(attempted)e(access)i(to)g(a)f(number)f(of) -h(sensiti)n(v)o(e)g(RPC)i(services,)f(such)-150 3022 -y(as)j(NFS)h(and)e(YP)-9 b(,)19 b(e)o(xcept)g(in)g(cases)i(where)e(the) -g(attack)o(er)g(learns)h(the)-150 3122 y(port)g(for)f(those)h(services) -g(some)g(other)g(w)o(ay)g(\(e.g.,)f(port-scanning\).)-67 -3250 y(The)39 b(Portmapper)e(service)i(is)h(itself)g(b)n(uilt)g(on)e -(top)h(of)g(RPC,)-150 3350 y(which)29 b(in)i(turn)e(uses)h(the)g(XDR)h -(External)e(Data)h(Representation)-150 3449 y(Standard)23 -b([Sr95b)n(].)36 b(Furthermore,)23 b(one)g(can)h(use)g(RPC)i(on)d(top)h -(of)-150 3549 y(either)f(TCP)i(or)e(UDP)-9 b(,)24 b(and)f(typically)g -(the)h(Portmapper)e(listens)i(on)-150 3649 y(both)30 -b(a)i(well-kno)n(wn)d(TCP)j(port)e(and)h(a)g(well-kno)n(wn)f(UDP)h -(port)-150 3748 y(\(both)21 b(are)h(port)f(111\).)29 -b(Consequently)-5 b(,)20 b(adding)g(Portmapper)g(anal-)-150 -3848 y(ysis)29 b(to)g(Bro)f(required)f(adding)g(a)i(generic)e(RPC)j -(analyzer)m(,)f(TCP-)-150 3947 y(and)22 b(UDP-speci\002c)h(analyzers)f -(to)h(unwrap)e(the)i(dif)n(ferent)e(w)o(ays)i(in)-150 -4047 y(which)34 b(RPCs)i(are)e(embedded)e(in)i(TCP)h(and)f(UDP)g(pack)o -(ets,)k(an)-150 4147 y(XDR)21 b(analyzer)m(,)d(and)i(a)h(Portmapper)n -(-speci\002c)c(analyzer)-5 b(.)-67 4275 y(This)32 b(last)g(generates)f -(six)h(pairs)f(of)g(e)n(v)o(ents,)j(one)d(for)g(each)g(re-)-150 -4375 y(quest)23 b(and)f(reply)g(for)h(the)g(six)g(actions)g(the)g -(Portmapper)e(supports:)-150 4474 y(a)27 b(null)f(call;)j(add)d(a)h -(binding)d(between)h(a)i(service)f(and)g(a)g(port;)j(re-)-150 -4574 y(mo)o(v)o(e)21 b(a)h(binding;)f(look)h(up)f(a)i(binding;)e(dump)g -(the)h(entire)g(table)g(of)-150 4674 y(bindings;)c(and)f(both)h(look)f -(up)h(a)g(service)g(and)g(call)g(it)h(directly)f(with-)-150 -4773 y(out)h(requiring)f(a)i(second)e(connection.)23 -b(\(This)c(last)i(is)f(a)g(monitoring)-150 4873 y(headache)i(because)g -(it)i(means)f(an)o(y)f(RPC)j(service)e(can)g(potentially)-150 -4973 y(be)d(accessed)g(directly)g(through)e(a)i(Portmapper)e -(connection.\))-67 5101 y(Our)37 b(polic)o(y)f(script)i(for)f -(Portmapper)e(traf)n(\002c)i(again)g(is)h(f)o(airly)-150 -5201 y(lar)o(ge,)i(more)d(than)g(300)f(lines.)76 b(Most)38 -b(of)f(this)h(concerns)e(what)-150 5300 y(Portmapper)17 -b(requests)j(we)g(allo)n(w)f(between)g(which)g(pairs)g(of)h(hosts,)-150 -5400 y(particularly)e(for)i(NFS)h(access.)2049 -104 y -Fh(6.4)99 b(Ident)2049 63 y Fs(The)27 b(Identi\002cation)e(Protocol)h -(\(\223ident\224\))g(is)i(used)e(to)i(query)d(hosts)2049 -162 y(for)34 b(the)h(user)g(identity)f(associated)h(with)g(an)g(acti)n -(v)o(e)g(connection)2049 262 y([S-J93)o(].)52 b(The)29 -b(request)f(is)i(of)f(the)g(form)f(\223)p Fr(r)m(emote-port)i -Fm(:)43 b Fr(local-)2049 361 y(port)q Fs(\224.)c(If)24 -b(host)h Fj(A)h Fs(sends)e(such)h(a)g(request)f(to)h(the)g(ident)f -(serv)o(er)g(on)2049 461 y(host)19 b Fj(B)t Fs(,)g(then)f(the)h -(request)f(is)h(asking)f(for)g(the)h(identi\002cation)e(of)i(the)2049 -561 y(user)i(on)g(host)h Fj(B)k Fs(who)21 b(has)g(a)h(connection)e -(from)g(host)h Fj(B)t Fs(')-5 b(s)23 b Fr(r)m(emote-)2049 -660 y(port)c Fs(to)e(host)h Fj(A)p Fs(')-5 b(s)18 b Fr(local-port)p -Fs(.)23 b(The)17 b(reply)g(identi\002es)g(the)g(operating)2049 -760 y(system,)25 b(perhaps)d(a)i(language)f(encoding,)f(and)h(a)h -(username)f(\(or)g(a)2049 860 y(\223cookie\224)h(that)h(does)g(not)f -(directly)h(re)n(v)o(eal)f(the)h(username)f(b)n(ut)h(can)2049 -959 y(be)d(used)f(subsequently)f(by)h(an)h(administrator)e(of)h(host)h -Fj(B)27 b Fs(to)21 b(iden-)2049 1059 y(tify)f(the)g(user\).)2132 -1164 y(Bro)44 b(generates)f(three)g(e)n(v)o(ents,)49 -b Fm(ident)p 3404 1164 25 4 v 28 w(request)p Fs(,)g(which)2049 -1264 y(identi\002es)54 b(the)h Fr(r)m(emote-port)g Fs(and)f -Fr(local-port)g Fs(in)h(a)f(request,)2049 1364 y Fm(ident)p -2304 1364 V 29 w(reply)p Fs(,)33 b(which)d(includes)g(the)g(username)g -(and)g(the)g(op-)2049 1463 y(erating)i(system,)k(and)d -Fm(ident)p 3010 1463 V 29 w(error)p Fs(,)j(for)c(when)g(the)h(remote) -2049 1563 y(serv)o(er)22 b(declares)g(that)h(the)g(ident)g(request)f(w) -o(as)i(in)m(v)n(alid.)32 b(Our)22 b(site')-5 b(s)2049 -1663 y(polic)o(y)24 b(scripts)i(check)f(the)h(username)e(against)h(a)h -(list)g(of)g(sensiti)n(v)o(e)2049 1762 y(user)16 b(ID')-5 -b(s)17 b(\(such)f(as)i(\223)p Fm(rewt)p Fs(\224,)e(a)h(name)f(commonly) -e(used)j(for)f(back-)2049 1862 y(door)j(\223root\224)g(accounts\),)g -(and)g(annotates)h(the)g(corresponding)c(con-)2049 1961 -y(nection)j(record)g(with)h(the)h(username.)2049 2232 -y Fh(6.5)99 b(T)-9 b(elnet)26 b(and)g(Rlogin)2049 2399 -y Fs(The)38 b(\002nal)h(applications)e(currently)f(b)n(uilt)j(into)f -(Bro)g(are)h(T)-6 b(elnet)2049 2499 y(and)29 b(Rlogin,)h(services)g -(for)e(remote)h(interacti)n(v)o(e)e(access)j([PR83a)o(,)2049 -2598 y(Ka91)o(].)42 b(There)25 b(are)h(se)n(v)o(eral)f(signi\002cant)g -(dif)n(\002culties)h(with)g(moni-)2049 2698 y(toring)21 -b(interacti)n(v)o(e)g(traf)n(\002c.)30 b(The)21 b(\002rst)i(is)g(that,) -f(unlik)o(e)g(FTP)-9 b(,)22 b(T)-6 b(elnet)2049 2798 -y(and)17 b(Rlogin)g(traf)n(\002c)h(is)g(virtually)f(unstructured.)k -(There)c(are)h(no)f(nice)2049 2897 y(\223)p Fm(USER)49 -b(xyz)p Fs(\224)29 b(directi)n(v)o(es)f(that)i(mak)o(e)f(it)h(tri)n -(vial)f(to)g(identify)g(the)2049 2997 y(account)c(associated)g(with)h -(the)g(acti)n(vity;)j(instead,)e(one)e(must)h(em-)2049 -3097 y(plo)o(y)f(a)g(series)h(of)f(heuristics.)40 b(\(The)24 -b(Rlogin)h(protocol)f(includes)g(a)2049 3196 y(mechanism)g(for)g -(specifying)g(an)h(initial)g(username,)g(b)n(ut)g(does)g(not)2049 -3296 y(include)15 b(a)h(mechanism)f(for)g(indicating)g(that)h(the)g -(username)e(w)o(as)j(re-)2049 3395 y(jected,)j(so)g(the)g(situation)g -(is)h(virtually)e(identical)g(to)h(that)g(for)g(T)-6 -b(elnet)2049 3495 y(in)17 b(which)g(the)g(initial)g(name)g(is)h -(presumably)d(the)i(\002rst)h(te)o(xt)f(typed)f(by)2049 -3595 y(the)21 b(user)-5 b(.\))27 b(This)21 b(problem)e(mak)o(es)h -(interacti)n(v)o(e)g(traf)n(\002c)g(particularly)2049 -3694 y(susceptible)g(to)h(subterfuge)e(attacks,)i(since)g(if)g(the)g -(heuristics)f(ha)n(v)o(e)2049 3794 y(holes,)g(an)g(attack)o(er)g(can)g -(slip)g(through)e(them)i(undetected.)2132 3900 y(There)35 -b(are)i(tw)o(o)f(parts)g(to)h(the)f(analysis:)58 b(determining)34 -b(user)n(-)2049 3999 y(names)22 b(in)g(a)h(rob)n(ust)f(f)o(ashion,)f -(and)h(scanning)f(interacti)n(v)o(e)g(sessions)2049 4099 -y(for)j(strings)g(re\003ecting)f(questionable)g(acti)n(vity)-5 -b(.)36 b(W)-7 b(e)25 b(discuss)g(each)2049 4198 y(in)31 -b(turn.)55 b(Because)30 b(of)h(the)f(close)h(similarities)g(between)f -(analyz-)2049 4298 y(ing)f(T)-6 b(elnet)30 b(and)f(Rlogin)g(sessions,)k -(Bro)d(combines)e(them)i(into)f(a)2049 4398 y(generic)21 -b(\223Login\224)f(analyzer)m(,)g(which)h(is)i(the)e(term)h(we)g(use)f -(for)g(both)2049 4497 y(in)f(the)h(remainder)d(of)i(the)g(section.)2132 -4603 y Fl(Recognizing)29 b(the)h(authentication)e(dialog)o(.)53 -b Fs(The)30 b(\002rst)h(f)o(acet)2049 4703 y(of)26 b(analyzing)f(Login) -g(acti)n(vity)h(is)h(to)f(accurately)f(track)h(the)g(initial)2049 -4802 y(authentication)f(dialog)i(and)f(e)o(xtract)h(from)f(it)i(the)f -(usernames)f(as-)2049 4902 y(sociated)c(with)h(both)f(login)g(f)o -(ailures)h(and)f(successes.)33 b(Initially)22 b(we)2049 -5001 y(attempted)e(to)h(b)n(uild)g(a)g(state)h(machine)e(that)h(w)o -(ould)g(track)f(the)h(v)n(ari-)2049 5101 y(ous)e(authentication)f -(steps:)25 b(w)o(aiting)20 b(for)e(the)i(username,)e(scanning)2049 -5201 y(the)29 b(login)f(prompt)f(\(this)h(comes)h(after)f(the)h -(username,)g(since)g(the)2049 5300 y(processing)22 b(is)i -(line-oriented,)e(and)h(the)g(full,)h(ne)n(wline-terminated)2049 -5400 y(prompt)34 b(line)h(does)g(not)g(appear)f(until)h(after)g(the)g -(username)f(has)1908 5649 y(15)p eop -%%Page: 16 16 -16 15 bop -150 -104 a Fs(been)24 b(entered\),)g(w)o(aiting)h(for)f(the) -g(passw)o(ord,)h(scanning)f(the)g(pass-)-150 -5 y(w)o(ord)34 -b(prompt,)i(and)f(then)f(looking)f(for)h(an)g(indication)g(that)h(the) --150 95 y(passw)o(ord)29 b(w)o(as)j(rejected)d(\(in)h(which)g(case)g -(the)h(process)e(repeats\))-150 194 y(or)f(accepted.)48 -b(This)29 b(approach,)e(though,)i(founders)d(on)i(the)g(great)-150 -294 y(v)n(ariety)21 b(of)i(authentication)d(dialogs)i(used)g(by)g(dif)n -(ferent)e(operating)-150 394 y(systems,)25 b(some)e(of)g(which)h -(sometimes)f(do)g(not)g(prompt)f(for)h(pass-)-150 493 -y(w)o(ords,)k(or)f(re-prompt)e(for)h(passw)o(ords)h(rather)g(than)f -(login)h(names)-150 593 y(after)34 b(a)g(passw)o(ord)f(f)o(ailure,)k -(or)d(utilize)g(tw)o(o)g(steps)h(of)e(passw)o(ord)-150 -693 y(authentication,)20 b(or)h(e)o(xtract)g(usernames)f(from)h(en)m -(vironment)d(v)n(ari-)-150 792 y(ables,)25 b(and)e(so)h(on.)35 -b(W)-7 b(e)25 b(instead)f(use)g(a)g(simpler)g(approach,)e(based)-150 -892 y(on)h(associating)f(particular)g(strings)h(\(such)f(as)i(\223P)o -(assw)o(ord:\224\))29 b(with)-150 991 y(particular)g(information,)i -(and)f(not)g(attempting)f(to)h(track)g(the)h(au-)-150 -1091 y(thentication)16 b(states)j(e)o(xplicitly)-5 b(.)22 -b(It)c(w)o(orks)f(well,)h(although)e(not)h(per)n(-)-150 -1191 y(fectly)-5 b(,)19 b(and)h(its)h(w)o(orkings)e(are)h(certainly)f -(easier)i(to)f(follo)n(w)-5 b(.)-67 1297 y(The)40 b(Login)e(analyzer)h -(generates)g Fm(login)p 1272 1297 25 4 v 29 w(success)g -Fs(upon)-150 1396 y(determining)51 b(that)h(a)i(user)e(has)h -(successfully)g(authenticated,)-150 1496 y Fm(login)p -105 1496 V 29 w(failure)40 b Fs(when)g(a)h(user')-5 b(s)41 -b(attempt)g(to)g(authenticate)-150 1595 y(f)o(ails,)18 -b Fm(authentication)p 736 1595 V 27 w(skipped)e Fs(if)g(it)i -(recognizes)d(the)h(au-)-150 1695 y(thentication)28 b(dialog)h(as)i -(one)e(speci\002ed)g(by)h(the)f(polic)o(y)g(script)h(as)-150 -1795 y(not)17 b(requiring)f(further)g(analysis,)h(and)g -Fm(login)p 1240 1795 V 29 w(confused)g Fs(if)h(the)-150 -1894 y(analyzer)f(becomes)g(confused)f(re)o(garding)g(the)i -(authentication)e(dia-)-150 1994 y(log.)24 b(\(This)19 -b(last)g(could,)f(for)g(e)o(xample,)g(trigger)f(full-pack)o(et)g -(record-)-150 2094 y(ing)j(of)g(the)g(subsequent)f(session,)h(for)g -(later)g(manual)f(analysis.\))-67 2199 y Fl(T)-6 b(ype-ahead.)28 -b Fs(A)22 b(basic)g(dif)n(\002culty)e(that)i(complicates)f(the)g(anal-) --150 2299 y(ysis)j(is)g(type-ahead.)32 b(W)-7 b(e)24 -b(cannot)f(rely)g(on)f(the)i(most-recently)d(en-)-150 -2399 y(tered)h(string)g(as)i(corresponding)19 b(to)k(the)f(current)g -(prompt)f(line.)32 b(In-)-150 2498 y(stead,)24 b(we)f(k)o(eep)f(track)h -(of)g(user)f(input)h(lines)g(separately)-5 b(,)22 b(and)g(con-)-150 -2598 y(sume)27 b(them)h(as)g(we)g(observ)o(e)e(dif)n(ferent)g(prompts.) -46 b(F)o(or)27 b(e)o(xample,)-150 2698 y(if)20 b(the)g(analyzer)f -(scans)h(\223P)o(assw)o(ord:\224,)f(then)g(it)i(associates)g(with)f -(the)-150 2797 y(prompt)15 b(the)i(\002rst)h(unread)d(line)i(in)g(the)g -(user)g(type-ahead)d(b)n(uf)n(fer)m(,)i(and)-150 2897 -y(consumes)21 b(that)i(line.)31 b(The)22 b(hazard)f(of)h(this)h -(approach)d(is)j(if)f(the)h(lo-)-150 2996 y(gin)h(serv)o(er)f(e)n(v)o -(er)h(\003ushes)g(the)g(type-ahead)e(b)n(uf)n(fer)h(\(due)h(to)g(part)g -(of)-150 3096 y(its)f(authentication)c(dialog,)j(or)f(upon)f(an)i(e)o -(xplicit)f(signal)h(from)f(the)-150 3196 y(user\),)h(then)g(if)g(the)h -(monitor)d(misses)k(this)e(f)o(act)h(it)g(will)g(become)e(out)-150 -3295 y(of)29 b(sync.)50 b(This)29 b(opens)f(the)h(monitor)e(to)i(a)g -(subterfuge)e(attack,)j(in)-150 3395 y(which)c(an)h(attack)o(er)f -(passes)h(of)n(f)f(an)h(innocuous)d(string)i(as)i(a)f(user)n(-)-150 -3495 y(name,)20 b(and)g(the)h(polic)o(y)f(script)g(in)h(turn)f(f)o -(ails)i(to)f(recognize)e(that)i(the)-150 3594 y(attack)o(er)16 -b(in)h(f)o(act)f(has)h(authenticated)e(as)i(a)g(pri)n(vile)o(ged)d -(user)-5 b(.)24 b(One)16 b(\002x)-150 3694 y(to)21 b(this)h -(problem\227re\003ecting)c(a)j(strate)o(gy)f(we)i(adopt)e(for)g(the)h -(more)-150 3793 y(general)g(\223k)o(e)o(ystrok)o(e)f(editing\224)g -(problem)g(discussed)i(belo)n(w\227is)f(to)-150 3893 -y(test)29 b Fr(both)f Fs(usernames)f(and)h(passw)o(ords)g(against)g(an) -o(y)f(list)j(of)e(sen-)-150 3993 y(siti)n(v)o(e)d(usernames,)h(an)f(e)o -(xample)f(of)h(the)g(\223bifurcation\224)e(approach)-150 -4092 y(discussed)d(in)g Fi(x)h Fs(5.3)f(abo)o(v)o(e.)-67 -4198 y(Unless)37 b(we)f(are)g(careful,)j(type-ahead)34 -b(also)i(opens)g(the)g(door)-150 4298 y(to)28 b(another)e(subterfuge)g -(attack.)47 b(F)o(or)27 b(e)o(xample,)h(an)g(attack)o(er)f(can)-150 -4397 y(type-ahead)41 b(the)i(string)g(\223P)o(assw)o(ord:\224,)48 -b(which,)g(when)43 b(echoed)-150 4497 y(by)49 b(the)g(login)f(serv)o -(er)m(,)55 b(w)o(ould)49 b(be)g(interpreted)e(by)i(the)g(ana-)-150 -4597 y(lyzer)26 b(as)i(corresponding)23 b(to)k(a)g(passw)o(ord)g -(prompt,)f(when)g(in)h(f)o(act)-150 4696 y(the)40 b(dialog)f(is)i(in)f -(a)h(dif)n(ferent)d(state.)85 b(The)40 b(analyzer)f(defends)-150 -4796 y(against)32 b(these)i(attacks)f(by)f(checking)g(each)h -(typed-ahead)d(string)-150 4896 y(against)16 b(the)g(dif)n(ferent)f -(dialog)g(strings)h(it)h(kno)n(ws)f(about,)g(generating)-150 -4995 y Fm(possible)p 255 4995 V 28 w(login)p 533 4995 -V 29 w(ploy)k Fs(upon)f(a)i(match.)-67 5101 y Fl(K)n(eystr)o(ok)o(e)14 -b(editing)o(.)23 b Fs(Usernames)15 b(can)g(also)h(become)e(disguised) --150 5201 y(due)21 b(to)g(use)g(of)g(k)o(e)o(ystrok)o(e)e(editing.)27 -b(F)o(or)21 b(e)o(xample,)e(we)j(w)o(ould)e(lik)o(e)-150 -5300 y(to)29 b(recognize)d(that)j(\223)p Fm(rb<)p Fb(DEL)q -Fm(>oot)p Fs(\224)e(does)h(indeed)f(correspond)-150 5400 -y(to)22 b(a)g(username)e(of)h Fm(root)p Fs(,)h(assuming)f(that)g -Fm(<)p Fb(DEL)q Fm(>)g Fs(is)h(the)g(single-)2049 -104 -y(character)k(deletion)f(operator)-5 b(.)44 b(W)-7 b(e)28 -b(\002nd)e(this)h(assumption,)g(ho)n(w-)2049 -5 y(e)n(v)o(er)m(,)d -(problematic,)g(since)h(some)f(systems)h(use)g Fm(<)p -Fb(DEL)q Fm(>)f Fs(and)g(oth-)2049 95 y(ers)30 b(use)g -Fm(<)p Fb(BS)t Fm(>)p Fs(.)52 b(W)-7 b(e)31 b(address)e(this)h(problem) -e(by)h(applying)e(both)2049 194 y(forms)h(of)h(editing)f(to)g -(usernames,)i(yielding)e(possibly)g(three)g(dif-)2049 -294 y(ferent)21 b(strings,)g(each)g(of)h(which)f(the)g(script)h(then)f -(assesses)i(in)e(turn.)2049 394 y(So,)29 b(for)d(e)o(xample,)i(the)f -(string)g(\223)p Fm(rob<)p Fb(DEL)q Fm(><)p Fb(BS)t Fm(><)p -Fb(BS)t Fm(>ot)p Fs(\224)d(is)2049 493 y(tested)19 b(both)g(directly)-5 -b(,)18 b(as)h(\223)p Fm(ro<)p Fb(BS)t Fm(><)p Fb(BS)t -Fm(>ot)p Fs(\224,)f(and)g(as)i(\223)p Fm(root)p Fs(\224.)2049 -593 y(This)f(is)h(another)e(e)o(xample)f(of)i(using)f(bifurcation)f(to) -i(address)g(anal-)2049 693 y(ysis)i(ambiguities.)2132 -898 y(Editing)35 b(is)h(not)f(limited)h(to)f(deleting)g(indi)n(vidual)f -(characters,)2049 998 y(ho)n(we)n(v)o(er)-5 b(.)65 b(Some)34 -b(systems)g(support)f(deleting)g(entire)h(w)o(ords)g(or)2049 -1097 y(lines;)24 b(others)d(allo)n(w)i(access)g(to)f(pre)n -(viously-typed)c(lines)23 b(using)f(an)2049 1197 y(escape)f(sequence.) -26 b(W)-7 b(ord)21 b(and)g(line)g(deletion)f(do)h(not)f(allo)n(w)h(an)g -(at-)2049 1297 y(tack)o(er)d(to)g(hide)f(their)h(username,)f(if)h -(tests)h(for)f(sensiti)n(v)o(e)g(usernames)2049 1396 -y(check)k(for)g(an)o(y)g(embedded)e(occurrence)g(of)j(the)f(username)g -(within)2049 1496 y(the)35 b(input)f(te)o(xt.)68 b(\223History\224)35 -b(access)g(to)g(pre)n(vious)e(te)o(xt)i(is)g(more)2049 -1595 y(problematic;)28 b(presently)-5 b(,)27 b(the)g(analyzer)e -(recognizes)h(one)g(operat-)2049 1695 y(ing)18 b(system)g(that)g -(supports)f(this)h(\(VMS\))g(and,)f(for)h(it)g(only)-5 -b(,)17 b(e)o(xpands)2049 1795 y(the)j(escape)g(sequence)f(into)h(the)g -(te)o(xt)g(of)g(the)h(pre)n(vious)d(line.)2132 2000 y -Fl(T)-8 b(elnet)42 b(options.)88 b Fs(The)41 b(T)-6 b(elnet)42 -b(protocol)d(supports)h(a)i(rich,)2049 2100 y(comple)o(x)37 -b(mechanism)h(for)g(e)o(xchanging)e(options)i(between)h(the)2049 -2199 y(client)d(and)g(serv)o(er)g([PR83b)o(])g(\(there)g(are)g(more)g -(than)g(50)g(RFCs)2049 2299 y(discussing)27 b(dif)n(ferent)e(T)-6 -b(elnet)28 b(options\).)45 b(Unhappily)-5 b(,)26 b(we)i(cannot)2049 -2399 y(ignore)j(the)i(possible)g(presence)e(of)i(these)f(options)g(in)h -(our)f(anal-)2049 2498 y(ysis,)j(because)c(an)h(attack)o(er)f(can)h -(embed)e(one)h(in)h(the)g(middle)f(of)2049 2598 y(te)o(xt)d(the)o(y)g -(transmit)g(in)h(order)e(to)i(disguise)f(their)g(intent\227for)f(e)o -(x-)2049 2698 y(ample,)33 b(\223)p Fm(ro<)p Fr(option)p -Fm(>ot)p Fs(\224.)55 b(The)31 b(T)-6 b(elnet)31 b(serv)o(er)f(will)i -(dutifully)2049 2797 y(strip)25 b(out)f(the)h(option)e(before)g -(passing)i(along)e(the)i(remaining)e(te)o(xt)2049 2897 -y(to)h(the)f(authentication)f(system.)35 b(W)-7 b(e)25 -b(must)e(do)g(the)h(same.)35 b(On)24 b(the)2049 2996 -y(other)30 b(hand,)j(parsing)e(options)f(also)i(yields)f(some)g -(bene\002ts:)47 b(we)2049 3096 y(can)20 b(detect)g(connections)e(that)i -(successfully)f(ne)o(gotiate)g(to)h(encrypt)2049 3196 -y(the)29 b(data)h(session,)h(and)e(skip)h(subsequent)d(analysis)j -(\(rather)e(than)2049 3295 y(generating)16 b Fm(login)p -2673 3295 V 29 w(confused)h Fs(e)n(v)o(ents\),)g(as)i(well)f(as)h -(analyzing)2049 3395 y(options)j(used)g(for)g(authentication)e(\(for)i -(e)o(xample,)f(K)n(erberos\))g(and)2049 3495 y(to)27 -b(transmit)f(the)g(user')-5 b(s)27 b(en)m(vironment)c(v)n(ariables)j -(\(some)g(systems)2049 3594 y(use)j Fm($USER)e Fs(as)j(the)e(def)o -(ault)f(username)g(during)g(subsequent)g(au-)2049 3694 -y(thentication\).)2132 3899 y Fl(Scanning)h(the)g(session)h(contents.) -47 b Fs(The)27 b(last)i(form)d(of)i(Login)2049 3999 y(analysis,)c(and)g -(in)f(our)g(e)o(xperience)f(f)o(ar)h(and)h(a)o(w)o(ay)f(the)h(most)f -(po)n(w-)2049 4099 y(erful)18 b(for)h(detecting)f(break-ins,)f(is)j -(looking)d(at)j(the)f(contents)f(of)h(the)2049 4198 y(lines)h(sent)g -(by)g(the)g(user)g(\()p Fm(login)p 3048 4198 V 28 w(input)p -3326 4198 V 29 w(line)g Fs(e)n(v)o(ents\))f(and)g(by)2049 -4298 y(the)h(remote)g(serv)o(er)f(\()p Fm(login)p 2928 -4298 V 28 w(output)p 3256 4298 V 29 w(line)p Fs(\).)2132 -4503 y(F)o(or)33 b(input)f(lines,)37 b(some)c(of)f(the)h(patterns)g(we) -g(search)g(for)g(are)2049 4603 y(the)39 b(string)g(\223)p -Fm(eggdrop)p Fs(\224)g(\(an)g(Internet)f(Relay)i(Chat)f(tool)g(that) -2049 4703 y(man)o(y)34 b(attack)o(ers)i(install)g(upon)e(a)i -(break-in\),)h(\223)p Fm(loadmodule)p Fs(\224)2049 4802 -y(and)24 b(\223)p Fm(/bin/eject)p Fs(\224)f(\(used)h(in)g(b)n(uf)n(fer) -f(o)o(v)o(er\003o)n(w)g(attacks\),)i(and)2049 4902 y(access)34 -b(to)g(hidden)f(directories)f(with)i(names)g(lik)o(e)g(\223)p -Fm(...)p Fs(\224.)65 b(F)o(or)2049 5001 y(output)29 b(lines,)j(we)e -(look)f(for)g(\223)p Fm(ls)p Fs(\224)h(output)f(sho)n(wing)f -(setuid-root)2049 5101 y(v)o(ersions)f(of)h(command-line)d -(interpreters)i(lik)o(e)h Fr(csh)p Fs(,)i(and)e(strings)2049 -5201 y(lik)o(e)67 b(\223)p Fm(Jumping)48 b(to)i(address)p -Fs(\224)66 b(and)g(\223)p Fm(Log)49 b(started)2049 5300 -y(at)p Fs(\224)24 b(which)f(correspond)d(to)k(popular)e(b)n(uf)n(fer)n -(-o)o(v)o(er\003o)n(w)d(and)k(pass-)2049 5400 y(w)o(ord)d(snif)n(fer)f -(tools,)h(respecti)n(v)o(ely)-5 b(.)1908 5649 y(16)p -eop -%%Page: 17 17 -17 16 bop -150 -104 a Fh(6.6)124 b(Scan)26 b(detection)-150 -70 y Fs(W)-7 b(e)34 b(\002nish)f(with)g(a)h(discussion)e(of)h -(detecting)e(port)i(and)f(address)-150 170 y(scanning.)22 -b(While)17 b(not,)g(strictly)f(speaking,)g(a)h(form)e(of)h -(application-)-150 269 y(speci\002c)29 b(processing,)g(we)f(ha)n(v)o(e) -g(deferred)f(discussion)h(until)g(no)n(w)-150 369 y(so)21 -b(we)h(can)f(refer)f(to)h(the)g(pre)n(viously-de)n(v)o(eloped)16 -b(concepts)k(of)g(Bro)-150 469 y(language)e(mechanisms)i(and)f(attacks) -i(on)e(the)i(monitor)-5 b(.)-67 578 y(Scan)18 b(detection)e(is)j(all)f -(done)e(at)i(the)g(polic)o(y)e(script)i(le)n(v)o(el,)f(so)h(sites)-150 -678 y(may)j(of)g(course)g(tailor)g(the)g(detection)f(ho)n(we)n(v)o(er)g -(the)o(y)g(wish.)29 b(Ho)n(w-)-150 777 y(e)n(v)o(er)m(,)h(the)g(basic)f -(approach)e(we)j(use)g(is)g(to)f(maintain)g(pairs)g(of)g(ta-)-150 -877 y(bles.)38 b(F)o(or)24 b(detecting)f(address)h(scanning,)g(the)g -(\002rst)h(of)f(the)h(pair)f(of)-150 977 y(tables,)39 -b Fm(distinct)p 509 977 25 4 v 28 w(peers)p Fs(,)f(is)e(a)f -Fm(table[addr,)48 b(addr])-150 1076 y(of)h(bool)p Fs(.)67 -b(W)-7 b(e)36 b(inde)o(x)d(it)i(using)e(the)h(source)g(and)g -(destination)-150 1176 y(address)26 b(of)g(each)h(ne)n(wly-attempted)d -(connection.)42 b(If)26 b(the)h(pair)f(of)-150 1276 y(addresses)32 -b(is)h(not)e(in)i(the)f(table,)i(then)e(we)g(add)g(them)f(to)h(the)g -(ta-)-150 1375 y(ble,)23 b(and)f(increment)f Fm(num)p -649 1375 V 29 w(distinct)p 1078 1375 V 28 w(peers)p Fs(,)i(a)f -(correspond-)-150 1475 y(ing)k Fm(table[addr])48 b(of)h(count)p -Fs(.)42 b(This)27 b(second)e(table)h(k)o(eeps)-150 1574 -y(track)j(for)f(each)h(source)f(address)h(the)g(number)e(of)i(distinct) -h(desti-)-150 1674 y(nation)e(addresses)h(to)g(which)f(it)i(has)f -(attempted)f(to)h(connect.)50 b(As)-150 1774 y(that)19 -b(number)e(crosses)j(dif)n(ferent)d(thresholds,)h(the)h(script)h -(generates)-150 1873 y(a)26 b(series)h(of)e(real-time)h -(noti\002cations)f(indicating)f(that)i(an)g(address)-150 -1973 y(scan)31 b(is)h(underw)o(ay)-5 b(.)55 b(It)32 b(can)e(of)h -(course)g(tak)o(e)g(additional)e(action,)-150 2073 y(too,)e(such)e(as)h -(in)m(v)n(oking)e(via)i Fm(system\(\))e Fs(a)j(script)e(that)h(remo)o -(v)o(es)-150 2172 y(the)20 b(attacking)f(site')-5 b(s)22 -b(connecti)n(vity)c(to)i(the)g(local)h(site)g(\()p Fi(x)f -Fs(8\).)-67 2282 y(W)-7 b(e)60 b(detect)f(port)f(scanning)f(in)i(a)g -(similar)g(f)o(ashion,)68 b(us-)-150 2381 y(ing)51 b -Fm(distinct)p 413 2381 V 28 w(ports)p Fs(,)59 b(a)52 -b Fm(table[addr,)47 b(port])i(of)-150 2481 y(bool)24 -b Fs(inde)o(x)o(ed)e(by)i(source)g(address)g(and)g(destination)f(port)h -(num-)-150 2581 y(ber)m(,)32 b(and)f(a)g(companion)d(table)j -Fm(num)p 975 2581 V 29 w(distinct)p 1404 2581 V 28 w(ports)p -Fs(,)i(and)-150 2680 y(again)28 b(generate)f(noti\002cations)h(as)h -(the)g(distinct)f(port)g(count)g(for)g(a)-150 2780 y(gi)n(v)o(en)19 -b(address)h(crosses)g(dif)n(ferent)f(thresholds.)-67 -2889 y(Note)24 b(that)h(this)g(approach)d(does)i(not)h(ha)n(v)o(e)e(an) -o(y)h(restrictions)g(on)-150 2989 y(the)j Fr(or)m(der)i -Fs(in)e(which)f(addresses)h(or)f(ports)h(are)g(scanned,)g(nor)f(an)o(y) --150 3089 y(particular)14 b(requirements)f(for)i(ho)n(w)f(quickly)g -(the)o(y)h(are)g(scanned.)22 b(By)-150 3188 y(remo)o(ving)h(these)i -(sorts)h(of)f(restrictions,)h(we)f(can)g(detect)g(not)g(only)-150 -3288 y(simple)30 b(brute-force)c(scans,)33 b(b)n(ut)c(also)h(some)f -(forms)g(of)h(\223stealth\224)-150 3388 y(scanning,)19 -b(in)h(which)f(the)i(scan)f(is)h(done)e(slo)n(wly)h(across)g(a)h -(random-)-150 3487 y(ized)f(list)h(of)f(addresses.)-67 -3597 y(There)c(are)h(tw)o(o)g(problems)e(with)i(the)g(approach,)e(ho)n -(we)n(v)o(er)-5 b(.)22 b(First,)-150 3696 y(while)29 -b(the)g(abo)o(v)o(e)f(steps)h(do)g(indeed)f(detect)h(scanning)f(acti)n -(vities,)-150 3796 y(the)o(y)17 b(also)h(generate)f(f)o(alse)h(hits,)g -(because)g(some)f(services)h(naturally)-150 3896 y(result)25 -b(in)h(a)g(single)f(source)f(contacting)g(multiple)h(destination)f(ad-) --150 3995 y(dresses)32 b(\(for)e(e)o(xample,)j(a)f(single)f(client)g -(sur\002ng)g(multiple)g(W)-7 b(eb)-150 4095 y(serv)o(ers\),)36 -b(or)d(contacting)f(multiple)g(ports)h(on)g(the)h(same)f(remote)-150 -4195 y(host)24 b(\(an)g(FTP)g(serv)o(er)g(running)e(on)h(a)i -(non-standard)c(port,)j(so)g(Bro)-150 4294 y(does)k(not)f(kno)n(w)g(to) -i(track)e(its)i(POR)-5 b(T/P)d(ASV)30 b(directi)n(v)o(es)d(in)h(order) --150 4394 y(to)j(associate)h(connections)d(on)h(ephemeral)g(ports)h -(with)g(the)g(FTP)-150 4493 y(session\).)c(W)-7 b(e)22 -b(can)f(generally)f(deal)g(with)h(this)h(problem,)d(ho)n(we)n(v)o(er)m -(,)-150 4593 y(by)e(introducing)e(some)j(additional)e(polic)o(y)h -(elements)g(in)h(our)f(script,)-150 4693 y(such)25 b(as)g(a)h(list)g -(of)f(services)g(which)f(we)h(should)f(ignore)g(when)g(up-)-150 -4792 y(dating)19 b(the)i(tables)f(to)g(re\003ect)h(ne)n(wly)e -(attempted)g(connections.)-67 4902 y(The)28 b(second)f(dif)n(\002culty) -f(concerns)h(consumption)e(of)j(memory)-5 b(.)-150 5001 -y(Depending)37 b(on)i(a)h(site')-5 b(s)41 b(traf)n(\002c)e(patterns,)44 -b(the)39 b(scan-detection)-150 5101 y(tables)j(can)g(gro)n(w)f(quite)g -(lar)o(ge.)89 b(The)o(y)40 b(can)i(especially)f(gro)n(w)-150 -5201 y(lar)o(ge)34 b(if)i(an)f(attack)o(er)g(deliberately)f(tar)o(gets) -h(them)g(as)h(a)g(w)o(ay)f(to)-150 5300 y(attempt)44 -b(to)g(compromise)e(the)i(monitor)f(via)h(an)g(o)o(v)o(erload)d(at-) --150 5400 y(tack.)64 b(One)33 b(solution)g(for)g(addressing)f(this)h -(problem)f(w)o(ould)h(be)2049 -104 y(to)c(introduce)e(the)j(notion)d -(of)i(associating)g(timers)g(with)g(table)g(el-)2049 --5 y(ements.)60 b(W)m(ith)32 b(such)g(a)g(mechanism,)i(we)e(could,)i -(for)d(e)o(xample,)2049 95 y(o)o(v)o(er)i(time)h(remo)o(v)o(e)e -(elements)i(from)f Fm(distinct)p 3623 95 V 28 w(peers)h -Fs(and)2049 194 y Fm(num)p 2204 194 V 29 w(distinct)p -2633 194 V 29 w(peers)p Fs(.)73 b(Doing)36 b(so,)k(ho)n(we)n(v)o(er)m -(,)e(trades)e(of)n(f)2049 294 y(reco)o(v)o(ering)22 b(resources)i -(\(and)g(thus)h(impairing)e(an)i(attack)o(er')-5 b(s)25 -b(abil-)2049 394 y(ity)g(to)g(launch)f(an)h(o)o(v)o(erload)d(attack\))i -(with)h(f)o(ailing)g(to)g(detect)f(slo)n(w)2049 493 y(stealth)d(scans.) -2132 595 y(See)k Fi(x)g Fs(7.1)f(belo)n(w)f(for)h(a)h(brief)f -(discussion)g(of)g(our)f(e)o(xperiences)2049 695 y(with)d -(scan-detection.)2049 990 y Ft(7)119 b(Status)30 b(and)h(Experiences) -2049 1180 y Fs(Bro)26 b(has)g(operated)f(continuously)e(since)k(April)e -(1996)g(as)i(an)f(inte-)2049 1280 y(gral)i(part)g(of)h(our)e(site')-5 -b(s)30 b(security)e(system.)50 b(It)29 b(initially)f(included)2049 -1379 y(only)d(general)g(TCP/IP)i(analysis;)j(as)d(time)f(permitted,)g -(we)h(added)2049 1479 y(the)c(additional)f(modules)g(discussed)g(in)i -Fi(x)f Fs(6,)h(and)e(we)h(plan)g(to)g(add)2049 1579 y(man)o(y)h(more.) -39 b(In)25 b(this)g(section)g(we)g(sk)o(etch)g(its)i(current)c(status)j -(and)2049 1678 y(our)19 b(e)o(xperiences)g(with)h(operating)e(it.)2049 -1930 y Fh(7.1)99 b(Implementation)26 b(status)2049 2091 -y Fs(Presently)-5 b(,)26 b(the)g(implementation)d(is)j(about)f(27,000)f -(lines)i(of)f(C++)2049 2190 y(and)e(another)f(3,200)g(lines)i(of)g -Fm(Bro)f Fs(\(about)g(2,700)f(lines)i(of)f(which)2049 -2290 y(are)38 b(\223boilerplate\224)f(not)g(speci\002c)i(to)f(our)f -(site\).)80 b(It)38 b(runs)g(under)2049 2389 y(Digital)33 -b(Unix,)h(FreeBSD,)f(Linux,)h(and)e(Solaris)h(operating)d(sys-)2049 -2489 y(tems.)57 b(W)-7 b(e)32 b(use)f(the)g Fr(autoconf)41 -b Fs(auto-con\002guration)27 b(tool)k(as)g(our)2049 2589 -y(main)20 b(mechanism)f(for)g(abetting)h(portability)-5 -b(.)2132 2691 y(Bro)58 b(is)h(publicly)d(a)n(v)n(ailable)i(in)g -(source-code)d(form)i(\(see)2049 2791 y Fr(http://www-nr)m(g)o(.ee)o -(.lbl.go)o(v/br)l(o-info.html)19 b Fs(for)k(release)i(informa-)2049 -2890 y(tion\),)34 b(though)d(the)h(current)f(release)h(is)h(of)f -(\223alpha\224)f(quality)g(and)2049 2990 y(includes)19 -b(only)h(v)o(ery)f(limited)h(documentation.)2132 3092 -y(W)-7 b(e)32 b(hope)d(that)i(it)g(will)g(both)f(bene\002t)g(the)g -(community)e(and)i(in)2049 3192 y(turn)22 b(bene\002t)h(from)e -(community)g(ef)n(forts)h(to)h(enhance)e(it.)34 b(W)-7 -b(e)24 b(ha)n(v)o(e)2049 3291 y(set)c(up)f(a)g(mailing)g(list)h(for)f -(discussion\227see)g(the)g(abo)o(v)o(e)e(W)-7 b(eb)20 -b(page)2049 3391 y(for)g(subscription)e(information.)2132 -3493 y(In)29 b(our)f(on-going)e(operations,)j(Bro)g(generates)f(about)f -(85)i(MB)2049 3593 y(of)22 b(connection)f(summaries)h(each)h(day)-5 -b(,)22 b(and)g(around)f(40)h(real-time)2049 3692 y(noti\002cations,)28 -b(though)e(this)i(\002gure)f(v)n(aries)h(greatly)-5 b(.)45 -b(While)29 b(most)2049 3792 y(of)e(the)h(noti\002cations)e(are)i -(innocuous)d(\(and)i(if)h(we)g(were)f(not)g(also)2049 -3892 y(de)n(v)o(elopers)21 b(of)h(the)h(system,)g(we)g(w)o(ould)g -(suppress)f(these\),)h(we)g(not)2049 3991 y(infrequently)k(also)j -(detect)f(break-in)f(attempts,)j(and)e(we)h(a)n(v)o(erage)2049 -4091 y(4\2265)15 b(address)h(and)f(port)g(scans)i(each)e(day)-5 -b(.)23 b(Operation)15 b(of)g(the)h(system)2049 4191 y(has)33 -b(resulted)f(so)g(f)o(ar)h(in)f(4,000)f(email)i(messages,)i(150)d -(incident)2049 4290 y(reports)f(\002led)g(with)h(CIA)m(C)g(and)f(CER)-5 -b(T)f(,)32 b(a)g(number)d(of)j(accounts)2049 4390 y(deacti)n(v)n(ated) -24 b(by)i(other)f(sites,)k(and)c(a)h(couple)f(incidents)h(in)m(v)n -(olving)2049 4489 y(la)o(w)20 b(enforcement.)2049 4741 -y Fh(7.2)124 b(P)n(erf)n(ormance)2049 4902 y Fs(The)22 -b(system)h(generally)f(operates)g(without)g(incurring)e(an)o(y)i(pack)o -(et)2049 5001 y(drops.)50 b(The)29 b(FDDI)g(ring)f(it)i(runs)f(on)f(is) -i(f)o(airly)f(hea)n(vily)f(utilized:)2049 5101 y(a)e(January)-5 -b(,)26 b(1999)f(trace)h(of)f(a)i(14:30-15:30)22 b(b)n(usy)k(hour)f -(re\003ects)h(a)2049 5201 y(traf)n(\002c)j(le)n(v)o(el)g(of)g(11,900)e -(pack)o(ets/sec)i(\(34)g(Mbps\))f(sustained)h(for)2049 -5300 y(the)17 b(full)f(hour)m(,)g(with)h(peaks)f(of)h(18,000)e(pack)o -(ets/sec.)23 b(Ho)n(we)n(v)o(er)m(,)16 b(the)2049 5400 -y(pack)o(et)i(\002lter)h(discards)f(a)h(great)f(deal)g(of)h(this,)g -(both)e(due)h(to)h(\002ltering)1908 5649 y(17)p eop -%%Page: 18 18 -18 17 bop -150 -104 a Fs(primarily)30 b(on)g(SYN,)i(FIN,)f(or)g(RST)h -(control)e(bits,)k(and)c(because)-150 -5 y(only)f(about)g(20\045)g(of)g -(the)h(traf)n(\002c)f(belongs)g(to)h(netw)o(orks)e(that)i(we)-150 -95 y(routinely)d(monitor)g(\(the)i(link)f(is)i(shared)e(with)h(a)g(lar) -o(ge)f(neighbor)-150 194 y(institution\).)-67 296 y(T)-7 -b(o)24 b(test)h(the)f(system)g(under)e(stress,)k(we)e(ran)g(it)g(for)g -(a)g(40)f(minute)-150 396 y(period)g(without)h(the)g(\223interesting)g -(netw)o(orks\224)f(\002lter)m(,)j(resulting)d(in)-150 -495 y(a)j(much)e(higher)f(fraction)h(of)h(traf)n(\002c)g(accepted)f(by) -h(the)g(pack)o(et)f(\002l-)-150 595 y(ter)-5 b(.)31 b(During)20 -b(this)j(period,)d(the)i(\002lter)h(accepted)d(an)i(a)n(v)o(erage)f(of) -g(730)-150 694 y(pack)o(ets/sec,)36 b(with)d(peaks)g(o)o(v)o(er)e -(1,200)h(pack)o(ets/sec,)j(and)e(with-)-150 794 y(out)20 -b(dropping)e(an)o(y)i(pack)o(ets.)25 b(The)c(monitor)e(system)h(uses)i -(stripped)-150 894 y(disks)d(and)f(lar)o(ge)f(BPF)j(pack)o(et)e(b)n(uf) -n(fers)f([RLSSL)-6 b(W97)o(])19 b(to)g(impro)o(v)o(e)-150 -993 y(performance.)-150 1242 y Fh(7.3)124 b(Crud)26 b(seen)f(on)h(a)e -(DMZ)-150 1401 y Fs(An)k(important)e(and)h(sobering)g(aspect)g(of)h -(our)f(operational)f(e)o(xpe-)-150 1501 y(rience)21 b(with)h(Bro)f(w)o -(as)i(the)e(realization)g(of)g(ho)n(w)g(frequently)-5 -b(,)19 b(when)-150 1600 y(monitoring)c(a)j(lar)o(ge)f(v)n(olume)f(of)h -(netw)o(ork)g(traf)n(\002c,)g(le)o(gitimate)g(\(i.e.,)-150 -1700 y(non-attacking\))23 b(traf)n(\002c)j(e)o(xhibits)f(abnormal)g -(beha)n(vior)-5 b(.)42 b(W)-7 b(e)27 b(ha)n(v)o(e)-150 -1800 y(observ)o(ed)18 b(all)j(of)f(the)g(follo)n(wing:)-67 -1972 y Fi(\017)41 b Fs(\223Storms\224)23 b(of)g(10,000)f(FIN)h(or)h -(RST)g(pack)o(ets,)g(in)f(which)g(due)16 2071 y(to)h(a)f(protocol)f -(implementation)f(error)h(tw)o(o)i(hosts)g(e)o(xchange)16 -2171 y(FIN)d(or)e(RST)i(pack)o(ets)f(e)o(xtremely)f(rapidly)-5 -b(.)-67 2345 y Fi(\017)41 b Fs(Storms)20 b(due)g(to)g(foggy)f(days.)887 -2315 y Fn(4)-67 2519 y Fi(\017)41 b Fs(\223Pri)n(v)n(ate\224)19 -b(Internet)g(addresses)g([Re96)o(])h(leaking)f(out)g(into)h(the)16 -2618 y(public)39 b(Internet.)81 b(These)39 b(addresses)g(are)h -(inherently)d(un-)16 2718 y(routable,)21 b(and)g(should)g(ne)n(v)o(er)g -(be)h(used)g(by)f(a)i(public)e(Internet)16 2817 y(connection.)-67 -2991 y Fi(\017)41 b Fs(SYN)22 b(pack)o(ets)f(with)g(the)h(\223Ur)o -(gent\224)d(bit)j(set.)29 b(F)o(or)21 b(SYN)h(pack-)16 -3091 y(ets,)f(setting)f(\223ur)o(gent\224)e(does)i(not)g(mak)o(e)g(an)o -(y)g(sense,)g(since)h(the)16 3191 y(connection)c(is)k(not)e(yet)h -(established)f(and)g(hence)g(cannot)f(pos-)16 3290 y(sibly)24 -b(ha)n(v)o(e)g(ur)o(gent)f(data)h(to)h(send.)37 b(Such)24 -b(pack)o(ets)g(are)g(prob-)16 3390 y(lematic,)e(ho)n(we)n(v)o(er)m(,)e -(because)h(some)h(\002re)n(w)o(alls)g(and)g(monitors)16 -3489 y(that)29 b(are)g(not)f(carefully)f(coded)h(look)g(for)g(the)h(be) -o(ginning)d(of)16 3589 y(connections)17 b(to)h(be)g(indicated)g(by)f -(the)i(TCP)g(\223\003ags\224)f(\002eld)h(be-)16 3689 -y(ing)e(equal)h(to)f(the)h(SYN)g(\003ag,)g(rather)f(than)h(simply)f(ha) -n(ving)g(the)16 3788 y(SYN)k(\003ag)g(set.)27 b(When)20 -b(the)h(Ur)o(gent)e(bit)i(is)g(set,)g(the)g(\002eld)f(is)i(no)16 -3888 y(longer)d Fr(equal)g Fs(to)i(the)f(SYN)h(\003ag.)-67 -4062 y Fi(\017)41 b Fs(TCPs)28 b(that)f(when)f(retransmitting)f(data)h -(can)h(send)f(dif)n(ferent)16 4161 y(data)32 b(for)f(the)h(same)g -(sequence)e(numbers)h(as)h(the)o(y)f(sent)i(the)16 4261 -y(\002rst)21 b(time.)-67 4435 y Fi(\017)41 b Fs(TCPs)18 -b(that)f(sometimes)f(ackno)n(wledge)e(receipt)i(of)g(data)h(ne)n(v)o -(er)16 4535 y(sent.)-67 4708 y Fi(\017)41 b Fs(IP)20 -b(fragments)f(in)h(which)g(the)g(initial)g(fragment)e(is)j(v)o(ery)e -(small)16 4808 y(and)24 b(the)g(\002nal)g(fragment)e(is)j(lar)o(ge.)36 -b(Such)23 b(fragments)g(can)h(be)16 4908 y(used)33 b(to)g(attempt)f(to) -h(circumv)o(ent)e(\002re)n(w)o(alls)i(and)g(monitors)16 -5007 y(that)20 b(do)g(not)g(do)g(fragment)e(reassembly)-5 -b(.)p -150 5086 801 4 v -65 5140 a Fk(4)-30 5163 y Fp(One)20 -b(of)g(the)g(routers)h(on)f(our)g(DMZ)f(has)h(a)g(micro)n(w)o(a)o(v)o -(e)i(link)f(to)f(a)g(peer)h(on)f(the)-150 5242 y(other)15 -b(side)g(of)f(San)g(Francisco)i(Bay)l(.)k(On)14 b(foggy)g(days,)h(this) -g(link)g(sometimes)g(\223\003aps,)-5 b(\224)-150 5321 -y(leading)20 b(to)f(routing)g(loops)g(on)f(the)h(DMZ)e(in)i(which)g -(sets)f(of)g(pack)o(ets)j(enter)e(routing)-150 5400 y(loops)f(and)f -(cross)g(the)h(DMZ)e(10')l(s)h(or)g(100')l(s)h(of)f(times,)g(until)h -(their)h(TTLs)c(e)o(xpire.)2132 -104 y Fi(\017)41 b Fs(Fragments)30 -b(with)h(the)g(\223Don')o(t)f(Fragment\224)g(bit)h(set.)58 -b(While)2215 -5 y(allo)n(wed)26 b(by)g(the)g(IP)h(standard,)g(it)g(is)h -(dif)n(\002cult)d(to)i(en)m(vision)e(a)2215 95 y(situation)k(in)g -(which)g(such)g(fragments)e(can)i(be)h(le)o(gitimately)2215 -194 y(constructed,)e(yet)f(we)h(do)f(indeed)g(see)h(them)f(on)h -(clearly)f(in-)2215 294 y(nocuous)19 b(traf)n(\002c.)2132 -467 y Fi(\017)41 b Fs(Ov)o(erlapping)31 b(fragments,)36 -b(in)e(which)g(the)g(end)f(of)h(the)g(\002rst)2215 567 -y(fragment)21 b(is)j(common)d(with)i(the)g(be)o(ginning)d(of)j(the)g -(second.)2215 666 y(Such)h(fragments)f(are)i(also)f(used)g(for)g -(\223teardrop\224)f(denial-of-)2215 766 y(service)d(attacks.)2132 -939 y Fi(\017)41 b Fs(Ov)o(erlapping)36 b(fragments)g(for)i(which)f -(the)i(tw)o(o)f(fragments)2215 1039 y(disagree)19 b(on)h(the)g -(contents)g(of)g(the)g(o)o(v)o(erlapped)d(re)o(gion.)2049 -1210 y(W)-7 b(e)22 b(recount)d(these)i(pathologies)e(not)h(simply)g -(because)g(it)i(is)f(some-)2049 1310 y(what)27 b(f)o(ascinating)g(to)g -(see)h(what)f(a)h(broad)e(range)g(of)h(beha)n(vior)f(we)2049 -1410 y(can)i(observ)o(e)e(in)i(real)g(netw)o(ork)f(traf)n(\002c;)k(b)n -(ut)d(also)g(for)g(the)g(impor)n(-)2049 1509 y(tant)33 -b(reason)g(that)g Fr(many)g(of)g(these)h(patholo)o(gies)d(look)i(very)h -(sim-)2049 1609 y(ilar)i(to)f(g)o(enuine)f(attac)n(ks)p -Fs(.)70 b(Thus,)38 b(the)d(di)n(v)o(ersity)f(of)h(le)o(gitimate)2049 -1708 y(netw)o(ork)28 b(traf)n(\002c,)j(including)c(the)i -(implementation)e(errors)h(some-)2049 1808 y(times)22 -b(re\003ected)g(within)f(it,)i(leads)f(to)g(a)h(v)o(ery)d(real)i -(problem)e(for)i(in-)2049 1908 y(trusion)h(detection,)g(namely)f -(discerning)g(in)h(some)h(circumstances)2049 2007 y(between)k(a)i(true) -f(attack)g(v)o(ersus)g(an)g(innocuous)e(implementation)2049 -2107 y(error)-5 b(.)46 b(F)o(or)27 b(e)o(xample,)g(it)i(can)e(be)g(e)o -(xtremely)f(dif)n(\002cult)h(to)g(discern)2049 2207 y(between)18 -b(the)h(\223)p Fm(USER)49 b(nice)p Fs(\224)19 b(/)h(\223)p -Fm(USER)49 b(root)p Fs(\224)18 b(subterfuge)f(at-)2049 -2306 y(tack)28 b(discussed)g(in)g Fi(x)g Fs(5.3,)h(and)e(a)i(brok)o(en) -d(TCP)j(implementation)2049 2406 y(that)k(sometimes)f(retransmits)h -(dif)n(ferent)e(te)o(xt)h(than)h(it)g(originally)2049 -2505 y(sent.)58 b(More)30 b(generally)-5 b(,)32 b(we)g(cannot)e(rely)g -(on)h(\223clearly\224)f(brok)o(en)2049 2605 y(protocol)22 -b(beha)n(vior)g(as)i(de\002nitely)f(indicating)f(an)h(attack\227it)h(v) -o(ery)2049 2705 y(well)f(may)f(simply)g(re\003ect)h(the)f(operation)f -(of)h(an)g(incorrect)f(imple-)2049 2804 y(mentation)e(of)h(that)g -(protocol.)2132 2906 y(W)-7 b(e)17 b(\002nish)g(our)e(discussion)h(by)f -(noting)g(a)i(situation)f(that)g(does)g(not)2049 3005 -y(re\003ect)j(a)g(protocol)e(implementation)f(error)m(,)i(b)n(ut)g -(rather)g(a)h(common)2049 3105 y(real-w)o(orld)14 b(problem,)g(one)h -(that)h(greatly)f(complicates)f(monitoring.)2132 3206 -y(If)27 b(e)n(v)o(er)f(a)h(site')-5 b(s)29 b(netw)o(ork)c(topology)g -(includes)h(multiple)h(paths)2049 3306 y(from)19 b(the)h(site)h(to)g -(the)f(remainder)e(of)i(the)g(Internet,)f(then)g(the)i(moni-)2049 -3406 y(tor)g(may)f(observ)o(e)f(only)h(one)g(direction)g(of)g(a)i -(connection,)c(because)2049 3505 y(the)27 b(traf)n(\002c)f(for)g(the)g -(other)g(direction)f(transits)i(an)g(alternate)f(route.)2049 -3605 y(W)-7 b(e)35 b(term)f(this)h(situation)f(\223split)h(routing.)-6 -b(\224)65 b(\(In)34 b(the)g(Internet)f(at)2049 3705 y(lar)o(ge,)20 -b(asymmetric)g(routing)f(is)j(quite)f(common,)e(and)i(so)g(there)g(are) -2049 3804 y(numerous)32 b(monitoring)f(points)j(that)g(suf)n(fer)f -(from)g(split)h(routing)2049 3904 y([P)o(a97b)n(].)53 -b(Indi)n(vidual)27 b(sites,)33 b(ho)n(we)n(v)o(er)m(,)c(often)g(ha)n(v) -o(e)f(full)i(control)2049 4003 y(o)o(v)o(er)19 b(whether)g(the)o(y)h -(ha)n(v)o(e)g(multiple)f(Internet)g(connections.)24 b(Some)2049 -4103 y(pursue)e(multiple)g(connections)f(in)i(order)e(to)i(pro)o(vide)e -(redundanc)o(y)2049 4203 y(in)f(their)g(connecti)n(vity)e(to)j(protect) -e(against)h(occasional)f(outages.\))2132 4304 y(Split)28 -b(routing)d(can,)k(of)e(course,)g(lead)h(to)f(the)g(monitor)f(missing) -2049 4404 y(attacks)e(entirely)f(because)g(it)h(ne)n(v)o(er)f(sees)h -(the)g(traf)n(\002c)f(correspond-)2049 4503 y(ing)h(to)g(the)f(attack.) -36 b(Ev)o(en)23 b(if)h(a)g(site)h(runs)f(multiple)f(monitors,)g(one) -2049 4603 y(per)e(Internet)f(link,)i(a)f(subtle)h(problem)d(remains:)28 -b(the)21 b(split)h(routing)2049 4703 y(can)16 b(defeat)f(precautions)g -(tak)o(en)g(by)h(the)g(monitor)f(because)g(it)i(can)f(no)2049 -4802 y(longer)f(assume)g(that)h(it)h(sees)g(traf)n(\002c)e(from)g(at)i -(least)f(one)f(trustw)o(orthy)2049 4902 y(endpoint)22 -b(for)h(each)g(connection.)33 b(So,)24 b(for)f(e)o(xample,)g(the)g -(monitor)2049 5001 y(loses)i(the)g(ability)g(to)g(determine)e(when)h -(it)i(can)e(safely)h(discard)f(in-)2049 5101 y(sequence)i(data.)45 -b(Consequently)-5 b(,)26 b(unless)h(the)g(multiple)f(monitors)2049 -5201 y(communicate)19 b(with)j(one)e(another)g(concerning)f(connection) -g(state,)2049 5300 y(an)g(attack)o(er)f(who)g(disco)o(v)o(ers)g(a)h -(split-route)e(can)i(e)o(xploit)f(it)h(to)g(elude)2049 -5400 y(the)h(monitor)-5 b(.)1908 5649 y(18)p eop -%%Page: 19 19 -19 18 bop -67 -104 a Fs(F)o(ortunately)-5 b(,)37 b(split)f(routing)e -(is)j(at)f(least)g(easy)g(to)g(detect,)j(be-)-150 -5 -y(cause)32 b(the)g(monitor)e(observ)o(es)h(a)h(connection)e -(transmitting)g(uni-)-150 95 y(directional)d(traf)n(\002c)h(without)f -(ha)n(ving)g(\002rst)i(completed)e(the)h(initial)-150 -194 y(three-w)o(ay)17 b(SYN)h(handshak)o(e.)23 b(Whene)n(v)o(er)16 -b(Bro)i(detects)g(split)h(rout-)-150 294 y(ing,)h(it)h(generates)e(an)h -(e)n(v)o(ent)f(announcing)e(the)j(problem.)-150 569 y -Ft(8)119 b(Futur)n(e)31 b(dir)n(ections)-150 755 y Fs(In)16 -b(addition)g(to)g(de)n(v)o(eloping)e(more)i(application)f(analysis)i -(modules,)-150 854 y(we)42 b(see)h(a)f(number)e(of)h(a)n(v)o(enues)g -(for)g(future)g(w)o(ork.)89 b(As)42 b(dis-)-150 954 y(cussed)36 -b(abo)o(v)o(e,)h(compiling)e Fm(Bro)g Fs(scripts)h(and,)j(especially)-5 -b(,)39 b(de-)-150 1054 y(vising)f(mechanisms)f(to)h(distrib)n(ute)f -(monitoring)f(across)i(multi-)-150 1153 y(ple)e(hosts)f(of)n(fer)g(the) -g(promise)g(of)g(increasing)g(monitoring)e(per)n(-)-150 -1253 y(formance.)39 b(W)-7 b(e)27 b(are)e(also)h(v)o(ery)f(interested)g -(in)g(e)o(xtending)f(BPF)i(to)-150 1353 y(better)c(support)e -(monitoring,)g(such)i(as)h(adding)e(lookup)f(tables)i(and)-150 -1452 y(v)n(ariable-length)17 b(snapshots.)-67 1552 y(Another)f -(interesting)g(direction)g(is)i(adding)e(\223teeth\224)h(to)g(the)h -(mon-)-150 1651 y(itoring)i(in)h(the)f(form)g(of)h(acti)n(v)o(ely)e -(terminating)h(misbeha)n(ving)e(con-)-150 1751 y(nections)h(by)g -(sending)g(RST)h(pack)o(ets)g(to)g(their)f(endpoints,)f(or)h(com-)-150 -1851 y(municating)c(with)h(intermediary)f(routers,)h(as)h(some)f -(commercially)-150 1950 y(a)n(v)n(ailable)27 b(monitors)g(already)f -(do.)48 b(W)-7 b(e)28 b(ha)n(v)o(e)g(implemented)d(both)-150 -2050 y(of)20 b(these)g(for)g(Bro)g(and)g(are)g(no)n(w)g(e)o -(xperimenting)d(with)k(their)f(ef)n(fec-)-150 2150 y(ti)n(v)o(eness.)31 -b(The)22 b(ability)g(to)h(ask)f(a)h(router)e(to)i(drop)e(traf)n(\002c)h -(in)m(v)n(olving)-150 2249 y(a)i(particular)d(address)i(has)g(already)g -(pro)o(v)o(en)d(e)o(xtremely)i(useful,)h(as)-150 2349 -y(it)h(greatly)f(limits)h(the)g(information)d(that)j(attack)o(ers)f -(can)h(gather)e(by)-150 2449 y(scanning)29 b(our)h(site;)37 -b(once)30 b(Bro)g(recognizes)f(a)i(scan,)i(it)f(instructs)-150 -2548 y(the)i(border)f(router)g(to)h(drop)f(an)o(y)g(further)g(traf)n -(\002c)h(in)m(v)n(olving)e(the)-150 2648 y(gi)n(v)o(en)24 -b(site.)39 b(Some)25 b(open)e(issues)j(with)f(this)h(form)d(of)i -(reaction)f(are)-150 2747 y(the)e(impact)g(on)h(router)e(performance)e -(as)24 b(the)e(number)f(of)h(such)g(\002l-)-150 2847 -y(ters)e(increases,)g(and)f(attack)o(ers)h(for)o(ging)d(traf)n(\002c)j -(from)e(remote)h(sites)-150 2947 y(to)27 b(mislead)f(Bro)h(into)f -(dropping)f(them,)i(as)h(a)f(form)e(of)i(denial-of-)-150 -3046 y(service)20 b(attack.)-67 3146 y(More)34 b(generally)-5 -b(,)36 b(ho)n(we)n(v)o(er)m(,)g(we)f(ha)n(v)o(e)f(found)f(our)h(f)o -(airly)h(in-)-150 3246 y(depth)29 b(consideration)f(of)h(the)h(problem) -f(of)g(attacks)h(on)g(monitors)-150 3345 y(\()p Fi(x)i -Fs(5\))g(sobering.)59 b(Some)31 b(forms)h(of)f(subterfuge)f(attacks)i -(are)g(e)o(x-)-150 3445 y(tremely)41 b(dif)n(\002cult)g(to)h(defend)e -(against,)46 b(and)41 b(we)h(belie)n(v)o(e)f(it)i(is)-150 -3544 y(ine)n(vitable)33 b(that)h(attack)o(ers)g(will)h(de)n(vise)e(and) -h(share)f(toolkits)h(for)-150 3644 y(launching)16 b(such)h(attacks.)25 -b(This)18 b(in)g(turn)f(suggests)h(three)f(important)-150 -3744 y(areas)i(for)g(research)f(into)h(intrusion)f(detection:)24 -b Fr(\(i\))19 b Fs(further)f(e)o(xplor)n(-)-150 3843 -y(ing)28 b(the)g(notion)f(of)h(\223bifurcating)f(analysis\224)h -(discussed)g(in)g Fi(x)h Fs(5.3;)-150 3943 y Fr(\(ii\))24 -b Fs(studying)f(the)h(notion)f(of)h(traf)n(\002c)g(\223normalizers\224) -e(that)j(remo)o(v)o(e)-150 4043 y(ambiguities)g(from)f(traf)n(\002c)h -(streams)h(\(one)f(such)g(normalizer)f(is)j(an)-150 4142 -y(\223in-the-loop\224)16 b(monitor)m(,)i(one)g(that)h(must)g(appro)o(v) -o(e)e(the)i(forw)o(arding)-150 4242 y(of)d(an)o(y)f(pack)o(et)h(it)g -(recei)n(v)o(es\);)h(and)e Fr(\(iii\))h Fs(inte)o(grating)e(into)i(the) -g(system)-150 4341 y(monitor)27 b(\223sensors\224)g(that)i(run)e(on)g -(the)i(end)e(hosts.)49 b(Such)28 b(sensors)-150 4441 -y(can)16 b(analyze)f(netw)o(ork)g(traf)n(\002c)h(at)g(a)h(suf)n -(\002ciently)e(high)g(layer)h(in)g(their)-150 4541 y(host')-5 -b(s)19 b(netw)o(ork)e(stack)i(where)e(ambiguities)h(about)f(ho)n(w)h -(the)h(traf)n(\002c)-150 4640 y(will)32 b(be)f(interpreted)e(ha)n(v)o -(e)i(already)f(been)g(resolv)o(ed.)56 b(Our)31 b(near)n(-)-150 -4740 y(term)22 b(research)f(is)j(focussing)d(on)h(the)g(second)f(of)h -(these,)h(e)o(xploring)-150 4840 y(the)d(issues)h(associated)f(with)h -(b)n(uilding)e(traf)n(\002c)g(normalizers.)-150 5115 -y Ft(9)119 b(Ackno)o(wledgements)-150 5300 y Fs(W)-7 -b(e)17 b(gratefully)d(ackno)n(wledge)g(Digital)i(Equipment)d -(Corporation')-5 b(s)-150 5400 y(W)e(estern)17 b(Research)f(Laboratory) -e(for)i(contrib)n(uting)e(the)i(Alpha)g(sys-)2049 -104 -y(tem)24 b(that)g(made)f(de)n(v)o(eloping)e(and)i(operating)f(Bro)i(at) -h(high)e(speeds)2049 -5 y(possible.)30 b(I)22 b(w)o(ould)f -(particularly)f(lik)o(e)i(to)g(thank)f(Jef)n(f)h(Mogul,)f(who)2049 -95 y(w)o(as)26 b(instrumental)f(in)g(arranging)f(this)i(through)d(WRL) --8 b(')j(s)28 b(External)2049 194 y(Research)20 b(Program.)2132 -294 y(Man)o(y)49 b(thanks,)57 b(too,)h(to)50 b(Craig)g(Leres.)116 -b(Bro)50 b(has)h(bene-)2049 394 y(\002ted)32 b(greatly)e(from)h(man)o -(y)f(discussions)h(with)h(him.)59 b(Craig)31 b(also)2049 -493 y(wrote)i(the)g(calendar)e(queue)h(and)h(non-blocking)c(DNS)34 -b(routines)2049 593 y(discussed)e(in)g Fi(x)h Fs(4.)61 -b(Along)31 b(with)h(Craig)h(Leres,)i(I')l(d)c(lik)o(e)h(to)h(ac-)2049 -693 y(kno)n(wledge)19 b(the)j(on-going)c(feedback)i(I)i(recei)n(v)o(e)e -(from)g(Craig)i(Lant)2049 792 y(and)f(P)o(artha)h(Banerjee)f(on)h(the)f -(daily)h(operation)e(of)h(Bro,)i(and)e(their)2049 892 -y(ef)n(forts)e(at)i(analyzing)e(security)g(incidents)h(detected)f(by)h -(Bro.)2132 991 y(My)29 b(appreciation)e(to)i(Scott)g(Denton,)h(John)f -(Antonishek,)g(and)2049 1091 y(man)o(y)20 b(others)h(for)g -(alpha-testing)f(Bro)i(and)f(contrib)n(uting)e(portabil-)2049 -1191 y(ity)h(\002x)o(es)h(and)e(other)h(enhancements.)2132 -1290 y(Finally)-5 b(,)41 b(this)d(w)o(ork)e(w)o(ould)h(not)g(ha)n(v)o -(e)f(been)h(possible)g(with-)2049 1390 y(out)f(the)g(support)f(and)h -(enthusiasm)f(of)h(Mark)g(Rosenber)o(g,)i(V)-9 b(an)2049 -1490 y(Jacobson,)39 b(Jim)h(Rothfuss,)k(Stu)c(Lok)o(en)f(and)g(Da)n(v)o -(e)h(Ste)n(v)o(ens\227)2049 1589 y(much)19 b(appreciated!)2049 -1869 y Ft(A)120 b(Example:)36 b(tracking)31 b(Finger)g(traf\002c)2049 -2055 y Fs(In)d(this)i(appendix)c(we)k(gi)n(v)o(e)d(an)i(o)o(v)o(ervie)n -(w)e(of)h(ho)n(w)g(the)h(dif)n(ferent)2049 2155 y(elements)19 -b(of)g(Bro)h(come)f(together)f(for)h(monitoring)e(Finger)i(traf)n -(\002c.)2049 2254 y(F)o(or)27 b(the)g(e)n(v)o(ent)f(engine,)h(we)h(ha)n -(v)o(e)e(a)i(C++)f(class)h Fm(FingerConn)p Fs(,)2049 -2354 y(deri)n(v)o(ed)17 b(from)h(the)h(general-purpose)d -Fm(TCP)p 3326 2354 25 4 v 29 w(Connection)i Fs(class.)2049 -2453 y(When)f(Bro)h(encounters)d(a)j(ne)n(w)f(connection)e(with)j -(service)f(port)f(79,)2049 2553 y(it)j(instantiates)f(a)h -(corresponding)14 b Fm(FingerConn)j Fs(object,)h(instead)2049 -2653 y(of)24 b(a)g Fm(TCP)p 2359 2653 V 30 w(Connection)f -Fs(object)g(as)i(it)g(w)o(ould)e(for)h(an)g(unrecog-)2049 -2752 y(nized)c(port.)2132 2852 y Fm(FingerConn)129 b -Fs(rede\002nes)h(the)h(virtual)f(function)2049 2952 y -Fm(BuildEndpoints)p Fs(,)29 b(which)g(is)i(in)m(v)n(ok)o(ed)c(when)i(a) -h(connection)2049 3051 y(object)20 b(is)h(\002rst)g(created:)2049 -3213 y Ff(void)39 b(FingerConn::BuildEndpoints\(\))2169 -3292 y({)2169 3371 y(resp)g(=)h(new)f(TCP_EndpointLine\(this,)d(1,)k -(0,)g(1\);)2169 3449 y(orig)f(=)h(new)f(TCP_EndpointLine\(this,)d(0,)k -(0,)g(1\);)2169 3528 y(})2049 3711 y Fs(Here,)70 b Fm(resp)p -Fs(,)g(corresponding)57 b(to)k(the)f(responder)f(\(Finger)2049 -3810 y(serv)o(er\))28 b(side)i(of)f(the)g(connection,)g(is)h -(initialized)f(to)h(an)f(ordinary)2049 3910 y Fm(TCP)p -2204 3910 V 29 w(Endpoint)i Fs(object,)i(because)e(Bro)g(does)g(not)g -(\(presently\))2049 4010 y(look)20 b(inside)h(Finger)f(replies.)27 -b(But)21 b Fm(orig)p Fs(,)g(the)f(Finger)h(client)f(side,)2049 -4109 y(and)g Fm(resp)p Fs(,)h(the)f(responder)f(\(Finger)h(serv)o(er\)) -f(side)i(of)g(the)f(connec-)2049 4209 y(tion)31 b(are)h(both)f -(initialized)g(to)h Fm(TCP)p 3140 4209 V 29 w(EndpointLine)e -Fs(objects,)2049 4308 y(which)23 b(means)g(Bro)g(will)h(track)f(the)g -(contents)g(of)g(each)g(side)h(of)f(the)2049 4408 y(connection,)g(and,) -h(furthermore,)d(deli)n(v)o(er)i(the)h(contents)f(in)h(a)h(line-)2049 -4508 y(oriented)19 b(f)o(ashion)h(to)h Fm(FingerConn)p -Fs(')-5 b(s)19 b(virtual)h Fm(NewLine)g Fs(func-)2049 -4607 y(tion:)2049 4769 y Ff(int)39 b -(FingerConn::NewLine\(TCP_Endpoint*)c(/*)40 b(s)g(*/,)2806 -4848 y(double)f(/*)h(t)f(*/,)h(char*)f(line\))2169 4927 -y({)2169 5006 y(line)g(=)h(skip_whitespace\(line\);)2169 -5163 y(//)f(Check)g(for)h(/W.)2169 5242 y(int)f(is_long)g(=)g -(\(line[0])g(==)h('/')f(&&)2766 5321 y(toupper\(line[1]\))f(==)h -('W'\);)2169 5400 y(if)g(\()h(is_long)f(\))1908 5649 -y Fs(19)p eop -%%Page: 20 20 -20 19 bop 89 -104 a Ff(line)39 b(=)h(skip_whitespace\(line+2\);)-30 -53 y(val_list*)e(vl)i(=)f(new)h(val_list;)-30 132 y -(vl->append\(BuildConnVal\(\)\);)-30 211 y(vl->append\(new)d -(StringVal\(line\)\);)-30 290 y(vl->append\(new)g(Val\(is_long,)h -(TYPE_BOOL\)\);)-30 448 y(mgr.QueueEvent\(finger_request,)d(vl\);)-30 -526 y(return)k(0;)-30 605 y(})-150 773 y Fs(\(F)o(or)89 -b(bre)n(vity)-5 b(,)104 b(we)90 b(sho)n(w)f Fm(NewLine)f -Fs(only)h(for)g(the)-150 872 y Fm(finger)p 155 872 25 -4 v 29 w(request)66 b Fs(case.\))165 b Fm(NewLine)66 -b Fs(skips)i(whites-)-150 972 y(pace)29 b(in)g(the)g(request,)i(scans)e -(it)h(for)e(the)i(\223)p Fm(/W)p Fs(\224)f(indicator)e(\(which)-150 -1072 y(requests)18 b(v)o(erbose)f(Finger)g(output\),)g(and)h(mo)o(v)o -(es)f(past)h(it)h(if)f(present.)-150 1171 y(It)34 b(then)f(creates)h(a) -h Fm(val)p 604 1171 V 29 w(list)f Fs(object,)i(which)d(holds)h(a)g -(list)h(of)-150 1271 y(generic)i(Bro)h Fm(Val)g Fs(objects.)78 -b(The)38 b(\002rst)g(of)g(these)g(is)h(assigned)-150 -1371 y(to)i(a)g(generic)f(connection-identi\002er)d(v)n(alue)j(\(see)g -(belo)n(w\);)51 b(the)-150 1470 y(second,)39 b(to)d(a)g(Bro)g -Fm(string)f Fs(containing)f(the)i(Finger)f(request,)-150 -1570 y(and)41 b(the)h(third)f(to)h(a)h Fm(bool)e Fs(indicating)g -(whether)f(the)i(request)-150 1669 y(w)o(as)37 b(v)o(erbose)e(or)h -(not.)74 b(The)36 b(penultimate)f(line)h(queues)g(a)h(ne)n(w)-150 -1769 y Fm(finger)p 155 1769 V 29 w(request)k Fs(e)n(v)o(ent)f(with)i -(the)f(corresponding)d(list)43 b(of)-150 1869 y(v)n(alues)28 -b(as)h(ar)o(guments;)h(\002nally)-5 b(,)29 b Fm(return)49 -b(0)28 b Fs(indicates)g(that)h(the)-150 1968 y Fm(FingerConn)22 -b Fs(is)i(all)f(done)f(with)h(the)g(memory)f(associated)g(with)-150 -2068 y Fm(line)34 b Fs(\(since)h Fm(new)49 b(StringVal\(line\))32 -b Fs(made)i(a)h(cop)o(y)f(of)-150 2168 y(it\),)20 b(so)h(that)f(memory) -f(can)h(be)g(reclaimed)f(by)h(the)g(caller)-5 b(.)-67 -2267 y(The)34 b(connection)f(identi\002er)h(discussed)g(abo)o(v)o(e)f -(is)j(de\002ned)d(in)-150 2367 y(Bro)20 b(as)h(a)g(\223)p -Fm(connection)p Fs(\224)d(record:)-150 2514 y Ff(type)39 -b(endpoint:)g(record)g({)-30 2592 y(size:)g(count;)g(state:)g(count;) --150 2671 y(};)-150 2750 y(type)g(connection:)f(record)h({)-30 -2829 y(id:)g(conn_id;)-30 2908 y(orig:)g(endpoint;)f(resp:)h(endpoint;) --30 2987 y(start_time:)f(time;)-30 3066 y(duration:)g(interval;)-30 -3145 y(service:)g(string;)89 3223 y(#)i(if)f(empty,)g(service)g(not)h -(yet)f(determined)-30 3302 y(addl:)g(string;)-30 3381 -y(hot:)g(count;)89 3460 y(#)h(how)f(hot;)g(0)h(=)g(don't)f(know)g(or)h -(not)f(hot)-150 3539 y(};)-150 3706 y Fs(The)19 b Fm(id)h -Fs(\002eld)g(is)g(a)g Fm(conn)p 624 3706 V 30 w(id)f -Fs(record,)f(discussed)i(in)g Fi(x)g Fs(3.1.)k Fm(orig)-150 -3806 y Fs(and)29 b Fm(resp)h Fs(correspond)d(to)j(the)g(connection)e -(originator)g(and)h(re-)-150 3906 y(sponder)m(,)22 b(each)h(a)h(Bro)f -Fm(endpoint)f Fs(record)g(consisting)h(of)g Fm(size)-150 -4005 y Fs(\(the)c(number)f(of)i(bytes)g(transferred)d(by)j(that)g -(endpoint)e(so)i(f)o(ar\))f(and)-150 4105 y Fm(state)p -Fs(,)38 b(the)c(endpoint')-5 b(s)33 b(TCP)j(state)f(\(e.g.,)i(SYN)e -(sent,)k(estab-)-150 4204 y(lished,)26 b(closed\).)40 -b(This)25 b(latter)h(w)o(ould)e(be)h(better)g(e)o(xpressed)f(using)-150 -4304 y(an)j(enumerated)e(type)i(\(rather)f(than)g(a)i -Fm(count)p Fs(\),)g(which)f(we)g(may)-150 4404 y(add)20 -b(to)g(Bro)g(in)h(the)f(future.)-67 4503 y(The)36 b Fm(start)p -354 4503 V 29 w(time)g Fs(\002eld)h(re\003ects)g(when)f(the)g -(connection')-5 b(s)-150 4603 y(\002rst)21 b(pack)o(et)f(w)o(as)h -(seen,)f(and)g Fm(duration)g Fs(ho)n(w)f(long)h(the)g(connec-)-150 -4703 y(tion)k(has)h(e)o(xisted.)38 b Fm(service)24 b -Fs(corresponds)e(to)j(the)f(name)g(of)h(the)-150 4802 -y(service,)h(or)f(an)g(empty)f(string)h(if)g(it)h(has)g(not)f(been)f -(identi\002ed.)39 b(By)-150 4902 y(con)m(v)o(ention,)33 -b Fm(addl)g Fs(holds)f(additional)g(information)f(associated)-150 -5001 y(with)e(the)g(connection;)i(better)d(than)h(a)g -Fm(string)f Fs(here)h(w)o(ould)f(be)-150 5101 y(some)16 -b(sort)g(of)g(union)f(or)h(generic)f(type,)i(if)f(Bro)h(supported)d -(such.)23 b(Fi-)-150 5201 y(nally)-5 b(,)18 b(by)h(con)m(v)o(ention)d -(the)k(polic)o(y)e(script)h(increments)f Fm(hot)i Fs(when-)-150 -5300 y(e)n(v)o(er)g(it)i(\002nds)f(something)f(potentially)g -(suspicious)g(about)g(the)h(con-)-150 5400 y(nection.)2132 --104 y(Here)f(is)h(the)f(corresponding)d(polic)o(y)i(script:)2049 -33 y Ff(global)39 b(hot_names)f(=)i({)g("root",)f("lp",)g("uucp")g(};) -2049 111 y(global)g(finger_log)f(=)2169 190 y(open\(getenv\("BRO_ID"\)) -e(==)k("")f(?)2368 269 y("finger.log")f(:)2368 348 y -(fmt\("finger.\045s",)f(getenv\("BRO_ID"\)\)\);)2049 -506 y(event)i(finger_request\(c:connection,)2886 585 -y(request:)g(string,)2886 664 y(full:)g(bool\))2169 742 -y({)2169 821 y(if)g(\()h(byte_len\(request\))d(>)j(80)f(\))h({)2288 -900 y(request)f(=)h(fmt\("\045s...",)2846 979 y(sub_bytes\(request,)d -(1,)j(80\)\);)2288 1058 y(++c$hot;)2169 1137 y(})2169 -1216 y(if)f(\()h(request)f(in)g(hot_names)g(\))2288 1295 -y(++c$hot;)2169 1452 y(local)g(req)g(=)h(request)f(==)g("")h(?)2288 -1531 y("ANY")f(:)h(fmt\("\\"\045s\\"",)e(request\);)2169 -1610 y(if)h(\()h(c$addl)f(!=)g("")h(\))2288 1689 y(#)g(This)f(is)h(an)f -(additional)g(request.)2288 1768 y(req)h(=)f(fmt\("\(\045s\)",)f -(req\);)2169 1847 y(if)h(\()h(full)f(\))2288 1925 y(req)h(=)f -(fmt\("\045s)g(\(/W\)",)g(req\);)2169 2083 y(local)g(msg)g(=)h -(fmt\("\045s)f(>)g(\045s)h(\045s",)2806 2162 y(c$id$orig_h,)2806 -2241 y(c$id$resp_h,)2806 2320 y(req\);)2169 2399 y(if)f(\()h(c$hot)f(>) -h(0)f(\))2288 2478 y(log)h(fmt\("finger:)e(\045s",)h(msg\);)2169 -2556 y(print)g(finger_log,)2408 2635 y(fmt\("\045.6f)f(\045s",)h -(c$start_time,)f(msg\);)2169 2793 y(c$addl)h(=)g(c$addl)g(==)h("")f(?) -2527 2872 y(req)h(:)f(fmt\("*\045s,)g(\045s",)g(c$addl,)g(req\);)2169 -2951 y(})2049 3109 y Fs(The)28 b(global)f Fm(hot)p 2598 -3109 V 30 w(names)h Fs(is)h(a)g(Bro)f Fm(set)h Fs(of)f -Fm(string)p Fs(.)48 b(In)29 b(the)2049 3208 y(ne)o(xt)22 -b(line,)i Fm(finger)p 2689 3208 V 29 w(log)f Fs(is)g(initialized)g(to)g -(a)h(Bro)f Fm(file)p Fs(,)g(either)2049 3308 y(named)f(\223\002nger)-5 -b(.log\224,)23 b(or)m(,)g(if)h(the)f Fm(BRO)p 3196 3308 -V 30 w(ID)g Fs(en)m(vironment)e(v)n(ariable)2049 3407 -y(is)g(set,)g(to)f(a)h(name)f(deri)n(v)o(ed)e(from)h(it)i(using)f(the)g -(b)n(uilt-in)g Fm(fmt)g Fs(func-)2049 3507 y(tion.)2132 -3607 y(The)28 b Fm(finger)p 2595 3607 V 29 w(request)g -Fs(e)n(v)o(ent)g(handler)f(follo)n(ws.)50 b(It)29 b(tak)o(es)2049 -3706 y(three)h(ar)o(guments,)i(corresponding)27 b(to)k(the)g(v)n(alues) -g(added)e(to)j(the)2049 3806 y Fm(val)p 2204 3806 V 29 -w(list)24 b Fs(abo)o(v)o(e.)34 b(It)24 b(\002rst)h(checks)e(whether)g -(the)g(request)h(is)g(e)o(x-)2049 3906 y(cessi)n(v)o(ely)15 -b(long,)h(and,)f(if)h(so,)h(truncates)e(it)h(and)f(increments)g(the)h -Fm(hot)2049 4005 y Fs(\002eld)21 b(of)g(the)g(connection')-5 -b(s)19 b(information)g(record.)25 b(\(The)c(Bro)g(b)n(uilt-)2049 -4105 y(in)j(functions)f(used)h(here)g(are)g(named)g(in)g(terms)g(of)h -(\223bytes\224)e(rather)2049 4204 y(than)16 b(\223string\224)g(because) -f(the)o(y)h(mak)o(e)g(no)g(assumptions)f(about)h(NUL-)2049 -4304 y(termination)k(of)i(their)g(ar)o(guments;)e(in)i(particular)m(,)f -Fm(byte)p 3762 4304 V 29 w(len)h Fs(re-)2049 4404 y(turns)g(the)h -(length)f(of)h(its)h(ar)o(gument)c(including)h(a)i(\002nal)g(NUL)g -(byte,)2049 4503 y(if)d(present.\))2132 4603 y(Ne)o(xt,)32 -b(the)e(script)g(checks)f(whether)g(the)h(request)f(corresponds)2049 -4703 y(to)e(an)o(y)e(of)h(the)h(entries)f(in)h(the)f -Fm(hot)p 3134 4703 V 30 w(names)g Fs(set.)44 b(If)26 -b(so,)i(it)g(again)2049 4802 y(marks)20 b(the)g(connection)e(as)j -(\223hot.)-6 b(\224)2132 4902 y(W)f(e)25 b(then)e(initialize)g(the)h -(local)f(v)n(ariable)f Fm(req)i Fs(to)f(a)h(quoted)e(v)o(er)n(-)2049 -5001 y(sion)17 b(of)h(the)f(request;)h(or)m(,)f(if)h(the)g(request)e(w) -o(as)j(empty)d(\(which)h(in)h(the)2049 5101 y(Finger)25 -b(protocol)g(indicates)g(a)i(request)e(type)h(of)f(\223)-7 -b(ANY\224\),)26 b(then)g(it)2049 5201 y(is)21 b(changed)e(to)h(\223)-7 -b(ANY\224.)2132 5300 y(The)19 b(e)n(v)o(ent)g(handler)g(stores)h(the)f -(Finger)g(request)h(in)f(the)h(connec-)2049 5400 y(tion)g(record')-5 -b(s)19 b Fm(addl)h Fs(\002eld)g(\(see)h(belo)n(w\),)e(so)h(the)g(ne)o -(xt)g(line)g(checks)1908 5649 y(20)p eop -%%Page: 21 21 -21 20 bop -150 -104 a Fs(to)30 b(see)g(whether)f(this)h(\002eld)g -(already)f(contains)g(a)h(request.)53 b(If)29 b(so,)-150 --5 y(then)19 b(we)h(are)g(seeing)f(multiple)g(requests)h(for)f(a)h -(single)f(Finger)g(con-)-150 95 y(nection.)30 b(This)23 -b(is)g(not)f(allo)n(wed)g(by)f(the)i(Finger)e(protocol,)g(b)n(ut)h -(that)-150 194 y(doesn')o(t)28 b(mean)h(we)g(w)o(on')o(t)g(see)h(them!) -52 b(In)29 b(particular)m(,)g(we)h(might)-150 294 y(imagine)23 -b(a)i(subterfuge)d(attack)i(in)g(which)g(an)g(attack)o(er)f(queries)h -(an)-150 394 y(innocuous)h(name)h(in)h(their)g(\002rst)h(request,)g -(and)e(a)h(sensiti)n(v)o(e)g(name)-150 493 y(in)i(their)f(second,)h -(and)f(depending)d(on)j(ho)n(w)g(the)h(\002nger)e(serv)o(er)h(is)-150 -593 y(written,)g(it)g(may)e(well)h(respond)f(to)h(both.)1102 -563 y Fn(5)1183 593 y Fs(This)g(script)g(will)g(still)-150 -693 y(catch)g(such)g(use,)i(since)f(it)g(fully)f(processes)g(each)g -(request;)j(b)n(ut)e(it)-150 792 y(needs)21 b(to)g(be)g(careful)f(to)i -(k)o(eep)e(the)i(global)e(state)i(corresponding)17 b(to)-150 -892 y(the)30 b(connection)e(\(in)i(the)g Fm(addl)f Fs(\002eld\))h -(complete.)54 b(T)-7 b(o)30 b(do)f(so,)k(it)-150 991 -y(marks)21 b(additional)f(requests)h(by)g(enclosing)f(them)h(in)h -(parentheses,)-150 1091 y(and)31 b(also)g(prepends)e(an)i(asterisk)h -(to)f(the)g(entire)g Fm(addl)g Fs(\002eld)g(for)-150 -1191 y(each)25 b(additional)g(request,)h(so)g(that)f(in)h(later)g -(visual)f(inspection)g(of)-150 1290 y(the)20 b(Finger)g(logs)g(these)g -(requests)g(immediately)f(stand)h(out.)-67 1390 y(The)k -Fm(msg)g Fs(local)g(v)n(ariable)f(holds)g(the)h(basic)g(description)f -(of)h(the)-150 1490 y(Finger)29 b(request.)51 b(The)29 -b Fm(fmt)h Fs(function)d(kno)n(ws)i(to)h(format)e(the)h(IP)-150 -1589 y(addresses)38 b Fm(c$id$orig)p 662 1589 25 4 v -28 w(h)h Fs(and)e Fm(c$id$resp)p 1387 1589 V 28 w(h)i -Fs(as)g(\223dotted)-150 1689 y(quads.)-6 b(\224)-67 1788 -y(Ne)o(xt,)27 b(if)f(the)g(connection)e(has)i(been)f(mark)o(ed)f(as)j -(\223hot\224)e(\(either)-150 1888 y(just)30 b(pre)n(viously)-5 -b(,)29 b(or)g(perhaps)f(by)g(a)i(completely)e(dif)n(ferent)f(e)n(v)o -(ent)-150 1988 y(handler\),)17 b(then)g(the)h(script)h(generates)e(a)h -(real-time)g(noti\002cation.)23 b(In)-150 2087 y(an)o(y)17 -b(case,)h(it)g(also)g(records)f(the)g(request)g(to)h(the)g -Fm(finger)p 1533 2087 V 29 w(log)f Fs(\002le.)-150 2187 -y(Finally)-5 b(,)24 b(it)g(updates)e(the)i Fm(addl)f -Fs(\002eld)h(to)g(re\003ect)f(the)h(request)e(\(and)-150 -2287 y(to)e(\003ag)h(multiple)e(requests,)h(as)h(discussed)f(abo)o(v)o -(e\).)-67 2386 y(Entries)g(in)g(the)h(log)e(\002le)i(look)f(lik)o(e:) --150 2530 y Ff(880988813.752829)37 b(171.64.15.68)i(>)527 -2609 y(128.3.253.104)f("feng")-150 2688 y(880991121.364126)f -(131.243.168.28)h(>)527 2766 y(130.132.143.23)g("anlin")-150 -2845 y(880997120.932007)f(192.84.144.6)i(>)527 2924 y(128.3.32.16)g -(ALL)-150 3003 y(881000846.603872)e(128.3.9.45)i(>)527 -3082 y(146.165.7.14)g(ALL)g(\(/W\))-150 3161 y(881001601.958411)e -(152.66.83.11)i(>)527 3240 y(128.3.13.76)g("davfor")-150 -3404 y Fs(\(though)18 b(without)i(the)g(lines)g(split)h(after)f(the)g -(\223)p Fm(>)p Fs(\224\).)-67 3504 y(The)37 b(real-time)f -(noti\002cations)g(look)h(quite)f(similar)m(,)41 b(with)d(the)-150 -3603 y(k)o(e)o(yw)o(ord)24 b(\223)p Fm(finger:)p Fs(\224)34 -b(added)24 b(to)i(a)n(v)n(oid)f(ambiguity)f(with)h(other)-150 -3703 y(types)20 b(of)g(real-time)f(noti\002cation.)-150 -3980 y Ft(Refer)n(ences)-150 4165 y Fs([Ax99])95 b(AXENT)141 -b(T)-6 b(echnologies,)170 b Fr(Intruder)141 b(Alert)p -Fs(,)187 4265 y(http://www)-5 b(.ax)o(ent.com/produ)o(ct/smsb)n(u/IT)c -(A/,)187 4365 y(1999.)-150 4523 y([Br88])114 b(R.)32 -b(Bro)n(wn,)h(\223Calendar)d(Queues:)47 b(A)32 b(F)o(ast)g -Fj(O)r Fc(\(1\))g Fs(Pri-)187 4623 y(ority)39 b(Queue)g(Implementation) -e(for)j(the)g(Simulation)187 4723 y(Ev)o(ent)16 b(Set)j(Problem,)-6 -b(\224)17 b Fr(Communications)f(of)i(the)f(A)n(CM)p Fs(,)187 -4822 y(31\(10\),)g(pp.)j(1220-1227,)c(Oct.)21 b(1988.)-150 -4981 y([Ci99])119 b(Cisco)357 b(Systems,)440 b Fr(NetRang)o(er)p -Fs(,)187 5081 y(http://www)-5 b(.cisco.com/w)o(arp/public/cc/cisco/m)o -(kt/)187 5180 y(security/nranger/inde)o(x.htm)o(l,)15 -b(1999.)p -150 5244 801 4 v -65 5298 a Fk(5)-30 5321 -y Fp(W)-5 b(e)22 b(do)i(indeed)h(see)e(occasional)k(multiple)e -(requests.)41 b(So)23 b(f)o(ar)m(,)i(the)o(y)g(ha)o(v)o(e)f(all)-150 -5400 y(appeared)19 b(fully)f(innocuous.)2049 -104 y Fs([CT94])91 -b(C.)44 b(Compton)f(and)h(D.)g(T)-6 b(ennenhouse,)47 -b(\223Collabora-)2386 -5 y(ti)n(v)o(e)e(Load)f(Shedding)f(for)i -(Media-Based)g(Applica-)2386 95 y(tions,)-6 b(\224)45 -b Fr(Pr)l(oc.)c(International)d(Confer)m(ence)i(on)g(Mul-)2386 -194 y(timedia)i(Computing)f(and)h(Systems)p Fs(,)49 b(Boston,)e(MA,) -2386 294 y(May)-5 b(.)19 b(1994.)2049 459 y([In99])127 -b(Internet)44 b(Security)h(Systems,)52 b(Inc.,)f Fr(RealSecur)m(e)3940 -429 y Fa(TM)4029 459 y Fs(,)2386 559 y(http://www)-5 -b(.iss.net/prod/rs.php3,)15 b(1999.)2049 725 y([JLM89])40 -b(V)-11 b(.)72 b(Jacobson,)83 b(C.)72 b(Leres,)84 b(and)71 -b(S.)g(McCanne,)2386 824 y Fm(tcpdump)p Fs(,)80 b(a)n(v)n(ailable)68 -b(via)h(anon)o(ymous)d(ftp)i(to)2386 924 y(ftp.ee.lbl.go)o(v)-5 -b(,)16 b(Jun.)k(1989.)2049 1089 y([Ka91])100 b(B.)36 -b(Kantor)m(,)j(\223BSD)d(Rlogin,)-6 b(\224)40 b(RFC)d(1282,)h(Netw)o -(ork)2386 1189 y(Information)51 b(Center)m(,)63 b(SRI)55 -b(International,)61 b(Menlo)2386 1289 y(P)o(ark,)19 b(CA,)i(Dec.)f -(1991.)2049 1454 y([MJ93])91 b(S.)30 b(McCanne)e(and)h(V)-11 -b(.)31 b(Jacobson,)f(\223The)f(BSD)i(P)o(ack)o(et)2386 -1554 y(Filter:)38 b(A)27 b(Ne)n(w)g(Architecture)f(for)g(User)n(-le)n -(v)o(el)g(P)o(ack)o(et)2386 1653 y(Capture,)-6 b(\224)18 -b Fr(Pr)l(oc.)h(1993)e(W)-5 b(inter)20 b(USENIX)f(Confer)m(ence)p -Fs(,)2386 1753 y(San)h(Die)o(go,)f(CA.)2049 1918 y([MLJ94])40 -b(S.)77 b(McCanne,)90 b(C.)78 b(Leres)e(and)h(V)-11 b(.)77 -b(Jacobson,)2386 2018 y Fm(libpcap)p Fs(,)j(a)n(v)n(ailable)68 -b(via)h(anon)o(ymous)d(ftp)i(to)2386 2118 y(ftp.ee.lbl.go)o(v)-5 -b(,)16 b(1994.)2049 2283 y([MHL94])39 b(B.)23 b(Mukherjee,)d(L.)i -(Heberlein,)f(and)h(K.)g(Le)n(vitt,)g(\223Net-)2386 2383 -y(w)o(ork)33 b(Intrusion)f(Detection,)-6 b(\224)37 b -Fr(IEEE)c(Network)p Fs(,)38 b(8\(3\),)2386 2482 y(pp.)19 -b(26-41,)f(May/Jun.)h(1994.)2049 2648 y([Ne99])100 b(Netw)o(ork)41 -b(Flight)g(Recorder)m(,)46 b(Inc.,)g Fr(Network)d(Flight)2386 -2747 y(Recor)m(der)p Fs(,)19 b(http://www)-5 b(.nfr)g(.com,)17 -b(1999.)2049 2913 y([PS93])105 b(V)-11 b(.)18 b(P)o(axson)g(and)g(C.)h -(Saltmarsh,)f(\223Glish:)25 b(A)19 b(User)n(-Le)n(v)o(el)2386 -3012 y(Softw)o(are)46 b(Bus)i(for)f(Loosely-Coupled)d(Distrib)n(uted) -2386 3112 y(Systems,)-6 b(\224)17 b Fr(Pr)l(oc.)f(1993)e(W)-5 -b(inter)17 b(USENIX)f(Confer)m(ence)p Fs(,)2386 3212 -y(San)k(Die)o(go,)f(CA.)2049 3377 y([P)o(a94])115 b(V)-11 -b(.)35 b(P)o(axson,)i(\223Empirically-Deri)n(v)o(ed)30 -b(Analytic)35 b(Mod-)2386 3477 y(els)28 b(of)f(W)m(ide-Area)g(TCP)h -(Connections,)-6 b(\224)28 b Fr(IEEE/A)n(CM)2386 3576 -y(T)-5 b(r)o(ansactions)34 b(on)g(Networking)p Fs(,)39 -b(2\(4\),)e(pp.)e(316-336,)2386 3676 y(Aug.)19 b(1994.)2049 -3842 y([P)o(a96])115 b(V)-11 b(.)25 b(P)o(axson,)g Fm(flex)p -Fs(,)g(a)n(v)n(ailable)f(via)h(anon)o(ymous)d(ftp)i(to)2386 -3941 y(ftp.ee.lbl.go)o(v)-5 b(,)16 b(Sep.)k(1996.)2049 -4107 y([P)o(a97a])78 b(V)-11 b(.)31 b(P)o(axson,)i(\223End-to-End)28 -b(Internet)i(P)o(ack)o(et)h(Dynam-)2386 4206 y(ics,)-6 -b(\224)67 b Fr(Pr)l(oc.)57 b(SIGCOMM)g('97)p Fs(,)65 -b(Cannes,)h(France,)2386 4306 y(Sep.)20 b(1997.)2049 -4471 y([P)o(a97b])73 b(V)-11 b(.)28 b(P)o(axson,)h(\223End-to-End)c -(Routing)j(Beha)n(vior)f(in)i(the)2386 4571 y(Internet,)-6 -b(\224)41 b Fr(IEEE/A)n(CM)c(T)-5 b(r)o(ansactions)37 -b(on)h(Network-)2386 4671 y(ing)p Fs(,)19 b(5\(5\),)g(pp.)h(601-615,)d -(Oct.)j(1997.)2049 4836 y([P)o(a98])115 b(V)-11 b(.)18 -b(P)o(axson,)g(\223Bro:)24 b(A)18 b(System)g(for)g(Detecting)f(Netw)o -(ork)2386 4936 y(Intruders)h(in)i(Real-T)m(ime,)-6 b(\224)20 -b(Proc.)f(7th)h(USENIX)g(Secu-)2386 5035 y(rity)g(Symposium,)e(Jan.)i -(1998.)2049 5201 y([PR83a])59 b(J.)26 b(Postel)h(and)f(J.)h(Re)o -(ynolds,)f(\223T)-6 b(elnet)26 b(Protocol)f(Spec-)2386 -5300 y(i\002cation,)-6 b(\224)21 b(RFC)j(854,)d(Netw)o(ork)g -(Information)e(Center)m(,)2386 5400 y(SRI)i(International,)c(Menlo)j(P) -o(ark,)f(CA,)i(May)f(1983.)1908 5649 y(21)p eop -%%Page: 22 22 -22 21 bop -150 -104 a Fs([PR83b])54 b(J.)24 b(Postel)g(and)f(J.)h(Re)o -(ynolds,)g(\223T)-6 b(elnet)23 b(Option)g(Speci\002-)187 --5 y(cations,)-6 b(\224)30 b(RFC)g(855,)g(Netw)o(ork)d(Information)f -(Center)m(,)187 95 y(SRI)21 b(International,)c(Menlo)j(P)o(ark,)f(CA,)i -(May)f(1983.)-150 261 y([PR85])96 b(J.)25 b(Postel)g(and)f(J.)h(Re)o -(ynolds,)f(\223File)h(T)m(ransfer)f(Protocol)187 360 -y(\(FTP\),)-6 b(\224)35 b(RFC)j(959,)h(Netw)o(ork)c(Information)e -(Center)m(,)187 460 y(SRI)21 b(International,)c(Menlo)j(P)o(ark,)f(CA,) -i(Oct.)f(1985.)-150 626 y([PN98])91 b(T)-6 b(.)52 b(Ptacek)g(and)g(T)-6 -b(.)53 b(Ne)n(wsham,)59 b(\223Insertion,)g(Ev)n(a-)187 -726 y(sion,)68 b(and)59 b(Denial)g(of)g(Service:)103 -b(Eluding)57 b(Net-)187 825 y(w)o(ork)i(Intrusion)f(Detection,)-6 -b(\224)69 b(Secure)59 b(Netw)o(orks,)187 925 y(Inc.,)45 -b(http://www)-5 b(.aciri.or)o(g/v)o(ern/Ptacek-)o(Ne)n(wsham)o(-)187 -1025 y(Ev)n(asion-98.ps,)17 b(Jan.)j(1998.)-150 1191 -y([PZCMO96])40 b(N.)22 b(Puk)o(etza,)f(K.)h(Zhang,)e(M.)i(Chung,)f(B.)h -(Mukher)n(-)187 1290 y(jee)34 b(and)f(R.)h(Olsson,)j(\223)-7 -b(A)34 b(Methodology)d(for)i(T)-6 b(esting)187 1390 y(Intrusion)23 -b(Detection)i(Systems,)-6 b(\224)27 b Fr(IEEE)e(T)-5 -b(r)o(ansactions)187 1490 y(on)40 b(Softwar)m(e)g(Engineering)p -Fs(,)j(22\(10\),)g(pp.)d(719-729,)187 1589 y(Oct.)20 -b(1996.)-150 1755 y([RLSSL)-6 b(W97])40 b(M.)25 b(Ranum,)g(K.)g -(Land\002eld,)g(M.)f(Stolarchuk,)g(M.)187 1855 y(Sienkie)n(wicz,)41 -b(A.)d(Lambeth)e(and)i(E.)g(W)-7 b(all,)43 b(\223Imple-)187 -1954 y(menting)29 b(a)i(generalized)e(tool)h(for)g(netw)o(ork)f -(monitor)n(-)187 2054 y(ing,)-6 b(\224)24 b Fr(Pr)l(oc.)g(LISA)f('97)p -Fs(,)h(USENIX)g(11th)f(Systems)h(Ad-)187 2154 y(ministration)19 -b(Conference,)f(San)i(Die)o(go,)f(Oct.)i(1997.)-150 2320 -y([Re96])105 b(Y)-11 b(.)19 b(Rekhter)m(,)f(B.)i(Mosk)o(o)n(witz,)e(D.) -h(Karrenber)o(g,)d(G.)j(J.)h(de)187 2419 y(Groot,)30 -b(and)f(E.)h(Lear)m(,)h(\223)-7 b(Address)29 b(Allocation)g(for)f(Pri-) -187 2519 y(v)n(ate)20 b(Internets,)-6 b(\224)19 b(RFC)i(1918,)e(Feb)m -(.)h(1996.)-150 2685 y([Sr95a])86 b(R.)21 b(Srini)n(v)n(asan,)f -(\223RPC:)i(Remote)e(Procedure)f(Call)j(Pro-)187 2785 -y(tocol)30 b(Speci\002cation)g(V)-9 b(ersion)30 b(2,)-6 -b(\224)34 b(RFC)e(1831,)g(DDN)187 2884 y(Netw)o(ork)19 -b(Information)e(Center)m(,)j(Aug.)f(1995.)-150 3050 y([Sr95b])81 -b(R.)30 b(Srini)n(v)n(asan,)g(\223XDR:)g(External)e(Data)h(Representa-) -187 3150 y(tion)g(Standard,)-6 b(\224)30 b(RFC)g(1832,)g(DDN)g(Netw)o -(ork)e(Infor)n(-)187 3250 y(mation)19 b(Center)m(,)g(Aug.)h(1995.)-150 -3416 y([S-J93])91 b(M.)18 b(St.)h(Johns,)f(\223Identi\002cation)e -(Protocol,)-6 b(\224)18 b(RFC)h(1413,)187 3515 y(Netw)o(ork)38 -b(Information)f(Center)m(,)44 b(SRI)c(International,)187 -3615 y(Menlo)19 b(P)o(ark,)h(CA,)g(Feb)m(.)g(1993.)-150 -3781 y([T)-7 b(o99])111 b(T)-7 b(ouch)65 b(T)-6 b(echnologies,)75 -b(Inc.,)i Fr(INT)o(OUCH)67 b(INSA)p Fs(,)187 3881 y(http://www)-5 -b(.ttisms.com/tti/nsa)p 1176 3881 25 4 v 27 w(www)g(.html,)19 -b(1999.)-150 4047 y([WFP96])41 b(G.)30 b(White,)i(E.)e(Fisch)h(and)e -(U.)h(Pooch,)i(\223Cooperating)187 4146 y(Security)e(Managers:)47 -b(A)32 b(Peer)n(-Based)g(Intrusion)e(De-)187 4246 y(tection)22 -b(System,)-6 b(\224)23 b Fr(IEEE)f(Network)p Fs(,)i(10\(1\),)e(pp.)g -(20-23,)187 4346 y(Jan./Feb)m(.)d(1994.)-150 4512 y([Zi91])123 -b(D.)41 b(Zimmerman,)k(\223The)c(Finger)g(User)h(Information)187 -4611 y(Protocol,)-6 b(\224)27 b(RFC)h(1288,)f(Netw)o(ork)f(Information) -e(Cen-)187 4711 y(ter)m(,)16 b(SRI)g(International,)e(Menlo)h(P)o(ark,) -g(CA,)h(Dec.)k(1991.)1908 5649 y(22)p eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/doc/quick-start/Bro-installation.texi b/doc/quick-start/Bro-installation.texi deleted file mode 100644 index fcaddfe0f0..0000000000 --- a/doc/quick-start/Bro-installation.texi +++ /dev/null @@ -1,229 +0,0 @@ - -@menu -* Download :: -* Install :: -* Configuration :: -* Encrypted Reports :: -@end menu - -@node Download -@section Download -@cindex download - -Download Bro from: @uref{http://www.bro-ids.org/} - -You can unpack the distribution anywhere except into the directory -you plan to install into. To untar the file, type: - -@example -tar xvzf bro-0.9a6.6.tar.gz -@end example - -@node Install -@section Install - -You'll need to collect the following information before beginning the installation. - -@itemize -@item localnets: a list of local subnets for your network. Bro needs to know which networks are "internal" and which are "external". - -@item interface names: the names of the capture interfaces in your host (e.g. sk0 or en1). Use @code{ifconfig -a} to get the list of all network interfaces on your Bro host. -@end itemize - -If you want to use Bro's periodic email report feature, you'll also need: -@itemize -@item email list: a list of email addresses to send the reports to. - -@item pgp keys: if you want to encrypt all email reports, the location of the -@uref{http://www.gnupg.org/,GPG keyring} of all recipients. -@end itemize - -Bro is very easy to install. Just log in as @code{root}, and type: -@example -./configure -@end example -or to install Bro in a location other than @file{/usr/local/bro}, use: -@example -./configure --prefix=/path/to/bro -@end example -and then type: -@example -make -make install -@end example - -To update an existing Bro installation with new binaries and standard policy file, instead -of @code{'make install'} do a @code{'make update'}. This will preserve all your local customizations. - -@node Configuration -@section Configuration -@cindex bro_config -@cindex bro.cfg - -The @emph{Bro-Lite} configuration script can be used to automatically configure Bro for you. It -checks your system's BPF settings, creates a 'bro' user account, installs -a script to start bro at boot time, and installs a number of @code{cron} jobs -to checkpoint bro every night, run perioidic reports, and manage log files. - -To run this configuration script type: -@example -make install-brolite -@end example - - -This will run the script @code{bro_config}, which creates the file @file{$BROHOME/etc/bro.cfg}. -@code{bro_config} will ask a number of simple questions. - -Sample output of @code{bro_config}, along with explanation, is shown below: - -@quotation - -@verbatim -Running Bro Configuration Utility -Checking interfaces .... Done. -Reading /usr/local/bro/etc/bro.cfg.example for defaults. -@end verbatim -@quotation -@quotation -The @code{bro_config} script looks first at ./bro.cfg, then /usr/local/bro/etc, -for default values to use below. -@end quotation -@end quotation - -@verbatim -Bro Log archive location [/usr/local/bro/archive] -@end verbatim -@quotation -@quotation -This is the directory where log file archives are kept. -If you expect the log files to be very large, it is recommended to put these in a separate disk partition. -@end quotation -@end quotation - -@verbatim -User id to install and run Bro under [bro] -@end verbatim -@quotation -@quotation -@code{bro_config} will create a new user account with this username if the user does not exist. -@end quotation -@end quotation - -@verbatim -Interface names to listen on. [en1,en2] -@end verbatim -@quotation -@quotation -@code{bro_config} looks for all network interfaces and does a short test to determine which interfaces see the most traffic, and selects these interfaces as the default. -@end quotation -@end quotation - -@verbatim -Site name for reports (i.e. LBNL, FOO.COM, BAZ.ORG) [] -Starting Report Time [0600] -Report interval (in hours) [24] -Email addresses for internal reports [bro@localhost] -Do you want to send external reports to a incident - reporting org (e.g.: CERT, CIAC, etc) (Y/N) -Y -Email addresses for external reports [] -@end verbatim - -@quotation -@quotation -Daily reports will be created. -Enter the site name you want to appear at the top and in the subject of all email reports. -The 'start time' and 'interval' define the window of -network activity that the daily report will cover, starting at 'Starting Report Time' and -lasting through 'Report interval'. The start time should be entered using 24hr clock notation. -For example: 12:30am = 0030, 2pm = 1400 - -Two types of reports will be generated, -"internal" and "external". Internal reports contain the same basic information as -the external reports, along with traffic statistics and more detailed information on -incidents. Both internal and external reports will be sent to the "internal" email address list. -External reports are only sent if you answer "Y" and enter an external email address. -(Note: currently only internal reports are generated) -@end quotation -@end quotation - - -@verbatim -Do you want to encrypt the email reports (Y/N) [N] -Y -@end verbatim -@quotation -@quotation -If you want the email reports encrypted, you will need to set up GPG (@uref{http://www.gnupg.org}) -and create a GPG keyring containing the public keys of all email recipients. Instructions -for this are in @ref{Encrypted Reports}. - -@end quotation -@end quotation - -@verbatim -Running script to determine your local subnets ... -Your Local subnets [198.129.224.1/32] -@end verbatim -@quotation -@quotation -Bro needs to know a list of your local subnets. @code{bro_config} runs a tool -that attempts to discover this automatically. -You should always verify the results of this tool. The format is a list of subnet/significant -bits of address. -For example: 131.243.0.0/16, 198.128.0.0/18, 198.129.224.1/32 -@end quotation -This information will be stored in the file @code{$BROHOME/site/local.site.bro} -@end quotation - -@verbatim -Saving settings to file: /usr/local/bro/etc/bro.cfg -Bro configuration finished. -To change these values, you can rerun bro_config at any time. -@end verbatim -@quotation -@quotation -Indicates that the script finished successfully. -@end quotation -@end quotation - -@end quotation - -For site monitoring very high traffic rates on Gigabit ethernet, there is some -additional system tuning that should be done. See the @uref{http://www.bro-ids.org/, Bro User Guide} for more details. - - -To reconfigure Bro, just type: -@example -bro_config -@end example - -This will update your @file{/usr/local/bro/etc/bro.cfg} file. You can also edit this file using your favorite editor if you prefer. - -For other site customizations, you can edit the file $BROHOME/site/local.site.bro. -For example, to tell bro to not look at traffic for host 198.162.44.66, add: -@verbatim - redef restrict_filters += { ["ignore host 198.162.44.66 "] = "not (host 198.162.44.66)" }; -@end verbatim - -Or to disable alarms for "WeirdActivity", you can add this: -@verbatim - redef notice_action_filters += { [[WeirdActivity]] = ignore_notice, }; -@end verbatim - -Any changes you make in $BROHOME/site will not be touched during an upgrade -or reinstall of Bro. You should avoid editing files in $BROHOME/policy, -as these will be overwritten. - -More details are available in the Bro user guide. - -@node Encrypted Reports -@section Encrypted Reports -@cindex GPG - -Bro can use GPG (@uref{http://www.gnupg.org/}) to encrypt -the reports that it sends. To have Bro encrypt your -reports you must have said 'yes' to the bro_config question to -encrypt your reports. For information on configuring -GPG for Bro reports, see the @uref{http://www.bro-ids.org/, Bro User Manual}. - diff --git a/doc/quick-start/Bro-overview.texi b/doc/quick-start/Bro-overview.texi deleted file mode 100644 index de02ec482c..0000000000 --- a/doc/quick-start/Bro-overview.texi +++ /dev/null @@ -1,143 +0,0 @@ - -@menu -* What is Bro? :: -* Bro features and benefits :: -* Getting more Information :: -@end menu - -@node What is Bro? -@section What is Bro? -@cindex Network Intrusion Detection System - -Bro is a Unix-based Network Intrusion Detection System (IDS). Bro monitors network traffic and detects intrusion attempts based on the traffic -characteristics and content. Bro detects intrusions by comparing network traffic against rules describing events that are deemed troublesome. These rules -might describe activities (e.g., certain hosts connecting to certain services), what activities are worth alerting (e.g., attempts to a given number of different hosts constitutes -a "scan"), or signatures describing known attacks or access to known vulnerabilities. If Bro detects something of interest, it can be instructed to either issue a log entry or initiate the execution of an operating system command. - -Bro targets high-speed (Gbit/second), high-volume intrusion detection. By judiciously leveraging packet filtering techniques, -Bro is able to achieve the performance necessary to do so while running on commercially -available PC hardware, and thus can serve as a cost effective means of monitoring a site's Internet connection. - - -@node Bro features and benefits -@section Bro features and benefits - -@itemize -@item @strong{Network Based} -@quotation -Bro is a network-based IDS. It collects, filters, and analyzes traffic that passes through a specific -network location. A single Bro monitor, strategically placed at a key network junction, can be -used to monitor all incoming and outgoing traffic for the entire site. Bro does not use or -require installation of client software on each individual, networked computer. -@end quotation - -@item @strong{Custom Scripting Language} -@quotation -Bro policy scripts are programs written in the Bro language. They contain the "rules" that -describe what sorts of activities are deemed troublesome. They analyze the network activity and -initiate actions based on the analysis. Although the Bro language takes some time and effort to -learn, once mastered, the Bro user can write or modify Bro policies to detect and alert on virtually -any type of network activity. -@end quotation - -@item @strong{Pre-written Policy Scripts} -@quotation -Bro comes with a rich set of policy scripts designed to detect the most common Internet attacks -while limiting the number of false positives, i.e., alerts that confuse uninteresting activity with the -important attack activity. These supplied policy scripts will run "out of the box" and do not -require knowledge of the Bro language or policy script mechanics. -@end quotation - -@item @strong{Powerful Signature Matching Facility} -@quotation -Bro policies incorporate a signature matching facility that looks for specific traffic content. For -Bro, these signatures are expressed as regular expressions, rather than fixed strings. Bro adds a -great deal of power to its signature-matching capability because of its rich language. This allows -Bro to not only examine the network content, but to understand the context of the signature, -greatly reducing the number of false positives. Bro comes with a set of high value signatures -policies, selected for their high detection and low false positive characteristics. -@end quotation - -@item @strong{Network Traffic Analysis} -@quotation -Bro not only looks for signatures, but can also analyze network protocols, connections, -transactions, data amounts, and many other network characteristics. It has powerful facilities for -storing information about past activity and incorporating it into analyses of new activity. -@end quotation - -@item @strong{Detection Followed by Action} -@quotation -Bro policy scripts can generate output files recording the activity seen on the network (including -normal, non-attack activity). They can also send alarms to event logs, including the -operating system syslog facility. In addition, scripts can execute programs, which can, in turn, -send e-mail messages, page the on-call staff, automatically terminate existing connections, or, with -appropriate additional software, insert access control blocks into a router's access control list. -With Bro's ability to execute programs at the operating system level, the actions that Bro can -initiate are only limited by the computer and network capabilities that support Bro. -@end quotation - -@item @strong{@uref{http://www.snort.org/,Snort} Compatibility Support} -@cindex Snort -@quotation -The Bro distribution includes a tool, snort2bro, which converts Snort signatures into Bro -signatures. Along with translating the format of the signatures, snort2bro also incorporates a large -number of enhancements to the standard set of Snort signatures to take advantage of Bro's -additional contextual power and reduce false positives. -@end quotation - - -@end itemize - -@node Getting more Information -@section Getting more Information - -@itemize -@item @strong{Reference manual} -@quotation -An extensive @uref{http://www.bro-ids.org/manuals.html,reference manual} is provided detailing the Bro Policy Language -@end quotation - -@item @strong{FAQ} -@cindex FAQ -@quotation -Several Frequently Asked Questions are outlined in the @uref{http://www.bro-ids.org/FAQ.html,Bro FAQ}. -Do you have a question that's not -in the FAQ, send it to us and we'll add it. -@end quotation - -@item @strong{E-mail list} -@cindex Email list -@quotation -Send questions on any Bro subject to Bro@@bro-ids.org -The list is frequented by all of the Bro developers, including the primary author of Bro, Dr. Vern -Paxson. - -You can subscribe by going to the website: -@* @uref{http://mailman.icsi.berkeley.edu/mailman/listinfo/bro}, -@* -or by placing the following command in either the subject or the body of a message addressed to -Bro-request@@ICSI.Berkeley.EDU. - -@example -subscribe [password] [digest-option] [address=

    ] -@end example - -A password must be given to -unsubscribe or change your options. Once subscribed to the -list, you'll be reminded of your password periodically. -The 'digest-option' may be either: 'nodigest' or 'digest' (no -quotes!) If you wish to subscribe an address other than the -address you use to send this request from, you may specify -"address=" (no brackets around the email -address, no quotes!) - -@end quotation - -@item @strong{Website} -@quotation -The official Bro website is located at: -@uref{http://www.bro-ids.org}. -It contains all of the above documentation and more. -@end quotation - -@end itemize diff --git a/doc/quick-start/Bro-quick-start.pdf b/doc/quick-start/Bro-quick-start.pdf deleted file mode 100644 index 75f0a484c52950a24d9dc3ae2348e189545016bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159017 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
    L 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 this percent full, send -email -@item @command{diskspace_watcher}: list of email addresses to send mail -to -@end itemize -@end itemize - -@itemize -@item @command{bro_log_compress.sh}: -@itemize -@item @command{Days2deletion}: remove files more than this many days old -(default = 60) -@item @command{Days2compression}: compress files more than this many days -old (default = 30) -@end itemize -@end itemize - - - -@node Sending (E-mail) Bro Reports -@section Sending (E-mail) Bro Reports -@cindex e-mail reports -@cindex internal report -@cindex external report - -A daily 'internal' report is created that covers three sets of -information: - -@itemize -@item Incident information -@item Operational status of Bro -@item General network traffic information -@end itemize - -If the local organization is asked to report incidents to another -incident analysis organization (i.e. CERT, CIAC, FedCIRC, etc.) an -auxiliary 'external' report can be created that only contains the -incident information. These reports are stored in $BRODIR/reports. - -The two reports will be mailed to the e-mail addresses specified during -Bro installation. These e-mail addresses can be changed by re-running -the bro_config script or by editing $BROHOME/etc/bro.cfg directly. Each -report has it's own set of e-mail addresses. If it is desired to send -the auxiliary report directly to the external incident analysis -organization without inspection, enter their e-mail address directly. -Otherwise, have the external e-mail sent to someone who can inspect and -forward it appropriately. - -@node Reading a Bro Report -@section Reading a Bro Report -@cindex incident -@cindex incident type -@cindex report period -@cindex alarm -@cindex connection, successful -@cindex connection, unsuccessful -@cindex connection, history -@cindex scans -@cindex system statistics -@cindex traffic statistics - -The report is divided into three parts, the summary, incidents, and -scans. The summary includes a rollup of incident information, Bro -operational statistics, and network information. The incidents section -has details for each Bro alarm. The scans section gives details about -scans that Bro detected. - -@subsection Parts of a Report - -@subsubheading Summary -@quotation -@strong{Report Period:} The beginning and ending date/times that define -the window of network data used to produce the report. -@*@* -@strong{Incident Count:} The number of each type of incident that are -detailed in the report period -@*@* -@strong{System Statistics:} Operating system statistics that give some -idea of the 'health' of Bro's operation. -@*@* -@strong{Traffic Statistics:} Statistics gathered by Bro that may or may -not have significant value in evaluating intrusions, but are useful in -understanding the network environment. -@end quotation - -@subsubheading Incidents -@quotation -@strong{Incident:} Each incident generated by the Bro installation is -assigned a unique identification number. This number is unique for all -incidents, not just to the daily report. -@*@* -@strong{Incident Type:} Bro can detect attacks, but cannot make a -definitive judgment if an attack is successful without further -investigation and/or knowledge of the unique network environment. Bro -uses an expert knowledge algorithm to make a determination if an incident -is 'Likely Successful', 'Unknown' (not enough information to make a -guess), or 'Likely Unsuccessful'. -@*@* -@strong{Local Host:} The local computer involved in the incident; usually -the victim. -@*@* -@strong{Remote Host:} The remote computer involved in the incident; -usually the attacker. -@*@* -@strong{Alarm(s}:) The network event(s) that Bro detected and identified -as probable attacks. -@*@* -@strong{Successful Connections:} Connections where one host initiates a -network request and the other host participates in the subsequent -requested transactions. -@*@* -@strong{Unsuccessful Connections:} Connections where one host initiates a -network request and the other host refuses the request. -@*@* -@strong{Unknown Connections:} Connections where one host initiated a -network request, but it is unclear if the other host participated in a -successful transaction. -@*@* -@strong{Connections History:} A summary tabulation of successful and -unsuccessful connections made in specific time periods. The tabulations -are accumulative. That is, the connections counted under 3 days will -also be counted in each subsequent column. -@end quotation - -@subsubheading Scans -Scans are repetitive (similar) probes, searching several victim hosts for -vulnerabilities. The scan section gives the attack host instigating the -scan, the date/time of the scan, and the ports that were probed. - -@subsection Example Report: - -@example -@verbatim -Bro Report Organization Name -========================================================================= -Summary July 28, 2004 17:01 to July 29, 2004 17:00 -========================================================================= - Incident Likely Successful 1 - Summary Unknown 0 - Likely Unsuccessful 0 - Scans 10 - - System Bro disk space: <% at time of report generation> - Statistics Bro Process cpu:

    0%~_5QHq6XH}mPRIy%A#vNhv&#k*{qMgm#5B_AzFG8@&`@Ak((AXoJSu1v!;9m*Qw5Cs-U;SkiR24#| zg-__RX!kL^o>n1w9EmEVrQ}Uf&M;Iae15rX%lj9*<}z}~TsDOuL2{L|ngec;%-S`y zVTrYe8cK>3meYki%={?{j^h!|9u;g~>lU-0_5ff)nA8Qz^N;RdqNeA>7H(z? zCvi7&6dO#cE6`-iSX{~~h}$^^peJUR8N5xWnjKqRE01w<;3~?NQYz_NO7FLjRwt9Z z4+v}g`g$hVToT?&bf=TpUH%j63$0G5ve#1ya%a}3OoyvgxN zG75M+D*<2T4~kert+*#T8e*Yy1U=5W;SxEA!!jW4_W+Z)(8f?|ZA(cRA&hOsG0>^S zBr-R;cSGU6D4%E^Cpw7(Y-GH_<;0>#GbJqvP&V3pyxw2;c1k94yq|_b9%@NhNoC7f zyH+;{y!fw=k~p}G=iF-WA9P@#GOJa5qVaXw1bk(c+d14fTwk_ARpEr(Wn3n{zR-hKKIuRMn2|Gsy# zN!~WcQlsJa(R&@gqK+gZL@9d~OVc|UA0#f%J{Ki|Enhsjfn{E}ZZ2}*3M|~wYu&V6 zD&3Y?FFJAGdV|#N=z~I^h^1neS)X@(?$GgCVPiK=N^Q|1DFkim!F1gr77LptUwTc* z>9q5Slq!>XG}qw`gafewm;Z!1Y$t0= zKY@VloUWix4W{>ljA;cca0x*eK6(?EmYL3F` z5xqJZe$2X`FS9GNFztajUU!Z;+?p(({$eDrOzLlqJ?$E_!5G8ea|XFpArdLYL1vUqh{2Cg#8x(V*ZKx zR$=O=uVaU(lAUG>=~SScQ-B9y!J;d=5SY<%8Os*#2=J?^+{PpMD)=??_v(r78BN^5 z(o~7)EW>BpL-8ab*8bEW9(2ro+J(2Ks34b8@Cab8_)cPZg)kQRI>10|(_n|{h=y&O z5WtC%C1Yas#=VOANuuXquCW<|WL8hz zVLY>|ONi)sNve>U{kIfcHbw0=y99pSMpI7Ze>fBB+W=EOf1SFSVK|lW;NTNLtZ~tC z@>#TGI{bW5ui{5o0Y^8I{PuY(;E0fM~k1J=9@wn;_ zta1Z%^)=jzc1ReJ0_MH1XWf~=)nO1NBl6hK3pBI)5jo0VuMzQNlHpO*Y$Rt_4pq@Z zGd_p`3!uy~DDq95$Rj`PE=6Ov)3g?h`ur`e`>o*8CNEc6N#Nv{!aBJ~r&dgJcX&S5 zig*16N;$A5` z3QV))R+B88RFU*Ra+|3n&(WLJs{>X(-~uDdDKF!YwO z92NRl*No*F!=D2~%PEqi3ci=?deRf%6jxkZAS15+TW=Rg-Wvapv~v!xY~8YcY z726ftww;P?+qP}nPAaylV%yG_dv4$EbM8HT`*eT*?mRQ=-D~Y9nZG^89Mh*ZHa6m& z?SlKGkVZAbgCfFY5}SBG^%{^~_n`aOpv+o_!s}hnUmy<|ljVwbfTWSxi_|8Y* zzGrLJIk5A@O|CjOi;ECbnM~S<-`cWkYG0H5wAqtm>Cu6nl%~1~g={4-3j1#2oVnY( zhEGBlC$ozFCHXYSs)K(2bu)ZjchA3k`@q)tp#6gHgu)R#yS8}f|c)8pf zD}sePSmR&bFLrDM8lG+AuZsOD#;KyUrMxGP{NM1eCD$y}yVwT$y@sm zXWlO4E=O3TCHq*s?>{|1>Je24CBiEZR9GL#;@2&`qITR8^bMe+g%&=z&Gi!a&9<}Z`6v9Z#xuBmL@!{nc188V*0|PReR#6_$Lei_ z6Lx0RRe|DxqsuVf1b4A4Ya+80Vxh#@_;6J3{ zomBcIHt7igQH3WI3uuCAlxKO0MB~+$qmxCyT`7~Xwjdf=%~rRkai!pW`&!2)M~p+! zR5v16W}nz?6T6IS7fY!DvLbU=6DdU@RVJv{IbY@3QW?yJ>e#n>B^x^$rido* z4te1;Q@TltGC97$eWJ%_kJlM>?0(PP(zxj^o}C5}#h zy<6OrRBn_#44@e{SIi``0j^SYU){gMtj%Z)kp#kN9a5#gw=b_s7xAYfjSPDb- z7YWhlfv*!94Y=_7$dgSEilnbMxxy3ro*;U0r}&e3%ZKku24x|_NP z@}Ua#ilebO3Zuo-x{c7YB=&_WIDRG+`J9_&86kl9Ttn$?Bs0F&K7H7B(3|a7uHB zC(@F2MERaT;9;|K#I7SwF|PG{!;3CXy4E={0B}VS_3TjX7Dx{v)NDYs$?@Tt4$NotxITA<)>t@1`V2~P>ESo1FrvJ#!X zT0m;V0R%khz^lS9@MT=G7~-@+)?X&l31PtH(>b8k+0BR2L60ESxKdq9;7gd0nL%<9 z>YLi4W%6wkLt+As34lX&08pev^Fa+ceeHfbM1OE$|LOtu!nYaaV~V^x5shfXs}w4!T&Uwk@ax_H^^<_i7CLS2A9$K%^e^l~hEy!FnaRWCKbTf{N`lPu#i>#Iu-r?Bw5 z7t}>tOelR>-^s2x`3Iry?c0MMnR5rAJP1-7Jpqo|&rG3rQmgmCTezI8m5!E(je5m4 z$*#e3z6QGiP2&f~+U7d_A5CWA?+|-#8&2s6k_PZ9!plYTGfMrn`SG(mb5KuK2c7`# z2$ZHY{6rTJlZAm!-^F}#e+1o3gvi>#zzbNq7SczM)=O>Pf9*S%u=Rc{J8b0@VP_Dz zwI9qwB4x5{Z1J(B(_x2=qhQ_gWlXG&_c#hbv)LVlUErbf)e!`g?-lDpNu}}u3UN&f z4H~t?UB%JH3u*MY62D5!K(Cok9_nY1sMib+w@@`V^i$c^Gt2BE#-))zP^>vdjBdSA zzBJK02NkR=5n*&mdN09MU%`YCBx%(a?7(6|O5+FCCs@`Wm+Oh(UItVRzI_Sx1VuTO z9D))KRdYnZI|0YT6iKA`OqA0M2@l71L1uuYmaDdX`g%dLS*rq4g~bNEw#%ys2U`r$ zUCZ73Rjw42nbzECZ=>ot5##QGUYu0Yr4x!6|Ek8W!k(azJeX+-u>iz-7_6#CipAj0 z+Dre-$_^$S)nHYXAH;y718lGtJ)-WxKn{$D9`d+_pDVmM^6rx9{MUy^&Jr1=U>wW4 zN%&}TO{+^?j^J`FC*WVaA3z-3QtHop#=-u!H1Q>Z0kU%0_@ugJ{*Nmb7b09u+Dl6H zUbsYfw6=B)-ZA46w;!^+WW%?PcV26_&R8@H-_@7f0#c%EeKbSX(UnYnN?7Z!vdBCO zVvje=Z*fK|@t$H+MXpfv?f{m(-dHSYEN{S5fFFbK7MXOIG|E|(80R0Rcz*5tK)`Q3 z&RPx`GKoi+zN>-Zs4r#zDZffWBwrPW!?EW-6ETeP)a=@b_^Cx@-bb> z6E_hPhtc69>CDBYge!#f7Ni(LOb5>;%HNTcp3tc_`Lpji5F!_$(M;}Hvjz+N=)t<% z;}+|16||K>;8HrYuAOr5B584sN>?vO1ut4(<&FQViA$rXz3RiPD2k?VCr&7b0qw3* z=D2-F*)0k{+|O0+EPo<|D6|y{J5{MK zDYZbhyUvE%H_B-VbQMH4=~P?jyimwnG`63{$M>O3NTKhbjOTq5A)Q^1KrJ3@CQ~wf z9uR#ZZ@AE)B;5Arc;jz?6gv%mJkU%XlPs&}%!eF)26qqpF$W|upd(-6l256Bi-E8C zD0P&lKW?ec*8g0|ju_8ivhQ2QuA(SMnAi$K`nCPDHG0?VZ1hu5g;APobPS?=8yQS{ zFVICp0n74>Ao!dBo=VxeJ|NRiWUr9{(hM(Y;mhAo?2VzMM3fh@1dHos0q$`g_odeC zk|pr?=Bw9m$VU6)f<*FVQ95A>yu{ z7&#AIngRjJ5h+p%G^tI9i2-zNZP#F$I4~HY=`72Z8@-POJX1z#=LGk5nQK1s!=^rW zx$+v1GR+C2-BT(YO$UVmpL!mNqHtZ$v7xv@N}SSm3jj2=K|#G~wOTZ{0~l$SlA+No znF$BSM+#v0ur(QodzN}Q;TEcPr(!~3T4x|+Ah^XCM&W9Z=pyuBfV`?W#q=ck+<;)D z%frySp+KTQtm1a_iwwzg?_{yOD*Ls@b=^8&=L@gS3era(S_lBgdsq~(X2f`L@^Xa1 z3S@iM*ha1R4y$HAYBQ1f@VR~L7nQ>&G74mu(Zl#>Pfu@Gc_5ir*Vk(<3b$%g{VM6^Jz70m}%8QJwqCCRS$ZxqKrrs?t8!TbPd-7-92*5=9 zMQR%dP2>&9$xMn&n{f;?{)Ks{ty=JX)p&5pQ*Vej`xQRYFOcj{u#x@ub5{QiHvR@J z|D;rYDsi9c(qG6N`4?K@&~>!!HDq9UP6Y-BBeD_{Rav+b@%kkCEF-Q+bD z-mbaVpo5AZ5?=N%bm_ZJZ&RmdO&ruNEQ{eJQ_q9);;Ad2Ss(J0FRg*G<`1tcuyEfS z%$KUJs3N@7LkR!ATh%uurmO~Y$?mFp?U(kO8eXlPX-6FmFO2Ww6Dg+{B+FX>gDXBMY;|zpq}qL5TYmLeCd-Q%7tnb@d-JEJ7m|x7Vd+^XX);vVJHuXxc@|8Z$2vfX zE6*AZ1DDJhf3CNpdbsgHpF8!7Nj?%;M{MkOq%5t^!u1MPiMsQdnCWD8I(IH9&eVu0 zueDN`yO%!h`ZlLJ_e)CtNtiKTQ1*kT5O1QQrcZ*d7{`n~zG&Y5Z2h|h6MG_Tc^84b zWAsGd+J>U7OA0|_F@uS+#tnG5=-GsB{j~OdDPSY9F-jOJrTAIfgcjqwLwcHwnX*mI z!HQnsS2YSyY~=(SRW*-Jdc3udOm>Tj>%Qw&_Hizgw0>r7gGsmVldGxqlej%enJd0> ztyL0D!TYZ-^HGh>2H496*67JqWIQ*8m?n#-=cFIqfZ8TL>26#;(%r)#@Nc7FwpEC-o7@A_Xfdo*QCL%5D4Ss%>awSL;AmF%MRr>Dc405=YVBogNy{5r4 zcexbX7ghEOyp!nu#*TwO9t@Q&9)ZtC;+k`}wp-x3Tn-i7wlgRy6OvuuNPNz4d$Iz7 z>VvGfUN#DBGgtUm<8dTusT)K2^KrskAXSG9*PvQK)*oBW{GlwCZs-pv9nKb`q%TjU z%xRe#(d584imDMNW71c5i_?eq)-GaP1BA(?LckphwKd zVeid?@(#)9nWj;1X%!^7%!DwxS@sb)w92%ovPDSbd+XKuksQKB!x;|UZqFAd$3wiUdpu;{s3at0bHjK1qD(B(b$emg{_GU5dV0n z07CAu@Ddlqz1R8(r^3(oy(`+|?2VYVmPSo-b$XKZPboEBU&i@uV2{{Q=#NNL0uqcTFoM`FHVqYE_FFQ<4 z8z5Q-Ih}2}llrU?7d*tWIz(y+W$6)nJu6b}dHvuJf95b(it_Z{1v^*}^$SLn8lFQ> zT%#ewk{j-UfgC}$mLRpfF5Rtjpw%|kGQM>1P_6TYawi_ZTals}H8FedaPZF7^isbK zI3*}fhotnDbmaa@`%q%1(^NP=VmXpeCVUGWyax25U&M`r4b^-q5rW?JULC1sciINP zG>=9=yIWbvgP+Czh?hbw+&Nl}d0(-f`LYt0I#~=90RWEvZDaf0bAVLTVkUqkYoTWx z_NiYSL1m3jxsjLlA)u39H_1&$^`f&%Q3kOas((z3sJ*9h*-lSa!0b}Ov1~RO*colU z-5cT*-C=y$0R>)Ik-3B5z8kB^E~)_Ev@eZJJJNu;v!)0np6e?q|2$dLvI}1V19A6T zY05Xh;hIt6=M5Ql$f4Ro(Bel<*B@ghwqeP|MDXV;>@-ZzUn&EMwR%&a1n6v{eV$HN z0|bZzUN#!O34gty;Kg|}l&WB#i(-i>%WbEW_FP+)IrxD^C5`Rlc1o2-?AUS6Hk7zT zHWKE-6uQ5d*pO3CcDU-Ya^8El|M6|LTFZnB8)m)TeYk@PbYl|^t!EAEGl{Sw{e9PX za1aI%V^(U(K!qRO21Vn$=7ka z1Nw|wsUK8j6g0u85DhSRRt+BgGabC}jn8G%9F3P)EDy*ueh{V9%LBY@zef+%P_G0Y z^11_n6w(%us4B4HHX2@2myi6|(MyqG5!1J?iO|fK2kea)6#xU=rw0d3 zcDJAfyi22TQ*rii)T@Nipqi+G5o+JYmSs?{#asL6v~-Xx_XX4b-b zGN((@C=j+(_q?1Yx@>>K!N0f#(liv_umT4;pJ3ob;rb&lot;78$Jt*kcRsOytymE-)eVI7c!-rDHB|x zn-6GV)h!}N$mQd3$6d$sN2^+(%N2O0+y}^YHhPuj7lROR-HaPHHX4Y|6E_$)BE9`C z(k?uiR%EFI2~Vptm1FfO5z~34OYS~}=K7?&s`Fm~2K>wWLn&0Fz`kf-#y2T?Nq$ZT zN|t_K3a&B}c}T)Lo68qlq7O1djbDvn%8ggYFH^aM+T*!Lg!ggMVju1;PAJUdoZr-KJ9~*9KUf=!nPjlb_bp~hxq(?AD12~~RmrZRWoR7*yG=6J+sJSobiv*Trg|8t50yc0Ky6dMKTDft z|C`h5A9}=p*LwelI`jKcH}>C*e*c%&`%_r?-6j9tdH+Xff~uN2{%3>zXCV-us>|

    |27bXk!tU(5aYGBvP6WOP^~c=LhTJ34;J71aNTU4xTfK zLY2V0_4n!$6B!)GRu_!Dlb*JwO!|IR`s#C&x;i@EPc^Go2qv}t2whmX3m9FvH@M!h za^*r7)5)wBn$4;%ObGRK?fTSNc(FIdTH8Ou@tj^8xGbOcVY%Myvd|&9c{a7+1^ALA zl$Hfe9p7ITWK689w&5JJyw6}n>uey{IRog0)XBFF5v)(3(0=xINfOlU@;;XDN`)2- zd9${}w^H+|^B3`(P(yL_LWVrtSV0rW8{Fs{HAqJyv!9UK7{n0n{TV6fASR--wTfXH0^F{)>_etgAv3`1O55kI={)fC@( z@DZd{il;Y6%1__kBz`}wdf3iCAv^y%29@D(sEl}4#>IQ;!Be#u2pM4%(F;Wk_W}dvTIP55$B{08F@39~-<80HT!NjG7 zw%_h@C&?1f3tVBachZ{X$7nnlTrgUcj9IV|@AFnMP8lw!d+<%#J>%4R6W=s;w0}dh zLqe)!X4EN`Uq%5*pWRfJgB0~)us+4kp(q<70R$UQ(vAc{U zPW`8XJur@S^A|EJ`^aGaOz~myMEs88A1eDnKhUeg_rqaU%dE!*Vs5(5-4}7n0*t{p z2VQunUs9O+r)C+A-M?8RH8A40diQB}j^?lwiwBH5AIqV$G>&nZfPAU<5RZ;M_r*O( zS8`Ryc!_YogXwNlGTPKWK2laYnn96GR@bG*Y#8wSweyj>;)@rz(z}2qBbvm6Q%4pr zlN=0ZRkbR8c*Miuh&nr)1Pq3WEl6OEwu-lTK}u?+RF=6oWrjwSB$FnT(_h(Vwy*KS zu`JSIs%5a}s$AoTmU*3|RP%Dfnl4m{ZtNZp5PKNkcSCRl?U;e5Y5!DY#(uDVWD&eD zuE|LxsL7C3XM%Y)C}yHY&Z0(vzFs^M;n1diheji?y_6b4g&84pW{`!@!qar%Kum}V z&||+U6sIO7XnLt5u2z3R6<4+dnL!fyOkYjL?Yn4_5fBdW370TE-&jF(jBy}I@s;Ao zzREE{Rkx{?84){BKPZVeo;L&3JT33;9$)j|>PCsP6@i{!yD*j*5ox zjsdMbx$eO&lR*OZW5B-_-p4FnZJ`2O0$^9b7^A_^Zm{^VV3)U>B~1|Grsp`j^;-jo z_SviQsrYli9&+jp6`s>WNv;si6k1Ei1pT1RnMVY+R?M{p%_Xz59-Ae}1vMTks?!DB zq72l1UNgnD8)0dYk6y~OWMuSI`|oo38w%}KIkx3VxOxK8gE6y)54wB}TnaRedf{wF z$V{{B1hY3bUKo6azLzU#h_ESJze>}Eu-0d4;*Ziwgq1Y=$9Wzp~DtzVz6+P8)lp`a?Cr)+6;t_kT|n_DS46`T`70f|X; zIV3db@to=&sqS^L3*qHbquuC5_dCmxfdu>Haat`8h-GZ(TF0oO?~wSdV@hj`r4}B1 zKrDVp;}=53^2eTJ(Hlgm@g&j{;e5Z_;JoyX9Th`z!v-7Hyv2YSGGr1LbgJ~6hRaZro!<|nx*4}(nruHDxhKRky1 zp2P0QbuP2?lQI6Jhez52qw<-6M;^5!rob5Rc&!evS0Gy(oiSS~lIb{|@i<&9e9ws> znwlC|l@Dcm4VjfnAH*t~1DH=fg|a)f^+6&f4o!{VqsyR-`fCR2)KSXkN1MYqXGhR| zT~D2gKhXR~hxFy+v`aWkTH+m<3h-+{!(z_YB@Fz++StcOdemSRYUsg{-`l^!k|61qu*5;Ks@Hroo(;MN0U*f5v_WfPJ<1EdwMx))3Ct}Z#|~);POGKnrnwi zv1SBJi0K39IC#0zrB5ti)+Ich3orwu$XBK@RkU+*&$Q72lq`UU`Lz)Q!j_Ael~fBL z?JGqS9??dJY((y-^ZEJG*xv=%JHZR)#I?G*>42U_@)2f_fPaLWx9|m7$Q;aepmK+5 z=N=A#GoQG61XOI!IBgC#ujhxom5os-`PQ(GXfeC4v8v_pn81Aj7qQxaCY=}S7^#;u zo*Nn<4v_)ExROMe~e)Yp>jk7vvMAw$9DM%dvtBELXlUEY~6KF2Xi+GthJh ziN_Vp2Jn#he`=D3n_eEXN>eVi zAVY%_&X`7l5au?(7(#V@AK(zR8rtmhet}BGB=|C~9%OEY1buvQDz$MYu&@~zRCl}m z)SB+sP`R!XvP4G21slb@$AEXw{?-y<^uBKu?$d1hZ+47S+^r0KGj{EnAT6LbYYXHP zULp!hwnCStR6_h~OQ+t!wr`<@q!@TLcAzG9`Syz_B9mccb;dO`97;IIiIv4*)ChA+ z`rMr7UvH6s&o88N53d*JeQCB>k z`@_T5F_8b`NvfgE@p~B4($EAxvc8?tp-2NDGJZy-9r;;C{4aQI?(Vykt-ew_;JHf7 zuMzHVHcuDh&ZghGwFw8vCGBiCC;Za`7bl=$pv`N3^yNYGX*F}g5@G!c$sfhNW*BBo zK83J=hCXOb6}ONR{LC0cstEeIvH$CXhVr-eAd~{V)G_r-Qjzno3z}bEF7UygH(&I8 zDTX44zc6A&!CC`HMi;f_ntu6tH0=-hWx%($oWSYC4OxMDvZ~8vODq)#h$-4RN%%~l zl>C5|XX5Q(A4I$eeww@M8zx*LFyH#cc+)%8HX;TVv1Zy&Ebwo=Iqw!GK_D27kC{K%zfU=l9LVc6!bb@6LPW&jmP zivylNvB!A6TQAbcmex~3eE$`5-c+pX+6P?lxF<$O$xKfPI72ATTj2~hx|;0$a)~I~ z-CCJ+He1M`FhlLQ&#UedW5!&>X{G}79e-rjgrX-DH=0K))Zv7FOa9%X$L2}_J2%dc z7VlR)?+zklQw;luw2^MF%g2y}wCdGnK2{CP@l=F!XmV3QrfG4{U}o z+}%Ak6s;RONnHV@KrBe?NO?5uGiZLXJ5VH<7f%5Jv9Za4DxWp{`O`Q1k`#8-=oJXZ zUR8ED9GqxwQxqhJ@z)d5mgkfZ<4|6!H2<|PRP5Qtzd$s0NE7aLfNMGxo>;ibn!An^ zqHDc|;YC32O*g%6Cql_0IwwM_A)qHqg(8-{ah)SC49S7*Sr1uWd*}1=G5XL5z&bTG z34wK>etNI*L74bJQ@_|XV}Rl}`ddY>SMN?ueowD@C@!E`n2@UY`9|^iKa?o?a(d$1 zWS{h*An^RP+$8aQ3+LGgL{xzy>oJ-@mM#&9k<(UT(w=IA78j$g47Aw_-j>7ye^F?j zCRc->23Ec@TSNW)QKZzDbqg8mlD-wrA}H`4sUhGT3~~b9mcrN=xho#U9LkQuA@t&m z`wU4dkE$&?j2Tyb$7#f zZ%qEh55TskBBMXkbAFF%{~c8RHZb%@8zB2{HoE^ADjDhihLE4a&wu3~GSdAvwf4vS z!@s}y5Agf@L4GTNqUE=?Gc>Zp*Z7;9L-#qfC2wTlfUm*G%ud6?__?s?)4WIX86Eh$ z{6qTB5j1*M=D(DGs9JX z1N^f~(zDaiFwuX`u>GrB@wW%^kNfxM;QR+y;_m|x|J0#KE6n_#xrl#F5@V$M{Wlc< zki^(NU;T@c*o3;8_1b6f{X_NTnk?UZKabe{1iSI(HzX5FaDO4vky#`w#8^>Up}`aC z`)+HT4HODSJFfg-A)l5NEox;IZ%2p3U0axsU0XCfGWGBu#G_Z1jwmljv?8<7MSS#U z@f|H(&rj%7(MHsDZ1Ka%OTeVbH_H{2$Jt!25ds2zb=|ztnV{0q=K-sl3*|m{NRzK0Eo?Ima>!)0t8oMA* ztQ3@4z1*^zpLB6s#At{4R5Q(E$-j0I^Ab#4DV9r$mg`l^_v7!+v5|a@lRu#?P@irb zm27AQtt6Gxx-yvbwxLB%(Y`eBx;P$UxsNf1(PBWnzqf z2T{k_HeBE}f>0>z0SOlU14%EFnGI=-yvc8FaeQq)fRJm_wbrCO%kni*)b zYGC3goe*-A5iXeb&@4XjHPxf{5$dI*zE%QjVK%W8_k%tr-KsSC%}&u%DnXsG{k8JK zzRLJE(b^(e7QfHVFSSlg@T{=R7_t4JCem-VG?Q_;m7OHR2Mdf1s2S{@dv97AH-bNb z!MR_$;pdfHK2+TT8lj7F41A=lva5PZdWVu7w4M7dL?4_%aJ35iFe=4Nqo*k>MTD%O z1xYz|FrVtNXT-VI9|w=B;bErOV<|3+7BOWLokD(i<9NQJ;7tLJb>j^7vB_@YY^(dY zPerMSsFw&9Zn?TT*xtHN2?7tBW$&eglF~WZy%_mjS6@s{>g110I6Al~EJz_bs9D0p zI7gqSB^#H7xH-1N9L%7NzlfO=S~H15pKaelwgD_-l-CIy=MCFs(*R+HJ-!4hL^LGV zNIZ&4 z^#o@GQJ=8^?o8gwx`VX3KB3OA{*tYulXXpkvT_v9`i5zOr_$;-qGx3%n)sl4uHcF< zfauNc3B1X;n06Qqd5Enf--PSBmh(C1z(wu4kj459meqrQ&dBpdMNYJDRlwYE+%}t^ zOQ|?o3y=WpTZ{}mnXc|*h!15Fp_4EyvB%YxoeE!Jh0UxnIC71_V~S7ADtq}YUyrj1 zJZJ+Lvu6v@IR+1Dj#O{boUaEut;|m;hoqE4LLI~k&wFHSP$8!4R!4}~-mT5q#Vs4C zz99g;%8TMA0;nhrall{hek2$GqWY0MITW{Q=e2=R5&W0w@i)yi6KwV~qYT!{n-sGV z)k1777Gp_T{-gS1xHd^BHIZtW7ddN!Uz8j*CLf1WrFAx2pm~1?hMfBJVVES2^{l5MR$uAyuktqa% zwq1*~yYmSx>j|fho1vY+18U{F$Tddftm5#YmAK=c%TR{AK9vHHEB%X~zjgUo;_3X< zH)It8*`JdqBgA(npU}L6bI6>08_#8f3s}n!S>b26TmqO2MY^N5B<2eI)2&OS_s(Ha zNf@d1Ray9)3NnPo1J}E}tt-Kvox&jPx|~$`XCkxY0t%ps79xa1G9j~!PeIYV5H3<2 zchUIzY{hdG7>?lR$j2Y*RPF1TPIO^;9-$LL8dRwMEg$` z0oyO33}Rn8D_Bwep!7=4qO28EohTNqAe*Tx?6wNg4#>gt0S}DWhzH~WVb1l#-Hs^I z2=RVy@8br;!3=Q^vWt(w!hdmbr+y%ykBJSz``IV`Gb>}q^A4|uAieAmRrAy{F4@|wmtGz!@l?s$ruYcDJkJyXVAkg-eLwR@Sqa@ z%GY*Vb~vQc*YFGO2yG!@`Lp*s?npFHvT;>xd%{SCDwQtED*N@RI!_+uRwkb?#h@{k z&29S@tc$F;TEaxJZ3=;{MK-;wV}A>K&H z&$&q?P&|x9p?jo!52hI{6BZ>58?qA2j)fyHC2+6sFUZ>1 zjW8wYaK;w{HA6^rY1MSa~iM5MaUG)``#Oz((?335sp(ld8@8%TOIDZ zQT^@Ry{oUvviWf5;({{#QcG&tlEsO;ncLB?&P7I+w4{zEHFWRx%7&4pZ0EMFl**tk zYj!+~W50CRiJu-k*00nU<5t#aShnw1WmU=fu(Bb0HrDl=+&UCnefXdAbq7K=tm#9; zt<-@7#Va+W_0&ZnE@uaw<97 zsWf}_;*s?DGjTK3bl#QR1$nPP?06WR@q6ADzYG+ctaPoqwtM`}95<(l_W-f$#=W|{ zC4viR53UmnwX)mPPb1g)n}sn!@tAO+cp#$vQd!W!S~R*OAO#`Js5G>uZeBC~4mfnb zGj}eUx8iFOa~P4WqBKEg!RppxXsTpu8W*4E)`2MHc$E_?frv%0=grddV%U1vhlmiu zR|dnS99(l?7INEsdN?{HIa~1HrGRKu-iGiFquGnv&1{GDt)Ju<**8pq!n+9SVGPfK zDt_ts_gdysOU|0Y=%O{t?_7BUf?b+Pic~%q>x@RpS-I1@^Q5;M#*)A{eylYW)+$>n zf|%&CkyE26eu@1?=nxsQvkZCKx}5WXFyqoSEC;{pZzJ?3n09#0V{1`snWIx`e65Xt zG3)K(I-Pe5F6RWRX(?@ykyX`;nRpb*GU-s%I_Vl{ggoiL1AF^-n~oZ`s9@xKe>Z97 z=`ut*Iu&T{G+kR`?xQ1yjMBMDG{sU`fcs_+?7Q#MI%YlL(5ZbNlEEZEb8?rb3P;`m zy}h;f%Z>i-DfL5=~)>5WP0rHPvhV7*zeOm|G;K{%42_#!RUX_ zpa02VpEvI>GFTy|mi2ne6?b>vA-5v5A?lR`k|*t%7OiO*7f1*mlqOs$^{BR%Q(!CP7lKTS?VTad8`>18MoaCTiyY4u&{Tt0S5&lc z9qJ9J@Lqlk!I?jZ)W6#@^`ZEP72Z%Ik#4-%-9)4FZb+hhq42(dgFtEtSl1++aHLLP zaR`ME6^l}`#nr{vW^iO_t{%FMz)J%-ANow}469WIS{VQ?g*0uXSrQ$3US8b!B8UjF zjzUv|PKic3N?MmT7ermYgpuB*S)I--bZ}k)0U)z1t}sSCS>Wq`#l=SurzmuQJ1~7_ z2)2zVr@(yK-TCXRawJa#MZtM1TEJIFJ4ktVrk0A*hcr|fh6&fyPev#7n<@^OvYGSi z%Y(H5(|O~xEsb5LvGfd@2;b`?YIK>q^V?+Urr;leh}qK@6#)AR>-M^WNme z+3G6n`J*#e3uHkIn4_w-5K26@uWotlPbOtE($JrHxZkR842w?T#9FXzsSs!@@u^)< z{H&_L<5MGPfX}co2I!M|tr7d6BhC6Zg-EQ!WrLme!hv;47(XW1N6A>i~hRPbvfy&^xlTXpJ|I z=_5+$e`p)wp2-_{d2O_CG99LzdwqO(aZhRCc9cWGwL0k;+|D(tu=23D@!A(|X35yZsfx{%O(VY&pXMr8Af-gX_| zQCkxeJGzOVL(+5xi&mG5;{y+lu>yiWTg}B(O%71;=$(#k*A$6LCek<0NQ$GbI2e;h zF$i|rRcf@JM#FUtgDc&Dq>JZ>dqyk_4pT+LwgRhr;%cj2YYT4mMTYTp#)L=BiSLzrI0olqd z4CToeJ^5V69)T_hsX(THPFn~@;b^$KP*`BEXJsl4;Y!Lo)S@a1Y8yT*#Xf)$Lqdht z!vy?+CgOLvzH}BqNBz%A0EReHZ)`g@x(mISV0CJ(C?HnQ%4|iU51nFz$0}SbwwV+jkM`E zx#z(Lvio2`t*=@MPQG>LFXyauq_rc+?E?@iPy-g}tCr~@%DKQKhC~dp;mFXU%){0^ zu?@R7xq7HuQ+d@JK7#6Y85kX9dHd^js*qw3C?e≫p~Er5t*|+kSp^F=k?0n-l>B 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%0A#$FYtEJ( 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�<*^72m7O7ji&vFuoendvf-$+cqB7f;l}q1(LrfJbDtr<-8{Kff zpUu&|huSo@mdXY z=z}6y)sP>^8e8w;i||>ffUNcHYs75O6z(;KOvqh3K|;N45;QcQQvfYMz*ML7qk4w}B&YXXkcfv3M-t&cuwrTd=mww@-JJOgyoxZ9{`Ita&DJDx+1%Rk{LbSdQ(Yqn zOE6v7$Z~|nikbWf+A!RttrVRP+O6Nt;ayi%kZSXal(M)pvt9FtvLxuN+2(9Ia#96_ zdfuv}`PWlrT@6EAJS~Q3yb`SL3JRe-EKP0ffiDNw!};5vNR8Ze>G8a}wnk-N@oV_& zmC4>Z9##+?^w5nwqUDvWjB#vg@>pF@8f;0z(10+xy**VkrPKNQ$y%T`fN zdbCQ*GUHus~keu)sVmV@F+ z9gp-1GHG_G^)+ve$ooDf?I)8K$N4f|IgVarOLKSOTy>&>#y){?mp@Ju33?$;Kvlc%MKw(Z z^1=>TO$>A&3x|X#CCC}4V9?hzhA2gQZ$EZVGrKhd6L!N2!xwxN^-<9E^rlc%*9&!` z*uR+e3AdTHs3q#=tJT>5AI{zZxYBK1!;Niq>~w6~wr$&HhaJ0Pc5J(2+eybA+vc6U z*Is+Az0W@Pp1L(_<{#r5tp6V~HLK?HzF#x4tPx6O8j)D+0so#|F)EH=t|W)tv?LtYwtJJjdS2fbh}<7W z);GINuN)SsGPnwk?uLfgF}AdA5S&a1t`BNC0sRZy4}P)HXELlEGTSJYNt;U3i{6$i znek6D3wiqGThko+lM`wo*lBsmUP!juCn2}_p9uC)!%8tqfjC_Wu*4ds>6M?NqK{K^ zTo9aIPmB4+pBR?YI!jb@U7$%6$yV6ZleuZc}cc@W{j)>nsSQ)Q=S6n<{3Uv+Ksw$D7eaOL7^*rM;>Jt-RJ97XVvEO zYC)l3Hx@X6HkeWN9qzkjIjF!*vVN?h?@;7k-aeHQ@RE_^z(bI`DGyD1`|DNIE}4-) z%s~VS>DkfP@}ta-R`7Pzo~N1Xt;Kqp(tD}>TRbAmF9DlcMWLu{QQo6+@qh9ih_N1jR-hW9YVO0 z32n0Tuq{XG)976s#GBVbQ4?H;Vhqkec#bYK(sL`4OKf(TmOb1GRHGHsG}+ z0}Hg?oUssx1KgjGU$XWVwJASqJR`?}`v2%$Do@MkIMNU5Ruc%NfNEd1d9l@XgZ|Hi#~$BEvG>nAP;{{zD#{_#r+XW|iT&Rt`j zV7}}tWT-?L0ZO{N1UsE&c2j0DnphX&N*2n@7=p$x5=U(FLymGS?PjZrG|{kW)IR13 z3jJ#mu`D}Fki2AD@!WFysKJJWw2~!3JB}mYN8_S2wY!1*?O2@2BQuAn*K4{O7 z;-plkpw;vvgofQb5a)!5<+Y*o9}!U8RV^RstF_+i=xkVXFY_o{k4TGirAwnrwP)v# zo^3lcgV#A;h^3H6)ph26lGc-2{$XU4TG40%@9ofk(bGZLC}#6a6jnneq1I7o*-J&E zD4ugB@l@)uP;cbK^L1sl`KFuSIS~)$%hpTtSO$)GR$2{<6Xw%MWdWwKF%?|(!V)OZvm5IaU?jJGUc*B{VkFP#zSiIuf5#VklLFR7mSwP6n>?M{4~2zsaHm-EycCL2VYCaD6Q`X! z@G;Vo!ce^XK{syQX*ohiMCu*4@=+l9QybxCPW_4$dmnw>T(Fb@7c~_62J*$OSJGTC z-EdM=vA3mJl9KlZ;ylirHIHg4E4Vp~3~nPdd4H#}00tkUg^PYPm2bf|yAebyvUXO@ z?xG%~7P2IT>ug>}$mmq=ku2lwBo)aaZkCG|o*)PWiF_Gm22*B4gha3Q`ZaU@*j}4d z4znM;1x4ge7hQ??i4Sk?{4wwJrA7H?1=(QYgS4E8&M);ZsV45m3BP)1j!m(=nE{zg zHK~eG!Zv-Mw^#B+YuJqud#X5aHlX4FCLg>YJ7%E-l4qG;vd4E>$njYMuz1rjKr}5N zl>_t1lxsWFbo}E=n|gzS8!MC%h)yV~-4`C&TVdWUu>D}>l7)|eoqe<9kr7sP&zAK_ zF7SAr3T`X=t&A}mkUnoof|8oZ=E{ezv{6&b?w!C)35$Ij-<(4phG70R784>CGoYx! zXN@y6Qe7*PhyXnyGMZR8ymPKe27;d1*}ZX2&2?+(VTY{{99XhX<2mf{v4>~4L=&pm z_{}Cp(}{_hUA@o8l3P%x{qDw+b%Rq&MZq2FtopJ{TnR7E#~LZ-(zs}e7F{~~DCTY% zZ+#w!Q{NHm`%`$?k@D>5RvS(0(U4wxo&svt`L3I_xN3;w&~j+_EK^2ZtgWbgQ{>l# zJ3tCF<*(G9=9Lg0LlQq@pa<07x)z3vTgDcAiiN(eH5B~l*o+x$<3}1JJPi){acK{ct?#xO(h6ydORx?9{<-Q zX%&07OaA>W4&*gw?xtg>8k_E!F_oBGv*(r-io)lL~_<5)alD|b?EanD*GkkV6he}f05U14dNNTtsC`u|q+d5israNm35PwBb}zd?x4;ReU`n zCe_Pfqh>DgrFwLyfaU4JvI?5|TDLOl~lTv%8_%*zOL6&ODr9L^zOOd!X0O!!nC-)0fnb z0CSKkG>TPX?s6lj%(?OUfnz;uFXhis;(8CVG8$aW+>9l`tEwv(KFLplx%b*cBj~zK zweJigib(X1Qc2Wz`HbjC?AxQ-@q^~AF&3=O^{z7=#JIFz?A~03>AJk5i4Kf?t+8SC z%u{k5S@7HDM(55~i}5F=Kr2r-3?%lLt-8Rgk(V24Q2wZ%37e;W5ARG%iQyG*4Oz*t zbrKU_XDR^^%XZ3U0nWiku~%)S#~*uB^{(I4zD(ic-)`D<&?UGB##6QW9EEH)P2EcS zWzcf~r~m3U(oeZtuWEe`o4OTSj+%(W6!SY^`Po5j0@n7L0t%T*`w zU0Pfp9%B*TT7F!a8!g#CEa(?bm}9>M`8&m4 z3tK)!7v6&(G{-xk4D9>S@DJH7^R~soO>orjrUZ*Az_~1WIj#!6GtlVyokhXP zcaP8Y=?_M;`*vh>Y3e1~ZBit6O{CDl0=^rJL|cGS0>O=;AH z!+Olbp~q_Y8Ie8P1t@~uPOo1U7(Q?_xrq0HrGPk9rdmj4%KdWrs3d`M_eV*q(bdDU ztt31V-1=@!XRy^8zDhJ126t0$r=YKx@vN(9Z*Uj-(RX63a(vNh8)G^*9mR%;ZA%um)}x z#VxWO@O5OKL6^w!L+{)bZ^+jTDdd=r=0oFqYQ(7=e|n zmT>)^OFio4{&5B$lmEWU2P_>s@dgkBnHK%9S%7t6GpuStpjNXJ&Wd~^jlLiO(Rc?eM=ljqzUn&?To|< zMw=(8Ww{G1%cYARtGvYJovRwAmB!~ReG)OQixGJuDf~ZUMfi6FrXds7It+_S;j4SY z();NxoVDh{e)TIDW15+Io-y)Uv2!p4HIOPxkx0trbH4IsnY?CfEwz9zkT^;z+Ux37 zxkY^q{dJKOj%kI<7^t+z%+GHE)=pg6^3N6; zyD6cr2n3W>(VG2}knTw{2bip%+{b0@N75F*&%?vx>9rD&D}ss9p>|byPDnQ8%#bN# z9hqr*?j7}!@DPH=#nvVk{!mc%CMvr3sdOVMN0b(F{1R_qRf2L?j{pLd_P&7Y&qC`3 zn>Q(-5*i3jP2#qjQ8e}?FS0=r0xaqCtFo}{ZvQIE({}HilT4<06Vu*1+|F(@>SG9e zu&6YucyFV;BiL$bBWw7zc<6%vy}AC4pa{pD*7?Ya$&$as8}43j+-Z7`A`Q9@badIH z!x-+@#OBWhF&p&YjV-p>RX_6(x)yS1))5AmqLmhX7Xa$ka$rV@MVhHo6**4ks z<3A?fj+cLyx1Z@Gd#V*gU(x!dBY5|i82;m1ar}eOJ}?RfeTLWo>8(l!Aq4cB@gr}e zQff0& zORZLlTk|N(BIUHQx3gSH+)CAW9S#c?>PXSG>V!1}q?76BI=czVCSuE9AL`;^Qapnf z#o}JR<$ONblVSD!H0*|hq83io(m*lC&@_@>u3r#;6!*1j<>F!u^Y z5P|L+KtWKWUxs#a?yfiOnGo#-7a5m^$qbd)Z5@SU9-8{Haj-C`NWN2QzOV z=TdRZY|dq4Uj7e>>x)9qfrXo5-F$pg7I2OD02Wnf>{7_(5p zv^O8%eX`yb+`>ZMTdZgo*PTlD#`i3CFR5EMyT!9`o3!IC!{rO{`bzkQKPM`Br%{$o zOkP>1amK1j;)L}T%lBLLw1KeQt(0JX@!m=H#$ziUVSneOdxP>7U@vbcg0018o-QBh$8 z=r?{tC?clL#!i+FF7{4@jBNi%OaFIp;-8^Ev4TIrkl&IOVM7Orf3O#XY`?3&=P|W& z0dO3@ckz2>IYV1hLi+!)=-=TGT28v(8Sehjk+A*00U`{5i2*s%*cjOXf&sSw&W8Zl z7(kXdXX`&@AAjgQg#IPc_$|?pqnH1uL_?KcgWlE71fVA|ws$i9XJ$DQKyEoRfH1@I z-$WVzACe5_-{i&L?-~F%`JHR;AGpaM`Q84^^Y&-$PyFP6yZ+Jd_us$2|D5H|>;G)~ zYuxXd|ET@7#$T;}ANlw4pJVR@~{a>=yG133|FafFY{^VT% zDvp0XT0%ftyMHk??0*P*0P>Q5#n{;Bg#e)+9s+>$EU3dS0&{5Yd-*ifd(N!TJY!oI9dO8%m_LE>iD0E0)Ud` zuUP@A7J5rS?AW6pY6Q)wp?K1+JmZ+=TF-uk!|5QyMOgizikTp%%M zK+u6E0aRY2gocC?3YgtJdE4ONB!*BeRG84oz<~vYf&yd& z9$+3lnVIndcIeq%38Y`7&K2lWK`{~LK}oXm&JXbs4A{4XgF)dU;E=$mT3dmm-^(r` zumykQ>2)f6B?JNk5i&rK$mN}fhJb{6GnIfn{|Y4aP7QZ;_4trLKRSHPH-5To@!5Q{Z9~#OXk$`j_ zwj?Y-;K$ZSnia%b3cG3Ws(+~kQI8!1Bw0%$4jRR4HPW~?-acXoW_KLIq=0x$2K(&= z2O7eYJnUiVo2`Jv)V$DuM9_tP`_n@@FeZdJHl)Yv++Fo<7uIdYO#M~h6KG{Hcu0ug zp~&scg+JRzULl0LfPjI+ts_zjP~eY_ZeXC>R)Itg1}L!L9wG&Q!g&H)4GE+efqdzJ z!|-4rJY>CqE;eNuT#8-XtzU2#$e=y&G&=#O`{Rd!Fm_HP06h`pt zmqYg8_b(QpG5&-rU*-tDHf_B^=JR&H3p7A4@gto9Yz{o4tcd37Dw8}IM$HNAAYc?u=0FGVp=a15l8D#|e|)?UCq@GYe52R{AK-hhgm zSITQ{r*l~}g%uz8+}T824Ecps)|08|XY?bC^F`e*Yq5*qMFZiaXT@Oi>+-Z!TK)FQ z@oqD*n>m>u0kW~)2a4V%w6b%X_XCV~Z*E2Bd+x`J>J>hlYvywhLdT*HhqI_Ga98+By_fi^tjlDiAXzKORb zKB;L0`o+FAst>+?N9N2&oQtc-gt5)zn$VOj+KE>#2+B5bY~5fwjH3EQ>nS!%BNTC; z6}HZn=#4@<&6aU#*&jG_piMc=E0Gh;UY=JCF`}Gv=GIb{r{;1)iqVrW9uYdHU>>7% zKL_(j{ub!;-j+&q?kZIM9Fq^ronWRWfjiFzE;?MJMTbF|zQN4sk}n&2be&rjN6VMb zP*iWh6dLseUTm_S!PX3G29YK*yQU~9-)$bbM9n6KqF2QqLsvJ4(|H?74{vy3cc_zw zkZ^Ael{`At&VBmIRC4&}6z$*Y958fvCUv7z1rkTfk85*qvt36~YrhslGLZ-IT@6yX zBm~=k7XNCO7S`}kWy0nIM13zUiN&x_-Py)C#j?~K;pY0_rwFxMqed%ARNFgOn3*nj zL^{^i4U)$UDy7~lNQj^rIxATYyS68q=%5Ej?8UnWCb31Z(oVWaP{VLFz@5z9Ba0utkLH*_Nu*_6gh1o|6Q+LcnDgUe zt&6VVf~1^iIG<2hPUwodvlpu+K>95&TG~z?EVDX*b`kBTs35%UOVHVCtw?PyncF5m z{UBy_@x~n+E4u$0ES-#}s7`IxhP)t2NKcnN>2mXYV~lUU@iNZ(bn2!Sn>LZz(xIGk zV5(3mql#9xK#I)2?E9@$PB5!gcXfO`)jp?F*|t_y4nN$>^+C=fU%@x;G6-RWWxVVZ zBtdrlA*C5vv4pejdni=ou354T6+&~6CKL6uKmtPjc*M=lAa;R-1*-H5Z#y98wzgo$ zHakuU(KZvc%y)WJQmAqtHh7AhCQ!|wh~=okv8AR~uOvv-j@g(cN`3ij(e`RL#$JKF zfXHG!&%p&DFI6`jy!rf9%RUk&ms0sEovS1}Y|Ts`lqfBWv4T4;)UGI#B_wap;ZPZA z>~=)?@Z_q%8w`(4)XtKHr-b$;fB7Y|`94qO0~hK7aOSFR9Pb)w8FDU{$homAT!x!~ z?4NFH%>liI+GlT|>B{^Y(^IVC>cV(2$*2nZwv9%*>1r_5XwyWjdV`79h}K1Nj+AL+ zR;?pv%V3;O`!U>7HlZ)&m|bmsm;2(P=d0RhKYG$qtxBby zm*qi7qG-4+(>93H7F8i0^0ioQi|^I%s~_<^;rcQw_Ly(Gfa(g*XBWfjC#HDN`}LjS zSPC2A*l!^9RJ4DY!&WmeGh!bIJC0lUFQ6K+7gUplSd%@`fop!^S> zb#1l$Z8DuZJG2PDoS24C;noRxB>T+!$Y(K+@t9zL-Dm5stwVk-YA3Q33FKd!if6wt zA32~GGH8G9Dn5XVP`VT21h)7M?ac-qFvV zq${&je;e?Pn-+dmt?gZU!qO?tMe!eppl9Qcm|x!*H?4Dmr9FFIRjaHm_U6mZqO7L1 zAk`oWu7>FmXIqdRX`m)W$)OV2IGk8Z>7aD$Yg~5k9}&H|#GyKITqwGzJWS}T zZ!Q-w1+0};J-`ud_{=0Um_t=SO}qG}#i~)@i@kBqc3y0!pcVwi_7ZrtlZjy}`^9(m zbiVjoDBf#aIaxC1J+8Uy^lLmgV6n*oXwXJ{!s)aQh53oo06ldw#o(Mh_%EWfa7}IJ z!*%_zAqBN~O+|?cc}<7FJ1`+{gqM>-YmvbumEG2`Tm<7+RG+qJXyHG$y&2Z;-HW0+v`K`qi*aYBK6oK`QyRzOm=r$t5Utt78m3 zQ*dWf%$zw-;Ly5-ZL#aw163&N#Ki?2iekSrC6~}N2Q*3dlQeMaPKAP9%<6stb5$oN zzT_4xF<+T}MSIDNeM=78ss>>@oD?jN5f@Ra(Z_B73(aF0Dct~3p{Uu+ifYY;F3n)T zvRh>tS*gP}AMx>_;>pk6t74$$q-zrarPYw&u<6*=o7?VPFQ~jYBi|+*3y_WO+OjjI zi!Zuk=4Mil$CG?6Jtl(4r`zT-OM>Rq=J7o$%|KhMD}T;EmmrpV3kpWhPnrrcMlEm2)c9XGg`dGv1^G z_5!~MjFRqL%k=MS80`SR7tvXfyCJ}}J@iVpylYrhyx0M9M8=q_4Fxxi6jJW5Os{lr zE1^=&iF%0`fD?fuX-<#g5jqwblr-Xgm55fkxIXkivwamh-?(3bIm1NyTK-|!*(NzX zprY1g>W$uN@iO_mwr^ z%m9p;#hq|tdkNN)f7`=$551@U^c;zSk6X)#(eWs84hfOD(I6V+djYNU7>TKtC>Rbw zrf4QSAu|}_67;0XC)5zLT1PfA<(G7bhrhoV7k#g%#&2-Jh>L{`1cgWtsSqmU8ZB3& zWv?2VD*C2-Lz9539CV$Ss^izjVvIz=BULg)A1>%<+dW*{)u+!7;xh`zJj}z3pX?Kw zo*Oy}*P)-;zze%#e=ID*KVsEr&zE=Duf&L-c?l=QAsIpF9f9mhR{5OQ+m(pGugbjS zr+1ck{-IJ9xEqKM%Mn9L)? zXNMKsOQfd50Y2uDWO=(Crx);!oOaAPFXAw;WfIAC24@4u+AIZqFUy8QsIc9dD1j{qVcq z8TZ$2EE7|n^I0+usg-O;x{MIWiI)mSEb}!x!oCUT&6EtV!E+yJoiaelcOwSELXjXg zJa<~vXlHb-2$+kD#-}+n_8NgKUlx3&sAkGT0N z3I`%aqro_kad4)O!u%@CWSwG5YdKo){9Hz>$>hmIF=%_w!T-ah?i`v; zvB%!}5 zS(C>jcgzcdP|)s>sWx>>XEi|?1*cM+D&RM3Evq+i+7?A0bv2D%ST}h^-bOVgI{uwT zo)mD*g{KNC|I5q75bp6e9T>U@8&ZTaS7sHTSzIg=O+)ZBS?5I>_m)n**GG)Jhnhr@&6(GW_hu#w6{?R#a{hhgIc9O8 zMu*pr{UVR@w$Sioetu}mA%bx$<((MDz1^}>vR3aW<2$)+J@hf!x5sB;b=7ZTLwaF^ ze4N&PDVR*ok#V|e#fTxh(C5gW$f9a$9I~(yr!;FJgM$}h7^T;( z;3%^4eGfcADF0%^*$h&g!L}w;{@BKT1784%<;`V#A20Frz5bry6j)D;2WwT6f03^q z3x-_f*N7xkom^Y$dD_K*JZ*?7XP)Y`XP(P~K@y!DEJgEiFG|%_#r9~`&0SP| zIyZKUG!cRi08?oW^n4vI|Bf4Smih&HKa9V=@HBjFGjeh%!N>y%ZN40+WY>)`Wxlh} z{D-s}TLulK+8i7Tw|hF6VLoOL5B>N~ZKedjn>-JJzL;K!qTe{tkS@no1{TE~O z)&h^-2mO?R%I+NZ>n61Afj=`>``CkA}o3Q`wgavEqiU z>o*7YVF3@R4BWw!odcQ3)|6V1h8vv&uSbz*C#(fW*dFTqq2sWX#d^rj&p42pHZbc& zzl=oWnP>{?e+aP+cp^*r{9JcwuMmnC4ar9!y3H;0j%qHW>EtdzUL|`nAB^P!QQbS! z@#1h?J~DnG@n=T_^m_#XCLyX?grU^PP;WN!`U5-8F978Z(DpA-nAh8_LN~a&1*khF7 zX^)}qM~{rLyw%?DJwx-)zwKMCADZ&g+C9%W9_A8N<&YZE?v}9kghjD@ zs~TAk(HMVQ=V|qYPd|J_X=EUiS9dl?Ouc_*5c5d^{h@kEZwawfAEwSLMR>dBThYYY zxf9~xOS6-q`%6AYskOOM|I-wW*)SJ6zjNOX)p<>-j${@J?o2S`KwXaBov`1i@g~%l z+Pa(1mx0`lyU@1ry?f4@4aq2HQM4j_R}VsPp*xT3=Q)mm3d3!9KT?aPJPC z^XzbB`^XjhIp38t_4P~2zpqKzQhg4ui>AWEsj@SxmIHf3V( z&J#M>gqCT2LuykwOxN3?OD4HsGSR8gLiHoa#2{=EXl#xeU$I`J$(M! z0OI>{u-o$~`renQkBQf2gTg5(9+2@?RsHW&FM1|V)YIF;M%iK;U0g}LN?Uv*x8IZ) z*fvX}3h;kqX$I3b`|ohWF|0S*R#Y&}T+S3Aq6hCWhXg5!f9Qt`d-Bo)Nksc@keDO>hzR%=yHs8AzDC2t= zv5e~5&zdkIa1<1D%c9pRS#AvkH`fPWT#_I6@*I>1UEiJ3#&2xRwo;fNm&_+X9H^rl zTC)cql!BTxW<=m?ooB)lYV9mBmqP8eD`Mi}O|eofzP72__g5sJB?kloTaoK*)qwIrDzaKiTu2$IkQ_&Ubt{k|Lt?c7fqHc=BtpHHS2 z%vUbt5^#TL&}rq!7GkrQQfUvEIrMYeglc~d)W5`^GxV3IaKxfq4*nIGxHM0jtF%7f zSFUP*Ky{9y3FilyvU-9$)DP2Qz?A2w^Hxj z7V$)zM^zh-rP#4pLvrd78N7btQT97u!iB5`hK+D$BR5hGVtCw>yuX(w;U66(h@eKB zd|`gpd-k=z?)%khx>CIt&m5j@Fl>C86NhPTvF$U6$EeTY_;Ir2VBKNr&&f ze@uWQEs^)BFdN5XH6YeyO20W7NGE9H{qpYKIE!=urqqZxiqDm+rD!NGgQ63y-6)qo>hMaeI%E(&dYOOH5~CrXn;PF_~J= z0oV(-dvSVG@=e3|PapkI56PTwOflX(+?0_x&DX!YA)}IKjFZxbuF4o8S6Kff52QP+ zN~KbKZE8%-E@9{@x1@4O1*Z>;98P5w#waQ=2*`HS-50FXNWqI?*CH~vNW{QHW3 zM|=QG!5?@JBLe^^_?H0;%Rh$;3E6uPYSXeY{pl0S2ypfM-wa^>-Olw7Th{;K4+(&L ze*3WgiTV6?V*Q_{tADp#{gdtin63W1jm$qViT~hwe&6eVa6QZb8i|ShH%Rf{UjNzh z+qe{fQ~>A`09wHYV3+{)-)^Ps9Dq0nGa)nQAEq?F4O}@{0Y;~Q7~nP#vH`Au8XJJS z`8|S@1yKHdp8ng51u)m|UMwsC@6z8_z&gwTQ&raArm%qeAA4d2topme0oecV=%1|s zdsaXTGhhW~&OiG9UgLM~-|xQ@J-^T9pFr6E-3;eXbmyODyo4-&aWVDJ~mPV5E=EX(B=gsn~bD&bCab<9|rln8!F)$*hYhbq{ zVW*{Quk)7a6gu>e1=-A|8v-G&= z!&q){zJGS%zDt};7tWR@I^=ZRRtEYgRpSUt^Ml;(h{o*5&??{H$jC;}!pvgF=DE71 zG;7448+iUgpAXX{SR{$n)Z*RU`h&H^z{2t%fBVQlYWR`-MSuJ@3|Q2u?v`-g3``{r zIu7dbb(4Pm0|m8_xrx2DftlRI%$S_T#fj-Q7#Nors216a8Ch#3E!7Jt-3thpd3yC{ zI}jZan95+v^!Nt!evU7=4R6rTE~Ag2aiE6RAR3^Cr=W@t(hn>%U^vkICdP(0RFDFW zww3nObj+WxQ^=1GP~=2Gd6l4BKv*DD_ZJjPANwEXOw=SqK|y(mrCHIXKlK%hKBC{% znYtVDZupfsv_GIhqA*uiSFqp1Ymk{VJh(JcSKgp&K|h1(n12i*Q9}|1)ko*m59B~~ zx1^LNzU2UQ*Z;^m>Pmw*SR8np;=t)HiVR6S(#QHpTG&`PlHbbd)oOc72Cg}QTfX*Z z?yjgWUDekEUL7-dCO9zz)o84LU4=T}w{EKaI3cd`FRE>Pouc6G&Mp03{wpWT)cnaD zM<(mzh{Hb+2vNu%D)-|K5x61b14%$*7ZF%Q^g|Xm;P~qsQ9#2Z0m!`QHX^W$#5<9I zXu&&@fbKpb@VqIYtL{0Vu=gRG3FI2W4>qm*EDXfE_q*^U9MD+)P85*+OaO9d`3flP zcZI{&@R5)U8(S-}&jpN{yTiEr z76PPx?@!d7+^7FI1^fyNT$TCW>wg~Fg|s!gM-SHG^acp6y$c0UKXhT^b|(+%Lpkg{ zeFD+(1dPNfYWn=K1pmIt_HkGKBa9snb?ZLQ7@`3mbNYj~8 zQ?UWG4-8JUpQCjslzT#L={@~XXXI-2aZ_KLnS>9iuAz9aRsBMlc9XBtV(^D8&K>yk zZQXWfuzNa%VJ8;2M*3p3**z-9p;5(w7e&!Do<^@KNXErMBN zbLybvxJHYA6}dIG8-qD2ce=zaEQ|q_@KC!^+bY4W6*)NVjpIDvAEHvlUO#dj3Nrgt zE_RNEjY{1O<6YqJjcC%nFV&^JeuKP5P%!pW3>IZki~mqBU3xNJED1;Yc*(oL`;TGl z-D_J$e<1;fK!GXT$j?wD_IE*7ds;8pJ9(BU=wjGRdniI=Pt?NgRu7U>T5PGQHt9=S zJmUQG7YrIEUJI7?F}XrVeqNpWsb$uU?3@V>n<3hF3{$ahV=L1_L5vaydz=tV`btMS z2vY;XnH^q+^#v`T79GReY2e=s770|o+LsR9nG~DoZ|wI*PH5>(Ty|rLn*K@&3p428 z&=9T#ZKzwMQa6OqEKLr4V3is{O*&U~ z;Fd}9+oc()TkbU?^O;I7C#^={BN@*lP!ynJ_$2~ElvgHqb_yP^($w5ytmvw~6hj#REpI87S2gr$aC4WAABtc< zKXIeINb(v~9+?Uviv&Q}n9R-A;aB0}MKi1+^w=kiK&+eK{ajG^j0tINmI{$&PuFm- zGBQrprMhU1fQ+%;=UdBl&}Gijx{xIV&eaLpgI#fXS;k-LB9t9{*RuUM%MfW+?2O$6 zw^%vgQz&+x?N^uLEsWU}<+9z}s_<_5K9M$%dcKms|J?VWniXmO<7;_=1>xS$fL0!$ zXP1=u)rZtD^UZrUCYCehsUp&}aG_ML0eL@U_b~%c0(2hXo#wK2JmU`WL`1RDt8tA7 z&X7WhCCW6f-DKSN`Sa4tJ+V5fW8Sw#IQ3{0R=tm+1fbOQ*73(|FCkb7|6t}IHmkYa z8AoTocQK7ON^`Ijqi~^j_^9$={h=^iGNW_L9rw2AxBDXHYKj_& zgUo5wQfG7|6ZLOAYT7XxUIe6(Q6hoMc$Jr65#k_I4QPHv7O}=MJR}pi**2ofr}Y+~ zs0c`JuW)zST^eQZ&nk68hW$#NrjCYmr2IMe(bz1xE~PmSiu2uUF>)-MN3Pd~bkqk- zIOq+H6W5d7wJ(B7{D$l=ZnMc)4VjFOH{hO2$sG0|ndV!1(PfR8{=hoRd@mDXUk+0d z8RhFD{NaGl{meUreC-zs?rDD!maPWkjrHf6&)NnwG2^VUr~hTQ~vsz z3XI)IQ%#5!*T$zxaM`Jp+cM%V>aF7PzWo_y6GmF&2|Z3XyI)HK;|MIf z=l-ZD)-ILdjxyO{jYX`9rqe4V z`_cR*Nb=}wrr|_GhmlEypDW*x{2XrKX>%L#lrMloe2nJF(GomwN|2p=56NWmB~-_& z=B&-U2_#31VvTZWyuO6n`NHs%@>Kj3)+be3OA_s-(AmsBK2Q;4;p~Y*jn{P#BeF`} zlo8kf*0j#I32J3p4WtjQD#?b5oOnm;NFXuOHEdvqO2NKaGVktx1zQfzZq=(KeW9CaOB9guG?*9ZZk78v)yK9 zX1mOcZEiC&GqstSnVH#cGc&V&Ju@5T+_P_-6EEULMTV3sQ_@OFe^rz!>-!aCLrK&p z8nGwrd{T+dm~)&2#ayJi(QkrEXT;~?egIJ$>lEraszASV%}et#Ta*$?&fPL9oTLh| zF&X>5n;C^~)I?wyxD?RSfar4ADQ7t*dWaxIp@ERUplb+M>m%^*48fyVVmqiU3+an> zGjCB*zrmXVSXZlMAhYG;tBQiWA{*u#e=?@zVO{3eLK5NAF6DOYJ9OdIF|B+~`UN1) z8++IgN=3(s zT~t@XqKU|?e$^(dUI;m>f-(rt-bWY?gx9T%ns-ET^+)ldW9&(;2!eaW1h}X)}a#=ylpt|j$>G} z3aF9P3HW5NRFvXa5b!?sIaoCfs5nnnAkqd=%*-2(36%A249VH@j;T7Ez(42PUloty zmtD(YQ^aOOYLM(n;V7v(QV)aF;SP{8cL*hxk$tRjD#X_msaqJNAX|A+bo4Na1ULyL z$$adqrhU(Wc@Z?Z3)#0T)86JD$mRkDsRH#OcFWxmB8{PX`KY%H4 z=}E2?b>Wa?uDavE*Bn#9BAk*6ER1ljE~r>NB3 z^n_!pS3$PRm5I&7rb9G|8hbb8syup&FDkP#z2_ASxv8LZNeTqd5O&$B*YCR$s}uR6 z(Dc5JYG8$Ks!nU7Y4>Q7YXdFWHlo(E(Efc+>FJXXe)c|goM(}HD5b6HgKBZ-AxE#( zrb~QvP505?h9d8|`QF3fJ^bT+aDCwRO{_X0TD^j$jM)f{`cfIJx$?0-g zS&eXU1({cY1%vg8{W&OQ?9VzYX^K_NbFhI{Y{T{RJKqH0omnImr0uM@-h{2~Qol}@ zd~&+X%!oIy>7M}}IR`*TC-JG%MjvlF#@A*c6Kg?y<1UTjD8W(ISkFXXHr|`AU85H! zN{%8YBqkGZ{F>I|cXKXP=i|!+Yp;v6qre7~ddr-5YoBc9V&7SXNNX;^dVS(r6dg9# zWjOViE!}#4Sw33ZX-n?_E6APr&z6B68IQe(<8?KBHFXHqzGq)uoQ^Uu36=joVzyD& zma^uNkA_u^ZAThonS8#Mm0ioFLV{GrRy$bxe5GEM=K``?xlp*6Ozm|nQ5(7)$(zr% ztLViJT0<{O@qNlB{22;QdHD%_(_88%5M)HGV3N->R2U2Q&-~xt$!NIj)(=VzS3VkM zewEymMie${T7i$?#!!tba7${{NYCBlKU*1k@sl$g0EC{g(d2t-Ist{lItr#1h#n>5 zpoEAWwn*47flyw=q+9)wQtWBl51@GD=dLNStb4Ya7-b|;UzzHhOf%6uQ6jjv^ZB3e znQ2Ey+v=IBB9g30CdpX4(;2YEj9X^op|)D9^r>dgwAy`oS+?sHq1|bX=Vh zaj$Ydiy^-k00xF27v{0A#wN8mPa2BDhb17>DV^<>iM%QV+t1;Tifu&sJ@*^P(MVuw1si zUkIE2+ZY(4ITgT)(?^pBg%T!&wF&wa(zMFq$D~T2LxOU$6sB4rMVqRVqYlFl(U>s? zFT!5!2SU(0PSfP|du)y{R_r(bdLs;luV`?~F2jIBRq*1aysWGuQ&!?r!+^AKoh?<9 zGlcUgbJtGRsSCoC@{RSNv^F&Ifryp)prme1)t&mwO^Ui#RcLWe^8kxnA47OyO2OyZ z_7o4%Dd47XM{6q!Ww?`cw~Epi+^}miG9LqAx^Bp$K8U^KHSzUQ_reMoZMCCEt0Ktw z!2@{5G7ib98Sg<=Yf;#2&kNXeRuEQ6QLGrpcaqI2iw_lW;EeJ@eFshbw88)}q9*>egAR>LMv@=Y&;sABhO<9%A^ zW6G-|z-vpPMsWH-e0{}!lou~J6;n?AzKjixXp}Es5-jfZn3}(!f3=#hRkZ1`@|C1H zDY8sl>2@uD2@U+QXOY`rjLUKS;;&)$F;qqYZVEkjmZ2Oe6`6&f;n41_$j~9>4LJSb ze2Jc@b`AzM5++G}guA9@JQ~y9@=N{}acoeDkOX44wB$jaKl#ciwirP4X+)eT;_W^T z-w8`V*=7#2&`>rX1~jtgkjpFD(mPE5LSJ4%Hl}=A@~EvtA_R#&jJtQkN}!; zzao$g*Vz;0X`O?1Af$);ofzziR{P!~D3%dGWnxMoB4Ywt-H$C0wV(mxn9eBxQ7-jG^7p>l)PTAo^Npzdi(`_iuP9ghnCG;6<4x^Bf zxTO>2{-B*==!l#q64>_w;~sXe1Kj7@h~F>p8qh`4 zZdMD>Rz{d?^Euh#ct_t)w47+MeHC8MMwSI0% zl$zTA>f1Y{+}Aie*SP8s&0n6Yo)~nkBEgvL=D88akT`Pq%7qZFTsGZ#3JA;`dCOiK znNL`SRG=v zJ48!TSEF!hNS$W*s8nZ^v^B5CgB?>?*?iyXahsV`Zl(-b)@TRFCy}g*4VHV4r+t@& z$}9O1){-nu^R%O<#&v?*$?j>lc0?s*zuU}glnsyP8ii3!A!LTTZe|WbGBJ-#Z$3^$ zDIb412>dmm=NElg7RUps55_z*r7+i{oiLHm9KE{!0+iP}$6bDQiqJ$ae!)M0@(Kl) zl`1014w14x?f7$Yzb(@GrWS{m#YOL2oCd%G9Rq%uh`NyP-rG`uzpd>idG>cnWxs_Mf_d+i3CBx0Cc zMdY<(rJ`0=w+|@@obK*xNC)qrOP400UDK67USq3Up5Jj=`!QIYX>w zic~vEaes^bTqS<5g{OC&$JkdOzFvc=m+Ef!F zsRC_FIOF{$mrHyz4-+@Kv0KS>EJW)9!M8>qLowQ9YCt12BrSR#Qoc1Y z>NSj@deAalqO?a`gUEgh7y6UicC>`aO3tkOeimaAbUkEm(#Ev|0zqpzCRBijX& z2e&b(u&wU2ro->X~dDYogbIW)z) z9CY!!RG{3Ha_ogxzZ_ZkR9)@cQtdJ*;sgRW3c|K ztpxZDlloQRxp*OH+rDQ@cZk_8*3<^mR_$sBnvOWz#B=`s$hFYp0$$z?`OEkmNC*dF|@P$iv$0-}ts_B@>a51yCE6Gq$d-i3{?R=L-T;`tl~d zzvJ(NlzXJzsq)3VXy3^mDT?dE9Gt|;S>Zg^3Fo(HCyexo4NnFg)vojdIgh8% zte=DrV?kU6XC}~7tS_u!i4$z@B+hsv^mY>LC?PaPh2{bXBs#==WYTFK$!v-g3B}si zad^H54IvZ+K#}G94d;_^f~P$^dTTWZj9LJ!~oYY2yo|W+=T>!;iH@v@uMnY z_iyS8aPy)zK<&1Lfc)h6Wm*rLJYD@*HNcSoqj|cG5OMVl(&x1mKSWwT3$j@Dk=uT^ z-weMaV-o$l1A0JvxO1Wvs?QpLUS9dA7CyMr?Wk~KZ~02#m|+VfLD@ashof!Oq8(fl z{A-H&BMjrIAU_gwHwF0$$$1b~chvgBLntK*V^ay^_wSR&x4(rPr{bN)-==yhr)^+G z1nm{r$i{(jx6hume~BZyjeB2J0eL*@w7c~T1t)VGAH~fF&=i)vr~1eyrI|5B_^c%% zfEUyv_pfacJkoMKbC@!*RjAAF@>PpAC9pNqX!a7ue_2pug_<9f zW>Z)V=Ys&DCtn-wnnzNB*$$9WECOmgy+8N6SB4TnG@Sn|&PT_w%mQ1|vm9mexnQ+B zzciB(_L$u2rVjc(mbde3_YZ?9&{qA)s)q7Rq1Rzo<2^HT|2t&-AVAJ?kH&}L_tpgOe;@C0<rY#aPAW;4POwRn&&8i(EDqU$ACkgockSn4XJU<1pRd4j?+yT^jP!b!f;;VKrNH48 zYs9&_B~%EG34%oH5?brmp1crFH@eE(guC{G+#SE&7pEDj6G912b0k|NmL~_}77`(v zoZJA(veB@KnSS^&Ods4;?e{FbY#tPZ{niC<^@@VBSjCvK9$qr)P9U!GZG}IsXzu{O zpEK*oA2q9E;kb;r?QCWb7aA{SYT29$kEz30Y1zQoV zoE2<`trhJ)lJm9YFglBdI+hf%8U+-L!{b3W#|vGjU>8oaNd}L6-bhq=@8Zf_dr)c;EF zYlVS{cO^&TOADUWDJ4lS8o)(-d~NDQ26HN*yt&FVKb7i-(Bt`#OFI@kNwGvXU9^$@ zgapeEjU1BN$0^$BMa>Kout( z^Ngy)$g^oJ`h5w*S;x_Yp9Y_=!Jvt)<0m}>OHseMx;)d2iEp4sGnmy0+hkqAg7zJ*nZl2lTwL%OII$H;kU zNBfu4Wq3dYA%<2vquH)VTFe_Td!F1+b>_?&H7Hc55mTqclz9eMUZfnXB5l|L!DafK z=*pf|ge0PDC~@&eG9j_?zK9>)$Lje%tuCL69R2p_^k22Gd$`8Kq(7&sbg}Cz4EYPgPE-`PoVmaysvQ= zOn}oI>tu;t$otBzn1+ESl|}7LN`! zIRkI}4#W;wor!<1r5OXZsIr(@$h4y`80%a1s_~4M{iJiFwhxnL!9m<%T>BCLoEFdM z5T*a)^wBM7Ie+!ZE<#h~4^D6$1nD8naFp3O%^(ot%%eVG8>5b${{?b$1&zT$~-4Tgx66b$r{D2$t6Cc@enFf zWWnh8bI&^DPJSb14Jvr4vT+7zN}Fl>LSEB`K_AlcA#SdCRJWQTy*m4E_ZSg#Xf~}$ z7y66av!&zejxaa_k=Iyv=${9Z1X0JK260CpY&l(XAgcr@7#$7Qb_SE9m8$^Fy4Wjq zjE+m_T`_2YXbHp7Ne1#hs-iY%in{aRj|yD+>;rd-^@CbyOl9n9FHe^EX_Zwt=~;!? zJ`!)S7la6?2_&_1xOuJJA%waY=hFLysevF|_v1MT>VP=wu4$Bz+4ea3u2Xf!GL2rr zj{|ax`N+5HLO8uM;~}6QkST08sN-3kxme$rbMn*}W`x@kdX5DdqVZ$8`UBx%b>5&D z5?Gl6scQEty^jy69AEuC*H|Cx^XHp{WX%PD%B0AJ(5VUtdxsq&Ep#~HT2(#nSnfeH z*;b+L`T6+uYCfO9ERrKOx4zFabSup*&6r3-CXJK=uF*z(G*k?&1FTeO;tYnu4v^;c z7L~BY30{Fl%Fjx4Zzt)W*-~nEnbR_P7Spxa?(3z?o`NvX!Y~OMJCfk#NZM#ns_|ID zYxI+sH2u(n9((Ns3hniOV1^u0rYVXs_Mb;Br1wjili|6&Bn~jpBy}(Zb)w=TJd)yI z_50%J%Gte~>#m!SLHbFsQKmagyh$FxTM&Z*w%x9~Z92rdT&7DJes)Q=a}L(yWf%+C zo22Jl%*tz*rcWZsZ5MWRA}&GM**G8mcr8k*pG4lyTx(jqIwN4yIwA1&UTr^$-{J8g zel_P*O>xU3Q8Pcn-C7?83lK~rkAp{B8ofI^%hp%xfYgBJm8dW?*a|LG;r3_)G+2dO#{$JbXE;B0SL%DotT55? zwY$&|6Y?ZRe23fBg!52rbf#>t&ED2#{F;h;lgG5@!T?b@z(uENeOw2 zWam>oJ2ZHvHCCF>i0{lT<0Mz7SI^{+2F=C0Q5mcssrq`qBB(k-&SU3MU*aJ0fzfgV zw;AO%$M0c}k~{8Q%}m4gKm$Bd-IH!0B{cWZ$C#|uph%jZ_l>hjlp8i6>Fr28ruk;1 zb>DoSo{=O+@zU`q4kcsu6YC{gHKLP%rlF!Z5ktjC9-B@|f=1SS^YpC5r}5F5)a>QH zd3sua!3x?;&hn+PikmWM50+#F2p+Dm97iO?pdY#sS)I#>Cp%19>_!RApXEiB4D+4T zq*s9}(6~jG2U9qkj-DKJH)L==IU~Tk#_gy(uzn9-UPm1CiaIGjDkiK$}%)!t*{gygpW?_*PDz@ig{6G%ry7sw@(}<< zZlqiP)k6S^XIkI1mWIzNwP@4EIGdbYfZaF$i@LB)K6!bFV+^H2(;(Ocf zPrrtv$)F36qO(DqiGxrGpLY2zPizwK?GpTIYXqlCX`m5O$<(ZNMpvE1=0LDuds19) zBZP2Ig$PXKNg|Qs>zv^0u$~O@IP7QBI_X4uHoqm5t&ii8vLip6_DWd3O5#k~X}u%u z*86H=7P^-sg*-z91BZ~ufMS=8=}2&~^%DvkiD)n1*(4QnvDych?1d+<$?y@KocoZ- z6hqD8dZQ?Y)Bu#q{Q$~yUw)eUbAOs})o-0)?O4jsB}?TEa`Rq?RAM*djdMtv<){;s zeRrWx$R9nHI1{hrq}5VF)QEl@w>Hcb6@55XL1Y52)5O|(?g=)if*A@Ta|>yF=>B+@ ze7H^!1H=iLm*TC<`m^xe< zksLzF9oQHOt`-;yy-k|8f!w#5o}1*E5=Zyi38PV(mvnhC(56DQ8G`1PJ8H?wIF>xr zspsydg7tn#aeimTM)8rde&aw2M=!G%n%*xPf3$>N*g%jIs5@BcEOQGN|3IF`ox1`{ zfrBN2B$^A0@vk)d`tq|?#SNs!v0#y@5(^d+_S|y#V1|+A)V)YMd<0_2E>+@9g>Y0J zYWK2MRJR!Nh{mHsEIGxaSczCb*ilk>Ut|kK;IyI+#&%hA%;mRi_QnEsaiZ2r_kCu#KxcB$XOeqWK-_UTo*g<^tK%%!^>aVhRaF^MLD0|f0 z=*%iGIo|yEn<02LPV7DT-5NP^d+zn?u@&bOU7>ERC!&M^Gmb+BW(ge~H5}FzI5e8ou_>RCTO_&&-h%m@_D359^x?b3wY0#8m7qD&vvw3qD}k?isve)u~{Tjq={ z!{LlQWS1+Wwcb&9H96ni&x^q8Zmv>65ru0N&u_z82AmXyAp$z-#LReN>$r>Pd6)y& zEeJ}#)^8f8$A>tctwf6xqFWX+_U3U`+}+gA@*bSq`4_;W%4s_mhUN1_&`KxyZ%M<2 zqCd2CiJ2(NgT0&v6gt3+i}EZ zDg0(?MTUJ#`2#A#%<%w89QMu+V#0fv%StYgG>=~_;`7IBVKFanNg0A=q!cL9drA~y zE+Cc(TZ)oq;u{%Hybm0+LUMmoFxOQADObBU74UkI!G6>xY?0_WI6KlnDOG~ly@0yV zOk18KjJw>i2<~6c8p~m;`lVez>UiW{0yP24;KOzz%H)C^=Fxbh?0Cm&{Mh&Xa8k`I zmi|$xVrqDZ&p1(SgiTEoBal!fg?Eo;W^SQ1tj9{kh>dT9>>bDAuV@c-XLC=Ax^Qqq zMnqQr)nZpN#OD^dSXo5(O>RQ*ZZL=GaR7|1uvHfAy;-(9j*K3 zZ+33;b~F}v=x#N31BX~+e0y%zj_5LY?}ou@f%GLU5v8-HK`z|E_3kh_S1WINSOC*! z*JrF_o$ndF+ck>+NWhSTok6r4D0U1YtiNUPjO|yGp@w8(g#eA7OhXJglNUL8q0R#Y zEdl7Zg13bBLh89}7MJ-uIq$Cpv~koWrFg#dR-C%`ZH1B*iXO< zL__w87*}AiO>pT)t`Y*MEiq&hv9;)6QP;MmBmo0T4*`7gn z*O$O7dHT&k$ghMc&&}(TCE-v6G^W@(*jVv%k55b9!Sb?zaru7s963K4BMw zO-ejRZAlTw+*4Z`bj{l?c~RdC<|KVMUv8JjndRscFA7;p38gU!)a3HTsJVYbVAqpRz$|0IE#R(r>F4vgf8t0gx9%6No)pTsE(ZTzN=Fkf?%Ta> zVPwWF?qC&TuXP{XqL`0nH@qHqw>tu#0}W+G>WxXj*Kp-8$EFmpXqah>>tuUl?wJbs zz?dc_qg{K=gY!TR^YR?MfIbCbeAr@&AcUr9>Eozi7Mco^C`UqHlJ7O<-!E8>#|m?9 z=G5V*l>C^0ywx<^k?gCCJ^e)p^&*H^R3loEknF~%Nr ze68kGr|@L59??-gl`s>uu`9^VDuojehs_ypsvZto6g*I5`bRg`>4Cc5>cpiTrn)&< zY8uk-Y}U#z77MAK@WkUK6!by3hE3GW{ZNPKDf_cuR3=DsZjWN!WNWW(G>J5VPQkue zt^(SV;`++>H1nM-xYvw@nL#Z5-qpwMk_cNHj263{c&*ewV9mrB>H(cBSrByuc2+aC zbk>!E+H(51A9pod{P%<&j*o>7Poeq(`SCChOcW-Wp{|Ktx@T?{tk4xy?rSy((uqg8 z6gp;F@x-qx37OFd@DQG{_1EBfjzwuOs20`E-*i#a8z48 zr0y}r>|2|d&c5V$lg6QH#Z5!rvWg>(VDm0z*-Z(ZWO%KJX;xaB5IS(iHzvnDKOhQzq$T>h4VGx)t@uOH z3JOJ2`==0$VbzA{`RKPv6_O~7-4*o}R8X|Zz1*yBQfAhwtPM929F8URE`ypO+dDQ!Tw^XiVWo3ua%56=%sO_ORQMTw3oZ)2=REkL45_3(Yupfh{m)iv_p32 zL{$P)1}Wg`6yQjZpw?hPjlD(RmquUCX=_FH+c%r;uaZ&ZqC%z9cJT^-Lo*L{wZY>7 z8h=!o{ca8=IY74X(SSY{pT(#WIQZ(U6d9Rn5EPD>Ux!zI@5`M-&CpJyv<3A>Ml@05ws?yITxl#J5Y6(hkbs^W5cU0pZw<&mm#{cbI_OmJDrh17N#6|Th)A|A zeSJMZ6rRSqm(`N)wMx2e_U0>!Tw z3mrDbajB0qbm8sec{Sd)A});etGlU$4&=(X0=H(o zrjl-;cq&_3rOPl#TVXAGX{muN#;%*8)VjzByT|7=DD9qC>OkV*$xS5CemcUsWbF&p&1a zp4OD?@3G1Kl0Z4z6tv|0?4;<&a4VQu;w^PTO_o|XY8Jrh_ElW7&03IgE-6hchdtlNQpPVuF+XpU?Qc#b%}F6kcFT_HVt(e&+Wy zu(z+-YPJH2^DZgd&>L>%s7xaC{Rq#V#lNkFbY5NYy7$iFLai&sV?}Wvl zE(7b*xwVnSZR|b3)G)ZlH~H+cyL$yi5;ltdrg!Ymi$7jhk?!dQrB1=7VsI}II1As0 zei|pZw<4Vu&v6oE@ZBRN-)2~&`Zafn9Ll&(DJ5KJua=d*KYsBoKBaK3=mpLNXwDSn|u5q?LHQo1wNBVstwZ0p-N7%b3V3l05 zgA10*aL7PIH~2^>N;3E{PyE6^4_<>AH=;m_Es*W`_Fq!l|BK7a0~)`+yC9juk92rVwweoh%=nD4#s}Uc*d=?aIU+yH*z2 zeti+mHm~+Nn|@iJB*E?{T!&)IM5wYAufuL}tW08sgdL*v_&s8L9f>U(A~`T21akfS zIbq)|9Q;M3W-#LMiD;$4ybTy&-jBh-&YG}rRcp3aTxVk&zcm5Vxnxap<4!~Hi=*4X z83+=;5X!N~IMhzAeTyMY(D8l~ycWIC$0G($!?3lKVN%`CWAmQm5RQL!Ec(>=5y%m^Hym)`M0b45W`-Z{ z$!Pe3L^Br1dnOy8Fy^XZl{f8V)y*nLlYWy!>0w;8)plpztEuZ&Z^e9+EuW0u=s2i= zwF{6T8AaCUt0#+aWF%Gwq2<^~zu(nLUGFPx09H)$MuTnVe%HeiyiE;XKE7oFB~lHt zB<8{nb$-o!(AI8^H=$jl?c*vt5jGBvEF*ED1djZbo+&CSP|ytnG9)?GXSZssgUAJq zhv>H$%^$Ge6ysl9fdt1sZ~cWmm;=UHh_ofRHPaqeY4um$oDq<+yMAqnlM`p3IM#i2 zxD8ZMfTH>cx6kV+w1BVqU7KQ-q}9w;kprzoA=idw^ug;_=I}26Q}xC7s^9)3$|bS; z0bP|V(Hs6+f+V0~^4sFaP|eiYn?S>LQzG2t=n>N^?pX=M?z;K`xMYYB*)oMN8rMD* zkn)<-o~g5yk5z$-zKwM0OEhJ-(#MN6c@aBc6L!Q$7-t0?75aUYvjtX9brQYB;V(C_ zRo_-%;ap~1NiOs7u+d4D6y_F*&%9;B%X>K!0l?4tgM8Q)c+*mXNPWrPXa11bkJyQZ z#q)I;Q<;e1a~1f*K4>x1_7$gId5CJD#;5 zr|R%&``L1IH(zjRxFY#`RQcBT_nW^U7ID&;=hXs8H-Nvt3ng}fUyGcQhROJHDr&UM zL$HJ*Lyd7vkgFY`aQWN>3epJ>*w+;^%l&Q7>dgTVrMnC*dHN+#==73b z)u!EcP6OrjlKS2y;94O{>kQoRo+!ym63d2-eKia7UUurhK(4_7nT$eew*iU|F6#W+ zy3tY3-f?2{cEr)kg>KX2oJtWRZP$}LBZDaQ6KqoJW z13=$T^XF~d&E1o$ue38#T25DQ5$yzV(*@g*8f(8gimasy_e{Ahg_p@1k`$+SHBCA| zzXj*H&GrSdGxCl$c~b+ONr^#P6Q?56v|_lGOA4TpZU#0}ulhGLJ&?w5il%uH&&*O2 zXzHqInOvZIVv_Vq!3^pijoTx`8OoS{-DySB#mgmwL0t+?*-pva_ASyC_3%MDHicz! zvvu4GmKPWJevmPJgKX!Pmw#bx+)ASPac50Fw?KBBx$Wte77rYg{rqh^pDw~Z*7c&MT8=>zh?u`8QLDl-NEN{mx~5%-j*;e>8z8;)uFE<;FMgaS*ch&J zvb}5`-GYy=+2idC5>?o)qN5qPtg#zp%nt*9VtAqAaq`IAvZ@N3g3dq^_Bb+fyhhm3 zF)^#-nSK#7Yf+>kha+8W5A>)~rhKh!^Nbgy>jSPOAw2KRy*hw;m3h<61XqeS|DD1w zUU4CY`CH#K&s0+%E5+XjBoZ^(*XMWf)mT1zqxpzsTr!MEXCpOYbxB z7MuCV2@}$F;<^HL(Z0UdlEPA6rHqQnq9@z2idOpBSTtf%Z$X1d=)_mS2)ASa^Iiss zt*V!)PP%X}z-MC?IQ2Uqw#=dVv5rRlc&((WP-QKl6GEsOZWuZ{ic6b(xsgOF!#5`7 zd%nBCx5%kkheF#@m7ei80vp@EKlojD3pL#FO;cVS?9i!v!G4W$d!yClFgNtY)ih|| zk^EJ~@ZA!!`l7mj+9vAvvr<4~Q@w~8o{fdF)$s8|CaR8~WfV9l7BK1x`_l-xZ@Qp9 z&d-R#X%P|aCTC+opl|2)#3VwaVcsiTCEb3c&^2sc7f?55fgP|>FMESl*b*J7wXGl@ ztS@4_$i)~*d5bGkz;nt7iH6_Ac#DIT%RKm;PA+4~Wp%7d=k?M1TIM{6Q-ti%>FQxA zSXU42MJ!40-F~;afe@^OTL|^Fr)sB3h%AY;ujxM+Ky85C-(Z%!UU=m_F!|CQXx7v# z0BOt5vS~bObbiw5>^ZYslf|1_^ugLr6zV@GM(jvs@v2UjEbyhTwD7$OatBIFQz&WG zMBD-=+DxpAIF6d&1O7P!2UH ztr_{K%Dguyd;vSwx6{gW9%cevpt+LFX;|DfvlGN+UQg-bNF23;@8%IX)yV&it|HPc z8~f_HLK>s`jUf8Q#;XyP`sIN)OtIYMi_AOEorKkKW86&lWnELuxGrfcSzEaq zF?lcp?>gX3M%$lMqY@alYcT{(0;n5z?v{DIr_V>sw94pruUc!3_E@&SDoRuu;?HY4 zkzv5(K{T}fT@zcREnrK1Ri>! zOr(dubCR6z&&+bEZe9nf5-WPoR;72?3W5pcP;SbZrk@zSYw5lvo?dc{n=x6Q5{56d z{tt={UqF(g83h;mf*&9ysipUDPW%>?Kxer|^k$Dv{im~afHc#dg zV!jopAN=;+5(6@vxlrLA_MrcyS$JZZRq;)P44KMvz#9 zgKL;p7YKo-0E4AiqTMk>2G{k>(p;LLS#~R1uW>s?*;VjY)GsUdQ#XzEhyvrN@`$Vl+|_Yp(P>loDl%) zl^;m%9SYRxj7r;rhgOd0gccjgi6yv>HG6wj_MdG%zw$y=F1tp&HS z3$HbFY+zq3nCdYBYV*(tSw+HY{cY{94p*n(`{g{uMS)53il4pf1&Ls+t*aUnH@jR<{O_k{?*jT{@gbCD>g zcs+*szYIf(je>kl$0F-2`5x=Fh9K)DpZq*#4SgwW6$&H6<92Xza&c2U?ZC~I$;9^@ zhB0qnQ^|hiD4W$qc*B|mFtO#Of=lK)!PeV4IRBfQi9d?z3yO-EM! zLPDb_GKWdUDchh@g1@gV7IU!W(AE@Y(cTWyUP=tjV$|F|3!<(?aw*`q`Z%eXRkfdC zu!Nz|;+yd?cpk{n2eigHj-X3|udi90|AT)Z)!!OjR2jZ_uvUeDIhi6b;UNguq0)T? zfh5BIMBNN7;X0EB@w!w_gc@>gJNC=&JC8OZ*Y`(o<>P^)pD_Eb`=CbkmO?5Ozrl>f zOFG0}>7i%Mdd9|)JcjX9CSq095`5Afb_NR1rxaX8I6Y+Cvy7s|LyJ0qR`iiHRl?&F z57kf9B$iD!LRy4_RvbkN1vpS$+Q9>J%^pKF!8rwoDcQ;8dM2jhDs$gyMCHVMcE!w8 zOvJh*JkLjQq-tjjEft}SxZU8S_+9Xn7gebT(EW+v=t%*nz@%9@+U-IM5kZZj0 zn$FZX1ZY`s3We3eH{^c4A;;QYg_jJD;4*&f;w?)1uY&=;D+`24eVJIhRL%2sbe#i` zbzOc90M6*h*>%n;n)~7ffSlH6C(TkS@vdUU50?&&%0!wElhCf+)*i2=sYsL0vmBB2 z*{U7?u2KcuG+?TbIKN3HN}phr_lx637{bH~K3#>mrIXO!?Rnkogq~j53JDAMRZ<1VJ1O}_ZA9+0(j)R_Nj90m*TlB9*!ewS zNaD>sRem3?Ky&0*ZE}_AhQ!SLOVOboQ-^e*4cgk_5w}yr@+~KuugsHA7pzK9-tSzu zZPWUnLjfo=%LRSpAD4^ZLea}YyCK2;`naupzMvaW*5%eldWbHMeY~Jyn^;bi8d(*& z%Q-V!g;3g$Q81VxqyEyO76FFes7Ll$7=ZoAb%>j0xe10~%Jy(ePPMSKe9}XyJ-L~L zuiLp`^*)gP_C-XNx1#Ogl5xZE_nS`7UUnB`>F@KHGr(QOvAvb*Fu~DgGu=*?jYv&7 za;m5%oDmR0_$J882dHSjT$KVOh%g(wzR~&0IRl-4l z`oqt)GcMwe-ZcLuSkzQ%M*KCw^mBu`ALnHTdrk+$2O&fi*V7KAxyOY+#L9N4S71Eg zj`8l-RitcjxjOcuT%+z`LV7{@qLC>qZ83#)mRd4gOz~EXdovG*0-C>jNR3;N#vx_} zSojl+Yj0`P+0C1X_8Cqce0P;yBMgKoDxCct*%pT;c~5mVy`z%#LrgN;0*fI(iqhf) zso+tAy+>ozk230eN%v--3Jsw7!$)#q27&Aj*TjEPD@mDA$WVQ2GOkugDgK_85y5_(DXeKCYIIa${2&!jX9 zKdqlwRc^l`8!ysf$fxk8=WEB$nzc6Wk5#Qy_Wjp?tQ z^YY?<=K2YKg8DP?PXg5c3#!KS|AwmlUx)iURgH#$nU?-D*}u?gtbZq~F@28c4=~$5 z$Z8Cq7%3XYPn6iFM;z;?{T#=C_D(c5rZYC9Gq$8N{#*cl7+UIE(b+lKI0B3eEbYxq zOdaX;t!zKN67{W({)+z}}b89mjqrbfR z=-dGIHgq=D06Iq(8#+f*d%&mdqK%XNXAaH)ItQ~KbPfP#fHmEp{*rXoW}hAZqP;l) ztjzve1K2s~TYjbjaBwuUv8Ma)7&wXl0D@Ef^n6sOGqBe;v;a8%nf5=&_-ExG4gVMg zodKO8-9HT>KY?L%=70C!qqF<(j(cNdpT3IhpZvPd7~5y;vyJHw?%bzS2F=w|37H!zu00j zf2!mEH>KgT(*J8TtPFI2>hAMO|2xL?FBRgm{@cKk^*;do=p;UGpnq-1#`7KP&qa^7l8lO-AN_DE%}1ukrjB_TS&legDb+ zV`u(+um30dkCE|Dq9?%G#L@J>`fD<>Gc)|J{WTR_x#KOcNHrq{W&#N-Ev1vkmuiD7 zSrX$=7>#vcYUu-|YIf1hR7qp}tBr?ah6qxP#1kcY#PZ2Ujra(A*f=E*PF|lpy*)cG zJl|a_Uz*QPI=mL&iYWE9>&76J@TO8Fax8K-$-j5aOmA2HAJX12NVczA^DTQ9ciFaW z?&2=nwr$(CZQHhO+qSy?efr$D-#C5ljT;^7%gB*)uFMs=R%ATCIma`~si7cqc0@zU z%7}jr%!VqA@nB&yfyjV?k@avb!10{|lW_}1ROPZ{gQ&>)qcP=W^J1@9LaGy<0v;K} z2oLO&`4C23!Nt8|xL`rrc+4a@`L&P0p) z;w^El%Ka2CZe1G+n9O7=>*7%dSVOH$vO)sCpg<}>g#yC!X+!J*B=SNZaK2inyvc5G zBnWZ%5LSW9*0$`!J0~E3n=;yQ3(~@q(?+*%A?KW$cLn z0aE`4iyHXQA`MbO>gNYa5*>aA?qZXJc&UVygW!GJDSn;=-6J(V_NTeR@TPuRXGRez zn9)S%$MgA^`VNxarspNWpvPhh3m}XoL zco78;;R6(c0)zqYvFS1f$q*>KR|oK7i1ndO1XKOlF!&44Bh$@f5)(3cY*9oB$g%ceqytVU1c*o(TX(&{wSA07O=(pOtc$BFh* zVVf9WIVLVbc*Ssm4aEr6LGISD93i~v~z_2ig(<@-FBCnnC7t321&U*!Qppbk? zk4tMaGBP{0Yj#1hw3pIh9Ylxr{cvMMadLSgF~sxbq9Z6vDbT;&vR;B1W5ot;SfXKb zzN?vruUJ3$`oePGL&<9rT$bR!2Ks~}`;W{R%t#x1~Pad^JI zJltE5f$-T!V?w_2n~_2oYr~7)VUsHifrf?1h5>;p@ryz8uM_8;P}Zm-dr~?(D!KN! zfc0Ris*evhU}xy#5lP)V4on3%r-gC(_-djAZZAIsobQr^u?!I_a1WOE>GhR}PPX`z zc?NmNb&bZ4@~U*zp`Q&feRNY|LaT?g!&Q6a$(B6A1H}AwgeQ6WS(>xcS*=oA=OC-c za&vou?awTi-7adb8*A`RC+ExgxXJGZd${|;#1qe`#@hG<#e9%Q(13?QIgR;G+Aw*WN|R^a>#ASUytVbyP2+`%~6sj%;i?-qjxFtW}!pF`TFn5=pcrZ z7M%2vQ6eXWq@aP#Q&#a}53GWJ(3MuC-54N%oWdlD`r?D7S^9{Hy~CnX%$1Kj8;b2nW{ z#%=Y8k6^NZ@9YR3_aLTSZ0pVt&lGxm1SQtTe(LY)D87>*KMSj#q7`Gl;Lm@**@S&@ zQ7)1M3Jk>ROLw} z;$#1*<0W{#*)BhhuoxOAf!P{i=ayBwyi$8ywnIjnLuiaW) zIKkD30Z@cfd`5U4n(4_U#(r{K@FXy4V3t%7%w@d4+bgk%_f&6VJdjfs76(#)X$7l# zsiur5Wdv6EVz)fmQ&6ii@Ry?L#BjdWocFRxkhO6w#Px5ZRrqrvI&2V_juU7KH-vre z{I5TFZwy>B1_L7Jtl0<3a@^Mh`*}Q#_QudsTuoIxWbr0TgE)gMP=Bkt4E#`8RVGi_ z2}>BV_3I_%3Qw%<@>U|(#|*Ahr^-cLE!eJ8|KJ-rbik)_PGe_!R37$lBfHEIg`^j| zalU13k3GoMcWfd3P1v}*616-DYlWASttV*ju6-7oukF}Fsuuw|Z!@Yj0) ze=M7k0O!iO*nls8;ajiiW+Na?B+xQ`91&HL`nzb<{9S6QBL#Y$hkLJh#7&Dm%yl2t zms^l^@l-g8ELI;w>AYgbs$0RAfsm_DLVpHd) z?or0Or9-(KQ3)Wey#9;hvNJEu-gPBKN387jy$QKKGGqEyK7*q8w6gQj`3Rwo!!Z9> zs#bLXi2Bh$xy@qR;Maip+)n9En4Ard(qyfeQhnV0!il`7*+}co@l4OxN54{18!KIR z+bZvb=!)U+oKh!Q5BJr>xlBgM7g|1`+UnNe}<+>w;!gcE|;c(U#BvV z`)V(yBb%u3THS-d+bLL*+R@T+w)BI_A6}mxqGnu3U3N(?Zm2znJB_FIn5^VY56$nK zCcOEA7WZW_70Ab<2EBLloS_8h#pTh5f~d*Ay9_`=mF12^04tUMbUFWy#)?XDB0p%kc*YU@3dTM7 z2Kq(N&XD7~;|XqxF8k$sem9 zcWqNEV?0I{rhoX-zq2BSe`7^I&i4OeMgNG&pTYm~;8&EBla^Qg$Ae$x|4fVi5xV~d z2L4I>=Xd|IKFp0SW)78O-eeTq`r( z4{l)l2c7)K!OTMcZ(QNO!pi@=)qeP&sgaT44@c8Cw8vBbng9PNWO{}lsDMZRFXhR^ z@_(?;r>FZ-<^Pb3f6e=uX!8U7{x$Ij{{8bK{p48wHR>P#`X2>L|DT!vUBNQ^?=JuU zsbCox|G}RBDPifE85n==qyKpM?;4i==jmbnpCb1E+r9p>Sy3fpvdJdAT>@eYeq)ok zMZ)HJXmgX>#K!q~ho+bNC%5VU`B~ZdEWY$bJKf4L4M^iQQP#XgZ=S?-KomCiAVA_I z%xBA~ZtP|RW`yGtk`V^Qh~$&%8!Cq8o1rm)U~*!iYfNc&0&@UJXK!B*5O9GFNQDJp zM1sSDGJ^}m&Nnc%)j!)ev4PG_&3)shzt-1AhxD22@J%<1OO7WzOfI&%tRlG?=3DVxwa8CzPOypRq+>NJ3JU;tZYeh;(&LpZ_(_tc+00@fYR5H&zRFmC%i+n2^qs)v*eZ%Y;Jd#3)k8Q0D zo=O8G#MNd-M($=qkm1_Hx!dn#Ypk$+5nJg#56ApU2#;^fjeq@l4@o*Fe={3^43blQ zr#ltf;QHdJI1~He(&7r@qa0jxbz$moI-=I!L6TbI`wVc-5oqyy8z#;XsO{?zs*IWN zhL^+-yTHu+wi#lXmtB4R^AY};w|_1=~o_>yh_-^)|y-&pC7kj9W zcLBS~H#yGCY4-f7G(3^j%Wx?00rf*L-&CJB!~x}9FkfAsHv|#Ill2}5WY{-;Oy&SC zP^#D$eoXuVF3_mxPbPc<7pQgQClkK$Pw-Es@5jOZAnzrZk4F0oe&o+7oUca0_fK&6 z6Da%>T>bku&MKiJbnl z*(X{M)z!~HJj(a(o9xURRKE(WA7}liD{Y86yDw;dC7PeHV~;#k z`7G~UZ{-(W%KnMIr)j&F@#w(M?)T4Q4jnMh!I$d5ouBoKJ8k0EZfka3T~23OHx>YH z=o7CU14FP&IFjt|6Qheg2#)&9@5f(24)R}c>1sYzig+{FCJ{AE*2WW<7O8W;)s85Y z=rmy^foUw3ut>GH8P`M68qnaZG`T4D`Rczk_nrT6kc{y>@YJqDcgY(BKPN-ph64n* zEVMRzD*JyrOe=Xro;$EdbGy$4=O8US6=^pYU+h3Jp6eTirUe44Ci|1RhAHGxfY+20 z>2$7D{pv*T#md0gJ6$T%#os1Z5lfhn!yfBf?OWQILG0$QlmvZM3+ip0snS?=Y|;6k z@fnwNnFn`g2ztdBA;{=l;W8Y>O_GWpZ!97-dul)_3W!g7zF=yOe?zwjWUE75fQ(kLFT_eqL^4o}F@Qjl z2wkC;%F_wzLyut*EvE~tYXIE5&y+D@2q{6RBnKgNZ5t=3S^Z5n)VwO9+)9#UL%l}n z9hP@Uz4?8*P6+4{T=Rx0{OjEE*_LaA^GyLNY2%~R)64t%>X+gcbBnNJ)lvKje7C)1IX$nPq#lWuQcKIEofDDoUbNpWMc+A z(|t2n8LiMWEBxZfT;Nig?RU?zzDTyY56=;=T`K+FB0CA?SU1X}LYzFP>WR3cFubw` zmRbSfMMfZ#P*iN3kv?W^QREFSRV}9&Ev>uWPo?a4Tow}9jM8?xl?Q*q2gHgYzGkRv zYWkmEFEf2Pvd0~xm5Y;A3KF}jY4_dTVc(Y)K9VC|g($9)@bjN_Q6tnvOTH*NDRPqe zU&#y$orh@~nlXTUvS& zOmN8c_eFYHYBdGgk`^rfjcnQz$j`p&$W9Qp(cjdukbb{e%u`wKhM7|#25~TV;}qHV zEbxF&P*@z@L7ud8ex3SV+e!e6Ig|VyuZ(rMpI- zNbhmvBJp^Z2%2FSwJ;yafScy{JgUA9J`TON6gPwcWt>q_^UHnoZXOwRNlJ3Op3EUE zh;z!z9ZUTW?|xBf6+Ob$?$uJ(5=+R2l0Uojxir$*YA!2L-=UIMm71fc)TYmvbocjU zJ)xOTgiNjmZb*mC8i>*iknl}mP*nk*r-U5z)O9iRr)Py3VWmbW5fO#tXqM+^MxzIE zuyWA6y)>ViyT1NG$Ql~8-^-5%EEV$Eqw>I~Ci>~RcF4WH+`I|C01~f4R;dks# zuOdkp*1zXlO}?riUb&|ZyIWCGHv+%hpUGSj3VA#c$u%ucJ-DWxgl@A$F7(61t9T>O z#8bVB-I5akn)jxWIBGC2>}YwWHy%I{dDl1yb`bi_IHuOlO1yO7H=5E8AY)w1^OF~| z5nj0-pC~O&9`b$ON`ZzJ?qQj8M}UbN#&_UI+VO(Qd&*AjD!%^AJ7i>G=`*CHbrg^i zwJKUQU&w68$~MX)hxKgq z173O{SgQ2%8L{`?<&b#*o(>#n05L>`0PE^!K0Kdkl;nXV0Kq zQV2X7cX~hV+ns|rBXECers4*{AD7O=SmDRT-0C-rmx{opNj#JIpu0S>?1r29s?$=@ z4WqS)VzTKe$&c^vEe16I3KPInYYzZXAwYs{>EHRW??Q;+U0aRhdEu~VAX{a*RCt+l z;km1tQ$e^FbIO=bb&n|$#JC6Ih_7B1o z+*xP&ySGdhn<3BrT5Iv3h_ec-{D9rkqRFN&edF<51lG+hcHXk&mUGZC!^JArZ^1BM# zf>cOEl$kHv`OMgmr=Au7h8slyWZOl^P6^;ig^%5D(SgKUAG(NPD%(yw{(_GR790O) z5ay!z8liLFDrh`tNt2VK=KgXTn2Bo2iX3Y?cxel=0dFE`2%$~H)3k3qKzwei!SS_f z=Au|MWvEr0WS`2)hG=L~$PmfLR>?!}_xAiMl=c*5OgT=JCfn$JoM~(+gN5E&&=}jC zr0>Q>Lnc41=P%0#e=-wg`P!TT%lS7#3g&bj4*`Hd)WGXsg&?IO`+X%8{rmSSv{|pV zlig^vf!(G{^WM;P@wO@br-lTAOj3UxQxS{~y|{bJ+TAcilFnW*Ozy*kyq$@t@7X&H zPzm1K7AZmbTV>!=p-l69*;s-%Poo~{{c7okaMnR-^=l90SVx!Bxc++D(}kLVe^~T- zJ!NG(^uC1vS(z8g5W5*_`j%G`tSKiogvwX-zE5eJrh`lEfMMmstEEfqiXFLrl1-IVFVktS7?s@4`N}&~@hM+OuAO7jb9^j% z5EOjQudx8vbh^ENk4RJ(^4U77XwxJF;$?t*srKSgsK0_MWneBThzjx zz_^dri0R@@hqh;DVEPs1sB1PpZs z=MpKU?}Uieh$7;O>CfCdvSqRV)(~t z9toLmOkQfwd+(^#qfg$$*CPXnI_R2hqEYhBWVKTx2=vF=qRVsv8CRm{;i%j;9sU=9lz`sv9Y{w%HM3q62@z$uQUevZ$ z+Fs!_f@BE@D*YoT=zRtPeT#;3jLmN9ans}SbSs5e;v$S3x69pIe zwlP{Uhv%lu5@f4fVj^ThcMS+EAnvGKovY}KB@}%KFitOBXz6(S5;pddAh zB!Vbr5ElROk`7o#dNEsAw7Rr9ysbBXF zjH_=G6Wz}_xX=2@s(hDtvQc(ExfnmgS!AD~NYO zBXzE9`=C>c>f#}Z(rfhQCG@Y$-Dc82?WR>6^AG8^dUk|OQ$v2rqKwse;prZUa|*K? z2Nat*NQtf;R?YahaFL^(T62nAL82pbCl6LL&Dt;kY>l(lrPZc<8B#Qy4*UP<_T<_( z50z5e4m=ZRsW+1u8!5*9yPxQxf)1+Uub;oiz-B}w!fhvNqga@UIxNhY9U?+4dEtju zQ*6!s1mS_qs5UdOh4xBXpcxuhVV3iY^U2OQMh0@g3SSo^U3^t80C?iTRHd3Zt?iR5 z-8Kt*ydoAkxzgeggawf|#f#_W=metJH#jEbB{SnPK;abM)Nc-aHK0jFA{;SG4?2}; zx%!xps4t?>&$nv0`^f+F2{0M#^7i->1rrhtv(JZv`ux)z#d5BXi(A-Zs5rRx$F8{2 z8JowbKq*wI0(jV>#u7}J+qObXPM?XSJzO9?cFYw#lng@RLRtP^)hVA%ctQti`I74s zKq>wh6P2r6_V3++Q;6a~ZS+s^nnGu*x_R~*B~eJxxJ}=xD;a0^wAD+g3xfwq#yE@q-56=VHm+}5wnv$fAq58 zP3QmKhTf_8)@QUob1yr$#;f`==T!K-(5p8t76=**Es=Z|xpZc?T^ zIk&R%TcMn^@6c1Ue?<8Em|Iad-Uv&+cA?qpqi=@VbvOmG{Pvu{7FqxrfW^0CcZEl# zb-vr~uXhmBDc5xqg!KYpMB%Wlc|0iKjL%I=$w^6VOu-9TojL7BA1Y{qZq2pJcGhJR zXKn(e-CK10QEMRQnpicJ=bo6ZX&$y!b}i-Sfz5dAN(EzmEk>K$z06)jY!5l+n2S6t zCu}C6NqJ5@UN3%rTR*kFK~QASK#a@|!&LB>^)iq`P2uXpT~7oXo|)%Y5(Hd!axB>p zXP$|3>WbxIR|Z9RqEBaawYz3ode74;Reg+8#L*ogQgqJQXouS?t^EbqrfEH&Rw}M_ zN1q;HC|$zd*4t_Nu)D|P{s}^FLc_k>3x1s39pLY(>HI5VQGu-lGRgLfL1GT%Iq*Km zmOH=F6XHlf31D&1NCqkd}+CIUe6da$dEC9o5F$z%Z38^u*vf z-gFod(C!P;k0woDMtxJa8eK0cuVM{o{x9~`wP(qGtW%$0q-@~(vG`2K9RX!6I#E7J zyg{og%4P7_@q{vyEhz#}qPaLM+rTzBdL=aXm~#={dwbxikMK zshj=y6g37HW`(uEm7dI?BngxbcE?mPAgOVm98+m{Sn(OYIM(``yp^$b_;StB`k6DNs#=`y1->)v6C5J>o$5>urjfP-OS5U{ z)Z~#0+q-wdrXutz=wZQ(UM?Ncbj{^cw9C(R$tOnA_8A6${5N)Hp4rjA&lvL$%XXs! zjX0dCEI;EF48<~KhP=vX!p@VqUgQNhSt(R2n~0t=km*;5<3L(5ULCoZg264K`LYrk zsCf;W%~@;gudl}xx7lyS1c|j~m0PW}lTaFleja+{{){&4vWmI_p!x}HQef=6j?18V z#9Dde#JUCoRe&Vz z7WMKWEtIlb^#dP4(gx0gbv+~40vn2Y0t~{3oma}fv!8qAk)h(V}!5r5RhhpQ861>O1EYB|mT#|)HxFA)h3dsC( z{i$epo^anzDnwR`7%9ahYyK`Q*ppHgVamGo@8Y4EIfnz8-2QNsATLqO9ot<)MxJEW zwAh~R1eZ)QuPvaA#=n=aRaOWw**_~61FD~)L&q8%5JLH)k^L15!s2WuBJUtBhv7T_ zR$pETsx^*m^pW)3`dVLcRh;oBY*Hhz8}OU(AqG)i#d12(E7GVh%s^!FC3BAvYsi|& z=f@KlK0*GzFAvu!Gu1H?-Vsq0pE7fz{n^XX$$`5$6N%mBuo^Jisfg9A-bJZGNyW;cM>E4{c;NzRPt~X%sdir+pE2z|6s|z;_|m~NbV(sRSPeg(uO_74k>i1< z?(K>H*ORK(-Qr`(1$h-}Bs%#p5;(TJ`r^XpJEQLX(^y6W=$+E1&l`j9{bdWBHv@a1Q=Qly3Zn#-?GkaPY-vee_S!TmzFd} zu0=jI`6vvlTQc%m&dshhs(M}CT7?$z%eN~+?7vV{Piy`igC5ZhbJEZ=x&EEUJYSkFuQHr)Q`$dk(^g`(|AO~P&}>+yv||{JjGu| z7EPtG+zmkA3v;eTeFm?@G3L%E(zIN}0KlTY2o$5$7fG>udqkQ?yck^&v9#%0Lu36D zC39^*g(dEmI>4JNm~w*m8A@-$50Ml#AVOJN(_+03ATbEIc@-EQb=X)pZRjn7?e*BY zx<-L(iIL4tC=?ZTP(dWctD~Z6aJhu^wUl`V?xyS|E}~P4D>}=O^V!_D3a#-ARq3+D zEXrK-mNE_IUV7>HB3pMx1Zhi=5I>AuriM56D0in@F;H1I5|aDr(!*|b8ZPR)5BANp z+@q8`?}juUJ$cfRD5h1JI`L&qqOilfm}xB_Lr^uxqSczVA)-o{|FYT-$49lRLcb?GzL-y4$<>AYRDUFI#J%sU8mZXwWwL`o*{F9#j_wq&8>?5j zDRH_+(94v!Dc99ruGTV z{xo16ps&ptwHV9qb25DD+atElUv%C~^Z$HN6z1JUQH!pZbJ$yg$hB%1O2K%WX`bb? zVl^GV#F!fvVDc)kn`39sKFKY`*fIkWexsf`?U zk9uOl4G!5^hUqvO9zKaO3O=llsDP{abkvapm;y`n)n6Eq`dPc820+zqwlk=0W?*csZicB))HZW0;igoRPbl{;_#!+Y50*=Ij## zui{9c3tjy|A+Q8*7p|tgy6w_Kw(BiS`-t1BDsqeFz<+|=91 zI#yL7gV+Rw$_hFXs<9fbCgY%drvgPWF}PDqy~J-m{#EekW4sY9au3GOseu7I(dWfW z(w+a|G*maHbl(3`xd(czxTJqTzcViPl!9fb2Cr{Q?P4a4s10cBKu?@9jTHqNBy7zU z66eziqnkMtX?5+a^b+Zp!!1ztG!Q1)n5Q&~-bl9r#;Tb&j~CvHR{2cn_V4d4Pi;-J zvYMBjv~T~ifK$GUo!eyDft!>*p~zyoWAGBqX^mndfR_0srivu@xccUTywbrQ`@dhR z#9j!0Sbu>(#-u!-mP%3y+2N)s3kKpS&pjWK3B6_C(KIb??5o5<@Ot2?lI^Jwf|a`l z?1-#vW_1MhZ@!Ey_4QAjLBy2;%>8M*-s4io!FtCwUy=3zq<6$*|4rhEO{a-!KX+>p z_l{nUJ&Im6Mtx+@0El4GxbAdenayl#q|@v!Dv8^T{#1&NKE-G0a(UIoz6}pX!U=KTv9x6DRP7UQJ1IB{g<0G&avgYx6uopVi{Bj`F{1pU zx^~M*k|SvT!fKMm-FTMI8jed}e0k0Lqi_pq;p`;I%B+5jQ><(?6~6o#qcY4vCVwbz zTHrWMXE06A=Kl1Ck4~%KIRU=yC~^PrD*ZAoXeaY^BRw)!*Yh~Sn4M?4Kf*)VpoUId zR@XJsH}r@pR^m8_uk^aUi;d5EC_tT@x){JT`9&j&ICcH7KrlIYJbWZoVOvJGw>Z-- zs)HR$6IqwImairnGI~bF{ik1!T-`xbu5@0VaR)5^x!fq&GhYjY`N!h!M6 znGWZm$#c{gGf%*@Gkh9DLs&~5UG&6(koC$EU5B2w_a?*3fn2Ru8j$}L;%)=`rz*gG zjscrAimAPmv+*kj7k)sCSRd(n7C_@rZ?uIBzl3!ja_dJsDfNn2LjkzuUOx}mu=w}q zT&+Mo2HeY(AV!c*U~u{$6pnSPHXMt#!99dVVi-cCeQ=U^j|&}510ComOcfmn&A}of z4xO@$<&E$|52huPjKSa;^R-=a+44d~_Rkxe9FXHiGTTpTkj~CZC@cK$di~ui)2m5a zi$HTWOlL#?eA3~d{kFD~VUDh|wT66S+jPd#2(%j^FgH#SQR2C%md_{Zb?xZ~OPPNa%hOAp_cJwW?MRjECUFo6SKS2u zCC|6HD=I;~F>i?64nth<3Is%K7V?SnnFTzq_4#dezsf4YDUT__=@j_ZT7sy+To`sj z!p)xH2FPBoI71DE4~|N(8ACYH<{=zdvzQHi(|bQ&ZiospWt{oeu?$9hPBHcJ=CgU)4qLZP_s_)!mOE1kc7p4C|~^eiRG zc)8`uT=3%pk36De*ebA?IZDrwK;Lq&Z&m`8f(uKM+X-$_% z=l1m5YV2;axMvy@PL3_>26zuA#{}$_(TD;GG8o6Q7QE235{f=tmOR^oOnUE{Fi!Fj zN!zTCW?2aRI(QruHVWWZ`LvsHIL>8QEpaS{Nf){7D>0=L1Kbuva`3B$FX7gHu&oqcTya1keY4cs8j z`>nQ(J?D^QX@apFgo_qiYGK-JCx@I4n~II?el9tyJnW)lBDJ8Rsl)@L%O48fKU*#v zHPCrqduhE^1LRX>n2W_0OzH0gVdv-(VQk1ouOke^CINf{H{1@&+_iUaz%cqRKmniD zvWI81GX&Ex!uiy59nkB}yDvUNSN_|bXm2%Yy)`34s+bDIKvIacj9%54+y+Wqi?%9U zhp^|s?b+bJ1Ts{G)08-Ml2GszUyzfpi>JTN|7@pu!pYmW#K z1J`PMUF2Nld?BY8)edzsP00GpW$-4mc)DgBQY;%YU{BjcWC?wuRZN{G^s#uZb-ru4 ztJ<|YHap4(qu!|@)Ab|yWUAiB%+X93u<;QSZ7+|^*c^XiX|(1KDDewqDR_GBy{hYl z-$M^pgtZ^{Vwn%b9G?TfS!<#evi6qN9UbB`s~$5=s6&i|Z04>j22%U}sodqnC2IyP zq`{g~3%V3mjWeA7y`E;RU3-EKuduINEd*$p$(@kC#2F7Sh2>cjQ^>){Xsa0TS&!KI z=FWMkyNf};I?>#VxPiBIP|H!~Yy>5aD zY4jVw{?E1kAQv_^a>>n`r;7sV5x6rn2%{$6Cv~7sqF~vm=uD)+ZxxK_M$^9es`bX$JA@oj_(lIQc5wjMK%TxQdZ4IEQJbTusnISk*L zU%C8O$Qx7LE}9KBY=Y%21W;iWw7yM;{Xu@&j7dvQS1)3WyFt6od@seCZdpk3fG8>E zEDEII{78qtnHIPwmRUl{HalZCa$q*m5mf97nXbSpLYiEX9S8|Krz>Ij=T@gZj&v}p zc1ltYwJE2Rb<)BVL}3_^GebsJ*l*OXTySst1@>@RIi=qvGc4lBL;JDI%iFrHj?_Uz z#PZ%ymKqAN!nd_Ae$N76-4r2uTH|1TBFBm#PRg64FFa!ndUg8nrkxQP*qUY!$?rhH zvyA1p3epqwf#d4^7MFQgR?jfL@`R-rI1RB-rs}GKUNt>EQJ|SUfXI2!nS&ZtI_g>N zFQom-jliML?LyT1b9p^HSRTyj#I#O@ao$nD-ULGJHS*KG45 z2+O_|q(Tr{w$RV~ib1~``HG)|4s~RE+vby$`L0W&i+1jy{o>DU-(Dq+6mp z_}q&npQY5C@a7Z9Vlzw(aoee;ET4ARmm0OwG3B8!QA|(mZp&QnHe`>n*O{1Pm0Q+# zwEFu%OhaT4;tXm9&B^Lxa4>5-g0R(pL#j2~LKDbavt}ahCQHB?&!N39Es_!_Z3j-w zvFxcZ-V5h%J;*IBegrPd6~RsU^t9$u`d-QixS}dEp>`Dw6(s(fSPRtKCAod?L8ZMj zI^?6vY}Q{4Lhcd*JyOsN%Il~Z{chC;6GR%)8ao~?p@rsZSTfbzMpDD}IJ0p%l z@L5wLJYAZ_cjj-5Do<=n3xCh+tea)ppz*WOJkD0N!|)hSNwiTkgmd}GZ-h7)LC!yj z5{+5--PCWfw&>u1O$9Dzp43e&OZM~wTMo20EaLM~(aFbK^tZ;{QCV5cmCK#Z2UYnZ zF-9(~lzW`ZEbEZ93tfaO{>u1sm}zX^l{w%M5$LD@nhea|6T@RbR@i(OgL} z_<^t4^oOKu87c2;lHFwD!Rm=XT&Vuq1teFY4j*$_)=*waboyaTuYE+jY%5KvMLQ}u zYm_KZ(vRG)I=I%eTk8U0kAn_4W_ZW7$)|SwY9qrCT(rpKGU(+*q5PD4!#4kBTB*7& z6e^$+WMZNj^kysWhX8xW#uF(RC4PyA#&A~LBG}I*;m}Eap%iBrOk~YRV4EUMhzS15 zQ`sH16%FnI^~xUH(QqZIiakO(ff%c<^6bYTlv2aMwIh{4+pWj%kFS}{X;RAPP&;x- zmi#G!YP8-KwiF!9J!vniF7v^WEJ-w+pkW=C$);V!vy2RZ_(*})IM-|}ZSXXdcvTyk zt?`isC;@G@bZc36TiNjZdXnCTG%c99NhhT=#(l~9Q zh`~ps4~MMk+V&0IcRQ#&gFhvCo4ys1%HNSap}F`J!?=er@;=<0socJ=K9~cR zem~}V-FtgfjLuP`CD3;-R1`~w&DUS5d}L+i5<649BJ|+8V4*DgwfH->yA@S?!t!E{ zhi2?{&y~AC7lkIgIda3_z9xW9a_eBOwOhFKFk!xU*Ta}v-MjSz{HBpb>u+wP)V7Un zoCP;00!VzDU8lt!38E`t#0`-E(_Cjp064ZNozwNda_3AeA{u*yE8HE)CKvt6UaY3^ zR$JV(F1V^*f0nmvBUWOD0_xrw;3R&WM~{u8@hKEG#Cu6F>kdn-FBZGvEyuiW3^AOm zhdw!5KiTu5^&xy`nRwRa+1m=v^jfI5Qrq(mK$FV9I-6CJrjZ`Ms2I>ppV^|Wko&|ps*2?#}(gFo@AK_OapyU|EjC(d>guD-F{PPX=DzuE%?wYs8@SuKV4o) zfflk&$Z;?$nR|qbmwKl1usrQ)%#D;#|4dao)-!Uu83s*!LD^0`l&Dqa6KDiS+yvY7 zOO0lGrV$2+v_>qYa*m^S8aS)3yQTAot34%vR)vK1=dp8VE7U55Tm)kvpQc@zsF3!M z-{Pj_)mZp zKfxrU#_gT7sBKT~Q0C;{#%JQIbSoO6aN$EJT`djT$8>6JG&SgT;)f)WTgGV>dcDWx zOi25Dv^#OIj{}d9fJsgmc@yF&M1_82_eh_Q#Y89M5Zjix1!9;LduL6Q1;vktULTxO zV{EWni21|i+1S_4r7{sA9zQNb$41ILTiiE4;_cG`Yf+8;xg+RJNjSIO3DDjV4843^ zapgJYS?59sdHSc1U1R-qZ8!XuwefMDN^xH?>=gwmx+x$p(O2$Qs2PK2V0@9iZE z@U6a1A(3o4S=Ru)$@Bbw${0cTn-ahw3#)vB-B@POn1@XosP5|8)BqG=Zqsp8$(b!` z>4Gl>&)6dRI*%>DdAB8xNs&5U&XHa02ddD2joXBydRzP@zX?{iM|UsYd=;3Nm;jgG zpy}^haxbT>*Y6HqEKO`AO!rTD%KGX%jD0kDXM0}PYC`?6GBlEGW?cQ7YikMtp{~k; zkc0Q^Oyh0UAq{{fI%WP4iU*e)?cS=geUgPreA<5<0g(0qz7>z=k7Y2h2(@;LN{XsH zj76x@<8;w?feo;ljFMjkneF4y7#yhCuJA$JUXFTKBlOj>z7`zR%ZR@0Y9e&wOY7Ma zwS6x15Y<{;7b{Yh>XneK!5E^V;N-G7qIwgu;4My#+=KLs4dS&rwb{VcQn_0(k|eOl zK+E9N*`w9EU`6N^e&2;P%W68Q(VvRPXQIGDO0MNM4f>%<77kKTLoTmo>s^0kPdyGa z`<@1H9SF@r-;ATtMDT(T(E=Zq$eV5y7cU2hwMct*knM>^-=&@#bjTUAQ>>$+E@BXy zcmOxkH8C6Cs@@Z%+Em&}*+SlhVbot(TRF0t%gr216Xaa%Gw@zkV<0L*+)5f~h7o>3 z^m9G>S;7+zp!5|`Jqi=kz^1pn-f&7|dWqYISPyT{-9EzaNUr&c$l$cnZaK^{-ey8~@b?+|Y zv*zTpzHF$@Ki;R~^J(l7GOk)Oske()6{4@29YbvbIjI2+Fq{Zmt=Jc7XAG?dpNS;n zTNKbBw;6x>a5#p@DQ%0Uhs@aH)>Wi%QxHbP7-3>%;mKTuR0|ia6i@)+3&-$i8=!CG zDZk#vWn%L%j;Jt75dHa!(_HKqME#zlBLvYBzu`7(W<6A~eLW_+Zc}@sSMd#-ne!X_ zSXZ{dtp90Js~%poi?$3|>V_u&(wD&y)+now&{mHov3$V|S$+K1ukTkC{Cx?2bE~yq z^#N*c2(1vOsY16g_?a*CJ#c`I6PnRAZL_)DmIJ|S9M+lP<_%CqR8I)we3vj9IOl|Q zc`Q~#WS?eE)6#F8Hp?9Y>3^*!b^!)cnPFPeXP*4lP`R2(#WpD2o?Crgt~wkQ z-i&d&o4-(L(2N!7tnLYTi`~pE!gOxHEi-kzZs&={^_u69RV@3tLmzR~hR_gEsO&OH zIvwkEtu!H@Lz*QV@bzU^8T*O5jv?+gSp%W6GjgOCpJh@2Yfy{^zgp<$Rj##j26bvi8HP~pth8N_dZVoe()BcJDLYDN_OX3yet~Qgl z>Pklz@(hqTfZE7pB9oHZzjAw@iO*#(T@n4vA764f==(s8F*;(M} z*#U!HHkl%&#FV%J4RuP#oJ%(`@c)q19w@hzL{#PX9Y^%B&)!A%sI>Czpuu{7b}B5I zr!N7HD7vcLFf^WO9Q?w`6tEP?;7K$3Phb6ydz`@c6p@tP?6b{w|aA|SDO<5{;6 zL8PEs>}u)ayQMmgf<2x&?W$SIU9>VNAB(+w?#vMdhMbF9O4(_vLHN*nQ76YcYosI3%j>~k>OocV|hCWD+=+%uLmm7Op8 zT%E7Jxsbu;EIRM!9R+W}+%<*dVdT~U&U9*ZzE7!K(wbRYDx{&bE&H~i7XqZ>u<+87 zl^sV@-~Bo|6TXmm4LV*YNB>aljIis0mp;g5HyAEb(SDOpWPA4U3J=+Od!o`QJx9oS zLY1glHF6wZ8MPn@d+H*Rnw&3XJb<08@Z%)4eXl^fXrVTcnl&a*z)s9jalj-AxHH(=zVO${1{1=K{Ta$tu^6U@w(iEH9RQOqUBoJKV4%mCUT} zq6MuoqCGT-60!4BHg4|63LH}5Q{O#@8`lfQAxdlueS+Y9BGSUy(k!fuC9>U#?YiQG z-Sn@3Hi%)P=ZegO6 z0K;_81_z&YCHYGukv5BI4;Oqxw>^Z-KrcH>!S(-?W_pOPL}$vecKC z&GakkwUM=eYFyjqq> z&i$~m%8dSDBMlNvE=#~gv zMj}`v8q9~6T94C*0*Bz6RK->(xFj!^0=I5jc-QC|tJR8KCZlRON>oUuM4TU!8IKcq zL}`;eUWClL%mLSj6lTMv!%W_M_V~EWsEW>E-|;TiHu$Kn$HMXs5claC!UE7{6ZjrE zXqmENqj-L1zUDoC20x$S_-VM0C$lekh2~a!GxiX2v!8z_hGqz3Bx-Ijv#IZ8eJq$_ z*seqZ?noreR_MhTcfJTg)m|5#8*lC)MbGf|W$@|e)HB84NlQ^?o;xI7B)AP>Kd=Qc z%L1rIf-aB9AnVb%!-sdQE%A7B<}y9DvD)eoymFfc(G+saV@0aa=IS9~kp+#)mPJ%ir7)bBqq>GXN2QD<$Fv?X@0lsL z7LYKX7v4A4ZmlNjEcy93;BCJ1G`3JS=`s&@@YyN{h=2aTR*!*h(sEy%DHNk?q%QV^ zYb8C#?KZ6R;(;%#8S-Nm$gVqN`Xwv45x*S`f0>WQy{2JBm-Y*PXJzJn$^V$<;M-WQncGph{Obz7Yg(d?g76OSXm;B(}#rGO*~P2-l1OVdTmshv79YUzZ8E1 z^duDq*$_>87!S9eJ+EGFK|yuKr0Ri@MHCyF%ZoAOV+td(O>4uz3TuzA< zgQq>2BT>yHoED=a%C?PJsw}76ly&9_AZLgvdZ(M*`HtdAJMU9pGoG8|aXZ_XDv3-7 z<8KOZmfmh*Q;{l%f74w%?!V?V((Glb|CW}xrYUqP6=#Xi%kaK{iHdw#S#T^s?&5C~58o8(3$-Y=`EfM!X+l{XM zLBpW^d@6Mi7Gl(+z=(%wj(IILAvJwe(Buq?uT_PcM>fUS&Y+?_oH2#%u$_n2z-l`T zhW#VHZ!(k7H0H0Qi3_8{8#k^%G;t+#ZdHT%E#vG zFPp$zP=o3LVP}NGQT9decHyX7$?#37R3@yc1xJX=?cug(*vlzA+dHgF z7pEc%HKDAN=FZ{b#JMzD;`#gg8lLe}oKgpP5u#m9fm75BtTYAiM+XXC6bzLb zLu_!5{Xvx*6W(*gT!EkiRbp4i+MXC66!*K9$g{1W=SvoGn`^D>uP4P9ke5}A6O^BC z;ffz2^$%+H?iz6V$}jZZC!YFy0k!8B$ev!xB5n`Twu&JvOp)5z?MLG4SN$I%P!V~B z$l}yv%bGtt_AN`zi>a-}@Rih_aOJJWNVs~B-uZwZRNOaR-4}<`A$|9hg=anS1JZ7X z$xfx|Z`-kkz<&@Xc^L+c*ZMvd+N7X@yldlV;acea!}Cj@Xo1|Yy?n;Wd!e6eAPq3% zgPNFMAxI_)tB^0KP3&nd@3xT&RYoll?;>}#I}`31hFPq^2WT%_!BrL1j}eKRZ&VFF z!Mg~;VuytmJIn#nYg!M~86gCg$E6#oKM=agdOsJ?G^KDx4&?)$ZaxrT0>o{2VPZK0 z*VcRBN(Zb*T5zDOtMJDOvXOG;Qm|dgpg`xC6xyRx()QUOaGFpO36?${Q@G7_A29oR#}g%N*vo*uBrv=Wzy^9>sN9QBBr!)6ng!dDF2*-*ROWC3#^KwohWtT zboC~-yS)C1GST+FzP!^Mh&!LEnNL`YaY4(0qWx&`6~`K{zN00`qC1yvWGkLf2~(Qa z^b)H~CC1w)I}dfC`m#Osi!wa68Oy;gSm!)W~Z(BLY3mQk9!oys&l>J#+?V z=^Ke4-}OprnX+s|wo3oKAIihga?Wr})RkGFQH6ZTx%x_}VK?dXY!A^g2_l5H7HuIt&6cI#XEXj802rt# zkb=Y{4ft#)-CF{$>=#u7g;k+A20^`lpWCZ41v{(oyr<1o_%!WGF^`z4kFR2NT9`mf zmyYsT*6_1?Co8%aVILK=LZY<^l*9oR6%ohgocLESSsJhNRbN%{+47ZA)UR~hxjUSrW0>w^xJg8BCEG8Udo|`o-dSOq$_7DcVdi%V}!s%MTGdVak z)G|8M3Ec5!Lyw637b3_Xyvo058~;Ok>>EV&--sZA6-@vgi$8Y)%!mH&;BCU8vV(zeLLuXlz!WrgQ!>n*Z=$c|Na>KhN1oAljg5$|9_03{jaRq|9e6H1L^#a zOXL4n7v$T7!TKN3JHMuxzfS&N=p9z}U+}3vaItSBW!5*~_kZN>0GSy6$Lv@|b2(HM zta^lal%p9?a~Co9K5@?gvQ|E^_oOjrRnP&VRXEu7BPZ}>WUWn$x;Z`#`usby35BOn zeoOL@qG;WIVoGJQv{`Iliiv_vJl`GY)=N&>hVm}!q@TPjo^tMGxZijw}ghI{Qr2AH#(1Q!R%eXKjr}`PCLA{+$rHv*?aIwk*ig zz7SBbzpqxe;Wh133>@WE6tV5scY0X3h}UV55&J$V{o;cueSF!|zC}~$kVp{lQR039 zNkKV2M79{c-`HZd#6|ES6x4AB`>$C~1Z^_`RY7gB_rG zd?+LEpb_Eam9U?qJc4n4dv~+kK?SrSEZ(SwF(%sg4wH`MGPEi_=>`OC#+$ z)=f9bE)D09>JW;-uejfDw4$Vb9z$>Bd^^9z;;RxURA&1TgV?qf`&}m|2WjM90%1J@ zD}`Md>_r?D;lWwUAKF}&`>j5^f=$;N zO-nUKbSEFCP@EDy#7o}J@$Q>7)~DiLA8V>ms10}>jyo5ekEJ(yJ>PvAYsmp#p1EUI z1VM_P!Sg5As@HWiRQoTSNw0mhl$Q)+sF9soSXysi@^#_)z*S1z?=b(Nhgs|F?6YIC zDJ5{$^>|hXrTkvy8%MLpr0+kUl=X&>6qR-r4&$!mTT=`8W+@1r5B9>!G6Y+l- z1sU)I$cX*HdiQEqL4Xucfs@4LqE$jYquwo98pyX#t|fH zXQUp*7PB*Yntx7qFdPX=R@C{Op@k^X= zto9$)PEw~?VMz^XZZT_2A;3^2e>OaeIrR5~nQt90Ypxz8$Of;qaqQ)A?XXIVOr5Lq z?io7jIsf3l4?gs{P!5##F}F05*cFT13-$d{x9t!6LsH{b%Xt<^yBKOw9dx!4ekMoAIB7sdTF3h4orVd@RG;=wx!yr zz9+UUf4?PWkr*}F`|j)o^G+7pMuoAzs*b<_#l;)cfc?<$zXlV(?)Crr#QvWK6TfJ3 zZ^XdAttft>)&3bvF#jG({23bj7D@;R2?+8Fzrh6+)c!*#!T2YP@b6IKkBYzg_m5D5 zmHBOdzl9QP|BVsFzwPe#P~s0G3gBCB{|qSD-j-DV5uGsoTR`y(EXe*w;b(k<(7jDz z%>Oy0ur#&$b=&`Te{5l7U~S`S=K#=mw6HL8_?P?FKO?cf|3cs|LxMlf0gT4m?D)3$ zpC61248PuBetZ4>cI&_5A^#gX-yc0B`X@E-7oYFwQJ)KrcPLP)@LABkT;K;rFRE2nORtEUf5w}salK%Lz? zoq5NMfi!1^@22~963ZlI#4ylJoD_(dk(6@ETC$Nrn1eli;S+G^1BIGG@rS;_%z7jI%hHW62J^VJsai0 zH41`!c|l)xYkG1YLiKYH6bDt4iz(xa%b|ORa0$93aCF9x1FZ;v9^QEkn(@X^IrHge z>KgZse|495wZuPy`*Qy@j}TBB7Q_kuUQu*GAnNRO#SHpBF^!`a<6!eCvvl}G7i&fY z#|qIOr1=${e-$lj4M~Hps5KmH5`Q1`o-?q^@^u=Nxv>+T?|~z9DX`|~)sg>Id*+?s z=7}2*{j1`$`R)4XW$LGGet~x1f)&k`6|SQ2qSH?AeW>$ZM%_Aib(lpq~7^BL6g1c%*VFVz2+^-|^ z5+d!qyR>=4hX&zC;GsuAx;uq-9EEVCLvH9KB_E&*<9Kl28Ym1XHcucg9@`JwnqQXoc&!_g0jGC2& zFGW4iNhBn@pDq|_CmCTH!#&Tjrhf3-DfvB;T+gBO-1z&>((U7C!HOls6$+hgzA)79 zhp$H49bh)*5xLjYZStZ;8cIwUMYQ4{yv`>j^?OkEMNK++dip= zb0e8Bb0~$pzhrn}uwtk(%98u@eO-#ky}HRZcF#@FtTj6(R&|>)033yfmG%I~7uwt- zQH__}VI$w8LY}WelgEKmeDGP=vPziH8g22u zmLzkf0tVEnZf>+E+L(pHmLO9`jFJBxIB^C{rnRFBV5|WuRP}M_9emEBKfZFn+M|0+ zA^s(sw#3CM1d5Ldb}~f&d)ViG@$@Rhj~?zPAD-k0J!A3ngJ064S9yLWdn*Lqs`e)0 zMm_n+h>B#@AvgDt>34ejmwUIE0#x<(!zSG)htET3_?NTQLOzX+pq%r?MkllGg4xn| z5}tD`1gI7NkaVYuj72_t4DAd&55B$V`aJ!>O>>G#^_2vTTNo+=r(dk#B&ErQu>j0f z5aWVH*UbaTvmkLkXGIZG<@#RKYd6U@6v0Yj^Wx1&zSU@QdB^i6V__6?J_2Qj?3`6Xb*vMXe})* ze5{B^E}*MU48;L^K$UjkeOlFkPhKalX>e5hG4hASuNI5c9WGSP`G?%`3{G9g4w=Gr ziZUY9qL*aRtGfFuDu!*ga!#A2U_zW-cs-6x)TmgkT$H^*0JFO^Qi=!n(h%Nzr38!! z*G+?-UVcvbRmLUIn2CGm%?^WDUyX+A1?$mfY2i}F&lfYA1SFYr;Q{St>tDTEyT+qm z!Mp9}&fsGy4xb%aBj}E~rBVHj3!dTNPgAS(30Dc*!}<^7(qvJsPxBpNfW?)-!!U^0 zTeyIn(+98Ng?R89n;>O@N z@YE|?dFM9;s=?+qT+-tJv3V!UU{4JdRFTM=5)W43dc4$m?8h)bOHZBHSmWXRx1hX5 z^x{F98zCFuQmZ8`@_4R`AV;1+HJ&3BV}YqpC$cu?4iBtBbwLb~^7QT*34Za!3BJ#V zO^|X-_*<~oWnj@(R1WWBrCz*{LM8RU#!H-NLeCOolWvJR<8$c8qQ0GEi(bnL^3qk! z%8`N9q@1ClyD_!#oT@Yn+$XOpIr2{vba;sui{1Yp6XLtk^-Xmr_<-8Gr%}WvIQEq5>%&8rW<> zE;rsys>w@!FfN8W@ps;x&wN+l#@x$C?GyDvH)&L~70*MM;+_pXrvdKNYK2@lvVHER zO(V{elp8W(89QGqP+G#=oR`QZi(L!u>VM9gB8$b|>(WSGil|MqI^uzD#v=B>r_JK* z*{yf7?+qb_9Yhc{^mIu%I+%wejUrEi$N6QHJ_Wg&PjjIUnK zRNW3YE#5R94R>}_s(q2k-Qc9qP3AGaqi{2Y<{69@X}K_P{4`tlK6NM5 zjA;w`TTAk5%L=_V`*KEJX{!-iowJzfrtq!s3exoMlc?I<8rppI9OdB!WkQ3X=ia2g|RnvC9xHn-IZP2TqfB!l#6&mGDVw4aJDeNrC$QGxE?g zK6>XLx}oXuy1u(EPSB)G18jMAj~^ThwyPwzDqhm9X*)BCbJM(-Skf} zw*}ExF7W6z);DZ5lwIGx&L?5+EzjU#+tS*|LZ?m(BAP$K5X&bipVVtPaLVE3`6+84 z3RO*cgR2Bwr>-iR^2Fy9P&wFCv-AaMmZjIf_O?h>HMZ^1JjOzAPtFx2$9jc;6=T!D z%AtreBm8XCgpoI{t`uPFq)~%~ZCq440|DPUubHON9xv6UPSBOL7x%m;n7cQo&zN@( z*`ogeAv7ZUQXiBrn&W;0X+HWTQ{j_VE^A?e@KVOv*sY)!&gYblCE?jv=rj>q?5uO) zpSx2Il}}YfKX!Al_fKrTWR%fPP96tIarDm(FA;;z1@%UW@LJ|GaCpnst>TtzuWo#Y z-ef5sz1vL&@t4qlvMS!NsB`bXg1QQa)RI*`*)nYz#M!Ls(5&~g=x@m)ujpx%|$WN@aSeg8w!hC@;eHAg5ecu@=#{X3R}31Alpl(d%1hZ zujPCEXg+yr7{-j@R8`*sq@{g&=V6=JY?2(?;W4TTAHO|I|vVPpfc^> zwB^yco1*TVkq24W#XnZ@yCyWF0;#~M-(W@^S3UeO?Mo?R-E*5_ZO-pU>WYO=zL}bN zVB_EMAI}BQTTL`XUs7-7fZ}DwQZE%=kGsqy0WmbEm0IxEQPF{kX7P*7cX1bZ)~Tao)Lb2M0OY083p+U!~SK0 zJ0k7r-ss|aLdJd^53r@V>aWtDK!c-Aqsg@r!7w^aNH_75dzMZ=4VcqdR7tv9@~NZD zV-FK>8R55Op%K@4i*m5_(vBi=orvxy8IhJusUmlVBz>a%ztv1<|r5FV~`QQ}7 z?DTH8CA5U^iCSJd1P`%^q3=EknH$S8M=*GLuj{_l_`y@yS_He$S3T1{;-hq+%R{O% zM1f#{+e21qm`0kzvSUWMs(ge^{q{MPvWDi5_qzxJU%UE~t>z2oWtgFL>ddD}q`E^d z^xEvmn+p7BJ;>#IxWE%G$4+S+*Qlim6(hWYEi5lS56F|p?&Tt?C64+j zY7ru7o<=mrBPOgqLn=9|NEGv~fAbE$JgK}ST*}~ZcC|P#p5#G@r6%)M3@#s@b=%Vc zM;^^e9^4l8RUL5?kCY1|qxPy?&k1yx(?{Z?ee)bw7O-NmG49>PYoLH671^=CUuo;z~mGtsi5 zR%p{!ZOWREEtnh%eX<`N~$D-tQ@hbQ!&7&9NAszx>hq3wv`8bq1 zs_6OZ{sjc8I)^8Lssg#GsOHxEv@I^|tvCw6WQ!0PazF547u`aAgl;`VhVNB6uMAmg zqM-L8=X}`GEOSuEpjk8WL?Ucb@$scmgbSxM^QWPi$$Mj4w;(AgQ^Yz!$5w9GUQs;% zA}N_~Ff=7UA$<5boO~7tx#CZxc$pnaBoB(u*A@d4Ycm&5j~MM`)tHvJG)Jy586Hn~ zP$XuWN)i($g$TprgOi=;g_AYafm8Ro97-o5?LHsaelG(jU3_E+3alKGrHCqU zsS61)tx~SWEd1W%jG3b+yx6QvcnKpecowSY8SI{0Ns8I=&=k1`IV<8*R}j>+{B>Dd z6+@*03K2_PyOLRWcNCaae5l58FbGTSbLr>c)WBtNrNYhdF{jRKz0B65hAafnyFcud zn-`Z3v@`1?23*r(dqx?m`|aJ17eSK&`%-Uq@Xzey z-01S6D`f6vx}3EIXBUhi=87rmr7wvyX{u^2Y-S*YE4dTGX82aZ#oaGw11^G}qBLJ3 zuYmC7frEMFMd`q`?__e8ITh9^1}8lDG!gGw7IF_f4>PGtOLCcCN+`B4Q?ZE~=-iA_ zSj)vn_G7U36~0rUJ;kwQu-Ian+??53+n#=(KQ(dj z$~KrCvgC~2_r=v`I?J@F6)@GdH`bF}FibN?l=O9(lI+*#Xs;C_;+bzkt)P;9j`Qe? z(w+FCE-Q{sXKHM)`GOXIo{BoGjXf3}4F0Xy^z{HSI;3uW*&GuFAdwebTnyI|E=s}4 zo7%WF^Mj|FnhE}=mM%^)8xn=nWQ$CiO1iNl(1sZ<(!1F;BW>rqfyPC;-mpk%KA%u5 zEELxk(R;$zGlzr=6?n|UcbDT3z1FzskR?ZSak zFDN_TojekhR1JR(a1jZvZBz;nY(#&Mcr?~X2@ ze~(airl-4XNn|R+sYHk0=b_d{h??7;`fAo^TTKdNfsQ4vhyx|7S1O{BYRk2L*;3e> zQIYtJQ{7QTPl>&8Mnx2DHWLC#BE|lbU}ARdror4Db6P|X>E|Os0;As=-f>y$wvIQ( zE`C0dQI>y(F}bA%skKRS~W5U9liXD;=&tQM^YwbfWOUJGFNFIjz@2u8{$c zczFEWKyg#+sU!?}7H+MPR-lLoNBKtqj_>FdxPiecijI9)l0OD0 zE(Vg8m{aM(W49CI_w9mcvl#&b^c-&b*5 z()Til&a)nS9_Uq@Oq(M#A(ObN&7V6%kt&yaTsxfB8=wH-C zTSq$l4Jcpg!U`i`Xo6R!CVHr6dLRJtCY1J;WY!uSlm%Xa(DV19bU(uoSeAjCt+gFb*>RoQ^qqr5?s@Ch6g{_A%AR4 z7+}K~FP@J6iSMuizs<`}D9u&#G^|}`dplmXWxlJZWqCl+4L<<;-O>_b2QxI=Dr+AB zyF-Ms&x(|X-&8u{w(5a-T#oVNvRuIce4ynJoAY)=8B5KKhVMrc*%z~@Btr6!+uJ|R ztd#g)VWX15NO)F(wRBHK2L`x4)kfL)Uspqg{bh3%XpE0CPNG(G1}`SD5Fzz+D0m!d zanw5dZqApxDadd%@K5}G?-wr5z~23UY=<-sn1<*(xJ4m=ZXG{d?Fm*igY3FbZQw1SsRbr`k|DhtWKj2kYVIH?2YIbg{1mb9Ze^X!8#=#L&{X)x z)4+r zuDDYxRV#{O>HN(DPS5l^^qSLMw~yHEdbF!|aUxYIN_f`sk){#Z4g)IXhm!ay-Tonw zPC7Jo>P8ssODju{4tWhDBLR11G~cmc8Z?^!_{)Pjc089#V&xx-;&L_nu_oTw1!G1v~of%!*yC>~<_!ik} zewMjQFX7B2ek*lhe!*pd%Crpo4e^PVmC_Vz)%uo=K^JLv{zxxW5%nvcj~eozy)UBe zA;tSx_{3TPtWkNz@i9Mg%$ycMH;5xd*S^K->ERf=TVyQ51Qi%FRP4(_!H^Ss0azo-VRFZ>7Ez85Qq?;Fi*-4 zhq$AY;eD*FZf7%CvtqGPKriN{g5&$}!yYlp8vItPndQd3$^I4qS<{7B(dW0X@WhfE zpVRzo$>eByyhP-i7mao$nV;gY7oq;489ElngU%C68=-;&bGWLh^l}-{59kxKfMTFv zm~0T3-a&~+z?rx^ON{-QsmrBTi~cT9w1YS(tmVN59^cM!Sn$JzGI zdc)M$Em8Qqiy0c%S};_Ag>i8P17{Na5!YM+sOs|bA;RVZb!(?v=46~#=+S1zJB5fF*e+9rIbuI`R2DmnIp{%Q*|`nKuzX#W zxc+pu++0a~4Yj!_SF-!^qyPD|8X}sOd}PD9z^Tv{qJW1k+Oio)^6eb)s#f>F<>*G< z!f(vQ%lF%r^AHGNef5q;XB}0GN$_GVq#u=weQg^>+uzSG89au+`rx5K^5k^@@#Pic zj_^|#BqS*5D)P8)9_q_0XnCCA%YVsCzZuN`KhI46vi|y)%rx*#*!p*B`s17E^lzCf z^Pi1>H@*}7q$2p1n^sh0e9K(^5~Ti;sM?v@I9R`lWdD@K{++q~qvGFk(|_n%f6Gn( zcQRKc`G48n@44x}Wv>5CR+{mb%$4a)@W@2O!v4R>N&lr~{Ut~>akViqvigS&8{kiU zr<;+THNe5d&dBJ^ug%E_U}b7$^rl?3u(tZ8Bb9nniT)<^{IBv(bAScF5?}?e{)dyE z1HcjB1aJnp09=1hdjF9u{x{L)ucQBV@ZLn5jK3EDe*9Vf_4@nskKFekE&p!+*Zcpz z?%(CVm;PSs&$@pv|9i{7w*BAze#^%HTQC1A|L@=VtHtj*{ND}h{^ycOmVXG9iGcsq z;t??c|Ii*2G5wv$XJY=}o_HcA_J8L4nHm2a25-aZ?>gWggMx_p@2xSj{x(F2nEzg% zh3Rd;5V8EzQ=W*G1t9gNmH6kz*nj{9BDTM`#LoQN&>~|0+uZLz+1$T*1peLN%>xqf z+rWFfF#n5NAmF!w_$F5T=b!Yug5h^x!@mR!9~s$y>Eiz(R%B#(Q(OF1{8t47BP;8h z6y(>>FCC1Q!mrvOC7mgMl4!HN$raezi*R2)9ajr+1Z`CI<%#WL?#NrgO1Ei0` zK~Zj;=;3I;(q@JT|4>p*3Q@yKP8Qyvq!daA5us1Gancu|_nGLW<>D&qMFBC`Al$eG zLOp&)P-cVC|KtuOOCf0wi>Yt+DaAXcDfo*es7wO6h*R%{2t5Xf#s(g_2up9t4S50x zrmTp*9xkqaymy5SxiTmlSlS9m!B-nv+TMZ$a{AtW5PL~ZwgT_CyyMZMkmeVB7Dvas zbz)YZSfE^J(t}P4Q!k&mf;%U!tiFN|HeReBw+%DMkC0fYR`AzvyG$=~soK z*Ut-sbKmil%7E`O{IP&8xxx>{#YZ2`El5I}WuJL(EAF3gHOd98QfOL!Sy-IKos zU){a`(JR?2wlNq2*j@u;%`@t|0=AZ=RuHLh%a``sSL{tPx#*5xp{v1W(=ETI(Y*-yY-xi~Jo18O)wbhr z@Q#AUIoiGg$3bTts%_pq#h=SwA8Wm$1#f3QXtX@XgU&cYW_*2RkekEaxJjfrLt_Aa zIqYEfDRD~h4zqc+pJ2K1*6O{SU}{Ks#s2{g^A1ld`~?q0rop=bbmK`@^Z^x|1NxPC z&@XvI|I|M+G}MQ;xvwNe^q_m%tA0EMZFto@TbBhx+;r2>^~UyafPPKBz3{fm5t~fc2GmGy0P| zs7&aEt9zLCQuVP+7&-xft1rHO;iCz9v-{hA!hBbr_VUd;qr4Nzh0}GzTm5?LNJ^rAx;fSbb41lexa;i{ z1l82X)$tl{x^)146iWZ+mXnZ0Urrpu-j1Q}gX z@O>oPm%umc_q&ZBE^?_cjB27w;cjDl!*C9HV1r;Jw<;ccg9wB_#6!aP2Ab-=+=8+8 z_`_8ydyE~zxlVXOeGl4D*tyxgUj`z`^(}^+9r0ey4k=p2^^9(=v8%Uf!bgwdj-a)V!CGVz7MHRQAf zF=<^+nj?5Y(aD5S5dmUiIP}}6s7`OVuQM=4D5<3!$b@_q--^D9L+xb+%^JIJhTuN6 z^=6<%Mme`;Sszc5x#n)nEK@E5b#sALlrd`b#vM|Wb(NvnZhq%(yu>oDJ5)cTq^~H} zVVchPWgLbgrzZ2K0?GI->PdR$2u26fy3h3aTgK!EP;dN69g(CS&YaMPCsA+cYy)do zgk2j@vR$tgm;yx!u(lL9#=FN&N#bJh<+`2pNxq`DEMbIP8Vpv3yrz%&r#GpTeU4fOlfKJ|G=t=BH8=dgYg%>&Q+~qCur52P& z68#ovXU}P3oi|2Qd4N=edwH|v2~gnLOLnPNnl3)Y8k`!CVE$4uDkI;R+!;XJc^6{} z`n~O@nFU+#K{$Loc?J#d%tf+R_Mstw^B# za7ZfCU@%g-Y?$8=TUM%^d9oRTw!aY4OUY#sXAI?Y%BU7HS9u1&TEnuDmm8l6YL$KN zU_-tpw#~`fg4V!K>XhZX$)S)YvC?)0B&b00@i~GFN|iKh;KZ%-ZqO#G23`7FN;@RG zmrV#4r{SC2EHfo*M3Q_Nd{iqpwnqDqO6H0~N?9`YozP1^b8sjvPC$ZD1nnC3OfZ9?Wd*=PGE8 z&WZV+9-V3gTSlQ0-l9%csOCxiwET%=w0Ps0R~winWHHH06i#DxF{r?0H4!%~gxZS0 zrS$;aOng5tcpUC@od|;!fBT-3%3_?`IFk47h4Quw+mR4;=kHZiuc!I+CU8u@dR8SA?C zCQro|YH@%eMz?A5tq^L8uyBYE#;9)D**M>}X(e9RM+MYRc!ikPrt2(cZ3Oy3g`JHq zNw3OBW>8Rvq0@KXnYw1V*lYVDA&{k_+%EDwP0Xtd3PCFXmcQ~61-EWN#>vkvI1dJT z42d7-eC3pAK|SoS_w1NXRFk!t*K3lno*OPPFi9|C_;_@HGU9hNr$5YNakK~9NtKJws>^gX4d8{08*rKE7U@lcn&>eR%JJABdtO3@v|rX~6i-u1G?W zspsOCy6}|(jr3h@sOaeSF>VE5+CHh5ktvn*NS*7P_2g-8_CYlxRtR@ncW4^b(3qMY`E3)?`suVNBz-bTPrYtVbiSwZs`T-|LcZ zHU*+=jBT2_ifW36lk-pk2xIl8IF;f84#2U=n*NiHIlM0oX>DusfF9Xh%5d&Z#|3Py zV}UMEa8k}tv0EmEM_7kgF;8N*f&jDRUd*^K0tC{C_28b(T`lX;R>OmQK71ZWE0Dzd z-S9wzb3YZFz%5qCiU19{%X*Y;Uw?5h7g<682yF|$g)l(YSWu?YjT)gLZoDFBQsdS( z%F4b0`Ou0}RZdO7T)5#y`G-_AGQ$tmb0oxg3gm4TTupAk>GBSwicqcC+1m%cC7XB- z>%HWQtcYkCp$|QJzejEEh;c9og_QD3cZZJ9*QgzgaRoN^jR__fs(_C)QRGI5jvCRs zxOVV?JWd8h7eMoY3@c6s5lD}FKQMuBX+(O$_v5honKcVAV3T_G>5wMs4gtw((PxEtBfCfHNp$%tm>vr^hy4_lN5yR5e z13m^^b6!a|JvI90`8wYY$5=^{qzsCZ2@ba^-~k+{9p@q11ksOF0>|J4M&E5GWre6# zOL0$Vb0ivvK_|4j5Prbr!b)BSt}KW&HwM=?G8WiIySwOj^4R;=Gf)Rpyi=K;&)VZR z?3gg^9s=y9MAZbTQmTYcw)4jBs5|D6GqucP-?jst5=xfPcdLtXMZqUgu40r10tTE_ zcE+&JlW}mE*3nGSw`NQ2V1Kqln7i!;w+7>R+e^Dw9KFV!xI|K28KXtW=pb-v&R=HS zpPV33(8lz2H%$-Fwv4pIZIlhr3aVw`ZnD=>-Z)kd?B0_g7SqLQL8SxmWlx+?Is?R~ z6t$uVEQX24lo#AJ7)}RPFDv8dLg1XgFeEcpkM{lKnp-m19GTrw)0mzxYqJpaRlTGX zp?K#<_;@WL1BG*1W4EK|D|jV^5*>nRCq-}=Px^5xgdnvdha35uY={C2&NEj=gSKnUK`ibQgF?_Ro;Zzc7R9BOLGxqSE6M;#UGZjDEM0D^$ zgrysWZeyND@N~6HmlvFccm_m_>b*XCPEDLNiiDIF4<~7>=FQr-M?#fNV-9hG61*mL z8VqmN^JTl0^GRc#Q7$@BlHoQ%sL@Ui-KT}EE~S&8fL1gC3YJ@M6SWbr*;MP6VqF^nvZAHrx&xCjbx3`dJx+Ma&z!nNC2xzVl( zMPSM}`LVRhZR6FNQn{D-vK>ua2ej`$oEm?V7czrwz>M{1roYEg>c8*bc3ea2`oBLQd_3i8ib*isi zk&C-q?%ZM#sbdW@Hin3Sxq~1bp4*}v!D=Nn`w{j?5##&jI|qtOdfaeNO) zsxm#ccHE`*Dqc1C!+BFs0mj@fj=au}n+{*a&qt5t>30*`JIsd6Z)ryHT}J#XC)Iu^ z*z4>hWPL%>-PZM|`r5n!1j1fcYnkN zO8O%|Z~I=)Ksz5Uc2ww>YUcWZl5cE|%g{`vK^Oa%UO%cPv?BSIMn^u<|KxKCuSF%r zIfvari~-*ZoXN<+?i!6l4lcRMcqrl20Po5F5Kyjb#`B4U8ABZS&I~!DVTg3NtA6Y? zHIeaK1NxM5c7s&K{_P8A6L0q+mQ;`Ntb;$3vC5kP!d#@Z_?Rb%y(2~#Bu4qESi zn#(NfbAF>$(!r112$PlEOQ|NMtFvh?3Nj7;fF4NORXLLIB_>25CiF`L1Up8l3DRmZ z$|V~WiUb0$LY3BrgSKV1z~Xu}rFRE{O{nLmO9?g-7a`-0Pf1y|E>_fJ?koR`ws!!} ztXULvlXUEk%}&R*ZQHhO+qOHlZQFLzv29QK|M%W!&zW;)=FYwITWooN;I)!gxiohctDo}NjAVIV6i(WsQ|pv!zCp?2^3yga_=Ne2 zqN5xLuQ`v#BAbdKeOY`D>}<{-nZaj^i4_&qe6#^Iw0yr@kgM%E$-{7eEOxaz$86{$ zE*cQpIsRhO5T?FyI;$Sj8(#=SDc=JHH-jXUcv&U2@c3VblYU3Dr`@AnxEjPx)Z~RG8h&dQQ(p{2y zk$Q*-qc$xUuzf5qn2_`Fo2uZ2ZrD2JC%_djiON?0ZiQ*v?|IlEfP^FXy^GEsXb%$& zKnIrtLoG>5IrJ8i?|V1)<0z-GY?g$(`N2GD$$%$v`*=v0Wd(p#{AIl~t((nPOkRg1 z+h|BgJ1?R$FowW&&G`z!#Ir5L1f8_A#R*R4=kN&~0e)GMn=qOM5=9K$hUB}XxAhr2 zuw>#B;n56~Dd`~7BGOfsEbS4xT1nM41PenvR91Y-vfnH;Xm;~?r+gfMm4B)yn|LB! zLi8W6kR}T47z-`>)#2@;H}s}^2|?8zUrN!wo3q^cV3g%4*c{eFOF}eXKD-hN7AJ>H z11*}?ZLFjGK$qf2nKk&0)#OaNp99zwRv&ZDv6Ey+=3JMEJ~Vb+H>`@HU1Asem@sn3 z5tH1|y-CmNAneTce#*7AG3fBgmZDiks}W4RXKgGG%ZNI{4Wj8)yi{O`sgad%;v)c* z(xIdP5ya7^C`2yjtA zb=~VVSd3isOm%w+9PNX4PdOhIi6#;bQNG5&* z>29pJ$7vxd=JXOw1`EKu);NFc4(lYtxhHAI9|2>JiaDb=wCsK`v8=GoZZp+|SKjno zAZFq|ez#Pg;Q(iZfs=LU!{5kDFVJ!?qQ72ufLSkzANRT_wc^*R+^cHcY9?K(IBwJJ zLFAAN3GlcVJY*}ennR7SAX5&?sTrFP!7ISd4{*+WgeRsB-V*kV1735|j1I}7bP7m zK*srDI4g;mp_u2{qQpB<3n_F~Xw$As96c+hS#;V!Cr}^8XG>|}IZn#tyoqk*IUs7F zNP4dI5_yQ;vv5Ua>~h|XesCU?I;6!D_98wI-EM?&nTHH!YcJ)%o7}k2ps1TsCzBMP zoZum#pHjfg)(K3@Woum5-GJt1zyygQ-Bs1WZ&MTXXdAc?jlC8q0Iy4b`{+^4z4B6{ zEtH^OGtG`uq?=u@t^_OCc$pyPnFYeJMB1qj*>A&n=%{S(2w7Rh(7Dq` zh;%P=1CQ5{+SVd4A3zl2%C{a4yrlSw^w(xT1`dMqut2#y{3$W zH)+L}lwZ=hD7v{YdGtP10}X)ls}ato@yfd@p+oUEx6Gj;=6pJfs^vyQ(z5h8W*`w5Has52rWLizgGLBtg}cI($~Amlv) zAXp)3A3f<|<&!Hlr*eICr(GHLA4)dIp4vy2c~IBRI;rmupdB|)hejk0YPVKsY1BQ5m!V7+Xh9u&wWX#i(n%#?E4&MQPoc;onmAD*UL^1`W3?pJr_KIx_HmNR zcY&eU#u?`9TS7-`tGcoZSHg@mjZQ#KA806+&c_Qyvq4FOC1=jzNj;tv3qxP;B%%T= zn+G&EHN1BxecmO%n3QXB#jc3v8IG+PIcAKpfV-{mTZgmz6;sW+ilF3`Jj_fRoblbG z^>mUcrmULi4T2}+3XzzQL|O!k4qeXVT-ad9%fm2ktOi>7}Ow z`4j`5UX>fEmEFDktIrrt9jFL8Gi9{S2?}hy&cX~Elbrn?t<8oN5~V=L`d!Op!$SZ= z@?@lQ0rhNsBC)$dc`S9PdztIZ9LHAo$&e930XSbW(FpYty)8IJ_IE+UZwJh)mKrOQ zLNZK>o$+4QMIR@PK0~NZ=TkI5J;6|wH5Cyrsl#(Hs#Bl2!XmK|A)*UNqrv00&wPwU z7gPio)}Hao`jDhf=ag1Xg~xSMrR;AiR)A#4==Ca^+i|-(w9IgI*W5n;CZa8U&WQF)#G9Y#450|?zFdxJsH;36+7@GNLB-?gT}_di6U zNC+QQAt<3Tc|OXeaLk$?9?;! z@L-7?9w8ky7KO*S30sQ*x&64qvAvz)Jih&~AOnq3YV3Vlv8`lj_yvnvhJG&Kg5a|X zhJDJ5h{E68oq{CU*f3;@#5}$Dc(ca!H{We z@C>IXVE6T`_oipZl_3l+1Efc2cKAk~1{&iErZ1s|KZR7p)m`E#Efy?ea2UVRg+f~p zscf}t!P!LZ;-y8zvW;(Ks@X@GB650cLgu1e2J z_?|KO;})tNaY1RnfrD_@Z3!$TmJ)upACcw$g45TE-4(1FIQ1r;` z^-G#K_PF`$Md{+(qb%B1MyX%Vs$ze|K2oAiL^Hhao}+*8J}?-*2$$MrvkQEq5eInz z`*<<(njzDc$hs_!Gn>FwR zqW}bs6)|nOfx{75nAlp!^171Y8o(*-blGKC*Z@@|fpup@%kRj%H0mcAB9QW~Kug7T z%Y&$BU6Ne1k)r}_UoMszI_b;Ug2ra0^+-Km&0kxT>iGCSx1>f>mRo{a{3^|^n~57y zKv2NaA1WNT!+|X~Adns|2KCYE_hNRwCaY$lsA7~}xG*zo((jprzJVk029PFPv0G|3 zV@CNLvLthqfr?%T$nQREFjrYyJ>E4)p~)T#OzL*ksiTeqUf7<1Jt@~hgnSrbq#g=Q z*tM`;gcagQtT437yVFlMv`j(MbU5lo#Ps#$pt17pYb2lW&x$)gC3{q$HA`mB{Swy& z6n~0u=i+)&r5|QVLe9MYaP#Rfe2+Qi$dmaAR>}142{jW@A;;?{b$9DO+dtHCsKt~n zh-ADt4NldApuX6EOVo9Y-l!S~;B8c304i(+2%L8FhSR|eB!%=`Hjwp<(cay6FqN_6 z8ym$)znf02WTLbXY9UzUXYTYo5I93#^|Gq9;Nq|qsbw*4aM^>>&$l-0RHi;3Kqxig z+~S#Jb2B7xof2GsULG1k3~K|tyq+aKcRqZHnm9_`vo|f5Il@T{s_V zBuplODE@{+?JA_mQ*|tOxrUvw^g4t0OwlV?nyv4%ysd{=g3An(S>2(&HBxXDz8sO) zDc{4)y-E&J>+DWt6V94G29tGW#s0AX0Zv?83Hpa|&c126vbX!XO$O|BNz=++hkuOi zOH=|AqJ9X68=mQ!IfwOPktut?BY$T2)aM;3_?Y_}s=`!X9h}pOX*Q{4K^^!GjG#Q^ zjMcZW!OPx*<6%YEA4rflEp}kg8aKGt z1Rn*vipDOEM!d4b@)&}AcfWWM`Ubf*bw98vva<3B^7WP-t2^T`R8tLUqPj9O3^h^@ zr&JkR)fMbl-NG;Oy7OqSBs9$~grlJ*W0YKs;DN@ygxPe*b@i5$%`Bzr{+fYqoMy`? zBGm*WU!vC=s7(a}Gc?O_P-Nnpnf60YX;N}f^of|}N$(7Tk_R^-no^x>%AwLiQC?-= zVOtOOJ#L9j7OLc>rHxZl0(Vun;E*h6Y&q{wAVzT~=(e~B4pMi6b5LaiPrpE(m>%|% zj3kBoRHxLwdh*X1Cz=pwVg})h2RAJ&j%k_7nfDz4MT;5wz#gEzIk&hh6LP37M$UFN z0z0_vi0p?o1?lP1(Iu14ym2SlpY>q;;bU(y4~3OY7ZCyb>rIH)pkl#@eTgFx7H?mY zMzsrhIR|I(GY08|Or0aQ!worG0}Y1CD*V-i41|ZDx=?Iq%Jo-ZYM$)uQG`;3k&k?h zyKIh|Z`n{H8Om%q7VN48acxt(=~FEX2zn~>;>R~V-jcAp1qp?;h({xRo@H*Zh5JiI z8Upsk6_!-f-uQ)Si~M@9Kd+espsa~n9G9hA#WhxSC|d{V!|ya@? zN69&eo^1-u(2QG|o%))HXdPzc9*{d85wj?w4H7*=Yl=dFvy;lh2_6)}Dk)mgqpdYa zjBr|W1AJP_G?GPQ2&UJ#wF=s=ySr58Z;rNPUg&Tf;UMhPkiAt1_trq!j%M&{89vh) zF1>}Q)M3Pi@8-L25>R7s!FBSSY6^oD-jmL_?p?31Qr(bR9aWJ`==Vz3zv_;4u0=&N zT{^`PPryIk>q>&S5L0F8$7RJOBo>G2g6!a0x!AtHE>fxH!Jctp`GPJ%()V!S)2ip&fp1A5WJn;*GaAdGU(E7kDmwT-I6Y| zgyOXniQA6WhhzIe`dnAjB5?_W`;sPV&Du61NS|mNxwXI6y_%F{hDacjrAF~B6$}hW!R1^Z5hq1nB-Rt%c$;&?`=k8RQRJ@$0V2brYTR`QY<>gnRGgvAD>`mm2GiL59>U-7u*sux0(Nf90_$7I3&qHQ z2B-4l+!2&zo0GE4O%wNNtfSZ72}$Iv_q`Ye(*vK2G1aY*JkX|6laN z54oa&^O^C`DK}(e^bxWgnn2%|NlD;#ev5ex;x)r_SkzQX9G&M7l2>G{3*L8D%n#99 z%Rw>AJLzHDdUwhMj*!c9$9cFc!eZf3j2;Olaa&vH91C{IP{yX>LIb&uu3KLhRAK~m znq7+TtPiC_wuHQAFtFL5DPnaDlKaOY~^Xf57> zU^lFk&c?tUFtoXJ7e2Vd=lh)kEeiMjYF;I{F=$t137%t>towF21tMNE)MV%G?eyMc zH|aGv4B``=aI20B8GE6+Qkn`;Og;l_VdSiif?)fyJ&m>LY|<+c(u0YN@*Y3v!I z>g1O&qDPiBBa+h3GaEP@9nGphIYUE0`Mr3e39+nQA=)_MDk-S<5mHS{A(Bb>$t zy|nA$mno+Zd9!Z~fwAL_B5kJh44gzKZKGnUVO}6LY}mapi8^8Qp#)I`dMwAdF#8qh za6$~}d?{1JI5o&*vgVGxqz#5a)CcSHvbF-JY-k4j$(In4j12dMxNub|$b7gxD}bI$ zwZG{RSt(%>km3a*wuk&-^DD?4j6gqP=pSVbxQ@A3sq2>PBxJj-Em4Q+EW{&fs1XM8 zNfs5{3XSvGu4(G%dvV9to#=HX-x!xk!%Tr=EJWr&X4;g7twGY7at`X*1HxU6tV-ME zqKQx>7m3ZL(HbF|pM(^?9-0EV2b7o>C!=2`iOx7)uW-1|$r*i-O3O5huocL35YjP< zJ_d6`sUySE{6d&3-A|&9B<1)YIKCARxv=x;X)g<2%n>J+1l5q}9sWLLCYYKGodo%# zWw0p)7tWUF+jy>2IcnN#izC+BD?r2B;8cvYH0qvrAwJp~ccoP^FRc^J@P5Q%p^Hbt z^eZfqLA-4Kg%T+hM5Qs%iFgxnqMFE-9@yUw3X&~g!csk`?qC8TD^g}OOSFg;r)T(E^$-d5-P zBnLlI^LbwItVcWb;|K z+CSwOw@2nh<~P0JCz^j->$QG=FxL4jE7Py8{f>%-t^^DKfG$yOd+*^bhD7|(I&YiA zrpoWV8)A3-L6z)dSloS<&sW^DH*S+0e8nWg-!Fo$M%aa<5gi?Ks594>$|SM=r1JBe zvo>^70?1zl21&BKnw0W@haWEz9Ch_+`@`YvaZaOF5NHYj8#IFIjdUtHn5%=)3N6g| z2?bN8yoNy=#aV{)K*!5sfYaZ&`F*xWdoAW78nWzR5v&jQ9O(+#0I9(eWnTbgn5u=M8G>TlHz!h+32EVmMqQ&DAdZp(B-FD-0{G^~SGk~U&9uV9%0qt9mq0$gMf zMkR^}TxM_ zp+%?JrIm~V3Pf_TI*F`sr#Ab{D4}U%<0FM)9xJM{esHA42PJ8u)--ugH^tfuh)|-l zG}z%MXQhfE)x2XJ(wBrXYT5d-QoEOJtY}?$hc&Z0$uc$o3kMxbWbws(y2EHLX78*u ztIz3dadmsoO~_tLSj0M>uXvpV)T7qp2*-K{|A4SYizx>9W}4IWR9Q7HU`RGSX&rEd z@CbA$T`xIVdRzr$1K%|%(NSFk*5On~-n}x?;)?!(J}w!RXGLjxp~5yQD-x=umxjD3 z-$?azdt)#-jqaKX@+q>YXJTXbgl^MZT_f zns4!I<5d(Upe%vDQh-BG+SN6cj^h0Lz64;O@Y}DYG;#~TPE%9VIn!H`uH@1xxuYUp z#jKj7!`p*(+qi06&NY&p6(K1l8kA&qiZ)FRLak2tC2`pySB0I9Ez9@&<_#=3o$ovZ z{QQ0#ZU$McdpjpAim$s86-{09y^I4Zz?_F+zltAxw zI9)^1gkPh!MvU`}kG+lk^}QG|C+t#(n$%zuU~t6^uLjbJ3rj%>PH{kmn#I`W5DLL&--a_eQ2w1~+rC^@<^ z-JcNg_4ee9jByeJCM!{q8m5MGQ6hAlyA4hnpepqXxL4vLDs1 zBv|qHqr3-z6K`%lP2OB<3zeN-mP>D_0p;T)D=>UqwqEKH#}WErDG@xl`S@y}&zZ|q zUNZ(#uJl4ewH0HTy$^=#Bg@!ipoF{lV}ogn2?1?9 z)H4j)3+3AEYO&L^my^`%xCJ%{G&Z!FSA7qc0m?93IeJPwvwuqu?R<8E)gFlFW9;mjK4HrWCt9q4lXFWfQv+kHqz?jR{)Mus~L4becENgxlbmxQ}+W96KWtE^ zb&+UuipP5_fJ@_c3c#y8Bs)V-SPB|w&3!t=TxDe-wqq~R;@0}?v!!q)_lEoIF%$d{ zUDHyca7d(@| zhc{d^xVOig6=2!4MN;?OH{H``b*%=zbIpJvj=-d~k81PxpqfYC>oL^_C@W$~1n6&D z3ekG#I#Jvfg~RV@3t>?Yw_rhH76azLfa0dh%5I$U&ht5UEx)NFKf<<@-+YFN>>zC7}Jwtvo*>Yp8eUKo- zw1WfG^^=IAh-eJVvQXa-v}t}AbT6%WNo?$PsAU9p41TFlY7Sgzn(&cPijqG^d+)pr zP^1h$!kN~T@uC!$?_cKwZYYe@+$V~WY$l@g=1udNy+5s(oc!S_V=n!vT68BRBy*)= zMlsoP$gF_KD(lqaUacA!a=UY;hQ+MUHj-3(@1kD1I!1Rwb{7$D+&gs8p@MCnZX#7C zY#(ry^i3Joawut<RUHx+xtV&WwX1dD@|!m$adH+gIl}S#S$w; zYyRauR7YkqHx~7-HkX)T#IqvfuUEeiOgDLrzlF8q$!7vrzm!J!rxn*iDoU_TbHOZT z2~FGaHX9}&!{gtR+)+kx_z(HXsoGt;(io8wAB*hm*gNstC{SdmVS@5(gHlr54V!!b ztOd_r%1LXeJ1BWO`s|PQHG^)ruyJ4cP$*`8ic&I;D!cKu9r+zf@dpyXNrCF=I?(iSzKq;o2#NR+p~MA7K_Yi0iPm}>(pwNJgY|wcL8joIV9(p zx>+AmL9b-9JOgv1%B!@|#Z{w##j9JY{|WV0Yv2mk@(lRg79|nizlwTUOEEa_KYu8~0-aQeL8AOVgP&r&ZZ?Mem^W^>I7^)C|~Mc-LbyAJ)V?r~)9Bj(?)apkBdY z-Bt9Ht;CP9&1CH7s7v-QWLshWhBp87w+eH52O*>$G_7$YPt6BnSC%GoZ?(RVePdD4 zRJcj9wbiA4n~@gJL-pekWX@1tX{g8h;%}W|MOzJNSt-=eN<%YxIth+?QcuXNiEuie z8eQ0!k^{!<{OV&7Crb4NpeW_8nAt^FZUST>b4xG&7-SgYwbX#WxGXmA9kb=M%A86R z^rUN)+KzLqqg&KHkC#;gJA-SNxkaowy+RY;)rc+EV!R@FA@E8@NOUnDXI!QfdBTq< z3#=WOJM_WFMpbMP8H`y5&`!XOXBcS7cxK44Z?9?C21*Jy=34-;N`c8im$UBoGrr?& z&uFRli`PrvZ{rQ8&Il_Z%>=E3UN#k0t$D2{CR6z=PDcEcTTU(T+<)S1Ja*rtIOz;1 zleN&D2ZMObBlwL;u3$~4go{})y;hJ5?=QC}Hv%CNN1%Z`dk7+O@%_w(I}PfbwptER zhI_%U8a7FBpS265_($`h(C`taeP%HuPP51^hMaFQWF3unb+-YqRT+H5FG&DCxC2p?~fU0RSOLY zmkKtuW&F!8*s>rwan+vVM-;{Z=p01`E}Y5z1- zcr{psI5=6w3lT4q|6_B);kPe~C>sV{z}QCz-S^(Lcd0287X+ziE?N{kt{%xbT7Y3C5Q}DhEoQ+g@I9Jmy zf%_;@ogLfaK4K*&^xoD3aRmi!Pb1?it<=6c-_N+e!HN^ib&eXGFM;TZzDTD3+CfQ7 z8E5~8ly@B_=~pleHQjV>HHMO^>Kh?EYo69q?{x%%K1PKzSQ5&&EG%$M$Am%NrVKBM zx;3pRxMh3CsIB=;F7UYWOY)}OV>5iKh}QVIWyfQg(U$2jwu;oG}p2i61KrT$WEjeEXZryi+ z%W5bsN;vaUoZa8?oqc`&fdlz~&@+5SCx~dU627{q?=gpP-;!ThRI1pREgN#v(03h{hv zY%h(1rhteV0}Xp7jef0%QrkgXHh{OTOJ8I{#!1;knCnaADwlzZHLo0ps>{{dE!)-4 z(UhoI+_l@GT4j~Q!JQf$#o?v&-#>94#?;@$Xu{xsxI{iVSxzA}w2eho`=01+FNisL zAx#Iti#CUGS&SxkD06z3SLkZpjP4JI@2n*Xpt95)ZglE16X~uz9X_2GM*ncB=dd=E zBNGt@HA;Hz<;AE=gzb%ZO4Je-`z z<)J^yo9>%q2=CxxZU$L34Zf4BPdxxdo((8Gm&(REL3}QIUk^c9r1b)wYtW6%wz{T- zQ(F&CxG0$510)?_nzcKxjFnqR3|h%c_F0)xKjJ;YS(3~f$PIYzgCdn{#<% znDw7`rPyGVHU=V|jOYdyvFqF|f+QB1Apcntrd&l&6H5$T#;VK=cvfrgMyy1iVrVjQ zhkr>$5;TD~qakyOq-${DS9%SCX2(0H6=W#?7M zh}%*%6ZSb#Uzd(NVT7VE2yy@zPN|ViMSn^w!~%arf-f9G?j8I&1+qS+t9@meQ@m7% z447Nr_0Wc{Dmc=Wh^B#t$gB*3Q7jZ?be;A6+Vd{b`hbUFmdaE~W31Crn(&2H)LjZ< zWhtt8vH<_3au<(3G}v?478tDk9oXy{)J02oFOo3Jjm#h4^hwQ1zzVc$(F$ZDdItT( z!%2|?jqOo727fVEEPCGi?QK=^x{~Da;-pt@O7Q;7HS141@d}HVr1573Hs)wSHbme7>LOI_&tJQ(tuck zJ-@&g00RGeDq_~ecNP`&*w5CnbgUZQ4jgyUtah_JhC2ZEO8b!*C7@39t_Odwd27pg zOYn7e0u%P{>yo;rUIjKkU<2dY%Ato?8Ipp=xJ`)KMteN$cYp9d=?OJ6z>Wfa65mny zcmhg17IX=9ty-DRrlyz{GBc)vZuig`xDh{9$l{;I8}vRU(PQTE@EdkDpf#Dhd*1=y z@%mA_w|RRhD%`(#{d8)KGPKSHq%{xone8tpq=Z&o*dMFK>E~Ls62rk7x9)Y1J}I6Y z`9AXoJwNdhhlDIM`TK0*zGI`tTq6Q?-+yI2G|L6|d9-kBT~|)_<)9D_U3$C{dP-3j zie|nM(eCDX!v?oKI6vipu_8jEX((*Iy*P4eR4h5Y1w0g_5q=_iFo3_xWLNX#;%;BK z2_g=styRnR+o=KZ?DMr3!@#78V&Z!4p3%I(qHr{$$^#KKL*slR)S1-x)YNd1Z&cfh z?Vd4sp_eEZlY>hx4#!H6*t(|`SGd12S4N}`XSVIgCCB2_YA%Ki zE}0m1pTMk&(0g*^IFMJhE6>UA=Gw<<4e18fxW5sB+(~t=z z$0Ri#QyOD05U6p|Pt$MazgcBLo@zsW@`5jj2pmU(AqA`LE~oX8`XKydvTn4^xPor_UScr;c9}c%$;-}O-?yY- z6vYG#`7MeedetSfh42!AZlyE&DU8zK|e9oxjMDqXY~bB3jQz+awHO!dlkR(N-M20iaE|65=3iWcBuzsI^GFd-}%k)hsR z1t16_Kh`l9M;qR^2C&qr1^Xv1`wldQdV$)Jri%7QsEWP)tFm86L*%F3=2|f(_-&bQ zy6b^HN@!L1Xck)9QX))+wWb`i3vgRzdR7L)>F>EGmAn2n;XZ)e24LR^i%(!@Nx9X2 z$`RQ~D#A=Yg`M~h$bUCyvM4M$r6yhu*JiXGr9F&3^q^w{(_lzlex^;bZ(SS=yw>9w z?HH540-yFvE!fP4+JBdl&Q9#{FOyC>t7%a@=!y|8V=rIMe)lG)LW%dx?K;brKOL#? zrnWOGq8WeP!f?=jv8Sm!x-TYNKy)4u!&1=b9Pz4IeXh61mb12pm4V?-~SQj`2CTm&LPF+!IDsK0 zcn>>x4ux90cRt06emCmbaL+yPnG~MUNL%Uh`M9qoQi{T!fzXEH)G$_f_)R;c zLAkWNZy>b?Q6DyFO`5HP@Oq?S9dbj`BRJ*p$dKIYxkRzf`tsiEaL#GN71wz4lbfh@ zOx`<7;vov{F6lSL(ru-Lr zd4ey=E&bD8AiK(&e&OK~^88D@bTTz5W~1V%{d}dq|H_-}=w9Y|>m z@&1?g*2}donk%=eW$S{?-0zn%upL)7&~s<`kuY;hzr^2n)tXzs&uVe;g zg9MD%5m3QOR@I(u=Y>w7eD9QGyO?d;ONkOAV)Kt)vIY`V-DQ!D^`pRPrG zV>$8-1p8LbP}amIj;#yj9wswsjsp7jcH;scrl%5}RLf*<_l!%Vnc`cW#(QljhffS< zjAx!YbR!phFM_uFIM287QU&1`%GX9MStSEzJovvc7R21T}(^V2CKmaiJ zSU3L%7}Osv&_78_|GSnVrmr&p9SiCYi|OB3Pz?Xhf@1zV^MA0QB*n$mgoVCXP;&o; zrs(h7|3QNK6aQ!T{^>hq{i^@pKv4fPNzs4b)_=```k&}d>AnP*lyqO>#VlaCf z^}p5=85w=ie5j2qsExi3|4D!Pw{i2Iu&DoY@u|MGrKRrwBX5Y>`U@`Q;QTM(l(nPX z-_$94Qx|G`L#Hn|)n9hle?ts?UA8p+n@446>!@q-ADUBMYCdXyY5{6NY9VT2Y7uHt zYBB2nH;z+VM{5T|1HCUllhK!_=}SUtZs_p$F#MJBf9x~;n!A6*sfLz+4*w3p`okOg zPYkSo%$qL;7Rwi2h>_{9z(W6reD=Toq5G0W{jov)?S%SM>W@C^&sBOB*1y8vsefJh zO8sa4KUe>E!k_$q0?l9b(%>;L|4}}D$+z&BX;|=>>Aqx+Okdh9lN zp!rw)&oD7Cd|}W2aipjDs_f4#eZ~Le{VV=e*Pru0gYws~{v)07>pDFv-B)1vdw~87 z`JZ;bZsyPNPx!0uul#@cw*H;c_2=)&KNtD`Hl>S}_G`KQ$GZEY)%vGl>wk2f{x$vZ z=>ILtKN(;DA7sRTm|*{G@(T<0e{qH4G12_1B_`Ux^~88g|6*@_5u5(Cdhxz+VgKyZ z7c=bt+FHhA{f~CO5M%#8uIw+W*uQ>H|4tSA2i6XcgX5pzFj_oX7M6cu#OS^X(z5)^ zlJ=jdV)S(Xu%Q00sbc4iiYgfsjg8^rHV{;i{NNbt2bnlR7Z(WN7r@R-z>mMb zPQSK~b#<|RGLER7+Fa&&o?paw3NNr{6$wR_HkpznaM44g`$hU9=)@o*V$x&c@+fEt z#7AOx501YC1qsaqn(P@sfQF*80zLy+w6|LT=o;Gtu#@{lhF^XI!zCWV#PA{c60h{k zuJ=OlP>)_s{jl<>rkw7X?FR>rVYaIUSmm=zL0bXf@|UFWmAV)Q_@ayXjB-n}04exH z@qnTJBE7|AV*0{;g(7yNnOH%%_1#1hn#Q1`b-!O$m(*=|!?XZkW8oJ9+`-2~1B3|5 z(+m${>p(KN_vHcvnE>KTeQeR(bH|IbtSytEt$f6PXe+*G?+P_0F|~EF5Sn{GE$513la+D z%npTj#0dP|cdrikGcgLYd&fk7&*U1zci0U8ySoZd3jhiY_zlj!7Dy#SLwkr7KPrO) z%g1}-sfa}9aH+uNLmovuxyy*>jE#@!j2oKv6x`u?jNHIp#ply9Gy}d2Z>%fw>aETQ z^Xime1D>46-8gRv`}fP0^nh>Frv`WxZ%En|Id6i17DO(=ix@majk2Et-y3&7Oo@L# zId49ZHiR5tiLzfxj2BTz>lr!k{Qg%?s!uU^$3SJjV)Bn*7rYa(D&QG;SE7*3LuJ2t zwfjW86SFE{S!M695`*Ntcl96q?PpaL=HD3HH&BL&25wdz+u_FstAIsyZ`?3c@UtX8 zd%c}bso#psKlp|T#y|On$tb?g=swt-%Ha{eh+q8!+C?$QdVLSbD|k#_pX&94K2ZlO zSHD7in*Qp7*X!H zyHLG5X|&keO;faZs^_LX?Yj7_3I1ZcM7;A>LtZ-!$DoOMMhn|^fYR63x}>7>FN?{p zo8B2^0@Q`A(an5-3kAD!TZuUR0~MsPMtLY08se|Md?54#oj)Q79Tt%3uc6jYTz*9> zlE~5T-hec3pughdk`iyP04zEvY+NZlP>f((s=wl298x+(W^38@H`+&elqyLKMp!bgI=To{Vz#sSjbjb6<;4EzT7UL&2AS7-Rp(U6-$@5Nd%gf|K>qMpU zR+78PoH$Nf3HshGmivoryc{uJF4WD5IY88{LU-F>?=)9LXA6^xH{9CxLGL8x5NIuE zct_>?Vy0uk4nzuM462NGLc|{SO?&iu0dexD2F`6ya&MV9f8Ds0|dG>`#IqyL& zUp=%AzKWBcCL^brWMs&d=TD}(x6Ws2M?*%3U4mkZ#z%}CKUTZLF$Td5sjbBnj;l20g#-GIO(s2sm7IlPPPqmVi zIhI9Iu&O~%Q=zbg7zQwa4PFmsl1ww)AzjH`Ec2w9vGZ!|9=3&0skv-KY=3hhTUQyZ zh!{a+7U=F5zrf<7d(h*jjkD~nPKW7=gFc}&_|6X+d$TGy(H0P~%E!Ab*QwI)3R&;7 z(b>)D8hOT}=?Yt~t-@X5a>5B4JDJoEZ9_j0<-PpgZ=cc;PNI3un*(+nP~I-<3r5^? zf7{Sy2h0xm)kJy}#f$qINymHzM)YhEitcQi8g=WZu4nIkk}joK|8yxzw+seCdKg-@ znQ#L(jg>ScQmxcgJ=Kyuou~}_cuR(~sVB#XkrfCbl%{Tji{rhfOYs4Nv>)DwcTUR6 z9rDZ2oE@|Nka*IzYo75eLxL~(l-_f>^pa1MF+odbEh*)TL6(;ZX zqL6TKGD*t4MC4qX0SS2;GrR+01qczP!TupmTBVh8#f99-G${L+uj z{+{v6Cjm$8fPWo1DH4q369BM-)yGQ8rB*H6IvATM3w&U$*~4^*RjYGh@O@@MnaQ3i|N}fR(WUd4%e#c?aT~2_XHDi@b z5-GXx4A#_yTfT)&BXbc{Thp65iXYxe_oKMUb?{Z= zQuQ(l^t{$P?4;vxHaV-Riz@>XT6IL&n|E>x0Yi@CZfrS&wwBt}*>UJ?tAccXw|ixd zhp(8b_B*~)+D{WwR$OokLXWZgQrwp5XAV5t$050b!;ln;{hh z7<2~MCp{Ms@du7brx=l}`lj=*4sgev`?q!~U3Gq7W~HVQkk>bUTjw3DMKByJZ@NL! zWop0Q!q82#Jah_zn4{ZEL}kB@5oxd>Lwn`&*eNqcQH6az`^|pIRDlxKbKF~^amLn9 zb*)N2KLfKTRg1hkbEYt0I<0LQfskjV{gm!0nT-&1YvQ>G8T!ktC1!e8f__iWajjod~#-zd3M}zPGIx4 zYeXw9Hx*j6+*Pj3O^T5n+0byl&7fg*W9IL_7Ca={?V{b@pkKo5PM_+#?EGNs_tOpHPsdidJyKm8`{hCQ#Gx*qt}R)U99VL;yt>Vs%&|o^Jc7QR>Z8|8 zuCsfas*%dM zPc2w=%_FJP@F>BlE*&c?&kb%+`j_-ncd7EVQEsQ#)5lM0n%`@bD&4A;&$p<5k zg=MUcJ+VmlDKE-*k{B%(!a$SN(wXDKVG)!zErLenc!Ca&BAPG%uS7d!fw#oK1}R=tWjz zjC)LNxYWFJ(d!kF$3~uOA}il@th(Xl1$qtURR+e@d)g~C@57UVhI!_(uR7W`>ZNr58ho?W z)wiG8#amgIe4HVk`6)iF#^c<3g?(qPTaYm1!-p}!Q^tJEzf$kDsPV)fuMfxWp0|77 z46760HcZq{54pc{^=R9R-_k=yT`wE|)~WXCkezc4AGt?5>8wco((j%?|IyF1*5c5@ zesMEiFV23}pl!X};yj;>_9Hr9sa>*jK#X<6C7bTYczCQRIo1E*xQ=_=>f3d=EB|Gi zw`BbSUt|4)m&2~jcgx$~D8JXLDeLxLdL5SDv#muvNr3)GD^>93uL(c*`z>DPGe2PG z+V#~lwl1^Tz2)GZpXH<5b;c!MS3my1jpe-t78%*{eyRFK0J>ud~MN+I8;_{dT+@;&p3EZf>&Ghsq0i zBiy@Qk6LZwJm*35)H@lQ4@`6Ssd9U7bG~-k!g14D-S53Eu}Si#tu4d0nSAJce&?0ZA`|M$Ks+*IxfX+b6?LPj`s67sdyO5?H}YxKP*oUkkz9X%!M_4NDMJF_RYZZst;a=Oh1 z59u2x+4HpK*TyXAp5!ps_|c_{YqKVJbg652Ch~3HSydgDq-^S?zb^6VK>hovGXrN@ z*1P0zve&`kb@M-7e|_i8=rPeltF{iCGVS{I>vel5uB3N-9`L=wQ@3k&!JvM=ekPM2 zcpY|`Rq?cqQ_=yanMpf$4LRZ5a`w9mw|!1;Xpq-6Nl`;*80% zTLDj+%`PxF^JUe%Z%-S_k{VRCFE0C3^X-9lmeW>#l*b;4b=ug&q-utJ$m!<6*`}`t z2H2KQz3UTn>*pcAwS#VY<>znswl?fhBR}~#FSDCNpjeZKBZfV;fBp5^f>-tI_Z9l+ra2bZNuBX^i|FCPQHk>dKK7mX=FGxNzk0R| zyqxD}@YcD#&5QR=UPEv0?xXYC=+(Uy-`{K~*m-_ncFnU{LAH_~Az`^wl04VXv}$T! znSG;o{iQA@`XBQ09&|}-eC+fSe?1eOWLuBXs>iFcwr!g_*{F`|g~X>f8>Sk+Y&j@3 z>5y>rr)4H{ZtI+Xav@0>7=d*0~qisXbGozczOlr)I@Hno{c!;!WbM^YO)VCXNT=`Y+#;Jo( z#)mF#m$$x#ZIb?u4mVT$R(?9NuR2L_Zrk{!;>K}#_u4P-va(@i@QnQ*tsQ$i?e*Ap zK~FJaU6^pYc;>4m`K4FBg>0(0bU0v0V9QT~Vv=MhkrUVbA7UE%;Hdoj}G7KKcC-hiF?HM$>Wb@y_Re~Ds}>wG95ME8;ih`qH`~QM@v(BPzw%wf><-;BE|f{BiTv!mAd=Hgo3RTJ9O8_vK#BlXWd- z)q7HMFDs#*je8I9Nhnaa4?b~KsTk2{YVEvbe>aVb*nIls+*i#r<1O;02p=zKlDufZ z#rp$>$!3*oEiN``d3yWi@6ii4T0N-R`8f1w*PP;crEv?wWtDT?_kVG(3>b5J%+yXz zU#;)a`q|m%K2viF2Y-5ydVb}CguCV7!_(QRmx6D!(`nbu*(@yI_h#k7a`%wIULx_! zjxWmxMYbHdpx25IHEa&86dTXkeas-a<{6y^5kGXQ%LMrY5?_s~qkqmUc!P4Y%iXk- zE)V6lMRqaQXPCs8*x#M=XkyB)wZlJ3s~;APziYB5y7$+(Ro8~Kl6)HWcy2r2j&nO+ zUs%zoYs8HH5d&&O{@tqSlxU2XkPKdkZE2Z=Yzianj>1^4t)R^01p zJFC?p2ib$5jOw(+P`CR(Pkeorc%pPoShcW2v0e4Jr^#oVOm8P_y*KY-mZ(dUq>9Za zWDi0o2JU(ump3agAnRR|85><|%Nx$yytGHxy!f!=r%Oj|`|%^^uZ*dWJ@rRfmx~)* z`*_BC#*f_3%{@ED*4e#0+_vX4VVjndFUR{Y%Bif^p~3X#I)heQp8T*k*)XpnZS3hA zKUMOy3H8!HN)5MMSvMof=Ue{8z#lDjo&6S-<$rSUczoi=FzM27c44c!CQaRY#kYP? zzr^K{_d7VvOW&bf6n?13fY3qD@-v?ef1bAK?Td{ICRKkk=%14om1-#%y>0TA`vdPS z%WM$)_xtU+;~#zT==-cuZV#)om!FJk=bmfu-15q);Y*zrBRd7H+Pb&TfMtfsCgq9Z z!!r+uZcon{S!}XCsKM86mE*fCoO|x$Sm*RPen$>owpgAixY6?5J6Ff@Cw-n4zgs@F zk#br>%e3aTCOao8ZWdJCFrO6eF*WaH_irURN4;0p3QU>tZSuWFMk^-f%vi0Pl>P0@ zsRJuqrbRlPD@YiZQt#{PG#CGzJ^=;pKl=M7yLY{{KI`$F23w0#YQ^kYzaiJM@%S9O zN}E?(eTu|40v7e!^)%(LJ<+L+ByQyqF_ZmAwNhEO>6ho$@Okb9<*dXwX@e%Uhcw%7 zv!v(P)ZTHX&veiIdhL66+r*%!tDj%>uDJR!wa$v#G2Zj*=vhQGADX_`x1V6u%(1PK zZ|a@%FmTK9w_D4+w(^*wH=K6H+6Jgm^S2i zQqLYqH7{L=>R7R6S$e#IVW%#c#jEe`e!4C>#;#k}!SlNazQ@j3{I+!9*OK>nez`B5 zKFujr4*Y&cFei0;w6WKj-Y<`yuiJmwA&UcDE!I8Oncb|D>XzINE- z8=W#vE&KI;j4<4GN9Y=>0Lv>k`)%m_CNd%a*VgGZ%B*W0I2e!`k`Z&P=Lq|YZqJ9$ z8nUj({o#>*Rn=E~W4cWHV(fG$-MK|lR8(k#8Ox%Qb*}FkRmGfmGwkZ`Bmg`%|%O2Z*3ab3nVCHa>&GVhzT+8~OsN*9QPp{=SCeOS6#MuS$(*_>d zd0V7k-?iS$l@%YZjaxUZ@!pg&)qA7w$)A@e#a*s@E#!Ew)pI8;d|Vi3*fe5nh0(_6 z=Q1W-&#?Ac^J39LcRCi2h zQjIxBqCQsd^D3)*`t+UC#tT)lb@%GMs^juG>s_F0Q#0N2%DRbr)|gm3dF3WlRmx9P zzl)sXKXU5)Rd32tuY{~id{B3|UFp(Mx08>wU*%nO*nCi{yXHkVf>y37i7b@fk=Cni z@afeD(Z@ZCkdNPnMix}Yb#4$o;izZZC9P#XCz=c%ob$%BASow1gQkV7@PjX`dzIIY5wMS@m+cbejYo0ZxhAr=LPb_Z$16LZ=BmUX5N8b zA%Wut7}8y#T(j| z?)ld6L)6OeB?iq5+SDv|ew9>lcHQ1p8y6ZMbl>zg(?RMfDLt4Z@f{pD{#xwpySDwGheKA{@DNY7}xv7nH5VS%SM@u z?L76$7`Qyx@G#w3wIOGw^-L~v;Cvgrv6vn8|-T1y7TbS?oT2N9cDVT=zZ~p{i7HD?J`GY zMHDxv+Ap1-T=T}J-ti~0FDw3D*|X_)#mo6C+I{vl@*O?0X_q!z&%7A;HXzOX(a?Qu z>Yk|>{MonTL6@&~kA^I)pO@to)_qS#EZ?*Dh+ab3)OUkJjTZ&actQ_|nOYUNfH)q;uqJW}$ zN6*qbI-4xqvo+iZkhmuGh?^&56t-S@BK^T&@^aU)~#c}a__vyT_7GiY^x zi`&-`)2b>GJJ4yF;8?R@hg3lG~jv8gx>fnUAPyI)4sXP5)&{Q3#rafyX)iZ81 zIeqo~mSd9N`>YsTbDL!oQA@o=H)D1hWVO!eH?m8s>Wz-;uicvv5m4=xqjRxvThc}0 zfY{HI+}qD>(Z0~S?@9S^r&gw&P5nc@HBYUwSvJci^lwgGU1)6VuSp4!~XqNwYn?1aohB%v8~eQM&pxzSEfF?6Z17+ z{`6Zn`{BXwmWeuryzQAFnj5!dp0``cS0kOu^Y^EpE*VvoJuNNtnRv~CwR*a(l#5oE z7R1j>$lGgk`*Fd((c{niO~0^rMQp)A*Lcfn_UKb8h8A$AcNF&Ro_#j9qW{rp$K<7NjWSJ2P4x5M9?dYea{OlGYj1T%>2>buz>v3k zYsP1q46z^j;m*6gqLv2YkzbDte|9T7D)!7&OX-5ruv>#Wr(Sx~Ryxe6O~*Yki^?qj z?(Mrh^7E#-ii>yF%Fln3ywA_fvN*QqN2;CIf>nXdQyM)LTshvqZ(DV= zDf^MP>TA%#XM=Q2TCT_)CmVbyp~DM<9XU+HB7MPw8 zs5|9qyPwN!*YrrLciMN8arw!43zJe;T(I>V^vvSTi6)PRJ`?mP$RF^;q2ZHRi+h$9 zH5q^4^6~bi0X@TWqpQA+&mOnBTeG!UYp=Eslk8QbZ%$~qck0RoM)LM1u|vOio8{S0 zXIj}F%b$6VUHcxjd~n?8-O&{CA5TYtA+_S$NxM>}_KO-GX`5L8nzJH({H_N>jt5nJSrstUaY)*%ejE4gdb)L5xioZg z@UXK}9vVmoF6-Lwe4ldnt{t{jM+apMOL$XuqL0b*FUO5~#yPYPmJFS4(dFt$i;49s zipw?|cA;mr%p@!zW>-0{R@SQ*B?MIDh+d$;~cExz%`%A+kYL>_ReWLc{ z7Lm7gA{ULV<6L><_K_)NU-x+24?P_=C~|m`?yvo3Sw(dNJ=R2aP_4CUIyms;(Q{Lb zTv)$-`agl z%(zU% z+pS-Q)~&lN*K$Mk<969`t*?1SpWe~Y*(rPZ=fu;xgW`5H)B7>q?((H`AG=@Z{AyD4 zCDU%s)?T@DLqc{YH*p)e`^DD$y$efs4ejHUqVK(_qT{0$hRJvOY;mm&7uoK6Rn{{5YexmTrL@@T=V<@KU+$i7vAFMmGr=`X`!+jx)ZX@<$={n7Rd~wp z{pxn5_^-EbyUc#}{ejck)1K#dTbqjRmt+bqbu|r3x;?RDqHB4D$GqHgk$TEgS0=nU zef8_`ZbuxKH4Hr9k--gC>jh1FIKS0zN0mbA!vE$L==D9iNSqc_rH=RbECG;((GY?ngM34tS*tUjDN9rtAEWPj{<9gTN)r~toJ#(y8`J8FL>RvZ_ z8Itt4ea_(5gWlaA@S;ca=~b;35ArwIzQs{hU$^gW!^5jzUpcqn>JVkbOskt0-UbVIwT`@rSVTa=b^tuihc6tB7?&EI_GP-ppE#;-7%PFwRI{3VDT)knH)*FIXciP{n z-l;{mqdvR0)AbtvZt&7>;j?zk&)BAayJzyerJKGaZ;H)vI`*Q(dWMNfbL9rt2?qWr z-}rgfHaz|@%YAvw*1X!@kIw779MUT=&F)T@dw*q}ANFnV!0wxB93Ezpe7ftkzMWTI zTI6ZE`F^|iA4{xb9!~r^tDe`3squ%SH*N8>c+kksZs(~sPl8Y8ezg5zFy}zQ2cJ}n z(!Je{Oy8eLvTr$hXZG#<7IB~JeO$WQ;Z3LVot34#E_agzRvNTEa`)+qqH}#NT|M0B z$%Z*w_eZVjd-(j8tKTMX)GeAmIc?;RNw4~TDB6DI#ouQ(D3kh3E-K!#(d5|!%NJvx z6>fa>>YGxs)7mO}mq*s>x!rYr4wN@^es)_|-PWZYKth^fCMOGvG@*|A!Vj zkGjaMM|(bxK2+6w-UOEqvn4^I9t%=cHWRydi#GJS@cz{By4!(b zp+DLTEnDpGxcs}PtM#TeMGF0;UG8Q+ZtQp9%8I^C_e3?WHE~ISnenvshM6m)GCyUz zKCjGDH63u>Aa`h!=QmC}*0bw5)zj;0)PZKZhrY4f*`l>7VfWtDKzB1`;)CJK16%Gt z+GB-9?WJ`z~2NPAC=_@7SulXtQ5Y#)O71_BYFRh_M4ze> z+qj<>Z3df;wyMs|+xKnL;9bX;_nG)%*nWrWO>d7jzLpYVpK~+TCdI)2=CMa*r$!GM zqIXEO@Mgb9Nvp-DYmV`&I(m3}tkw8ErtS9o4wbduHAbrUcm0R$zF3^C_49Loh2v;9 z-6ORXrCqB6`mXpo|5fvZjbqQnf84ND^jw*luH*kKwx;xF-4Q8ucWkI@C?BFq5-ok` zFmUDcL{aDR4eK8@IdGy-e8T35@$@<)w#+rL8+*fJ?#i7jD*We%{Zy`NHGRm}x2^C0 zNFF+GZmpschf1IL1ulJ>OWT@#)>}4b)5&ooRvJ2YlWd=M?k~mFlmRVHnB=}%(Q$RW z%3KzExK4um;}`QbU-L+Q{e4LPg#}M8BtBcwXkr>2x>u-=?GZeA->k39$&D>-J>!sV^_$w>_Np z@L|~6;C>$iCLe2^-EQ2ZVFP?;F81|Tob1=cWln6M!_yhk9Pe#eeMB)2-tDg0Y-P>5 zjSM#J{k+sQG4Yg->uI~0`qwLmelHlYGdy`(ht^l*W5REzP20b1yI+@$b#FC1xT<|~ zLBxY?cSh7tA3FbaX0+t0)vI8WW?w5EI;QV@(``zrzWq*zVrkrsS3MlB)|};>-zQ>0 z!Q8F$8|gJ2Kh*QvP~)BHddI(y&MlCcbe?u|W&@kuswr(V&b;%u+(9@pucGwU#YI)~ zZXYb%@_KsTt)(ZO((2rLJMPS|vQ|Z=Cw)xnrMPyJHM5sW6pdlKXbaPh2i%2 zP`_Bwt2d9PUpG2(?x?Bkq{COD^hc<$SgzVT*g$D^Inz=;>qMl^txm6S8NJ8ucGsmY z!X*t(n3b7MUF2%tM7em}mV@B6l#-cjx8C#_prl@R#sbemUZxZ0@vunWCgcy)%yerkDSmymI#}Vg5?j8?F2m^|yz=$oFYCP;vH?(O>f( zj9Wf$;Dhn&lHvvzrVh?qImvSE^NEX6fB2rUo)>lfg5qpFj|lbl-{Wiib|iic01g9q(0C|7Jhs z(8&Yha@UC$_1Lvj>YB2-r2dRAd%_MHRa(F4doM%MDC*P2pThUEY!mvdu)DM_Ml|j0 zhl1tXPrmMK*kNW&yO-@wZ|qw4Q`P94p=aC7`DNGVkx$*%i7%V?DL%CDRBhXji&`}g z+?3cdvN~aPA0OGZBfApwm%fp-zc(QJc=XNGc8d*L{rGUncg=TUPWYgON2kwiFyQpH ztb&|7Q&q8717{xSqe!e5G%vSz<}$mdy+W3+aPSFyF($P%wcvFf7dz|7A4eWoJxcqT zQ(bFg)kVFKZJ|#GopJ8G+MsS$*PH7qAC@&3eWrn8u=VJqg;7Db9#>l2``YDQ?ub54 z$=QWFns{BcX)H0Gb1l4jY*}vo3d7zlM43i$Mem%~S)J)RwD!fBpGqy1jrw2oec{GviA!vJnf_KH*J;es4F_T?D~L3QqlAiuT8$*nXdD) zkHP7)Irc}LbeA7FFrxnWHr?C{$J$T0|E!iw(n)bNBktKMyMDP9L+vG2tDM>;cza*# z)A)<=%W_k`j{eUl4O`In8yHM{*uzRCGgO{ts4e#E*xKQ!q=-nN+rbM1I zjSr3bJor|-dchYSo*aLtz*R7*M0);VLeP0@hmF6k^iNc|{_H6FRnX;vPOG^;@1)*) zy*_bA{i&~J?0C`k`Mef4!V-JfK51Vvr&a%&wRc=8tfSjK+B#xgeta?+QZ z?G5+!(`}yKZc%LclBJ%p%BsCORfl(<@~ajY7VHhI&IzAZH7a)7isClT&2K;H9Dm8i zMq)Ozjq}X-8HO>FcZsJpTJ4Z9#MJM>sU`L5uJV?ge6erF%Y@knr!Ht=e!W4F`K|BE z1G+x_RT&Y}cXh*EYp0*e)-`rZdDCfd+WUu}lN)v{UGz00V_Zr`>j9NP$`&s_Pa3o} zWd7j44qN_MT^;vpUs3kV7doyVZiHR$9$wqF(aH3_`z%H{GfQR#m}(c6{%!Q&4yR8&G0w?-aAV^N-!RYJ zXUEwt&#TkoxcivyX?m-#h3P-4dU9-ZbFWsttn_~l-&L~F#ZEjkvfIu0GP! zitSn4U$SBKm!PbhzwZ86H2Tb#>ra$}SDcW0y?bHRAVzg;rT(yG({HaYHruQlwC`iu z9*ebo_lNsr&uRMTd2mt4dda)i9qt}Csr$tHW8=&>_15-kzI^fX#di|R9hQ9fn%K9) z)YvB}DRbI6MjQW_Fr_@D?#ZM%Z%_P8t{;E7;Bu@>JLf_A=JjeN)Sj~0{C^|dZF^& z6P7QvY*|xUBYeT(?z41;Os(0d)BOb3nUOa))*0-1T#?zT&->{k{q8iXTj6{)D%JP# zL|N(=nQ0$sdi3i}-mTo$+}7{BM&IgVm-?~|<(3@+j|vvn-M`MhV8pYmX`-W#=Gr6- z%ot*}W$N*Q*9MJ8$bDX|_?aHyZc+GgqTk_353@giS|y8hZob2O__y`#-%TFUeYk#D z|HsLX9xCq_>JMss$22Y_uCR3LloPcLA1}=e9@*C;dX3z4{iqgi^#sNOp8Rrn^DCxyXW8GK z>UPQ4vufUl4ZmvbwF<7Sv9eWjRhhNFUvL96r;y3P5dkWJ8C+@x7Oq^r3vdfm`JuM|_lx2F zagi!_iK?TSlbN&GNV8F9qs?5<;xw`#)y-_OnY)>XnaXU6nWveTnYYLrf>}!wbB$Xpl;wQ14|y^x=dzmrWi)jzxgW# zD>uOsOBq}Ns*pqaU_B_lTWl^Ch`~AdKfL1K{)5*;I*6WB3^^#k0#F55e5n9!3P4K^ zc*uovfkGhx{{T;OsE7itIhD)65=|Lw0w=(Sx8yRW2}B80O|B3D0#b&cxjB*>(1w4J zF8H@Z&Rh-`kiy%fP#3tk6x;!ik&IHfTokk@fi%ojxD}q4NR`ZzQD_aO4V;70!#3t0 zpv+xG3N23h)BlrIq!Ko8e!qMa_=jC?DOQ-VeE}?lWzS2@IXy!lQ7_y4|6|c8Fb&K2 z|F~3CAXhK(luNlwz=0oFCJK=mr?-KiQMV|~Tm(w>%2lO^H7HyI4xG+js+5~)^h+3o z>;>jR`9Jkju>6xH$Xz#T&RsZ)0%N$Frz!|+BH$ka5-Z5D!(rkI1_OW$1~16zL%ltM z1g@}8ItsutYxtiC{ikHE0IQ8*7XxR}X)Zsp6yC>=#DB?9EQDRv5v-tQwpak+kGPmi z@d;spHv0+BG%vs;%zPyGb5J3Tn4%_;>q-LU=g@19h~7a z2N~l(stxE7o=mEN9KafL#1kwkXMV^*cgH_8nZtGS|CPBMEOSSM%?StWa&x%|+g~mw zP0SVoe9h%xW$}Mz&ZK%6WD=q$$hb%x2{wTo!4hx{lWi&H|C8AnACvF~^av|rb~&>X z0ThQBikKfb;9%Yda`AjFSNtzNr^8vf8UJHSH! z+2;VVVaP zf?!53;%l7OP)z}#Ml{8TKX7oFqp2@AgQlUpgboTC|B%-H#9Gd>z_A3z4x}%h{s5+E zDgu9?YbeG4!P9@@j-WoEj9@qX!9Za6gN$kj8iH^TB2-OrhrQ&#nH_*728coggZmMJ zB!Cx!2k-};K7$dDxtQV(v%r7kj)p?O0u4*>2L{g~l&--Ulse%LP2>pt4kPpr+(lw; zoby6X1WV2+b(8dtx-6(mq3%P+7`**Yyo7)ms;H3)8!WXU1A`w3ih&;}tAQUVfr1~5 zAe3F9Klt1nLV|s~{a{6pd2l0;AWCRYQc$WxXq43Z%*74V4`Fa4OV2ylM+NU-BxqnZ z5dLNa<(i9$2yh}$6$;uBcIMG!PHE6&(j}sa^7e0ON>DgAFdL={4^}I{6`MbNV6jn< zU>1xuSr#B_i5^&NbjYI#Ptjr{e1T{p?DBh>C}FT-qd4MOhPi@fA!ASkX2H1p4=k`+ z*fMA;!)L+k_SiBgq%aF&2vqgeuna=wtQJ@)uA!JKG_>IO7lDG`Yk|6~ngvpd$AZ^^ zu@-0mLRuiK`3DwQOKd2t6pw{AcOzVbSfG6Sdlsmyz-ob&;<8|_pbdqf7-sPg?nY2u z%>pUKW1-F62=-wX|KM)$Tnl77mIYRd%YwN=Lko_((IoQshC-ztH49C5Ggr_o(1ZnP zfl3H}V8M4cR*I*EHg}_WFk*p_)bClK$up}3R*K7lxq{XL&A%{tUsMEVT7*RJTBeLY2usu;9BJ zE5&1>&D{u>BNhnD{hkGQILz%A2#NACEpr8JC^QGaEdIgWsH)HU0#)SrEVT7*G~d81 zup#gxJUW?6P&JulftBJI3SFV0h1%T`B^mFvj~5a&AyTu@=-ucFiiHGKM;I+6sATe6 zUq}$ZBrJ$hJT0`iTY`$~hy|*|{hkHFxoQ^3bzBzA6|@$p>VsMQ+1(O?!%)83~yKe289v=?Tg(TpMabaS{%SlYrN^7-YbXxr95K5lb`y z4?0CFh-!GqFB-6oqREGC5>42KUSQK;!5POjU>nT>tA*X9MGFQ4(JVNyO`-wYXcj!! zhD7GRPiQV-FpvfdP9$i+Ho^jnt%=i6aL_b4I8B0{&#?WDjxI3?HWI*C3ld!zw=ti9 z0T~th2ESg_Q_2f22J&gh!b$n)6)08~bCx*@E?k`A(iAfoPlKk~^I{so5hA#RBi0;X z#SEyUXo@+IO-w^JLWI!7kd4!^#LOuTnrh#|uZ!?H7EP0n(U6S1@Ih67ngs`=iBWx; zV_uRfuzC3y4T(&#(2~XRV+W=y<7W|CSfKF1PbPRCWQ5QVo8v(ml(8PfGzrYdAt@$m zpoB*(MM6@-XAb*4&71?*@Z%PaLZm;CkmUDjGOHo75DODou#<7}74c=!0^`M;5}cUE zb!_**hR_6Z=n7gt4v+)yz4OA3?*8~q2^OD_gv08G)kpeCi27u3;pxX7n6`Q$&_Adw1iD^uy!GiB! zZCb!9G+1zwKLzp3X%=Ky#advcxLRlfZul_~G87HmG+3b01)g_`@e>0c3vJ1tgX8c+ z{@?qTkK@FeI8Lms{05%1s-u*~akLf~0TC@UahzBijuUfm99o|aeBhlHR*h=b$A6pk~e`Y(PVgd}n?$rvP&^KqP*Oz3bTSMqX+ zHXMiF0zt7x<2aT%>gXaoVsnBEozl=x?RgQ6<1}dU6FDAfj1Ec zyy4gOIBp>d5t{ryuL(h^w+9jI5pn8sA{xB0Vq=?W5nCHt6LHX*=pWD;UYbO*JsSwb zEu`v*-Ga5!?iOvZPQ-zA;6*QtxbQO)mN_<|CLj`NgLUvDeGL2uXcWAM@((n5*&e^u z$xEBsU>$x9lo_PJ8-xGAg70~4TEHvl4#|0{3f{T=4GZjfO&o`8N7LjK;J|A^e42Fn zBLg{RLBg4Mp1cWyJx`7E{A|ylCkx?^pI zU5(Klo>Ug1{mi2%2CIEP@5pXybFh9)1Cp6R^bigeGzh*ZA7N z9$4Ya5u0)--6081z${2Oli(s+p$TJajfCtnJcz7?1vW;VVV>IU}+LL zH9fBl!!5+(k&_p)lx>{S&&YT1Gz}K+< z!7VtNFbfh~#4UWV2lskm0JgT-7l7QLk=Bn>-2)%k{M~WDp(86VjtM> zLJJEH!ZZJeVxN%z&KMGzKT2u?eC8a$2kM8E7KA41g+k359y&#b5Lzk37+d+T*SY)7b2NK(E}$( z0$a89LbT$9GNF)z|AZR&k5tsKTkykAPL>gB!*N1R(N0L?I7%VB42Fw+(G?nUs=Km~ z#&J|X!wZs$%~&rHn_)Gu&4>g9O7L(hT9HM|!U24E;R?rp1gKz}X_oVZ+RAxC4#E@C z2#;1s6Vjn8XgN8MPDt19Xq(}I4`*1`OT=abx1u=13)R?K8{cNyprDWg1@Rgvj?D;j zY%@(TBxFu$=*Ni(4M<1RnOX6$P@tSDG}Bno-Qgoq;MXJ&2KPsqW3coP#g?C`cJ;28N!3uw}Y^@JR( zC#0|*pQMssx)fq~qmE;A0qr|A?o(2*k0#HL4GsB~S}>nd4f&MRQ(Klg6Bk5yuC$tP zPpL+GN~&nb`j#;--VTZ^HbtVb(2kgfc$QmDS2D#CzLD_OHxL^uDO|@gV%RD*P#ro$ zlVeLcN($0Z6Ge6uu2Ns(Zsp_)FQc-`kYdY)|6Crjwa5{?@Fu( zS8^@RRl_zVh1w|MWVAqL(LiuYrk%368owzi_(l`wj@e2L$f?wV$dqb8rlg+3Qp9+&!HNq675<=Nv=j?cv}EA z8B)Y~Pz=e*Gm91=rc~oFB?ZH1;yj1qk{2fwwLmbuxff#=3V>0>2~a_ysDZweTELf5 zjlGoA<5QYA&!MKv8;~+Mrma3Rijjixjc)umib12q>E4dbjs*vuJ@q3Uz%8ZxZ>N zP*jkr5ECs(PCjwX9t!uk#&4Ct4X(NGms4ipfg+*@$1GYv5!@x45dR}6Lc4JTpok>b zfODvwA1w+sC{p|p6e&pI2NBl*MW~%7&OW(N{1Fr>c%X>r!7+;#P^3_UBDh=lA8bx0 z;8=3xA1-k%4poC9#UDYDf(MF-9vtFY>QxH$>t>2Sf+7WeX$w140~Dcl%I4}qmEw<} z2=4?-qD2D~p>~?M+M!g1ii&d{C?a}r%%TMp;XP`Z?*B(nq##eAkV7><5o)I-SC^#} ze*{Ge9w<_1fFjgR6Ib`pKY}6!sed8KH9!$+r--XTk>Zb_NI@RNA>taK2({D1)efZ| zEwT>9OW z(d2kTtp;{NJ5bZa)qbb26Gfbdo$wykTz6=}P6~A)NkL&Jnm9Km@J`u0;#xAZ8apW{ z?8GN7=V2!W)_ijiVkf+LI7f217VIQfmy_fac4CP$eT_)Yl@+>} zFRNT#PLfk-iH&j;)<_sqK*HOPvyW`J^=N9lb>=l=xf(dhsrnJ!xo|N94_9QSLxjLl z%JeN(VcfUOxwd0~3#F_YV96$J4H?n zqU02aqD&+uFRfte7}a7E5pal1L~y8<^dr~u{LUg2H*e@l+riIHSnye!vJbCRp!m7IcCl&m~>h4+i(#)=krC0D~MIR&q1;@nP* zufLC%Yj{xQBnv8atcsU;l>-M1-=Ua`(d2%fUC%GCl z$!X9;5$E|w9QjrQ;2}d%c2&b9IR%sWzLhaxf`C>wjIeLX^I+s# zGU#I8avu)KwN#?yYBVLM&=kv+$v85NH?hzeS|xT|l~MSKC5J4eQEfu)d~z~1VvQZhBnl2I^AMz|siX*}VQX(>a=)M!dZp(&Oe zqXd$Ln_K!WCIa<6)Of z%VRqDbvRt^l2KraC5J4e0rgNjWg+#0IT=-hqAbLlo3qZq79!A=>18qk)U?Hr7Az%G zV=27jFpH&Rq?Um!q*3BQdlpkFsnHYO%e25MnHpBfC|JdE zMM`J@Db!9Wp$1Yi3P@313y+7`;3O$vm57E&CDI?XbuBG;OQyzKG74|W$XJLBi2*dn z&CD4}B{klHUxefqU08C+LKsqU$!QiV@MiiOUNQ=LvE-12G@j?7cA6ZEkYyB#;#)|{t4XoWz!oAH5?P4g zIxQALWM~;!=q06~7bOE3ypVz#KuoHobR|^-F)0ni2sy_5Qe5a%n;)Iw%PLi4Dk+7j z$Y%Gbnj^)S3Plu>j5`dVc8a(fVM!^3MHA=FdbLQ-z&n~a>uGx1ewH|6S0Xvb5R9Q{ za%!hh(1~&y$@GXg2_qCZ?B@rVz#g93L7fc9miWKiQRDTTMBge&qb&f8p-G<&L4 zjklyU-Xi3X5*la_v7@9@LnkTql#j9y500?Tz!oAy4zdsdbK1I=mTHw$jkly4)haSb zzzMKaqsoKM&?>2&P9ZEQUkMFNh1w}{>WY-~cNHmQaAJOJ69NvAO)xJKH6l)t4H=r| z%057lQecZJd7_%?G*y47Puu$+IHyYY|u~d z&o3e5P#4xfRcLE_z9Bf9@k=OFMUms7D)My!jv=(vtt4txg}*??&fIC@Tu*Cm!H@Rn zrzBTbvFQExS>lXcHMiSG?KC;H(VKqe2PqHYEe(scB+n)RqHQbU=aEl&?$?%VaAP)hE5ZrN?9gnnhL2bMC zOVl8Z-m_mr2wrq(AWCf;_Dj_8OM*V-#fF}mI`Su0Q60+Q0=WAq@zgLkUsaI6)wHL1 zR{GJx;pVpd?aG;_#Qv|%fd1AH=$ z$@TCMNFqYtUxY_M6mvYGg@+2*$X=?1cj6DOnVJI$!1f=c5ekd95Ck{EM!ZiUJc8mW znIsF3pm^wk1U!P$p~)dUg2JK6Cp=-$(AR75vCO873iScJr!4dQyLcH)w=s?yRA|M*x z78tfctATH`!@LgF(Vvne=!see{Iebd;u8V$r@Y?r9&tikQD>z zfU8)tP&^dpun}4g?@c zr4zAsl|Z+mjqIS-66jaFEgn3Cj>S9n!9&J;BqSw_`G}t-(6cBL!7CZz&;tT+2*{vk zCh#{D4u4V;96{mOaFjB_p-Kb16q*htI(P&f%k~c`v>g6iBWQz?u{}@s=I{N+$KR#G{T4Sx*+wgK5B=#!-I2*`#%%K(pn zY!WnOfJZa=-!f0g(pgBfJ-n zz!XxJ;qM@u!eoTE+W{?595f{c2T&XmmoN{RqiG*#f#RS^G&q3bpvgQqfZ~wgg&7EJ zQH7&G4CTQu-+>FEKnP6;Od&a3C zn$LiH7=aM10Y{8LBZXSg$YMQq8#QMHi}@n0pEj1F#wYd-Vsn>3N0%m(E*bU z*uxDEuQ1tw@4up(V6GwG9XExk27C|}w?KjLau7fd3Pel^(+t>v4PzLXWyrT)O_?Nv zre5GCC=r^u3QWOO_~YKDFu{QSfU_S=FrYhNFai?{-i{I60|g?35=<{(5JJ+y>_Wbd zZVHnN-cAzS1H~cEfT@LiQ`{6L7O+(wPR^hOO@IWZFs*zI^6GCE8sU^_cP1KNnBckr8B#UvAwyJ0H9 z`~M0|VImRX)$ZU3nusK8m__g|%Af_xgC8}3BPb6MP6=&!b<_^7i)w7fMLz40LygC;dDH*4`=~k08NF=D--(6@TE`RDFrF+hiYA z5NIMfW}tg8pa;%?H?^bYp&RRw#y3piAzELC7pPd{IvwxF}X z-Oa~G5Tx=2QhB>WcMkUeB3;d`hg*S zJ%hb{RRWb?sCS@0qZhcC`+UGBlsyIDb}*omUOEVz4H5+V3mk_J5(M}M2K%}N0HXoJ z28MdO1HNFZTAU3B`TGXA1$qbh`|+K_Hv6I20vdzS7KbgcmY<4=W`R?%TQKM=A-=wV z3bYI8WWTwJX+*PhfhmW?ln_6*X9x+-=d=SQ0Shl+5dXjkL7>XrKM4lyd=6%0Sv%x@)whox$Ah^Hs8o<`v9u|_prHuOeic>Q$QGi7NiciO|B*ho0wD~@Sg&O!nOt%fq5&A7fY27 z=uw2Uz{*Djdk~~U(1oSSH^e8{8>F&uWGxBlOO~ntm7j;o&pm=x84uc)-czQi0>K4f zT0dD89HvtF34(zGfV7~u1gV&g9_*zO1c2u=-u@v$0)Iaynh8v{^ags7Y^NlN!qOY` zz(5a>o}llDDXe@at2{hZ9)jUa@AMPcy9K*@F(S*@Yy3idVLn3nQ%V$Jat)jFfbOK9 zq9i2nRQbWX0PV>UKmnBiraKQHf*{B}&^rL-SppmJJt%`RcRBFCm*MVc74GI9tj$ma*jt6G+(V$51i^uB z?#SM}fRYUk;6Gdq^CxpDW;U2{qmN*Cpg$RZkzL_M#DdI4V2A;ondByB zU<&eP*pkR3mpKm_&goj}VOK~-k-@59rhkD17YHH?%h2K)F=216|z?Cku(fF&3O zIyo8aNlw8RF}Vx(OfU(+6o#nWKrf&=AMwW!l@H9-z>7X03ot_s5q^k&P_Q3UYzqaW z4H~K81z;G#rW)eUq%mRvhCR3d0Bei^Z9vBlhj$QmHZa$?`FKY%y$g<*SV*=3c#f06 za3tFJfx(0^P%xu97>vMpgMI_@5|TZ^b^I}k*uVzlTo9rF+o%L2i^3a;CZIjg-y?*{ zB5Bqu*GNHIe-m_@P|z{D#U22&RZOoAIo zgxLFgcuxUw1Kk_}Q84Zp%=rj-C&UB+{yyIBpjk@92F)P=omzw5jcx>mPHdZDs$edV zk&!eB&vUe7XZG+s#&X16!~6kkLZR*L>y31RmX?r204@Ls0^l@|$~{od$9V&_m<KMPCB#F-3ZQ#}fM7-{HUvo?xQ zBhWv95t~FgSh547oYUo*X2OXKJsjy|#NecjNCR$^5o_Q!c!~hc;XZDR^CkmHm?Vrk zDDly7#-D6xK`Eppfer^qjpsn3Dbv8^&&mz&z%C@|2|U~Kfan5@dTfpbwRqC+IL(~A zrC{Y#-_15N@xY;_AnHSS2~!LJ01&hSWkhVn-I2j*f`Ke<2SW~fA8O-RTTaY}ZUdC$ zBoR2OFcx9L5QjQ@k})7L2RIA#hMf`SF&vkUu)9nK!Q%xW>NL==pvj4`9JRxB(uLK{ zfq`Hy#0+eH{(e0HqzYn^AIJ=9bfzS|NZW0A2o!{Y$&g^!NIM`nJ0k|yGhh&-c${K6 zX92zv06-AtAIQWMPIJUUPEK~*c_BOJh38ceSa2W`_&gcTGfZnZGuMTnl~gd`=}`56 z1}gQ~j!rJadRp5IgEJQvAK)iP0#hevVfh)9-_!qYH3<^-WgH-D- zn4(54;HeJFkb8-@ADD~#l3XriIWQ!cj*T+18bPvCIHv%RkOhJMVB}_kj2*L_-~@)i za}ulSlT7#GV>4DZ1~>6?0_$|t#LWt1WO5>Ci!IbRg#^H9AV>)T0Fglrf&C;TIWn^o zeorMR2sd$N)NoT z7KaVnj7KdQ0cp+vy#@*Z`~{(lQV|#haUXI9bW~s#6$VNoI1{n#5PD&U3@OQo&LJo_ z47Ua@Bi#rxg<%1vq|jhMZgvy_O$=!TiIkCkz-B5>|3L3Zh-2A$-N+!+xg;c0js!D1 zFyr*`o*dxr7GP!pIf5EARv6W~ASMA&k3csc08Q9=wKkh#JjQ!Wf7zfYmQXKk&^ToVYM(BlCw_R_bq8}@X`IKzJ=v)$e!DxPcAFi!_H}P-+%KHcDyyj z)k62|DBXYDux!)hU(xiLIM7^<-?mAWe|f*D1`!H(I?wI&~+0gs7y&7DH*!S_9AD>QpY>YWS>jrvu)a2JA*T#K& z-9LVK6_XWod>wA*2K?~#_QP)CLVP<%i>xZuYtI!>jMGvM+4&H0%s@YqCvi+x7rIyvv2R-O`JVZA8M4 zTkCD1zWvCO947o6m9T#B%I_?A{d}A^uA}SH=a*M+|BS>3Bf1Xu{H^)v!@K_jpWJ>q zcG}u*3;Eq&ei##b_JQYzYtwx$-=Q3hReuhUxc;KAc=qXCe?NW(j+X0Zte>`Vwv`RL zTK4PTEC#zJ`+nzP>vjmEIWFq66aM+vh4}G#tPg)VHh)&KzXR^c?+huwq8efk4vjy1 z_yQhZwBHN-unoJN$?q``U}^_P>=591Hne}gEC2_xcn%G@{_^(3HbAJ%MgiA0p7_2- z*WZt);dbZ3*Pq7pcec2Gx_-be>ivMQu|YO+{_!1BUi?X4{NtB@L=1WQ_pHtHP4WEm z6H?74De&vI8&nFw_qOgH1JDvfXDN4!RZs&i3IyZY<()-=d#?`uT3`?9L+B z4_=}DV6UI^fBz4r^c-We8jj`K8ESsHe#$PPh9$g;0qr`Y$x?Q4>ABItF8=8g2off8w#1m_GM_)=!SD z{&dLS!TJy)+=F2MDU!;+ZIQ8moDJ71?hU`>>VG1bZ;LBFM%AuJy}jL1@jmg&t9Pw7kk z;&sGVx1Zj={N#VX`}6G=FCRXA{V5?H|NisakKaDMd;4-zc zZl3?c0+F!m_b+$Ysym*aU;g+ETS-d=Th9g@V5mv_2PF>}Vphm-!0zsr3_f6p-wC1~ zFg#&d{sAL)E3r}sSpNDZhwBKVGX8q%e!@P#M9Q2nLY8p+9AW(ZlJM&TjBg_dUgHw6 zGv`c~&sTYvL*Kxbwe1L_j{kk)kp}ESo%}g24?6KQTeSnYBWOB1IA3=G>kH_ zi7q>~V|wdk57^E9@>)(9PO`$6zKPj9wu2=;hG7jD6*|IH28`k~xs8r6-hWte@C94J zOa)spM@QHrCb5)a7%);IJQvPle+MtwBnj`>m$`_pfGsyvwR?=^Wx|NDHf$+C)$T6A za0Oe^V!;?#?N&%cwYwzRwP5R(nlQSm9aWfg7N}aK@1RH+v2TTM)f_0;ss~jtok5P< zdQ)Y#gKadOax5d&RJ#>vQm~apS+F<7OZb@z$NCP+ON$O5XW{@SKDc?&I1KSF34PV> zKDo99d!6Xrf~}fW1-m3FwqWb6iUCVG(cVjfG!th%+VR{#Viu1u#2>9GRzi+awd38- zKEE{6_mcgvqQu7-h=|SWFe1HfUK}HE(`3TGdYw_mU?w#`Dg`7WcZ^Fwa0KKd4A!|` z51B9mw0oV2BWk{pzRhEKxaVH?5#iX)6KS`EjyWy?{e9jL4|E3O^6xWPsz)s~_mU@J1A@GZAN!B$nUf?bjXT(I?0$b>zt2M-IjLZu6~GB^sh z98v{aB}xjmiX;|nRa~Dij+@p1zT3P6*-X3>5hTIEh3|Eu%L}&3KNW0MnmxiuT6vuu zr3s@lZ=FkWO>UZ>l1D;*OZ6ozHbLD3AJv{q7Uf72LD%D62#asnBM+a}x{#l-vPZ@k zynWMs5&l=e3RELKF6S zIR^^148H|i#`1!#_~?SY@!AtrEZU&(Owle;S7>JaZIp6qo^$)=Hmd#{mzrT(Q);)> zxnzvx2(P}Y&UL}o`#2Lu`OCiFAk*Y-Rl61YQLq!be^|A7s@^*4l0D68;Attk2<8fZNTJMdk2QlRJ= zC0V=^;dIqQAAM2UTgSfR!Nrzixp+jAcj%nSfjZ*D{e0iDEstTY`hBAvAJS_|-@9Hv zp85104;ko=hsE|CMcz$GL9b_F9{UJ=QSJ!7d*m$2`&Rgp^^j)=1s;~DA+fwUg^nLW6zh1A-PJ9$< zX&!<4p}QMHd&@|OAg`NFfvtMHHO6`Xq+rq!Z^&#_gwm7FwSchrTbH2}2okw&|FstnaxfYhYpKtikR&*)20$EHcPZI!+r?H&-< z>iqJ#>w)pn?t)3M*5D2~I|Z4J?e4>{YVGfN!oF=S*vBt@U!o#3dEe` z99Q2}pRHi4PIbZBH^IBXcaJTrkQ0lAvd6ezY1I=SlhJn|OX)ihU+R1?#(FBD@Nq(V z+}G<-@Y#+CMA21*Gxg=z2)63O6~0vfyI?C?vS8~e&Ix-XUk3?8D`KYFaZ~qP-mHQ? z)oxYJDAF z$<12rFcY>Pf?VhOmM4*#xRI(aWYsiIeNe3R)eh;ZWpuP@`71I#tsn2=_T5O<{;DW; zTo;u1Rr7GduBAtgFce~+x7UPi>C9ZH6*a$uzUI4Zrg#ovH?kj4;4tNL=3EGJ>vP1- zDE*g`jIuqjzn&kJgqk0~CMA2nM$^+=(AG2;T(h;8H&`gzo(RmcHv}zyMR`u~D~Mcc zk9R@*3N9`iUJgU^Fw_9qs_=Za>~ljnT+3I$))Pl_j}Qf#HV7zb8vyQAq8EC9S?D@5 zal0A|@6)urvRv|FWI=KLs2TxTB@`=$|*exM%ldmhR_+GH<+jR!K3eZ zuAaU>z_-d0%{dcv()eNmt+hvx$8|9G1DJfNz*bt!7y~b75|s;vMNF{u#Otvg?^Heel(HfR8tTw3k#+sk6lxE8F%k7eZoSsB^7?&vzbnQTd61)m(zFeHg*F-i?$l9-cKQ}EC(_|~(o2Uz;9S6dn;`U79t>Vt2+uvdN8Q+o|- zc>|%nWAlPbghq|9#>9jy7SI&%$6 z@bD1^zEu+M01G}Y^x2MY!+2;|+oXf9RWPa-fvST~?o}3wKzV?1l629!{!T0)vUTky2 zL#q1{e8r1{@7{OWiLOQ@Q|)EG_vHM-!seRhd=S(z)_K81FKFF$&t!hLHD~%_E12hK z!P=g~^>L{+4LJMljZFemh9-JUs{{}Cuy=Lkh|rM4evBlBZjd#%t(sxR$2 zMxA~H?aX%I!=Ix4V2|cG%K9lzF!;(Yu<*&3O5eWAf=~R96H|Ic@U3@Q4{MOQtW=JM z>3-whuW^HKJ+M@LPwq?3WuG_hc*|G#kBSd5KgSpX)BbWdmR_6rVf4`cuGiIT&X>Le zP>EN;@k6_Xug1vwJ)Z2*W83t>hcYzg5`6LtdSWb1n=+jIhJn-=rC zSpMTENFK-NW_$>RYdQ@~adW{} zI!W-I*a|S_dXMDCA*Qn9cZ2VQ*P)tv4RmILuY4lGcUv}ve4FFffc3ovzP2d@AIs4D z5hIFWx_`k}bQOH|$D@PU-h_f)V=%vtwE`bLSDm*LKN!9koj0sGrK<&>eSz`gXn$cu zb*2*^TkV2RF}TrTQ*?OJWG?;*10RCofCZo9e9_rWFEClHAD8!BtKf4S4>kqcUpOHC z-c?xW@Er@E`4tN|$Au>Oug@BG6v-eM&h)*HtCDoh&++Ks>${uzt=eLT zzSxhGD5w2c70Qq8(zn+N*rWI#(qx^je6M_C=_|hrOVBw81od^SM)08&k2$mU*zo3e z1ST0XG23;vz(;ttX!j)E2YjsufR9LuF_+-eI>%-y9}uu!1F{S|FEIE{Yy}TwLXL6s zy{l5+aoX!RH({OqQ0f z9^{h)*=^}0!M9%NIIatGajY7!zNd-5?^xa7TP5HdpU)d%JjD;dw;mlk^bJ0Yn_~^K zR&8fku(n4e7oc>y;FCWYe2NzhtmR28mU!RCTrl~P5v#ib#xd!he_v4UN8g*=j78%M zpZsO?_4;9kn{y!rfyV{r*$=)4+m@(MSiF<@ae3GLa5?Dy0H1uv^fmuO?5s85?VMZ5 zF9|>J`mGm%4s?+9YhMEC1_Tw&G4j3A^XPkWW(cmBeS@#t1s}$Oxh~*S>~vr)ql2&G zR2M$Qsu5yio_%RuocUcKz%iHLvwxNA$o8;{^1Q&eN_HRCIrwlEjWM$J_WuIY`A8hu zr19XxNM?Lx7tI)tZ4V=czHJKNBZp|N!Rl-JIvw~3Q>e2LSljS0 zXRoIv=lUTEh@SDA7OjPqwEUc0fV!viyjC1(DjQ}8)93KMPJ$@$*a%N9)Z z48DS8e(fVj-&0uoiBVi`WWVC=WmIxg@HuCcXrHz%5j?pb**lz7 zz8Cdq&UxWe>;lqI-;LlC9T4V$azEA}_#7{VC@=eI#QWkK1P-nTDcqh0V3tTte)Z_`HbH5~+B@w(uX96?{p&%j#WN8s=H&fr^*a2?hl z^K))9us$>3Yad_mIVOg_EekM)Y_#A*V;E}%K8|_qTly9s&zz;h24DGcf^R)%Ro{!k zFveZ@ikCnH4=9+UUGO=c0ST_`tii`cGy0O}fy-g?lHhYZL+X-Dx(`0Z5X9SPeubUk zq;G%QP0DK2I+K>wIYgNsVYBl)(zj)mz*+|80Z&ppM&IBgbz;EyHdOYSOJE%n6MS_i z2cPW`cuC6dmoZjJzat%h&-xblWE-Jx-xc6f{3Q6+dj*FvGC$iRas<7m>%r7RU+4wW zo$C^O9V3!&TkjDb`v%rL45N47J>W~gnf7B9oGW~*@Zb?fqF~2e2cP3WF>jRKojDVT zGRFm9$Fl~XVzJX#^63NdyS1jgrrLh-;KP$M#|0mp!>~R_L=d!G7ksM{@^M|jM^dKn zUCMXNg+jXh95?usGYY=ulUYCI{@=yjJ$X*>k#(lII6i{R!;%G(1EaTNVXh+xmi!%UkoaeVi+_ZHM4fJ*YdfXX>8jdwKO-=YuP` zz72ex z)4fVx9A@J?vcJunlKR>)v%!Z)N_~l95llYU;48ine61s9F00^peXrzklwT-tj2nE4 zLjj-T8Gtp<0UvKT3m*>U0b_ogq}gu4T4(37MB^WQGe5_lB9@e0Irvtg;NuzuU(rzT z+4hCV+IKDZ6q5kH&W~UCEPE%pd3;Ca*S00-1$lhZIQS3`+?RAC;Zr;-=Aq8l4L;YS zcpz5DV{kFdF$hLNgB!5mbB=aOj~Sn8vL#ow^s?aVn4PTE$(={MPmKXSytA60>~P>y ztU+LH10~_&q39s%Uw4NU~t>y8%6M2o$l)28VfzDP8>z&h;`BB_(tikGA z>m1m67I&NvU#6MQYlE|~E_Li6qkzK51`z=xEiIj<*3#`+;mmW~*FC-#H;wu5ATiib;1wdEm- zvv_|MivzxgzNf)Q5dHX$%#VQwEOT-FFkr3s1Yglw@WB;@?@{(i>!y*`Nbnwg7e3Pq zc}hhaH<&?sk0Py=Up)9+^9Sv>?0T#LF0|Tn@NvUwe)fIRx7H>26fcmx_mUHtA6~TL z8|hp3R`982Tyo~iXBd38rP0^=uj6yThlbwYn@{(rtqEE zOSq1V55w~48+<3aRg5yDUFO`r3G6nwnT*f*3n>>g=^*$nea90{-L)_?Kj$ZN%lM9G z32M&ZYdt>rPGpsn7=I|E?-Yt3bWM)nuOG@b1LxNaV> zw%4U*L-B0zQL02|Kf&i3qhnnt5rBj`?~34S8(zL`6-Phv_Q1+k6?~3=!5VA*lGvF! zZpQHWK+N%dgy*X0Abs0*4NP$bI7!-OneT;AwN`j61e45_atc0gsEFQQ*V<)OQm*{C zrU1&x9mq?9)_o%-u^K-8B!^OG(55y)H4`b;&)-?D|XcsfJXp+hF{1De_orBN$Y9TeR zsq%%8sM{_Yd=xeiZIJS8Sn~r!+pdEfe5%R8exMBrpX>*i4?52#_(TWbWATNr*B(_D zbI$y>;5+g4LX)#y=Db~N@lijfr!==QbF!N)Raer+er{FJwoIyQ9&1mB4-3)MjMg7ayv75cF9G=mSJRr5RX_uz`D zJ;F8HGHdX)43}?{tQT18uxMqiV+UW`kb}?ls(|%94L%$%ga#c0xz?`WFL(+IsEoEgcd#AHdf;7FI*~hB?N_x3!+KU}gJC=wR312tL)=0-xg@f%Tn? z5{27v%q95r{tWoAXpeT8AGh9wC3M>I6}qnXLp46YC!c2UmEM^7bxcC$Vw+LwgVdeJ zMs|Jg;OjdNe3UOPUJOh$4n8tJ#~Of-U8-^EE8QiqzCXan2^K#4&oB6$wI58c#^ttb z**5cY4LYg`Hf=CJ#Z`gt)2%QwJjs~ zx)x3FAz+O;XD+z14eOYWME3YT;zDxYzGpH<(^^swyG}yp*E}bEo30kDW%S@HnJf5g zk44>*eHU2yVwfLEI`i8WKJ#bY`_6WuVS}?uWN>^zS6PtBvR80*3R0?;Pcy4 zMAIl<3fKug*Si5<$qbpF{g=R+?ujhJ(K*&2^FuxxF!15u*PWMWjoFTy77jgN;JZUn z8L;59O#xWP6`<&L99i(GwlMhG&zUhOEIG#oU&q1*pZG3)35A+{11nnNvcv>6*CqH| z--5nHSDByeNGXk>{C)7XT_Am1_6CMAW6nAF$_|qGbxv#MLRQl33ru!6@U@LL_!LJ$ zU&jytYxzF-%ElOc?GwrTFe+$%J|D#Xr%NS}1i zoDpNI9ZFu?rND>HP4WS$zPba5lhOXdQ8hnUPPJn$j`wCo`%Yng9lMbEIe#lA9_(heo*$lrF=y}*8>;hx$~oyi_&S#n{v1Pt@F6V^So%698d&c+#-X;uWq!8r zVp28F#?&&ujrpON&F=_4*DysoIKd~IR`8XtGWcA(4SeSJ=qYn9nP2B-1RoTm^`n4< zV0t?)_{!!ReC=b&ezcz{Fx@HOYoBoNxpqE%>zoH4TF#s^_+aD%7JQVo8?e<^@mJuh zvzqmDeGtU8z89EF=gBb!{{0#kd>z-v{0NHC`QY9Xjk{h(@OeKX8Ta?1Sro5he)8{w zk3XYt=10NY0n4{>DI3-@Fv$Au2|nllGHlryGKTyR!RPal2sX`yl@UyNkl^b$_{@)s z)qSo1+71_dC;NdCCVVh*!P?dm`sUTG@*Nk&zM`(pQ|x=7RBw9i;M#j%ibIV<&DINf+6!4 z&mj*U`(L#KM)dFO%XjEa%=9gOpZ7I%1~FX|Q9bd&oH%g}J9z^+K^=AH;ZUL&>+Fm5 zg{0+zQPrho73QLMEwPv@ZWvhS*QO@4-ilA(vO6YnwS8^C@c0z{#cNtV4BDYv)mr7H z&_2_&)BCHm(^(}6P4P$}-9CdzJ~&F|`cZvIzCga$wTtkKwH}J2qy3@Oa7L}IZ;Mx` zz)+UN6oH44JiW+_Y`qps#!w^p)QVm}2;VsYV(26q}No+HF?`rkH&C z@^Lk1O5?VV1?^Ju0r+6}-IthX!O$CzY8PiC|euQ=Ed|=ViIVZwPX94%1&H_1rt^bm#ubeI-?OXpy(F)yB%uny< z(eC8iFx@miz=SLwf#bg71R)^kpkyCl7=wxqsLxe834K)uJTTw;sIa0Jln9+I${mUq z6P=^G2hq{(@W;qSZhJ+cn?2{a5eJ{%M#D`?Yq?@jY=PzFZ?Z|0u9-BCshH+K2 zjLsO!*Fcol+muj&;`M0Par#Ibgn$=6NOiOJ+atj#wgQ2{_XqwSeFu_g>mL}_^=2%$ zjAD;ci%`6Y`VsASp{AnV<|RW%xl2gYva2u#)eQ$dhc=Y!2GPqWvYv`>UWblY{_{L= zqxffFvPCjR`+Dh{MBFhyU=V)o8~BtHM?2+}r(R$417M09VO-f5Spb|Tb1uMKQ({$S z>UPw}EE*@UtYgnnV7a8`7}*cSnPUuNEab5-O`;x#T zD7D7r_GmqnF_0S6u5Iho|5N@^V5;5AxURL9QcaU~=?iby{18QphB9v7wef1S{G1mA zI~Ra4@c7iX@xi61WZy6lbvxKluM6Uz+aZPY{*vt{`a>ja*@xYgZvv}S=S7q6i0`iH z1#BlU`Gx3c<6=f?x&iNr^~+|dXes&s`0u5aI5wG zo5~`(dtw^V_o7?%nsVCOUd*`dljD22-2lGP^>pKNavSmju zZi1QWEI=)4#}#^luWL^b&l`hhb8N>^w{oq*YUZt7tbJ%J7nYg+!X!o3{=iB!T>ExF&SA z&^dJ{N0qF(mkwv5p_Z1zKUW2A$Y zm09_Y3Cy^PK}#s7z72P1`^p(Z_9m>Iy7R!NcsN8+(oiRDU>rJ|i~IrU+cX|=x6dUo z#Rkw+qvblp^le)t+7=G#`nI@Tibv2_d1&;- z7}R}H%LKy%-1s2MzPD1Jt7Qf}J6=C@oaQC;h4OnYikHImNs*7 z3!(P7Y)I1@_WPFg7(+I02wb^+$v$t}9Dym1?XQ4^DGmV2Rcr<0$~T5tMeja9r0$zs z)&5@O;*#4#SJJU#GHQDXLW%S(=7Ks|Yl`<${4}L3`g|Zidwxl9EPMn=h!0^$Z`~P9 z16N}AMNjGd#f+&t8QHdN$SBUr6Nxq>xrDMQ9iL6mFiy>$3u!>jHyF3+FMT_{4sAxV z9>SGk2kEPrHrioioO1ymfnNg#9dLk4<|1}WIjE_0+WsE!DUTp=U(Lr6?v(=rtl!>C zsHxY0Z1%Rd6C$kh3qCH}@ofnuR-7BuqP$8%tQGT4U-{@mY0cY#>HYwQrM2ghLdSxs zRy*PM^6LV_S=oJ2yNf^5PVo%DM5pj8>5>?Rb+%}yxB^VCst*iI@#rz-)*TR9lbs>r zTH7%>sj7Lw7^*u%yAzn}En&)K(`)^(inff&!6(C_+94S0Tykyc{1S&!XA3VZ!gtdo z%)Ncqq{J!5iN4aUXeV7a>2z%)OP#S3m~3wJRV@%QgA^|S2=8pI3*l02L#A)nCe5CU z)`*Uf{~VZXjNpTOYg|Gh41>Y+c|!&3*h|E5#rPw(t2O~J9w^qhszZ=;zrK5bbxrrA zkSoTEcIIJ-8(LG`RxQ`j*R`pL-)KF6XfyL&BGCF?Mc`^XSN2Wz4FZK!hY!z$`7V^E zJ;Joq`Wt-}s|!pv{gfbSzj!jbRL?E0j(NW&_}S+Tk;d)vxO?q6a%ang1gb&#-3}e1 z=`^JSn}*Oh%l69rFp~AzBHp59?~Ge%In-|{m?V4P^xj&a4qVgi`_FLWTA z2h^Q+F9WP2>#fIXokbFfr zoN|3rv7zrl+I7rqXhU`oT!F}4bIw2rKy4T<-1-jM@g?03hNX6dMiswjTtX<-S2fr} zxy^@&R1>}64pn|n`nE42QEnA)#tKBh@42Y9YuXX?UhR;Y+RnfLSQNV*ia?J+W>DKP z<2`D<2N;oVjn8*{>cfc+u>N&i26gGMMmD|_R258id8(HXcvI~NSgE==iJ(_3F@3vs zU}#eI65P&&gY_6()J-o`*)a^efaXV8A;H+oI@7qK6{EylFaY*koY#Sgtlz3Y-beQC zIg|OSvqfL6UyMuYix46hGHc1oB&zD32BsV*3)TFjuW%+jT-A;^5Ah9z{WiAFG@T zV0u4_Lxh6a<2q(Lnf0Cv{IAa&$3wgXxwFr2s_QkrSP6}f1+0CeUF$BP4cQ|w0=xDO z)|;kD@O6DhluPUkMdQHqHWp*(eOTH-mUB&0!>{!>V5-qb-;SLoKnYo|=oy&efx!nA z^|+KS@9)5>+_VNh>G4Dl;R!2z+=9&yxKTQWAp0RZLrflhhXQlG5j4N{F(=Bm?~jyG zZ#@r~;sxl-pZ*TTOQj%!{88XjOdy1-{F%J8p#8-@*=H-Yv)XTkLk_LD=Et>q(heoN z+hOJIZ^H-Fei!nw`wep(fyB5LZ%W>FeMk1P&l`Oai;HgnldQr8rP$x}ZQBTkO?(`f zd`k3%yVn}vdv84jO;Wis$@UW;BKEgsDcbe>8rT;(9=*=^?X`X}ZuVYcRA?Uo99FV7 zWAwXt)b_zZ-s6(~+x`k%!m2HjNF1FbB#WAJ_E-9Tys)iv0@GWj%uhMhwBr!g9>w^o~xv;_crD zCVw)p&M{7L>Ju7ry%yTxr0Ti2UJLEmIJN8d&oi##k=Qox8={Z)4PCAM3-nb!cF5qQ zul!cDmGhU_UiC7+5*JZ<1=LFcTbO?NHy3esam`)MLo0nie zXuCIKC?=KQNsRjay(jh8V1Hg0q(_a5SfX_aN6;9G>tilx&)trgG0{*6TJ4ak1yc^& zn+J4G?K$Ohj1Q@%@u{XFatdOT=9ePB>MOmQzLssd-6R9^=8N=cOftI9@xGZSVtdto zz{j;8=uuh&TvgJPpo@D1joRs_$)?|E&nfT`{(FvZOQlfMiVLT_#W!&BUAfZ0cT3C|Wy zqPvLaurThc81=mD*>nmFhwYpTFxk<8Nj?B3`2ZLax$wzHK)bdRjnBFZ z?R19%lkNgcx(hJzrl@qyJ7eMQ`wf`tzW{^j^qdJ)(08Dg)xObJb-Yj|rRM>Yo(D{N z9x&ww0h68w40WUD9H*;bikCvI?YE-XH=Ox(27$>Q228bqfGM{R7(t6Y7w6cKLax|B zVDc{j)BOuf`T{V#>OF1}l>}4#27NoODzcvBPGIuA1CvgS!&QDn6wb50ihZN6-d)E8 zfaSKngIh-5i}cbqBl=1vB!XEoAuyjAcB5@Zw3AE-Ofn%b$%Mcp6JoZIObAReAu!2= zz*O%QnBvTVDJB(|d=pd-#Awv(%nJ5-!v)!PJ^FHx)K~X8?YOAbPPTvA>HR3oIm*`n zCZ8}cqX{UJGn4ol*5gFC@KJ7?o>iH$1 zyI`6Xnr4 z)r^5?B79VL5KQrKB<7No-tAybnlt&jnlpL0eLe^eYa1G?A2w=)_0;czSfT?CRFy*8J^IeNevuzLD6v}r2M)A8|Ki8C?9g4Er^?RD! z<=FZ}2iALNr+8LO@X~vLovfAf2WfY*R@nM12H2&26Bv;?kBW}=fdkV!>A+Nf1DM_%2c{TxV7`ATj?s2%E+hH2aYQTk zKbpPn3L-;ASM(MC<8+9J5kVk6gf~xTnibH#C0VuU8MfR0nFp-O9n%X8uS3yBa_pLy zq=b0$2wXPWU&8g;HiByhC8x)rzJSNzN>V#2BsC1dr0E%}Pvm2!8|Ehh1hfN5h3cL4f2Y#rq~#pUnTZPYl@9gw2^4oUKebP8rL?)Rq{;Z zVq?^}_|-HnHb#%D+>BHz?pT9FSxVl86HDGDS+MQs^tD`)vOW3^O3v#$5LI;EFlX!A zNPyF~p>Ap4Na@lTh#T&ELPL~GYnc$Tk}QhED!v=HuJ#v0y1tDv6IvGvTxfo{to0p; zNd3K(Ti3mSNk-?AqagV?31&S%T+waQ$31P?o9GCe*ChM4Y`l?njFw`O8vn;TJ+Pd9| zeG+uCPbNsIX$`N7WaqcO-B63q6=JRYa-z&@!x!agZ_!9J-muup1_NFwqW)+GsE z==gCguc{vbOf{>4k%Hdei+xhxfqhamp5&YAi&=aQFO1T!DP*eo7_fme1jjIW{%42q&%G_aGt)&ns6cuiB$ zx93c)?4~~?bjglU6mq5Yi==5R2%(CpuHo)J0dMx@oPrYqh4_wSBgTMKtYVx9}LsVIy46yop#u z>AHBW#5XwQl1pIPl1q?wrGLOoBoA>gr5~}%l7~nylRt$TB%P;}s6+94fIe>zdZUzP z80Y#dB-ukS#f=d8f#X^2C`BL`H@{#EJz&Xgk#9DUlJYr_6C#;`IL781^fm3m5p~xR zHq!a9giq>?8(<_qj5(*Wuwom5DbE3z@*D`qRGvRDvg~>cMDOM$MBwTi#pK&-&l4G< z4b;_+?LlNE7q`cy=t|$y#4L)x;2!MQt%$%nt5_#>W{|kVchL}Kx4=pxS%8~XGHV`Q z>hIvwbfysxM5mCD_%jh`9e+xAtZI+|GYxU_B?}O7?Zi#oq-hjfUflJ%WJ z%%W(Vh%D*xl&F<{iRoWF5sRei;-+7m|CRk60_(%LJSjKVf^azf#~Qxa=ulnW$2s}My7k39al^OoJ8jw z=|Jb4m_^A=M7l_x%uy8$p|DQ=jK3cRv+o6JbxIy5^v&OfVxc|9bgeNkJv6T)j!}L; zv=7r&EZ@b$uuzz9M8a1)+sqSU-Ta>0QaWtP3W*M|F={T@7@N1B)Q#dsR((-mCp4Zw z?*0xKjLsW}Rr^Z-uiJIKb@rTKQ+)>??7mRjoC~4*%DG5&+ola*y5E2){~Q_~ z!4zjiK!R-gz=-7OzStOxHfX0Dd||h+&rt??ew-g_HAs8ZbvaQ z^;LcfeN}HAnBE>BmEvTr5Jk0C*cdezY>b)ReO%xMRbMOq&Z^()tpg~JcjCd5Md*G zHZX$PdVUco1(Uu{Uo6mSht??=kMIt_(~gG=)DGcHFxj)|D_H~Tvr9|6-a4e^GI*AEv^jHry6-2 z7};%sDNhrac{ZLq@hjpJ#jj8$TOLP9lr0jNY>~j^PX;D`GBEj*fhm3igOT|pX5iL8 zXeZqdm}&+ClaCY_7W`g&=Vj3jZK&H}#?+oC%2n;8v%^jC+^gNmT4C`NAA((pu97(0 z__(DsKhmt-SN>$m$mtzQV3vzxZrAr>4APonSkd=lxDegP2+-ewLajN&$90Yz=fMPz_y*StwjEKViUSdhK2IzTx-p~+rZ&5BoXMt-=XCFoFwStruzVq)|dva=EuZazdRp7aIWdD7`nb)_#P zl}z73z<|C3Q&96Ju!+aUEZV#Y>#p}Gj>+D)6dVx@r;T8$CwL*e#Ct?B2GJ?Evc5MQ zrpG`h(Ol3;^ldz5>M>+z#rg+x>M^)xwC5PUHJ3d2slKwaGKTG8SZF18B1Lp;6donz zy8u%yDPS1LYc6<`r95;{QZ1L@4QQOek2> z74d)K2ZSDpAFRUX{T-M#dyj}}>3D%;;z_6D#%o_M?M&k-Xs)$)tq3ZEE2k^f!cY1V z1=-(09Jkhmu&?Ih#Q%BDT;6>?@OZf|7mdaxCyTb8--2wBf17GA;72n9oG6^tlX!Bl6K z+YQx6?erE22~+l05ML*qj`%v=mnZKPflu|Hfhl(cm~uzZE>+h6nC&!dukN0N;`I6@ z(ZAO!PxLj76JMu2BEC+0M2dv=h!n++u^}|YXPTsW=|_;H^rIwm>pQTo={qpu={vBm z^`4W$A>Pi>m+nmHO#4Gqg++F1#6Q^-2yc>HLSmcb5+WOQUsBgk{FGQa=>}**?PDfe zQu%ZV_mPf`J6U#WL{{0UIr`GEk)EYvV*-#3DzS9hBLu9zdlE~hJtA(s`4AyWy2}Xj zm2EEX0yK|+UCB>JT|eWV!iUW`Mp%01+ZQg7OQVd zA;{uudCyB{Awhv^$7%_t_x*^p!aLjT;%O4h`ZS?=x)+eRBp+~9nAYIgq8Cyl^=$+= z>DyehflxKQ#RSZ@D#9ZqD|6b+V-YQSemL{R|KezG*@q=P>1(>e5~Tel^;&126fyB8 zLOOIVW5R2CL6sD5UryKBU$$H}k2nbX{NhBDZvstHJTXq7-b)-Rx>FE+vrQ(J z@Lp%UzXUN?Up&H1<3zaX9;6r<7fAI@f#sr896-{Y32BpD3`}vQl&X`w0XG$Ir+l62 zEd|!H1xkf-=7DvdD@APB-^p|GYG3D;BJ8S03NRLR(hxAh8Ri}VBlKv}OJIFg1M4{W zz?!cG)_%Ic(747P1x7e_!O-bS4?s4>)iG%!FpSOB7g)(=X*Y7dKYn=o-S_W4y!hSk zUVQdHzx&U3FY)Z%z4+{pKmGJEe`Td#{_(|U|M=tkpYl%@YW?%em;d&=&%gTW?(wTX z{Qd3i7nd(Fvi;!;wjciZ <@emph{duration}> <@emph{local IP}> <@emph{remote IP}> -<@emph{service}> <@emph{local port}> <@emph{remote port}> -<@emph{protocol}> <@emph{org bytes sent}>, <@emph{res bytes sent}> -<@emph{state}> <@emph{flags}> <@emph{tag}>} -@end quotation - -@cindex connection, start time -@cindex beginning time of a connection -@cindex start time of a connection -@table @samp -@item @emph{start} -corresponds to the connection's start time, as defined by @code{start_time}. -@cindex connection, duration -@cindex duration of a connection -@item @emph{duration} -gives the connection's duration, as defined by @code{duration}. -@cindex connection, hosts -@cindex hosts, in a connection -@cindex connection, addresses -@cindex addresses, in a connection -@item @emph{local IP}, @emph{remote IP} -correspond to the @emph{local} and @emph{remote} addresses -that participated in the connection, respectively. The notion of which -addresses are local is controlled by the -global variable @code{local_nets}, which has a default value of empty. If -@code{local_nets} has @emph{not} been redefined, then @emph{local IP} is the -connection @emph{responder} and @emph{remote IP} is the connection @emph{originator}. -@cindex service associated with a connection -@item @emph{service} -is the connection's service, as defined by @code{service}. -@cindex ports associated with a connection -@item @emph{local port}, @emph{remote port} -are the ports used by the connection. -@cindex connection, size -@cindex connection, bytes -@cindex size of connection -@cindex bytes in connection -@item @emph{org bytes sent} @emph{res bytes sent} -give the number of bytes sent by the @emph{originator} -and @emph{responder}, respectively. These correspond to the @code{size} -fields of the corresponding @code{endpoint} records. -@cindex connection, state -@cindex state of connection -@item @emph{state} -reflects the state of the connection at the time -the summary was written (which is usually either when the connection -terminated, or when Bro terminated). The different states are summarized -in the table below. -@quotation -@float Table, Connection State Summaries -@multitable @columnfractions .15 .6 -@item @strong{Name} @tab @strong{Meaning} -@item @code{S0} -@tab Connection attempt seen, no reply. -@item @code{S1} -@tab Connection established, not terminated. -@item @code{SF} -@tab Normal establishment and termination. Note that this is the -same symbol as for state S1. You can tell the two apart because -for S1 there will not be any byte counts in the summary, while -for SF there will be. -@item @code{REJ} -@tab Connection attempt rejected. -@item @code{S2} -@tab Connection established and close attempt by originator seen -(but no reply from responder). -@item @code{S3} -@tab Connection established and close attempt by responder seen -(but no reply from originator). -@item @code{RSTO} -@tab Connection established, originator aborted (sent a RST). -@item @code{RSTR} -@tab Established, responder aborted. -@item @code{RSTOS0} -@tab Originator sent a SYN followed by a RST, we never saw a SYN -ACK from the responder. -@item @code{RSTRH} -@tab Responder sent a SYN ACK followed by a RST, we never saw -a SYN from the (purported) originator. -@item @code{SH} -@tab Originator sent a SYN followed by a FIN, we never saw a -SYN ACK from the responder (hence the connection was "half" open). -@item @code{SHR} -@tab Responder sent a SYN ACK followed by a FIN, we never saw -a SYN from the originator. -@item @code{OTH} -@tab No SYN seen, just midstream traffic (a "partial connection" that -was not later closed). -@end multitable -@caption{Summaries of connection states, as reported in @code{conn.log} files} -@end float -@end quotation - -The ASCII @code{Name} given in the Table is -what appears in the @code{conn.tag.log} log file; it is returned by the @code{conn_state} -function. The @code{Symbol} is used when generating human-readable versions -of the file---see @ref{hot-report script}. - -For UDP connections, the analyzer reports connections for which both -endpoints have been active as @code{SF}; those for which just the originator -was active as @code{S0}; those for which just the responder was active -as @code{SHR}; and those for which neither was active as @code{OTH} (this -latter shouldn't happen!). -@cindex connection, flags -@cindex flags of connection -@item @emph{flags} -reports a set of additional binary state associated with the connection: -@table @samp -@item @code{L} -indicates that the connection was initiated @emph{locally}, -i.e., the host corresponding to @emph{@math{A_l}} initiated the connection. If @code{L} -is missing, then the host corresponding to @emph{@math{A_r}} initiated the connection. -@item @code{U} -indicates the connection involved one of the networks -listed in the @code{neighbor_nets} variable. The use -of ``@code{U}'' for this indication (rather than ``@code{N}'', say) is -historical, as for the most part is the whole notion of ``neighbor network.'' -Note that connection can have both @code{L} and @code{U} set (see next item). -@item @code{X} -is used to indicate that @emph{neither} the ``@code{L}'' -or ``@code{U}'' flags is associated with this connection. -@end table -@cindex connection, additional information -@cindex information associated with a connection -@cindex additional information associated with a connection -@item @emph{tag} -Reference tag to log lines containing additional information associated with the -connection in other log files, (e.g.: http.log). - -@end table - -@* -Putting all of this together, here is an example of a @code{conn.log} connection -summary: -@example -931803523.006848 54.3776 http 7320 38891 206.132.179.35 - 128.32.162.134 RSTO X %103 -@end example - -The connection began at timestamp 931803523.006848 (18:18:43 hours GMT -on July 12, 1999; see the @code{cf} utility for how to determine this) -and lasted 54.3776 seconds. The service was HTTP (presumably; this conclusion -is based just on the responder's use of port @code{80/tcp}). -The originator sent 7,320 bytes, and the responder sent 38,891 bytes. -Because the ``@code{L}'' flag is absent, the connection was initiated by -host 128.32.162.134, and the responding host was 206.132.179.35. When -the summary was written, the connection was in the ``@code{RSTO}'' state, -i.e., after establishing the connection and transferring data, the originator -had terminated it with a RST (this is unfortunately common for Web clients). The connection had neither -the @code{L} or @code{U} flags associated with it, and there was additional -information, summarized by the string ``@code{%103}'' (see the -@code{http} analyzer for an explanation of this information). - - -@node Connection functions, -@subsection Connection functions -@cindex connection, functions -@cindex connection, functions -We finish our discussion of generic connection analysis with a brief -summary of the different Bro functions provided by the @code{conn} analyzer: - -@table @samp -@cindex connection, size -@cindex connection, bytes -@cindex size of connection -@cindex bytes in connection - -@item @code{conn_size e: endpoint, is_tcp: bool): string} -returns a string giving either the number of bytes the endpoint sent -during the given connection, or @code{"?"} if from the connection state -this can't be determined. The @code{is_tcp} parameter is needed -so that the function can inspect the endpoint's state to determine -whether the connection was closed. - -@cindex connection, state -@cindex state of connection -@item @code{conn_state (c: connection, is_tcp: bool): string} -returns the name associated with the connection's state, as -given in the above table. - -@cindex connection, service -@cindex service associated with a connection -@item @code{determine_service c: connection): bool} -sets the @code{service} field of the given connection, -using @code{port_names}. -If you are using the @code{ftp} analyzer, then it knows about FTP -data connections and maps them to @code{port_names[20/tcp]}, i.e., -@code{"ftp-data"}. - -@cindex connection ID -@cindex ID of connection - -@item @code{full_id_string (c: connection): string} -returns a string identifying the connection in one of the two -following forms. If the connection is in state @code{S0}, @code{S1}, -or @code{REJ}, then no data has been transferred, -and the format is: -@quotation -@emph{@math{A_o} @math{A_r}/ } -@end quotation - -where @emph{@math{A_o}} is the IP address of the originator (@code{$id$orig_h}), -@emph{state} is as -given in the @strong{Symbol} column of the above table. -@emph{@math{A_r}} is the -IP address of the responder (@code{$id$resp_h}), @emph{service} gives -the application service (@code{$service}) as set by @code{determine_service}, -and @emph{addl} is the contents of the @code{$addl} field (which may be -an empty string). - -@cindex port, ephemeral -@cindex ephemeral port -Note that the ephemeral port used -by the originator is not reported. If you want to display it, use -@code{id_string}. - -So, for example: -@example - 128.3.6.55 > 131.243.88.10/telnet "luser" -@end example - -identifies a connection originated by @code{128.3.6.55} to @code{131.243.88.10}'s -Telnet server, for which the additional associated information is @code{"luser"}, -the username successfully used during the authentication dialog as determined -by the analyzer. From the table above we see that -the connection must be in state @code{S1}, as that's the only state of -@code{S0}, @code{S1}, or @code{REJ} that has a @code{>} symbol. (We can tell -it's @emph{not} in state @code{SF} because the format used for that state -differs---see below.) - -For connections in other states, Bro has size and duration information -available, and the format returned by @code{full_id_string} is: -@quotation -@emph{@math{A_o} @math{S_o}b @math{A_r}/ @math{S_r}b @math{D_s} } -@end quotation - -where @emph{@math{A_o}}, @emph{@math{A_r}}, @emph{state}, @emph{service}, and @emph{addl} are -as before, @emph{@math{S_o}} and @emph{@math{S_r}} give the number of bytes transmitted so far -by the originator to the responder and vice versa, and @emph{D} gives the -duration of the connection in seconds (reported with one decimal place) -so far. - -An example of this second format is: -@example - 128.3.6.55 63b > 131.243.88.10/telnet 391b 39.1s "luser" -@end example - -which reflects the same connection as before, but now @code{128.3.6.55} has -transmitted 63 bytes to @code{131.243.88.10}, which has transmitted 391 bytes -in response, and the connection has been active for 39.1 seconds. The -``@code{>}'' indicates that the connection is in state @code{SF}. - -@cindex connection, ID -@cindex ID of connection -@item @code{id_string (id: conn_id): string} -returns a string identifying the connection by its address/port quadruple. -Regardless of the connection's state, the format is: -@quotation -@emph{@math{A_o}@code{/}@math{P_o} @code{>} @math{A_r}@code{/}@math{P_r}} -@end quotation -where @emph{@math{A_o}} and @emph{@math{A_r}} are the originator and responder addresses, -respectively, and @emph{@math{P_o}} and @emph{@math{P_r}} are representations of the originator -and responder ports as returned by the @code{port-name} module, -i.e., either -or a string like ``@code{http}'' for a well-known port such as @code{80/tcp}. - -An example: -@example - 128.3.6.55/2244 > 131.243.88.10/telnet -@end example - -Note, @code{id_string} is implemented using a pair of calls to @code{endpoint_id}. - -@emph{Deficiency:It would be convenient to have a form of @code{id_string} that can incorporate a notion of directionality, for example @code{128.3.6.55/2244 < 131.243.88.10/telnet} to indicate the same connection as before, but referring specifically to the flow from responder to originator in that connection (indicated by using ``@code{<}'' instead of ``@code{>}'').} - -@cindex connection, hot -@cindex connection, logging -@cindex logging, connection -@item @code{log_hot_conn (c: connection)} -logs a real-time SensitiveConnection alarm of the form: -@quotation -hot: @code{<}@emph{connection-id}@code{>} -@end quotation -where @emph{connection-id} is the format returned by @code{full_id_string}. -@code{log_hot_conn} keeps track of which connections it has logged and -will not log the same connection more than once. - -@cindex log file, connection summary (red) -@cindex connection, recording -@cindex recording connections - -@item @code{record_connection (c: connection, disposition: string)} -Generates a connection summary to the @file{conn} file -in the format described in @ref{Connection summaries}. -If the connection's @code{hot} field is positive, then also logs -the connection using @code{log_hot_conn}. The @code{disposition} is a text -description of the connection's state, such as @code{"attempt"} or -@code{"half_finished"}; it is not presently used. - -@cindex connection, service -@cindex service associated with a connection - -@item @code{service_name (c: connection): string} -returns a string describing the service associated with the connection, -computed as follows. If the responder port (@code{$id$resp_p}), @emph{p}, is -well-known, that is, in the @code{port_names} table, -then @emph{p}'s entry in the table is returned (such as @code{"http"} for TCP -port 80). Otherwise, for TCP connections, if the responder port -is less than 1024, then @code{priv-@emph{p}} is returned, otherwise -@code{other-@emph{p}}. For UDP connections, the corresponding service -names are @code{upriv-@emph{p}} and @code{uother-@emph{p}}. - -@cindex connection, terminating with extreme prejudice -@cindex terminating connections forcibly - -@item @code{terminate_connection (c: connection)} -Attempts to terminate the given connection using the @code{rst} utility -in the current directory. It does not check to see whether the utility -is actually present, so an unaesthetic shell error will appear if the utility -is not available. - -@code{rst} terminates connections by forging RST packets. It is not -presently distributed with Bro, due to its potential for disruptive use. - -@cindex analysis, on-line -@cindex on-line analysis -@cindex analysis, off-line -@cindex off-line analysis -If Bro is reading a trace file rather than live network traffic, -then @code{terminate_connection} logs the @code{rst} invocation -but does not actually invoke the utility. In either case, it finishes -by logging that the connection is being terminated. - -@end table - -@cindex analyzers, generic - -@node Site-specific information, -@section Site-specific information - -@cindex analyzers, site-specific information -@cindex site-specific, information -The @code{site} analyzer is not actually an analyzer but -simply a set of global variables (and @emph{Updateme: one function}) used -to define a site's basic topological information. - -@menu -* Site variables:: -* Site-specific functions:: -@end menu - -@node Site variables, -@subsection Site variables - -@cindex site-specific, variables - -The @code{site} module defines the following variables, all redefinable: - -@cindex addresses, local -@cindex local addresses -@cindex subnets -@cindex prefixes, network -@cindex network prefixes -@table @samp -@item @code{local_nets set[net]} -Defines which @code{net}'s Bro should consider as reflecting a local address. - -Default: empty. - -@cindex CIDR -@cindex addresses, local -@cindex local addresses -@cindex subnets -@cindex prefixes, network -@cindex network prefixes -@item @code{local_16_nets set[net]} -Defines which /16 prefixes Bro should consider as reflecting a local address. -@emph{Deficiency:Bro currently is inconsistent regarding when it consults @code{local_nets} versus @code{local_16_nets}, so you should ensure that this variable and the previous one are always consistent.} - -Default: empty. - -@cindex addresses, local -@cindex local addresses -@item @code{local_24_nets set[net]} -The same, but for /24 addresses. - -Default: empty. - -@cindex addresses, neighbor -@cindex neighbor addresses -@item @code{neighbor_nets set[net]} -Defines which @code{net}'s Bro should consider as reflecting a ``neighbor.'' -Neighbors networks can be treated specially in some policies, distinct -from other non-local addresses. In particular, -will not drop connectivity to an address belonging to a neighbor. - -The notion is somewhat historical, as -is the use of ``@code{U}'' to mark neighbors in connection summaries -(See @ref{Connection summaries}). - -Default: empty. - -@cindex addresses, neighbor -@cindex neighbor addresses -@item @code{neighbor_16_nets set[addr]} -Defines which /16 addresses Bro should consider as reflecting a neighbor; -the only use of this variable in the standard scripts is that a scan -originating from an address with one of these prefixes will not be dropped -. @emph{Deficiency:The name is poorly chosen and should be changed to better reflect this use.} @emph{Deficiency:In addition, this variable should be kept consistent with @code{neighbor_nets}, until the fine day when the processing is rectified to only use one variable.} - -Default: empty. - -@cindex addresses, neighbor -@cindex neighbor addresses -@item @code{neighbor_24_nets set[net]} -The same, but for /24 addresses. - -Default: empty. - -@end table - -@cindex site-specific, variables - -@node Site-specific functions, -@subsection Site-specific functions - -@cindex functions, site-specific -@cindex site-specific, functions - -Currently, the @code{site} module only defines one function: - -@table @samp -@cindex addresses, local -@cindex local addresses -@cindex site addresses -@item @code{is_local_addr (a: addr): bool} -returns true if the given address belongs to one of the ``local'' networks, -false otherwise. @emph{Updateme: Currently, the test is made by masking the address to /16 and /24 and comparing it to @code{local_16_nets} and @code{local_24_nets}.} - -@end table - -@cindex site-specific, functions - -@cindex analyzers, site-specific information - -@node hot Analyzer, -@section The @code{hot} Analyzer - -@cindex connection, analysis -@cindex connection, hot analysis -@cindex hot connection, analysis - -The standard @code{hot} script defines policy relating to fairly -generic notions of allowed and prohibited connections. It defines -a number of variables that you will need to refine to customize your -site's policies. It also provides two functions for checking -connections against the policies, which can be used by other of the standard -scripts. - -@menu -* hot variables:: -* hot functions:: -@end menu - -@node hot variables, -@subsection @code{hot} variables - -@cindex analyzers, hot, variables - -The standard @code{hot} script defines the following variables, all redefinable: - -@table @samp -@cindex spoofing, detection -@cindex local addresses, spoofing -@item @code{same_local_net_is_spoof : bool} -If true, then a connection with a local originator address and a local -responder address is considered by -to have been spoofed. @emph{Deficiency:The name is poorly chosen (and may be changed in the future) to something more accurate like @code{both_local_nets_is_spoof}.} - -@cindex DMZ, spoof detection -@cindex internal networks, spoof detection -In general, you want to use true for a Bro that is monitoring Internet access -links (DMZs) and false for internal monitors. - -Default: @code{F}. - -@cindex spoofing, allowable services -@cindex local addresses, spoofing -@item @code{allow_spoof_services : set[port]} -Defines a set of services (responder ports) for which Bro should not -generate notices if it sees apparent spoofed traffic. - -Default: @code{110/tcp} (POP version 3; RFC-1939). -This default was chosen because -in our experience one common form of benign spoof is an off-site laptop -attempting to read mail while still configured to use its on-site address. - -@cindex access, allowable address pairs -@cindex allowable address pairs -@item @code{allow_pairs : set[addr, addr]} -Defines pairs of source and destination addresses for which the -source is allowed to connect to the destination. The intent with -this variable is that the source or destination address will be a sensitive -host (such as defined with @code{host_src} or -@code{host_dsts}), for which this particular access should -be allowed. - -Default: empty. - -@cindex access, allowable /16 network pairs -@cindex allowable /16 network pairs -@item @code{allow_16_net_pairs : set[addr, addr]} -Defines pairs of source and destination /16 networks for which the -source is allowed to connect to the destination, similar to @code{allow_pairs}. -@emph{Note: The set is defined in terms of @code{addr}'s and not @code{net}'s. -So, for example, rather than specifying @code{128.32.}, which is a @code{net} -constant, you'd use @code{128.32.0.0} (an @code{addr} constant). } - -Default: empty. - -@cindex access, sensitive source addresses -@cindex sensitive source addresses -@cindex hot source addresses -@cindex addresses, hot sources -@item @code{hot_srcs : table[addr] of string} -Defines source addresses that should be considered ``hot''. -A successfully established connection from such a source address -generates an alarm, unless one of the access exception variables such as -@code{allow_pairs} also matches the connection. The value of the -table gives an explanatory message as to why the source is -hot; for example, @code{"known attacker site"}. -Note: This value -is not currently used, though it aids in documenting the policy script. - -Default: empty. - -Example: redefining @code{hot_srcs} using -@example -redef hot_srcs: table[addr] of string = @{ - [ph33r.the.eleet.com] = "script kideez", -@}; -@end example - -would result in Bro noticing any traffic coming @code{ph33r.the.eleet.com}. -@cindex kiddies, script -@cindex script kiddies - -@cindex access, sensitive destination addresses -@cindex sensitive destination addresses -@cindex hot destination addresses -@cindex addresses, hot destinations -@item @code{hot_dsts : table[addr] of string} -Same as @code{hot_srcs}, except for destination addresses. - -Default: empty. - -@cindex access, sensitive /24 source networks -@cindex sensitive /24 source networks -@cindex hot /24 source networks -@cindex networks, hot sources -@item @code{hot_src_24nets : table[addr] of string} -Defines /24 source networks should be considered ``hot,'' -similar to @code{hot_srcs}. @emph{Deficiency:Other network masks, particularly /16, should be provided.} - -Default: empty. - -@cindex CIA detection -@cindex Central Intelligence Agency, detection -Example: redefining @code{hot_src_24nets} using -@example -redef hot_src_24nets: table[addr] of string = @{ - [198.81.129.0] = "CIA incoming!", -@}; -@end example - -would result in Bro noticing any traffic coming from the @code{198.81.129/24} -network. - -@cindex access, sensitive /24 destination networks -@cindex sensitive /24 destination networks -@cindex hot /24 destination networks -@cindex networks, hot destinations -@item @code{hot_dst_24nets : table[addr] of string} -same as @code{hot_src_24nets}, except for destination networks. - -Default: empty. - -@cindex access, allowable services -@cindex services, allowable -@item @code{allow_services : set[port]} -Defines a set of services that are always allowed, regardless of -whether the source or destination address is ``hot.'' - -Default: @code{ssh}, @code{http}, @code{gopher} @code{ident}, @code{smtp}, -@code{20/tcp} (FTP data). - -Note: The defaults are a bit unusual. They are intended for a quite open -site with many services. - -@cindex access, service allowed to a particular host -@cindex services, allowed to a particular host -@item @code{allow_services_to : set[addr, port]} -Defines a set of services that are always allowed if the server is the -given host, regardless of whether the source or destination address is -``hot.'' - -Default: empty. - -Example: redefining @code{allow_services_to} using -@example -redef allow_services_to: set[addr, port] += @{ - [ns.mydomain.com, [domain, 123/tcp]], -@} &redef; -@end example - -would result in Bro not noticing any TCP DNS or NTP traffic heading -to @code{ns.mydomain.com}. You might add this if @code{ns.mydomain.com} -is also in @code{hot_dsts}, because in general you want to consider -any access (other than DNS or NTP) as sensitive. - -@cindex access, service allowed to particular host pairs -@cindex services, allowed to particular host pairs -@item @code{allow_services_pairs : set[addr, addr, port]} -Defines a set of services that are always allowed if the connection -originator is the first address and the responder (server) the second -address. - -Default: empty. - -Example: redefining @code{allow_services_pairs} using -@example -redef allow_services_pairs: set[addr, addr, port] += @{ - [ns2.mydomain.com, ns.mydomain.com, [domain, 123/tcp]], -@} &redef; -@end example - -would result in Bro not noticing any TCP DNS or NTP traffic initiated -from @code{ns2.mydomain.com} to @code{ns.mydomain.com}. - -@cindex access, forbidden services -@cindex services, forbidden -@item @code{flag_successful_service : table[port] of string} -The opposite of @code{allow_services}. -Defines a set of services that should always be flagged as sensitive, -even if neither the source nor the destination address is ``hot.'' -The @code{string} value in the table gives the reason for why -the service is considered hot. -Note: Bro currently does not use these explanatory messages. - -Default: @code{31337/tcp} (a popular backdoor because in stylized lettering -it spells @code{ELEET}) and @code{2766/tcp} (the Solaris @code{listen} service, -in our experience rarely used legitimately in wide-area traffic). - -@cindex ephemeral ports, confused with sensitive services -@cindex sensitive services, confused with ephemeral ports -@cindex FTP, ephemeral ports confused with sensitive services - -@emph{Note: Bro can flag these services erroneously when a server happens to -run a different service on the same port. For example, if you're not -running the FTP analyzer, then Bro won't know that FTP data connections -using ephemeral ports in fact belong to legitimate FTP traffic, and will -flag any that coincide with these services. A related problem arises -when a user has configured their SSH access to tunnel FTP control channels -through the FTP connection, but not the corresponding data connections (so -they don't pay the expense of encrypting the data transfers), so again -Bro can't recognize that the ephemeral ports used for the data connections -does not reflect the presumed sensitive service.} - -Example: redefining @code{flag_successful_service} using -@example -redef flag_successful_service: table[port] of string += @{ - [1524/tcp] = "popular backdoor", -@}; -@end example - -would result in Bro also noticing any successful connection to -a server running on TCP port 1524. - -@cindex access, forbidden inbound services -@cindex services, forbidden if inbound -@cindex inbound services, forbidden - -@item @code{flag_successful_inbound_service : table[port] of string} -The same as @code{flag_successful_service}, except only applies to -connections with a remote initiator and a local responder (determined -by finding the responder address in @code{local_nets}). - -@cindex etc/inetd.conf/etc/inetd.conf -@cindex inetd.conf.conf -Default: @code{1524/tcp} (@code{ingreslock}, a popular backdoor because an -attacker can place an entry for the backdoor in @emph{/etc/inetd.conf} using -a service name rather than a raw port number, and hence more likely to -appear legitimate to casual inspection). Note: There's no compelling -reason why @code{ingreslock} is in this table rather than the more -general @code{flag_successful_service}, though it does tend to result -in a few more false hits than the others, presumably because it's a lower -port number, and hence more likely on some systems to be chosen for -an ephemeral port. - -Note: Symmetry would call for @code{flag_successful_outbound_service}. -This hasn't been implemented in Bro yet simply because the -Bro development site has a threat model structured primarily around -external threats. - -@cindex access, fatal inbound services -@cindex services, fatal if inbound -@cindex inbound services, fatal -@item @code{terminate_successful_inbound_service : table[port] of string} -The same as @code{flag_successful_inbound_service}, except invokes - in an attempt to terminate the connection. - -Default: empty. - -Note: As for @code{flag_successful_inbound_service}, it would be symmetric -to have @code{terminate_successful_outbound_service}, and also to have -a more general @code{terminate_successful_service}. - -@cindex access, forbidden attempted services -@cindex services, forbidden if attempted -@cindex attempted services, forbidden -@code{flag_rejected_service table[port] of string} -Similar to @code{flag_successful_service}, except applies to connections -that a server rejects. For example, you could detect a particular, failed -Linux @emph{mountd} attack by adding @code{10752/tcp} to this table, since -that happens to be the port used by the commonly -available version of the exploit -for its backdoor if the attack succeeds. Note: You would of course -likely also want to put @code{10752/tcp} in @code{flag_successful_service}; -or put the entire @code{flag_rejected_service} table -into @code{flag_successful_service}, as discussed in @ref{Inserting tables into tables}. - -Default: none. - -@emph{Deficiency:It might make sense to have @code{flag_attempted_service}, which doesn't require that a server actively reject the connection, but Bro doesn't currently have this.} - -@end table - -@cindex analyzers, hot, variables - -@node hot functions, -@subsection @code{hot} functions - -@cindex analyzers, hot, functions - -The @code{hot} module defines two functions for external use: - -@table @samp -@cindex spoofing, detection -@cindex local addresses, spoofing -@item @code{check_spoof (c: connection): bool} -checks the originator and responder addresses of the given connection to -determine if they are both local (and the connection is not explicitly -allowed in @code{allow_spoof_services}). If so, and if @code{same_local_net_is_spoof} is true, then marks the connection as ``hot''. - -@cindex Land attack -@cindex attack, Land -The function also checks for a specific denial of service attack, the -``Land'' attack, in which the addresses are the same and so are the ports. -If so, then it generates a event with a name of -@code{"Land_attack"}. It makes this check even if is false. - -Returns: true if the connection is now hot (or was upon entry), false -otherwise. - -@cindex hot detection -@cindex detecting sensitive connections -@cindex connection, detecting sensitive -@item @code{check_hot (c: connection, state: count): bool} -checks the given connection against the various policy variables discussed -above, and bumps the connection's @code{hot} field if it matches -the policies for being sensitive, and does not match the various exceptions. -It also uses @code{check_spoof} to see if the connection reflects a possible -spoofing attack; and terminates the connection if -@code{terminate_successful_service} indicates so. - -The caller indicates the connection's state in the second parameter to the -function, using one of the values given in the Table below. -As noted in the Table, the processing differs depending on the state. - - -@float Table, Hot connection states -@multitable @columnfractions .2 .4 .3 -@item @strong{State} @tab @strong{Meaning} @tab @strong{Tests} -@item @code{CONN_ATTEMPTED} -@tab Connection attempted, no reply seen. Note that you should also use this value -for scans with undetermined state, such as possible stealth scans. For example, -connection @code{half_finished} does this. -@tab @code{check_spoof} -@item @code{CONN_ESTABLISHED} -@tab Connection established. Also used for connections apparently established, per @code{partial_connection}. -@tab @code{check_spoof, flag_successful_service, -flag_successful_inbound service, allow_services_to, -terminate_successful inbound_service} -@item @code{APPL_ESTABLISHED} -@tab The connection has reached application-layer establishment. For -example, for Telnet or Rlogin, this is after the user has authenticated. -@tab @code{allow_services_to, allow_service_pairs, -allow_pairs, allow_16_net_pairs, hot_srcs, -hot_dsts, hot_src_24nets, hot_dst_24nets} -@item @code{CONN_FINISHED} -@tab The connection has finished, either cleanly or abnormally (for example, @code{connection_reset}. -@tab Same as @code{APPL_ESTABLISHED}, if the connection exchanged non-zero -amounts of data in both directions, and if the service wasn’t one of the ones that -generates @code{APPL_ESTABLISHED} -@item @code{CONN_REJECTED} -@tab The connection attempt was rejected by the server. -@tab @code{check_spoof, flag_rejected_service} -@end multitable -@caption{Different connection states to use when calling check @code{hot}} -@end float -@* - - -In general, the pattern is to make one call when the connection is first -seen, either @code{CONN_ATTEMPTED}, @code{CONN_ESTABLISHED}, -or @code{CONN_REJECTED}. If the application is one for which connections -should only be considered ``established'' after a successful pre-exchange -between originator and responder, then a subsequent call is made -with a state of @code{APPL_ESTABLISHED}. The idea here is to provide a -way to filter out what are in fact not really successful connections -so that they are not analyzed in terms of successful service. -Finally, for services that don't use @code{APPL_ESTABLISHED}, a -call is made instead when the connection finishes for some reason, -using state @code{CONN_FINISHED}. Note: This approach delays -noticing until the connection is over, which might be later than -you want, in which case you may need to edit @code{check_hot} to -provide the desired functionality. - -Returns: true if the connection is now hot (or was upon entry), false -otherwise. - -@end table - -@cindex analyzers, hot, functions - -@node scan Analyzer, -@section The @code{scan} Analyzer - -@cindex scan detection -@cindex detecting scans -@cindex scanning, address -@cindex scanning, port -@cindex address scanning -@cindex port scanning -@cindex passwords, guessing -The @code{scan} analyzer detects connection attempts to numerous machines -(address scanning), connection attempts to many different services -on the same machine (port scanning), and attempts to access many different -accounts (password guessing). The basic methodology is to use tables to -keep track of the distinct addresses and ports to which a given host -attempts to connect, and to trigger notices when either of these reaches -a specified size. @emph{Deficiency:As currently written, the analyzer will not detect distributed scans, i.e., when many sites are used to probe individually just a few, but together a large number, of ports or addresses.} - -A powerful technique that Bro potentially provides is dropping -border connectivity with remote scanning sites, though you must -supply the magic script to talk with your router and effect the -block. See @code{drop_address} below for a discussion of the -interface provided. Note: Naturally, providing this capability means -you might become vulnerable to denial-of-service attacks in which spoofed -packets are used in an attempt to trigger a block of a site to which -you want to have access. - -@menu -* scan variables:: -* scan functions:: -* scan event handlers:: -@end menu - -@node scan variables, -@subsection @code{scan} variables - -@cindex analyzers, scan, variables - -In addition to internal variables for its bookkeeping, the analyzer -provides the following redefinable variables: - -@table @samp -@code{report_peer_scan : set[count]} -Generate an alarm whenever a remote host (as determined by -@code{is_local_address}) has attempted to connect to the given -number of distinct hosts. - -Default: @code{@{ 100, 1000, 10000, @}}. So, for example, if -a remote host attempts to connect to 3,500 different local hosts, -a report will be generated when it makes the 100th attempt, and -another when it makes the 1,000th attempt. - -@item @code{report_outbound_peer_scan : set[count]} -The same as @code{report_peer_scan}, except for connections -initiated locally. - -Default: @code{@{ 1000, 10000, @}}. - -@item @code{possible_port_scan_thresh : count} -Initially, port scan detection is done based on how many different -ports a given host connects to, regardless of on which hosts. Once -this threshold is reached, however, then the analyzer begins tracking -ports accessed per-server, which is important for reducing false -positives. Note: The reason this variable exists is because it -is very expensive to track per-server ports accessed for every -active host; this variable limits such tracking to only active hosts -contacting a significant number of different ports. - -Default: @code{25}. - -@item @code{report_accounts_tried : set[count]} -Whenever a remote host has attempted to access a number of local -accounts present in this set, generate an alarm. Each distinct -username/password pair is considered a different access. - -Default: @code{@{ 25, 100, 500, @}}. - -@item @code{report_remote_accounts_tried : set[count]} -The same, except for access to remote accounts rather than local ones. - -Default: @code{@{ 100, 500, @}}. - -@item @code{skip_accounts_tried : set[addr]} -Do not do bookkeeping for account attempts for the given hosts. - -Default: empty. - -@item @code{skip_outbound_services : set[port]} -Do not do outbound-scanning bookkeeping for connections involving -the given services. - -Default: @code{allow_services}, @code{ftp}, @code{addl_web} (see next item). - -@item @code{addl_web : set[port]} -Additional ports that should be considered as Web traffic (and hence skipped -for outbound-scan bookkeeping). - -Default: @code{@{ 81/tcp, 443/tcp, 8000/tcp, 8001/tcp, 8080/tcp, @}}. - -@item @code{skip_scan_sources : set[addr]} -Hosts that are allowed to address-scan without complaint. - -Default: @code{scooter.pa-x.dec.com}, @code{scooter2.av.pa-x.dec.com} -(AltaVista crawlers; you get the idea.) - -@item @code{skip_scan_nets_24 : set[addr, port]} -/24 networks that are allowed to address scan for the given port -without complaint. - -Default: empty. - -@cindex connectivity, dropping -@cindex dropping connectivity -@cindex firewall, reactive -@cindex reactive firewall -@item @code{can_drop_connectivity : bool} -True if the Bro has the capability of dropping connectivity, -per @code{drop_address}. - -Default: false. - -@cindex scanning, shutting down -@cindex shutting down scans -@item @code{shut_down_scans : set[port]} -Scans of these ports trigger connectivity-dropping (if the Bro -is capable of dropping connectivity), unless @code{shut_down_all_scans} -is defined (next item). - -Default: empty. - -@item @code{shut_down_all_scans : bool} -Ignore @code{shut_down_scans} and simply drop all scans regardless of -service. - -Default: false. - -@item @code{shut_down_thresh : count} -Shut down connectivity after a host has scanned this many addresses.` - -Default: @code{100}. - -@item @code{never_shut_down : set[addr]} -Purported scans from these addresses are never shut down. - -Default: the root name servers (@code{a.root-servers.net} through -@code{m.root-servers.net}). - -@end table - -@cindex analyzers, scan, variables - -@node scan functions, -@subsection @code{scan} functions - -@cindex analyzers, scan, functions -The standard @code{scan} script provides the following functions: - -@table @samp -@cindex connectivity, dropping -@cindex dropping connectivity -@cindex firewall, reactive -@cindex reactive firewall -@cindex scanning, shutting down -@cindex shutting down scans -@item @code{drop_address (a: addr, msg: string)} -Drops external connectivity to the given address and generates a notification -using the given message. - -@cindex drop-connectivity shell script-connectivity shell script -@cindex shell scripts, drop-connectivity-connectivity -Dropping connectivity requires all of the following to be true: -@itemize @bullet -@item @code{can_drop_connectivity} is true. - -@item -The address is neither local -nor a neighbor (See @ref{Site variables}). - -@item -The address is not in @code{never_shut_down}. -@end itemize - -If these checks succeed, then the script simply attempts to invoke -a shell script @emph{drop-connectivity} with a single argument, the IP -address to block. It is up to you to provide the script, using whatever -interface to your router/firewall you have available. - -The function does not return a value. - -@cindex scanning, stealth -@cindex stealth scans -@item @code{check_scan (c: connection, established: bool, reverse: bool): bool} -Updates the analyzer's internal bookkeeping on the basis of the -new connection @code{c}. If @code{established} is true, then the connection -was successfully established, otherwise not. If @code{reverse} is true, -then the function should consider the originator/responder fields in -the connection's record as reversed. Note: This last is needed -for some unusual new connections that may reflect stealth scanning. -For example, when the event engine sees a SYN-ack without a corresponding -SYN, it instantiates a new connection with an assumption that the SYN-ack -came from the responder (and it missed the initial SYN either due to -split routing (See @ref{Split routing}), a packet drop (See @ref{Packet drops}), -or Bro having started running after the initial SYN was sent). - -If the originating host's activity matches the policy defined by the -variables above, then the analyzer logs this fact, and possibly -attempts to drop connectivity to the originating host. The function -also schedules an event for 24 hours in the future (or when Bro terminates) -to generate a summary of the scanning activity (so if the host continues -scanning, you get a report on how many hosts it wound up scanning). -@emph{Deficiency:This time interval should be selectable.} - -Note: Purported scans of the FTP data port (@code{20/tcp}) or the @code{ident} -service (@code{113/tcp}) are never reported or dropped, as experience -has shown they yield too many false hits. - -The function does not return a value. - -@end table - -@cindex analyzers, scan, functions - -@node scan event handlers, -@subsection @code{scan} event handlers - -@cindex analyzers, scan, event handlers - -The standard @code{scan} script defines one event handler: - -@table @samp -@item @code{account_tried (c: connection, user: string, passwd: string)} -The given connection made an attempt to access the given username and -password. Each distinct username/password pair is considered a new access. -The event handler generates an alarm if the access matches the logging -policy outlined above. - -Note: @code{account_tried} events are generated by @code{login} -and @code{ftp} analyzers. - -@end table - -@cindex analyzers, scan, event handlers - -@cindex scan detection - -@node port-name Analysis Script, -@section The @code{port-name} Analysis Script - -The @code{port-name} utility module provides one redefinable variable -and one callable function: - -@table @samp -@item @code{port_names : table[port] of string} -Maps TCP/UDP ports to names for the services associated with those ports. -For example, @code{80/tcp} maps to @code{"http"}. These names are used by -the @code{conn} analyzer when generating connection logs -(See @ref{Generic Connection Analysis}). - -@item @code{endpoint_id (h: addr, p: port): string } -Returns a printable form of the given address/port connection -endpoint. The format is either -@code{<}@emph{address}@code{>/<}@emph{service-name}@code{>} -or -@code{<}@emph{address}@code{>/<}@emph{port-number}@code{>} -depending on whether the port appears in @code{port_names}. -@end table - -@node brolite Analysis Script, -@section The @code{brolite} Analysis Script - -The @code{brolite} module is intended to provide a convenient way -to run (almost) all of the analyzers. It @code{@@load}'s the following -other modules and analyzers: -@code{alarm, dns, hot, port-name, frag, tcp, scan, weird, finger, ident, ftp, -login} and @code{portmapper}. -So you can run Bro using @emph{bro -i in0 brolite} to have it analyze -traffic on interface @emph{in0} using the above analyzers -; or you can @code{@@load brolite} to load in the above -analyzers. - -Note: The @code{brolite} analyzer doesn't load @code{http} (because -it can prove a very high load for many sites) -nor experimental analyzers such as @code{stepping} -or @code{backdoor}. - -@node alarm Analysis Script, -@section The @code{alarm} Analysis Script - -The @code{alarm} utility module redefines a single variable: - -@table @samp -@cindex alarm file -@item @code{bro_alarm_file : file} -A special Bro variable used internally to specify a file where Bro should -record messages logged by @code{alarm} statements (as well -as generating real-time notifications via @emph{syslog}). - -Default: if the @code{$BRO_LOG_SUFFIX} environment variable is defined, -then @code{alarm.@code{<}@emph{$BRO_LOG_SUFFIX}@code{>}}, otherwise @code{alarm.log}. - -See @code{bro_alarm_file} for further discussion. - -@end table - -If you do not include this module, then Bro records alarm messages -to @emph{stderr}. -@cindex stderr - -Here is a sample definition of @code{alarm_hook}: -@example -global msg_count: table[string] of count &default = 0; - -event alarm_summary(msg: string) - @{ - alarm fmt("(%s) %d times", msg, msg_count[msg]); - @} - -function alarm_hook(msg: string): bool - @{ - if ( ++msg_count[msg] == 1 ) - # First time we've seen this message - log it. - return T; - - if ( msg_count[msg] == 5 ) - # We've seen it five times, enough to be worth - # summarizing. Do so five minutes from now, - # for whatever total we've seen by then. - schedule +5 min @{ alarm_summary(msg) @}; - - return F; - @} - -@end example - -You can also control Bro's alarm processing by defining the -special function @emph{alarm-hook}. It takes a single -argument, @code{msg: string}, the message in a just-executed -@code{alarm} statement, and returns a boolean value: true if Bro -should indeed log the message, false if not. The above example -shows a definition of @code{alarm_hook} that -checks each alarm message to see whether the same text has -been logged before. It only logs the first instance of a message. -If a message appears at least five times, then it schedules a -future @code{alarm_summary} event for 5 minutes in the future; -the purpose of this event is to summarize the total number of -times the message has appeared at that point in time. - -@node active Analysis Script, -@section The @code{active} Analysis Script - -The @emph{active} utility module provides a single, non-redefinable -variable that holds information about active connections: - -@table @samp -@item @code{active_conn : table[conn_id] of connection} -Indexed by a @code{conn_id} giving the -originator/responder addresses/ports, returns the connection's -@code{connection} record. As usual, accessing -the table with a non-existing index results in a run-time error, -so you should first test for the presence of the index using -the @code{in} operator. - -Default: empty. -@end table - -This functionality is quite similar to that of the @code{active_connection} -function, and @emph{Deficiency:arguably this module should be removed in favor of the function}. It does, however, provide a useful example of maintaining -bookkeeping by defining additional handlers for events that already have -handlers elsewhere. - -@node demux Analysis Script, -@section The @code{demux} Analysis Script - -The @emph{demux} utility module provides a single function: - -@table @samp -@item @code{demux_conn (id: conn_id, tag: string, otag: string, rtag: string): bool } -Instructs Bro to write (``demultiplex'') the contents of the connection -with the given @code{id} to a pair of files whose names are constructed -out of @code{tag}, @code{otag}, and @code{rtag}, as follows. - -The originator-to-responder direction of the connection goes into a file named: -@quotation -@code{<}@emph{otag}@code{>.<}@emph{tag}@code{>.<}@emph{orig-addr}@code{>.<}@emph{orig-port}@code{>-<}@emph{resp-addr}@code{>.<}@emph{resp-port}@code{>} -@end quotation -and the other direction in: -@quotation -@code{<}@emph{rtag}@code{>.<}@emph{tag}@code{>.<}@emph{resp-addr}@code{>.<}@emph{resp-port}@code{>-<}@emph{orig-addr}@code{>.<}@emph{orig-port}@code{>} -@end quotation -Accordingly, @emph{tag} can be used to associate a unique label with -the pair of files, while @emph{otag} and @emph{rtag} provide distinct -labels for the two directions. - -If Bro is already demuxing the connection, or if the connection is -not active, then nothing happens, and the function returns false. -Otherwise, it returns true. - -@end table - -Bro places demuxed streams in a directory defined by the redefinable -global @code{demux_dir}, which defaults in the usual fashion to -@code{open_log_file("xscript")}. - -@emph{Deficiency:Experience has shown that it would be highly convenient if Bro would demultiplex the @emph{entire} connection contents into the files, instead of just the part of the connection seen subsequently after the call to @code{demux_conn}. One way to do this would be for @code{demux_conn} to offset the contents in the file by the current stream position, and then to invoke a utility tool that goes through the Bro output trace file and copies the contents up to the current stream position to the front of the file. This utility tool might even be another instance of Bro running with suitable arguments.} - -@node dns Analysis Script, -@section The @code{dns} Analysis Script - -The @code{dns} module deals with Bro's internal mapping of hostnames -to/from IP addresses. -@emph{Deficiency: There is no DNS protocol analyzer available at present.} -Furthermore, @emph{Deficiency: the lookup mechanisms discussed here are not available to the Bro script writer, other than implicitly by using hostnames in lieu of addresses in variable initializations (see @ref{Hostnames vs addresses}).} - -@cindex bro-dns-cache.bro-dns-cache -@cindex DNS, Bro's private cache - -The module's function is to handle different events that can -occur when Bro resolves hostnames upon startup. Bro maintains its -own cache of DNS information which persists across invocations of Bro -on the same machine and by the same user. -The role of the cache is to allow Bro to resolve -hostnames even in the face of DNS outages; the philosophy is that it's -better to use old addresses than none at all, and this helps harden Bro -against attacks in which the attacker causes DNS outages in order to -prevent Bro from resolving particular sensitive hostnames (e.g., @code{hot_srcs} -). The cache is stored in the file ``@code{.bro-dns-cache}'' -in the user's home directory. You can delete this file whenever you want, -for example to purge out old entries no longer needed, and Bro will recreate -it next time it's invoked using @code{-P}. - -Currently, all of the event handlers are invoked upon @emph{comparing} -the results of a new attempt to look up a name or an address versus the -results obtained the @emph{last time} Bro did the lookup. When Bro looks -up a name for the first time, no events are generated. - -Also, Bro currently only looks up hostnames to map them to addresses. -It does not perform inverse lookups. - -@menu -* dns_mapping record:: -* dns variables:: -* dns event handlers:: -@end menu - -@node dns_mapping record, -@subsection The @code{dns_mapping} record - -@cindex DNS, mappings - -All of the events handled by the module include at least one -record of DNS mapping information, defined by the @code{dns_mapping} -type shown in the example below. -The corresponding fields are: - -@table @samp -@item @code{creation_time} -When the mapping was created. - -@item @code{req_host} -The hostname looked up, or an empty string if this was not a hostname -lookup. - -@item @code{req_addr} -The address looked up (reverse lookup), or @code{0.0.0.0} if this was not -an address lookup. - -@item @code{valid} -True if an answer was received for a lookup (even if the answer was that -the request name or address does not exist in the DNS). - -@item @code{hostname} -The hostname answer in response to an address lookup, or the -string @code{"@code{<}none@code{>"}} if an answer was received but -it indicated there was no PTR record for the given address. - -@item @code{addrs} -A set of addresses in response to a hostname lookup. Empty -if an answer was received but it indicated that there was no A record -for the given hostname. - -@end table - -@example -type dns_mapping: record @{ - creation_time: time; # When the mapping was created. - - req_host: string; # The hostname in the request, if any. - req_addr: addr; # The address in the request, if any. - - valid: bool; # Whether we received an answer. - hostname: string; # The hostname in the answer, or "". - addrs: set[addr]; # The addresses in the answer, if any. -@}; -@end example - -@node dns variables, -@subsection @code{dns} variables - -@cindex modules, dns, variables - -The modules provides one redefinable variable: - -@table @samp -@item @code{dns_interesting_changes : set[string]} -The different DNS events have names associated with them. If the -name is present in this set, then the event will generate a notice, otherwise -not. - -One exception to this list is that DNS changes involving the -loopback address @code{127.0.0.1} are always considered notice-worthy, -since they may reflect DNS corruption. - -Default: @code{@{ "unverified", "old name", "new name", "mapping", @}}. - -@end table - -@cindex modules, dns, variables - -@node dns event handlers, -@subsection @code{dns} event handlers - -@cindex modules, dns, event handlers - -The DNS module supplies the following event handlers: - -@table @samp -@item @code{dns_mapping_valid (dm: dns_mapping)} -The given request was looked up and it was identical to its previous -mapping. - -@item @code{dns_mapping_unverified (dm: dns_mapping)} -The given request was looked up but no answer came back. - -@item @code{dns_mapping_new_name (dm: dns_mapping)} -In the past, the given address did not resolve to a hostname; -this time, it did. - -@item @code{dns_mapping_lost_name (dm: dns_mapping)} -In the past, the given address resolved to a hostname; now, -that name has gone away. (An answer was received, but it stated -that there is no hostname corresponding to the given address.) - -@item @code{dns_mapping_name_changed (old_dm: dns_mapping, new_dm: dns_mapping)} -The name returned this time for the given address differs from the -name returned in the past. - -@item @code{dns_mapping_altered (dm: dns_mapping, old_addrs: set[addr], new_addrs: set[addr])} -The addresses associated with the given hostname have changed. Those -in @code{old_addrs} used to be part of the set returned for the name, but -aren't any more; while those in @code{new_addrs} didn't used to be, but -now are. There may also be some unchanged addresses, which are those in -@code{dm$addrs} but not in @code{new_addrs}. - -@end table - -@cindex modules, dns, event handlers - -@node finger Analyzer, -@section The @code{finger} Analyzer - -@cindex analyzers, application-specific -@cindex Finger, analysis -The @code{finger} analyzer processes traffic associated with -the Finger service RFC-1288. Bro instantiates a @code{finger} -analyzer for any connection with service port @code{79/tcp} (if you -@code{@@load} the finger analyzer in your script, or define your own -@code{finger_request} or @code{finger_reply} handlers, of course). - -The analyzer uses a capture filter of ``@code{port finger}'' -(See: @ref{Filtering}). - -In the past, attackers often used Finger requests to obtain information -about a site's users, and sometimes to launch attacks of various forms -(buffer overflows, in particular). In our experience, exploitation -of the service has -greatly diminished over the past years (no doubt in part to the service -being increasingly turned off, or prohibited by firewalls). Now it is only -rarely associated with an attack. - -@menu -* finger variables:: -* finger event handlers:: -@end menu - -@node finger variables, -@subsection @code{finger} variables - -@cindex analyzers, finger, variables - -The standard script defines two redefinable variables: - -@table @samp -@item @code{hot_names : set[string]} -A list of usernames that should be considered sensitive (notice-worthy) -if included in a Finger request. - -Default: @code{@{ "root", "lp", "uucp", "nuucp", "demos", "operator", "sync", "guest", "visitor", @}}. - -@item @code{max_request_length : count} -The largest reasonable request size (used to flag possible buffer -overflow attacks). Bro marks a connection as ``hot'' if its request -exceeds this length, and truncates its logging of the request to -this many bytes, followed by @code{"..."}. - -Default: @code{80}. - -@end table - -@cindex analyzers, finger, variables - -@node finger event handlers, -@subsection @code{finger} event handlers - -@cindex analyzers, finger, event handlers - -The standard script defines one event handler: - -@table @samp -@item @code{finger_request (c: connection, request: string, full: bool)} -Invoked upon connection @code{c} having made the request @code{request}. -The @code{full} flag is true if the request included the ``long format'' -option (which the event engine will have removed from the request). - -The standard script flags long requests and truncates them as noted above, -and then checks whether the request is for a name in @code{hot_names}. -It then formats the request either by placing double quotation marks -around it, or, if the request was empty---indicating a request for -information on all users---the request is changed to the string @code{ALL} -with no quotes around it. - -If the originator already made a request, then this additional request -is placed in parentheses (though multiple requests violate the Finger -protocol). If the request was for the @code{full} format, then the -text ``@code{(/W)}'' is appended to the request. Finally, the request -is appended to the connection's field. - -@end table - -The event engine generates an additional event that the predefined -@code{finger} script does not handle: - -@table @samp -@item @code{finger_reply (c: connection, reply_line: string)} -Generated for each line of text sent in response to the originator's -request. - -@end table - -@cindex analyzers, finger - -@node frag Analysis Script, -@section The @code{frag} Analysis Script - -The @code{frag} utility module simply refines the capture filter -(See: @ref{Filtering}) so that Bro will capture and reassemble IP fragments. -Bro reassembles any fragments it receives; but normally it doesn't receive -any, except the beginnings of TCP fragments (see the @code{tcp} -module), and UDP port 111 (per the @code{portmapper} module). - -@cindex fragment reassembly -@cindex fragments, TCP vs. UDP -@cindex TCP, fragments -@cindex UDP, fragments -So, to make Bro do fragment reassembly, you simply use ``@code{load} @code{frag}''. -It effects this by adding: -@example - (ip[6:2] & 0x3fff != 0) and tcp -@end example - -to the filter. The first part of this expression matches all IP fragments, -while the second restricts those matched to TCP traffic. We would @emph{like} -to use: -@example - (ip[6:2] & 0x3fff != 0) and (tcp or udp port 111) -@end example - -to also include portmapper fragments, but that won't work---the port -numbers will only be present in the first fragment, so the packet filter -won't recognize the subsequent fragments as belonging to a UDP port 111 -packet, and will fail to capture them. - -@cindex NFS traffic, high volume fragments -@emph{Note: Alternatively, we might be tempted to use ``@code{(tcp or udp)}'' -and so capture @emph{all} UDP fragments, including port 111. This would -work in principle, but in practice can capture very high volumes of -traffic due to NFS traffic, which can send all of its file data in -UDP fragments.} - -@node hot-ids Analysis Script, -@section The @code{hot-ids} Analysis Script - -@cindex usernames, sensitive -@cindex sensitive usernames -@cindex hot usernames - -The @code{hot-ids} module defines a number of redefinable variables -that specify usernames Bro should consider sensitive: - -@table @samp -@item @code{forbidden_ids set[string]} -lists usernames that should never be used. If Bro detects use of one, -it will attempt to terminate the corresponding connection. - -Default: @code{@{ "uucp", "daemon", "rewt", "nuucp", "EZsetup", "OutOfBox", "4Dgifts", "ezsetup", "outofbox", "4dgifts", "sgiweb", @}}. -All of these -correspond to accounts that some systems have enabled by default -(with well-known passwords), except for @code{"rewt"}, which corresponds -to a username often used by (weenie) attackers. -@cindex attackers, weenie - -@emph{Deficiency: The repeated definitions such as @code{"EZsetup"} and @code{"ezsetup"} reflect that this variable is a @code{set} and not a @code{pattern}. Consequently, the exact username must appear in it (with a pattern, we could use character classes to match both upper and lower case). } - -@item @code{forbidden_ids_if_no_password : set[string]} -Same as @code{forbidden_ids} except only considered forbidden if -the login succeeded with an empty password. - -Default: @code{"lp"}, a default passwordless IRIX account. - -@item @code{forbidden_id_patterns : pattern} -A pattern giving user ids that should be considered forbidden. -@emph{Deficiency: This pattern is currently only used to check Telnet/Rlogin user ids, not ids seen in other contexts, such as FTP sessions.} - -Default: @code{/(y[o0]u)(r|ar[e3])([o0]wn.*)/}, a particularly -egregious style of username of which we've observed variants -in different break-ins. - -@item @code{always_hot_ids : set[string]} -A list of usernames that should always be considered sensitive, -though not necessarily so sensitive that they should be terminated -whenever used. - -Default: @code{@{ "lp", "warez", "demos", forbidden_ids, @}}. The -@code{"lp"} and @code{"demos"} accounts are specified here rather -than @code{forbidden_ids} because it's possible that they might be -used for legitimate accounts. @code{"warez"} (for ``wares'', i.e., -bootlegged software) is listed because its use likely constitutes -a policy violation, not a security violation. - -Note: @code{forbidden_ids} is incorporated into @code{always_hot_ids} -to avoid replicating the list of particularly sensitive ids by listing -it twice and risking inconsistencies. - -@item @code{hot_ids set[string]} -User ids that generate notices if the user logs in successfully. - -Default: @code{@{ "root", "system", always_hot_ids, @}}. The -ones included in addition to @code{always_hot_ids} are only considered -sensitive if the user logs in successfully. - -@end table - -@node ftp Analyzer, -@section The @code{ftp} Analyzer - -@cindex FTP, analysis -The @code{ftp} analyzer processes traffic associated with -the FTP file transfer service RFC-959. Bro instantiates an -@code{ftp} analyzer for any connection with service port @code{21/tcp}, -providing you have loaded the @code{ftp} analyzer, or defined a handler -for @code{ftp_request} or @code{ftp_reply}. - -The analyzer uses a capture filter of ``@code{port ftp}'' (See: @ref{Filtering}). -It generates summaries of FTP sessions; -looks for sensitive usernames, access to sensitive files, and possible -FTP ``bounce'' attacks, in which the host specified in a ``@code{PORT}'' or -``@code{PASV}'' directive does not correspond to the host sending -the directive; or in which a different host than the server (client) connects -to the endpoint specified in a @code{PORT} (@code{PASV}) directive. - -@menu -* ftp_session_info record:: -* ftp variables:: -* ftp functions:: -* ftp event handlers:: -* ftp notices:: -@end menu - -@node ftp_session_info record, -@subsection The @code{ftp_session_info} record - -@cindex FTP, session information - -The main data structure managed by the @code{ftp} analyzer is -a collection of @code{ftp_session_info} records, where the -record type is shown below: - -@example -type ftp_session_info: record @{ - id: count; # unique number associated w/ session - user: string; # username, if determined - request: string; # pending request or requests - num_requests: count; # count of pending requests - request_t: time; # time of request - log_if_not_denied: bool; # unless code 530 on reply, log it - log_if_not_unavail: bool; # unless code 550 on reply, log it - log_it: bool; # if true, log the request(s) -@}; -@end example - -The corresponding fields are: - -@table @samp -@item @code{id} -The unique session identifier assigned to this session. Sessions -are numbered starting at @code{1} and incrementing with each new session. - -@item @code{user} -The username associated with this session (from the initial FTP -authentication dialog), or an empty string if not yet determined. - -@item @code{request} -The pending request, if the client has issued any. Ordinarily there -would be at most one pending request, but a client can in fact send -multiple requests to the server all at once, -and an attacker could do so attempting -to confuse the analyzer into mismatching responses with requests, -or simply forgetting about previous requests. - -@item @code{num_requests} -A count of how many requests are currently pending. - -@item @code{request_t} -The time at which the pending request was issued. - -@item @code{log_if_not_denied} -If true, then when the reply to the current request comes in, -Bro should log it, unless the reply code is @code{530} (``@code{denied}''). - -@item @code{log_if_not_unavail} -If true, then when the reply to the current request comes in, -Bro should log it, unless the reply code is @code{550} (``@code{unavail}''). - -@item @code{log_it} -If true, then when the reply to the current request comes in, -Bro should log it. - -@end table - -@node ftp variables, -@subsection @code{ftp} variables - -@cindex analyzers, ftp, variables - -The standard script defines the following redefinable variables: - -@table @samp -@item @code{ftp_guest_ids : set[string]} -A set of usernames associated with publicly accessible ``guest'' -services. Bro interprets guest usernames as indicating Bro should -use the authentication @emph{password} as the effective username. - -Default: @code{@{ "anonymous", "ftp", "guest", @}}. - -@item @code{ftp_skip_hot : set[addr, addr, string]} -Entries indicate that a connection from the first given address to the -second given address, using the given string username, should not -be treated as hot even if the username is sensitive. - -Default: empty. - -Example: redefining @code{ftp_skip_hot} using -@example -redef ftp_skip_hot: set[addr, addr, string] += @{ - [[bob1.dsl.home.net, bob2.dsl.home.net], - bob.work.com, "root"], @}; -@end example - -would result in Bro not noticing FTP connections as user @code{"root"} -from either @code{bob1.dsl.home.net} or @code{bob2.dsl.home.net} to the -server running on @code{bob.work.com}. - -@item @code{ftp_hot_files : pattern} -Bro matches the argument given in each FTP file manipulation -request (RETR, STOR, etc.) -against this pattern to see if the file is sensitive. If so, -and if the request succeeds, then the access is logged. - -@cindex eggdrop -@cindex filenames, sensitive -Default: @code{aggdrop} a pattern that matches various flavors of password files, plus -any string with @code{eggdrop} in it. @emph{Note: Eggdrop is an IRC management -tool often installed by certain attackers upon a successful break-in.} - -@item @code{ftp_not_actually_hot_files : pattern} -A pattern giving exceptions to @code{ftp_hot_files}. It turns out -that a pattern like @code{/passwd/} generates a lot of false hits, -such as from @code{passwd.c} (source for the @emph{passwd} utility; -this can turn up in FTP sessions that fetch entire sets of utility sources -using @code{MGET}) or @code{passwd.html} (a Web page explaining how to enter -a password for accessing a particular page). - -Default: @code{/(passwd|shadow).*@code{.}(c|gif|htm|pl|rpm|tar|zip)/} . - -@item @code{ftp_hot_guest_files pattern} -Files that guests should not attempt to access. - -@cindex rhosts -@cindex forward -Default: @code{.rhosts} and @code{.forward} . - -@item @code{skip_unexpected : set[addr]} -If a new host (address) unexpectedly connects to the endpoint specified in a -@code{PORT} or @code{PASV} directive, then if either the original host -or the new host is in this set, no message is -generated. The idea is that you can specify multi-homed hosts that -frequently show up in your FTP traffic, as these can generate innocuous -warnings about connections from unexpected hosts. - -Default: some @code{hp.com} hosts, as an example. Most are specified -as raw IP addresses rather than hostnames, since the hostnames -don't always consistently resolve. - -@item @code{skip_unexpected_net : set[addr]} -The same as @code{skip_unexpected}, except addresses are masked to /24 and -/16 before looked up in this set. - -Default: empty. - -@end table - -@cindex FTP, log file -@cindex log file, FTP -@cindex ftp session summary file -In addition, @code{ftp_log} holds the name of the FTP log file to -which Bro writes FTP session summaries. It defaults to -@code{open_log_file("ftp")}. - -Here is an example of what entries in this file look like: - -@example -972499885.784104 #26 131.243.70.68/1899 > 64.55.26.206/ftp start -972499886.685046 #26 response (220 tuvok.ooc.com FTP server - (Version wu-2.6.0(1) Fri Jun 23 09:17:44 EDT 2000) ready.) -972499886.686025 #26 USER anonymous/IEUser@@ (logged in) -972499887.850621 #26 TYPE I (ok) -972499888.421741 #26 PASV (227 64.55.26.206/2427) -972499889.493020 #26 SIZE /pub/OB/4.0/JOB-4.0.3.zip (213 1675597) -972499890.135706 #26 *RETR /pub/OB/4.0/JOB-4.0.3.zip, ABOR (complete) -972500055.491045 #26 response (225 ABOR command successful.) -@end example - -Here we see a transcript of -the 26th FTP session seen since Bro started running. The first line -gives its start time and the participating hosts and ports. The -next line (split across two lines above for clarity) gives the server's -welcome banner. The client then logged in as user ``@code{anonymous}'', -and because this is one of the guest usernames, Bro recorded their -password too, which in this case was ``@code{IEUser@@}'' (a useless -string supplied by their Web browser). The server accepted this -authentication, so the status on the line is ``@code{(logged in)}''. - -The client then issues a request for the Image file type, to which the -server agreed. Next they issued a @code{PASV} directive, and received a -response instructing them to connect to the server on port @code{2427/tcp} -for the next transfer. At this point, after issuing a @code{SIZE} directive -(to which the server returned 1,675,597 bytes), they send @code{RETR} to -fetch the file @emph{/pub/OB/4.0/JOB-4.0.3.zip}. However, before the -transfer completed, they issued @code{ABOR}, but the transfer finished -before the server processed the abort, so the log shows a status of @code{completed}. Furthermore, because the client issued two commands without -waiting for an intervening response, these are shown together in the log -file, and the line marked with a ``@code{*}'' so it draws the eye. Finally, -because Bro paired up the @code{(completed)} with the multi-request line, it -then treats the response to the @code{ABOR} command as a reply by itself, -showing in the last line that the server reported it successfully carried -out the abort. - -The corresponding lines in the @file{conn} file look like: -@example - 972499885.784104 565.836 ftp 118 427 131.243.70.68 64.55.26.206 - RSTO L #26 anonymous/IEUser@@ - 972499888.984116 165.098 ftp-data ? 1675597 131.243.70.68 - 64.55.26.206 RSTO L -@end example - -The first line summarizes the FTP control session (over which the client -sends its requests and receives the server's responses). It includes -an @code{addl} annotation of ``@code{#26 anonymous/IEUser@@}'', -summarizing the session number (so you can find the corresponding records -in the @code{ftp} log file) and the authentication information. - -@cindex connection size, undetermined for RST termination -@cindex RST termination, causing undetermined connection size -The second line summarizes the single FTP data transfer, of 1,675,597 bytes. -The amount of data sent by the client for this connection is shown as -unknown because the client aborted the connection with a RST (hence -the state @code{RSTO}). For connections that Bro does not look inside -(such as FTP data transfers), it learns the amount of data transferred from -the sequence numbers of the SYN and FIN connection control packets, and -can't (reliably) learn them for the sender of a RST. (It can for the -receiver of the RST.) - -They also aborted the control session (again, state @code{RSTO}), but -in this case, Bro captured all of the packets of the session, so it -could still assign sizes to both directions. - -@cindex analyzers, ftp, variables - -@node ftp functions, -@subsection @code{ftp} functions - -@cindex analyzers, ftp, functions - -The standard @code{ftp} script provides one function for external use: - -@table @samp -@item @code{is_ftp_data_conn (c: connection): bool } -Returns true if the given connection matches one we're expecting -as the data connection half of an FTP session. @emph{Note: This function is -not idempotent: if the connection matches an expected one, then -Bro updates its state such that that connection is no longer expected. -It also logs a discrepancy if the connection appears to be usurping -another one that generated either a ``@code{PORT}'' or a ``@code{PASV}'' -directive.} - -Also returns true if the source port is @code{20/tcp} and there's currently -an FTP session active between the originator and responder, in case for -some reason Bro's bookkeeping is inconsistent. - -@end table - -@cindex analyzers, ftp, functions - -@node ftp event handlers, -@subsection @code{ftp} event handlers -@cindex analyzers, ftp, event handlers - -The standard script handles the following events: - -@table @samp -@item @code{ftp_request (c: connection, command: string, arg: string)} -Invoked upon the client side of connection @code{c} having made the request -@code{command} with the argument @code{arg}. - -The processing depends on the particular command: -@table @samp - -@item @code{USER} -Specifies the username that the client wishes to -use for authentication. If it is sensitive---in @code{hot_ids} (which -the @code{ftp} analyzer accesses via a @code{@@load} of @code{hot-ids})---then -the analyzer flags the FTP session as notice-worthy. In addition, if -the username is in @code{forbidden_ids}, then the analyzer terminates -the session. - -The analyzer also updates the connection's @code{addl} field -with the username. - -@item @code{PASS} -Specifies the password to use for authentication. - -If the password is empty and the username appears in -@code{forbidden_ids_if_no_password} (also from the @code{hot-ids} analyzer), -then the analyzer terminates the connection. - -If the username corresponds to a guest account (@code{ftp_guest_ids}), -then the analyzer updates the connection's @code{addl} field -with the password as additional account information. Otherwise, -it generates an @code{account_tried} event to -facilitate detection of password guessing. - -@item @code{PORT} -Instructs the FTP server to connect to the given -IP address and port for delivery of the next FTP data item. The analyzer -first checks the address/port specifier for validity. If valid, it -will generate a notice if either the address specified in the directive -does not match that of the client, or if the port corresponds to a -``privileged'' port, i.e., one in the range 0--1023. Finally, it -establishes state so that @code{is_ftp_data_conn} can identify a -subsequent connection corresponding to this directive as belonging to -this FTP session. - -@item @code{ACCT} -Specifies additional accounting information associated with a session, -which the analyzer simply adds to the connection's -field. - -@item @code{APPE}, @code{CWD}, @code{DELE}, @code{MKD}, @code{RETR}, @code{RMD}, @code{RNFR}, @code{RNTO}, @code{STOR}, @code{STOU} -All of these manipulate files (and directories). The analyzer checks -the filename against the policies to see if it is sensitive in the -context of the given username (i.e., guest or non-guest), and, if so, -marks the connection to generate a notice unless the operation fails. -The analyzer also checks for an excessively long filename, currently -by checking its length against a @emph{Deficiency:hardwired maximum of 250 bytes}. -@end table - -@item @code{ftp_reply (c: connection, code: count, msg: string, cont_resp: bool)} -Invoked upon the server side of connection @code{c} having replied to -a request using the given status code and text message. @code{cont_resp} -is true if the reply line is tagged as being continued to the next line. -The analyzer only processes requests when the last line of a continued -reply is received. - -The analyzer checks the reply against any expected for the connection -(for example, ``@code{log_if_not_denied}'') and generates notices accordingly. -If the reply corresponds to a @code{PASV} directive, then it parses the -address/port specification in the reply and generates notices in an analogous -fashion as done by the @code{ftp_request} handler for @code{PORT} directives. - -Finally, if the reply is not one that the analyzer is hardwired to skip -(code @code{150}, used at the beginning of a data transfer, and code -@code{331}, used to prompt for a password), -then it writes a summary of the request and reply to the FTP log file -(See: @ref{ftp variables}). Also, if the reply is an ``orphan'' (there was -no corresponding request, perhaps because Bro started up after the -request was made), then the reply is summarized in the log file by -itself. - -@end table - -The standard @code{ftp} script defines one other handler, an instance of - used to flush FTP session information -in case the session terminates abnormally and no reply is seen to -the pending request(s). - -@cindex analyzers, ftp, event handlers - -@node ftp notices, -@subsection ftp notices -@cindex ftp, notices - -The FTP analyzer can generate the following Notices: - -@itemize -@item FTP::FTP_BadPort - Bad format in PORT/PASV -@item FTP::FTP_ExcessiveFilename - Very long filename seen -@item FTP::FTP_PrivPort - Privileged port used in PORT/PASV -@item FTP::FTP_Sensitive -Sensitive connection (as defined in hot) -@item FTP::FTP_UnexpectedConn - Data transfer from unexpected src. -Suppose there's an FTP session between client A and server B, and either -A issues a PORT or B issues a PASV. Then what's expected is that A will -rendezvous with B using the port specified in the PORT/PASV. If instead -a new IP address C connects to (or accepts from) the negotiated port, that -generated FTP_UnexpectedConn. -@end itemize - - -@node http Analyzer, -@section The @code{http} Analyzer - -@cindex HTTP, analysis - -The @code{http} analyzer processes traffic associated with -the Hyper Text Transfer Protocol (HTTP) [RFC-1945], -the main protocol used by the Web. Bro instantiates an -@code{http} analyzer for any connection with service port @code{80/tcp}, -providing you have loaded the @code{http} analyzer, or defined a handler -for @code{http_request}. It also instantiates an analyzer for -service ports @code{8080/tcp} and @code{8000/tcp}, as these are -often also used for Web servers. - -The analyzer uses a capture filter of ``@code{tcp dst port 80 or tcp dst port 8080 or tcp dst port 8000}'' (See: @ref{Filtering}). Note: This filter excludes -traffic sent by an HTTP server (that would be matched by @code{tcp src port 80}, -etc.), because @emph{Deficiency: Bro doesn't yet have an analyzer for HTTP replies. It generates summaries of HTTP sessions (connections between the same client and server) and looks for access to sensitive URIs (effectively, URLs).} - -@menu -* http variables:: -* http event handlers:: -@end menu - -@node http variables, -@subsection @code{http} variables - -@cindex analyzers, http, variables - -@table @samp -@cindex HTTP methods -@item @code{sensitive_URIs : pattern} -Any HTTP method (e.g., @code{GET}, @code{HEAD}, -@code{POST}) specifying -a URI that matches this pattern is flagged as sensitive. - -@cindex etc/passwd -@cindex etc/shadow -@cindex Cold Fusion exploits -Default: URIs with @code{/etc/passwd} or @code{/etc/shadow} embedded -in them, or @code{/cfdocs/expeval} (used in some Cold Fusion exploits). -Note: This latter generates some false hits; it's mainly included -just to convey the notion of looking for direct attacks rather than -attacks used to exploit sensitive files like the first ones. - -@emph{Deficiency: It would be very handy to have variables providing hooks for more context when considering whether a particular access is sensitive, such as whether the request was inbound or outbound. } - -@item @code{sensitive_post_URIs : pattern} -Any @code{POST} method specifying a URI that matches this pattern is flagged as -sensitive. - -Default: URIs with @code{wwwroot} embedded in them. - -@end table - -@cindex frogs, dissecting -@cindex http session summary file - -@cindex HTTP, log file -@cindex log file, HTTP -In addition, @code{http_log} holds the name of the HTTP log file to -which Bro writes HTTP session summaries. It defaults to -@code{open_log_file("http")}. - -Here we show an example of what entries in this file look like: - -@example -972482763.371224 %1596 start 200.241.229.80 > 131.243.2.12 -%1596 GET /ITG.hm.pg.docs/dissect/portuguese/dissect.html -%1596 GET /vfrog/bottom.icon.gif -%1596 GET /vfrog/top.icon.gif -%1596 GET /vfrog/movies/off.gif -%1596 GET /vfrog/new.frog.small.gif -@end example - -Here we see a transcript of -the 1596th HTTP session seen since Bro started running. The first line -gives its start time and the participating hosts. The -next five lines all correspond to @code{GET} methods retrieving different -items from the Web server. @emph{Deficiency: Bro can't log whether the retrievals succeeded or failed because it doesn't yet have an HTTP reply analyzer. } - -The corresponding lines in the @code{conn} file look like: -@example - 972482762.872695 481.551 http 441 5040 131.243.2.12 200.241.229.80 - S3 X %10596 - 972482764.686470 18.7611 http 596 7712 131.243.2.12 200.241.229.80 - S3 X %10596 - 972482764.685047 ? http 603 2959 131.243.2.12 200.241.229.80 - S1 X %10596 -@end example - -That there are three rather than five reflects @emph{(i)} that the client -used persistent HTTP, and so didn't need one connection per item, but -also @emph{(ii)} the client used three parallel connections (the maximum -the standard allows is only two) to fetch the items more quickly. As with FTP -sessions, the @code{%10596} @code{addl} annotation lets you -correlate the @code{conn} entries with the log entries. - -@emph{Note: All three of the connections wound up in unusual states. The first -two are in state @code{S3}, which, as indicated by Table 7.3, -means that the responder (in this case, the Web server) attempted to close -the connection, but their was no reply from the originator. The last is -in state @code{S1}, indicating that neither side attempted to close the -connection (which is why no duration is listed for the connection).} - -@cindex analyzers, http, variables - -@node http event handlers, -@subsection @code{http} event handlers - -@cindex analyzers, http, event handlers - -The standard HTTP script defines one event handler: - -@table @samp -@item @code{http_request c: connection, request: string, URI: string} -Invoked whenever the client side of the given connection generates an -HTTP request. @code{request} gives the HTTP method and @code{URI} the -associated resource. The analyzer matches the URI against the ones -defined as sensitive, as given above. -@end table - -@emph{Deficiency: As mentioned above, the event engine does not currently generate an @code{http_reply} event. This is for two reasons: first, the HTTP request stream is much lower volume than the HTTP reply stream, and I was interested in the degree to which Bro could get away without analyzing the higher volume stream. (Of course, this argument is shallow, since one could control whether or not Bro should analyze HTTP replies by deciding whether or not to define an @code{http_reply} handler.) Second, matching HTTP replies in their full generality involves a lot of work, because the HTTP standard allows replies to be delimited in a number of ways. That said, most of the work for implementing @code{http_reply} is already done in the event engine, but it is missing testing and debugging.} - -@cindex analyzers, http, event handlers - -@node ident Analyzer, -@section The @code{ident} Analyzer - -@cindex IDENT, analysis - -The @code{ident} analyzer processes traffic associated with -the Identification Protocol [RFC-1413], which provides a simple -service whereby clients can query Ident servers to discover user information -associated with an existing connection between the server's host and -the client's host. Bro instantiates an @code{ident} analyzer for -any connection with service port @code{113/tcp}, providing you have loaded -the @code{ident} analyzer, or defined a handler for @code{ident_request}, -@code{ident_reply}, or @code{ident_error}. - -The analyzer uses a capture filter of ``@code{tcp port 113}'' -(See: @ref{Filtering}). -The @code{ident_reply} handler annotates the @code{addl} -field of the connection for which the Ident client made its query with the -user information returned in the reply. It also checks the user information -against sensitive usernames, because a match indicates that the connection -in the Ident query was initiated by a possibly-compromised account. - -@menu -* ident variables:: -* ident event handlers:: -@end menu - -@node ident variables, -@subsection @code{ident} variables - -@cindex analyzers, ident, variables - -The standard script defines the following pair of redefinable variables: - -@table @samp -@item @code{hot_ident_ids : set[string]} -usernames to flag as sensitive if they appear in an Ident reply. - -Default: @code{always_hot_ids} (See: @ref{hot-ids Analysis Script}). - -@item @code{hot_ident_exceptions : set[string]} -usernames not to consider sensitive even if they appear in -@code{hot_ident_ids}. - -@cindex daemons, as innocuous user names -Default: @code{@{ "uucp", "nuucp", "daemon", @}}. These usernames -are exceptions because daemons sometimes run with the given user ids -and their use is often innocuous. - -@end table - -@cindex analyzers, ident, variables - -@node ident event handlers, -@subsection @code{ident} event handlers - -@cindex analyzers, ident, event handlers - -The standard script handles the following events: - -@table @samp -@item @code{ident_request (c: connection, lport: port, rport: port)} -Invoked when a client request arrives on connection @code{c}, querying -about the connection from local port @code{lport} to remote port -@code{rport}, where local and remote are relative to the client. - -@item @code{ident_reply (c: connection, lport: port, rport: port, user_id: string, system: string)} -Invoked when a server replies to an Ident request. @code{lport} and -@code{rport} are again the local and remote ports (relative to the -client) of the connection being asked about. @code{user_id} is the -user information returned in the Ident server's reply, and @code{system} -is information regarding the operating system (the Ident specification -does not further standardize this information). - -The handler annotates the queried connection with the user information, -which it also checks against @code{hot_ident_ids} and @code{hot_ident_exceptions} -as discussed above. At present, it does nothing with the @code{system} -information. - -@item @code{ident_error (c: connection, lport: port, rport: port, line: string)} -Invoked when the given request yielded an error reply from the Ident -server. The handler annotates the connection with -@code{ident/}@code{<}@emph{error}@code{>}, -where @emph{error} is the text given in @code{line}. - -@end table - -@cindex analyzers, ident, event handlers - -@node irc Analyzer, -@section The @code{irc} Analyzer - -@cindex IRC, analysis - -The @code{IRC} analyzer processes traffic from chat sessions that -use the IRC (Internet Relay Chat) protocol. -It can analyze client-server connections and server-server connections. - -Bro instantiates an @code{IRC} analyzer for any connection with service -ports @code{6666/tcp} or @code{6667/tcp}, -providing you have loaded the @code{IRC} analyzer, or defined a handler -for one of the IRC events. -It it also possible to analyze server connections, but to do so you need -to recompile Bro to include the necessary ports if they are not the -usual ones. - -Bro can analyze compressed connections if it sees the beginning of the -connection. - -@menu -* irc records:: -* irc variables:: -* irc event handlers:: -@end menu - -@node irc records, -@subsection @code{irc} records - -@cindex analyzers, irc, records - -The standard script defines a record for users and one for channels. -This is the user record: -@example -type irc_user: record @{ - u_nick: string; # nick name - u_real: string; # real name - u_host: string; # client host - u_channels: set[string]; # channels user is a member of - u_is_operator: bool; # user is server operator - u_conn: connection; -@} -@end example - -This record represents a user inside the IRC network. -The corresponding fields are: - -@table @samp - -@item @code{u_nick} -The nick name of the user. - -@item @code{u_real} -The real name of the user. - -@item @code{u_host} -This is the client's host name. - -@item @code{u_channels} -A list of channels the user has joined. - -@item @code{u_isOp} -If the user got operator status in the IRC network this will be set to true. - -@item @code{u_conn} -The TCP connection which this IRC connection is based on. - -@end table - -This is the channel record: -@example -type irc_channel: record @{ - c_name: string; # channel name - c_users: set[string]; # users in channel - c_ops: set[string]; # channel operators - c_type: string; # channel type - c_modes: string; # channel modes -@} -@end example - -This record represents a channel inside the IRC network. -The corresponding fields are: - -@table @samp - -@item @code{c_name} -The name of the channel. - -@item @code{c_users} -A list of nick names of users in this channel. - -@item @code{c_ops} -A list of nick names of users with operator status in this channel. - -@item @code{c_type} -The channel type. - -@item @code{c_modes} -The channel modes. -@end table - -@cindex analyzers, irc, records - -@node irc variables, -@subsection @code{irc} variables - -@cindex analyzers, irc, variables - -The standard script defines the following set of redefinable variables: - -@table @samp - -@item @code{IRC::hot_words} -list of regular expressions which will generate notice messages. The -analyzer searches for these patterns in user messages, notices and all -unknown IRC commands. - -@item @code{IRC::ignore_in_other_msgs: set[string]} -list of IRC commands which are ignored in the events for unknown commands. - -@item @code{IRC::ignore_in_other_responses: set[count]} -list of IRC return codes which are ignored in the event for unknown return -codes. - -@end table - -These variables contain information about users and channels which were identified by Bro. - -@table @samp - -@item @code{IRC::users: table[string]} -contains all identified IRC users as @code{irc_user} objects. - -@item @code{IRC::channels: table[string]} -contains all identified IRC channels as @code{irc_channel} objects. - -@end table - -@cindex analyzers, irc, variables - -@node irc event handlers, -@subsection @code{irc} event handlers - -@cindex analyzers, irc, event handlers - -The standard script handles the following events: - -@table @samp - -@item @code{irc_privmsg_message (c: connection, source: string, target: string, message: string)} -A user sent a message to another user or channel. - -@code{IRC} command: PRIVMSG - -The source is the user who sent the message to the target user/channel. -Message contains the data sent to the target. - -@item @code{irc_notice_message (c: connection, source: string, target: string, message: string)} -This is very similar to the irc_privmsg_message. It is typically used by -services or client scripts to send status messages. - -@code{IRC} command: NOTICE - -The source is the user who sent the message to the target user/channel. -Message contains the data sent to the target. - -@item @code{irc_squery_message (c: connection, source: string, target: string, message: string)} -This event is activated if somebody sends a message to an IRC service. - -@code{IRC} command: SQUERY - -The source is the user who sent the message to the target service. -Message contains the data sent to the target. - -@item @code{irc_enter_message (c: connection, nick: string, realname: string)} -Every time a user enters the IRC network this event occurs. - -@code{IRC} command: USER - -Nick contains the selected nick name of the user and realname the user's -name in real life. - -@item @code{irc_quit_message (c: connection, nick: string, message: string)} - -Every time a user quits the IRC network this event occurs. - -@code{IRC} command: QUIT - -Nick contains the nick name of the sender. An optional quit message is included in message. - -@item @code{irc_join_message (c: connection, infoList: irc_join_list)} - -If a user joins one or more IRC channels this event occurs. - -@code{IRC} command: JOIN - -The infoList contains a list of joined channel names and - if provided by -user - the passwords for them. - -@item @code{irc_part_message (c: connection, nick: string, channels: string_set, message: string)} - -If a user exits one or more IRC channels this event occurs. - -@code{IRC} command: PART - -Nick contains the nick name of the user. -Channels is a set of channel names. -If the user supplies a quit message it is included in message. - -@item @code{irc_nick_message (c: connection, who: string, newnick: string)} - -This event occurs when users change their nick names. - -@code{IRC} command: NICK - -Who contains the IRC message prefix which includes the user nick and host. -Newnick is the new nick name of this user. - -@item @code{irc_invalid_nick (c: connection)} - -This event occurs when users change their nick names and the name was invalid. - -@code{IRC} response to: NICK - -@item @code{irc_network_info (c: connection, users: count, services: count, servers: count)} - -This a summary of the status of the whole IRC network. - -@code{IRC} response to: LUSERS - -Users, services and servers are the total number of users, services and IRC servers connected to the IRC network. - -@item @code{irc_server_info (c: connection, users: count, services: count, servers: count)} - -This a summary of an IRC server status. - -@code{IRC} response to: LUSERS - -Users, services and servers are the total number of users, services and IRC servers connected with this IRC server. - -@item @code{irc_channel_info (c: connection, channels: count)} - -Displays the total number of channels. - -@code{IRC} response to: LUSERS - -Channels is the number of IRC channels formed on this server (local + global). - -@item @code{irc_who_message (c: connection, mask: string, oper: bool)} - -The event occurs if an IRC user sent the WHO command to get information about an IRC user or channel. - -@code{IRC} command: WHO - -Mask is the target of the search. This can be a channel or user name, -wildcards are allowed. If oper is true then the user asks only for operator -user results. - -@item @code{irc_who_line (c: connection, target_nick: string, channel: -string, user: string, host: string, server: string, nick: string, params: -string, hops: count, realname: string)} - -This includes several information about an IRC user. - -@code{IRC} response to: WHO - -@code{Target_nick} is the nick name of the IRC user who sent the WHO request. -The username of the returned IRC user is included in @code{user}, his nick -name in @code{nick} and real name in @code{realname}. The client DNS/IP -address is @code{host}. @code{Params} includes the channel parameters for -this user (e.g. "@@" for channel operators). The user is connected to IRC -server @code{server} and the number of servers between him and the requester -is @code{hops}. @code{Channel} includes the channel name which was target -for the request. - -@item @code{irc_whois_message (c: connection, server: string, users: string)} - -The event occurs if an IRC user sent the WHOIS command to get information -about one or more IRC users. - -@code{IRC} command: WHOIS - -If server is given then the user wants this specific server to answer. -Users is comma separated list of nick names for which information is -requested. - -@item @code{irc_whois_user_line (c: connection, nick: string, user: string, host: string, realName: string)} - -This includes several information about an IRC user. - -@code{IRC} response to: WHOIS - -The user with nick name nick has the user name user and his real name is realname. The IRC client runs on host. - -@item @code{irc_whois_operator_line (c: connection, nick: string)} - -This response to an WHOIS command gives information if an IRC user is operator. - -@code{IRC} response to: WHOIS - -The IRC user with nick name nick has operator status. - -@item @code{irc_whois_channel_line (c: connection, nick: string, channels: string_set)} - -This response to an WHOIS command gives information on the channels of an -IRC user. - -@code{IRC} response to: WHOIS - -The IRC user with nick name nick is member in all IRC channels of the -variable channels. - -@item @code{irc_oper_message (c: connection, user: string, password: string)} - -This means that an IRC user requested operator status. - -@code{IRC} command: OPER - -The user and password parameters are used to authenticate the possible -operator. They must fit to the IRCD server settings. - -@item @code{irc_oper_response (c: connection, got_oper: bool)} - -This is the answer to an operator request. - -@code{IRC} response to: OPER - -If the IRC user got operator status the got_oper variable is true. - -@item @code{irc_kick_message (c: connection, prefix: string, channels: string, users: string, comment: string)} - -An user requested to remove somebody from a channel. - -@code{IRC} command: KICK - -Prefix includes the requesters nick name and host. The user requested to -remove the users (comma separated list) from the channels (comma separated -list). If the requester provided an optional kick message it is included -in comment. - -@item @code{irc_error_message (c: connection, prefix: string, message: string)} - -An IRC server sent an error message to one or more clients. - -@code{IRC} command: ERROR - -Prefix includes the server name and message contains the error message. - -@item @code{irc_invite_message (c: connection, prefix: string, nickname: string, channel: string)} - -An IRC user sent an invitation for a closed channel to another user. - -@code{IRC} command: INVITE - -Prefix includes the senders nick and host. The IRC user with the nick name -nickname is invited to the channel with name channel. - -@item @code{irc_mode_message (c: connection, prefix: string, params: string)} - -An IRC user sent an user or channel mode message. - -@code{IRC} command: MODE - -@item @code{irc_squit_message (c: connection, prefix: string, server: string, message: string)} - -This means that the disconnection of a server link was requested. This -command is only available to operators. - -@code{IRC} command: SQUIT - -Prefix includes the requesters nick and host. Server is the host name of -the server to disconnect and message contains an optional comment. - -@item @code{irc_names_info (c: connection, c_type: string, channel: string, users: string_set)} - -This reply to a NAMES command gives information what users are on what -channels. - -@code{IRC} response to: NAMES - -C_type is "@@" for secret, "*" for private and "=" for public channels. -Channel contains the channel name. Users is a list of nick names that are -member of this channel. - -@item @code{irc_dcc_message (c: connection, prefix: string, target: string, dcc_type: string, -argument: string, address: addr, dest_port: count, size: count)} - -An user sent a DCC request to another user to setup a direct connection -between these users. - -@code{IRC} command: PRIVMSG DCC - -Prefix contains the requesters nick and host. Target contains the target -user's nick name. Dcc_type can be "CHAT" for chat connections or "SEND" -for file transfers. Argument contains the file name for file transfers -or "chat" for chat connections. Address and dest_port specify where the -target user should connect. Size is only given for file transfers and -contains the file size in bytes. - -@item @code{irc_request (c: connection, prefix: string, command: string, arguments: string)} - -All client messages that do not fit to the other events are handled here. - -Prefix is usually formated like this: !@@. -Command contains the command string which was sent and arguments the -corresponding argument values. - -@item @code{irc_message (c: connection, prefix: string, command: string, message: string)} - -All server messages that do not fit to the other events are handled here. - -Prefix is usually the server name. Command contains the command string -which was sent and message contains additional parameters. - -@item @code{irc_response (c: connection, prefix: string, code: count, params: string)} - -All server response messages that do not fit to the other events are handled -here. - -Prefix is usually the server name. Code is the numeric reply code and -params contains any additional parameters. - -@end table - -@node login Analyzer, -@section The @code{login} Analyzer -@cindex login session -@cindex Rlogin, sessions -@cindex Telnet, sessions -@cindex Unix analysis -@cindex keystrokes, analysis -@cindex input, analysis -@cindex user keystrokes, analysis -The @code{login} analyzer inspects interactive login sessions -to extract username and password information, and monitors user -keystrokes and the text returned by the login server. It is one of -the most powerful Bro modules for detecting break-ins to Unix -systems because of the ability to look for particular commands that -attackers often execute once they have penetrated a Unix machine. - -The analyzer is generic in the sense that it applies to more -than one protocol. Currently, Bro instantiates a @code{login} -analyzer for both Telnet [RFC-854] and Rlogin [RFC-1282] -traffic. In principle, it could do the same for other protocols such as -SSH [RFC-XXX] or perhaps X11 [RFC-1013], if one could write -the corresponding elements of the event engine to decrypt the -SSH session (naturally, this would require access to the encryption keys) -or extract authentication information and keystrokes from the -X11 event stream. @emph{Note: The analyzer does an exceedingly limited -form of SSH analysis; see @code{hot_ssh_orig_ports} }. - -@cindex authentication dialog -@cindex usernames, extracting -@cindex sniffing -@cindex passwords, sniffing -@cindex heuristics, extracting username information -@cindex Telnet, options -@cindex options, Telnet -For Telnet, the event engine knows how to remove in-band Telnet option -sequences [RFC-855] -from the text stream, and does not deliver these to -the event handlers, except for a few options -that the engine -analyzes in detail (such as attempts to negotiate authentication). -Unfortunately, the Telnet protocol does not include any explicit -marking of username or password information (unlike the FTP protocol, -as discussed in @ref{ftp Analyzer}). Consequently, Bro employs a series -of heuristics that attempt to extract the username and password from the -authentication dialog the session is presumed to begin with. The -analysis becomes quite complicated due to the possible use of -type-ahead and editing sequences by the user, plus the possibility -@cindex evasion, authentication dialog -that the user may be an attacker who attempts to mislead the heuristics -in order to disguise the username they are accessing. - -@cindex rhosts -Analyzing Rlogin is nominally easier than analyzing Telnet because Rlogin -has a simpler in-band option scheme, and because the Rlogin protocol -explicitly indicates the username in the initial connection dialog. -However, this last is not actually a help to the analyzer, because -for most Rlogin servers, if the initial username fails authentication -(for example, is not present in the @code{.rhosts} file local to -the server), then the server falls back on the same authentication -dialog as with Telnet -(prompting for username and then password, or perhaps just -for a password to go with the transmitted username). -Consequently, the event engine employs the same set of heuristics -as for Telnet. - -Each connection processed by the analyzer is in a distinct state: -user attempting to authenticate, user has successfully authenticated, -analyzer is skipping any further processing, or the analyzer is -confused (See: @ref{login analyzer confusion}). You can find out the state of -a given connection using @code{get_login_state}. - -The analyzer uses a capture filter of ``@code{tcp port 23 or tcp port 513}'' -@code{@ref{Filtering}}. It annotates each connection -with the username(s) present in the authentication dialog. If -the username was authenticated successfully, then it encloses -the annotation in quotes. If the authentication failed, then -the name is marked as @code{failed/}@code{<}@emph{username}@code{>}. -So, for example, if user ``smith'' successfully authenticates, -then the connection's @code{addl} field will have -@code{"smith"} appended to it: -@example -931803523.006848 254.377 telnet 324 8891 1.2.3.4 5.6.7.8 SF L "smith" -@end example - -while if ``smith'' failed to authenticate, the report will look like: -@example -931803523.006848 254.377 telnet 324 8891 1.2.3.4 5.6.7.8 SF L fail/smith -@end example - -and if they first tried as ``smith'' and failed, and then succeeded -as ``jones'', the record would look like: -@example -931803523.006848 254.377 telnet 324 8891 1.2.3.4 5.6.7.8 SF L - fail/smith "jones" -@end example - -@cindex passwords, inadvertently exposed -@cindex sensitive information, inadvertently exposed -@emph{Note: The event engine's heuristics can sometimes get out of synch -such that it interprets a password as a username; in addition, users -sometimes type their password when they should instead enter -their username. Consequently, the connection logs sometimes include -passwords in the annotations, and so should be treated as very sensitive -information (e.g., not readable by any user other than the one running -Bro). } - -@menu -* login analyzer confusion:: -* login variables:: -* login functions:: -* login event handlers:: -@end menu - -@node login analyzer confusion, -@subsection @code{login} analyzer confusion -@cindex login analysis, confusion -@cindex confused login analysis -@cindex heuristics, confusion -@cindex confusion of heuristics -@cindex failure of heuristics -@cindex authentication dialog -@cindex usernames, extracting -@cindex heuristics, extracting username information -@cindex rhosts -Because there is no well-defined protocol for Telnet authentication -(or Rlogin, if the initial -@code{.rhosts} authentication fails), the @code{login} analyzer employs a set -of heuristics to detect the username, password, and whether the authentication -attempt succeeded. All in all, these heuristics work quite well, but -it is possible for them to become confused and reach incorrect conclusions. - -Bro attempts to detect such confusion. If it does, then it generates a - event, after which the event engine will no -longer attempt to follow the authentication dialog. In particular, it will -@emph{not} generate subsequent @code{login_failure} or -@code{login_sucess} events. The @code{login_confused} event includes -a string describing the type of confusion, using one of the values -given in the table below. - - -@float Table, Login analyzer confusion -@multitable @columnfractions .35 .55 -@item @strong{Type of confusion} @tab @strong{Meaning} -@item "excessive typeahead" -@tab The user has typed ahead 12 or more lines. Deficiency: The upper bound -should be adjustable. -@item "extra repeat text" -@tab The user has entered more than one VMS repeat sequence (an escape -followed by "[A") on the same line. Note: Bro determines -that a login session involves a VMS server if the server prompts with -"@code{Username:}". It then interprets VMS repeat sequences as indicating -it should replace the current line with the previous line. -@item "multiple USERs" -@tab The user has specified more than one username using the $USER environment -variable. -@item "multiple login prompts" -@tab The analyzer has seen several login prompts on the same line, and has -not seen a corresponding number of lines typed ahead previously by the -user. -@item "no login prompt" -@tab The analyzer has seen 50 lines sent by the server without any of them -matching login prompts. Deficiency: The value of 50 should be adjustable. -@item "no username" -@tab The analyzer is generating an event after having already seen a login -failure, but the user's input has not provided another username to include -with the event. Note: If the analyzer's heuristics indicate it's okay that -no new username has been given, such as when the event is generated -due to one connection endpoint closing the connection, then it instead -uses the username @code{}. -@item "no username2" -@tab The analyzer saw an additional password prompt without seeing an intervening -username, and it has no previous username to reuse. -@item "non empty multi login" -@tab The analyzer saw multiple adjacent login prompts, with an apparently -ignored intervening username typed-ahead between them. -@item "possible login ploy" -@tab The client sent text that matches one of the patterns reflecting text usually -sent by the server. This form of confusion can reflect an attacker attempting -to evade the monitor. For example, the client may have sent the text -"@code{login:} as a username so that when echoed back by the server, the -analyzer would misinterpret it as reflecting another login prompt from -the server. -@item "repeat without username" -@tab The user entered a VMS repeat sequence but there is no username to -repeat. (See extra repeat text for a discussion of the analyzer's -heuristics for dealing with VMS servers.) -@item "responder environment" -@tab The responder (login server) has signaled a set of environment variables -to the originator (login client). This is in the opposite direction as to what -makes sense. -@item "username with embedded repeat" -@tab The line repeated by a VMS server in response to a repeat sequence itself -contains a repeat sequence. -@end multitable -@caption{Different types of confusion that login analyzer can report} -@end float - -@node login variables, -@subsection @code{login} variables - -@cindex analyzers, login, variables - -The standard script defines a large number of variables for refining the -analysis policy: - -@table @samp -@item @code{input_trouble : pattern} -lists patterns that the analyzer -should flag if they appear in the user's input (keystroke) stream. - -@cindex user keystrokes, editing -@cindex keystrokes, editing -@cindex input, editing -The analyzer searches for these patterns both in the raw text typed -by the user and the same lines after applying @emph{editing} -using the @code{edit} function twice: once with interpreting -@emph{BS} (ctrl-H) as delete-one-character, and once with @emph{DEL} -as the edit character. If any of these matches, then the analyzer -considers the pattern to have matched. - -@code{eggdrop} -@cindex root, backdoors -@cindex Internet Relay Chat (IRC), attacker subpopulation -@cindex exploits, Unix -Default: a pattern matching occurrences of the strings -``@code{rewt}'', -``@code{eggdrop}'', -``@code{loadmodule}'', or -``@code{/bin/eject}''. The first of these is a popular username attackers -use for root backdoor accounts. The second reflects that one prevalent -class of attackers are devotees of Internet Relay Chat (IRC), who -frequently upon breaking into an account install the IRC @code{eggdrop} -utility. - -@item @code{edited_input_trouble : pattern} -is the same as @code{input_trouble} except the analyzer only checks the edited -user input against the pattern, not the raw input (see above). - -This variable is provided so you can specify patterns that can -occur innocuously as typos; whenever the user corrects the typo before -terminating the line, the pattern won't match, because it won't be present -in the edited version of the line. In addition, for matches to -these patterns, the analyzer @emph{delays} reporting the match until -it sees the next line of output from the server. It then includes -both the line that triggered the match and the corresponding response -from the server, which makes it easy for a human inspecting the logs -to tell if the occurrence of the pattern was in fact innocuous. - -@cindex filenames, sensitive -@cindex directory names, sensitive -@cindex sensitive filenames -Here's an example of an innocuous report: -@example -936723303.760483 1.2.3.4/21550 > 5.6.7.8/telnet - input "cd ..." yielded output "ksh: ...: not found." -@end example - -It was flagged because the user's input included -``@code{...}'', a name commonly used by attackers to surreptitiously -hide a directory containing their tools and the like. However, we -see from the Telnet server's response that this was not actual access -to such a directory, but merely a typing mistake. - -On the other hand: -@example -937528764.579039 1.2.3.4/3834 > 5.6.7.8/telnet - input "cd ..." yielded output "maroon# ftp - sunspot.sunspot.noao.edu " -@end example - -shows a problem---the lines returned by the server was a root -prompt (``@code{maroon@code{#}}''), to which the user issued a command to -access a remote FTP server. - -@emph{Deficiency: The analyzer should decouple the notion of waiting to receive the server's reply from the notion of matching only the edited form of the line; there might be raw inputs for which it is useful to see the server's response, and edited inputs for which the server's response is unimportant in terms of knowing that the input spells trouble. } - -Default: the pattern -@example - /[ \t]*cd[ \t]+((['"]?\.\.\.)|(["'](\.[^"']*)[ \t]))/ -@end example - -which looks for a ``@code{cd}'' command to either a directory beginning -with ``@code{...}'' (optionally quoted by the user) or a directory -name beginning with ``@code{.}'' that is quoted and includes an -embedded blank or tab. - -@item @code{output_trouble : pattern} -lists patterns that -the analyzer should flag if they occur in the output sent by the -login server back to the user. - -@cindex buffer overflow tools -@cindex exploits, buffer overflow -@cindex sniffer logs -@cindex trojaning -@cindex Linux, super exploit -@cindex smurf attacks -@cindex attacks, smurf -@cindex log file, altering -@cindex altering log files -@code{PATH_UTMP sensitive pattern} -@code{smashdu.c exploit tool} -@cindex root, setuid -@cindex setuid root -@cindex command shell, setuid root -@cindex ls -@cindex utilities, ls -@cindex lynx utility -@cindex utilities, lynx -@cindex fetch utility -@cindex utilities, fetch -@cindex anticode.com -@cindex TFreak -Default: the pattern -@example - /^-r.s.*root.*\/bin\/(sh|csh|tcsh)/ - | /Jumping to address/ - | /smashdu\.c/ - | /PATH_UTMP/ - | /Log started at =/ - | /www\.anticode\.com/ - | /smurf\.c by TFreak/ - | /Trojaning in progress/ - | /Super Linux Xploit/ -@end example - -The first of these triggers any time the user inspects with the -@emph{ls} utility an executable whose pathname ends in @code{/bin/} followed -by one of the popular command shells, and the @emph{ls} output shows -that the command shell has been altered to be setuid to root. -The remainder match either the output generated by some popular -exploit tools (for example, ``@code{Jumping to address}'', present -in many buffer overflow exploit tools), exploit tool names (``@code{smashdu.c}''), -text found within the tool source code (``@code{smurf.c by TFreak}''), -or URLs accessed (say via the @emph{lynx} or @emph{fetch} utilities) -to retrieve attack software (``@code{www.anticode.com}''). - -@cindex backdoor, prompts -@item @code{backdoor_prompts : pattern} -lists patterns that -the analyzer should flag if they are seen as the first line sent by the -server to the user, because they often correspond with -backdoors that offer a remote user immediate command shell access -without having to first authenticate. - -Default: the pattern ``@code{/^[!-~]*( ?)[#%$] /}'', which matches -a line that begins with a series of printable, non-blank characters and -ends with a likely prompt character, with a blank just after -the prompt character and perhaps before it. - -@cindex backdoor, avoiding false positives -@item @code{non_backdoor_prompts : pattern} -lists patterns -that if a possible backdoor prompt also matches, then the analyzer -should not consider the server output as indicating a backdoor prompt. -Used to limit false positives for @code{backdoor_prompts}. - -Default: the pattern ``@code{/^ *#.*#/}'', which catches lines with -more than one occurrence of a @code{#}. Some servers generate such -lines as part of their welcome banner. - -@cindex backdoor, triggered by terminal type -@cindex magic terminal types -@item @code{hot_terminal_types : pattern} -lists ``magic'' -terminal types sometimes used by attackers to access backdoors. -Both Telnet and Rlogin have mechanisms for negotiating a terminal -type (name; e.g., ``@code{xterm}''); these backdoors trigger and skip -authentication if the name has a particular value. - -@code{VT666} -Default: the name ``@code{VT666}'', one of the trigger terminal types -we've observed in practice. - -@cindex backdoor, triggered by ephemeral port -@cindex ephemeral port, triggering a backdoor -@cindex client port, triggering a backdoor - -@item @code{hot_telnet_orig_ports : set[port]} -Some Telnet backdoors trigger if the ephemeral port used by the client side of the connection -happens to be a particular value. This variable is used to list the -port values whose use should be considered as possibly indicating -a backdoor. @emph{Note: Clearly, this mechanism can generate false -positives when the client by chance happens to choose one of the -listed ports.} - -Default: @code{53982/tcp}, one of the trigger ports we have observed -in practice. - -@emph{Deficiency: There should be a corresponding variable for Rlogin backdoors triggered by a similar mechanism. } - -@item @code{hot_ssh_orig_ports : set[port]} -Similar to @code{hot_telnet_orig_ports}, only for SSH. - -Default: @code{31337/tcp}, a trigger port that we've observed in practice. - -@item @code{skip_authentication : set[string]} -A set of strings -that, if present in the server's initial output (i.e., its welcome banner), -indicates the analyzer should not attempt to analyze the session for an -authentication dialog. This is used for servers that provide public -access and don't bother authenticating the user. - -Default: the string @code{"WELCOME TO THE BERKELEY PUBLIC LIBRARY"}, -which corresponds to a frequently accessed public server in the -Berkeley area. (Obviously, we include this default as an example, -and not because it will be appropriate for most Bro users! But it -does little harm to include it.) - -@emph{Deficiency: It would be more natural if this variable and a number of others listed below were of type @code{pattern} rather than @code{set[string]}. They are actually converted internally by the event engine into regular expressions. } - -@item @code{direct_login_prompts : set[string]} -A set of strings -that if seen during the authentication dialog mean that the user will -be logged in as soon as they answer the prompt. - -Default: @code{"TERMINAL?"}, a prompt used by some terminal servers. - -@code{login_prompts : set[string]} -A set of strings corresponding to login username prompts during an authentication -dialog. - -Default: the strings -@example - Login: - login: - Name: - Username: - User: - Member Name -@end example - -and the default contents of @code{direct_login_prompts}. - -@item @code{login_failure_msgs : set[string]} -A set of strings -that if seen in text sent by the server during the authentication dialog -correspond to a failed login attempt. - -Default: the strings -@example - invalid - Invalid - incorrect - Incorrect - failure - Failure, - User authorization failure, - Login failed, - INVALID - Sorry, - Sorry. -@end example - -@item @code{login_non_failure_msgs : set[string]} -A set of strings -similar to @code{login_failure_msgs} that if present mean that the -server text does not actually correspond to an authentication failure -(i.e., if @code{login_failure_msgs} also matches, it's a false -positive). - -Default: the strings -@example - Failures - failures - failure since last successful login - failures since last successful login -@end example - -@item @code{router_prompts : set[string]} -A set of strings -corresponding to prompts returned by the local routers when a -user successfully authenticates to the router. -For the purpose of this variable, see the next variable. - -Default: empty. - -@item @code{login_success_msgs : set[string]} -A set of strings -that if seen in text sent by the server during the authentication dialog -correspond to a successful authentication attempt. - -Default: the strings -@example - Last login - Last successful login - Last successful login - checking for disk quotas - unsuccessful login attempts - failure since last successful login - failures since last successful login -@end example - -and the default contents of the @code{router_prompts} variable. - -@emph{Deficiency: Since by default @code{router_prompts} is empty, this last inclusion does nothing. In particular, if you redefine @code{router_prompts} then @code{login_success_msgs} will @emph{not} pick up the change; you will need to redefine it to (again) include @code{router_prompts}, using: @w{redef login_success_msgs += router_prompts}. This is clearly a misfeature of Bro and will be fixed one fine day. } - -@item @code{login_timeouts : set[string]} -A set of strings that if seen in text sent by the server during the authentication dialog -correspond to the server having timed out the authentication attempt. - -Default: the strings -@example - timeout - timed out - Timeout - Timed out - Error reading command input -@end example - -(This last is returned by the VMS operating system.) - -@item @code{non_ASCII_hosts : set[addr]} -A set of addresses corresponding to hosts whose login servers do not (primarily) use -7-bit ASCII. The analyzer will not attempt to analyze authentication -dialogs to such hosts, and will not complain about huge lines -generated by either the sender or receiver (per @code{excessive_line}). - -Default: empty. - -@item @code{skip_logins_to : set[addr]} -A set of addresses corresponding to hosts for which the analyzer should not attempt -to analyze authentication dialogs. - -Default: the (empty) contents of @code{non_ASCII_hosts}. - -@item @code{always_hot_login_ids : set[string]} A set of usernames -that the analyzer should always flag as sensitive, even if they're seen in -a session for which the analyzer is @emph{confused} @ref{login analyzer confusion}. - -Default: the value of @code{always_hot_ids} defined by the -@code{hot} analyzer. - -@item @code{hot_login_ids : set[string]} -A set of usernames that the analyzer should flag as sensitive, unless it sees them -in a session for which the analyzer is @emph{confused} -(See: @ref{login analyzer confusion}). - -Default: the value of @code{hot_ids} defined by the -@code{hot-ids} analyzer. - -@cindex rhosts -@item @code{rlogin_id_okay_if_no_password_exposed : set[string]} -A set of username exceptions to @code{hot_login_ids} which the -analyzer should not flag as sensitive if the user authenticated without -exposing a password (so, for example, via @code{.rhosts}). - -Default: the username @code{"root"}. - -@end table - -@cindex analyzers, login, variables - -@node login functions, -@subsection @code{login} functions - -@cindex analyzers, login, functions - -The standard @code{login} script provides the following functions for external use: - -@table @samp -@item @code{is_login_conn (c: connection): bool } -Returns true if the given connection is one analyzed by @code{login} -(currently, Telnet or Rlogin), false otherwise. - -@item @code{hot_login (c: connection, msg: string, tag: string) } -Marks the given connection as hot, logs the given message, and -demultiplexes @code{demux} the subsequent server-side contents of the -connection to a filename based on @code{tag} and the client-side -to a filename based on the name @code{"keys"}. No return value. - -@item @code{is_hot_id (id: string, successful: bool, confused: bool): bool} -Returns true if the username id should be considered sensitive, -given that the user either did or did not successfully authenticate, -and that the analyze was or was not in a @emph{confused} state -(See: @ref{login analyzer confusion}). - -@item @code{is_forbidden_id (id: string): bool } -Returns true if the username id is present in -@code{forbidden_ids} or @code{forbidden_id_patterns}. - -@item @code{edit_and_check_line (c: connection, line: string, successful: bool): check_info} -Tests whether the given line of text seen on connection @code{c} includes -a sensitive username, after first applying @emph{BS} and @emph{DEL} -keystroke editing (see: @ref{login variables}). @code{successful} should -be true if the user has successfully authenticated, false otherwise. - -The return value is a @code{check_info} record, which contains four -@code{check_info} -fields: -@table @samp -@item @code{expanded_line} -All of the different editing interpretations of the line, separated -by commas. For example, if the original line is -@quotation -@code{"@code{rob<}@emph{DEL}@code{><}@emph{BS}@code{><}@emph{BS}@code{>ot}"} -@end quotation -then the different editing interpretations are -@code{"@code{ro<}@emph{BS}@code{><}@emph{BS}@code{>ot}"} -and @code{"root"}, so the return value will be: -@quotation -@code{"@code{rob<}@emph{DEL}@code{><}@emph{BS}@code{><}@emph{BS}@code{>ot},@code{ro<}@emph{BS}@code{><}@emph{BS}@code{>ot},root"} -@end quotation - -@emph{Deficiency: Ideally, these values would be returned in a list of some form, so that they can be accessed separately and unambiguously. The current form is really suitable only for display to a person, and even that can be quite confusing if @code{line} happens to contain commas already. @emph{Or}, perhaps an algorithm of ``simply pick the shortest'' would find the correct editing every time anyway.} - -@item @code{hot: bool} -True if any editing sequence resulted in a match against a sensitive username. - -@item @code{hot_id: string} -The version of the input line (with or without editing) that was considered -hot, or an empty string if none. - -@item @code{forbidden: bool} -True if any editing sequence resulted in a match against a username considered -``forbidden'', per @code{is_forbidden_id}. - -@end table - -@item @code{edit_and_check_user (c: connection, user: string, successful: bool, fmt_s: string): bool} -Tests whether the given username used for authentication on connection @code{c} -is sensitive, after first applying @emph{BS} and @emph{DEL} -keystroke editing (See: @ref{login variables}). @code{successful} should be -true if the user has successfully authenticated, false otherwise. - -@code{fmt_s} is a @code{fmt} format specifying how the username -information should be included in the connection's -@code{addl} field. It takes two @code{string} parameters, the current value of the -field and the expanded version of the username as described in @code{expanded_line}. - -If @code{edit_and_check_line} indicates that the username is sensitive, -then @code{edit_and_check_user} records the connection into its own -demultiplexing files . If the username is @emph{forbidden}, -then unless the analyzer is confused, we attempt to terminate the -connection using @code{terminate_connection}. - -@cindex connection, hot -@cindex hot connections -Returns true if the connection is now considered ``hot,'' either -due to having a sensitive username, or because it was hot upon -entry to the function. - -@cindex connection, hot -@cindex hot connections -@item @code{edit_and_check_password(c: connection, password: string): bool} -Checks the given password to see whether it contains a sensitive username. -If so, then marks the connection as hot and logs the sensitive password. -No return value. - -@emph{Note: The purpose of this function is to catch instances in which the -event engine becomes out of synch with the authentication dialog and mistakes -what is, in fact, a username being entered, for a password being entered. -Such confusion can come about either due to a failure of the event -engine's heuristics, or due to deliberate manipulation of the event -engine by an attacker. } - -@end table - -@cindex analyzers, login, functions - -@node login event handlers, -@subsection @code{login} event handlers - -@cindex analyzers, login, event handlers - -The standard @code{login} script handles the following events: - -@cindex rhosts -@table @samp -@item @code{login_failure (c: connection, user: string, client_user: string, password: string, line: string)} -Invoked when the event engine has seen a failed attempt to authenticate -as @code{user} with @code{password} on the given connection @code{c}. -@code{client_user} is the user's username on the client side of the -connection. For Telnet connections, this is an empty string, but -for Rlogin connections, it is the client name passed in the initial -authentication information (to check against -@code{.rhosts}). @code{line} is the -line of text that led the analyzer to conclude that the authentication -had failed. - -The analyzer first generates an @code{account_tried} -event to facilitate detection of password guessing, and then checks for -a sensitive username or password. If the username was not sensitive -and the password is empty, then no further analysis is applied, since -clearly the attempt was half-hearted and aborted. Otherwise, the -analyzer annotates the connection's @code{addl} -field with @code{fail/@code{<}@emph{username}@code{>}} to mark the -authentication failure, and also checks the @code{client_user} to -see if it is sensitive. If we then find that the connection is -hot, the analyzer logs a message to that effect. - -@item @code{login_success (c: connection, user: string, client_user: string, password: string, line: string)} -Invoked when the event engine has seen a successful attempt to authenticate. -The parameters are the same as for @code{login_failure}. - -The analyzer invokes @code{check_hot} with mode @code{APPL_ESTABLISHED} -since the application session has now been established. It generates -an @code{account_tried} -event to facilitate detection of password guessing, and then checks for -a sensitive username or password. The event engine uses the special -password @code{"@code{<}none@code{>}"} to indicate that no password -was exposed, and this mitigates the sensitivity of logins using particular -usernames per @code{rlogin_id_okay_if_no_password_exposed}. - -The analyzer annotates the connection's @code{addl} -field with @code{"@code{<}@emph{username}@code{>}"} to mark the -successful authentication. Finally, if we then find that the connection -is hot, the analyzer logs a message to that effect. - -@item @code{login_input_line (c: connection, line: string)} -Invoked for every line of text sent by the client side of the login -session to the server side. The analyzer matches the text against -@code{input_trouble} and @code{edited_input_trouble} and invokes -@code{hot_login} with a tag of @code{"trb"} if it sees a match, -which will log a notice concerning the connection. However, this -invocation is only done while the connection's @code{hot} -field count is <= 2, to avoid cascaded notices when an attacker gets -really busy and steps on a lot of sensitive patterns. - -@item @code{login_output_line (c: connection, line: string)} -Invoked for every line of text sent by the server side of the login -session to the client side. The analyzer checks @code{backdoor_prompts} - and any pending input notices that -were waiting on the server output, per @code{edited_input_trouble}. -These last are then logged unless the output matched the pattern: -@example - /No such file or directory/ -@end example - -@emph{Deficiency: Clearly, this pattern should not be hardwired but instead specified by a redefinable variable. } - -Finally, if the line is not too long and the text matches @code{output_trouble} -and the connection's @code{hot} -field count is <= 2 (to avoid cascaded notices), the analyzer -invokes @code{hot_login} with a tag of @code{"trb"}. -@emph{Deficiency: ``Too long'' is hardwired to be a length $\ge 256$ bytes. It, too, should be specifiable via a redefinable variable. } -Note: We might -wonder if not checking overly long lines presents an evasion threat: the -attacker can bury their access to a sensitive string in an excessive line -and thus avoid detection. While this is true, it doesn't appear to cost -much. First, some of the sensitive patterns are generated in server output -that will be hard to manipulate into being overly long. Second, if the -attacker is trying to avoid detection, there are easier ways, such as -passing their output through a filter that alters it a good deal. - -@item @code{login_confused (c: connection, msg: string, line: string)} -Invoked when the event engine's heuristics have concluded that they -have become confused and can no longer correctly track the authentication -dialog (See: @ref{login analyzer confusion}). -@code{msg} gives the particular problem the heuristics detected -(for example, @code{multiple_login_prompts} means that the engine saw -several login prompts in a row, without the type-ahead from the client side -presumed necessary to cause them) and @code{line} the line of text that -caused the heuristics to conclude they were confused. - -Once declaring that it's confused, the event engine will no longer attempt -to follow the authentication dialog. In particular, it will @emph{not} -generate subsequent @code{login_failure} or @code{login_success} events. - -Upon this event, the standard -@code{login} script invokes @code{check_hot} with -mode @code{APPL_ESTABLISHED} since it could well be that the application -session is now established (it can't know for sure, of course, because -the event engine has given up). It annotates the connection's - @code{addl} field with -@code{confused}@code{<}@emph{line}@code{>} to mark the confused state, -and then logs to the @file{weird} file the particulars of the -connection and the type of confusion (@code{msg}). @emph{Deficiency: This should be done by generating a @emph{weird}-related event instead. } - -Finally, the analyzer invokes @code{set_record_packets} to specify -that all of the packets associated with this connection should be recorded -to the @file{trace} file. -@emph{Note: For the current @code{login} analyzer, this call is not needed---it -records every packet of every login session anyway, because the generally -philosophy is that Bro should record whatever it analyzes, so that the -analysis may be repeated or examined in detail. Since the current analyzer -looks at every input and output line via @code{login_input} and @code{login_output}, it records all of the packets of every such analyzed session. -There is commented-out text in @code{login_success} to be used if -@code{login_input} and @code{login_output} are not being used; it turns -off recording of a session's packets after the user has successfully logged -in (assuming the connection is not considered hot).} - -@item @code{login_confused_text (c: connection, line: string)} -Invoked for every line the user types after the event engine has -entered the @emph{confused} state. If the connection is not already -considered hot, then the analyzer checks for the presence of sensitive -usernames in the line using @code{edit_and_check_line}, and, if -present, annotates the connection's @code{addl} field -with -@code{confused}@code{<}@emph{line}@code{>}, logs that the connection -has become hot, and invokes @code{set_record_packets} to record -to the @file{trace} file all of the packets associated with the connection. - -@item @code{login_terminal (c: connection, terminal: string)} -Invoked when the client transmits a terminal type to the server. -The mechanism by which the client transmits the type depends on the -underlying protocol (Rlogin or Telnet). - -The handler checks the terminal type against @code{hot_terminal_types} -and if it finds a match invokes @code{hot_login} with a tag of -@code{"trb"}. - -@cindex tunneling -@cindex evasion, using tunneling -@cindex Napster, tunneled over Telnet or Rlogin -@cindex excessively long lines -@item @code{excessive_line (c: connection)} -Invoked when the event engine observes a very long line sent by either -the client or the server. Such long lines are seen as potential attempts -by an attacker to evade the @code{login} analyzer; or, possibly, as -a Login session carrying an unusual application. @emph{Note: One example -we have observed occurs when a high-bandwidth binary payload protocol such -as Napster is sent over the Telnet or Rlogin well-known port in an -attempt to either evade detection or tunnel through a firewall.} - -@cindex Network Virtual Terminal (NVT) -@cindex NVT (Network Virtual Terminal) -This event is actually generic to any TCP connection carrying -an application that uses the ``Network Virtual Terminal'' (NVT) abstraction, -which presently comprises Telnet and FTP. But the only handler defined -in the demonstration Bro policy is for Telnet, hence we discuss it here. -For this reason, the handler first invokes @code{is_login_conn} -to check whether the connection is in fact a login session. If so, then -if the connection is not hot, and if the analyzer finds the server -listed in @code{non_ACSII_HOSTS}, then it presumes the long line -is due to use of a non-ASCII character set; the analyzer invokes -@code{set_login_state} and @code{set_record_packets} to avoid -further analysis or recording of the connection. - -Otherwise, if the connection is still in the authentication dialog, then -the handler generates a event with a -confusion-type of @code{"excessive_line"}, and changes the connection's -state to @emph{confused}. - -@emph{Deficiency: The event engine is currently hardwired to consider a line of >= 1024 bytes as ``excessive''; clearly this should be user-redefinable. } - -@cindex NVT options, inconsistent -@cindex Telnet, options, inconsistent -@item @code{inconsistent_option (c: connection)} -NVT options are specified by the client and server stating which options -they are willing to support vs. which they are not, -and then instructing one another -which in fact they should or should not use for the current connection. -If the event engine sees a peer violate either what the other peer has -instructed it to do, or what it itself offered in terms of options in -the past, then the engine generates an @code{inconsistent_option} event. - -The handler for this event simply records an entry about it to the - file. @emph{Deficiency: The event handler invocation does not include enough information to determine what option was inconsistently specified; in addition, it would be convenient to integrate the handling of problems like this within the general ``weird'' framework. } - -Note: As for @code{excessive_line} above, this event is actually a -generic one applicable to any NVT-based protocol. It is handled here -because the problem most often crops up for Telnet sessions. -Note: Also, the handler does not check to see whether the connection -is a login session (as it does for @code{excessive_line}); it serves -as the handler for any NVT session with an excessive line. - -Note: Finally, note that this event can be generated if the session -contains a stream of binary data. One way this can occur is when -the session is encrypted but Bro fails to recognize this fact. -@cindex encryption, leading to ``excessive lines'' - -@cindex NVT options, bad -@cindex Telnet, options, bad -@item @code{bad_option (c: connection)} -If an NVT option is either ill-formed (e.g., a bad length field) or -unrecognized, then the analyzer generates this event. - -The processing of this event (recording information to the -file) and the various notes and deficiencies associated with it are -the same as those for @code{inconsistent_option} above. - -@cindex NVT options, bad termination -@cindex Telnet, options, bad termination -@item @code{bad_option_termination (c: connection)} -If an NVT option fails to be terminated correctly (for example, -a character is seen within the option that is disallowed for use -in the option), then the analyzer generates this event. - -The processing of this event (recording information to the -file) and the various notes and deficiencies associated with it are -the same as those for @code{inconsistent_option} above. - -@cindex NVT options, authentication -@cindex Telnet, options, authentication -@cindex authentication, accepted -@item @code{authentication_accepted (name: string, c: connection)} -The NVT framework includes options for negotiating authentication. -When such an option is sent from client to server and the server -replies that it accepts the authentication, then the event engine -generates this event. - -The handler annotates the connection's @code{addl} field -with -@code{auth}@code{<}@emph{name}@code{>}, -unless that annotation is already present. - -@cindex NVT options, authentication -@cindex Telnet, options, authentication -@cindex authentication, rejected -@item @code{authentication_rejected (name: string, c: connection)} -The same as @code{authentication_accepted}, except invoked when the -server replies that it rejects the attempted authentication. - -The handler annotates the connection's @code{addl} field -with @code{auth-failed}@code{<}@emph{name}@code{>}. - -@cindex authentication, skipped -@item @code{authentication_skipped (c: connection)} -Invoked when the event engine sees a line in the authentication dialog -that matches . - -The handler annotates the connection's @code{addl} field -with `` @code{skipped}'' -to mark that authentication was skipped, -and then invokes @code{skip_further_processing} and (unless the -connection is hot) @code{set_record_packets} to skip any further -analysis of the connection, and to stop recording its packets to -the @file{trace} file. - -@item @code{connection_established (c: connection)} -@code{connection_established} is a generic -event generated for all TCP connections; however, the @code{login} analyzer -defines an additional handler for it. - -The handler first checks (via @code{is_login_conn}) whether this is a Telnet -or Rlogin connection. If so, it generates an @code{authentication_skipped} - event if the server's address occurs -in @code{skip_logins_to}, and also (for Telnet) checks whether the -client's port occurs in @code{hot_telnet_orig_ports}, invoking @code{hot_login} - with the tag @code{"orig"} if it does. - -For SSH connections, it likewise checks the client's port, but -in @code{hot_ssh_orig_ports}, marking the connection as hot and -logging a real-time notice if it is. - -@item @code{partial_connection (c: connection)} -As noted earlier, @code{partial_connection} is a generic -event generated for all TCP connections. The @code{login} analyzer -also defines a handler for it, one which (if it's a Telnet/Rlogin -connection) sets the connection's state to @emph{confused} and -checks for @code{hot_telnet_orig_ports}. - -@cindex NVT options, encryption -@cindex Telnet, options, encryption -@cindex encrypted login sessions -@item @code{activating_encryption (c: connection)} -The NVT framework includes options for negotiating encryption. When such -a series of options is successfully negotiated, the event engine generates -this event. @emph{Note: The negotiation sequence is complex and can fail at a number of points. The event engine does not attempt to generate events for each possible failure, but instead only looks for the option sent after a successful negotiation sequence. } - -The handler annotates the connection's @code{addl} field -with ``@code{(encrypted)}'' to mark that authentication was encrypted. -@emph{Note: The event engine itself marks the connection as requiring no further processing. This is done by the event engine rather than the handler because the event engine cannot do its job (regardless of the policy the handler might desire) in the face of encryption. } - -@end table - -@cindex analyzers, login, event handlers - -@node pop3 Analyzer, -@section The @code{pop3} Analyzer -The @code{pop3} analyzer does a protocol analysis of the Post Office -Protocol - Version 3. - -When Bro runs with the pop3 Analyzer, it processes all packets with -destination port 110/tcp, generating a log file @code{pop3.log}. Each line -contains a timestamp, a connection ID, the originator and responder IP -addresses, and the message sent. The message consists of the command and -arguments on client side, and the status on server side. - -@menu -* pop3 pop3_session_info record:: -* pop3 variables:: -* pop3 event handlers:: -@end menu - -@node pop3 pop3_session_info record, -@subsection The @code{pop3_session_info} record - -@cindex pop3, session information - -The @code{pop3} analyzer maintains a @code{pop3_session_info} record per -@code{pop3} connection: - -@example -type pop3_session_info: record @{ - id: count; # Unique session ID. - quit_sent: bool; # Client issued a QUIT. - last_command: string; # Last command of client. -@}; -@end example - -The corresponding fields are: - -@table @samp -@item @code{id} -The unique session identifier assigned to this session. Sessions -are numbered starting at @code{1} and incremented with each new session. - -@item @code{quit_sent} -True if the client has sent a QUIT command. - -@item @code{last_command} -Last command issued by the client. - -@end table - -@node pop3 variables, -@subsection @code{pop3} variables -@table @samp -@item @code{pop_connections: table[conn_id] of pop3_session_info} -This table contains all active POP3-sessions indexed by their Connection IDs. -As soon as the TCP Connection terminates or expires, they are deleted. -@item @code{pop_connection_weirds: table[addr] of count &default=0 &create_expire = 5 mins} -This table contains all the POP3-session originators for which unexpected behavior was recorded. -@item @code{error_threshold: count = 3} -This variable contains a threshold for the maximum number of negative status -indicators per originator received from a server. It is used for recognizing -potential abuses, e.g., trial and error password guessing attacks. -@item @code{ignore_commands: set[string] } -Set of commands to ignore while generating the log file. -@end table - -@node pop3 event handlers, -@subsection @code{pop3} event handlers -@table @samp -@item @code{pop3_request(c: connection, is_orig: bool, command: string, arg: string)} -Generated for each valid command sent from the client -to the server. -@item @code{pop3_reply(c: connection, is_orig: bool, cmd: string, msg: string) } -Generated for each server reply containing a valid status indicator. -@item @code{pop3_data(c: connection, is_orig: bool, data: string) } -Generated for every data line sent by the server as a reply to the client, -including commands that yield multi-line answers. -@item @code{pop3_unexpected(c: connection, is_orig: bool, msg: string, detail: string) } -Generated when something semantically unexpected has happened. -@item @code{pop3_login_success(c: connection, is_orig: bool, user: string, password: string)} -Generated when a user authenticates successfully. -The password may be empty if it has not been observed. -@item @code{pop3_login_failure(c: connection, is_orig: bool, user: string, password: string)} -Generated when a user fails to authenticate correctly. -@end table - -@node portmapper Analyzer, -@section The @code{portmapper} Analyzer -@cindex remote procedure call (RPC) -@cindex RPC (Remote Procedure Call) -The @code{portmapper} analyzer monitors one particularly -important form of remote procedure call (RPC) [RFC-1831, RFC-1832] -traffic: the portmapper service, used to map between RPC program (and -version) numbers and the TCP or UDP port on which the service runs for a -particular host. For example, @emph{rstatd} is an RPC service that provides -``remote host status monitoring'' so that a set of hosts can be informed -when any of them reboots. @emph{rstatd} has been assigned a standard -RPC program number of 100002. To find out the corresponding TCP or UDP -port on a given host, a remote host would usually first contact the -portmapper RPC service running on the host and request the port -corresponding to program 100002. - -@float Table, Calls to RPC portmapper service -@multitable @columnfractions .15 .55 -@item @strong{Call} @tab @strong{Meaning} -@item NULL -@tab A do-nothing call typically provided by all RPC services. -@item GETPORT -@tab Look up the port associated with a given RPC program. -@item SET -@tab Add a new port mapping (or replace an existing mapping) for an RPC program. -@item UNSET -@tab Remove a port mapping. -@item DUMP -@tab Retrieve all of the RPC program mappings. -@item CALLIT -@tab Both look up a program and then directly call it. -@end multitable -@caption{Types of calls to the RPC portmapper service} -@end float - -All in all, clients can make six different types of calls to the portmapper, -as summarized in the above table. -Attackers often use -GETPORT and DUMP to see whether a host may be running an RPC service -vulnerable to a known exploit. - -The analyzer uses a capture filter of ``@code{port 111}'' (See: @ref{Filtering}), -equivalent to ``@code{tcp port 111 or udp port 111}'' (since the portmapper -service ordinarily accepts calls using either TCP or UDP, both on port 111). -It checks the different types of portmapper calls against policies -expressed using a number of different variables. - -@emph{Note: An important point not to overlook is that an attacker does @emph{not} have to first call the portmapper service in order to call an RPC program. They might instead happen to know the port on which the service runs @emph{a priori}, since for example it may generally run on the same port for a particular operating system; or they might scan the host's different TCP or UDP ports directly looking for a reply from the service. Thus, while portmapper monitoring proves very useful in detecting attacks, it does @emph{not} provide comprehensive monitoring of attempts to exploit RPC services. } - -@menu -* portmapper variables:: -* portmapper functions:: -* portmapper event handlers:: -@end menu - -@node portmapper variables, -@subsection @code{portmapper} variables - -@cindex analyzers, portmapper, variables - -The standard script provides the following redefinable variables: - -@table @samp -@item @code{rpc_programs : table[count] of string} -Maps RPC program numbers to a string used to name the service. -For example, the @code{[100002]} entry is mapped to @code{"rstatd"}. - -Default: a large list of RPC services. - -@cindex NFS (Network File System) -@cindex Network File System (NFS) -@item @code{NFS_services : set of string} -Lists the names of those RPC services that correspond to -Network File System (NFS) [RFC-1094, RFC-1813] services. This -variable is provided because it is convenient to express policies -specific to accessing NFS file systems. - -Default: the services @emph{mountd}, @emph{nfs}, @emph{pcnfsd}, -@emph{nlockmgr}, @emph{rquotad}, @emph{status}. - -@emph{Deficiency: Bro's notion of NFS is currently confined to just knowledge of the existence of these services. It does not analyze the particulars of different NFS operations. } - -@item @code{RPC_okay : set[addr, addr, string]} -Indexed by the host providing a given service and then by the host -accessing the service. If an entry is present, it means that the -given access is allowed. For example, an entry of: -@example - [1.2.3.4, 5.6.7.8, "rstatd"] -@end example - -means that host @code{5.6.7.8} is allowed to access the @emph{rstatd} -service on host @code{1.2.3.4}. - -Default: empty. - -@item @code{RPC_okay_nets : set[net]} -A set of networks allowed to make GETPORT requests without complaint. -The notion behind providing this variable is that the listed -networks are trusted. However, the trust doesn't extend beyond -GETPORT to other portmapper requests, because GETPORT is the only -portmapper operation used routinely by a set of hosts trusted by -another set of hosts (but that don't belong to the same group, and hence -are not issuing SET and UNSET calls). - -Default: empty. - -@cindex walld -@item @code{RPC_okay_services : set[string]} -A set of services for which GETPORT requests should not generate -complaints. These might be services that are widely invoked and -believed exploit-free, such as @emph{walld}, though care should -be taken with blithely assuming that a given service is indeed -exploit-free. - -Note that, like for @code{RPC_okay_nets}, the trust does not -extend beyond GETPORT, because it should be the only portmapper -operation routinely invoked. - -Default: empty. - -@item @code{NFS_world_servers : set[addr]} -A set of hosts that provide public access to an NFS file system, -and thus should not have any of their NFS traffic flagged as -possibly sensitive. (The presumption here is that such public -servers have been carefully secured against any remote NFS operations.) -An example of such a server might be one providing read-only -access to a public database. - -Default: empty. - -@item @code{RPC_dump_okay : set[addr, addr]} -Indexed first by the host requesting a portmapper dump, and second -by the host from which it's requesting the dump. If an entry is -present, then the dump operation is not flagged. - -Default: empty. - -@item @code{any_RPC_okay : set[addr, string]} -Pairs of hosts and services for which any GETPORT access to the given -service is allowed. - -@cindex ypserv -@item @code{sun-rpc.mcast.net} -@cindex RPC (Remote Procedure Call), reserved multicast address -Default: -@example - [NFS_world_servers, NFS_services], - [sun-rpc.mcast.net, "ypserv"] -@end example - -The first of these allows access to any NFS service of any of the -@code{NFS_world_servers}, using Bro's cross-product initialization -feature (See @ref{Initializing Tables}). The second allows @emph{ypserv} -requests to the multicast address reserved for RPC multicasts.@footnote{ I don't know how much this type of access is actually used in practice, but experience shows that requests for @emph{ypserv} directed to that address pop up not infrequently. } - -@cindex walld -@item @code{suppress_pm_log : table[addr, string] of bool} -Do not generate real-time notices for access by the given address -for the given service. Note that unlike most Bro policy variables, -this one is not @code{const} but is modified at run-time to add -to it any host that invokes the @emph{walld} RPC service, so that -such access is only reported once for each host. - -Default: empty, but dynamic as discussed above. - -@end table - -@cindex analyzers, portmapper, variables - -@node portmapper functions, -@subsection @code{portmapper} functions - -@cindex analyzers, portmapper, functions - -The standard script provides the following externally accessible functions: - -@table @samp -@item @code{rpc_prog (p: count): string } -Returns the name of the RPC program with the given number, -if it's present in ; otherwise returns -the text @code{"unknown-@code{<}@emph{p}@code{>}"}. - -@item @code{pm_check_getport (r: connection, prog: string): bool } -Checks a GETPORT request for the given program against the policy expressed -by @code{RPC_okay_services}, @code{any_RPC_okay}, -@code{RPC_okay}, and @code{RPC_okay_nets}, -returning true if the request violates policy, false if it's allowed. - -@item @code{pm_activity (r: connection, log_it: bool) } -A bookkeeping function invoked when there's been portmapper activity -on the given connection. - -The function records the connection via , -unless it is a TCP connection (which will instead be recorded by -@code{connection_finished}). If @code{log_it} is true then the -function generates a real-time notice of the form: -@quotation -rpc: -@code{<}@emph{connection-id}@code{>} -@code{<}@emph{RPC-service}@code{>} -@code{<}@emph{r$addl}@code{>} -@end quotation -For example: -@example - 972616255.679799 rpc: 65.174.102.21/832 > - 182.7.9.47/portmapper pm_getport: nfs -> 2049/udp -@end example - -However, it does not generate the notice if either the client host and -service are present in @code{suppress_pm_log}, or if it already generated -a notice in the past for the same client, server and service (to prevent -notice cascades). - -@item @code{pm_request (r: connection, proc: string, addl: string, log_it: bool) } -Invoked when the given connection has made a portmapper request of some -sort for the given RPC procedure @code{proc}. @code{addl} gives an -annotation to add to the connection's @code{addl} field. -If @code{log_it} is true, then connection should be logged; it will also -be logged if the function determines that it is hot. - -The function first invokes @code{check_scan} and @code{scan_hot} -(with a mode of @code{CONN_ESTABLISHED}), -unless @code{r} is a TCP connection, in which case these checks have already -been made by @code{connection_established}. The function then adds -@code{addl} to the connection's @code{addl} field, though if the field's -length already exceeds 80 bytes, then it just tacks on @code{"..."} -(unless already present). This last is necessary because Bro will sometimes -see zillions of successive portmapper requests that all use the same -connection ID, and these will each add to @code{addl} until it -becomes unwieldy in size. @emph{Deficiency: Clearly, the byte limit of 80 should be adjustable. } - -Finally, the function invokes @code{check_hot} with a mode -of @code{CONN_FINISHED}, and @code{pm_activity} to finish up -bookkeeping for the connection. - -No return value. - -@item @code{pm_attempt (r: connection, proc: string, status: count, addl: string, log_it: bool) } -Invoked when the given connection attempted to make a portmapper request -of some sort, but the request failed or went unanswered. The arguments -are the same as for @code{pm_request}, with the addition of -@code{status}, which gives the RPC status code corresponding to why the -attempt failed (see below). - -The function first invokes @code{check_scan} and @code{check_hot} -(with a mode of @code{CONN_ATTEMPTED}), -unless @code{r} is a TCP connection, in which case these checks have already -been made by @code{connection_attempt}. - -The function then adds -@code{addl} to the connection's @code{addl} field, along with -a text description of the RPC status code, as given in -the Table below. - -No return value. - -@float Table, RPC status codes -@multitable @columnfractions .2 .7 -@item @strong{Status description} @tab @strong{Meaning} -@item "ok" -@tab The call succeeded. -@item "prog unavail" -@tab The call was for an RPC program that has not registered with the portmapper. -@item "mismatch" -@tab The call was for a version of the RPC program that has not registered with the portmapper. -@item "garbage args" -@tab The parameters in the call did not decode correctly. -@item "system err" -@tab A system error (such as out-of-memory) occurred when processing the call. -@item "timeout" -@tab No reply was received within 24 seconds of the request. -@item "auth error" -@tab The caller failed to authenticate to the server, or was not authorized to make the call. -@item "unknown" -@tab An unknown error occurred. -@end multitable -@caption{Types of RPC status codes} -@end float - -@end table - -@cindex analyzers, portmapper, functions - -@node portmapper event handlers, -@subsection @code{portmapper} event handlers - -@cindex analyzers, portmapper, event handlers - -The standard script handles the following events: - -@table @samp -@item @code{pm_request_null (r: connection)} -Invoked upon a successful portmapper request for the ``null'' procedure. -The script invokes @code{pm_request} with @code{log_it=F}. - -@item @code{pm_request_set (r: connection, m: pm_mapping, success: bool)} -Invoked upon a nominally successful portmapper request to set the portmapper -binding @code{m}. The script invokes @code{pm_request} with @code{log_it=T}. -@code{success} is true if the server honored the request, false otherwise; -the script turns this into an annotation of @code{"ok"} or @code{"failed"}. - -The @code{pm_mapping} type (for @code{m}) has three fields, -@code{program: count}, @code{version: count} and @code{p: port}, the -port for the mapping of the given program and version. -@code{pm_mapping} - -@item @code{pm_request_unset (r: connection, m: pm_mapping, success: bool)} -Invoked upon a nominally successful portmapper request to remove a portmapper -binding. The script invokes @code{pm_request} with @code{log_it=T}. -@code{success} is true if the server honored the request, false otherwise; -the script turns this into an annotation of @code{"ok"} or @code{"failed"}. - -@item @code{pm_request_getport (r: connection, pr: pm_port_request, p: port)} -Invoked upon a successful portmapper request to look up a portmapper -binding. @code{pr}, of type -@code{pm_port_request}, has three fields: -@code{program: count}, @code{version: count}, and @code{is_tcp: bool}, -this last indicating whether the caller is request the TCP or UDP -port, if the given program/version has mappings for both. -The script invokes @code{pm_request} with @code{log_it} set -according to the return value of -and an annotation of the mapping. - -@item @code{pm_request_dump (r: connection, m: pm_mappings)} -Invoked upon a successful portmapper request to dump the portmapper -bindings. The script invokes @code{pm_request} with @code{log_it=T} -unless indicates that the dump call is allowed. -The script ignores @code{m}, which gives the mappings as a -@code{table[count] of pm_mapping}, where the table index simply reflects -the order in which the mappings were returned, starting with an index -of 1. @emph{Deficiency: What the script @emph{should} do, instead, is keep track of the mappings so that Bro can identify the service associated with connections for otherwise unknown ports. } - -@cindex walld -@item @code{pm_request_callit (r: connection, pm_callit_request, p: port)} -Invoked upon a successful portmapper request to look up and call -an RPC procedure. The script invokes @code{pm_request} with @code{log_it=T} -unless the combination of the caller and the -program are in @code{suppress_pm_log}. Finally, if the program -called is @emph{walld}, then the script adds the caller to @code{suppress_pm_log}. - -The @code{pm_callit_request} type has four fields: -@code{pm_callit_request} -@code{program: count}, @code{version: count}, @code{proc: count}, and -@code{arg_size: count}. These reflect the procedure being looked up and -called, and the size of the arguments being passed to it, respectively. -@emph{Deficiency: Currently, the event engine does not do any analysis or refinement of the arguments passed to the procedure (such as making them available to the event handler) or the return value.} @code{p} is -the port value returned by the call. - -@item @code{pm_attempt_null (r: connection, status: count)} -Invoked upon a failed portmapper request for the ``null'' procedure. -@code{status} gives the reason for the failure. -The script invokes @code{pm_attempt} with @code{log_it=T}. - -@item @code{pm_attempt_set (r: connection, status: count, m: pm_mapping)} -Invoked upon a failed portmapper request to set the portmapper -binding @code{m}. The script invokes @code{pm_attempt} with @code{log_it=T}. - -@item @code{pm_attempt_unset (r: connection, status: count, m: pm_mapping)} -Invoked upon a failed portmapper request to remove a portmapper -binding. The script invokes @code{pm_attempt} with @code{log_it=T}. - -@item @code{pm_attempt_getport (r: connection, status: count, pr: pm_port_request)} -Invoked upon a failed portmapper request to look up a portmapper -binding. @code{pr}, of type @code{pm_port_request}, has three fields: -@code{program: count}, @code{version: count}, and @code{is_tcp: bool}, -this last indicating whether the caller requested the TCP or UDP port. -The script invokes @code{pm_attempt} with @code{log_it} set -according to the return value of @code{pm_check_get_port}. - -@item @code{pm_attempt_dump (r: connection, status: count)} -Invoked upon a failed portmapper request to dump the portmapper -bindings. The script invokes @code{pm_attempt} with @code{log_it=T} -unless @code{RPC_dump_okay} indicates that the dump call is allowed. - -@cindex walld -@item @code{pm_attempt_callit (r: connection, status: count, pm_callit_request)} -Invoked upon a failed portmapper request to look up and call -an RPC procedure. The script invokes @code{pm_attempt} with @code{log_it=T} -unless the combination of the caller and the -program are in @code{suppress_pm_log}. Finally, if the program -called is @emph{walld}, then the script adds the caller to -@code{suppress_pm_log}. - -@item @code{pm_bad_port (r: connection, bad_p: count)} -Invoked when a portmapper request or response includes an invalid -port number. Since ports are represented by unsigned 4-byte integers, -they can stray outside the allowed range of 0--65535 by being >= 65536. -The script invokes @code{conn_weird_log} with a @emph{weird tag} -of @code{"bad_pm_port"}. - -@end table - -@cindex analyzers, portmapper, event handlers - -@cindex analyzers, application-specific - -@node analy Analyzer, -@section The @code{analy} Analyzer -@cindex statistical analysis -@cindex connection, analysis -The @code{analy} analyzer provides a limited mechanism to -use Bro to do statistical analysis on TCP connections. Its primary -purpose is to demonstrate that Bro has applications to network -traffic analysis beyond intrusion detection. It defines one -event handler: - -@table @samp -@item @code{conn_stats c: connection, os: endpoint_stats, rs: endpoint_stats} -Invoked for each connection when it terminates (for whatever reason). -@code{os} and @code{rs} are the statistics for the originator endpoint and -the responder endpoint, respectively; the table below -gives the different record fields. - -@end table - -@code{endpoint_stats} fields for summarizing connection endpoint statistics, -all of type @code{count}. - -@float Table, endpoint_stats fields -@multitable @columnfractions .2 .75 -@item @strong{Field} @tab @strong{Meaning} -@item num_pkts -@tab The number of packets sent by the endpoint, as seen by the monitor. The endpoint may -have sent others that the network dropped upstream from the monitor. -@item num_rxmit -@tab The number of packets retransmitted by the endpoint, as seen by the monitor. -@item num_rxmit_bytes -@tab The number of bytes retransmitted by the endpoint. -@item num_in_order -@tab The number of packets sent by the endpoint that arrived at the monitor in order, where "in -order" means in the same order as sent by the endpoint, rather than in sequence number. -(Thus, a retransmission can arrive in order, by this definition.) Bro determines if the packet -arrived in order by applying heuristics to the IP identification (ID) field, which in general -will increase by a small amount between successive packets transmitted by an endpoint. -@item num_OO -@tab The number of packets sent by the endpoint that arrived at the monitor out of order. See the -previous entry for the definition of "in order", and hence "out of order". -@item num_repl -@tab The number of extra copies of packets sent by the endpoint that arrived at the monitor. Bro -considers a packet replicated if its IP ID field is the same as for the previous packet it saw -from the endpoint. Using this definition, a replication is most likely caused by a network -mechanism such as duplication of a packet by a router, rather than a transport mechanism -such as retransmission, though some TCPs fully reuse packets when retransmitting them, -including their IP ID field. -@item endian_type -@tab Whether the advance of the IP ID field as seen by the monitor was consistent with bigendian -(network order) addition, little-endian, or undetermined. The three values are represented -by the Bro constants ENDIAN_BIG, ENDIAN_LITTLE, and ENDIAN_UNKNOWN. -In addition, the value can be ENDIAN_CONFUSED, meaning that the monitor saw conflicting -evidence for little- and big-endian. -@end multitable -@caption{@code{endpoint_stats} fields for summarizing connection endpoint statistics, all of type @code{count}} -@end float - - -@node signature Analysis Script, -@section The @code{signature} Analysis Script - -@cindex signature analysis -@cindex exploit scans -@cindex scans, exploit -@cindex horizontal exploit scans -@cindex vertical exploit scans -The @code{signature} module analyzes @emph{signature matches} -(see @ref{Signatures}). -For each signature, you can specify one of the actions -defined in Table 7.2. -In addition, the module identifies two types of @emph{exploit scans}: -@emph{horizontal} (a host triggers a signature for multiple destinations) and -@emph{vertical} (a host triggers multiple signature for the same destination). - -@cindex signatures, log file -@cindex log file, signatures - -The module handles one event: - -@table @samp -@item @code{signature_match (state: signature_state, msg: string, data: string)} -Invoked upon a match of a signature which contains an @code{event} action (See @ref{Actions}). -@end table - -It provides the following redefinable variables: - -@table @samp -@item @code{sig_actions : table[string] of count} -Maps signature IDs to actions as defined in the table below. - -@float Table, signature actions -@multitable @columnfractions .2 .6 -@item @strong{Action} @tab @strong{Meaning} -@item SIG_IGNORE @tab Ignore the signature completely. -@item SIG_QUIET @tab Process for scan detection but don't report individually. -@item SIG_FILE @tab Write matches to signatures-log -@item SIG_FILE_BUT_NOT_SCAN @tab Same, but ignore for scan processing -@item SIG_ALARM @tab Alarm and write to signatures, notice, and alarm files -@item SIG_ALARM_ONCE @tab Same, but only for the first instance -@item SIG_ALARM_PER_ORIG @tab Same, but once per originator -@item SIG_ALARM_NO_WORM @tab Same, but ignore if generated by known worm-source -@item SIG_COUNT_PER_RESP @tab Count per destination and alarm if threshold reached -@item SIG_SUMMARY @tab Don't alarm, but generate per-originator summary -@end multitable -@caption{Possible actions to take for signatures matches} -@end float - -Default: @code{SIG_FILE}. - -@item @code{horiz_scan_thresholds : set[count]} -Generate a notice whenever a remote host triggers a signature for -the given number of hosts. - -Default: @code{@{ 5, 10, 50, 100, 500, 1000@} } - -@item @code{vert_scan_thresholds : set[count]} -Generate a notice whenever a remote host triggers the -given number of signatures for the same destination. - -Default: @code{@{ 5, 10, 50, 100, 500, 1000@} } - -@end table - -The module defines one function for external use: - -@table @samp -@item @code{has_signature_matched (id: string, orig: addr, resp: addr): bool} -Returns true if the given signature has already matched for the -(originator,responder) pair. -@end table - -@node SSL Analyzer, -@section The @code{SSL} Analyzer - -@cindex SSL, analysis -The @code{SSL} analyzer processes traffic associated with the SSL -(Secure Socket Layer) protocol versions 2.0, 3.0 -and 3.1. SSL version 3.1 is also known as TLS (Transport -Layer Security) version 1.0 since from that version onward the IETF has taken -responsibility for further development of SSL. - -Bro instantiates an @code{SSL} analyzer for any connection with service -ports @code{443/tcp (https), 563/tcp (nntps), 585/tcp (imap4-ssl), 614/tcp (sshell), 636/tcp (ldaps), 989/tcp (ftps-data), 990/tcp (ftps), 992/tcp (telnets), 993/tcp (imaps), 994/tcp (ircs), 995/tcp (pop3s)}, providing -you have loaded the @code{SSL} analyzer, or defined a handler for one of -the SSL events. - -By default, the analyzer uses the above set of ports as a capture filter -(See: @ref{Filtering}). It currently checks the SSL handshake process for -consistency, tries to verify seen certificates, generates several events, -does connection logging, tries to detect security weaknesses, and produces -simple statistics. It is also able to store seen certificates on disk. -However, it does no decryption, so analysis is limited to clear text SSL -records. This means that analysis stops in the middle of the handshaking -phase for SSLv2 and at the end of it for SSLv3.0/SSLv3.1 (TLS). For this -reason we have not implemented the SSL session caching mechanism (yet). - -The analyzer consists of the four files: @code{ssl.bro}, @code{ssl-ciphers.bro}, -@code{ssl-errors.bro}, -and @code{ssl-alerts.bro}, which are accessed by @code{@@load} @code{ssl}. -The analyzer writes to the @code{weird} and @code{ssl} log files. -The first receives all non-conformant and ``weird'' activity, while -the latter tracks the SSL handshaking phase. - -@menu -* x509 record:: -* ssl_connection_info record:: -* SSL variables:: -* SSL event handlers:: -@end menu - -@node x509 record, -@subsection The @code{x509} record - -@cindex SSL, x509 - -This record is a very simplified structure for storing X.509 -certificate information. It currently supports only the issuer and -subject names. - -@example -type x509: record @{ - issuer: string; # issuer name of the certificate - subject: string; # subject name of the certificate -@}; -@end example - -@node ssl_connection_info record, -@subsection The @code{ssl_connection_info} record - -@cindex SSL, connection information - - -The main data structure managed by the @code{SSL} analyzer is -a collection of @code{ssl_connection_info} records, where the -record type is shown below. - -@example -type ssl_connection_info: record @{ -id: count; # the log identifier number -connection_id: conn_id; # IP connection information -version: count; # version associated with connection -client_cert: x509; -server_cert: x509; -id_index: string; # index for associated sessionID -handshake_cipher: count; # cipher suite client and server agreed upon -@}; -@end example - -The corresponding fields are @emph{Fixme: the description here is out of date}: - -@table @samp -@item @code{id} -The unique connection identifier assigned to this connection. Connections -are numbered starting at @code{1} and incrementing with each new connection. - -@item @code{connection_id} -The TCP connection which this SSL connection is based on. - -@item @code{version } -The SSL version number for this connection. Possible values are -@code{SSLv20}, for SSL version 2.0, @code{SSLv30} for version 3.0, and -@code{SSLv31} for version 3.1. - -@item @code{client_cert } -The information from the client certificate, if available. - -@item @code{server_cert } -The information from the server certificate, if available. - -@item @code{id_index } -Index into associated @code{SSL_sessionID_record} table. - -@item @code{handshake_cipher } -The cipher suite client and server agreed upon. -@emph{Note: For SSLv2 cached sessions, this is a placeholder (@code{0xABCD})}. - -@end table - -@node SSL variables, -@subsection @code{SSL} variables - -@cindex analyzers, SSL, variables - -The standard script defines the following redefinable variables: - -@table @samp -@item @code{ssl_compare_cipherspecs : bool} -If true, remember the client and server cipher specs and perform additional -tests. This costs an extra amount of memory (normally only for a short -time) but enables detection of non-intersecting cipher sets, for example. - -Default: @code{T}. - -@item @code{ssl_analyze_certificates : bool} -If true, analyze certificates seen in SSL connections, which -includes the following steps: -@itemize @bullet -@item -Generating a hash of the certificate and checking if we already -saw it earlier from the current host. If so, we won't -verify it, because we already did and verifying is a -computational expensive process. If the certificate has -changed for the current host, generate a weird event. - -@item -Verify the certificate. - -@item -Store of the certificate on disk in DER format. -@end itemize - -Default: @code{T}. - -@item @code{ssl_store_certificates : bool} -If certificates are analyzed, this variable determines they should be stored -on disk. - -Default: @code{T}. - -@item @code{ssl_store_cert_path : string} -Path where certificates are stored. -If empty, use the current directory. -@emph{Note: The path must not end with a slash!} - -Default: @code{"../certs"}. - -@item @code{ssl_verify_certificates : bool} -If certificates are analyzed, whether to verify them. - -Default: @code{T}. - -@item @code{x509_trusted_cert_path : string} -Path where OpenSSL looks for trusted certificates. -If empty, use the default OpenSSL path. - -Default: @code{""}. - -@item @code{ssl_max_cipherspec_size : count} -Maximum size in bytes for an SSL cipherspec. If we see attempted use of -larger cipherspecs, warn and skip comparing it. - -Default: @code{45}. - -@item @code{ssl_store_key_material : bool} -If true, stores key material exchanged in the handshaking phase. -@emph{Note: This is mainly for decryption purposes and currently useless.} - -Default: @code{T}. - -@float Figure, SSL example -@example -1046778101.534846 #1 192.168.0.98/32988 > - 213.61.126.124/https start -1046778101.534846 #1 connection attempt version: 3.1 -1046778101.534846 #1 cipher suites: SSLv3x_RSA_WITH_RC4_128_MD5 (0x4), - SSLv3x_RSA_FIPS_WITH_3DES_EDE_CBC_SHA (0xFEFF), - SSLv3x_RSA_WITH_3DES_EDE_CBC_SHA (0xA), - SSLv3x_RSA_FIPS_WITH_DES_CBC_SHA (0xFEFE), - SSLv3x_RSA_WITH_DES_CBC_SHA(0x9), SSLv3x_RSA_EXPORT1024_WITH_RC4_56_SHA (0x64), - SSLv3x_RSA_EXPORT1024_WITH_DES_CBC_SHA (0x62), - SSLv3x_RSA_EXPORT_WITH_RC4_40_MD5 (0x3), - SSLv3x_RSA_EXPORT_WITH_RC2_CBC_40_MD5 (0x6), -1046778101.753356 #1 server reply, version: 3.1 -1046778101.753356 #1 cipher suite: SSLv3x_RSA_WITH_RC4_128_MD5 (0x4), -1046778101.762601 #1 X.509 server issuer: /C=DE/ST=Hamburg/L=Hamburg/O=TC - TrustCenter for Security in Data Networks GmbH/OU=TC - TrustCenter Class 3 CA/Email=certificate@@trustcenter.de, -1046778101.762601 #1 X.509 server subject: /C=DE/ST=Berlin/O=Lehmanns - Fachbuchhandlung GmbH/OU=Zentrale EDV/CN=www.jfl.de/Email=admin@@lehmanns.de -1046778101.894567 #1 handshake finished, version 3.1, cipher suite: - SSLv3x_RSA_WITH_RC4_128_MD5 (0x4) -1046778104.877207 #1 finish ---- - -Used cipher-suites statistics: -SSLv3x_RSA_WITH_RC4_128_MD5 (0x4): 1 - -@end example -@caption{Example of SSL log file with a single SSL session.} -@end float - -@cindex SSL, log file -@cindex log file, SSL -@cindex SSL session summary file -In addition, @code{ssl_log} holds the name of the SSL log file to -which Bro writes SSL connection summaries. It defaults to -@code{open_log_file("ssl")}. -@end table - -The above figure shows an example of how entries in the SSL log file look like. -We see a transcript of the first SSL connection seen since Bro started -running. The first line gives its start and the participating hosts and -ports. Next, we see a client trying to attempt a SSL (Version 3.1) -connection and the cipher suites offered. The server replies with a SSL -3.1 @code{SERVER-REPLY} and the desired cipher suite. -@emph{Note: In SSL v3.0/v3.1 this determines which cipher suite will be used for the connection}. -Following this is the certificate the server sends, -including the issuer and subject. Finally, we see that the handshaking -phase for this SSL connection is finished now, and that client and server -agreed on the cipher suite: @code{RSA_WITH_RC4_128_MD5}. Due to encryption, -the SSL analyzer skips all further data. We only see the end of the -connection. When Bro finishes, we get some statistics about -the cipher suites used in all monitored SSL connections. - -@cindex analyzers, SSL, variables - -@node SSL event handlers, -@subsection @code{SSL} event handlers - -@cindex analyzers, SSL, event handlers - -The standard script handles the following events: - -@table @samp -@item @code{ssl_conn_attempt (c: connection, version: count, cipherSuites: cipher_suites_list)} - -Invoked upon the client side of connection @code{c} when the analyzer sees a @code{CLIENT-HELLO} -of SSL version @code{version} including the cipher suites the client offers @code{cipherSuites}. - -The version can be @code{0x0002}, @code{0x0300} or @code{0x0301}. -A new entry is generated inside the SSL connection table and the cipher suites -are listed. Ciphers, that are known as weak (according to a corresponding table of -weak ciphers) are logged inside the @code{weak.log} file. This also happens to -cipher suites that we do not know yet. -@emph{Note: See the file @code{ssl-ciphers.bro} for a list of known cipher suites.} - -@item @code{ssl_conn_server_reply (c: connection, version: count, cipherSuites: cipher_suites_list)} - -This event is invoked upon the analyzer receiving a @code{SERVER-HELLO} of the SSL server. -It contains the SSL version the server wishes to use (@emph{Note: This finally determines, which SSL version will be used further}) and the cipher suite he offers. If it is SSL version 3.0 or 3.1, the server determines -within this @code{SERVER-HELLO} the cipher suite for the following connection (so it will only be one). -But if it's a SSL version 2.0 connection, the server only announces the cipher suites he supports and -it's up to the client to decide which one to use. - -Again, the cipher suites are listed and weak and unknown cipher suites are reported inside -@code{weak.log}. - -@item @code{ssl_certificate_seen (c: connection, isServer: int)} - -Invoked whenever we see a certificate from client or server but before -verification of the certificate takes place. -This may be useful, if you want to do something before certificate verification -(e.g. do not verify certificates of some given servers). - -@item @code{ssl_certificate (c: connection, cert: x509, isServer: bool)} - -Invoked after the certificate from server or client (@code{isServer}) has been verified. -@emph{Note: We only verify certificates once. If we see them again, we only check if they have changed!} -@code{cert} holds the issuer and subject of the certificate, which gets stored -inside this SSL connection's information record inside the SSL connection table and -are written to @code{ssl.log}. - -@item @code{ssl_conn_reused (c: connection, session_id: string)} - -Invoked whenever a former SSL session is reused. @code{session_id} holds -the session ID as string of the reused session and is written to @code{ssl.log}. -Currently we don't do session tracking, because SSL version 2.0 doesn't -send the session ID in clear text when it's generated. - -@item @code{ssl_conn_established (c: connection, version: count, cipher_suite: count)} - -Invoked when the handshaking phase of an SSL connection is finished. We -see the used SSL version and the cipher suite that will be used for -cryptography (written to @code{ssl.log}) if we have SSL version 3.0 or 3.1. -In case of SSL version 2.0 we can only determine the used cipher suite for -new sessions, not for reused ones. (@emph{Note: In SSL version 3.0 and 3.1 the -cipher suite to be used is already announced in the @code{SERVER-HELLO}.}) - -@item @code{ssl_conn_alert (c: connection, version: count, level: count, description: count)} - -Invoked when the analyzer receives an SSL alert. The @code{level} of the -alert (warning or fatal) and the @code{description} are written into -@code{ssl.log}. (@emph{Note: See @code{ssl-alerts.bro}}). - -@item @code{ssl_conn_weak (name: string, c: connection)} - -This event is called when the analyzer sees: -@itemize @bullet -@item weak ciphers (See: @code{ssl_conn_attempt}, @code{ssl_server_reply}, @code{ssl_conn_established}), -@item unknown ciphers (See: @code{ssl_conn_attempt}, @code{ssl_server_reply}, @code{ssl_conn_established}) -@item or certificate verification failed. -@end itemize - -See @code{weak.bro}. - -@end table - -@cindex analyzers, SSL, event handlers - -@node weird Analysis Script, -@section The @code{weird} Analysis Script - -@cindex weird events -@cindex events, exceptional -@cindex exceptional events -@cindex unusual events - -The @code{weird} module processes unusual or exceptional -events. A number of these ``shouldn't'' or even ``can't'' happen, -yet they do. The general design philosophy of Bro is to check -for such events whenever possible, because they can reflect incorrect -assumptions (either Bro's or the user's), attempts by attackers to -confuse the monitor and evade detection, broken hardware, misconfigured -networks, and so on. - -Weird events are divided into three categories, namely those pertaining -to: connections; flows (a pair of hosts, but for which a specific connection -cannot be identified); and network behavior (cannot be associated with a -pair of hosts). These categories have a total of four event handlers: -@code{conn_weird}, @code{conn_weird_addl}, @code{flow_weird}, and @code{net_weird}, -and in the corresponding sections below we -catalog the events handled by each. In addition, we separately catalog -the events generated by the standard scripts themselves -(See: @ref{Events generated by the standard scripts}). Finally, two more weird events have their -own handlers, in order to associate detailed information with the event: -@code{rexmit_inconsistency} and @code{ack_above_hole}. - -@cindex weird event summary file -@cindex log file, weird events -@code{weird_file} is the logging file that -the module uses to record exceptional -events. It defaults to @code{open_log_file("weird")}. - -@cindex crud -@cindex unusual events, prevalence in actual network traffic -@cindex weird events, prevalence in actual network traffic -@cindex buggy implementations, causing ``weird'' events -@cindex diverse network use, causing ``weird'' events -@cindex Bro bugs/limitations, causing ``weird'' events -@cindex bugs, causing ``weird'' events - -@emph{Note: While these events ``shouldn't'' happen, in reality they often -do. For example, of the 73 listed below, a search of 10 months' worth of -logs at LBNL shows that 42 were seen operationally. While some of the -instances reflect attacks, the great majority are simply due to i) buggy -implementations, ii) diverse use of the network, or iii) Bro bugs or -limitations. Accordingly, you may initially be inclined to log each -instance, but don't be surprised to find that you soon decide to only -record many of them in the @code{weird} file, or not record them at all. -(For further discussion, see the section on ``crud'' in [Pa99].) } - -@menu -* Actions for weird events:: -* weird variables:: -* weird functions:: -* Events handled by conn_weird:: -* Events handled by conn_weird_addl:: -* Events handled by flow_weird:: -* Events handled by net_weird:: -* Events generated by the standard scripts:: -* Additional handlers for weird events:: -@end menu - -@node Actions for weird events, -@subsection Actions for ``weird'' events - -@cindex weird events, actions - -The general approach taken by the module is to categorize for each event -the action to take when the event engine generates the event. -Table XX summarizes the different possible actions. - -@float Table, Weird Event Actions -@multitable @columnfractions .2 .75 -@item @strong{Action} @tab @strong{Meaning} -@item WEIRD_UNSPECIFIED -@tab No action specified. -@item WEIRD_IGNORE -@tab Ignore the event. -@item WEIRD_FILE -@tab Record the event to weird file, if it has not been seen for these hosts before. (But see -weird do not ignore repeats.) -@item WEIRD_NOTICE_ALWAYS -@tab Record the event to weird file and generate a notice each time the event occurs. -@item WEIRD_NOTICE_ONCE -@tab Record the event to weird file; generate a notice the first time the event occurs. -@item WEIRD_NOTICE_PER_CONN -@tab Record the event to weird file; generate a notice the first time it occurs for a -given connection. -@item WEIRD_NOTICE_PER_ORIG -@tab Record the event to weird file; generate a notice the first time it occurs for a -given originating host. -@end multitable -@caption{Different types of possible actions to take for "weird" events} -@end float - -@node weird variables, -@subsection @code{weird} variables - -The standard @code{weird} script provides the following redefinable variables: - -@table @samp -@item @code{weird_action : table[string] of count} -Maps different weird events to actions as given in Table in @ref{Actions for weird events} above. - -Default: as specified in @code{conn_weird}, @code{conn_weird_addl}, @code{flow_weird}, @code{net_weird}, -and @ref{Events generated by the standard scripts}. As usual, you can change particular -values using refinement. For example: -@example -redef weird_action: table[string] of count += @{ - [["bad_TCP_checksum", "bad_UDP_checksum"]] = WEIRD_IGNORE, - ["fragment_overlap"] = WEIRD_NOTICE_PER_CONN, -@}; -@end example - -would specify to ignore TCP and UDP checksum errors (rather than the default -of @code{WEIRD_FILE}), and to notice fragment overlaps once per connection -in which they occur, rather than the default of @code{WEIRD_NOTICE_ALWAYS}. - -@item @code{weird_action_filters : table[string] of function(c: connection): count} -Indexed by the name of a weird event, yields a function that when called -for a given connection exhibiting the event, returns an action from -the table in section @ref{Actions for weird events}. -A return value of @code{WEIRD_UNSPECIFIED} -means ``no special action, use the action you normally would.'' -This variable thus allows arbitrary -customization of the handling of particular events. - -Default: empty, for the @code{weird} analyzer itself. The - analyzer redefines this variable as follows: -@example - redef weird_action_filters += @{ - [["bad_RPC", "excess_RPC", "multiple_RPCs", - "partial_RPC"]] = RPC_weird_action_filter, -@}; -@end example - -where @code{RPC_weird_action_filter} is a function internal to the -analyzer that returns @code{WEIRD_FILE} if the originating host -is in , and @code{WEIRD_UNSPECIFIED} otherwise. - -@item @code{weird_ignore_host : set[addr, string]} -Specifies that the analyzer should ignore the given weird event (named by -the second index) if it involves the given address (as either originator -or responder host). - -Default: empty. - -@item @code{weird_do_not_ignore_repeats : set[string]} -Gives a set of weird events that, if their action is @code{WEIRD_FILE}, -should still be recorded to the @code{weird_file} each time they occur. - -Default: the events relating to checksum errors, i.e., -@code{"bad_IP_checksum"}, -@code{"bad_TCP_checksum"}, -@code{"bad_UDP_checksum"}, and -@code{"bad_ICMP_checksum"}. -These are recorded multiple times because it can prove handy to -be able to track clusters of checksum errors. - -@end table - -@node weird functions, -@subsection @code{weird} functions - -The @code{weird} analyzer includes the following functions: - -@table @samp -@item @code{report_weird (t: time, name: string, id: string, action: WeirdAction, no_log: bool)} -Processes an occurrence of the weird event @code{name} associated with -the connection described by the string @code{id} (which may be empty -if no connection is associated with the event). @code{action} is the -action associated with the event. For @code{report_weird}, the only -distinctions made between the different actions are that @code{WEIRD_IGNORE} -causes the function to do nothing; any of @code{WEIRD_NOTICE_xxx} -cause the function to generate a notice, unless @code{no_log} is true; and @code{WEIRD_UNSPECIFIED} -causes the function to look up the action in @code{weird_action}. -If the function does @emph{not} find an action -for the event, then it uses @code{WEIRD_NOTICE_ALWAYS} and prepends the log -message with a pair of asterisks (``@code{**}'') to flag that this event -does not have a specified action. - -For @code{WEIRD_FILE}, @code{report_weird} only -records the event once to the file, unless the given event is present -in @code{weird_do_not_ignore_repeats}. Events with notice-able actions -are always recorded to @code{weird_file}. - -@item @code{report_weird_conn (t: time, name: string, id: string, c: connection)} -Processes an occurrence of the weird event @code{name} associated with -the connection @code{c}, which is described by the string @code{id}. - -If @code{report_weird_conn} finds one of the hosts and the given event name -in @code{weird_ignore_host}, then it does nothing. Then, if the event -is in @code{weird_action}, then it looks up the event in -@code{weird_action_filters} and invokes the corresponding function -if present, otherwise taking the action from @code{weird_action}. -It then implements the various flavors of @code{WEIRD_NOTICE_xxx} -by not generating notices more than once per connection, originator host, -etc., though the events are still written to @code{weird_file}. -Finally, the function invokes to do the -actual recording and/or writing to @code{weird_file}. - -@item @code{report_weird_orig (t: time, name: string, id: string, orig: addr)} -Processes an occurrence of the weird event @code{name} associated with -the source address @code{orig}. @code{id} textually describes the flow from -@code{orig} to the destination, for example using @code{endpoint_id}. - -The function looks up the event name in @code{weird_action} and -passes it along to @code{report_weird}. - -@end table - -@node Events handled by conn_weird, -@subsection Events handled by @code{conn_weird} - -@cindex weird events, handled by conn_weird -@cindex event handling, weird - -@table @samp -@item @code{conn_weird (name: string, c: connection)} -Invoked for most ``weird'' events. -@code{name} is the name of the weird event, and @code{c} is the -connection with which it's associated. - -@end table - -@noindent @code{conn_weird} handles the following events, all of which have -a default action of @code{WEIRD_FILE}: - -@table @samp -@item @code{active_connection_reuse} -A new connection attempt (initial SYN) -was seen for an already-established connection that has not -yet terminated. -@cindex HTTP, weird events -@item @code{bad_HTTP_reply} -The first line of a reply from an HTTP -server did not include @code{HTTP/}@emph{version}. -@item @code{bad_HTTP_version} -The first line of a request from an HTTP -client did not include @code{HTTP/}@emph{version}. -@cindex ICMP, weird events -@cindex packets, corrupted -@cindex corrupted packets -@cindex checksum error, ICMP -@cindex ICMP, checksum error -@item @code{bad_ICMP_checksum} -The checksum field in an -ICMP packet was invalid. -@cindex Rlogin, weird events -@item @code{bad_rlogin_prolog} -The beginning of an Rlogin connection had -a syntactical error. -@cindex RPC (Remote Procedure Call), weird events -@item @code{bad_RPC} -A Remote Procedure Call was ill-formed. -@item @code{bad_RPC_program} -A portmapper RPC call did not include the -correct portmapper program number. -@item @code{bad_SYN_ack} -A TCP SYN acknowledgment (SYN-ack) did not acknowledge -the sequence number sent in the initial SYN. -@cindex TCP, weird events -@cindex checksum error, TCP -@cindex TCP, checksum error -@item @code{bad_TCP_checksum} -A TCP packet had a bad checksum. -@cindex UDP, weird events -@cindex checksum error, UDP -@cindex UDP, checksum error -@item @code{bad_UDP_checksum} -A UDP packet had a bad checksum. -@item @code{baroque_SYN} -A TCP SYN was seen with an unlikely -combination of other flags (the URGent pointer). -@item @code{blank_in_HTTP_request} -The URL in an HTTP request includes -an embedded blank. -@item @code{connection_originator_SYN_ack} -A TCP endpoint that originated -a connection by sending a SYN followed this up by sending a SYN-ack. -@item @code{data_after_reset} -After a TCP endpoint sent a RST to terminate -a connection, it sent some data. -@item @code{data_before_established} -Before the connection was fully -established, a TCP endpoint sent some data. -@item @code{excessive_RPC_len} -An RPC record sent over a TCP connection -exceeded 8 KB. -@item @code{excess_RPC} -The sender of an RPC request or reply included -leftover data beyond what the RPC parameters or result value -themselves consumed. -@item @code{FIN_advanced_last_seq} -A TCP endpoint retransmitted a FIN with -a higher sequence number than previously. -@item @code{FIN_after_reset} -A TCP endpoint sent a FIN after sending a RST. -@cindex packets, storms -@cindex storms -@item @code{FIN_storm} -The monitor saw a flurry of FIN packets all sent on -the same connection. A ``flurry'' is defined as 1,000 packets that -arrived with less than 1 sec between successive FINs. -@emph{Deficiency: Clearly, this numbers should be user-controllable. } -@item @code{HTTP_unknown_method} -The method in an HTTP request was -not GET, POST or HEAD. -@item @code{HTTP_version_mismatch} -A persistent HTTP connection sent a -different version number for a subsequent item than it -did initially. -@item @code{inappropriate_FIN} -A TCP endpoint sent a FIN before the -connection was fully established. -@item @code{multiple_HTTP_request_elements} -An HTTP request included multiple -methods. -@item @code{multiple_RPCs} -A TCP RPC stream included more than one -remote procedure call. -@cindex NULs -@item @code{NUL_in_line} -A NUL (ASCII 0) was seen in a text stream -that is expected to be free of NULs. @emph{Updateme: Currently, the only such stream is that associated with an FTP control connection. } -@item @code{originator_RPC_reply} -The originator (and hence presumed client) -of an RPC connection sent an RPC reply (either instead of a request, -or in addition to a request). -@cindex Finger, weird events -@item @code{partial_finger_request} -When a Finger connection terminated, it -included a final line of unanalyzed text because the text was -not newline-terminated. -@cindex FTP, weird events -@item @code{partial_ftp_request} -When an FTP connection terminated, it -included a final line of unanalyzed text because the text was -not newline-terminated. -@item @code{partial_ident_request} -When an IDENT connection terminated, it -included a final line of unanalyzed text because the text was -not newline-terminated. -@item @code{partial_portmapper_request} -A portmapper connection terminated with -an unanalyzed request because the data stream was incomplete. -@item @code{partial_RPC} -An RPC was missing some required header information -due to truncation. -@cindex data, unanalyzed -@cindex unanalyzed data -@item @code{pending_data_when_closed} -A TCP connection closed even though -not all of the data in it was analyzed due to a sequence hole. -@cindex split routing -@cindex routing, split -@cindex vantage point -@cindex bidirectional vs. unidirectional analysis -@cindex analysis, bidirectional vs. unidirectional -@cindex undirectional analysis -@cindex scanning, stealth -@cindex stealth scans -@item @code{possible_split_routing} -Bro appears to be seeing only one -direction of some bi-directional connections . -This can also occur due to certain forms of stealth-scanning. -@cindex connection, reuse -@cindex Maximum Segment Lifetime (MSL) -@cindex MSL (Maximum Segment Lifetime) -@item @code{premature_connection_reuse} -A TCP connection tuple is being -reused less than 30 sec after its previous use. (The standard -requires waiting 2 * @w{MSL} = 4 minutes [p. 27] [RFC-793].) -@item @code{repeated_SYN_reply_wo_ack} -A TCP responder that replied to an -initial SYN with a SYN-ack has subsequently sent a SYN @emph{without} -an acknowledgment. -@item @code{repeated_SYN_with_ack} -A TCP originator that sent an -initial SYN has subsequently sent a SYN-ack. -@item @code{responder_RPC_call} -The responder (and hence presumed server) -of an RPC connection sent an RPC request (either instead of a reply, -or in addition to a reply). -@item @code{rlogin_text_after_rejected} -An Rlogin client sent additional text -to an Rlogin server after the server already presumably rejected -the client's service request. -@cindex retransmission, inconsistent -@cindex inconsistent retransmission -@cindex evasion, inconsistent RPC retransmission -@item @code{RPC_rexmit_inconsistency} -An RPC call was retransmitted, and -the retransmitted call differed from the original call. This -could reflect an attempt by an attacker to evade the monitor. -@emph{Note: This type of inconsistency checking is not available for RPC replies because the transmission of the reply in general marks the end of the RPC connection, and the monitor deletes the connection state shortly afterward. } -@item @code{RST_storm} -The monitor saw a flurry of RST packets all sent on -the same connection. See @code{FIN_storm} for the definition of -``flurry.'' -@item @code{RST_with_data} -A TCP RST packet included data. This actually -is allowed by the specification [4.2.2.12] RFC-1122. -@emph{Deficiency: This event should include the data. } -@cindex simultaneous open -@cindex connection, simultaneous open -@item @code{simultaneous_open} -The monitor saw a TCP simultaneous open, -i.e., both endpoints sent initial SYNs to one another at the same time. -While the specification allows this [p. 30] RFC-793, none of the -protocols analyzed by Bro should be using it. -@cindex transients, startup -@cindex startup, transients -@cindex scanning, stealth -@cindex stealth scans -@item @code{spontaneous_FIN} -A TCP endpoint sent a FIN packet without -sending any previous packets. This event can reflect stealth-scanning, -but can also occur when Bro has recently -started up and has not seen other traffic on a connection and hence does -not know that the connection already exists. -@item @code{spontaneous_RST} -A TCP endpoint sent a RST packet without -sending any previous packets. As with @code{spontaneous_FIN}, this -event can reflect either stealth scanning or a Bro start-up -transient. -@item @code{SYN_after_close} -A TCP endpoint sent a SYN (connection -initiation) after sending a FIN (connection termination), -but before the connection fully closed. -@item @code{SYN_after_partial} -A TCP endpoint in a ``partial'' connection - sent a SYN. -@item @code{SYN_after_reset} -A TCP endpoint sent a SYN after sending a -RST (reset connection). -@item @code{SYN_inside_connection} -A TCP endpoint sent a SYN during a -connection (or partial connection) on which it had already -sent data. -@item @code{SYN_seq_jump} -A TCP endpoint retransmitted a SYN or a -SYN-ack, but with a different sequence number. -@cindex T/TCP -@cindex TCP, transaction -@cindex transaction TCP -@item @code{SYN_with_data} -A TCP endpoint included data in a SYN packet -it sent. Note, this can legitimately occur for T/TCP connections -[RFC-1644]. -@cindex TCP, Christmas packet -@cindex Christmas packet -@item @code{TCP_christmas} -A TCP endpoint sent a SYN packet that -included the RST flag (a nonsensical combination). The -term ``Christmas packet'' has been used in this context -(particularly if other flags are set, too) because the -packet's flags are ``lit up like a Christmas tree.'' -@cindex length mismatch, UDP -@cindex UDP, length mismatch -@cindex evasion, length mismatch -@item @code{UDP_datagram_length_mismatch} -The length field in a UDP header -did not match the length field in the IP header. This could -reflect an attempt by an attacker to evade the monitor. -@item @code{unpaired_RPC_response} -An RPC reply was seen for which no -request was seen. This event could reflect a Bro start-up -transient (it started running after the request was sent). -@item @code{unsolicited_SYN_response} -A TCP endpoint sent a SYN-ack without -first receiving an initial SYN. This event could reflect a -Bro start-up transient. - -@end table - -@node Events handled by conn_weird_addl, -@subsection Events handled by @code{conn_weird_addl} - -@cindex weird events, handled by conn_weird_addl - -@cindex polymorphic functions, need for -@table @samp -@item @code{conn_weird_addl (name: string, c: connection, addl: string)} -Invoked for a few ``weird'' events that require an extra (string) -argument to help clarify the event. @emph{Deficiency: It would likely be very handy if the general ``weird'' event handling was more flexible, with the ability to have various parameters associated with the events. Doing so will likely have to wait on general Bro mechanism for dealing with default parameters and/or polymorphic functions and event handlers. } - -@end table - -@code{conn_weird_addl} handles the following events, all of which -have a default action of @code{WEIRD_FILE}: - -@table @samp -@cindex IDENT, weird events -@item @code{bad_ident_reply} -A reply from an IDENT server was -syntactically invalid. -@item @code{bad_ident_request} -A request to an IDENT server was -syntactically invalid. -@item @code{ident_request_addendum} -An IDENT request included additional -text beyond that forming the request itself. -@end table - -@node Events handled by flow_weird, -@subsection Events handled by @code{flow_weird} - -@cindex weird events, handled by flow_weird - -@table @samp -@item @code{flow_weird (name: string, src: addr, dst: addr)} -is invoked for ``weird'' events that cannot be associated with a -particular connection, but only with a pair of hosts, corresponding -to a flow of packets from @code{src} to @code{dst}. Presently, all of -these events deal with fragments. - -@end table - -@code{flow_weird} handles the following events: - -@table @samp -@cindex IP, fragments -@cindex fragments, excessively large -@cindex denial of service, excessively large fragments -@item @code{excessively_large_fragment} -A set of IP fragments reassembled -to a maximum size exceeding 64,000 bytes. @emph{Note: Sizes between 64,000 and 65,535 bytes are allowed, strictly speaking, but are highly unlikely in legitimate traffic. Sizes above 65,535 bytes generally represent attempted denial-of-service attacks, due to IP implementations that crash upon receiving such impossibly-large fragment sets. } - -Default: @code{WEIRD_NOTICE_ALWAYS}. - -@cindex fragments, excessively small -@cindex evasion, excessively small fragments -@item @code{excessively_small_fragment} -A fragment other than the -last fragment in a set was less than 64 bytes in size. -@emph{Note: The standard allows such small fragments, but their presence may reflect an attacker attempting to evade the monitor by splitting header information across multiple fragments. } - -Default: @code{WEIRD_NOTICE_ALWAYS}. - -@cindex fragments, inconsistent -@cindex evasion, inconsistent fragments -@item @code{fragment_inconsistency} -A fragment overlaps with a previously -sent fragment, and the two disagree on data they share in common. -This event could reflect an attacker attempting to evade the -monitor; it can also occur because Bro keeps previous fragments -indefinitely (@emph{Deficiency: it needs to provide a means for flushing old fragments, otherwise it becomes vulnerable to a state-holding attack}), and occasionally a fragment will -overlap with one sent much earlier and long-since forgotten -by the endpoints. - -Default: @code{WEIRD_NOTICE_ALWAYS}. - -@cindex fragments, overlapping -@item @code{fragment_overlap} -A fragment overlaps with a previously -sent fragment. As for @code{fragment_inconsistency}, this -event can occur due to Bro keeping previous fragments -indefinitely. This event does not in general reflect a -possible attempt at evasion. - -Default: @code{WEIRD_NOTICE_ALWAYS}. - -@cindex fragments, inconsistent protocols -@item @code{fragment_protocol_inconsistency} -Two fragments were seen -for the same flow and IP ID which differed in their transport protocol -(e.g., UDP, TCP). According to the specification, this is allowed -[p. 24] RFC-791, but its use appears highly unlikely. - -Default: @code{WEIRD_FILE}, because it is difficult to see how -an attacker can exploit this anomaly. - -@cindex fragments, inconsistent sizes -@cindex evasion, inconsistent fragment size -@item @code{fragment_size_inconsistency} -A ``last fragment'' was -seen twice, and the two disagree on how large the reassembled datagram -should be. This event could reflect an attacker attempting to evade -the monitor. - -Default: @code{WEIRD_FILE}, since it is more likely that this -occurs due to a high volume flow of fragments wrapping the -IP ID space than due to an actual attack. - -@item @code{fragment_with_DF} -A fragment was seen with the ``Don't Fragment'' -bit set in its header. While strictly speaking this is not illegal, -and not impossible (a router could have fragmented a packet and then -decided that the fragments should not be further fragmented), its -presence is highly unusual. - -Default: @code{WEIRD_FILE}, because it's difficult to see how -this could reflect malicious activity. - -@item @code{incompletely_captured_fragment} -A fragment was seen whose -length field is larger than the fragment datagram appearing on the -monitored link. - -Default: @code{WEIRD_NOTICE_ALWAYS}. - -@end table - -@node Events handled by net_weird, -@subsection Events handled by @code{net_weird} - -@cindex weird events, handled by net_weird - -@table @samp -@item @code{net_weird (name: string)} -is invoked for ``weird'' events that cannot be associated with -a particular connection or set of hosts. Except as noted, the -default action for all such events is @code{WEIRD_FILE}. - -@end table - -@code{net_weird} handles the following events: - -@cindex packets, corrupted -@cindex corrupted packets -@cindex IP, weird events -@cindex IP, checksum error -@cindex checksum error, IP -@table @samp -@item @code{bad_IP_checksum} -A packet had a bad IP header checksum. - -@cindex TCP, corrupted header -@item @code{bad_TCP_header_len} -The length of the TCP header (which is -itself specified in the header) was smaller than the minimum -allowed size. - -@cindex headers, truncated -@cindex truncated headers -@item @code{internally_truncated_header} -A captured packet with a valid -IP length field was smaller as actually recorded, such that the -captured version of the packet was illegally small. This event -may reflect an error in Bro's packet capture hardware or software. - -Default: @code{WEIRD_NOTICE_ALWAYS}, because this event can indicate -a basic problem with Bro's packet capture. - -@item @code{truncated_IP} -A captured packet either was too small to -include a minimal IP header, or the full length as recorded by -the packet capture library was smaller than the length as indicated -by the IP header. - -@item @code{truncated_header} -An IP datagram's header indicates a length -smaller than that required for the indicated transport type (TCP, -UDP, ICMP). - -@end table - -@node Events generated by the standard scripts, -@subsection Events generated by the standard scripts - -@cindex weird events, generated by standard scripts - -The following events are generated by the standard scripts themselves: - -@table @samp -@item @code{bad_pm_port} -See @code{pm_bad_port}. Handled by @code{conn_weird_addl}, -where the extra parameter is the text -@code{"port <}@emph{bad-port}@code{>"}. - -@cindex denial of service, Land attack -@cindex Land attack -@code{Land_attack} -A TCP connection attempt was seen with identical -initiator and responder addresses and ports. This event likely -reflects an attempted denial-of-service attack known as a -``Land'' attack. See @code{check_spoof}. Handled by @code{conn_weird}. - -@end table - -@node Additional handlers for weird events, -@subsection Additional handlers for ``weird'' events - -@cindex weird events, additional handlers - -In addition to the above, generalized events, Bro includes two specific -events that are defined by themselves so they can include additional -parameterization: - -@cindex evasion, inconsistent TCP retransmission -@cindex retransmission, inconsistent -@cindex inconsistent retransmission -@table @samp -@item @code{rexmit_inconsistency (c: connection, t1: string, t2: string)} -Invoked when a retransmission associated with connection @code{c} differed -in its data from the contents transmitted previously. @code{t1} gives -the original data and @code{t2} the different retransmitted data. - -@cindex bugs, appalling -This event may reflect an attacker attempting to evade the monitor. -Unfortunately, however, experience has shown that -@emph{(i)} inconsistent retransmissions do in fact -happen due to (appalling) TCP implementation bugs, and -@emph{(ii)} once they occur, they tend to cascade, because often -the source of the bug is that the two endpoints have become -desynchronized. - -The handler logs the message in the format -@code{"}@emph{id}@code{ rexmit inconsistency () ()"} . However, -the handler only logs the first instance of an inconsistency, due to -the cascade problem mentioned above. - -@emph{Deficiency: The handler is not told which of the two connection endpoints was the faulty transmitter. } - -@cindex packets, drops -@cindex acknowledgment holes -@cindex inconsistent acknowledgment -@cindex bugs, appalling -@item @code{ack_above_hole (c: connection, t1: string, t2: string)} -Invoked when Bro sees a TCP receiver acknowledge data above -a sequence hole. In principle, this should never occur. Its -presence generally means one of two things: @emph{(i)} a TCP -implementation with an appalling bug (these definitely exist), -or @emph{(ii)} a packet drop by Bro's packet capture facility, -such that it never saw the data now being acknowledged. - -Because of the seriousness of this latter possibility, the -handler logs a message -@code{ack above a hole}. -@emph{Note: You can often distinguish between a truly broken TCP acknowledgment and Bro dropping packets by the fact that in the latter case you generally see a cluster of ack-above-a-hole messages among otherwise unrelated connections. } - -@emph{Deficiency: The handler is not told which of the two connection endpoints sent the acknowledgment. } - -@end table - -@cindex event handling, weird - -@cindex unusual events -@cindex exceptional events -@cindex events, exceptional -@cindex weird events - -@node icmp Analyzer, -@section The @code{icmp} Analyzer - -not done. - -@node stepping Analyzer, -@section The @code{stepping} Analyzer - -not done. - -@node ssh-stepping Analysis Script, -@section The @code{ssh-stepping} Analysis Script - -not done. - -@node backdoor Analyzer, -@section The @code{backdoor} Analyzer - -not done. - -@node interconn Analyzer, -@section The @code{interconn} Analyzer - -not done. - -@cindex standard scripts -@cindex scripts, standard -@cindex analyzers - - diff --git a/doc/ref-manual/bro.css b/doc/ref-manual/bro.css deleted file mode 100644 index 0bebab8e63..0000000000 --- a/doc/ref-manual/bro.css +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Custom nllite stylesheet - */ -body { - font-family: Verdana, Arial, serif; -} -H1 { - color: #339933; -} -A:link, A:active, A:visited, A:hover { - color: #3333ff; - text-decoration: none; -} -A:hover { - border-bottom: 1px dotted red; - color: red; - text-decoration: none; -} -ul.menu { - list-style-type: circle; - list-style-position: inside; - padding: 5px; - background-color: #ccffcc; - border: 1px dashed #333333; -} -hr { - display: none; -} -div.node { - font-size: 12px; - font-weight: bold; - background-color: #ccffcc; -/* - line-height: 0; -*/ - padding: 0.5em; -} -table.cartouche { - background-color: white; -} -table { - border: none; -} diff --git a/doc/ref-manual/debugger.texi b/doc/ref-manual/debugger.texi deleted file mode 100644 index cb542edd89..0000000000 --- a/doc/ref-manual/debugger.texi +++ /dev/null @@ -1,389 +0,0 @@ - -@node Interactive Debugger -@chapter Interactive Debugger - -@menu -* Debugger Overview:: -* A Sample Session:: -* Usage:: -* Notes and Limitations:: -* Reference:: -@end menu - -@node Debugger Overview, -@section Debugger Overview - -Bro's interactive debugger is intended to aid in the development, -testing, and maintenance of policy scripts. The debugger's interface -has been modeled after the popular @code{gdb} debugger; the -command syntax is virtually identical. While at present the Bro -debugger supports only a small subset of @code{gdb}'s features, -these were chosen to be the most commonly used commands. Additional -features beyond those of @code{gdb}, such as wildcarding, have -been added to specifically address needs created by Bro policy scripts. - -@node A Sample Session, -@section A Sample Session - -The transcript below should look very familiar to those familiar with -@code{gdb}. The debugger's command prompt accepts debugger commands; -before each prompt, the line of policy code that is next to be -executed is displayed. - -First we activate the debugger with the @code{-d} command-line switch. -@example -bobcat:~/bro/bro$ ./bro -d -r slice.trace brolite -Policy file debugging ON. -In bro_init() at policy/ftp.bro:437 -437 have_FTP = T; -@end example - Next, we set a breakpoint in the @code{connection_finished} -event handler [reference this somehow]. A breakpoint causes the -script's execution to stop when it reaches the specified function. In -this case, there are many event handlers for the -@code{connection_finished} event, so we are given a choice. -@example -(Bro [0]) break connection_finished -Setting breakpoint on connection_finished: - -There are multiple definitions of that event handler. -Please choose one of the following options: -[1] policy/conn.bro:268 -[2] policy/active.bro:14 -[3] policy/ftp.bro:413 -[4] policy/demux.bro:40 -[5] policy/login.bro:496 -[a] All of the above -[n] None of the above -Enter your choice: 1 -Breakpoint 1 set at connection_finished at policy/conn.bro:268 -@end example - Now we resume execution; when the breakpoint is reached, execution -stops and the debugger prompt returns. -@example -(Bro [1]) continue -Continuing. -Breakpoint 1, connection_finished(c = '[id=[orig_h=1.0.0.163, -orig_p=2048/tcp, resp_h=1.0.0.6, resp_p=23/tcp], orig=[size=0, -state=5], resp=[size=46, state=5], start_time=929729696.316166, -duration=0.0773319005966187, service=, addl=, hot=0]') at -policy/conn.bro:268 -In connection_finished(c = '[id=[orig_h=1.0.0.163, orig_p=2048/tcp, -resp_h=1.0.0.6, resp_p=23/tcp], orig=[size=0, state=5], resp=[size=46, -state=5], start_time=929729696.316166, duration=0.0773319005966187, -service=, addl=, hot=0]') at policy/conn.bro:268 -268 if ( c$orig$size == 0 || c$resp$size == 0 ) -@end example - We now step through a few lines of code and into the -@code{record_connection} call. -@example -(Bro [2]) step -274 record_connection(c, "finished"); -(Bro [3]) step -In record_connection(c = '[id=[orig_h=1.0.0.163, orig_p=2048/tcp, -resp_h=1.0.0.6, resp_p=23/tcp], orig=[size=0, state=5], resp=[size=46, -state=5], start_time=929729696.316166, duration=0.0773319005966187, -service=, addl=, hot=0]', disposition = 'finished') at -policy/conn.bro:162 -162 local id = c$id; -(Bro [4]) step -163 local local_init = to_net(id$orig_h) in local_nets; -@end example - -We now print the value of the @code{id} variable, which was set in -the previously executed statement @code{local id = c$id;}. We follow -that with a backtrace (@code{bt}) call, which prints a trace of the -currently-executing functions and event handlers (along with their -actual arguments). We then remove the breakpoint and continue -execution to its end (the remaining output has been trimmed off). -@example -(Bro [5]) print id -[orig_h=1.0.0.163, orig_p=2048/tcp, resp_h=1.0.0.6, resp_p=23/tcp] -(Bro [6]) bt -#0 In record_connection(c = '[id=[orig_h=1.0.0.163, orig_p=2048/tcp, - resp_h=1.0.0.6, resp_p=23/tcp], orig=[size=0, state=5], - resp=[size=46, state=5], start_time=929729696.316166, - duration=0.0773319005966187, service=, addl=, hot=0]', disposition = - 'finished') at policy/conn.bro:163 -#1 In connection_finished(c = '[id=[orig_h=1.0.0.163, orig_p=2048/tcp, - resp_h=1.0.0.6, resp_p=23/tcp], orig=[size=0, state=5], - resp=[size=46, state=5], start_time=929729696.316166, - duration=0.0773319005966187, service=, addl=, hot=0]') at - policy/conn.bro:274 -(Bro [7]) delete -Breakpoint 1 deleted -(Bro [8]) continue -Continuing. -... -@end example - - -@node Usage, -@section Usage - -The Bro debugger is invoked with the @code{-d} command-line -switch. It is strongly recommended that the debugger be used with a -tcpdump capture file as input (the @code{-r} switch) rather than in -``live'' mode, so that results are repeatable. - -Execution tracing is a feature which generates a complete record of -which code statements are executed during a given run. It is enabled -with the @code{-t} switch, whose argument specifies a file which -will contain the trace. - -Debugger commands all are a single word, though many of them take -additional arguments. Commands may be abbreviated with a prefix -(e.g., @code{fin} for @code{finish}); if the same prefix matches -multiple commands, the debugger will list all that match. Certain -very frequently-used commands, such as @code{next}, have been -given specific one-character shortcuts (in this case, -@code{n}). For more details on all the debugger commands, see the -Reference in section @ref{Reference}, below. - -The debugger's prompt can be activated in three ways. First, when -the @code{-d} switch is supplied, Bro stops in the -@code{bro_init} initialization function (more precisely, after -global-scope code has been executed; see section @ref{Notes and Limitations}). It is -also activated when a breakpoint is hit. Breakpoints are set with -the @code{break} command (see the Reference). The final way to -invoke the debugger's prompt is to interrupt execution by pressing -Ctrl-C (sending an Interrupt signal to the process). Execution will -be suspended after the currently-executing line is completed. - -@node Notes and Limitations, -@section Notes and Limitations - -@itemize @bullet -@item -Statements at global scope, i.e., those executed before the -@code{bro_init} function, may not be debugged at present. This is -because those statements load declarations for other functions -needed for the debugger to function properly. -@end itemize - -@node Reference, -@section Reference - -@strong{large Summary of Commands} -Note: all commands may be abbreviated with a unique prefix. Shortcuts -below are special exceptions to this rule. - -@float Table, Debugger commands -@multitable @columnfractions .15 .15 .6 -@item @strong{Command} @tab @strong{Shortcut} @tab @strong{Description} -@item help @tab @tab Get help with debugger commands -@item quit @tab @tab Exit Bro -@item next @tab n @tab Step to the following statement, skipping function calls -@item step @tab s @tab Step to following statements, stepping in to function calls -@item continue @tab c @tab Resume execution of the policy script -@item finish @tab @tab Run until the currently-executing function completes -@item break @tab b @tab Set a breakpoint -@item condition @tab @tab Set a condition on an existing breakpoint -@item delete @tab d @tab Delete the specified breakpoints; delete all if no arguments -@item disable @tab @tab Turn off the specified breakpoint; do not delete -permanently -@item enable @tab @tab Undo a prior `disable' command -@item info @tab @tab Get information about the debugging environment -@item print @tab p @tab Evaluate an expression and print the result -@item set @tab @tab Alias for `print' -@item backtrace @tab bt @tab Print a stack trace -@item frame @tab @tab Select frame number N -@item up @tab @tab Select the stack frame one level up from the current one -@item down @tab @tab Select the stack frame one level down from the current one -@item list @tab l @tab Print source lines surrounding specified context -@item trace @tab @tab Turn on or off execution tracing -@end multitable -@caption{Debugger Commands} -@end float - -@* - -@strong{Getting Help} -@table @samp - -@item help -Help for each command may be invoked with the @code{help} -command. Calling the command with no arguments displays a one-line -summary of each command. -@end table - -@strong{Command-Line Options} -@table @samp - -@item @code{-d} switch -The @code{-d} switch enables the Bro -script debugger. - -@item @code{-t} switch -The @code{-t} enables execution -tracing. There is an argument to the switch, which indicates a file -that will contain the result of the trace. Trace output consists of -the source code lines executed, indented for each nested function invocation. - -@strong{Example.} The following command invokes Bro, using @code{tcpdump_file} for -the input packets and outputting the result of the trace to -@code{execution_trace}. -@example - ./bro -t execution_trace -r tcpdump_file policy_script.bro - @end example - -@strong{Example.} If the argument to @code{-t} is a single dash -character (``@code{-}''), then the trace output is sent to -@code{stderr}. -@example - ./bro -t - -r tcpdump_file policy_script.bro - @end example - -@strong{Example.} Lastly, execution tracing may be combined with the -debugger. Here we send output to @code{stderr}, so it will be -intermingled with the debugger's output. Tracing may be turned off -and on in the debugger using the @code{trace} command. -@example - ./bro -d -t - -r tcpdump_file policy_script.bro - @end example - -@end table - -@strong{Running the Script} -@table @samp - -@item quit -Exit Bro, aborting execution of the currently executing script. - -@item restart (r) -@emph{(Currently Unimplemented)} Restart the execution -of the script, rewinding to the beginning of the input file(s), if -appropriate. Breakpoints and other debugger state are preserved. - -@item continue (c) -Resume execution of the script file. The script will -continue running until interrupted by a breakpoint or a signal. - -@item next (n) -Execute one statement, without entering any subroutines -called in that statement. - -@item step (s) -Execute one statement, but stop on entry to any called subroutine. - -@item finish -Run until the currently executing function returns. -@end table - -@strong{Breakpoints} -@table @samp - -@item break (b) -Set a breakpoint. A breakpoint suspend execution when -execution reaches a particular location and returns control to the -debugger. Breakpoint locations may be specified in a number of ways: - -@multitable @columnfractions .3 .6 -@item @code{break} @tab With no argument, the current line is used. -@item @code{break} @emph{[FILE:]LINE} @tab The specified line in the specified file; if -no policy file is specified, the current file is implied. -@item @code{break} @emph{FUNCTION} @tab The first line of the specified function or -event handler. If more than one event handler matches the name, a choice -will be presented. -@item @code{break} @emph{WILDCARD} @tab Similar to @emph{FUNCTION}, but a -POSIX-compliant regular expression (see the @code{regex(3)} man -page )is supplied, which is matched against all functions and event -handlers. One exception to the the POSIX syntax is that, as in the -shell, the @code{*} character may be used to match zero or more -of any character without a preceding period character (@code{.}). -@end multitable - -@item condition @emph{N expression} -The numeric argument -$N$ indicates which breakpoint to add a condition to, and the -expression is the conditional expression. A breakpoint with a -condition will only stop execution when the supplied condition is -true. The condition will be evaluated in the context of the -breakpoint's location when it is reached. - -@item enable -With no arguments, enable all breakpoints -previously disabled with the @code{disable} command. If numeric -arguments separated by spaces are provided, the breakpoints with those -numbers will be enabled. - -@item disable -With no arguments, disable all breakpoints. Disabled -breakpoints will not stop execution, but will be retained to be -enabled later. If numeric arguments separated by spaces are provided, -the breakpoints with those numbers will be disabled. - -@item delete (d) -With no arguments, permanently delete all -breakpoints. If numeric arguments separated by spaces are provided, -the breakpoints with those numbers will be deleted. -@end table - -@strong{Debugger State} -@table @samp - -@item @strong{info} -Give information about the -current script and debugging environment. A subcommand should follow -the @code{info} command to indicate which information is -desired. At present, the following subcommands are available: - -@multitable @columnfractions .2 .6 -@item @code{info break} @tab List all breakpoints and their status -@end multitable - -@end table - -@strong{Inspecting Program State} -@table @samp - -@item print (p) / set -The @code{print} command and its alias, -@code{set}, are used to evaluate any expression in the policy -script language. The result of the evaluation is printed -out. Results of the evaluation affect the current execution -environment; expressions may include things like assignment. The -expression is evaluated in the context of the currently selected -stack frame. The @code{frame}, @code{up}, and @code{down} -commands (below) are used to change the currently selected frame, -which defaults to the innermost one. - -@item backtrace (bt) -Print a description of all the stack frames (function -invocations) of the currently executing script.\ With no arguments, -prints out the currently selected stack frame.\ With a numeric -argument @emph{+/- N}, prints the innermost @emph{N} frames if the argument is -positive, or the outermost $N$ frames if the argument is negative. - -@item frame -With no arguments, prints the currently selected -frame. \ With a numeric argument $N$, selects frame $N$. Frame -numbers are numbered inside-out from 0; the - -@item up -Select the stack frame that called the currently selected -one. If a numeric argument $N$ is supplied, go up that many frames. - -@item down -Select the stack frame called by the currently selected -one. If a numeric argument $N$ is supplied, go down that many frames. - -@item list (l) -With no argument, print the ten lines of script source -code following the previous listing. If there was no previous -listing, print ten lines surrounding the next statement to be -executed. If an argument is supplied, ten lines are printed around -the location it describes. The argument may take one of the -following forms: - -@emph{[FILE:]LINE} -The specified line in the specified file; if -no policy file is specified, the current file is implied. \ -@emph{FUNCTION} The first line of the specified function or -event handler. If more than one event handler matches the name, a choice -will be presented. \ -$\pm N$ With a numeric argument preceded by a plus or minus -sign, the line at the supplied offset from the previously selected line. - -@end table - diff --git a/doc/ref-manual/intro.texi b/doc/ref-manual/intro.texi deleted file mode 100644 index 9b96709f55..0000000000 --- a/doc/ref-manual/intro.texi +++ /dev/null @@ -1,170 +0,0 @@ - -@node Introduction -@chapter Introduction - -Bro is an intrusion detection system that works by passively watching -traffic seen on a network link. It is built around an @emph{event engine} -that pieces network packets into events that reflect different types of -activity. Some events are quite low-level, such as the monitor seeing -a connection attempt; some are specific to a particular network protocol, -such as an FTP request or reply; and some reflect fairly high-level notions, -such as a user having successfully authenticated during a login session. - -Bro runs the events produced by the event engine through a @emph{policy script}, which you (the Bro administrator) supply, though in general you will -do so by using large portions of the scripts -(``@emph{analyzers}''; see below) that come with the Bro distribution. - -You write policy scripts in ``Bro'', a specialized language geared towards -network analysis in general and security analysis in particular. Bro scripts -are made up of @emph{event handlers} that specify what to do whenever a -given event occurs. Event handlers can maintain and update global state -information, write arbitrary information to disk files, generate new -events, call functions (either user-defined or predefined), generate -@emph{alarms} that produce @emph{syslog} messages, and invoke arbitrary -shell commands. These latter might terminate a running connection or talk -to your border router to install an ACL prohibiting traffic from a particular -host, for example. - -The Bro language is strongly typed and includes a bunch of types designed -to aid analyzing network traffic. It also supports @emph{implicit typing}, -meaning that often you don't need to explicitly indicate a variable's type -because Bro can figure it out from context. This feature makes the strong typing -a bit less of a pain, while retaining its bug-finding benefits. - -For high performance, Bro relies on use of an efficient @emph{packet filter} -to capture only a (hopefully small) subset of the traffic that transits -the link it monitors. Related to this, Bro comes with a set of -@emph{analyzers}, that is, scripts for analyzing different protocols and -different types of activity. In general you can pick and choose among -these for which types of analysis you want to enable, and Bro will only -capture traffic relating to the analyzers you choose. Thus, you can -control how much work Bro has to do by the analyzers you designate, a -potentially major consideration if the monitored link has a high volume -of traffic. - -Experience has shown that the policy scripts often require tailoring -to each environment in which they're used; but if the tailoring is done -by editing the analyzers supplied with the Bro distribution, you wind -up with multiple copies of the analyzers, all slightly different, such -that when you want to make a general change to all of them, it takes -careful (and tedious) editing to correctly apply the change to all of -the copies. - -Consequently, Bro emphasizes the use of tables and sets of values as ways -to codify policy particulars such as which hosts should generate alarms -if seen engaged in various types of connections, which usernames are sensitive -and should trigger alarms when used, and so on. The various analyzers -are written such that you can (often) customize them by simply changing -variables associated with the analyzer. Furthermore, Bro -supports a notion of @emph{refining} the initialization of a variable, so -that, in a @emph{separate} file from the one defining an analyzer, you -can either @emph{(i)} @emph{redefine} the variable's initial value, -@emph{(ii)} @emph{add} new elements to a given table, set or pattern, or -@emph{(iii)} @emph{remove} elements from a given table or set. -In a nutshell, refinement allows you to specify particular policies -in terms of their @emph{differences} from existing policies, rather -than in their entirety. - -@cindex Bro!references -You can find an overview of Bro in the paper -``Bro: A System for Detecting Network Intruders in Real-Time,'' -Proceedings of the 1998 USENIX Security Symposium -@uref{insert URL,Pa98} -and a revised version -in @emph{Computer Networks} -@uref{insert URL,Pa99} -A copy of the latter is included in the Bro distribution. - -@strong{Using this manual:} - -This manual is intended to provide full documentation for users -of Bro, both those who wish to write Bro scripts to use Bro's existing -analyzers, and those who wish to implement event engine support for new Bro -analyzers. The current version of the manual is @emph{incomplete}; -in particular, it does not discuss the internals of the event engines, -and a number of other topics have only placeholders. - -The manual is organized @emph{not} as a tutorial, but rather closer to a -reference manual. In particular, the intent is for the @emph{index} to -be highly comprehensive, and to serve as one of the main tools to help -you navigate through Bro's numerous features and capabilities. Accordingly, -the index contains many ``redundant'' entries, that is, the same -information indexed in multiple ways, to try to make it particularly easy -to look up information. For example, you'll find a list of all of -the predefined functions under ``predefined functions'', and also -under ``functions''. There are similar entries for ``events'' and -``variables''. - -The manual also includes @emph{Note:}'s and @emph{Deficiency:}'s that -emphasize points that may be subtle or counter-intuitive, or that -reflect bugs of some form. The general delineation between the two -is that @emph{Note:}'s discuss facets of Bro not likely to change, -while @emph{Deficiency:}'s will (should) eventually get fixed. - -I'm very interested in feedback on whether the manual in general and the -index in particular is effective, what should be added or removed from it -to improve it, any errors found in the index or (of course) elsewhere in -the manual, and what topics you would give the highest priority for the -next revision of the manual. In addition, @emph{any contributions to the manual} will be highly welcome! You'll find the source for the manual -in @emph{doc/manual-src/}. - -The current version of the manual is organized as follows. -We begin with an overview of how to get started using Bro: building -and installing it, running it interactively and on live and prerecorded -network traffic, and the helper utilities (scripts and programs) included -in the distribution (Chapter N). - -Chapter N then discusses the different -types, values, and constants that Bro supports. The intent is to provide -you with some of the flavor of the language. In addition, later chapters -use these concepts to explain things like the types associated with the -arguments passed to different event handlers. - -Chapter N lists the different variables and functions -that Bro predefines. The variables generally reflect particular values -that control the behavior of the event engine or reflect its status, -and the functions are for the most part utilities to aid in the writing -of Bro scripts. - -Chapter N discusses the different analyzers that -Bro provides. It is far and away the longest chapter, since there -are a good number of analyzers, and some of them are quite rich -in their analysis. - -Chapter N describes how to use Bro's @emph{signature engine}. -The signature engine provides a general mechanism for searching for -regular expressions in packet payloads or reassembled TCP byte streams. -Successful matches can then be fed as events into your policy script -for further analysis, including the opportunity to assess the match -in terms of surrounding context, which can greatly reduce the problem -of ``false positives'' from which signature-matching can suffer. -The chapter also discusses how to incorporate signatures from the popular -@emph{Snort} intrusion detection system. - -Chapter N gives an overview of Bro's @emph{interactive debugger}. -The debugger allows you to breakpoint your policy script and inspect and -change the values of script variables. The chapter also describes the -generation of @emph{traces} of all of the events generated during execution. - -Finally, Chapter N briefly lists different aspects of Bro -that have not yet been documented (in addition to the event engine -and the Bro language itself). - -@noindent @emph{Acknowledgments:} - -Major components of Bro's functionality were contributed by Ruoming Pang, -Umesh Shankar, Robin Sommer, and Chema Gonzalez. Robin also wrote -Chapter N of this manual; Umesh wrote Chapter N; -and Michael Kuhn and Benedikt Ostermaier contributed the SSL analyzer -(with additional development by Scott Campbell) and the associated -documentation. - -Many thanks, too, to Craig Leres, Craig Lant, Jim Mellander, Anne Hutton, -David Johnston, Mark Handley, and Partha Banerjee for their contributions -and operational feedback. - -Finally, a number of people were instrumental to supporting Bro's development: -Jim Rothfuss, Mark Rosenberg, Stu Loken, Van Jacobson, Dave Stevens, and -Jeff Mogul. Again, many thanks! - - diff --git a/doc/ref-manual/predefined.texi b/doc/ref-manual/predefined.texi deleted file mode 100644 index 639fe09de8..0000000000 --- a/doc/ref-manual/predefined.texi +++ /dev/null @@ -1,3108 +0,0 @@ - -@node Predefined Variables and Functions -@chapter Predefined Variables and Functions - -@menu -* Predefined Variables:: -* Predefined Functions:: -@end menu - -@node Predefined Variables, -@section Predefined Variables - -@cindex predefined variables - -Bro predefines and responds to the following variables, organized by -the policy file in which they are contained. Note that you will only -be able to access the variables in a policy file if you @code{load} it or -a policy file which loads it. - -@menu -* activebro:: -* anonbro:: -* backdoorbro:: -* broinit:: -* code-redbro:: -* connbro:: -* demuxbro:: -* dnsbro:: -* dns-mappingbro:: -* fingerbro:: -* ftpbro:: -* hotbro:: -* hot-idsbro:: -* httpbro:: -* http-abstractbro:: -* http-requestbro:: -* icmpbro:: -* identbro:: -* interconnbro:: -* ircbro:: -* loginbro:: -* mimebro:: -* noticebro:: -* ntpbro:: -* pop3bro:: -* port-namesbro:: -* portmapperbro:: -* scanbro:: -* signaturesbro:: -* sitebro:: -* smtpbro:: -* smtp-relaybro:: -* softwarebro:: -* sshbro:: -* steppingbro:: -* tftpbro:: -* udpbro:: -* weirdbro:: -* wormbro:: -* Uncategorized:: -@end menu - -@node activebro, -@subsection active.bro - -@table @samp - -@code{active_conn : table[conn_id] of connection} -@vindex active_conn -@quotation -A table of @code{connection} records corresponding to all active -connections. -@end quotation - -@end table - -@node anonbro, -@subsection anon.bro - -@table @samp -@code{anon_log : file} -@vindex anon_log -@quotation -The file into which anonymization @emph{Fixme: Add a reference to doc on anonymization when it is available.} IP address mappings are written. -@end quotation - -@code{preserved_subnet : set[subnet]} -@vindex preserved_subnet -@quotation -Addresses in these subnet are preserved when anonymization is being -performed. See also @code{preserved_net}. NOTE: The variable @code{const}. so may only be changed via @code{redef} -@end quotation - -@code{preserved_net : set[net]} -@vindex preserved_net -@quotation -These Class A/B/C nets are preserved when anonymization is being -performed. See also @code{preserved_subnet}. -@end quotation - -@end table - -@node backdoorbro, -@subsection backdoor.bro - -@table @samp -@code{backdoor_log : file} -@vindex backdoor_log -@quotation -The file into which logs for backdoor servers -() are written. -@end quotation - -@code{backdoor_min_num_lines : count} -@vindex backdoor_min_num_lines -@quotation -The number of lines of @emph{Fixme: must be telnet?} input and output must be more than this amount to -trigger backdoor checking. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_min_normal_line_ratio : double} -@vindex backdoor_min_normal_line_ratio -@quotation -If the fraction of ``normal'' (less than a certain length) lines is -below this value, then backdoor checking is not performed. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_min_bytes : count} -@vindex backdoor_min_bytes -@quotation -The total number of bytes transferred on the connection must be at -least this large in order for backdoor checking to be performed. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_min_7bit_ascii_ratio : double} -@vindex backdoor_min_7bit_ascii_ratio -@quotation -The fraction of 7-bit ASCII characters out of all bytes transferred -must be at least this large in order for backdoor checking to be performed. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_demux_disabled : bool} -@vindex backdoor_demux_disabled -@quotation -If T (the default), then suspected backdoor connections are not -demuxed into sender and receiver streams. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_demux_skip_tags : set[string]} -@vindex backdoor_demux_skip_tags -@quotation -If the type of backdoor (the tag) is in this set, the connection will -not be demuxed. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_ignore_src_addrs : table[string, addr] of bool} -@vindex backdoor_ignore_src_addrs -@quotation -If the suspected backdoor name (``*'' for any) and source address (or -its /16 or /24) subnet are in this table as a pair, then the backdoor -will not be logged. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_ignore_dst_addrs : table[string, addr] of bool} -@vindex backdoor_ignore_dst_addrs -@quotation -If the suspected backdoor name (``*'' for any) and destination address (or -its /16 or /24) subnet are in this table as a pair, then the backdoor -will not be logged. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_ignore_ports : table[string, port] of bool} -@quotation -The following (signature, well-known port) pairs should not generated -a backdoor notice. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_standard_ports : set[port]} -@quotation -See @code{backdoor_annotate_standard_ports}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_stat_period : interval} -@quotation -A report on backdoor stats is generated at this interval. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_stat_backoff : interval} -@quotation -@emph{Fixme: Not sure about the exact definition here} The backdoor report -interval (@code{backdoor_stat_period}) is increased by this factor each time it is generated, -except if the timers are artificially expired. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backdoor_annotate_standard_ports : bool} -@quotation -If T (the default), backdoor notices for those on @code{backdoor_standard_ports} -should be annotated with the backdoor tag name. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ssh_sig_disabled : bool} -@quotation -If T (default = F), then matches against the SSH signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{telnet_sig_disabled : bool} -@quotation -If T (default = F), then matches against the telnet signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{telnet_sig_3byte_disabled : bool} -@quotation -If T (default = F), then matches against the 3-byte telnet signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{rlogin_sig_disabled : bool} -@quotation -If T (default = F), then matches against the rlogin signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{rlogin_sig_1byte_disabled : bool} -@quotation -If T (default = F), then matches against the 1-byte rlogin signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{root_backdoor_sig_disabled : bool} -@quotation -If T (default = F), then matches against the root backdoor signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ftp_sig_disabled : bool} -@quotation -If T (default = F), then matches against the FTP signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{napster_sig_disabled : bool} -@quotation -If T (default = F), then matches against the Napster signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{gnutella_sig_disabled : bool} -@quotation -If T (default = F), then matches against the Gnutella signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{kazaa_sig_disabled : bool} -@quotation -If T (default = F), then matches against the KaZaA signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{http_sig_disabled : bool} -@quotation -If T (default = F), then matches against the HTTP signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{http_proxy_sig_disabled : bool} -@quotation -If T (default = F), then matches against the HTTP proxy signature are ignored. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{did_sigconns : table[conn_id] of set[string]} -@quotation -A table which indicates, for each connection, which backdoor server -signatures were found in the connection's traffic, e.g., ``ftp-sig'' -or ``napster-sig''. -@end quotation - -@code{rlogin_conns : table[conn_id] of rlogin_conn_info} -@quotation -A table that holds relevant state variables (an @code{rlogin_conn_info} - record) for @code{rsh} connections. -@end quotation - -@code{root_backdoor_sig_conns : set[conn_id]} -@quotation -The set of connections for which a root backdoor signature -(``root-bd-sig'') has been detected. -@end quotation - -@code{ssh_len_conns : set[conn_id]} -@quotation -The set of connections that are predicted to contain SSH traffic, -based on the proportion of packets that meet the expected packet size -distribution. Relevant parameters are @code{ssh_min_num_pkts} and -@code{ssh_min_ssh_pkts_ratio}, which are local to @code{backdoor}. -@end quotation - -@code{ssh_min_num_pkts : count} -@quotation -The minimum number of packets that look like SSH packets that allow a -stream to be classified as such. -@end quotation - -@code{ssh_min_ssh_pkts_ratio : double} -@quotation -The minimum fraction of packets in a stream that look like SSH packets that allow a -stream to be classified as such. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{telnet_sig_conns : table[conn_id] of count} -@quotation -The set of connections that are predicted to be Telnet connections, -based on observation of the Telnet signature, the IAC byte (0xff). -@end quotation - -@code{telnet_sig_3byte_conns : table[conn_id] of count} -@quotation -Similar to @code{telnet_sig_conns}, but the signature matched is a -whole 3-byte Telnet command sequence. -@end quotation - -@end table - -@node broinit, -@subsection bro.init - -@table @samp - -@code{ignore_checksums : bool} -@quotation -If T (default = F), packet checksums are not verified. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{partial_connection_ok : bool} -@quotation -If T (the default), instantiate connection state when a partial connection -(one missing its initial establishment negotiation) is seen. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_SYN_ack_ok : bool} -@quotation -If T (the default), instantiate connection state when a SYN ack is seen -but not the initial SYN (even if partial_connection_ok is false). -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_match_undelivered : bool} -@quotation -If a connection state is removed there may still be some undelivered -data waiting in the reassembler. If T (the default), pass this to the signature -engine before flushing the state. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_SYN_timeout : interval} -@quotation -Check up on the result of an initial SYN after this much -time. @emph{Fixme: What exactly does this mean? Check that the connection is active?} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_session_timer : interval} -@quotation -After a connection has closed, wait this long for further activity -before checking whether to time out its state. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_connection_linger : interval} -@quotation -When checking a closed connection for further activity, consider it -inactive if there hasn't been any for this long. Complain if the -connection is reused before this much time has elapsed. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_attempt_delayv : interval} -@quotation -Wait this long upon seeing an initial SYN before timing out the -connection attempt. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_close_delay : interval} -@quotation -Upon seeing a normal connection close, flush state after this much time. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_reset_delay : interval} -@quotation -Upon seeing a RST, flush state after this much time. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_partial_close_delay : interval} -@quotation -Generate a connection_partial_close event this much time after one half -of a partial connection closes, assuming there has been no subsequent -activity. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{non_analyzed_lifetime : interval} -@quotation -If a connection belongs to an application that we don't analyze, -time it out after this interval. If 0 secs, then don't time it out. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{inactivity_timeout : interval} -@quotation -If a connection is inactive, time it out after this interval. -If 0 secs, then don't time it out. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_storm_thresh : count} -@quotation -This many FINs/RSTs in a row constitutes a "storm". See also @code{tcp_storm_interarrival_thresh}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_storm_interarrival_thresh : interval} -@quotation -The FINs/RSTs must come with this much time or less between them to be -considered a storm. See also @code{tcp_storm_thresh}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_reassembler_ports_orig : set[port]} -@quotation -For services without a handler, these sets define which -side of a connection is to be reassembled. @emph{Fixme: What is the point of this exactly? What are you analyzing?} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{tcp_reassembler_ports_resp : set[port]} -@quotation -For services without a handler, these sets define which -side of a connection is to be reassembled. @emph{Fixme: What is the point of this exactly? What are you analyzing?} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{table_expire_interval : interval} -@quotation -Check for expired table entries after this amount of time @emph{Fixme: Which tables?} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{dns_session_timeout : interval} -@quotation -Time to wait before timing out a DNS request. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ntp_session_timeout : interval} -@quotation -Time to wait before timing out an NTP request. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{rpc_timeout : interval} -@quotation -Time to wait before timing out an RPC request. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{watchdog_interval : interval} -@quotation -A SIGALRM is set for this interval to make sure that Bro does not get -caught up doing something for too long. @emph{Fixme: True?} If this happens, -Bro is termination after doing a dump of all remaining packets. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{heartbeat_interval : interval} -@quotation -After each interval of this length, update the -variable. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{anonymize_ip_addr : bool} -@quotation -If true (default = false), then IP addresses are anonymized in notice -and log generation. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{omit_rewrite_place_holder : bool} -@quotation -If true, omit place holder packets when rewriting. @emph{Fixme: Should this go somewhere else?} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{rewriting_http_trace : bool} -@quotation -If true (default = F), HTTP traces are rewritten. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{rewriting_smtp_trace : bool} -@quotation -If true (default = F), SMTP traces are rewritten. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node code-redbro, -@subsection code-red.bro - -@table @samp - -@code{code_red_log file} -@quotation -The file into which Code Red-related logs are written. -@end quotation - -@code{code_red_list1 : table[addr] of count} -@quotation -A table which contains, for each IP address, how many Code Red I attacks -were observed (based on a signature) by the machine at that address. -@end quotation - -@code{code_red_list2 : table[addr] of count} -@quotation -A table which contains, for each IP address, how many Code Red II attacks -were observed (based on a signature) by the machine at that address. -@end quotation - -@code{local_code_red_response_pgm : string} -@quotation -By default, an empty string; if @code{&redef}ed, the specified program -will be invoked with the attack source IP as the argument the first -time an attack from that IP is observed. -@end quotation - -@code{remote_code_red_response_pgm : string} -@quotation -By default, an empty string; if @code{&redef}ed, the specified program -will be invoked with the attack destination IP as the argument the first -time an attack on that IP is observed. -@end quotation - -@end table - -@node connbro, -@subsection conn.bro - -@table @samp - -@code{have_FTP : bool} -@quotation -If true, @code{ftp.bro} has been loaded. -@end quotation - -@code{have_SMTP : bool} -@quotation -If true, @code{smtp.bro} has been loaded. -@end quotation - -@code{have_stats : bool} -@quotation -True if was ever updated with packet capture statistics. -@end quotation - -@code{hot_conns_reported : set[string]} -@quotation -The set of connections (indexed by the entire 'hot' message) that have -previously been flagged as @code{hot}. -@end quotation - -@code{last_stat : net_stats} -@quotation -The last recorded snapshot of packet capture statistics, in a record. -@end quotation - -@code{last_stat_time : time} -@quotation -The last time that network statistics were read into . -@end quotation - -@code{RPC_server_map : table[addr, port] of string} -@quotation -Maps a given port on a given server's address to an RPC service. -If we haven't loaded @code{portmapper.bro}, then it will be empty; see -@code{portmapper.bro} and the @code{portmapper} module documentation -for more information. -@end quotation - -@end table - -@node demuxbro, -@subsection demux.bro - -For more information on demultiplexing of connections, see the -@ref{demux Analysis Script,demux Analysis Script}. - -@table @samp - -@code{demux_dir : string} -@quotation -The name of the directory which will contain the files with -demultiplexed connection data. -@end quotation - -@code{demuxed_conn : set[conn_id]} -@quotation -The set of connections that are currently being demultiplexed. -@end quotation - -@end table - -@node dnsbro, -@subsection dns.bro - -@table @samp - -@code{actually_rejected_PTR_anno : set[string]} -@quotation -Annotations that if returned for a PTR lookup actually indicate -a rejected query; for example, "illegal-address.lbl.gov". -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{sensitive_lookup_hosts : set[addr]} -@quotation -Hosts in this set generate a notice when they are -returned in PTR queries, unless the originating host is in @code{sensitive_lookup_hosts}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{okay_to_lookup_sensitive_hosts : set[addr]} -@quotation -If the DNS request originator is in this set, then it is allowed to -look up ``sensitive'' hosts (see also @code{sensitive_lookup_hosts}) -without causing a notice. -@end quotation - -@code{dns_log : file} -@quotation -The file into which DNS-related logs are written. -@end quotation - -@code{dns_sessions : table[addr, addr] of dns_session_info} -@quotation -A table of outstanding DNS sessions indexed by [client IP, server IP]. -@emph{Fixme: Need to illustrate dns_sessions_info. } -@end quotation - -@code{num_dns_sessions : count} -@quotation -The total number of entries that have ever been in the table. -@end quotation - -@code{distinct_PTR_requests : table[addr, string] of count} -@quotation -The number of DNS PTR requests observed with the given source address -and request string. -@end quotation - -@code{distinct_rejected_PTR_requests : table[addr] of count} -@quotation -How many DNS PTR requests from the given source address were -rejected. A report is generated if this number crosses a threshold, -namely, @code{report_rejected_PTR_thresh}. -@end quotation - -@code{distinct_answered_PTR_requests : table[addr] of count} -@quotation -How many DNS PTR requests from the given source address were rejected. -@end quotation - -@code{report_rejected_PTR_thresh : count} -@quotation -If this many DNS requests from a host are rejected, generate a -possible PTR scan event. -@end quotation - -@code{report_rejected_PTR_factor : double} -@quotation -If DNS requests from a host are rejected more than accepted by this -factor, generate a event. -@end quotation - -@code{allow_PTR_scans set[addr]} -@quotation -The set of hosts for which a @code{PTR_scan} event does not generate a report -(that is, the scan is allowed). -@end quotation - -@code{did_PTR_scan_event table[addr] of count} -@quotation -A table of hosts for which a event has been generated. -@end quotation - -@end table - -@node dns-mappingbro, -@subsection dns-mapping.bro - -@table @samp - -@code{dns_interesting_changes} -@quotation -The set of DNS mapping changes (according to lookups by Bro itself) -that is interesting enough to notice. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node fingerbro, -@subsection finger.bro - -@table @samp - -@code{hot_names : set[string]} -@quotation -If a finger request for any of the names in this set is observed, the -associated connection is marked ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{max_finger_request_len : count} -@quotation -If a finger request is longer than this length, then it is marked as ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{rewrite_finger_trace : bool} -@quotation -Indicates whether or not finger requests are rewritten for anonymity. -@end quotation - -@end table - -@node ftpbro, -@subsection ftp.bro - -@table @samp - -@code{ftp_log : file} -@quotation -The file into which FTP-related logs are written. -@end quotation - -@code{ftp_sessions : table[conn_id] of ftp_session_info} - -@code{ftp_guest_ids : set[string]} -@quotation -The set of login IDs which are guest logins, e.g., ``anonymous'' and -``ftp''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ftp_skip_hot : set[addr, addr, string]} -@quotation -Indexed by source and destination addresses and the id, these -connections are not marked as ``hot'' even if its data would to cause -it to be otherwise. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ftp_hot_files : pattern} -@quotation -If a filename matching this pattern is requested, the @code{ftp_sensitive_files} - event is generated. The default behavior is to alarm the connection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ftp_hot_guest_files : pattern} -@quotation -If a user is logged in under a guest ID and attempts to retrieve a -file matching this pattern, the -@code{ftp_sensitive} event is generated. The default -behavior is to alarm the connection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{ftp_hot_cmds : table[string] of pattern} -@quotation -If an FTP command matches an index into the table and its argument -matches the associated pattern, the connection is alarmed. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_unexpected : set[addr]} -@quotation -Pairs of IP addresses for which we shouldn't bother logging if one -of them is used in lieu of the other in a PORT or PASV directive. -@end quotation - -@code{skip_unexpected_net : set[addr]} -@quotation -Similar to @code{skip_unexpected}, but matches a /24 subnet. -@end quotation - -@code{ftp_data_expected : table[addr, port] of addr} -@quotation -Indexed by the server's responder pair, yields the address expected to make an -FTP data connection to it. -@end quotation - -@code{ftp_data_expected_session : table[addr, port] of ftp_session_info} -@quotation -Indexed by the server's responder pair, yields the associated -@code{ftp_session_info} record for the expected incoming FTP data -connection. -@end quotation - -@code{ftp_excessive_filename_len : count} -@quotation -If an FTP request filename meets or exceeds this length, an -@code{FTP_ExcessiveFilename} notice is generated. -@end quotation - -@code{ftp_excessive_filename_trunc_len : count} -@quotation -How much of the excessively long filename is printed in the notice message. -@end quotation - -@code{ftp_ignore_invalid_PORT : pattern} -@quotation -Invalid PORT/PASV directives that exactly match this pattern don't -generate notices. -@end quotation - -@code{ftp_ignore_privileged_PASVs : set[port]} -@quotation -If an FTP PASV port is specified to be a privileged port (< 1024/tcp) -then an @code{FTP_PrivPort} event is generated, EXCEPT if the port is -in this set. -@end quotation - -@end table - -@node hotbro, -@subsection hot.bro - -@table @samp - -@code{same_local_net_is_spoof : bool} -@quotation -If true (default = F), it should be considered a spoofing attack if a connection has -the same local net for source and destination. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_spoof_services : set[port]} -@quotation -The services in this set are not counted as spoofed even if they pass -the test from @code{same_local_net_is_spoof}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_pairs : set[addr, addr]} -@quotation -Connections between these (source address, destination address) pairs -are never marked as ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_16_net_pairs : set[addr, addr]} -@quotation -Connections between these (/16 network, /32 destination host) pairs -are never marked as ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{hot_srcs : table[addr] of string} -@quotation -Connections from any of these sources are automatically marked ``hot'' -with the associated message in the table. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{hot_dsts : table[addr] of string} -@quotation -Connections to any of these destinations are automatically marked ``hot'' -with the associated message in the table. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{hot_src_24nets : table[addr] of string} -@quotation -Connections from any of these source /24 nets are automatically marked ``hot'' -with the associated message in the table. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{hot_dst_24nets : table[addr] of string} -@quotation -Connections to any of these destination /24 nets are automatically marked ``hot'' -with the associated message in the table. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_services : set[port]} -@quotation -Connections to this set of services are never marked ``hot'' (based on port -number). -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_services_to : set[addr, port]} -@quotation -Connections to the specified host and port are never marked ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_service_pairs : set[addr, addr, port]} -@quotation -Connections from the first address to the second on the specified -destination port are never marked ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{flag_successful_service : table[port] of string} -@quotation -Successful connections to any of the specified ports are flagged with -the accompanying message. Examples are popular backdoor ports. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{flag_successful_inbound_service : table[port] of string} -@quotation -Incoming connections to the specified ports are flagged with the -accompanying message. This is similar to -, but may be used when the port gives -to many false positives for outgoing connections. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{terminate_successful_inbound_service : table[port] of string} -@quotation -Connections to this port, if previously flagged by @code{flag_successful_service} - or @code{flag_incoming_service} are terminated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{flag_rejected_service : table[port] of string} -@quotation -Failed connection attempts to the specified ports are marked as ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node hot-idsbro, -@subsection hot-ids.bro - -@table @samp - -@code{forbidden_ids : set[string]} -@quotation -If any of these usernames/login IDs are used, the corresponding -connection is terminated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{forbidden_ids_if_no_password : set[string]} -@quotation -If any of these usernames/login IDs are used with no password, the corresponding -connection is terminated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{forbidden_id_patterns : pattern} -@quotation -If a username/login ID matches this pattern, the corresponding -connection is terminated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{always_hot_ids : set[string]} -@quotation -Connections that attempt to login with these IDs are always marked -``hot'', whether or not they succeed. See also @code{hot_ids}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{hot_ids : set[string]} -@quotation -Similar to , except that only successful connections are marked ``hot''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node httpbro, -@subsection http.bro - -@table @samp - -@code{http_log : file} -@quotation -The file into which HTTP-related logs are written. -@end quotation - -@code{http_sessions : table[addr, addr] of http_session_info} -@quotation -A [source, destination] indexed table of @code{http_session_info} records. -@end quotation - -@code{include_HTTP_abstract : bool} -@quotation -Currently used to indicate whether or not an abstract of the HTTP -request data will be included in a rewritten connection. -@end quotation - -@code{log_HTTP_data : bool} -@quotation -If true, an abstract of the HTTP request data is included in a log message. -@end quotation - -@code{maintain_http_sessions : bool} -@quotation -If true, HTTP sessions are maintained across multiple connections, -otherwise we not (which saves some memory). -@end quotation - -@code{process_HTTP_replies : bool} -@quotation -If true, HTTP replies (not just requests) are processed. -@end quotation - -@code{process_HTTP_data : bool} -@quotation -If true, HTTP data is examined as needed (e.g., for making HTTP abstracts, -as discussed below). -@end quotation - -@end table - -@node http-abstractbro, -@subsection http-abstract.bro - -@table @samp - -@code{http_abstract_max_length : count} -@quotation -The maximum number of bytes used to store an abstract for an HTTP connection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node http-requestbro, -@subsection http-request.bro - -@table @samp - -@code{skip_remote_sensitive_URIs : pattern} -@quotation -URIs matching this pattern should not be considered sensitive if accessed -remotely, i.e., by a local client. -@end quotation - -@code{have_skip_remote_sensitive_URIs : bool} -@quotation -Due to a quirk in Bro, this must be redef'ed to T if you want to use -@code{skip_remote_sensitive_URIs}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{sensitive_URIs : pattern} -@quotation -URIs matching this pattern, but not matching @code{worm_URIs}, are -noticed. See also @code{skip_remote_sensitive_URIs} and @code{sensitive_post_URIs}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{worm_URIs : pattern} -@quotation -URIs matching this pattern are not noticed even if they match -@code{sensitive_URIs}, since worms are so common they would clutter -the logs. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{sensitive_post_URIs : pattern} -@quotation -URIs matching this pattern are noticed if they are used with the HTTP -``POST'' method (rather than ``GET''). -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node icmpbro, -@subsection icmp.bro - -@table @samp - -@code{icmp_flows : table[icmp_flow_id] of icmp_flow_info} -@quotation -A table tracking all ICMP ``flows'' by @code{icmp_flow_info}. -``Flows'', which are simply inferred related -sequences of packets between two machines, based on ICMP ID, are timed -out after (currently) 30 seconds of inactivity. -@end quotation - -@end table - -@node identbro, -@subsection ident.bro - -@table @samp - -@code{hot_ident_ids : set[string]} -@quotation -If any of the User IDs in this set are returned in an @code{ident} -response, an @emph{IdentSensitiveID} notice is generated. -@end quotation - -@code{hot_ident_exceptions : set[string]} -@quotation -Exceptions to the @code{hot_ident_ids} set. -@end quotation - -@code{public_ident_user_ids : set[string]} -@quotation -User IDs in this set are described as ``public'' in a rewritten @code{ident} -trace. -@end quotation - -@code{public_ident_systems : set[string]} -@quotation -Operating system names in this set (e.g., ``UNIX'') are reported -directly in a rewritten @code{ident} trace; other OSes will be reported -as ``OTHER''. -@end quotation - -@code{rewrite_ident_trace : bool} -@quotation -If true, traces will be rewritten (partially anonymized). -@end quotation - -@end table - -@node interconnbro, -@subsection interconn.bro - -@table @samp - -@code{interconn_conns : table [conn_id] of conn_info} -@quotation -A @code{conn_id}-indexed table of all currently-tracked interactive -connections. The table entries are records -containing some very basic information about the connection. -@end quotation - -@code{interconn_log : file} -@quotation -The file into which generic interactive-connection-related logs are written. -@end quotation - -@code{interconn_min_interarrival : interval} -@quotation -Used in computing the ``alpha'' parameter, which is used to determine -which connections are interactive, based on the distribution of -interarrival times. See also @code{interconn_max_interarrival}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_max_interarrival : interval} -@quotation -Used in computing the ``alpha'' parameter, which is used to determine -which connections are interactive, based on the distribution of -interarrival times. See also @code{interconn_max_interarrival}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_max_keystroke_pkt_size : count} -@quotation -The maximum packet size used to classify keystroke-containing packets. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_default_pkt_size : count} -@quotation -The estimated packet size used to calculate the number of packets -missed when we see an ack above a hole. @emph{Fixme: Please verify.} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_stat_period : interval} -@quotation -How often to generate a report of interconn stats. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_stat_backoff : double} -@quotation -@emph{Fixme: I don't fully understand is_expire in timers.} The stat report -generation interval (@code{interconn_stat_period}) is increased by this factor each time the report -is generated [unless the report is generated because all timers are -artificially expired]. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_num_pkts : count} -@quotation -A connection must have this number of packets transferred before it -may be classified as interactive. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_duration : interval} -@quotation -A connection must last least this long before it may be classified as interactive. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_ssh_len_disabled : bool} -@quotation -If false (default = T), and at least one side of the connection has -partial state (the initial negotiation was missed), then packets are -examined to see if they fit the size distribution associated with -interactive SSH connections. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_ssh_pkts_ratio : double} -@quotation -Analogous to @code{ssh_min_ssh_pkts_ratio}, except used in the -context described in @code{interconn_ssh_len_disabled}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_bytes : count} -@quotation -The number of bytes transferred on a connection must be at least this high before the -connection may be classified as interactive. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_7bit_ascii_ratio : double} -@quotation -The ratio of 7-bit ASCII characters to total bytes must be at least -this high before the connection may be classified as interactive. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_num_lines : count} -@quotation -The number of lines transferred on a connection must be at least -this high before the connection may be classified as interactive. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_normal_line_ratio : double} -@quotation -The ratio of ``normal'' lines to total lines must be at least -this high before the connection may be classified as interactive. A -normal line, roughly speaking, is one whose length is within a certain -bound. @emph{Fixme: Please verify this.} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_alpha : double} -@quotation -The ``alpha'' parameter computed on connection must be at least -this high before the connection may be classified as interactive. This -parameter measures certain properties of packet interarrival -times. See @code{interconn}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_min_gamma : double} -@quotation -The ``gamma'' parameter computed on connection must be at least -this high before the connection may be classified as interactive. -@end quotation - -@code{interconn_standard_ports : set[port]} -@quotation -Connections to or from these ports are marked as interactive -automatically, unless @code{interconn_standard_ports} is set -to true. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_ignore_standard_ports : bool} -@quotation -If true (default = F), then all connections are analyzed for -interactive patterns, regardless of port. See @code{interconn_standard_ports}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{interconn_demux_disabled : bool} -@quotation -If false (default = T), then interactive connections are demuxed -when being logged. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node ircbro, -@subsection irc.bro - -@table @samp - -@code{IRC::log_file: file} -@quotation -Where to log IRC sessions. -@end quotation - -@code{hot_words} -@quotation -List of regular expressions that generate notices if found in session dialog. -@end quotation - -@code{ignore_in_other_msgs: set[string]} -@quotation -Commands to ignore in generating events for unknown commands. -@end quotation - -@code{ignore_in_other_responses: set[string]} -@quotation -Return codes to ignore in generating events for unknown return codes. -@end quotation - -@end table - -These variables contain information about the users and channels -identified by Bro: - -@table @samp - -@code{irc_users: table[string] of irc_user} -@quotation -All identified IRC users, indexed by IRC nick. -@end quotation - -@code{irc_channels: table[string] of irc_channel} -@quotation -All identified IRC channels, indexed by IRC channel name. -@end quotation - -@end table - -@node loginbro, -@subsection login.bro - -@table @samp - -@code{input_trouble : pattern} -@quotation -If a user's keystroke input matches this pattern, then a notice is generated. -@end quotation - -@code{edited_input_trouble : pattern} -@quotation -If a user's keystroke input matches this pattern, taking into account -backspace and delete characters, then a notice is generated. -@end quotation - -@code{full_input_trouble : pattern} -@quotation -If this pattern is matched in a full line of input, a notice is generated. -@end quotation - -@code{input_wait_for_output : pattern} -@quotation -The same as @code{edited_input_trouble}, except that the notice is -delayed until the corresponding output is seen, so that both may be -logged together. -@end quotation - -@code{output_trouble : pattern} -@quotation -If the login output matches this pattern, a notice is generated. -@end quotation - -@code{full_output_trouble : pattern} -@quotation -Similar to @code{output_trouble}, but the pattern must match the -entire output. -@end quotation - -@code{backdoor_prompts : pattern} -@quotation -If the login output matches this text, but not -@code{non_backdoor_prompts}, generate a possible-backdoor notice. -@end quotation - -@code{non_backdoor_prompts : pattern} -@quotation -See @code{backdoor_prompts}. -@end quotation - -@code{hot_terminal_types : pattern} -@quotation -If the terminal type used matches this pattern, generate a notice. -@end quotation - -@code{hot_telnet_orig_ports : set[port]} -@quotation -If the source port of a telnet connection is in this set, generate a notice. -@end quotation - -@code{skip_authentication : set[string] } -@quotation -If a string in this set appears where an authentication prompt would -normally, skip processing of authentication (typically for an -unauthenticated system). @emph{Fixme: Please verify.} -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{login_prompts : set[string]} -@quotation -The set of strings that are recognized as login prompts anywhere on a line, e.g., -``Login:''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{login_failure_msgs : set[string]} -@quotation -If any of these strings appear on a line following an authentication -attempt, the attempt is considered to have failed, unless a string -from @code{login_non_failure_msgs} also appears on the line. This -set has higher precedence than @code{login_success_msgs}, and the -same precedence as @code{login_timeouts}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{login_non_failure_msgs : set[string]} -@quotation -If any of these strings appear on a line following an authentication -attempt, the connection is not considered to have failed even if -@code{login_failure_msgs} indicates otherwise. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{login_success_msgs : set[string]} -@quotation -If any of these messages is seen, the connection attempt is assumed to -have succeeded. This set has lower precedence than @code{login_failure_msgs} -and @code{login_timeouts} . -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{login_timeouts : set[string]} -@quotation -If any of these messages is seen during the login phase, the -connection attempt is assumed to have timed out. This -set has higher precedence than @code{login_success_msgs}, and the -same precedence as @code{login_failure_msgs}. -@end quotation - -@code{router_prompts : pattern} -@quotation -@emph{Fixme: Don't know what this is} -@end quotation - -@code{non_ASCII_hosts : set[addr]} -@quotation -The set of hosts that do not use ASCII (and to whom logins are thus -not processed). -@end quotation - -@code{skip_logins_to : set[addr]} -@quotation -Do not process logins to this set of hosts. -@end quotation - -@code{always_hot_login_ids : pattern} -@quotation -Login names which generate a notice even if the login is not successful. -@end quotation - -@code{hot_login_ids : pattern} -@quotation -Login names which generate a notice, if the login is successful. -@end quotation - -@code{rlogin_id_okay_if_no_password_exposed : set[string]} -@quotation -Login names in this set are those which are normally considered -sensitive, but are allowed if the associated password is not exposed. -@end quotation - -@code{login_sessions : table[conn_id] of login_session_info} -@quotation -A table, indexed by connection ID, of @code{login_session_info} -records, characterizing each login session. -@end quotation - -@end table - -@node mimebro, -@subsection mime.bro - -@table @samp - -@code{mime_log : file} -@quotation -MIME message-related logs are written to this file. -@end quotation - -@code{mime_sessions : table[conn_id] of mime_session_info} -@quotation -A table, indexed by connection ID, of @code{mime_session_info} -records, characterizing each MIME session. -@end quotation - -@code{check_relay_3 function(session: mime_session_info, msg_id: string): bool} -@quotation -@emph{Fixme: Don't know about this} -@end quotation - -@code{check_relay_4 function(session: mime_session_info, content_hash: string): bool} -@quotation -@emph{Fixme: Don't know about this} -@end quotation - -@end table - -@node noticebro, -@subsection notice.bro - -@table @samp -@code{notice_action_filters : table[Notice] of function(n: notice_info: NoticeAction} -@vindex notice_action_filters -@quotation -A table that maps each @code{notice} into a function that should be -called to determine the action. -@end quotation - -@code{notice_file : file} -@vindex notice_file -@quotation -The file into which notices are written. -@end quotation - -@end table - -@node ntpbro, -@subsection ntp.bro - -@table @samp - -@code{excessive_ntp_request : count} -@quotation -NTP requests over this length are considered ``excessive'' and will be -flagged (marked ``hot''). -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{allow_excessive_ntp_requests : set[addr]} -@quotation -NTP requests from an address in this set are never considered -excessively long (see @code{excessive_ntp_request}). -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node pop3bro, -@subsection pop3.bro -@table @samp -@item @code{pop_connections: table[conn_id] of pop3_session_info} -This table contains all active POP3-sessions indexed by their Connection IDs. -Deleted as soon as the TCP Connection terminates or expires. -@item @code{pop_connection_weirds: table[addr] of count &default=0 &create_expire = 5 mins} -This table contains all the POP3-session originators for which unexpected -behavior was recorded. -@item @code{error_threshold: count = 3} -A threshold for the maximum of negative status indicators per originator -received by a server. -@item @code{ignore_commands: set[string] } -Set of commands that will be ignored while generating the log file. -@end table - -@node port-namesbro, -@subsection port-names.bro - -@table @samp - -@code{port_names : table[port] of string} -@quotation -A mapping of well-known port numbers to the associated service names. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node portmapperbro, -@subsection portmapper.bro - -@table @samp - -@code{rpc_programs : table[count] of string} -@quotation -A table correlating numeric RPC service IDs to string names of -the services, e.g., @code{[1000000] = ``portmapper''}. -@end quotation - -@code{NFS_services : set[string]} -@quotation -A set of string names of NFS-related RPC services. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{RPC_okay : set[addr, addr, string]} -@quotation -Indexed by the host providing the service, the host requesting it, -and the service; do not notice Sun portmapper requests from the specified -requester to the specified provider for the specified service. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{RPC_okay_nets : set[net]} -@quotation -Hosts in any of the networks in this set may make portmapper requests without -being flagged. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{RPC_okay_services : set[string]} -@quotation -Requests for services in this set will not be flagged. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{NFS_world_servers : set[addr]} -@quotation -Any host may request NFS services from any of the machines in this set -without being flagged.. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{any_RPC_okay : set[addr, string]} -@quotation -Indexed by the service provider and the service (in string form); any -host may access these services without being flagged. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{RPC_dump_okay : set[addr, addr]} -@quotation -Indexed by requesting host and providing host, respectively; dumps of -RPC portmaps are allowed between these pairs. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{RPC_do_not_complain : set[string, bool]} -@quotation -Indexed by the portmapper request and a boolean that's T if the -request was answered, F it was attempted but not answered. If there's -an entry in the set matching the current request/attempt, then the -access won't be noticed (unless the connection is hot for some other -reason). -@end quotation - -@code{suppress_pm_log : set[addr, string]} -@quotation -Indexed by source and portmapper service. If set, we already noticed -and shouldn't do so again. @emph{Fixme: Presumably this can be preloaded -with stuff, or we wouldn't need to document it.} -@end quotation - -@end table - -@node scanbro, -@subsection scan.bro - -@table @samp - -@code{suppress_scan_checks : bool} -@quotation -If true, we suppress scan checking (we still do account-tried accounting). -This is provided because scan checking can consume a lot of memory. -@end quotation - -@code{report_peer_scan : set[count]} -@quotation -When the number of distinct machines connected to by a given external host reaches -each of the levels in the set, a notice is generated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{report_outbound_peer_scan : set[count]} -@quotation -When the number of distinct machines connected to by a given internal host reaches -each of the levels in the set, a notice is generated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{num_distinct_peers : table[addr] of count} -@quotation -A table indexed by a host's address which indicates how many distinct -machines that host has connected to. -@end quotation - -@code{distinct_peers : set[addr,addr]} -@quotation -A table indexed by source host and target machine that tracks which -machines have been scanned by each host. -@end quotation - -@code{num_distinct_ports : table[addr] of count} -@quotation -A table indexed by a host's address which indicates how many distinct -ports that host has connected to. -@end quotation - -@code{distinct_ports : set[addr, port]} -@quotation -A table indexed by source host and target port that tracks which -ports have been scanned by each host. -@end quotation - -@code{report_port_scan : set[count]} -@quotation -When the number of distinct ports connected to by a given external host reaches -each of the levels in the set, a notice is generated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{possible_port_scan_thresh : count} -@quotation -If a host tries to connect to more than this number of ports, it is -considered a possible scanner. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{possible_scan_sources : set[addr]} -@quotation -Hosts are put in this set once they have scanned more than ports. -@end quotation - -@code{num_scan_triples : table[addr, addr] of count} -@quotation -Indexed by source address and destination address, the number of -services scanned for on the latter by the former. This is only tracked -for @code{possible_scan_sources}. -@end quotation - -@code{scan_triples : set[addr, addr, port]} -@quotation -For @code{possible_scan_sources} as a source address, the triples -of (source address, destination address, and service/port) scanned. -@end quotation - -@code{accounts_tried : set[addr, string, string]} -@quotation -Which account names were tried, indexed by source address, user name -tried, password tried. -@end quotation - -@code{num_accounts_tried : table[addr] of count} -@quotation -How many accounts, as defined by a (user name, password) pair, were -tried by the host with the given address. -@end quotation - -@code{report_accounts_tried : set[count]} -@quotation -When the number of distinct accounts (username, password) tried by a -given external host reaches each of the levels in the set, a notice is -generated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{report_remote_accounts_tried : set[count]} -@quotation -When the number of distinct remote accounts (username, password) tried by a -given internal host reaches each of the levels in the set, a notice is -generated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_accounts_tried : set[addr]} -@quotation -Hosts in this set are not subject to notices based on -@code{report_accounts_tried} and @code{report_remote_accounts_tried}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{addl_web : set[port]} -@quotation -Ports in this set are treated as HTTP services. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_services : set[port]} -@quotation -Connections to ports in this set are ignored for the purposes of scan detection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_outbound_services : set[port]} -@quotation -Connections to external machines on ports in this set are ignored for -the purposes of scan detection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_scan_sources : set[addr]} -@quotation -Hosts in this set are ignored as possible sources of scans. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_scan_nets_16 : set[addr,port]} -@quotation -Connections matching the specified (source host /16 subnet, port) pairs -are ignored for the purpose of scan detection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_scan_nets_24 : set[addr,port]} -@quotation -Connections matching the specified (source host /24 subnet, port) pairs -are ignored for the purpose of scan detection. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{backscatter_ports : set[port]} -@quotation -Reverse (SYN-ack) scans seen from these ports are considered to reflect -possible SYN flooding backscatter and not true (stealth) scans. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{num_backscatter_peers : table[addr] of count} -@quotation -Indexed by a host, how many other hosts it connected to with a possible backscatter -signature. -@end quotation - -@code{distinct_backscatter_peers : table[addr, addr] of count} -@quotation -A table of [source, destination] observed backscatter activity; the -table entry is a count of backscatter packets from the source to the destination. -@end quotation - -@code{report_backscatter : set[count]} -@quotation -When the number of machines that a host has sent backscatter packets -to reaches each of the levels in the set, a notice is generated. - -@emph{Fixme: Need to document connection-dropping related variables.} -@example -global can_drop_connectivity = F &redef; -global drop_connectivity_script = "drop-connectivity" &redef; -global connectivity_dropped set[addr]; -const shut_down_scans: set[port] &redef; -const shut_down_all_scans = F &redef; -const shut_down_thresh = 100 &redef; -never_shut_down set[addr] -never_drop_nets set[net] -never_drop_16_nets set[net] -did_drop_address table[addr] of count -@end example -@end quotation - -@code{root_servers : set[host]} -@findex root_servers -@quotation -The set of root DNS servers. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{gtld_servers : set[host]} -@quotation -The set of Generic Top-Level Domain servers (.com, .net, .org, etc.). -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node signaturesbro, -@subsection signatures.bro - -@table @samp - -@code{horiz_scan_thresholds : set[count]} -@quotation -Notice if for a pair (orig, signature) the number of different responders has -reached one of the thresholds in this set. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{vert_scan_thresholds : set[count]} -@quotation -Notice if for a pair (orig, resp) the number of different signature matches has -reached one of the thresholds in this set. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node sitebro, -@subsection site.bro - -@table @samp - -@code{local_nets : set[net]} -@quotation -Class A/B/C networks that are considered ``local''. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{local_16_nets : set[addr]} -@quotation -/16 address blocks that are considered ``local''. These are derived -directly from @code{local_nets} . @emph{Fixme: Please verify this}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{local_24_nets : set[addr]} -@quotation -/24 address blocks that are considered ``local''. These are derived -directly from @code{local_nets}. @emph{Fixme: Please verify this}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{neighbor_nets : set[net]} -@quotation -Class A/B/C networks that are considered ``neighbors''. Note that -unlike for local_nets, @code{local_16_nets} is @emph{not} -merely a /16 addr version of neighbor_nets, but instead is consulted -@emph{in addition} to neighbor_nets. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{neighbor_16_nets : set[addr]} -@quotation -/16 address blocks that are considered ``neighbors''. Note that -unlike for local_nets, neighbor_16_nets is @emph{not} -merely a /16 addr version of @code{neighbor_nets}, but instead is consulted -@emph{in addition} to @code{neighbor_nets}. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node smtpbro, -@subsection smtp.bro - -@table @samp - -@code{local_mail_addr : pattern} -@quotation -Email addresses matching this pattern are considered to be local. This -is used to detect relaying. -@end quotation - -@code{smtp_log : file} -@quotation -The file into which SMTP-related notices are written. -@end quotation - -@code{smtp_sessions : table[conn_id] of smtp_session_info} -@quotation -A table of @code{smtp_session_info} records tracking SMTP-related -state for a given connection. -@end quotation - -@code{process_smtp_relay : bool} -@quotation -If true (default = F), processing is done to check for mail relaying. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. - -@example -type smtp_session_info: record @{ - id: count; - connection_id: conn_id; - external_orig: bool; - in_data: bool; - num_cmds: count; - num_replies: count; - cmds: smtp_cmd_info_list; - in_header: bool; - keep_current_header: bool; # a hack till MIME rewriter is ready - recipients: string; - subject: string; - content_hash: string; - num_lines_in_body: count; # lines in RFC 822 body before MIME decoding - num_bytes_in_body: count; # bytes in entity bodies after MIME decoding - content_gap: bool; # whether there is content gap in conversation - - relay_1_rcpt: string; # external recipients - relay_2_from: count; # session id of same recipient - relay_2_to: count; - relay_3_from: count; # session id of same msg id - relay_3_to: count; - relay_4_from: count; # session id of same content hash - relay_4_to: count; -@}; -@end example -@end quotation - -@code{smtp_legal_cmds : set[string]} -@quotation -The set of allowed SMTP commands (not currently used). @emph{Fixme: Is it used somewhere?} -@end quotation - -@code{smtp_hot_cmds : table[string] of pattern} -@quotation -If an SMTP command matching an index into the table has an argument -matching the associated pattern, then the request and its reply are logged. -@end quotation - -@code{smtp_sensitive_cmds : set[string]} -@quotation -If an SMTP command is in this set, the request and its reply are logged. -@end quotation - -@end table - -@node smtp-relaybro, -@subsection smtp-relay.bro - -@table @samp - -@code{relay_log : file} -@quotation -Logs related to email relaying go in this file. -@end quotation - -@code{smtp_relay_table : table[count] of smtp_session_info} -@quotation -A table indexed by SMTP session ID (session$id) that keeps track of -each session in an record. -@end quotation - -@code{smtp_session_by_recipient : table[string] of smtp_session_info} -@quotation -A table indexed by the recipient that holds the corresponding -@code{smtp_session_info} record. -@end quotation - -@code{smtp_session_by_message_id : table[string] of smtp_session_info} -@quotation -A table indexed by the email message ID that holds the corresponding -@code{smtp_session_info} record. -@end quotation - -@code{smtp_session_by_content_hash : table[string] of smtp_session_info} -@quotation -A table indexed by the MD5 hash of the message that holds the corresponding - record. @emph{Fixme: Currently unimplemented?} -@end quotation - -@end table - -@node softwarebro, -@subsection software.bro - -@table @samp - -@code{software_file : file} -@quotation -Logs related to host software detection go in this file. -@end quotation - -@code{software_table : table[addr] of software_set} -@quotation -A table of the software running on each host. A -@code{software_set} is itself a table, indexed by the name of the -software, of @code{software} records. -@end quotation - -@code{software_ident_by_major : set[string]} -@quotation -Software names in this set could be installed twice on the same -machine with different major version numbers. Such software is -identified as ``Software-N'' where N is the major version number, to -disambiguate the two. -@end quotation - -@end table - -@node sshbro, -@subsection ssh.bro - -@table @samp - -@code{ssh_log : file} -@quotation -Logs related to ssh connections go in this file. -@end quotation - -@code{did_ssh_version : table[addr, bool] of count} -@quotation -Indexed by host IP and (T for client, F for server), the table tracks -if we have recorded the SSH version. Values of one and greater are -essentially equivalent. -@end quotation - -@end table - -@node steppingbro, -@subsection stepping.bro - -@table @samp - -@code{step_log : file} -@quotation -Logs related to stepping-stone detection go in this file. -@end quotation - -@code{display_pairs : table[addr, string] of connection} -@quotation -If was a login to propagating a $DISPLAY of , -then we make an entry of [, ] = . -@end quotation - -@code{tag_to_conn_map : table[string] of connection} -@quotation -Maps login tags like "Last login ..." to connections. -@end quotation - -@code{conn_tag_info : table[conn_id] of tag_info} -@quotation -A table, indexed by connection ID, of the @code{tag_info} related -to it. Roughly, ``tag info'' consists of login strings like ``Last -login'' and @code{$DISPLAY} variables. Since this information can stay -constant across stepping stones, it is used to detect them. -@end quotation - -@code{detected_stones : table[addr, port, addr, port, addr, port, addr, port] of count} -@quotation -Indexed by two pairs of connections: (addr,port)->(addr,port) and -(addr,port)->(addr,port) that have been detected to be multiple links -in a stepping stone chain. The table value is the ``score'' of the -pair of connections; the higher the score, the more likely it is to be -a real stepping stone pair. More points are assigned for a -timing-based correlation than, say, a @code{$DISPLAY}-based correlation. -@end quotation - -@code{did_stone_summary : table[addr, port, addr, port, addr, port, addr, port] of count} -@quotation -Basically tracks which suspected stepping stone connection pairs have had notices -generated for them. See @code{detected_stones} for the indexing scheme. -@end quotation - -@code{stp_delta : interval} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{stp_idle_min : interval} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{stp_ratio_thresh : double} -@quotation -For timing correlations, the proportion of idle times that must match -up for the correlation to be considered significant. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{stp_scale : double} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{stp_common_host_thresh : count} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{stp_random_pair_thresh : count} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{stp_demux_disabled : count} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{skip_clear_ssh_reports : set[addr, string]} -@quotation -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node tftpbro, -@subsection tftp.bro - -@table @samp - -@code{tftp_notice_count : table[addr] of count} -@quotation -Keeps track of the number of observed outbound TFTP connections from -each host. -@end quotation - -@end table - -@node udpbro, -@subsection udp.bro - -@table @samp - -@code{udp_req_count : table[conn_id] of count} -@quotation -Keeps track of the number of UDP requests sent over each connection. -@end quotation - -@code{udp_rep_count : table[conn_id] of count} -@quotation -@emph{Fixme: not really sure} -@end quotation - -@code{udp_did_summary : table[conn_id] of count} -@quotation -Keeps track of which connections have been summarized/recorded -@emph{Fixme: what is it really? do people use this?} -@end quotation - -@end table - -@node weirdbro, -@subsection weird.bro - -@table @samp - -@code{weird_log : file} -@quotation -Logs related to @code{weird} (unexpected or inconsistent) -traffic go in this file. -@end quotation - -@code{weird_action : table[string] of WeirdAction} -@quotation -A table of what to do (a @code{WeirdAction} ) when faced with a -particular ``weird'' scenario (the index). Example include logging to -the special ``weird'' file or ignoring the condition. -@end quotation - -@code{weird_action_filters : table[string] of function(c: connection): WeirdAction} -@quotation -If an entry exists in this table for a given weird situation, then the -corresponding entry is used to determine what action to -take; the default is to look in @code{weird_action}. -@end quotation - -@code{weird_ignore_host : set[addr, string]} -@quotation -(host, weird condition) pairs in this set are ignored for the purposes -of reporting. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@code{weird_do_not_ignore_repeats : set[string]} -@quotation -The included conditions are reported even if they are repeated. -@* Note: This variable is @code{const}, so may only be changed via @code{redef}. -@end quotation - -@end table - -@node wormbro, -@subsection worm.bro - -@table @samp - -@code{worm_log : file} -@quotation -The file into which worm-detection-related logs are written. -@end quotation - -@code{worm_list : table[addr] of count} -@quotation -A table of infected hosts, indexed by the infected hosts' -addresses. The value is how many times the instance has been seen -sending packets. -@end quotation - -@code{worm_type_list : table[addr, string] of count} -@quotation -A table of infected hosts, indexed by host address and type of -worm. The value is how many times that particular worm has been seen -on the host. -@end quotation - -@end table - -@node Uncategorized, -@subsection Uncategorized - -@emph{Fixme: These need categorization. } - -@table @samp - -@code{bro_alarm_file : file} -@quotation -Used to record the messages logged by @code{alarm} statements. - -@cindex stderr -@cindex alarm file -Default: @emph{stderr}, unless you @code{@@load} the @code{alarm} analyzer; -see @code{bro_alarm_file} for further discussion. -@end quotation - -@code{capture_filters : table[string] of string} -@quotation -Specifies what packets Bro's filter should record. -@end quotation - -@code{direct_login_prompts : set[string]} -@quotation -Strings that when seen in a login dialog indicate that -the user will be directly logged in after entering their username, -without requiring a password. -@end quotation - -@code{discarder_maxlen : int} -@quotation -The maximum amount of data that Bro should pass to a TCP or UDP -@emph{discarder}. -@*Default: 128 bytes. -@end quotation - -@code{done_with_network : bool} -@quotation -Set to true when Bro is done reading from the network (or from -the save files being played back, per @ref{Playing back traces,play-back}). The variable is set by a -handler for @code{net_done}. -@*Default: initially set to false. -@end quotation - -@cindex network interfaces -@cindex analysis, on-line -@cindex on-line analysis - -@code{interfaces : string} -@quotation -A blank-separated list of network interfaces from which Bro should -read network traffic. Bro merges packets from the interfaces according -to their timestamps. @emph{Deficiency: All interfaces @emph{must} have the same link layer type. } - -If empty, then Bro does not read any network traffic, unless one -or more interfaces are specified using the -i flag. - -@emph{Note:} @code{interfaces} has an @code{&add_func} that allows you to add interfaces -to the list simply using a @code{+=} initialization refinement. - -@*Default: empty. -@end quotation - -@cindex timer expiration -@cindex expiration, timer - -@code{max_timer_expires : count} -@quotation -Sets an upper limit on how many pending timers Bro will expire per newly arriving packet. If set to 0, then Bro expires all -pending timers whose time has come or past. This variable trades off -timer accuracy and memory requirements (because a number of Bro's internal -timers relate to expiring state) with potentially bursty load spikes due -to a lot of timers expiring at the same time, which can trigger the -watchdog, if active. -@end quotation - -@code{restrict_filter : string} -@quotation -Restricts what packets Bro's filter should record. -@end quotation - -@end table - -@cindex predefined variables - -@node Predefined Functions, -@section Predefined Functions - -Bro provides a number of built-in functions: - -@cindex predefined functions - -@table @samp -@cindex connection: testing for existence - -@code{active_connection (id: conn_id) : bool} -@findex active_connection -@quotation -Returns true if the given connection identifier (originator/responder -addresses and ports) corresponds to a currently-active connection. -@end quotation - -@code{active_file (f: file): bool} -@quotation -Returns true if the given @code{file} is open. -@end quotation - -@code{add_interface (iold: string, inew: string): string} -@quotation -Used to refine the initialization of @code{interfaces}. Meant -for internal use, and as an example of refinement. -@end quotation - -@code{add_tcpdump_filter (fold: string, fnew: string): string} -@quotation -Used to refine the initializations of @code{capture_filters} -and @code{restrict_filters}. Meant for internal use, and as an -example of refinement. -@end quotation - -@cindex alarms, control of -@cindex logging, control of -@code{alarm_hook (msg: string): bool} -@quotation -If you define this function, then Bro will call it with each string -it is about to log in an alarm. The function should return true if Bro should -go ahead with the alarm, false otherwise. See -for further discussion and an example. -@end quotation - -@cindex strings, length -@cindex length, of strings -@code{byte_len (s: string): count} -@quotation -Returns the number of bytes in the given string. This includes -any embedded NULs, and also a trailing NUL, if any (which is why the -function isn't called @emph{strlen}; to remind the user that Bro strings -can include NULs). -@end quotation - -@cindex strings, concatenation -@cindex concatenation of strings -@code{cat (args: any): string} -@quotation -Returns the concatenation of the string representation of its arguments, -which can be of any type. For example, @code{cat("foo", 3, T)} returns -@code{"foo3T"}. -@end quotation - -@cindex strings, cleaned up - -@code{clean (s: string): string} -@quotation -Returns a cleaned up version of @code{s}, meaning that: -@cindex NUL -@cindex DEL -@cindex delete character -@quotation -@itemize @bullet -@item -embedded NULs become the text ``@code{\0}'' - -@item -embedded DELs (delete characters) become the text ``@code{^?}'' - -@item -ASCII ``control'' characters with code <= 26 become the -text ``@code{^}@emph{Letter}'', where @emph{Letter} is -the corresponding (upper case) control character; for example, -ASCII 2 becomes ``@code{^B}'' - -@item -ASCII ``control'' characters with codes between 26 and 32 (non-inclusive) -become the text ``@code{\x}@emph{hex-code}''; for example, -ASCII 31 becomes ``@code{\x1f}'' - -@item -if the string does not yet have a trailing NUL, one is added. -@end itemize -@end quotation -@end quotation - -@code{close (f: file): bool} -@quotation -Flushes any buffered output for the given file and closes it. -Returns true if the file was open, false if already closed or -never opened. -@end quotation - -@code{connection_record (id: conn_id): connection} -@quotation -Returns the @code{connection} record corresponding to the non-existing connection id if not a known connection. -@emph{Note: If the connection does not exist, then exits with a fatal run-time error. } - -@emph{Deficiency: If Bro had an exception mechanism, then we could avoid the fatal run-time error, and likewise could get rid of @code{active_connection} . } -@end quotation - -@code{contains_string (big: string, little: string): bool} -@quotation -Returns true if the string @code{little} occurs somewhere within -@code{big}, false otherwise. -@end quotation - -@cindex time, clock -@cindex clock time -@code{current_time (): time} -@quotation -Returns the current clock time. You will usually instead want to -use @code{network_time}. -@end quotation - -@code{discarder_check_icmp (i: ip_hdr, ih: icmp_hdr): bool} -@quotation -Not documented. -@end quotation - -@code{discarder_check_ip (i: ip_hdr): bool} -@quotation -Not documented. -@end quotation - -@code{discarder_check_tcp (i: ip_hdr, t: tcp_hdr, d: string): bool} -@quotation -Not documented. -@end quotation - -@code{discarder_check_udp (i: ip_hdr, u: udp_hdr, d: string): bool} -@quotation -Not documented. -@end quotation - -@cindex line editing -@cindex editing -@cindex backspace character -@cindex DEL -@cindex BS -@code{edit (s: string, edit_char: string): string} -@quotation -Returns a version of @code{s} assuming that @code{edit_char} is the ``backspace'' -character (usually @code{"\x08"} for backspace or @code{"\x7f"} for DEL). -For example, @code{edit("hello there", "e")} returns @code{"llo t"}. - -@code{edit_char} must be a string of exactly one character, or Bro generates -a run-time error and uses the first character in the string. - -@emph{Deficiency: To do a proper job, edit should also know about delete-word and delete-line editing; and it would be very convenient if it could do multiple types of edits all in one shot, rather than requiring separate invocations. } -@end quotation - -@code{exit (): int} -@quotation -Exits Bro with a status of 0. - -@emph{Deficiency: This function should probably allow you to specify the exit status. } - -@emph{Note: If you invoke this function, then the usual cleanup functions -@code{net_done} and @code{bro_done} are NOT invoked. -There probably should be an additional ``@code{shutdown}'' function that provides for cleaner termination. } -@end quotation - -@code{flush_all (): bool} -@quotation -Flushes all open files to disk. -@end quotation - -@cindex formatting text -@cindex text, formatting -@cindex string, formatting -@cindex width, of formatted strings -@cindex precision, of formatted strings -@cindex format, width -@cindex format, precision - -@code{fmt (args: any): string} -@quotation -Performs @emph{sprintf}-style formatting. The first argument gives -the format specifier to which the remaining arguments are formatted, -left-to-right. As with @emph{sprintf}, the format for each argument -is introduced using ``%'', and -formats beginning with a positive integer @emph{m} specify -that the given field should have a width of @emph{m} characters. Fields -with fewer characters are right-padded with blanks up to this width. - -A format specifier of ``@code{.$n}'' (coming after @code{m}, if present) -instructs @code{fmt} to use a precision of @emph{n} digits. You can -only specify a precision for the @code{e}, @code{f} or @code{g} -formats. -(@code{fmt} generates a run-time error if either @emph{m} or @emph{n} exceeds 127.) - -The different format specifiers are: - -@table @samp - -@item % -A literal percent-sign character. - -@item @code{D} -Format as a date. Valid only for values of type @code{time}. - -The exact format is -@emph{yy}--@emph{mm}--@emph{dd}--@emph{hh}:@emph{mm}:@emph{ss} -for the local time zone, per @emph{strftime}. - -@cindex little endian -@cindex big endian -@cindex endian issues -@cindex host order (vs. network order) -@cindex network order (vs. host order) -@cindex integers, network vs. host order - -@item @code{d} -Format as an integer. Valid for types @code{bool}, -@code{count}, @code{int}, @code{ port}, @code{addr}, and @code{net}, -with the latter three being converted from network order to -host order prior to formatting. @code{bool} values of true format -as the number 1, and false as 0. - -@item @code{e, f, g} -Format as a floating point value. -Valid for types @code{double}, @code{time}, and @code{interval}. -The formatting is the same as for @emph{printf}, including -the field width @emph{m} and precision @emph{n}. - -@end table - -Given no arguments, @code{fmt} returns an empty string. - -Given a non-string first argument, @code{fmt} returns the concatenation of -all its arguments, per @code{cat}. - -Finally, given the wrong number of additional arguments for the given -format specifier, @code{fmt} generates a run-time error. -@end quotation - -@cindex authentication dialog -@cindex state, of a Telnet/Rlogin session -@cindex Telnet, session state -@cindex Rlogin, session state -@cindex login session, state - -@code{get_login_state (c: conn_id): count} -@quotation -Returns the state of the given login (Telnet or Rlogin) connection, -one of: - -@table @samp - -@item @code{LOGIN_STATE_AUTHENTICATE} -The connection is in its initial authentication dialog. - -@item @code{LOGIN_STATE_LOGGED_IN} -The analyzer believes the user has successfully authenticated. - -@item @code{LOGIN_STATE_SKIP} -The analyzer has skipped any further processing of the connection. - -@item @code{LOGIN_STATE_CONFUSED} -The analyzer has concluded that it does not correctly know the -state of the connection, and/or the username associated with it. - -@end table -@end quotation - -@code{connection_id} is not a known login connection -or a run-time error and a value of @code{LOGIN_STATE_AUTHENTICATE} -if the connection is not a login connection. - -@cindex sequence numbers, connection originator -@cindex connection, sequence numbers -@code{get_orig_seq (c: conn_id): count} -@quotation -Returns the highest sequence number sent by a connection's originator, -or 0 if there's no such TCP connection. Sequence numbers are absolute -(i.e., they reflect the values seen directly in packet headers; they are -not relative to the beginning of the connection). -@end quotation - -@cindex sequence numbers, connection responder -@cindex connection, sequence numbers -@code{get_resp_seq (c: conn_id): count} -@quotation -Returns the highest sequence number sent by a connection's responder, -or 0 if there's no such TCP connection. -@end quotation - -@cindex environment, accessing -@code{getenv (var: string): string} -@quotation -Looks up the given environment variable and returns its value, -or an empty string if it is not defined. -@end quotation - -@cindex ports, TCP vs. UDP -@cindex TCP vs. UDP ports -@code{is_tcp_port (p: port): bool} -@quotation -Returns true if the given @code{port} value corresponds to a TCP port, -false otherwise (i.e., it belongs to a UDP port). -@end quotation - -@cindex length, of table or set -@cindex size, of table or set -@cindex number of elements, in table or set -@cindex table size -@cindex set size -@code{length (args: any): count} -@quotation -Returns the number of elements in its argument, which must be of -type @code{table} or @code{set}. If not exactly one argument is -specified, or if the argument is not a table or a set, then generates -a run-time message and returns 0. - -@cindex union type, need for -@cindex any type, replacing with union type - -@emph{Deficiency: If Bro had a union type, then we could get rid of the magic ``@code{args: any}'' specification and catch parameter -mismatches at compile-time instead of run-time. } -@end quotation - -@cindex log file -@cindex name, of log file -@code{log_file_name (tag: string): string} -@quotation -Returns a name for a log file (such as @code{weird} or @code{conn} ) -in a standard form. The form depends on whether $BRO_LOG_SUFFIX is set. -If so, then the format is ``@code{<}@emph{tag}@code{>.<\$BRO_LOG_SUFFIX>}''. Otherwise, -it is simply @code{tag}. -@end quotation - -@cindex masking -@cindex address masking -@cindex CIDR -@cindex subnets -@code{mask_addr (a: addr, top_bits_to_keep: count): addr} -@quotation -Returns the address @code{a} masked down to the number of upper bits -indicated by @code{top_bits_to_keep}, which must be greater than 0 and -less than 33. For example, @code{mask_addr(1.2.3.4, 18)} returns -@code{1.2.0.0}, and @code{mask_addr(1.2.255.4, 18)} returns -@code{1.2.192.0}. - -Compare with @code{to_net}. -@end quotation - -@cindex maximum -@code{max_count (a: count, b: count): count} -@quotation -Returns the larger of @code{a} or @code{b}. -@end quotation - -@code{max_double (a: double, b: double): double} -@quotation -Returns the larger of @code{a} or @code{b}. -@end quotation - -@code{max_interval (a: interval, b: interval): interval} -@quotation -Returns the larger of @code{a} or @code{b}. - -@cindex polymorphic functions, need for -@emph{Deficiency: If Bro supported polymorphic functions, then this function could be merged with its predecessors, gaining simplicity and clarity. } -@end quotation - -@cindex minimum -@code{min_count (a: count, b: count): count} -@quotation -Returns the smaller of @code{a} or @code{b}. -@end quotation - -@code{min_double (a: double, b: double): double} -@quotation -Returns the smaller of @code{a} or @code{b}. -@end quotation - - -@code{min_interval (a: interval, b: interval): interval} -@quotation -Returns the smaller of @code{a} or @code{b}. - -@cindex polymorphic functions, need for -@emph{Deficiency: If Bro supported polymorphic functions, then this function could be merged with its predecessors, gaining simplicity and clarity. } -@end quotation - -@cindex directories, creating -@cindex creating directories -@code{mkdir (f: string): bool} -@quotation -Creates a directory with the given name, if it does not already exist. -Returns true upon success, false (with a run-time message) if -unsuccessful. -@end quotation - -@cindex time, clock -@cindex time, packet -@cindex clock time -@cindex packets, time -@cindex scripting, general -@cindex general scripting -@code{network_time (): time} -@quotation -Returns the timestamp of the most recently read packet, whether read -from a live network interface or from a save file. -Compare against @code{current_time}. In general, you should use -@code{network_time} unless you're using Bro for non-networking uses -(such as general scripting; -not particularly recommended), because otherwise your script may -behave very differently on live traffic versus played-back traffic -from a save file. -@end quotation - -@cindex files, opening -@cindex opening a file -@code{open (f: string): file} -@quotation -Opens the given filename for write access. Creates the file if it -does not already exist. Generates a run-time error if the file -cannot be opened/created. -@end quotation - -@cindex files, appending -@cindex files, opening -@cindex appending to a file -@cindex opening a file -@code{open_for_append (f: string): file} -@quotation -Opens the given filename for append access. Creates the file if it -does not already exist. Generates a run-time error if the file -cannot be opened/created. -@end quotation - -@code{open_log_file (tag: string): file} -@quotation -Opens a log file associated with the given tag, using a filename -format as returned by . -@end quotation - -@cindex record, ftp_port -@code{parse_ftp_pasv (s: string): ftp_port} -@quotation -Parses the server's reply to an FTP @code{PASV} command to extract the -IP address and port number indicated by the server. The values -are returned in an @code{ftp_port} record, which has three -fields: @code{h}, the address (@emph{h} is mnemonic for @emph{host}); -@code{p}, the (TCP) port; and @code{valid}, a boolean that is true -if the server's reply was in the required format, false if not, -or if any of the individual values (or the indicated port number) -are out of range. -@end quotation - -@cindex record, ftp_port -@code{parse_ftp_port (s: string): ftp_port} -@quotation -Parses the argument included in a client's FTP @code{PORT} request to -extract the IP address and port number indicated by the server. The values -are returned in an @code{ftp_port}, which has three fields, as -indicated in the discussion of @code{parse_ftp_pasv}. -@end quotation - - -@cindex live traffic -@cindex recorded traffic -@cindex traffic, live vs. recorded -@cindex analysis, on-line -@cindex on-line analysis -@cindex analysis, off-line -@cindex off-line analysis - -@code{reading_live_traffic (): bool} -@quotation -Returns true if Bro was invoked to read live network traffic (from -one or more network interfaces, per ), false -if it's reading from save files being played back . - -@emph{Note: This function returns true even after Bro has stopped reading network traffic, for example due to receiving a termination signal. } - -@end quotation - -@code{set_buf (f: file, buffered: bool)} -@quotation -Specifies that writing to the given file should either be fully -buffered (if @code{buffered} is true), or line-buffered (if false). -Does not return a value. -@end quotation - -@code{set_contents_file (c: conn_id, direction: count, f: file): bool} -@quotation -Specifies that the traffic stream of the given connection in the given -direction should be recorded to the given file. @code{direction} is one of -the values given in the table below. - -@float Table, Directions -@multitable @columnfractions .25 .6 -@item @strong{Direction} @tab @strong{Meaning} -@item @code{CONTENTS_NONE} -@tab Stop recording the connection's content -@item @code{CONTENTS_ORIG} -@tab Record the data sent by the connection originator (often the client). -@item @code{CONTENTS_RESP} -@tab Record the data sent by the connection responder (often the server). -@item @code{CONTENTS_BOTH} -@tab Record the data sent in both directions. -@end multitable -@caption{Different types of directions for @code{set_contents} file} -@end float -@* - - -@emph{Note: CONTENTS_BOTH results in the two directions being intermixed in the file, in the order the data was seen by Bro. } - -@emph{Note: The data recorded to the file reflects the byte stream, not the contents of individual packets. Reordering and duplicates are removed. If any data is missing, the recording stops at the missing data; see @code{ack_above_hole} for how this can happen. } - -@emph{Deficiency: Bro begins recording the traffic stream starting with new traffic it sees. Experience has shown it would be highly handy if Bro could record the entire connection to the file, including previously seen traffic. In principle, this is possible if Bro is recording the traffic to a -save file , which a separate utility program could then read to extract the stream. } - -Returns true upon success, false upon an error. -@end quotation - -@cindex authentication dialog -@cindex state, of a Telnet/Rlogin session -@cindex Telnet, session state -@cindex Rlogin, session state -@cindex login session, state - -@code{set_login_state (c: conn_id, new_state: count): bool} -@quotation -Manually sets the state of the given login (Telnet or Rlogin) connection -to @code{new_state}, which should be one of the values described -in . - -Generates a run-time error and returns false -if the connection is not a login connection. Otherwise, returns true. -@end quotation - -@cindex packets, recording -@cindex recording packets -@cindex save file, control over what's recorded -@cindex write file, control over what's recorded -@cindex trace file, control over what's recorded - -@code{set_record_packets (c: conn_id, do_record: bool): bool} -@quotation -Controls whether Bro should or should not record the packets corresponding -to the given connection to the save file , if any. - -Returns true upon success, false upon an error. -@end quotation - -@cindex avoiding processing -@cindex processing, avoiding -@cindex shedding load -@cindex load, shedding - -@code{skip_further_processing (c: conn_id): bool} -@quotation -Informs bro that it should skip any further processing of the contents -of the given connection. In particular, Bro will refrain from reassembling -the TCP byte stream and from generating events relating to any analyzers -that have been processing the connection. Bro will still generate -connection-oriented events such as @code{connection_finished} . - -This function provides a way to shed some load in order to reduce -the computational burden placed on the monitor. - -Returns true upon success, false upon an error. -@end quotation - -@cindex string, extraction -@cindex substrings - -@code{sub_bytes (s: string, start: count, n: count): string} -@quotation -Returns a copy of @code{n} bytes from the given string, starting at position -@code{start}. The beginning of a string corresponds to position 1. - -If @code{start} is 0 or exceeds the length of the string, returns -an empty string. - -If the string does not have @code{n} characters from @code{start} to -its end, then returns the characters from @code{start} to the end. -@end quotation - -@cindex command shell -@cindex Bourne shell -@cindex shell escape -@cindex scripts, running -@cindex executables, running -@cindex running outside scripts or executables - -@code{system (s: string): int} -@quotation -Runs the given string as a @emph{sh} command (via C's @emph{system} call). - -@emph{Note: The command is run in the background with stdout redirected to stderr. } - -Returns the return value from the @emph{system} call. @emph{Note: This corresponds to the status of backgrounding the given command, NOT to the exit status of the command itself. } -A value of 127 corresponds -to a failure to execute @emph{sh}, and -1 to an internal system failure. -@end quotation - -@code{to_lower (s: string): string} -@quotation -Returns a copy of the given string with the uppercase letters -(as indicated by @emph{isascii} and @emph{isupper}) -folded to lowercase (via @emph{tolower}). -@end quotation - -@cindex masking -@cindex address masking -@cindex CIDR -@cindex subnets -@cindex prefixes, network -@cindex network prefixes - -@code{to_net (a: addr): net} -@quotation -Returns the network prefix historically associated with the given -address. That is, if @code{a}'s leading octet is less than 128, -then returns -@code{<}@emph{a}@code{>}@emph{/8}; -if between 128 and 191, inclusive, then -@code{<}@emph{a}@code{>}@emph{/16}; -if between 192 and 223, then -@code{<}@emph{a}@code{>}@emph{/24}; -and, otherwise, -@code{<}@emph{a}@code{>}@emph{/32}. -See the discussion of the type for more about network prefixes. - -Generates a run-time error and returns @code{0.0.0.0} -if the address is IPv6. - -@emph{Note: Such network prefixes have become obsolete with the advent of CIDR; still, for some sites they prove useful because they correspond to existing address allocations. } - -Compare with @code{mask_addr}. -@end quotation - -@code{to_upper s: string): string} -@quotation -Returns a copy of the given string with the lowercase letters -(as indicated by @emph{isascii} and @emph{islower}) -folded to uppercase (via @emph{toupper}). -@end quotation - -@end table - -@menu -* Run-time errors for non-existing connections:: -* Run-time errors for strings with NULs:: -* Functions for manipulating strings:: -* Functions for manipulating time:: -@end menu - -@node Run-time errors for non-existing connections, -@subsection Run-time errors for non-existing connections - -@cindex connection, non-existing - -Note that for all functions that take a @code{conn_id} argument -except @code{active-connection}, Bro generates a run-time -error and returns false if the given connection does not exist. - -@cindex NULs, disallowed in certain function calls -@cindex NULs, termination -@cindex strings, termination with NULs -@cindex NULs, allowed in strings - -@node Run-time errors for strings with NULs, -@subsection Run-time errors for strings with NULs - -While Bro allows NULs embedded within strings, -for many of the predefined functions, their presence spells trouble, -particularly when the string is being passed to a C run-time function. -The same holds for strings that are @emph{not} NUL-terminated. Because -Bro string constants and values returned by Bro functions that construct -strings such as @code{fmt} and @code{cat} are all NUL-terminated, such strings -will not ordinarily arise; but their presence could indicate an attacker -attempting to manipulate either a TCP endpoint, or the monitor itself, -into misinterpreting a string they're sending. - -In general, any of the functions above that are passed a string argument -will check for the presence of an embedded NUL or the lack of a terminating -NUL. If either occurs, they generate a run-time message, and the -string is transformed into the value -@code{""}. - -There are three exceptions: @code{clean}, @code{byte_len}, and -@code{sub_bytes}. These functions do not complain about embedded -NULs or lack of trailing NULs. - -@node Functions for manipulating strings, -@subsection Functions for manipulating strings - -@emph{Fixme: Missing} - -@node Functions for manipulating time, -@subsection Functions for manipulating time - -@emph{Fixme: Missing} - -@cindex predefined functions - diff --git a/doc/ref-manual/references.texi b/doc/ref-manual/references.texi deleted file mode 100644 index 760f8368f4..0000000000 --- a/doc/ref-manual/references.texi +++ /dev/null @@ -1,122 +0,0 @@ -@node References -@chapter References - - -@itemize -@item [RFC2373] R. Hinden and S. Deering, IP Version 6 Addressing Architecture, -RFC-2373, Jul. 1998. - -@item [MJ93] S. McCanne and V. Jacobson, -The BSD Packet Filter: A New Architecture for User-level Packet Capture, -Proc.1993 Winter USENIX Conference, San Diego, CA. - -@item [MLJ94] S. McCanne, C. Leres and V. Jacobson, -libpcap, available via anonymous ftp from @uref{http://www.tcpdump.org}, 1994. - -@item [Pa98] V. Paxson, -Bro: A System for Detecting Network Intruders in Real-Time, -Proc. 7th USENIX Security Symposium, Jan. 1998. - -@item [Pa99] -V. Paxson, Bro: A System for Detecting Network Intruders -in Real-Time, Computer Networks: special issue on intrusion detection, -31(23--24), pp. 2435-2463, Dec. 1999. - -@item [PN98] T. Ptacek and T. Newsham, -Insertion, Evasion, and Denial of Service: Eluding Network -Intrusion Detection, Secure Networks, Inc., -@uref{http://www.aciri.org/vern/Ptacek-Newsham-Evasion-98.ps}, -Jan. 1998. - -@item [RFC791] J. Postel, Internet Protocol, RFC-791, Sep. 1981. - -@item [RFC793] J. Postel, Transmission Control Protocol, -RFC-793, Sep. 1981. - -@item [RFC854] J. Postel and J. Reynolds, -Telnet Protocol Specification, May 1983. - -@item [RFC855] J. Postel and J. Reynolds, -Telnet Option Specifications, RFC-855, May 1983. - -@item [RFC959] J. Postel and J. Reynolds, File Transfer Protocol (FTP), -RFC-959, Oct. 1985. - -@item [RFC1013] R. Scheifler, -X Window System Protocol, version 11: Alpha update, -RFC-1013, Apr. 1987. - -@item [RFC1094] Sun Microsystems, -NFS: Network File System Protocol specification, -RFC-1094, Mar. 1989. - -@item [RFC1122] B. Braden, -Requirements for Internet hosts - communication layers, -RFC-1122, Oct. 1989. - -@item [RFC1282] B. Kantor, BSD Rlogin, RFC-1282, Dec. 1991. - -@item [RFC1288] D. Zimmerman, -The Finger User Information Protocol, RFC-1288, Dec. 1991. - -@item [RFC1413] M. St. Johns, Identification Protocol, RFC-1413, Jan. 1993. - -@item [RFC1644] B. Braden, -T/TCP -- TCP Extensions for Transactions Functional Specification, -RFC-1644, Jul. 1994. - -@item [RFC1813] B. Callaghan, B. Pawlowski, P. Staubach, -NFS Version 3 Protocol Specification, -RFC-1813, June 1995. - -@item [RFC1831] R. Srinivasan, -RPC: Remote Procedure Call Protocol Specification Version 2, -RFC-1831, Aug. 1995. - -@item [RFC1832] R. Srinivasan, XDR: External Data Representation Standard, -RFC-1832, Aug. 1995. - -@item [RFC1939] J. Myers and M. Rose, Post Office Protocol - Version 3, -RFC-1939, May 1996. - -@item [RFC1945] T. Berners-Lee, R. Fielding and H. Frystyk, -Hypertext Transfer Protocol -- HTTP/1.0, -RFC-1945, May 1996. - -@item [RFC2616] J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, -Hypertext Transfer Protocol -- HTTP/1.1, -RFC-2626, Jun. 1999. - -@item [YKSRL00] T. Ylonen, T. Kivinen, M. Saarinen, T. Rinne and S. Lehtinen, -SSH Connection Protocol, Internet Draft -draft-ietf-secsh-connect-07.txt, May 2000. - -@item [SSLv2] Kipp E.B. Hickman, -The SSL Protocol, Netscape Communications Corp. -@emph{http://wp.netscape.com/eng/security/SSL_2.html}, February 1995. - -@item [SSLv30] Alan O. Freier, Philip Karlton, Paul C. Kocher, -The SSL Protocol Version 3.0, Internet Draft -@emph{draft-freier-ssl-version3-02.txt}, November 1996. - -@item [TLSv1] T. Dierks, C. Allen, -`` The TLS Protocol Version 1.0,'' RFC-2246, January 1999. - -@item [SSL-FIPS] Nelson Bolyard, Wan-Teh Chang, -FIPS SSL CipherSuites, -@uref{http://www.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html}, June 2001. - -@item [SSL-AES] P. Chown, -Advanced Encryption Standard (AES) Ciphersuites for Transport -Layer Security (TLS), RFC-3268, June 2002. - -@item [TLS-56] John Banes, Richard Harrington, -56-bit Export Cipher Suites For TLS, Internet Draft -@emph{draft-ietf-tls-56-bit-ciphersuites-00.txt}, April 1999. - -@item [X509] R. Housley, W. Polk, W. Ford, D. Solo, -Internet X.509 Public Key Infrastructure Certificate and -Certificate Revocation List (CRL) Profile, -RFC-3280, June 2002. - -@end itemize diff --git a/doc/ref-manual/signatures.texi b/doc/ref-manual/signatures.texi deleted file mode 100644 index 50ee0d3b08..0000000000 --- a/doc/ref-manual/signatures.texi +++ /dev/null @@ -1,295 +0,0 @@ - -@node Signatures -@chapter Signatures - -@menu -* Overview:: -* Signature language:: -* snort2bro:: -@end menu - -@node Overview, -@section Overview - -In addition to the policy language, Bro provides another language which is -specifically designed to define @emph{signatures}. Signatures precisely describe -how network traffic looks for certain, well-known attacks. As soon as a attack -described by a signature is recognized, Bro may generate an event for this -@emph{signature match} which can then be analyzed by a policy script. -To define signatures, Bro's language provides several powerful constructs like -regular expressions @ and dependencies between multiple -signatures. - -Signatures are independent of Bro's policy scripts and, therefore, are put -into their own file(s). There two ways to specify which files contain -signatures: By using the @code{-s} flag when you invoke Bro, or by extending -the Bro variable @code{signatures_files} using the @code{+=} operator. -If a signature file is given without a path, it is searched along -. The default extension of the file name is @code{.sig} -which Bro appends automatically. - -@node Signature language, -@section Signature language - -Each individual signature has the format - -@quotation -@code{signature @emph{id} @{ @emph{attribute-set} @} } -@end quotation - -@code{id} is an unique label for the signature. There are two types of -attributes: @emph{conditions} and @emph{actions}. The conditions define -@emph{when} the signature matches, while the actions declare @emph{what to do} in the case of a match. Conditions can be further divided into -four types: @emph{header}, @emph{content}, @emph{dependency}, and -@emph{context}. We will discuss these in more detail in the following -subsections. - -This is an example of a signature: - -@example -signature formmail-cve-1999-0172 @{ - ip-proto == tcp - dst-ip == 1.2.0.0/16 - dst-port = 80 - http /.*formmail.*\?.*recipient=[^&]*[;|]/ - event "formmail shell command" - @} -@end example - -@menu -* Conditions:: -* Actions:: -@end menu - -@node Conditions, -@subsection Conditions - -@menu -* Header conditions:: -* Content conditions:: -* Dependency conditions:: -* Context conditions:: -@end menu - -@node Header conditions, -@subsubsection Header conditions - -Header conditions limit the applicability of the signature to a subset of -traffic that contains matching packet headers. For TCP, this match is -performed only for the first packet of a connection. For other protocols, it -is done on each individual packet. There are pre-defined header conditions for -some of the most used header fields: - -@table @samp - -@item @emph{address-list} -Destination address of IP packet (may include CIDR masks for specifying networks) - -@item @emph{integer-list} -Destination port of TCP or UDP packet - -@item @emph{protocol-list} -IP protocol; @emph{protocol} may be @code{tcp}, @code{udp}, or @code{icmp}. - -@item @emph{address-list} -Source address of IP packet (may include CIDR masks for specifying networks) - -@item @emph{integer-list} -Source port of TCP or UDP packet -@end table - -@emph{comp} is one of @code{==}, @code{!=}, @code{<}, -@code{<=}, @code{>}, @code{>=}. All lists are comma-separated values of -the given type which are sequentially compared against the corresponding -header field. If at least one of the comparisons evaluates to true, the whole -header condition matches (exception: if @emph{comp} is @code{!=}, the header -condition only matches if @emph{all} values differ). @emph{address} is an -dotted IP address optionally followed by a CIDR/mask to define a subnet -instead of an individual address. @emph{protocol} is either one of @code{ip}, -@code{tcp}, @code{udp} and @code{icmp}, or an integer. - -In addition to this pre-defined short-cuts, a general header condition can be -defined either as - -@quotation -@code{header @emph{proto}[@emph{offset}:@emph{size}] @emph{comp} @emph{value-list}} -@end quotation - -or as - -@quotation -@code{header @emph{proto}[@emph{offset}:@emph{size}] & @emph{integer} @emph{comp} @emph{value-list}} -@end quotation - -This compares the value found at the given position of the packet header with -a list of values. @emph{offset} defines the position of the value within -the header of the protocol defined by @emph{proto} (which can @code{ip}, @code{tcp}, -@code{udp} or@code{icmp}. @emph{size} is either 1, 2, or 4 and specifies the -value to have a size of this many bytes. If the optimal -@code{& @emph{integer}} is given, the packet's value is first masked -with the @emph{integer} before it is compared to the value-list. @emph{comp} -is one of @code{==}, @code{!=}, @code{<}, -@code{<=}, @code{>}, @code{>=}. @emph{value-list} is a list of -comma-separated integers similar to those described above. The integers within -the list may be followed by an additional @code{/@emph{mask}} where -@emph{mask} is a value from 0 to 32. This corresponds to the CIDR notation -for netmasks and is translated into a corresponding bitmask which is applied -to the packet's value prior to the comparison (similar to the optional -@code{& @emph{integer}}). - -Putting all together, this is an example which is equivalent to -@code{dst-ip == 1.2.3.4/16, 5.6.7.8/24}: - -@quotation -@code{header ip[16:4] == 1.2.3.4/16, 5.6.7.8/24} -@end quotation - -@node Content conditions, -@subsubsection Content conditions - -Content conditions are defined by regular expressions. We differentiate two -kinds of content conditions: first, the expression may be declared with the -@code{payload} statement, in which case it is matched against the raw -payload of a connection (for reassembled TCP streams) or of a each packet. -Alternatively, it may be prefixed with an analyzer-specific label, in which -case the expression is matched against the data as extracted by the -corresponding analyzer. - -A @code{payload} condition has the form - -@quotation -@code{payload /@emph{regular expression}/} -@end quotation - -Currently, the following analyzer-specific content conditions are defined (note that -the corresponding analyzer has to be activated by loading its policy script): - -@table @samp - -@item @code{http-request @emph{/regular expression/}} -The regular expression is matched against decoded URIs of the HTTP requests. - -@item @code{http-request-header @emph{/regular expression/} } -The regular expression is matched against client-side HTTP headers. - -@item @code{http-reply-header @emph{/regular expression/} } -The regular expression is matched against server-side HTTP headers. - -@item @code{ftp @emph{/regular expression/} } -The regular expression is matched against the command line input of -FTP sessions. - -@item @code{finger @emph{/regular expression/}} -The regular expression is matched against the finger requests. -@end table - -For example, @code{http /(etc/(passwd|shadow)/} matches any URI -containing either @code{etc/passwd} or @code{etc/shadow}. - -@node Dependency conditions, -@subsubsection Dependency conditions - -To define dependencies between different signatures, there are two conditions: - -@table @samp - -@item requires-signature [! @emph{id}] -Defines the current signature to match only if the signature given by @emph{id} -matches for the same connection. Using `@code{!}' negates the -condition: The current signature only matches if @emph{id} does not -match for the same connection (this decision is necessarily deferred until -the connection terminates). - -@item requires-reverse-signature [! @emph{id}] -Similar to @code{requires-signature}, but @emph{id} has to match for the -other direction of the same connections than the current signature. -This allows to model the notion of requests and replies. -@end table - -@node Context conditions, -@subsubsection Context conditions - -Context conditions pass the match decision on to various other components of -Bro. They are only evaluated if all other conditions have already matched. The -following context conditions are defined: - -@table @samp - -@item @code{eval @emph{policy function}} -The given policy function is called and has to return a boolean -indicating the match result. The function has to be of the type -@code{function cond(state: signature_state): bool}. See -\f@{fig:signature-state@} for the definition of @code{signature_state}. - -@float Figure, signature-state -@example -type signature_state: record @{ - id: string; # ID of the signature - conn: connection; # Current connection - is_orig: bool; # True if current endpoint is originator - payload_size: count; # Payload size of the first pkt of curr. endpoint - @}; -@end example -@caption{Definition of the @code{signature_state} record} -@end float - -@item @code{ip-options} -Not implemented currently. - -@item @code{payload-size @emph{comp_integer}} -Compares the integer to the size of the payload of a packet. For -reassembled TCP streams, the integer is compared to the size of -the first in-order payload chunk. Note that the latter is not well defined. - -@item @code{same-ip } -Evaluates to true if the source address of the IP packets equals its -destination address. - -@item @code{tcp-state @emph{state-list}} -Poses restrictions on the current TCP state of the connection. -@emph{state-list} is a comma-separated list of @code{established} -(the three-way handshake has already been performed), -@code{originator} (the current data is send by the originator of the -connection), and @code{responder} (the current data is send by the -responder of the connection). - -@end table - -@node Actions, -@subsection Actions - -Actions define what to do if a signature matches. Currently, there is only one -action defined: @code{event @emph{string}} raises a @code{signature_match} -event. The event handler has the following type: - -@quotation -@code{event signature_match(state: signature_state, msg: string, data: string)} -@end quotation - -See \f@{fig:signature-state@} for a description of @code{signature_state}. The given string -is passed as @code{msg}, and data is the current part of the payload that -has eventually lead to the signature match (this may be empty for signatures without -content conditions). - -@node snort2bro, -@section snort2bro - -The open-source IDS Snort provides an extensive library of signatures. -The Python script @{snort2bro@} converts Snort's signature into Bro signatures. -Due to different internal architectures of Bro and Snort, it is not always -possible to keep the exact semantics of Snort's signatures, but most of the -time it works very well. - -To convert Snort signatures into Bro's format, @code{snort2bro} needs a -workable Snort configuration file (@code{snort.cfg}) which, in particular, -defines the variables used in the Snort signatures (usually things like -@code{$EXTERNAL_NET} or @code{$HTTP_SERVERS}). The conversion is -performed by calling @code{snort2bro [-I @emph{dir}] snort.cfg} where the -directory optionally given by @code{-I} contains the files imported by -Snort's @code{include} statement. The converted signature set is written to -standard output and may be redirected to a file. This file can then be -evaluated by Bro using the @code{-s} flag or the @code{signatures_files} -variable. - -@emph{Deficiency:@code{snort2bro} does not know about some of the newer Snort signature options and ignores them (but it gives a warning).} - diff --git a/doc/ref-manual/started.texi b/doc/ref-manual/started.texi deleted file mode 100644 index 2f3d996e70..0000000000 --- a/doc/ref-manual/started.texi +++ /dev/null @@ -1,868 +0,0 @@ - -@node Getting Started -@chapter Getting Started - - -This chapter gives an overview of how to get started with operating Bro: -@emph{(i)} compiling it, @emph{(ii)} running it interactively, on live -network traffic, and on recorded traces, @emph{(iii)} how Bro locates the -policy files it should evaluate and how to modify them, @emph{(iv)} the -arguments you can give it to control its operation, and @emph{(v)} some -helper utilities also distributed with Bro that you'll often find handy. - -@menu -* Running Bro:: -* Helper utilities:: -@end menu - -@node Running Bro, -@section Running Bro - -@cindex running Bro -@cindex Bro, running - -This section discusses how to build and install Bro, running it interactively -(mostly useful for building up familiarity with the policy language, not -for traffic analysis), running it on live and recorded network traffic, -modifying Bro policy scripts, and the different run-time flags. - -@menu -* Building and installing Bro:: -* Using Bro interactively:: -* Specifying policy scripts:: -* Running Bro on network traffic:: -* Modifying Bro policy:: -* Bro flags and run-time environment:: -@end menu - -@node Building and installing Bro, -@subsection Building and installing Bro - -@cindex Bro, installing -@cindex building Bro -@cindex compiling Bro - -@menu -* Supported platforms:: -* Bro source code distribution:: -* Installing Bro:: -* Tuning BPF:: -@end menu - -@node Supported platforms, -@subsubsection Supported platforms - -@cindex Unix support -@cindex Windows, not supported -@cindex NT, not supported - -Bro builds on a number of types of Unix: @emph{ FreeBSD, Solaris, Linux}, though not all versions. It does @emph{not} -build under non-Unix operating systems such as Windows NT. - -@node Bro source code distribution, -@subsubsection The Bro source code distribution - -@cindex source code, for Bro -@cindex Bro, source code -@cindex Bro, web page - -You can get the latest public release of Bro from the Bro web page, -@url{http://www.bro-ids.org/}. -Bro is distributed as a @emph{gzip}'d Unix @emph{tar} archive, which -you can unpack using: -@quotation -@code{gzcat +@emph{tar-file} | tar xf -} -@end quotation -or, on some Unix systems: -@quotation -@code{+tar zxf +@emph{tar-file}} -@end quotation -This creates a subdirectory -@code{+bro-+@emph{XXX}+-+@emph{version}}, -where @emph{XXX} is a tag such as pub for public releases and -priv for private releases, and @emph{version} reflects a version -and possibly a subversion, such as @code{0.8a20} for version -@emph{0.8} and subversion @emph{a20}. - -To build Bro, change to the Bro directory and enter: -@quotation -@noindent ./configure @* make -@end quotation - -Bro configuration is described in the -@uref{http://www.bro-ids.org/User-Manual, User Manual} - -@node Installing Bro, -@subsubsection Installing Bro - -@cindex installing Bro - -You install Bro by issuing: -@quotation -@noindent @code{make install} -@end quotation - -@node Tuning BPF, -@subsubsection Tuning BPF - -@cindex Bro, system configuration -@cindex system configuration -@cindex optimizing your system for Bro -@cindex BPF (Berkeley Packet Filter), tuning - -Bro is written using @command{libpcap}, the portable packet-capture -library available from -@code{ftp://ftp.ee.lbl.gov/libpcap.tar.Z}. While -@emph{libpcap} knows how to use a wide range of Unix packet filters, it -far and away performs most efficiently used in conjunction with the Berkeley -Packet Filter (BPF) and with BPF descendants (such as the Digital Unix -packet filter). Although BPF is available from -@code{ftp://ftp.ee.lbl.gov/bpf.tar.Z}, installing -it involves modifying your kernel, and perhaps requires significant porting -work. However, it comes as part of several operating systems, such as -FreeBSD, NetBSD, and OpenBSD. - -For BPF systems, you should be aware of the following tuning and -configuration issues: -@table @samp - -@item BPF kernel support -You need to make sure that kernel support for BPF is enabled. In addition, -some systems default to configuring kernel support for only one BPF device. -This often proves to be a headache because it means you cannot run more -than one Bro at a time, nor can you run it at the same time as - -@item /dev/bpf devices -@cindex dev/bpf - -Related to the -previous item, on BPF systems access to the packet filter is via special -@emph{/dev/bpf} devices, such as @emph{/dev/bpf0}. Just as you need to -make sure that the kernel's configuration supports multiple BPF devices, -so to must you make sure that an equal number of device files reside in -@emph{/dev/}. - -@item packet filter permissions -@cindex packet filter, permissions -@cindex packet filter, access -@cindex root, Bro not running as -@cindex Bro, not running as root -On systems for which access to the packet filter is via the file system, -you should consider whether you want to only allow root access, or instead -create a Unix @emph{group} for which you enable read access to -the device file(s). The latter allows you to run Bro as a user other -than root, which is @emph{strongly recommended}! - -@item large BPF buffers -@cindex BPF buffers, ensuring they are large -@cindex large BPF buffers -@cindex buffers, large for BPF -While running with BPF is often necessary for high performance, it's not -necessarily sufficient. By default, BPF programs use very modest kernel -buffers for storing packets, which leads to high context switch overhead -as the kernel very often has to deliver packets to the user-level Bro -process. Minimizing the overhead requires increasing the buffer sizes. -This can make a @emph{large} difference! - -Under FreeBSD, the configuration variable to increase is -@code{debug.bpf_bufsize}, which you can set via @emph{sysctl}. We -recommend creating a script run at boot-up time that increases it -from its small default value to something on the order of 100 KB--2 MB, -depending on how fast (heavily loaded) is the link being monitored, -and how much physical memory the monitor machine has at its disposal. - -@cindex libpcap buffer size patch -@emph{libpcap buffer size patch}: -@emph{Important note}: some versions of have -internal code that limits the maximum buffer size to 32 KB. For -these systems, you should apply the patch included in the Bro distribution -in the file @code{libpcap.patch}. - -Finally, once you have increased the buffer sizes, you should @emph{check} -that running Bro does indeed consume the amount of kernel memory you -expect. You can do this under FreeBSD using @emph{vmstat -m} and -searching in the output for the summary of BPF memory. You should find -that the @emph{MemUse} statistic goes up by twice the buffer size for -every concurrent Bro or @command{tcpdump} you run.@footnote{Providing -that these programs have been recompiled with the corrected @emph{libpcap} -noted above.} The reason the increase is by twice the buffer size is -because Bro uses double-buffering to avoid dropping packets when the -buffer fills up. -@end table - -@node Using Bro interactively, -@subsection Using Bro interactively - -@cindex Bro, interactive use - -Once you've built Bro, you can run it interactively to try out simple -facets of the policy language. Note that in this mode, Bro is @emph{not} -reading network traffic, so you cannot do any traffic analysis; this mode -is simply to try out Bro language features. - -You run Bro interactively by simply executing ``bro'' without -any arguments. It then reads from @emph{stdin} and writes to @emph{stdout}. - -Try typing the following to it: -@quotation -@noindent @code{print "hello, world";} @* -@noindent @code{^D} @emph{(i.e., end of file)} -@end quotation -(The end-of-file is critical to remember. It's also a bit annoying for -interactive evaluation, but reflects the fact that Bro is not actually -meant for interactive use, it simply works as a side-effect of Bro's -structure.) - -Bro will respond by printing: -@quotation -@noindent hello, world -@end quotation -to @emph{stdout} and exiting. - -You can further declare variables and print expressions, for example: -@example - global a = telnet; - print a, a > ftp; - print www.microsoft.com; -@end example - -will print -@example - 23/tcp, T - 207.46.230.229, 207.46.230.219, 207.46.230.218 -@end example -(FIXME: this example needs to be updated. Format has changed.) - -where 23/tcp reflects the fact that telnet is a predefined -variable whose value is TCP port 23, which is larger than TCP port 21 -(i.e., ftp); and the DNS name @emph{www.microsoft.com} currently -returns the above three addresses. - -You can also define functions: -@example - function top18bits(a: addr): addr - @{ - return mask_addr(a, 18); - @} - - print top18bits(128.3.211.7); -@end example - -prints -@example - 128.3.192.0 -@end example - -and even event handlers: -@example - event bro_done() - @{ - print "all done!"; - @} -@end example - -which prints ``all done!'' when Bro exits. - -@node Specifying policy scripts, -@subsection Specifying policy scripts - -Usually, rather than running Bro interactively you want it to execute -a policy script or a set of policy scripts. You do so by specifying -the names of the scripts as command-line arguments, such as: -@example - bro ~/my-policy.bro ~/my-additional-policy.bro -@end example - -Bro provides several mechanisms for simplifying how you specify which -policies to run. - -First, if a policy file doesn't exist then it will -try again using .bro as a suffix, so the above could be specified as: -@example - bro ~/my-policy ~/my-additional-policy -@end example - -Second, Bro consults the colon-separated search path -to locate policy scripts. If your home directory was listed in $BROPATH, -then you could have invoked it above using: -@example - bro my-policy my-additional-policy -@end example - -@emph{Note:} If you define $BROPATH, you @emph{must} include @emph{bro-dir}/policy, where @emph{bro-dir} is where you have built or installed Bro, because it has to be able to locate @emph{bro-dir}/policy/bro.init to initialize itself at run-time. - -Third, the @code{@@load} directive can be used in a policy script to indicate the -Bro should at that point process another policy script (like C's include -directive; see ). So you could have in @emph{my-policy}: -@example - @@load my-additional-policy -@end example - -and then just invoke Bro using: -@example - bro my-policy -@end example - -providing you @emph{always} want to load @emph{my-additional-policy} -whenever you load @emph{my-policy}. - -Note that the predefined Bro module @code{brolite} loads almost -all of the other standard Bro analyzers, so you can pull them in -with simply: -@example - @@load brolite -@end example - -or by invoking Bro using ``@command{bro brolite @emph{my-policy}}''. - -@node Running Bro on network traffic, -@subsection Running Bro on network traffic - -There are two ways to run Bro on network traffic: on traffic captured -live by the network interface(s), and on traffic previously recorded -using the @code{-w} flag of @code{tcpdump} or Bro itself. - -@menu -* Live traffic:: -* Traffic traces:: -@end menu - -@node Live traffic, -@subsubsection Live traffic -@cindex network interfaces -@cindex analysis, on-line -@cindex on-line analysis - -Bro reads live traffic from the local network interface whenever you -specify the @code{-i} flag. As mentioned below, you can specify -multiple instances to read from multiple interfaces simultaneously, -however the interfaces must all be of the same link type (e.g., you -can't mix reading from a Fast Ethernet with reading from an FDDI link, -though you can mix a 10 Mbps Ethernet interface with a 100 Mbps Ethernet). - -In addition, Bro will read live traffic from the interface(s) listed in -the @code{interfaces} variable, @emph{unless} you specify -the @code{-r} flag (and do not specify @code{-i}). So, for -example, if your policy script contains: -@example - const interfaces += "sk0"; - const interfaces += "sk1"; -@end example - -then Bro will read from the @emph{sk0} and @emph{sk1} interfaces, -and you don't need to specify @code{-i}. - -@node Traffic traces, -@subsubsection Traffic traces - -@cindex analysis, off-line -@cindex off-line analysis - -To run on recorded traffic, you use the @code{-r} flag to indicate -the trace file Bro should read. As with @code{-i}, you can use the -flag multiple times to read from multiple files; Bro will merge the packets -from the files into a single packet stream based on their timestamps. - -The Bro distribution includes an example trace that you can try out, -@emph{example.ftp-attack.trace}. If you invoke Bro using: -@example - bro -r example.ftp-attack.trace brolite -@end example - -you'll see that it generates a connection summary to @emph{stdout}, -a summary of the FTP sessions to ftp.example, a copy of what -would have been real-time alarms had Bro been running on live traffic -to @code{alarm.example}, and a summary of unusual traffic anomalies (none in -this trace) to @code{weird.example}. - -@node Modifying Bro policy, -@subsection Modifying Bro policy - -One way to alter the policy Bro executes is of course to directly -edit the scripts. When this can be avoided, however, that is preferred, -and Bro provides a pair of related mechanisms to help you specify -@emph{refinements} to existing policies in separate files. - -The first such mechanism is that you can define @emph{multiple} -handlers for a given event. So, for example, even though the standard -@command{ftp} analyzer (@code{@emph{bro-dir}/policy/ftp.bro}) -defines a handler for @code{ftp.request}, you can define another handler -if you wish in your own policy script, even if that policy script loads -(perhaps indirectly, via the @code{brolite} module) the @code{ftp} analyzer. -When the event engine generates an ftp_request event, @emph{both} -handlers will be invoked. - -@emph{Deficiency: Presently, you do not have control over the order in which they are invoked; you also cannot completely override one handler with another, preventing the first from being invoked. } - -Second, the standard policy scripts are often written in terms of -@emph{redefinable} variables. For example, @code{ftp.bro} contains -a variable @code{ftp_guest_ids} that defines a list of usernames -the analyzer will consider to reflect guest accounts: -@example - const ftp_guest_ids = @{ "anonymous", "ftp", "guest", @} &redef; -@end example - -While ``@code{const}'' marks this variables as constant at run-time, -the attribute ``@code{&redef}'' specifies that its value can be -redefined. - -For example, in your own script you could have: -@example - redef ftp_guest_ids = @{ "anonymous", "guest", "visitor", "student" @}; -@end example - -instead. (Note the use of ``redef'' rather than ``const'', -to indicate that you realize you are redefining an existing variable.) - -In addition, for most types of variables you can specify @emph{incremental} -changes to the variable, either new elements to add or old ones to -subtract. For example, you could instead express the above as: -@example - redef ftp_guest_ids += @{ "visitor", "student" @}; - redef ftp_guest_ids -= "ftp"; -@end example - -The potential advantage of incremental refinements such as these are that -if any @emph{other} changes are made to ftp.bro's original definition, -your script will automatically inherit them, rather than replacing them -if you used the first definition above (which explicitly lists all four -names to include in the variable). Sometimes, however, you don't want this -form of inheriting later changes; you need to decide on a case-by-case -basis, though our experience is that generally the incremental approach -works best. - -Finally, the use of @emph{prefixes} provides a way -to specify a whole set of policy scripts to load in a particular context. -For example, if you set @code{$BRO_PREFIXES} to ``dialup'', -then a load of @code{ftp.bro} will @emph{also} load dialup.ftp.bro -automatically (if it exists). See @ref{Run-time environment} for further discussion. - -@node Bro flags and run-time environment, -@subsection Bro flags and run-time environment - -@menu -* Flags:: -* Run-time environment:: -@end menu - -@node Flags, -@subsubsection Flags - -@cindex command line options - -When invoking Bro, you can control its behavior using a large number of -flags and arguments. Most options can be specified using either a more -readable long version (starting with two dashes), or a more compact but -sometimes less intuitive short version (single dash followed by a single -letter). Arguments can be provided after whitespace (i.e., ``@command{-r file.pcap}'' -or ``@command{--readfile file.pcap}'') and also using an equation mark -when the long version is used (i.e., ``@command{--readfile=file.pcap}''). -Single-letter flags without arguments can be combined into a single option -element (i.e., ``-dWF'' is the same as ``-d -W -F''). - -@table @samp -@c -@c Note: the @*s are to provide consistent spacing between the items in HTML -@c output. Better solutions welcome. --cpk -@c -@item @code{-d|--debug-policy} -Activates policy file debugging. See @ref{Interactive Debugger} for details. -@cindex debugging, policy scripts -@* - -@item @code{-e|--exec } -Adds the given Bro policy statements to the loaded policy. Use for -manual @ref{Refinement, refinement}, or for verifying the resulting value of a -given variable. Note that you can omit trailing semi-colons. -@* - -@item @code{-f|--filter filter} -Use @emph{filter} as the @command{tcpdump} filter for -capturing packets, rather than the combination of -and @code{restrict_filter}, or the default of ``tcp or udp'' . -@* - -@item @code{-h|--help|-?} -Generate a help message summarizing Bro's options and environment variables, -and exit. -@cindex help message -@cindex Bro, usage -@cindex usage message -@* - -@item @code{-g|--dump-config} -Writes out the current configuration into the persistent state directory -configured through the @code{state_dir} variable, defined in -@ref{Bro init file, bro.init} and subject to @ref{Refinement, refinement}. -@cindex persistent state -@cindex configuration, dumping to directory -@* - -@item @code{-i|--iface } -Add @emph{interface} to the list of interfaces from which Bro should -read @ref{Live traffic, network traffic}. You can use this flag -multiple times to direct Bro to read from multiple interfaces. -You can also, or in addition, use refinements of the -variable to specify interfaces. - -Note that if no interfaces are specified, then Bro will not read -any network traffic. It does @emph{not} have a notion of a ``default'' -interface from which to read. -@cindex network interfaces -@cindex analysis, on-line -@cindex on-line analysis -@* - -@item @code{-p|--prefix } -Add @emph{prefix} to the list of prefixes searched by Bro when loading -a script. You can also, or in addition, use @emph{prefix} to specify search -prefixes. See @ref{use of prefixes, prefixes} for discussion. -@cindex prefixes -@* - -@item @code{-r|--readfile } -Add @emph{readfile} to the list of @command{tcpdump} -save files that Bro should read. You can use this flag multiple times to -direct Bro to read from multiple save files; it will merge the packets -read from the different files based on their timestamps. Note that if -the save files contain only packet headers and not contents, then of -course Bro's analysis of them will be limited. - -Note that use of @code{-r} is @emph{mutually exclusive} with use of @code{-i}. -However, you can use @code{-r} when running scripts that refine -@code{interfaces}, in which case the -r option takes precedence -and Bro performs off-line analysis. -@cindex trace file, reading -@cindex save file, reading -@cindex analysis, off-line -@cindex off-line analysis -@cindex reading tcpdump files -@* - -@item @code{-s|--rulefile } -Add @emph{signaturefile} to the list of files containing signatures to match -against the network traffic. See @ref{Signatures} for more information. -@* - -@item @code{-t|--tracefile } -Enables tracing of Bro script execution. See @ref{Execution tracing}. -@cindex tracing -@cindex execution tracing -@* - -@item @code{-w|--writefile } -Write a @command{tcpdump} save file to the file -@emph{writefile}. Bro will record all of the packets it captures, -including their contents, except as controlled by calls to @command{set_record_packets}. -@cindex trace file, writing -@cindex save file, writing -@cindex writing tcpdump files -@cindex HTTP packets, contents not being recorded -@cindex SYN control packet -@cindex FIN control packet -@cindex RST control packet -@cindex TCP control packets (SYN/FIN/RST) -@cindex control packets (SYN/FIN/RST) -@cindex packets, control (SYN/FIN/RST) -@emph{Note:} One exception is that unless you are analyzing HTTP events (for example, by loading the @ ref@code{http} analyzer), -Bro does @emph{not} record the @emph{contents} of HTTP SYN/FIN/RST packets to the trace file. -The reason for this is that HTTP FIN packets often contain a large amount of data, which is not of any interest if you are not using HTTP analysis, -and due to the very high volume of HTTP traffic at many sites, removing this data can significantly reduce the size of the save file. @emph{Deficiency: Clearly, this should not be hardwired into Bro but under user control. } - -Save files written using @code{-w} are of course readable using @code{-r}. -Accordingly, you will generally want to use @code{-w} when running Bro on -live network traffic so you can rerun it off-line later to understand -any problems that arise, and also to experiment with the effects of changes -to the policy scripts. - -You can also combine @code{-r} with @code{-w} to both read a save file(s) and -write another. This is of interest when using multiple instances of -@code{-r}, as it provides a way to merge @command{tcpdump} -save files. -@* - -@item @code{-v|--version} -@cindex version message -@cindex Bro, version -Print the version of Bro and exit. -@* - -@item @code{-x|--print-state } -Reads the contents of the specified Bro state file, prints them to the -console, and exits. -@* - -@item @code{-z|--analyze } -Runs the specified analyzer over the configured policy. See @ref{Policy analyzers}. -@cindex policy analysis -@* - -@item @code{-A|--transfile } -Write transformed trace to the @command{tcpdump} file given. See @ref{Trace rewriting}. -@* - -@item @code{-C|--no-checksums} -Incorrect IP, TCP, or UDP checksums normally trigger different variants of -@code{net_weird} and @code{conn_weird} events (see also @ref{Events handled by net_weird}, -@ref{Events handled by conn_weird}, and @ref{weird variables}). This flag causes -Bro to ignore incorrect checksums. -@cindex checksums, disabling checks -@* - -@item @code{-D|--dfa-size } -Sets the cache size of deterministic finite automata (used extensively for -@ref{Signatures, signatures}) to the given number of entries. The default is -10,000. -@* - -@item @code{-F|--force-dns} -@cindex DNS!Bro's private cache, forcing access to -@cindex forcing access to Bro's private DNS cache -@cindex Bro, private caches -Instructs Bro that it @emph{must} resolve all hostnames out of its -private DNS cache. If the script refers to a hostname -not in the cache, then Bro @emph{exits} with a fatal error. - -@cindex checkpointing Bro -@cindex Bro, checkpointing -The point behind this option is to ensure that Bro starts quickly, rather -than possibly stalling for an undetermined amount of time resolving a -hostname. Fast startup simplifies checkpointing a running Bro---you can -start up a new Bro and then killing off the old one shortly after. -You'd like this to occur in a manner such that there's no period during -which neither Bro is watching the network (the older because you killed -it off too early, the newer because it's stuck resolving hostnames). -@* - -@item @code{-I|--print-id } -Looks up the variable identified by ``name'' in the global scope -(see @ref{Scope}) and prints it to the console. -@* - -@item @code{-K|--md5-hashkey } -Allows you to specify a fixed seed for MD5 initialization. MD5 is used -by default for hashing elements in the Bro core, and by default some -randomness is gathered at Bro startup before PRNG initialization. -@* - -@emph{Note: This means that by default repeated runs of Bro on identical -inputs do @strong{not} necessarily yield identical output. If you want -to ensure determinism, use the @code{--save-seeds} and @code{--load-seeds} -options.} -@cindex determinism -@cindex indeterminism -@cindex hashing, keys -@* - -@item @code{-L|--rule-benchmark} -See @ref{Rule benchmarking}. -@* - -@item @code{-O|--optimize} -@cindex optimizer for policy script interpreter -@cindex policy script interpreter, optimizer -@cindex Bro, optimizer -Turns on Bro's optimizer for improving its internal representation -of the policy script. @emph{Note:} Currently, the amount of improvement is modest, and there's (as always) a risk of an optimizer bug introducing errors into the execution of the script, so the optimizer is not enabled by default. -@* - -@item @code{-P|--prime-dns} -@cindex caches, Bro's private ones -@cindex Bro, private caches -@cindex priming Bro's private DNS cache -Instructs Bro to @emph{prime} its private DNS cache. -It does so by parsing the policy scripts, but not executing them. -Bro looks up each hostname's address(es) and records them in the private -cache. The idea is that once @command{bro -P} finishes, you can then use -@command{bro -F} to start up Bro quickly because it will read all the -information it needs from the cache. -@* - -@c EventPlayer's class definition in Serializer.h says it's not currently -@c usable, so -R is left out for now. --cpk -@c -@c @item @code{-R|--replay } - -@item @code{-S|--debug-rules} -Prints debugging output for the rules used in signature matching. See also -@ref{Signatures}. -@cindex signature debugging -@* - -@item @code{-T|--re-level } -Sets the level in the tree of rules at which regular expressions are -built. Default is 4. -@* - -@item @code{-W|--watchdog} -@cindex Bro, wedging -@cindex watchdog -@cindex Bro, watchdog -@cindex Bro, execution aborted -@cindex aborted execution -Instructs Bro to activate its internal @emph{watchdog}. The watchdog -provides self-monitoring to enable Bro to detect if its processing is -wedged. - -Bro only activates the watchdog if it is reading live network traffic. -The watchdog consists of a periodic timer that fires every -@code{WATCHDOG_INTERVAL} seconds. (@emph{Deficiency:clearly this should be a user-definable value.}) At that point, the watchdog checks -to see whether Bro is still working on the same packet as it was the last -time the watchdog expired. If so, then the watchdog logs this fact along -with some information regarding when Bro began processing the current -packet and how many events it processed after handling the packet. Finally, -it prints the packet drop information for the different interfaces Bro -was reading from, and aborts execution. -@* - -@item @code{--save-seeds } -Writes the seeds used for initializing the PRNGs in Bro to the given -file. This can be combined with @code{-K|--md5-hashkey}, and is intended -to be used with @code{--load-seeds} in future Bro runs. -@cindex determinism -@cindex indeterminism -@cindex seeding Bro -@* - -@item @code{--save-seeds } -Seeds the PRNGs in Bro using a file produced by @code{--save-seeds} -in an earlier Bro invocation. -@cindex determinism -@cindex indeterminism -@cindex seeding Bro -@* - -@end table - -@node Run-time environment, -@subsubsection Run-time environment - -Bro is also sensitive to the following environment variables: -@table @samp - -@item $BROPATH -@cindex search path -@cindex Bro, search path -@cindex policy directories -@cindex usr/local/lib/bro/usr/local/lib/bro/ policy directory -@cindex policy/ policy directory -@cindex policy/local/local/ policy directory -A colon-separated list of directories that Bro searches whenever -you load a policy file. It loads the first instance it finds (though -see $BRO_PREFIXES for how a single load can lead to Bro loading -multiple files). - -Default: if you don't set this variable, then Bro uses the path -@example - .:policy:policy/local:/usr/local/lib/bro -@end example - -That is, the current directory, any @emph{policy/} and @emph{policy/local/} -subdirectories, and @emph{/usr/local/lib/bro/}. - -@item $BRO_PREFIXES -@cindex prefixes -@cindex bro suffix.bro suffix -A colon-separate lists of @emph{prefixes} that Bro should apply to -each name in a @code{@@load} directive. For a given prefix and load-name, Bro -constructs the filename: -@quotation -@emph{prefix}.@emph{load-name}.bro -@end quotation -(where it doesn't add .bro if @emph{load-name} already ends in -.bro). It then searches for the filename using $BROPATH -and loads it if its found. Furthermore, it @emph{repeats} this process -for all of the other prefixes (left-to-right), and loads @emph{each} -file it finds for the different prefixes. @emph{Note:} Bro @emph{also} first attempts to load the filename without any prefix at all. If this load fails, then Bro exits with an error complaining that it can't open the given @code{@@load} file. - -For example, if you set $BRO_PREFIXES to: -@example - mysite:mysite.wan -@end example - -and then issue ``@command{@@load ftp}'', Bro will attempt to load each of the -following scripts in the following order: -@example - ftp.bro - mysite.ftp.bro - mysite.wan.ftp.bro -@end example - -Default: if you don't specify a value for $BRO_PREFIXES, it defaults -to empty, and for the example above Bro would only attempt to @command{@@load ftp.bro}. - -@end table - -@node Helper utilities, -@section Helper utilities - -@menu -* Scripts:: -* hf utility:: -* cf utility:: -@end menu - -@node Scripts, -@subsection Scripts - -Documentation missing. - -@node hf utility, -@subsection The @code{hf} utility - -@cindex hostnames, mapping addresses to -@cindex addresses, mapping to hostnames -@cindex dotted quads -The @emph{hf} utility reads text on @emph{stdin} and attempts to convert any -``dotted quads'' it sees to hostnames. It is very convenient for running -on Bro log files to generate human-readable forms. See the manual page -included with the distribution for details. - -@node cf utility, -@subsection The @code{cf} utility - -@cindex timestamps, mapping to readable form -@cindex Unix timestamps -The @emph{cf} utility reads Unix timestamps at the beginning of lines on -@emph{stdin} and converts them to human-readable form. For example, -for the input line: -@example -972499885.784104 #26 131.243.70.68/1899 > 64.55.26.206/ftp start -@end example - -it will generate: -@example -Oct 25 11:51:25 #26 131.243.70.68/1899 > 64.55.26.206/ftp start -@end example - -It takes two flags: -@table @samp - -@item -l -specifies the @emph{long} human-readable form, which includes the year. -For example, on the above input, the output would instead be: -@example -Oct 25 11:51:25 2000 #26 131.243.70.68/1899 > 64.55.26.206/ftp start -@end example - -@item -s -specifies @emph{strict} checking to ensure that the number at the beginning -of a line is a plausible timestamp: it must have at least 9 digits, at most -one decimal, and must have a decimal if there are 10 or more digits. - -Without -s, an input like: -@example -131.243.70.68 > 64.55.26.206 -@end example - -generates the output: -@example -Dec 31 16:02:11 > 64.55.26.206 -@end example - -which, needless to say, is not very helpful. - -@emph{Deficiency: It seems clear that -s should be the default behavior. } - -@end table - diff --git a/doc/ref-manual/stmts.texi b/doc/ref-manual/stmts.texi deleted file mode 100644 index c09e9a8b16..0000000000 --- a/doc/ref-manual/stmts.texi +++ /dev/null @@ -1,773 +0,0 @@ - -@node Statements and Expressions -@chapter Statements and Expressions - -You express Bro's analysis of network traffic using @emph{event handlers}, -which, as discussed in XX, -are essentially subroutines written in Bro's policy scripting -language. In this chapter we discuss the different types of statements -and expressions available for expressing event handlers and the auxiliary -functions they use. - -@menu -* Statements:: -* Expressions:: -@end menu - -@node Statements, -@section Statements - -@cindex statements -Bro functions and event handlers are written in an imperative style, and -the statements available for doing so are similar to those provided in C. -@cindex statements, semi-colon termination -@cindex semi-colon statement termination -@cindex statements, multi-line -@cindex whitespace, in statements -As in C, statements are terminated with a semi-colon. There are no -restrictions on how many lines a statement can span. Whitespace can appear -between any of the syntactic components in a statement, and its presence -always serves as a separator (that is, a single syntactic component cannot -in general contain embedded whitespace, unless it is escaped in some form, -such as appearing inside a string literal). - -Bro provides the following types of statements: - -@command{expression} -@cindex expression -@quotation -Syntax: -@quotation -@emph{expr} ; -@end quotation -As in C, an expression by itself can also be used as a statement. -For example, assignments, calling functions, and scheduling -timers are all expressions; they also are often used as statements. -@end quotation - -@command{print} -@cindex print statement -@quotation -Syntax: -@quotation -print @emph{file} @emph{expr-list} ; -@end quotation -The expressions are converted to a list of strings, which are then -printed as a comma-separated list. If the first expression is of -type , then the other expressions are printed to -the corresponding file; otherwise they're written to -@cindex stdout -@emph{stdout}. - -For control over how the strings are formatted, see the @code{fmt} -function. -@end quotation - -@command{alarm} -@cindex alarm statement -@quotation -Syntax: -@quotation -alarm @emph{expr-list} ; -@end quotation -The expressions are converted to a list of strings, which are then -logged as a comma-separated list. ``Logging'' means recording the -values to @file{bro-alarm-file}. In addition, if Bro is reading -@cindex live traffic -@cindex traffic, live vs. recorded -@emph{live} network traffic (as opposed to from a trace file), then -the messages are also reported via -@cindex syslog -@emph{syslog(3)} at level -@emph{LOG_NOTICE}. If the message does not already -include a timestamp, one is added. - -See the @code{alarm} module for a discussion of controlling logging -behavior from your policy script. In particular, an important feature of -the @code{alarm} statement is that prior to logging the giving string(s), -Bro first invokes @command{alarm-hook} to determine whether to suppress -the logging. -@end quotation - -@command{event} -@cindex event statement -@quotation -Syntax: -@quotation -event @emph{expr} ( @emph{expr-list*} ) ; -@end quotation -Evaluates @emph{expr} to obtain an event handler and queues an event -for it with the value corresponding to the optional comma-separated -list of values given by @emph{expr-list}. - -@emph{Note:} @code{event} statements look syntactically just like function calls, other than the -keyword ``@code{event}''. However, @command{function-call-expr}, while queueing an event is not, since it does not return a value. -@end quotation - -@command{if} -@cindex if statement -@quotation -Syntax: -@quotation -if ( @emph{expr} ) @emph{stmt} @* -if ( @emph{expr} ) @emph{stmt} else @emph{stmt2} -@end quotation -Evaluates @emph{expr}, which must yield a @command{bool} value. If true, -executes @emph{stmt}. For the second form, if false, executes @emph{stmt2}. -@end quotation - -@command{for} -@cindex for statement -@quotation -Syntax: -@quotation -for ( @emph{var} in @emph{expr} ) @emph{stmt} -@end quotation -Iterates over the indices of @emph{expr}, which must evaluate to either -a @code{set} or a @code{table}. For each iteration, @emph{var} is -set to one of the indices and @emph{stmt} is executed. @emph{var} needn't -have been previously declared (in which case its type is implicitly inferred -from that of the indices of @emph{expr}), and must not be a global variable. - -If @emph{expr} is a @code{set}, then the indices correspond to the -members of the set. If @emph{expr} is a @code{table}, then they correspond -to the indices of the table. - -@emph{Deficiency: You can only use @code{for} statements to iterate over sets and tables with a single, non-compound index type. You can't iterate over multi-dimensional or compound indices. } - -@emph{Deficiency: Bro lacks ways of controlling the order in which it iterates over the indices. } -@end quotation - -@command{next} -@cindex next statement -@quotation -Syntax: -@quotation -next ; -@end quotation -Only valid within a @code{for} statement. When executed, causes the -loop to proceed to the next iteration value (i.e., the next index value). -@end quotation - -@command{break} -@cindex break statement -@quotation -Syntax: -@quotation -break ; -@end quotation -Only valid within a @code{for} statement. When executed, causes the -loop to immediately exit. -@end quotation - -@command{return} -@cindex return statement -@quotation -Syntax: -@quotation -return @emph{expr} ; -@end quotation -Immediately exits the current function or event handler. For a function, -returns the value @emph{expr} (which is omitted if the function does -not return a value, or for event handlers). -@end quotation - -@command{add} -@cindex add statement -@quotation -Syntax: -@quotation -add @emph{expr1} @emph{expr2} ; -@end quotation -Adds the element specified by @emph{expr2} to the -set given by @emph{expr1}. For example, -@example - global active_hosts: set[addr, port]; - ... - add active_hosts[1.44.33.7, 80/tcp]; -@end example - -adds an element corresponding to the pair -1.44.33.7 and 80/tcp to the set active_hosts. -@end quotation - -@command{delete} -@cindex delete statement -@quotation -Syntax: -@quotation -delete @emph{expr1} [@emph{expr2}] ; -@end quotation -Deletes the corresponding value, where @emph{expr1} corresponds -to a set or table, and @emph{expr2} an element/index of the -set/table. If the element is not in the set/table, does nothing. -@end quotation - -@command{compound} -@cindex compound statement -@quotation -Compound statements are formed from a list of (zero or more) -statements enclosed in -@code{@{@}}'s: -@quotation -@{ @emph{statement*} @} -@end quotation -@end quotation - -@command{null} -@cindex null statement -@quotation -A lone: -@quotation -; -@end quotation -denotes an empty, do-nothing statement. -@end quotation - -@cindex variables, local -@cindex local variables -@cindex variables, constant -@cindex constant variables - -@command{local,const} -@cindex local -@quotation -Syntax: -@quotation -local @emph{var} : @emph{type} = @emph{initialization} @emph{attributes} ; @* -const @emph{var} : @emph{type} = @emph{initialization} @emph{attributes} ; -@end quotation -Declares a local variable with the given type, initialization, and -attributes, all of which are optional. The syntax of these fields is the -same as for @command{global-vars}. The -second form likewise declares a local variable, but one which is -@emph{constant}: trying to assign a new value to it results in an error. -@emph{Deficiency:Currently, this @code{const} restriction isn't detected/enforced. } - -@cindex variables, scope - -@emph{Unlike with C} the scope of a local variable is from the point of declaration to the end of the encompassing function or event handler. -@end quotation - -@cindex statements - -@node Expressions, -@section Expressions - -@cindex expressions|( -Expressions in Bro are very similar to those in C, with similar precedence: - -@cindex left parenthesis operator( operator -@cindex operator, left parenthesis( parenthesis -@cindex right parenthesis operator) operator -@cindex operator, right parenthesis) parenthesis -@cindex parentheses operators() - -@command{parenthesized} -@quotation -Syntax: -@quotation -( @emph{expr} ) -@end quotation -Parentheses are used as usual to override precedence. -@end quotation - -@command{constant} -@cindex constant -@quotation -Any constant value is an expression. -@end quotation - -@command{variable} -@cindex variable -@quotation -The name of a @emph{variable} is an expression. -@end quotation - -@command{clone} -@cindex clone operator -@quotation -Syntax: -@quotation -copy( @emph{expr} ) -@end quotation -Produces a clone, or deep copy, of the value produced by the expression -it is applied to. -@end quotation - -@command{increment,decrement} -@cindex increment -@cindex decrement -@quotation -Syntax: -@quotation -++ @emph{expr} -@* --- @emph{expr} -@end quotation -Increments or decrements the given expression, which must correspond -to an assignable value (variable, table element, or record element) -and of a number type. - -Yields the value of the expression after the increment. - -@emph{Unlike with C, these operators only are defined for ``pre''-increment/decrement; there is no post-increment/decrement.} -@end quotation - -@command{negation} -@cindex negation -@quotation -Syntax: -@quotation -! @emph{expr} @* -- @emph{expr} -@end quotation -Yields the boolean -or arithmetic negation for values of boolean -or @emph{numeric} (or @emph{interval}) types, respectively. -@end quotation - -@command{positivation} -@quotation -Syntax: -@quotation -+ @emph{expr} -@end quotation -Yields the value of @emph{expr}, which must be of type @emph{numeric} -or @emph{interval}. - -The point of this operator is to explicitly convert a value of type count -to int. For example, suppose you want to declare a local variable -code to be of type int, but initialized to the value 2. -If you used: -@example - local code = 2; -@end example - -then Bro's implicit typing would make it of type count, because -that's the type of a -@command{numeric-constants}. -You could instead use: -@example - local code = +2; -@end example - -to direct the type inferencing to instead assign a type of int -to code. Or, of course, you could specify the type explicitly: -@example - local code:int = 2; -@end example -@end quotation - -@command{arithmetic} -@quotation -Syntax: -@quotation -@emph{expr1} + @emph{expr2} @* -@emph{expr1} - @emph{expr2} @* -@emph{expr1} * @emph{expr2} @* -@emph{expr1} / @emph{expr2} @* -@emph{expr1} % @emph{expr2} -@end quotation -The usual C arithmetic operators, -defined for numeric types, except -modulus (@code{%}) is only defined for integral types. -@end quotation - -@cindex & short-circuit&&@ short-circuit ``and'' -@cindex short-circuit1-circuit && ``and'' operator -@cindex and operator&& ``and'' operator -@cindex operator, and&& ``and'' -@cindex & or short-circuit"|"|@ short-circuit ``or'' -@cindex short-circuit2-circuit "|"| ``or'' operator -@cindex or operator"|"| ``or'' operator -@cindex operator, or"|"| ``or'' - -@command{logical} -@quotation -Syntax: -@quotation -@emph{expr1} @code{&&} @emph{expr2} @* -@emph{expr1} @code{||} @emph{expr2} -@end quotation -The usual C logical operators, defined for boolean types. -@end quotation - -@cindex == equality operator==@ equality operator -@cindex == inequality operator", =@ inequality operator - -@command{equality} -@quotation -Syntax: -@quotation -@emph{expr1} @code{==} @emph{expr2} \ -@emph{expr1} @code{"!=} @emph{expr2} -@end quotation -@command{rel-operators}, -Compares two values for equality or inequality, yielding a @code{bool} value. Defined for all non-compound types except pattern. -@end quotation - -@cindex == less-than operator<@ @ less-than operator -@cindex == less-than-or-equal operator<=@ less-or-equal operator -@cindex == z operator>@ @ greater-than operator -@cindex == zz operator>=@ greater-or-equal operator - -@command{relational} -@quotation -Syntax: -@quotation -@emph{expr1} @code{<} @emph{expr2} \ -@emph{expr1} @code{<=} @emph{expr2} \ -@emph{expr1} @code{>} @emph{expr2} \ -@emph{expr1} @code{>=} @emph{expr2} -@end quotation -Compares two values for magnitude ordering, -yielding a bool value. Defined for values of type @emph{numeric}, -time, interval, port, or addr. - -@emph{Note:} TCP port values are considered less than UDP port values. - -@emph{Note:} IPv4 addr values less than IPv6 addr values. - -@emph{Deficiency: Should also be defined at for @command{string} values. } -@end quotation - -@command{conditional} -@quotation -Syntax: -@quotation -@emph{expr1} ? @emph{expr2} : @emph{expr3} -@end quotation -Evaluates @emph{expr1} and, if true, evaluates and yields -@emph{expr2}, otherwise evaluates and yields -@emph{expr3}. -@emph{expr2} and @emph{expr3} must have compatible -types. -@end quotation - -@command{assignment} -@quotation -Syntax: -@quotation -@emph{expr1} = @emph{expr2} -@end quotation -Assigns the value of @emph{expr2} to the storage defined -by -@emph{expr1}, which must be an assignable value -(variable, table element, or record element). Yields the assigned value. -@end quotation - -@cindex left parenthesis operator( operator -@cindex operator, left parenthesis( parenthesis -@cindex right parenthesis operator) operator -@cindex operator, right parenthesis) parenthesis -@cindex parentheses operators() - -@cindex invocation, function -@cindex function invocation - -@command{function call} -@quotation -Syntax: -@quotation -@emph{expr1} ( @emph{expr-list2} ) -@end quotation -Evaluates @emph{expr1} to obtain a value of type @code{function}, -which is then invoked with its arguments bound left-to-right to the values -obtained from the comma-separated list of expressions -@emph{expr-list2}. Each element of @emph{expr-list2} -must be assignment-compatible with the corresponding formal argument -in the type of @emph{expr1}. The list may (and must) be empty if the -function does not take any parameters. -@end quotation - -@cindex functions, anonymous - -@command{anonymous function} -@quotation -Syntax: -@quotation -function ( @emph{parameters} ) @emph{body} -@end quotation -Defines an @emph{anonymous function}, which, in abstract terms, is how -you specify a constant of type @code{function}. @emph{parameters} has -the syntax of parameter declarations for -@command{functions}, as does @emph{body}, -which is just a list of statements enclosed in braces. - -Anonymous functions can be used anywhere you'd usually instead use a -function declared in the usual direct fashion. For example, consider the -function: -@example - function demo(msg: string): bool - @{ - if ( msg == "do the demo" ) - @{ - print "got it"; - return T; - @} - else - return F; - @} -@end example - -You could instead declare demo as a global variable of type @code{function}: -@example -global demo: function(msg: string): bool; -@end example - -and then later assign to it an anonymous function: -@example - demo = function (msg: string): bool - @{ - if ( msg == "do the demo" ) - @{ - print "got it"; - return T; - @} - else - return F; - @}; -@end example - -You can even call the anonymous function directly: -@example - (function (msg: string): bool - @{ - if ( msg == "do the demo" ) - @{ - print "got it"; - return T; - @} - else - return F; - @})("do the demo") -@end example - -though to do so you need to enclose the function in parentheses to -avoid confusing Bro's parser. - -One particularly handy form of anonymous function is that used -for @command{&default}. -@end quotation - -@cindex timers -@cindex events, scheduling -@cindex scheduling events - -@command{event scheduling} -@quotation -Syntax: -@quotation -schedule @emph{expr1} @code{@{} @emph{expr2} ( @emph{expr-list3} ) @code{@}} -@end quotation -Evaluates @emph{expr1} to obtain a value of type @command{interval}, -and schedules the event given by @emph{expr2} with parameters -@emph{expr-list3} for that time. Note that the expressions are -all evaluated and bound at the time of execution of the schedule -expression; evaluation is @emph{not} deferred until the future execution -of the event handler. - -For example, we could define the following event handler: -@example - event once_in_a_blue_moon(moon_phase: interval) - @{ - print fmt("wow, a blue moon - phase %s", moon_phase); - @} -@end example - -and then we could schedule delivery of the event for 6 hours from -the present, with a moon_phase of 12 days, using: -@example - schedule +6 hr @{ once_in_a_blue_moon(12 days) @}; -@end example - -@emph{Note: The syntax is admittedly a bit clunky. In particular, it's easy to @emph{(i)} forget to include the braces (which are needed to avoid confusing Bro's parser), @emph{(ii)} forget the final semi-colon if the schedule expression is being used as an expression-statement, or @emph{(iii)} erroneously place a semi-colon after the event specification but before the closing brace.} - -@cindex timer expiration -@cindex expiration, timer - -Timer invocation is inexact. In general, Bro uses arriving packets to -serve as its clock (when reading a trace file off-line, this is still the -case---the timestamp of the latest packet read from the trace is used as -the notion of ``now''). Once this clock reaches or passes the time -associated with a queued event, Bro will invoke the event handler, -which is termed ``expiring'' the timer. (However, Bro will only -invoke @command{max-timer-expires} timers per packet, and these -include its own internal timers for managing connection state, so this can -also delay invocation.) - -It will also expire all pending timers (whose time has not yet arrived) -when Bro terminates; if you don't want those event handlers to activate -in this instance, you need to test @command{done-with-network}. - -You would think that @code{schedule} should just be a statement like -@command{event-invocation} is, -rather than an expression. But it actually does return a value, of the -undocumented type timer. -@cindex possible future changes, type - In the future, Bro may provide mechanisms for manipulating such -timers; for example, to cancel them if you no longer want them to expire. -@end quotation - -@command{index} -@quotation -Syntax: -@quotation -@emph{expr1} [ @emph{expr-list2} ] -@end quotation -Returns the sub-value of @emph{expr1} indexed by -the value of @emph{expr-list2}, which must be compatible with the index -type of @emph{expr1}. - -@emph{expr-list2} is a comma-separated list of expressions -(with at least one expression listed) whose values -are matched left-to-right against the index types of @emph{expr1}. - -The only type of value that can be indexed -in this fashion is a table. @emph{Note:} set's cannot be indexed because they do not yield any value. Use @code{in} to test for set membership. -@end quotation - -@command{membership} -@quotation -Syntax: -@quotation -@emph{expr1} in @emph{expr2} @* -@emph{expr1} !in @emph{expr2} -@end quotation -Yields true (false, respectively) -if the index @emph{expr1} is present in -the @code{table} or @code{set} @emph{expr2}. - -For example, if notice_level is a table index by an address -and yielding a count: -@example - global notice_level: table[addr] of count; -@end example - -then we could test whether the address 127.0.0.1 is present using: -@example - 127.0.0.1 in notice_level -@end example - -For table's and set's indexed by multiple dimensions, -you enclose @emph{expr1} in brackets. For example, -if we have: -@example - global connection_seen: set[addr, addr]; -@end example - -then we could test for the presence of the element indexed by -8.1.14.2 and 129.186.0.77 using: -@example - [8.1.14.2, 129.186.0.77] in connection_seen -@end example - -We can also instead use a corresponding record type. -If we had -@example - local t = [$x = 8.1.14.2, $y = 129.186.0.77] -@end example - -then we could test: -@example - t in connection_seen -@end example -@end quotation - -@cindex == equality operator==@ equality operator -@cindex == inequality operator", =@ inequality operator - -@command{pattern matching} -@quotation -Syntax: -@quotation -@emph{expr1} == @emph{expr2} @* -@emph{expr1} "!= @emph{expr2} @* -@emph{expr1} in @emph{expr2} @* -@emph{expr1} "!in @emph{expr2} -@end quotation -As discussed for @command{pattern values}. -the first two forms yield true (false) if -the @code{pattern} @emph{expr1} exactly matches the string -@emph{expr2}. (You can also list the @code{string} value -on the left-hand side of the operator and the @code{pattern} on the right.) - -The second two forms yield true (false) if -the pattern @emph{expr1} is present within the string -@emph{expr2}. (For these, you @emph{must} list the pattern -as the left-hand operand.) -@end quotation - -@cindex $$@ record field access operator - -@command{record field access} -@quotation -Syntax: -@quotation -@emph{expr} $ @emph{field-name} -@end quotation -Returns the given field @emph{field-name} of the record -@emph{expr}. If the record does not contain the -given field, a compile-time error results. -@end quotation - -@cindex $$@ record constructor operator - -@command{record constructor} -@quotation -Syntax: -@quotation -[ @emph{field-constructor-list} ] -@end quotation - -Constructs a @code{record} value. The @emph{field-constructor-list} is -a comma-separated list of individual field constructors, which have the syntax: -@quotation -$ @emph{field-name} = @emph{expr} -@end quotation - -For example, -@example - [$foo = 3, $bar = 23/tcp] -@end example - -yields a @code{record} with two fields, @code{foo} of type @code{count} and -@code{bar} of type @code{port}. The values used in the constructor needn't -be constants, however; they can be any expression of an assignable type. -@end quotation - -@cindex ?$?$@ record field test - -@command{record field test} -@quotation -Syntax: -@quotation -@emph{expr} @code{?$} @emph{field-name} -@end quotation -Returns true if the given field has been set in the record yielded by -@emph{expr}. Note that @emph{field-name} @emph{must} correspond to -one of the fields in the record type of @emph{expr} (otherwise, the -expression would always be false). The point of this operator is -to test whether an @emph{&optional} field of a record has been -assigned to. - -For example, suppose we have: -@example - type rap_sheet: record @{ - num_scans: count &optional; - first_activity: time; - @}; - global the_goods: table[addr] of rap_sheet; -@end example - -and we want to test whether the address held in the variable perp -exists in the_goods and, if so, whether num_scans has been -assigned to, then we could use: -@example - perp in the_goods && the_goods[perp]?$num_scans -@end example -@end quotation - -@cindex expressions - diff --git a/doc/ref-manual/todo.texi b/doc/ref-manual/todo.texi deleted file mode 100644 index 9722d08c62..0000000000 --- a/doc/ref-manual/todo.texi +++ /dev/null @@ -1,174 +0,0 @@ - -@node Missing Documentation -@chapter Missing Documentation - -This chapter holds stubs for subjects that have yet to be documented. -Some of these are actually already somewhat covered elsewhere in the -manual. In addition, a major missing piece for the manual is the -Bro language itself; below we mention some Bro language topics that -come up elsewhere in the current version of the manual. - -@menu -* use of prefixes:: -* tcpdump save file that Bro writes:: -* init initialization file:: -* Assignment operators such as +=:: -* notion of redefinition/refinement:: -* Notice/Alarm model:: -* Timer management:: -* SYN-FIN filtering:: -* Split routing:: -* Scan dropping:: -* Operator precedence:: -* Partial connections:: -* Packet drops:: -* load directive:: -* Global statements:: -* Inserting tables into tables:: -* Demultiplexing:: -* Bro init file:: -* Hostnames vs addresses:: -* hot-report script:: -* Use of libpcap/BPF:: -* problem of evasion:: -* Backscatter:: -* Playing back traces:: -* Discarders:: -* Differences between this release and the previous one:: -* Notice cascade:: -* need for subtyping:: -* need for CIDR masks:: -* wish list:: -* Known bugs:: -* Execution tracing:: -* Policy analyzers:: -* Trace rewriting:: -* Rule benchmarking:: -* Connection state history recording:: -@end menu - -@node use of prefixes, -@section The use of @emph{prefixes} - - -@node tcpdump save file that Bro writes, -@section The tcpdump save file that Bro writes - - -@node init initialization file, -@section The bro.init initialization file - -@node Assignment operators such as +=, -@section Assignment operators such as += - -@node notion of redefinition/refinement, -@section The notion of redefinition/refinement - - -@node Notice/Alarm model, -@section The notice/alarm model - -@node Timer management, -@section Timer management - -@node SYN-FIN filtering, -@section SYN-FIN filtering - -@node Split routing, -@section Split routing - -@node Scan dropping, -@section Scan dropping - -@node Operator precedence, -@section Operator precedence - -@node Partial connections, -@section Partial connections - -@node Packet drops, -@section Packet drops - -@node load directive, -@section The load directive - -@node Global statements, -@section Global statements - -@node Inserting tables into tables, -@section Inserting tables into tables - -@node Demultiplexing, -@section Demultiplexing - -@node Bro init file, -@section Bro init file - - -@node Hostnames vs addresses, -@section Hostnames vs. addresses - - -@node hot-report script, -@section The hot-report script - - -@node Use of libpcap/BPF, -@section Use of libpcap/BPF - -See: bpf,pcap refs XXX - -@node problem of evasion, -@section The problem of evasion - -See: ptacek98 paper XXX - -@node Backscatter, -@section Backscatter - - -@node Playing back traces, -@section Playing back traces - - -@node Discarders, -@section Discarders - -@node Differences between this release and the previous one, -@section Differences between this release and the previous one - - -@node Notice cascade, -@section Notice cascade - - -@node need for subtyping, -@section The need for subtyping - -E.g., src addr vs. dst addr, perhaps -using attributes. - -@node need for CIDR masks, -@section The need for CIDR masks - - -@node wish list, -@section The wish list - -@node Known bugs, -@section Known bugs - -@node Execution tracing, -@section Execution tracing - -@node Policy analyzers, -@section Policy analyzers - -@node Trace rewriting, -@section Trace rewriting - -@node Rule benchmarking, -@section Rule benchmarking - -@node Connection state history recording, -@section Connection state history recording diff --git a/doc/ref-manual/values.texi b/doc/ref-manual/values.texi deleted file mode 100644 index 811c87e89f..0000000000 --- a/doc/ref-manual/values.texi +++ /dev/null @@ -1,1945 +0,0 @@ - -@node Values -@chapter Values, Types, and Constants - -@menu -* Values Overview:: -* Booleans:: -* Numeric Types:: -* Enumerations:: -* Strings:: -* Patterns:: -* Temporal Types:: -* Port Type:: -* Address Type:: -* Net Type:: -* Records:: -* Tables:: -* Sets:: -* Files:: -* Functions:: -* Event handlers:: -* any type:: -@end menu - -@node Values Overview, -@section Values Overview - -@cindex values, overview -We begin with an overview of the types of values supported by -Bro, giving a brief description of each type and -introducing the notions of type conversion and type inference. -We discuss each type in detail in - -@menu -* Bro Types:: -* Type Conversions:: -@end menu - -@node Bro Types -@subsection Bro Types - -There are 18 (XXX check this) types of values in the Bro type -system: -@cindex types, overview - -@itemize @bullet -@cindex types, bool - -@item -@code{bool} for Booleans; - -@cindex types, numeric -@cindex types, count -@cindex types, int -@cindex types, double -@cindex numeric types, count -@cindex numeric types, int -@cindex numeric types, double - -@item -@code{count}, @code{int}, and @code{double} types, collectively -called @emph{numeric}, for arithmetic and logical operations, and comparisons; - -@cindex types, enumeration -@cindex types, enum - -@item -@code{enum} for enumerated types similar to those in C; - -@cindex types, string - -@item -@code{string}, character strings that can be used -for comparisons and to index tables and sets; - -@cindex types, pattern - -@item -@code{pattern}, regular expressions that can be used for pattern -matching; - -@cindex types, temporal -@cindex types, time -@cindex types, interval - -@item -@code{time} and @code{interval}, for absolute and relative times, -collectively termed @emph{temporal}; - -@cindex types, port - -@item -@code{port}, a TCP or UDP port number; - -@cindex types, addr - -@item -@code{addr}, an IP address; - -@cindex types, net - -@item -@code{net}, a network prefix; - -@cindex types, record - -@item -@code{record}, a collection of values (of possibly different types), -each of which has a name; - -@cindex types, table - -@item -@code{table}, an associative array, indexed by tuples of -scalars and yielding values of a particular type; - -@cindex types, set - -@item -@code{set}, a collection of tuples-of-scalars, for which a -particular tuple's membership can be tested; - -@cindex types, file - -@item -@code{file}, a disk file to write or append to; - -@cindex types, function - -@item -@code{function}, a function that when called with a list of -values (arguments) returns a value; - -@cindex types, event - -@item -@code{event}, an event handler that is invoked with a list of -values (arguments) any time an event occurs. - -@end itemize - -Every value in a Bro script has one of these types. -For most types there are ways of specifying @emph{constants} representing -values of the type. For example, @code{2.71828} is a constant -of type @code{double}, and @code{80/tcp} is a constant of type -@code{port}. The discussion of types below includes a description -of how to specify constants for the types. - -@cindex typing, static -@cindex static typing -Finally, even though Bro variables have @emph{static} types, -meaning that their type is fixed, -often their type is @emph{inferred} from the value to which -they are initially assigned when the variable is declared. -For example, -@example - local a = "hi there"; -@end example - -fixes @code{a}'s type as @code{string}, and -@example - local b = 6; -@end example - -sets @code{b}'s type to @code{count}. See -for further discussion. - -@node Type Conversions, -@subsection Type Conversions - -@cindex types, conversion -Some types will be automatically converted to other types as -needed. -@cindex types, conversion, automatic -For example, a @code{count} value can always be used where a @code{double} -value is expected. The following: -@example - local a = 5; - local b = a * .2; -@end example - -creates a local variable @code{a} of type @code{count} and -assigns the @code{double} value @code{1.0} to @code{b}, which will -also be of type @code{double}. -Automatic conversions are limited to converting between @emph{numeric} types. -The rules for how types are converted are given below. -@cindex types, conversion - -@node Booleans, -@section Booleans - -@cindex booleans -The @code{bool} type reflects a value with one of two possible -meanings: @emph{true} or @emph{false}. - -@menu -* Boolean Constants:: -* Logical Operators:: -@end menu - -@node Boolean Constants, -@subsection Boolean Constants - -@cindex constants, boolean -@cindex T -@cindex F -There are two @code{bool} constants: -@code{T} and @code{F}. They -represent the values of ``true" and ``false", respectively. - -@node Logical Operators, -@subsection Logical Operators - -@cindex types, bool - -@cindex operators, logical -Bro supports three logical operators: -@code{&&}, -@cindex & short-circuit&&@ short-circuit ``and'' -@cindex short-circuit1-circuit && ``and'' operator -@cindex and operator&& ``and'' operator -@cindex operator, and&& ``and'' -@code{||}, -@cindex & or short-circuit"|"|@ short-circuit ``or'' -@cindex short-circuit2-circuit "|"| ``or'' operator -@cindex or operator"|"| ``or'' operator -@cindex operator, or"|"| ``or'' -and @code{!} -@cindex & z not", @ @ ``not'' operator -@cindex not operator", ``not'' operator -@cindex operator, not", ``not'' -are Boolean ``and,'' ``or,'' and ``not,'' respectively. -@code{&&} and @code{||} are ``short circuit'' operators, as in C: -they evaluate their right-hand operand -only if needed. - -The @code{&&} operator returns @code{F} if its -first operand evaluates to @emph{false}, otherwise it evaluates its second -operand and returns @code{T} if it evaluates to @emph{true}. -The @code{||} operator evaluates its first operand and returns @code{T} if -the operand evaluates to @emph{true}. Otherwise it evaluates its second -operand, and returns @code{T} if it is @emph{true}, @code{F} if @emph{false}. - -@cindex logical negation -@cindex negation, logical -The unary @code{!} -operator returns the boolean negation of its argument. -So, @code{!@ T} yields @code{F}, and @code{!@ F} yields @code{T}. - -@cindex operators, logical, associativity -@cindex operators, logical, precedence -The logical operators are left-associative. -The @code{!} -operator has very high precedence, the same as unary @code{+} and @code{-}; -see -The @code{||} operator has -precedence just below @code{&&}, which in turn is just below that of -the comparison operators (see @ref{Comparison Operators}). -@cindex operators, logical -@cindex booleans - -@node Numeric Types, -@section Numeric Types - -@cindex types, count -@cindex types, int -@cindex types, double - -@cindex types, numeric -@code{int}, @code{count}, and @code{double} types -should be familiar to most programmers as integer, unsigned integer, and -double-precision floating-point types. - -These types are referred to collectively as @emph{numeric}. @emph{Numeric} -types can be used in arithmetic operations (see -below) as well as in comparisons (@ref{Comparison Operators}). - -@menu -* Numeric Constants:: -* Mixing Numeric Types:: -* Arithmetic Operators:: -* Comparison Operators:: -@end menu - -@node Numeric Constants, -@subsection Numeric Constants - -@cindex constants, count -@code{count} constants are just strings of digits: @code{1234} and @code{0} -are examples. - -@cindex constants, integer -@code{integer} constants are strings of digits preceded -by a @code{+} or @code{-} sign: @code{-42} and @code{+5} for example. -Because digit strings without a sign are of type @code{count}, occasionally -you need to take care when defining a variable if it really needs to -be of type @code{int} rather than @code{count}. Because of type inferencing -, a definition like: -@example - local size_difference = 0; -@end example - -will result in @code{size_difference} having type @code{count} when -@code{int} is what's instead needed (because, say, the size difference can be -negative). This can be resolved either by using an @code{int} constant -in the initialization: -@example - local size_difference = +0; -@end example - -or explicitly indicating the type: -@example - local size_difference: int = 0; -@end example - -@cindex constants, floating-point -You write floating-point constants in the usual ways, a string of digits -with perhaps a decimal point and perhaps a scale-factor written in scientific -notation. Optional @code{+} or @code{-} signs may be given before the digits -or before the scientific notation exponent. -Examples are @code{-1234.}, @code{-1234e0}, @code{3.14159}, and @code{.003e-23}. -All floating-point constants are of type @code{double}. - -@node Mixing Numeric Types, -@subsection Mixing Numeric Types - -@cindex types, numeric, intermixing -@cindex types, numeric, bool not numeric -You can freely intermix @emph{numeric} types in expressions. When intermixed, -values are promoted to the ``highest" type in the expression. -In general, this promotion follows a simple hierarchy: @code{double} is -highest, @code{int} comes next, and @code{count} is lowest. (Note that -@code{bool} is not a numeric type.) - -@node Arithmetic Operators, -@subsection Arithmetic Operators - -@cindex operators, arithmetic -@cindex addition, numeric -@cindex subtraction, numeric -@cindex multiplication, numeric -@cindex division, numeric -@cindex operators, arithmetic, operand conversion -For doing arithmetic, Bro supports -@code{+} -@code{-} -@code{*} -@code{/} -and -@code{%} -@cindex percent modulus operator -. -In general, binary operators evaluate their operands after converting them -to the higher type of the two and return a result of that type. -However, subtraction of two @code{count} values yields an @code{int} value. -Division is integral if its operands are @code{count} and/or @code{int}. - -@code{+} -and @code{-} -can also be used as unary operators. If applied to a @code{count} type, -they yield an @code{int} type. - -@code{%} computes a @emph{modulus}, defined in the same way as in -the C language. It can only be applied to @code{count} or @code{int} -types, and yields @code{count} if both operands are @code{count} types, -otherwise @code{int}. - -@cindex operators, arithmetic, precedence -Binary @code{+} and @code{-} -have the lowest precedence, @code{*}, @code{/}, and @code{%} have equal -and next highest precedence. The unary -@code{+} and @code{-} operators have the same precedence as the @code{!} -operator @ref{Logical Operators}. -See , for a table of the precedence of all Bro -operators. - -@cindex operators, arithmetic, associativity -All arithmetic operators associate from left-to-right. -@cindex operators, arithmetic - -@node Comparison Operators, -@subsection Comparison Operators - -@cindex operators, comparison -@cindex relationals, numeric -@cindex operators, comparison, operand conversion -Bro provides the usual comparison operators: -@code{==} -@cindex == equality operator==@ equality operator -, -@code{!=} -@cindex == inequality operator", =@ inequality operator -, -@code{<} -@cindex == less-than operator<@ @ less-than operator -, -@code{<=} -@cindex == less-than-or-equal operator<=@ less-or-equal operator -, -@code{>} -@cindex == z operator>@ @ greater-than operator -, -and -@code{>=} -@cindex == zz operator>=@ greater-or-equal operator -. -They each take two operands, which -they convert to the higher of the two types (see @ref{Mixing Numeric Types}). -They return a @code{bool} corresponding to the comparison of the operands. -For example, -@example - 3 < 3.000001 -@end example - -yields true. - -@cindex operators, comparison, associativity -@cindex operators, comparison, precedence -The comparison operators are all non-associative and have equal precedence, -just below that of the -just above that of the -See , -for a general discussion of precedence. -@cindex operators, comparison -@cindex types, numeric - -@node Enumerations, -@section Enumerations - -@cindex enumerations -@cindex types, enum -Enumerations allow you to specify a set of related values that have -no further structure, similar to @code{enum} types in C. For example: -@example - type color: enum @{ Red, White, Blue, @}; -@end example - -defines the values @code{Red}, @code{White}, and @code{Blue}. A variable -of type @code{color} holds one of these values. Note that @code{Red} et al -@cindex global scope, of enumerations -have @emph{global scope}. You @emph{cannot} define a variable or type -with those names. (Also note that, as usual, the comma after @code{Blue} -is optional.) - -The only operations allowed on enumerations are comparisons for -equality. Unlike C enumerations, they do not have values or an -ordering associated with them. - -You can extend the set of values in an enumeration using -@code{redef enum @emph{identifier} += @{ @emph{name-list} @}}: -@example - redef enum color += @{ Black, Yellow @}; -@end example - -@cindex enumerations - -@node Strings, -@section Strings - -@cindex strings -@cindex types, string -The @code{string} type holds character-string values, used to represent -and manipulate text. - -@menu -* String Constants:: -* String Operators:: -@end menu - -@node String Constants, -@subsection String Constants - -@cindex constants, string -@cindex escape sequences -@cindex possible future changes, breaking string constants across multiple lines -You create string constants by enclosing text within double (@code{"}) quotes. -A backslash character (@code{\}) -introduces an @emph{escape sequence}. The following ANSI C escape -sequences are recognized: -FIXME -the 8-bit ASCII character with code @emph{hex-digits}. -Bro string constants currently @emph{cannot} be continued across -multiple lines by escaping newlines in the input. This may change -in the future. -Any other character following a @code{\} is passed along literally. - -@cindex NULs, allowed in strings - -@cindex evasion, inserting NULs - -Unlike in C, strings are represented internally as a count and a -vector of bytes, rather than a NUL-terminated series of bytes. This -difference is important because NULs can easily be introduced into strings -derived from network traffic, either by the nature of the application, -inadvertently, or maliciously by an attacker attempting to subvert the -monitor. An example of the latter is sending the following to an FTP server: -@example - USER nice\0USER root -@end example - -where ``@code{\0}'' represents a NUL. Depending on how it is written, -the FTP application receiving this text might well interpret it as -two separate commands, ``@code{USER nice}'' followed by ``@code{USER root}''. -But if the monitoring program uses NUL-terminated strings, then it -will effectively see only ``@code{USER nice}'' and have no opportunity -to detect the subversive action. - -@cindex NULs, terminating string constants -@cindex string constants, NUL terminated -Note that Bro string constants are automatically NUL-terminated. - -Note: While Bro itself allows NULs in strings, their presence -in arguments to many Bro functions results in a run-time error, as -often their presence (or, conversely, lack of a NUL terminator) -indicates some sort of problem (particularly -for arguments that will be passed to C functions). See -section @ref{Run-time errors for strings with NULs} for discussion. - -@cindex constants, string - -@node String Operators, -@subsection String Operators - -@cindex operators, string -@cindex relationals, string -@cindex ASCII, as usual character set -@cindex character set, ASCII -Currently the only string operators provided are the comparison -operators discussed in @ref{Comparison Operators} and pattern-matching -as discussed in @ref{Pattern Operators}. These operators -perform character by character comparisons based on the native -character set, usually ASCII. - -Some functions for manipulating strings are also available. See -. -@cindex strings - -@cindex strings - -@node Patterns, -@section Patterns - -@cindex types, pattern -@cindex searching for strings -@cindex pattern matching - -@cindex patterns -The @code{pattern} type holds regular-expression patterns, which can -be used for fast text searching operations. - -@menu -* Pattern Constants:: -* Pattern Operators:: -@end menu - -@node Pattern Constants, -@subsection Pattern Constants - -@cindex constants, pattern -@cindex flex utility -@cindex lex utility -@cindex utilities, flex -@cindex utilities, lex -You create pattern constants by enclosing text within forward slashes (@code{/}). -The syntax is the same as for the @emph{flex} version of the @emph{lex} -utility. -For example, -@example - /foo|bar/ -@end example - -specifies a pattern that matches either the text ``foo'' or the -text ``bar''; -@example - /[a-zA-Z0-9]+/ -@end example - -matches one or more letters or digits, as will -@example - /[[:alpha:][:digit:]]+/ -@end example - -or -@example - /[[:alnum:]]+/ -@end example - -and the pattern -@example - /^rewt.*login/ -@end example - -matches any string with the text ``rewt'' at the beginning of -a line followed somewhere later in the line by the text ``login''. - -You can create disjunctions (patterns the match any of a number of -alternatives) both using the ``@{@code{|}@}'' regular expression -operator directly, as in the first example above, or by using it -to join multiple patterns. So the first example above -could instead be written: -@example - /foo/ | /bar/ -@end example - -This form is convenient when constructing large disjunctions because -it's easier to see what's going on. - -Note that the speed of the regular expression matching does @emph{not} -depend on the complexity or size of the patterns, so you should feel -free to make full use of the expressive power they afford. - -You can assign @code{pattern} values to variables, hold them in tables, -and so on. So for example you could have: -@example - global address_filters: table[addr] of pattern = @{ - [128.3.4.4] = /failed login/ | /access denied/, - [128.3.5.1] = /access timeout/ - @}; -@end example - -and then could test, for example: -@example - if ( address_filters[c$id$orig_h] in msg ) - skip_the_activity(); -@end example - -Note though that you cannot use create patterns dynamically. -this form (or any other) to create dynamic - -@cindex constants, pattern - -@node Pattern Operators, -@subsection Pattern Operators - -@cindex operators, pattern - -There are two types of pattern-matching operators: @emph{exact} -matching and @emph{embedded} matching. - -@menu -* Exact Pattern Matching:: -* Embedded Pattern Matching:: -@end menu - -@node Exact Pattern Matching, -@subsubsection Exact Pattern Matching - -@cindex pattern matching, exact -Exact matching tests for a -string entirely matching a given -pattern. You specify exact matching by using the -@code{==} equality relational with one @code{pattern} operand and one -@code{string} operand (order irrelevant). For example, -@example - "foo" == /foo|bar/ -@end example - -yields true, while -@example - /foo|bar/ == "foobar" -@end example - -yields false. The @code{!=} operator is the negation of the @code{==} -operator, just as when comparing strings or numerics. - -Note that for exact matching, the @code{^} (anchor to beginning-of-line) -and @code{$} (anchor to end-of-line) regular expression operators are -redundant: since the match is @emph{exact}, every pattern is implicitly -anchored to the beginning and end of the line. - -@node Embedded Pattern Matching, -@subsubsection Embedded Pattern Matching - -@cindex pattern matching, embedded - -@cindex in operator operator -Embedded matching tests whether a given pattern appears anywhere -within a given string. -You specify embedded pattern matching -using the @code{in} operator. It takes two operands, the first -(which must appear on the left-hand side) of type @code{pattern}, -the second of type @code{string}. -For example, -@example - /foo|bar/ in "foobar" -@end example - -yields true, as does -@example - /oob/ in "foobar" -@end example - -but -@example - /^oob/ in "foobar" -@end example - -does not, since the text ``oob'' does not appear the beginning -of the string ``foobar''. -Note, though, that the @code{$} regular expression operator (anchor -to end-of-line) is not currently supported, so: -@example - /oob$/ in "foobar" -@end example - -currently yields true. This is likely to change in the future. -@cindex bugs, $ pattern operator not supported - -@cindex in2 operator", in negation of operator -@cindex not in operator", in negation of operator -Finally, the @code{!in} operator yields the negation of the @code{in} operator. - -@cindex patterns - -@node Temporal Types, -@section Temporal Types - -@cindex time -@cindex absolute time -@cindex relative time -@cindex temporal, types -@cindex types, time -@cindex types, interval - -Bro supports types representing @emph{absolute} and @emph{relative} -times with the @code{time} and @code{interval} types, respectively. - -@menu -* Temporal Constants:: -* Temporal Operators:: -@end menu - -@node Temporal Constants, -@subsection Temporal Constants - -@cindex constants, temporal -@cindex temporal, constants -@cindex constants, time -@cindex constants, interval -@cindex possible future changes, constants for absolute times -There is currently no way to specify an absolute time as a constant -(though see the @code{current_time} and @code{network_time} functions -in @ref{Functions for manipulating time}). You can specify @code{interval} constants, -however, by appending a @emph{time unit} after a numeric constant. -For example, -@example - 3.5 min -@end example - -denotes 210 seconds. -The different time units are @code{usec}, @code{sec}, -@code{min}, @code{hr}, and @code{day}, representing microseconds, seconds, -minutes, hours, and days, respectively. The whitespace between -the numeric constant and the unit is optional, and the letter ``s'' -may be added to pluralize the unit (this has no semantic effect). -So the above -example could also be written: -@cindex usec (microseconds) interval unit -@cindex sec (seconds) interval unit -@cindex min (minutes) interval unit -@cindex hr (hours) interval unit -@cindex day interval unit -@cindex interval units, usec -@cindex interval units, sec -@cindex interval units, min -@cindex interval units, hr -@cindex interval units, day -@example - 3.5mins -@end example - -or -@example - 150 secs -@end example - -@cindex constants, interval -@cindex constants, time - -@node Temporal Operators, -@subsection Temporal Operators - -@cindex operators, temporal - -You can apply arithmetic and relational operators to temporal -values, as follows. - -@menu -* Temporal Negation:: -* Temporal Addition:: -* Temporal Subtraction:: -* Temporal Multiplication:: -* Temporal Division:: -* Temporal Relationals:: -@end menu - -@node Temporal Negation, -@subsubsection Temporal Negation - -@cindex temporal, negation -@cindex negation, temporal - -The unary @code{-} -operator can be applied to an @code{interval} value to yield another -@code{interval} value. For example, -@example - - 12 hr -@end example - -represents ``twelve hours in the past.'' - -@node Temporal Addition, -@subsubsection Temporal Addition - -@cindex temporal, addition -@cindex addition, temporal - -Adding two @code{interval} values yields another @code{interval} value. -For example, -@example - 5 sec + 2 min -@end example - -yields 125 seconds. -Adding a @code{time} value to an @code{interval} yields -another @code{time} value. - -@node Temporal Subtraction, -@subsubsection Temporal Subtraction - -@cindex temporal, subtraction -@cindex subtraction, temporal - -Subtracting a @code{time} value from another @code{time} value -yields an @code{interval} value, as does subtracting an @code{interval} -value from another @code{interval}, while subtracting an @code{interval} -from a @code{time} yields a @code{time}. - -@node Temporal Multiplication, -@subsubsection Temporal Multiplication - -@cindex temporal, multiplication -@cindex multiplication, temporal - -You can multiply an @code{interval} value by a @emph{numeric} value -to yield another @code{interval} value. For example, -@example - 5 min * 6.5 -@end example - -yields 1,950 seconds. @code{time} values cannot be scaled by -multiplication or division. - -@node Temporal Division, -@subsubsection Temporal Division - -@cindex temporal, division -@cindex division, temporal - -You can also divide an @code{interval} value by a @emph{numeric} value -to yield another @code{interval} value. For example, -@example - 5 min / 2 -@end example - -yields 150 seconds. Furthermore, you can divide one @code{interval} -value by another to yield a @code{double}. For example, -@example - 5 min / 30 sec -@end example - -yields 10. - -@node Temporal Relationals, -@subsubsection Temporal Relationals - -@cindex temporal, relationals -@cindex relationals, temporal - -You may compare two @code{time} values or two @code{interval} values -for equality, and also for ordering, where times or intervals -further in the future are considered larger than times or intervals -nearer in the future, or in the past. - -@cindex time - -@node Port Type, -@section Port Type - -@cindex port type -@cindex ports, UDP -@cindex ports, TCP -@cindex ports, ICMP -@cindex ports, unknown - -The @code{port} type corresponds to transport-level port numbers. -Besides TCP or UDP ports, these can also be ICMP ``ports'', where the -source port is the ICMP message type and the destination port the ICMP -message code. Furthermore, the transport-level protocol of a port can -remain unspecified. In any case, a value of type @code{port} -represents exactly one of those four transport protocol choices. - -@menu -* Port Constants:: -* Port Operators:: -* Port Functions:: -@end menu - -@node Port Constants, -@subsection Port Constants - -@cindex constants, port -@cindex ports, constants -There are two forms of @code{port} -constants. The first consists of an unsigned integer followed by one of -``@code{/tcp}'', ``@code{/udp}'', ``@code{/icmp}'', or ``@code{/unknown}''. -So, for example, ``@code{80/tcp}'' corresponds to TCP port 80 (typically -used for the HTTP protocol). The second form of constant is specified -using a predefined identifier, such as ``@code{http}'', equivalent to -``@code{80/tcp}.'' These predefined identifiers are simply @code{const} -variables defined in the Bro initialization file, such as: -@example - const http = 80/tcp; -@end example - -@node Port Operators, -@subsection Port Operators - -@cindex ports, operators -@cindex operators, ports - -The only operations that can be applied to @code{port} values are -relationals. You may compare them for equality, and also for ordering. -For example, -@example - 20/tcp < telnet -@end example - -yields true because @code{telnet} is a predefined constant set to -@code{23/tcp}. - -When comparing ports across transport-level protocols, the following -holds: unknown < TCP < UDP < ICMP. For example, ``@code{65535/tcp}'' is -smaller than ``@code{0/udp}''. - -@cindex port type - -@node Port Functions, -@subsection Port Functions - -@cindex ports, functions - -You can obtain the transport-level protocol type of a port as an -@code{enum} constant of type @code{transport_proto} (defined in -@code{bro.init}), using the built-in function (see @ref{Predefined Functions}) -@code{get_port_transport_proto(p: port): transport_proto}. - -@node Address Type, -@section Address Type - -@cindex address type - -@cindex relationals, address -Another networking type provided by Bro is @code{addr}, corresponding to an -IP address. The only operations that can be performed on them are -comparisons for equality or inequality (also, a built-in function provides -masking, as discussed below). - -When configuring the Bro distribution, if you specify @code{--enable-brov6} - -then Bro will be built to support both IPv4 and IPv6 addresses, -and an @code{addr} can hold either. Otherwise, addresses are -restricted to IPv4. -@cindex IPv6 support - -@menu -* Address Constants:: -* Address Operators:: -@end menu - -@node Address Constants, -@subsection Address Constants - -@cindex constants, address -@cindex address type, constants -@cindex IPv4/IPv6 address constants - -Constants of type @code{addr} have the familiar ``dotted quad'' format, -@code{A_1.A_2.A_3.A_4}, where the A_i all lie -between 0 and 255. If you have configured for IPv6 support as discussed -above, then you can also use the colon-separated hexadecimal form -described in RFC2373. - -@cindex hostnames -@cindex constants, hostname - -Often more useful are @emph{hostname} constants. There is no Bro -type corresponding to Internet hostnames. Because hostnames can correspond -to multiple IP addresses, you quickly run into ambiguities if comparing -one hostname with another. Bro does, however, support hostnames as -constants. Any series of two or more identifiers delimited by dots -forms a hostname constant, so, for example, ``@code{lbl.gov}'' and -``@code{www.microsoft.com}'' are both hostname constants (the latter, -as of this writing, corresponds to 5 distinct IP addresses). The value of -a hostname constant is a @code{list} of @code{addr} containing one -or more elements. These lists (as with the lists associated with -certain @code{port} constants, discussed above) cannot be used in -Bro expressions; but they play a central role in initializing Bro -@command{tables} and @command{sets}. - -@node Address Operators, -@subsection Address Operators -@cindex address type, operators -@cindex operators, address - -The only operations that can be applied to @code{addr} values are -comparisons for equality or inequality, using @code{==} and @code{!=}. -However, you can also operate on @code{addr} values using - to mask off lower address bits, and -to convert an @code{addr} to a @code{net} (see below). - -@cindex address type - -@node Net Type, -@section Net Type -@cindex net type - -@cindex address masking -@cindex CIDR -@cindex subnets -@cindex prefixes, network -@cindex network prefixes -Related to the @code{addr} type is @code{net}. @code{net} values hold address -prefixes. Historically, the IP address space was divided into different -@emph{classes} of addresses, based on the uppermost components of a given -address: class A spanned the range 0.0.0.0 to 127.255.255.255; class B from -128.0.0.0 to 191.255.255.255; class C from 192.0.0.0 to 223.255.255.255; -class D from 224.0.0.0 to 239.255.255.255; and class E from 240.0.0.0 to -255.255.255.255. Addresses were allocated to different networks out of -either class A, B, or C, in blocks of @math{2^{24}}, @math{2^{16}}, and @math{2^8} -addresses, respectively. - -Accordingly, @code{net} values hold either an 8-bit class A prefix, -a 16-bit class B prefix, a 24-bit class C prefix, or a 32-bit class D -``prefix'' (an entire address). Values for class E prefixes are not -defined (because no such addresses are currently allocated, and so shouldn't -appear in other than clearly-bogus packets). - -Today, address allocations come not from class A, B or C, but instead -from @emph{CIDR} blocks (CIDR = Classless Inter-Domain Routing), which -are prefixes between 1 and 32 bits long in the range 0.0.0.0 to -223.255.255.255. @emph{Deficiency: Bro @emph{should} deal just with CIDR prefixes, rather than old-style network prefixes. However, these are more difficult to implement efficiently for table searching and the like; hence currently Bro only supports the easier-to-implement old-style prefixes. Since these don't match current allocation policies, often they don't really fit an address range you'll want to describe. But for sites with older allocations, they do, which gives them some basic utility.} - -@cindex IPv6 and lack of CIDR prefixes -In addition, @emph{Deficiency: IPv6 has no notion of old-style network prefixes, only CIDR prefixes, so the lack of support of CIDR prefixes impairs use of Bro to analyze IPv6 traffic. } - -@menu -* Net Constants:: -* Net Operators:: -@end menu - -@node Net Constants, -@subsection Net Constants - -@cindex constants, net -@cindex net, constants -You express constants of type @code{net} in one of two forms, either: -@quotation -@code{N_1.N_2.} -@end quotation -or -@quotation -@code{N_1.N_2.N_3} -@end quotation -where the N_i all lie between 0 and 255. The first of these corresponds -to class B prefixes (note the trailing ``@code{.}'' that's required to -distinguish the constant from a floating-point number), and the second to -class C prefixes. @emph{Deficiency: There's currently no way to specify a class A prefix. } - -@node Net Operators, -@subsection Net Operators -@cindex net, operators -@cindex operators, net - -@cindex relationals, net -The only operations that can be applied to @code{net} values are -comparisons for equality or inequality, using @code{==} and @code{!=}. - -@cindex net type - -@node Records, -@section Records - -@cindex records -@cindex records, fields -A @code{record} is a collection of values. Each value has a name, -referred to as one of the record's @emph{fields}, -and a type. The values do -not need to have the same type, and there is no restriction on the -allowed types (i.e., each field can be @emph{any} type). - -@menu -* Defining records:: -* Record Constants:: -* Accessing Fields Using $:: -* Record Assignment:: -@end menu - -@node Defining records, -@subsection Defining records - -A definition of a record type has the following syntax: -@example -record @{ @math{field^+} @} -@end example - -(that is, the keyword @code{record} followed by one-or-more @emph{field}'s -enclosed in braces), where a @emph{field} has the syntax: -@example -identifier : type @math{field-attributes^*} ; identifier : type @math{field-attributes^*} , -@end example - -Each field has a name given by the identifier (which can be the same -as the identifier of an existing variable or a field in another record). -@cindex records, fields, legal names -@cindex names, case-sensitive -Field names must follow the same syntax as that for Bro variable names (see @ref{Variables Overview, -Variables}), -namely they must begin with a letter or -an underscore (``@code{_}'') followed by zero or more letters, underscores, -or digits. Bro reserved words such as @code{if} or @code{event} cannot -be used for field names. Field names are -case-sensitive. - -Each field holds a value of the given type. -We discuss the optional -Finally, you can use either a semicolon or a comma to terminate the -definition of a record field. - -For example, the following record type: -@example - type conn_id: record @{ - orig_h: addr; # Address of originating host. - orig_p: port; # Port used by originator. - resp_h: addr; # Address of responding host. - resp_p: port; # Port used by responder. - @}; -@end example - -is used throughout Bro scripts to denote a connection identifier -by specifying the connections originating and responding addresses -and ports. It has four fields: @code{orig_h} and @code{resp_h} of type -@code{addr}, and @code{orig_p} of @code{resp_p} of type @code{port}. - -@node Record Constants, -@subsection Record Constants -@cindex constants, record - -You can initialize values of type -@code{record} using either assignment from another, already existing -@code{record} value; or element-by-element; or using a - -In a Bro function or event handler, we could declare a local -variable the @code{conn_id} type given above: -@example - local id: conn_id; -@end example - -and then explicitly assign each of its fields: -@example - id$orig_h = 207.46.138.11; - id$orig_p = 31337/tcp; - id$resp_h = 207.110.0.15; - id$resp_p = 22/tcp; -@end example - -@emph{Deficiency: One danger with this initialization method is that if you forget to initialize a field, and then later access it, you will @emph{crash} Bro. } - -Or we could use: -@example - id = [$orig_h = 207.46.138.11, $orig_p = 31337/tcp, - $resp_h = 207.110.0.15, $resp_p = 22/tcp]; -@end example - -This second form is no different from assigning a @code{record} value -computed in some other fashion, such as the value of another variable, -a table element, or the value returned by a function call. Such assignments -must specify @emph{all} of the fields in the target (i.e., in @code{id} in -this example), unless the missing field has the @code{&optional} or @code{&default} attribute. - -@cindex constants, record - -@node Accessing Fields Using $, -@subsection Accessing Fields Using ``@code{$}'' - -@cindex records, fields, accessing -You access and assign record fields using the ``@code{$}'' (dollar-sign) -operator. As indicated in the example above, for the record @code{id} we can -access its @code{orig_h} field using: -@example - id$orig_h -@end example - -which will yield the @code{addr} value @code{207.46.138.11}. - -@node Record Assignment, -@subsection Record Assignment -@cindex records, assignment -@cindex assigning records -You can assign one record value to another using simple assignment: -@example - local a: conn_id; - ... - local b: conn_id; - ... - b = a; -@end example - -@cindex copy, shallow vs. deep -@cindex shallow copy -@cindex deep copy - -Doing so produces a @emph{shallow} copy. That is, after the assignment, -@code{b} refers to the same record as does @code{a}, and an assignment -to one of @code{b}'s fields will alter the field in @code{a}'s value -(and vice versa for an assignment to one of @code{a}'s fields). -However, assigning again to @code{b} itself, or assigning to @code{a} itself, -will break the connection. - -In order to produce a @emph{deep} copy, use the clone operator ``copy()''. -For more details, see @ref{Expressions}. - -You can also assign to a record another record that has fields with -the same names and types, even if they come in a different order. -For example, if you have: -@example - local b: conn_id; - local c: record @{ - resp_h: addr, orig_h: addr; - resp_p: port, orig_p: port; - @}; -@end example - -then you can assign either @code{b} to @code{c} or vice versa. - -You could @emph{not}, however, make the assignment (in either -direction) if you had: -@example - local b: conn_id; - local c: record @{ - resp_h: addr, orig_h: addr; - resp_p: port, orig_p: port; - num_notices: count; - @}; -@end example - -because the field @code{num_notices} would either be missing or excess. - -However, when declaring a record you can associate attributes with the fields. The relevant ones are -@code{&optional}, -which indicates that when assigning to the record you can omit the field, and -@code{&default = expr}, which indicates -that if the field is missing, then a reference to it returns the value of the expression @emph{expr}. So if instead you had: - -@example - local b: conn_id; - local c: record @{ - resp_h: addr, orig_h: addr; - resp_p: port, orig_p: port; - num_notices: count &optional; - @}; -@end example - -then you could execute @code{c = b} even though @code{num_notices} is missing from b. -You still could not execute @code{b = c}, -though, since in that direction, @code{num_notices} is an extra field (regardless of whether it has -been assigned to or not --- the error is a type-checking error, not a run-time error). - -The same holds for: - -@example - local b: conn_id; - local c: record @{ - resp_h: addr, orig_h: addr; - resp_p: port, orig_p: port; - num_notices: count &default = 0; - @}; -@end example - -I.e., you could execute @code{c = b} but not @code{b = c}. The only difference between this example and the previous one is that -for the previous one, access to @code{c$num_notices} without having first assigned to it -results in a run-time error, while in the second, it yields 0. - -You can test for whether a record field exists using the @code{?$} operator. - -Finally, all of the rules for assigning records also apply when passing a record value as an argument in a function -call or an event handler invocation. - -@node Tables, -@section Tables - -@cindex tables -@cindex array, associative -@cindex associative array -@cindex index, of a table -@cindex yield, of a table -@code{table}'s provide @emph{associative arrays}: mappings from one set of -values to another. The values being mapped are termed the @emph{index} -(or @emph{indices}, if they come in groups of more than one) -and the results of the mapping the @emph{yield}. - -Tables are quite powerful, and indexing them is very efficient, -boiling down to a single hash table lookup. So you should take advantage -of them whenever appropriate. - -@menu -* Declaring Tables:: -* Initializing Tables:: -* Table Attributes:: -* Accessing Tables:: -* Table Assignment:: -* Deleting Table Elements:: -@end menu - -@node Declaring Tables, -@subsection Declaring Tables -You declare tables using the following syntax: -@quotation -@code{table [} @emph{@math{type^+}} @code{] of} @emph{type} -@end quotation -@cindex scalars -where @emph{@math{type^+}} is one or more types, separated by commas. - -The indices can be of the following @emph{scalar} types: @emph{numeric}, -@emph{temporal}, @emph{enumerations}, -@emph{string}, @emph{port}, @emph{addr}, or @emph{net}. -The yield can be of any type. So, for example: -@example - global a: table[count] of string; -@end example - -declares @code{a} to be a table indexed by a @code{count} value and -yielding a @code{string} value, similar to a regular array in a -language like C. The yield type can also be more complex: -@example - global a: table[count] of table[addr, port] of conn_id; -@end example - -declares @code{a} to be a table indexed by @code{count} and -yielding another table, which itself is indexed by an @code{addr} -and a @code{port} to yield a @code{conn_id} record. - -@cindex array, multi-dimensional -@cindex multi-dimensional table -This second example illustrates a @emph{multi-dimensional} table, -one indexed not by a single value but by a @emph{tuple} of values. - -@node Initializing Tables, -@subsection Initializing Tables -You initialize tables by enclosing a set of initializers within braces. -Each initializer looks like: -@quotation -@code{[} @emph{expr-list} @code{] =} @emph{expr} -@end quotation -where @emph{expr-list} is a comma-separated list of expressions -corresponding to an index of the table (so, for a table indexed -by @code{count}, for example, this would be a single expression -of type @code{count}) and @emph{expr} is the yield value to -assign to that index. - -For example, -@example - global a: table[count] of string = @{ - [11] = "eleven", - [5] = "five", - @}; -@end example - -initializes the table @code{a} to have two elements, one indexed -by @code{11} and yielding the string @code{"eleven"} and the other -indexed by @code{5} and yielding the string @code{"five"}. -(Note the comma after the last list element; it is optional, -similar to how C allows final commas in declarations.) - -You can also group together a set of indices together to initialize -them to the same value: -@example - type HostType: enum @{ DeskTop, Server, Router @}; - global a: table[addr] of HostType = @{ - [[155.26.27.2, 155.26.27.8, 155.26.27.44]] = Server, - @}; -@end example - -is equivalent to: -@example - type HostType: enum @{ DeskTop, Server, Router @}; - global a: table[addr] of HostType = @{ - [155.26.27.2] = Server, - [155.26.27.8] = Server, - [155.26.27.44] = Server, - @}; -@end example - -This mechanism also applies to -which can be used in table initializations for any indices of -type @code{addr}. For example, if @code{www.my-server.com} corresponded -to the addresses 155.26.27.2 and 155.26.27.44, then the above -could be written: -@example - global a: table[addr] of HostType = @{ - [[www.my-server.com, 155.26.27.8]] = Server, - @}; -@end example - -and if it corresponded to all there, then: -@example - global a: table[addr] of HostType = @{ - [www.my-server.com] = Server, - @}; -@end example - -You can also use multiple index groupings across different indices: -@example - global access_allowed: table[addr, port] of bool = @{ - [www.my-server.com, [21/tcp, 80/tcp]] = T, - @}; -@end example - -is equivalent to: -@example - global access_allowed: table[addr, port] of bool = @{ - [155.26.27.2, 21/tcp] = T, - [155.26.27.2, 80/tcp] = T, - [155.26.27.8, 21/tcp] = T, - [155.26.27.8, 80/tcp] = T, - [155.26.27.44, 21/tcp] = T, - [155.26.27.44, 80/tcp] = T, - @}; -@end example - -@emph{Fixme: add example of cross-product initialization of sets} - -@node Table Attributes, -@subsection Table Attributes - -When declaring a table, you can specify a number of attributes -that affect its operation: - -@table @samp - -@cindex default values - -@item @code{&default} -Specifies a value to yield when an index does not appear in the table. -Syntax: -@quotation -@code{&default = @emph{expr}} -@end quotation -@emph{expr} can have one of two forms. If it's type is the same as -the table's yield type, then @emph{expr} is evaluated and returned. -@cindex dynamic defaults -If it's type is a @code{function} with arguments whose types correspond -left-to-right with the index types of the table, and which returns -a type the same as the yield type, then that function is called with -the indices that yielded the missing value to compute the default value. - -For example: -@example - global a: table[count] of string &default = "nothing special"; -@end example - -will return the string @code{"nothing special"} anytime @code{a} is -indexed with a @code{count} value that does not appear in @code{a}. - -A more dynamic example: -@example - function nothing_special(): string - @{ - if ( panic_mode ) - return "look out!"; - else - return "nothing special"; - @} - - global a: table[count] of string &default = nothing_special; -@end example - -An example of using a function that computes using the index: -@example - function make_pretty(c: count): string - @{ - return fmt("**%d**", c); - @} - - global a: table[count] of string &default = make_pretty; -@end example - -@cindex memory management -@cindex state management -@cindex management, of state - -@item @code{&create_expire} -Specifies that elements in the table should be @emph{automatically deleted} after a given amount of time has elapsed since they were -first entered into the table. -Syntax: -@quotation -@code{&create_expire = @emph{expr}} -@end quotation -where @emph{expr} is of type @code{interval}. - -@item @code{&read_expire} -The same as @code{create_expire} except the element is deleted -when the given amount of time has lapsed since the last time the -element was accessed from the table. - -@item @code{&write_expire} -The same as @code{&create_expire} except the element is deleted -when the given amount of time has lapsed since the last time the -element was entered or modified in the table. - -@item @code{&expire_func} -Specifies a function to call when an element is due for expression -because of @command{&create_expire}, @command{&read_expire}, or @command{&write_expire}. -Syntax: -@quotation -@code{&expire_func = @emph{expr}} -@end quotation -@emph{expr} must be a function that takes two arguments: -the first one is a table with the same index and yield types as the -associated table. The second one is of type @code{any} and -corresponds to the index(es) of the element being expired. -The function must return an -@code{interval} value. -The @code{interval} indicates for how much longer the element should -remain in the table; returning @code{0 secs} or a negative value instructs -Bro to go ahead and delete the element. - -@emph{Deficiency: The use of an @code{any} type here is @emph{temporary} and will be changing in the future to a general @emph{tuple} notion. } - -@end table - -You specify multiple attributes by listing one after the other, -@emph{without} commas between them: -@example - global a: table[count] of string &default="foo" &write_expire=5sec; -@end example - -Note that you can specify each type of attribute only once. You can, -however, specify more than one of -@command{&create_expire}, @command{&read_expire}, or @command{&write_expire}. -In that case, whenever any of the corresponding timers expires, the element will -be deleted. - -@node Accessing Tables, -@subsection Accessing Tables -As usual, you access the values in tables by indexing them with -a value (for a single index) or list of values (multiple indices) -enclosed in @code{[]}'s. -@cindex sub-tables, lack of -@emph{Deficiency: Presently, when indexing a multi-dimensional table you must provide @emph{all} of the relevant indices; you can't leave one out in order to extract a sub-table. } - -You can also index arrays using @code{record}'s, providing the -record is comprised of values whose types match that of the table's -indices. (Any record fields whose types are themselves records -are recursively unpacked to effect this matching.) For example, -if we have: -@example - local b: table[addr, port] of conn_id; - local c = 131.243.1.10; - local d = 80/tcp; -@end example - -then we could index @code{b} using @code{b[c, d]}, but if we had: -@example - local e = [$field1 = c, $field2 = d]; -@end example - -we could also index it using @code{a[d]} - -You can test whether a table holds a given index using -the @code{in} operator: -@example - [131.243.1.10, 80/tcp] in b -@end example - -or -@example - e in b -@end example - -per the examples above. In addition, if the table has only -a single index (not multi-dimensional), then you can omit -the @code{[]}'s: -@example - local active_connections: table[addr] of conn_id; - ... - if ( 131.243.1.10 in active_connections ) - ... -@end example - -@node Table Assignment, -@subsection Table Assignment -An indexed table can be the target of an assignment: -@example - b[131.243.1.10, 80/tcp] = c$id; -@end example - -You can also assign to an entire table. For example, suppose we -have the global: -@example - global active_conn_count: table[addr, port] of count; -@end example - -@cindex tables, clearing entries -then we could later clear the contents of the table using: -@example - local empty_table: table[addr, port] of count; - active_conn_count = empty_table; -@end example - -Here the first statement declares a local variable @code{empty_table} -with the same type as @code{active_conn_count}. Since we don't -initialize the table, it starts out empty. Assigning it to -@code{active_conn_count} then replaces the value of @code{active_conn_count} -with an empty table. -@cindex copy, shallow vs. deep -@cindex shallow copy -@cindex deep copy -Note: As with @code{record}'s, assigning @code{table} values results -in a @emph{shallow copy}. For @emph{deep copies}, use the clone operator ``copy()'' -explained in @ref{Expressions}. - -In addition to directly accessing an element of a table by specifying -its index, you can also loop over all of the indices in a table -using the statement. - -@node Deleting Table Elements, -@subsection Deleting Table Elements -You can remove an individual element from a table using the - statement: -@example - delete active_host[c$id]; -@end example - -will remove the element in @code{active_host} corresponding to -the connection identifier @code{c$id} (which is a @command{&conn_id} record). -If the element isn't present, nothing happens. - -@cindex tables - -@node Sets, -@section Sets - -@cindex set type -Sets are very similar to tables. The principle difference is that they are -simply a collection of indices; they don't yield any values. -You declare tables using the following syntax: -@quotation -@code{set [} @emph{@math{type^+}} @code{]} -@end quotation -where, as with @code{table}s, -@emph{@math{type^+}} is one or more scalar types (or records), separated by commas. - -You initialize sets listing their elements in braces: -@example - global a = @{ 21/tcp, 23/tcp, 80/tcp, 443/tcp @}; -@end example - -which implicitly types @code{a} as a @code{set[port]} and then -initializes it to contain the given 4 @code{port} values. - -For multiple indices, you enclose each set of indices in brackets: -@example - global b = @{ [21/tcp, "ftp"], [23/tcp, "telnet"], @}; -@end example - -which implicitly @code{b} as @code{set[port, string]} and then -initializes it to contain the given two elements. (As with tables, -the comma after the last element is optional.) - -As with tables, you can group together sets of indices: -@example - global c = @{ [21/tcp, "ftp"], [[80/tcp, 8000/tcp, 8080/tcp], "http"], @}; -@end example - -initializes @code{c} to contain 4 elements. - -Also as with tables, you can use the -@command{&create_expire}, @command{&read_expire}, and @command{&write_expire} -attributes to control the automatic expiration of elements in a set. -@emph{Deficiency: However, the attribute is not currently supported. } - -You can test for whether a particular member is in a set using -the add elements using the @code{add} statement: -@example - add c[443/tcp, "https"]; -@end example - -and can remove them using the @code{delete} statement: -@example - delete c[21/tcp, "ftp"]; -@end example - -Also, as with tables, you can assign to the entire set, which assigns -a - -Finally, as with tables, you can loop over all of the indices in a set -using the statement. - -@cindex set type - -@node Files, -@section Files - -@cindex file type -@emph{Deficiency: Bro currently supports only a very simple notion of files. You can only write to files, you can't read from them: and files are essentially untyped---the only values you can write to them are @code{string}'s or values that can be converted to @code{string}.} - -You declare @code{file} variables simply as type @code{file}: -@example - global f: file; -@end example - -You can create values of type @code{file} by using the -function: -@example - f = open("suspicious_info.log"); -@end example - -will create (or recreate, if it already exists) the file -@emph{suspicious_info.log} and open it for writing. You can also use - to append to an existing file (or create -a new one, if it doesn't exist). - -You write to files using the @code{print} statement: -@example - print f, 5 * 6; -@end example - -will print the text @code{30} to the file corresponding to the value of @code{f}. - -There is no restriction regarding how many files you can have open at a -given time. In particular, even if your system has a limit imposed by -RLIMIT_NOFILE as set by the system call @code{setrlimit}. -If, however, you want to to close a file, you can do so using @code{close}, -and you can test whether a file is open using @code{active-file}. - -Finally, you can control whether a file is buffered using @code{set-buf}, -and can flush the buffers of all open files using @code{flush-all}. - -@cindex file type - -@node Functions, -@section Functions - -@cindex functions -@cindex function type -You declare a Bro @code{function} type using: -@quotation -@code{function(} @emph{argument*} @code{)} @code{:} @emph{type} -@end quotation -where @emph{argument} is a (possibly empty) -comma-separated list of arguments, and the final -``@code{:} @emph{type}'' declares the return type of the function. -It is optional; if missing, then the function does not return a value. - -Each argument is declared using: -@quotation -@emph{param-name} @code{:} @emph{type} -@end quotation - -So, for example: -@example - function(a: addr, p: port): string -@end example - -corresponds to a function that takes two parameters, @code{a} of type -@code{addr} and @code{p} of type @code{port}, and returns a value of -type @code{string}. - -You could furthermore declare: -@example - global generate_id: function(a: addr, p: port): string; -@end example - -to define @code{generate_id} as a variable of this type. Note that -the declaration does @emph{not} define the body of the function, -and, indeed, @code{generate_id} could have different function bodies -at different times, by assigning different function values to it. - -When defining a function including its body, the syntax is slightly different: - -@example -function @emph{func-name} ( @emph{argument*} ) [ : type ] @{ @emph{statement*} @} -@end example - -That is, you introduce @emph{func-name}, the name of the function, between -the keyword @code{function} and the opening parenthesis of the argument -list, and you list the statements of the function within braces at the end. - -For the previous example, we could define its body using: -@example - function generate_id(a: addr, p: port): string - @{ - if ( a in local_servers ) - # Ignore port, they're always the same. - return fmt("server %s", a); - - if ( p < 1024/tcp ) - # Privileged port, flag it. - return fmt("%s/priv-%s", a, p); - - # Nothing special - default formatting. - return fmt("%s/%s", a, p); - @} -@end example - -We also could have omitted the first definition; a function definition -like the one immediately above automatically defines @code{generate_id} -as a function of type @code{function(a: addr, p: port): string}. Note -@cindex redefining functions -@cindex functions, redefining -though that if @emph{func-name} was indeed already declared, then the -argument list much match @emph{exactly} that of the previous definition. -This includes the names of the arguments; @emph{Unlike in C}, you cannot change -the argument names between their first (forward) definition and the -full definition of the function. - -You can also define functions without using any name. These are -referred to as are a type of expression. - -You can only do two things with functions: -or assign them. As an example of the latter, suppose we have: -@example - local id_funcs: table[conn_id] of function(p: port, a: addr): string; -@end example - -would declare a local variable indexed by a - -same type as in the previous example. You could then execute: -@example - id_funcs[c$id] = generate_id -@end example - -or call whatever function is associated with a given @code{conn_id}: -@example - print fmt("id is: %s", id_funcs[c$id](80/tcp, 1.2.3.4)); -@end example - -@cindex function type -@cindex functions - -@node Event handlers, -@section Event handlers - -@cindex event type - -Event handlers are nearly identical in both syntax and semantics -to functions, with the two differences being that event handlers -have no return type since they never return a value, and you cannot -call an event handler. You declare an event handler using: -@quotation -@code{event (} @emph{argument*} @code{)} -@end quotation -So, for example, -@example - local eh: event(attack_source: addr, severity: count) -@end example - -declares the local variable @code{eh} to have a type corresponding -to an event handler that takes two arguments, @code{attack_source} of -type @code{addr}, and @code{severity} of type @code{count}. - -To declare an event handler along with its body, the syntax is: -@quotation -@code{event} @emph{handler} @code{(} @emph{argument} @code{)} @code{@{} @emph{statement} @code{@}} -@end quotation - -As with functions, you can assign event handlers to variables of the -same type. Instead of calling event handlers like functions, though, -@cindex event handler, invocation -@cindex invoking event handlers -instead they are @emph{invoked}. This can happen in one of three ways: -@table @samp -@cindex event engine - -@item From the event engine -When the event engine detects an event for which you have defined a -corresponding event handler, it queues an event for that handler. The -handler is invoked as soon as the event engine finishes processing the -current packet (and invoking any other event handlers that were queued -first). The various event handlers known to the event engine are discussed -in Chapter N . - -@item Via the @code{event} statement -The @code{event} statement queues an event for the given event handler -for immediate processing. For example: -@example - event password_exposed(c, user, password); -@end example - -queues an invocation of the event handler @code{password_exposed} with -the arguments @code{c}, @code{user}, and @code{password}. Note that -@code{password_exposed} must have been previously declared as an event -handler with a compatible set of arguments. - -Or, if we had a local variable @code{eh} as defined above, we could execute: -@example - event eh(src, how_severe); -@end example - -if @code{src} is of type @code{addr} and @code{how_severe} of type @code{count}. - -@item Via the @code{schedule} expression -The expression queues an event for future invocation. -For example: -@example - schedule 5 secs @{ password_exposed(c, user, password) @}; -@end example - -would cause @code{password_exposed} to be invoked 5 seconds in the future. - -@end table - -@cindex event type -@cindex event handlers - -@node any type, -@section The @code{any} type - -@cindex any type``any'' type -The @code{any} type is a type used internally by Bro to bypass strong -typing. For example, the function takes arguments -of type @code{any}, because its arguments can be of different types, -and of variable length. However, the @code{any} type is not supported -@cindex casting, not provided in Bro -@cindex type casting, not provided in Bro -for use by the user; while Bro lets you declare variables of type @code{any}, -it does not allow assignment to them. -@cindex possible future changes, use of any type for bypassing strong typing -This may change in the future. Note, though, that you can achieve -some of the same effect using @code{record} values with @code{&optional} -fields. - -@cindex any type``any'' type - diff --git a/doc/ref-manual/vars.texi b/doc/ref-manual/vars.texi deleted file mode 100644 index c7ed8223ec..0000000000 --- a/doc/ref-manual/vars.texi +++ /dev/null @@ -1,294 +0,0 @@ - -@node Global and Local Variables -@chapter Global and Local Variables - -@menu -* Variables Overview:: -@end menu - -@node Variables Overview, -@section Variables Overview - -@cindex variables, overview - -Bro variables can be complicated to understand because they have -a number of possibilities and features. They can be -global or local in scope; -modifiable or constant (unchangeable); -explicitly or implicitly typed; -optionally initialized; -defined to have additional -@emph{attributes}; -and, for global variables, -@emph{redefined} to have a different -initialization or different attributes from their first declaration. - -Rather than giving the full syntax for variable declarations, which -is messy, in the following sections we discuss each of these facets -of variables in turn, illustrating them with the minimal necessary -syntax. However, keep in mind that the features can be combined -as needed in a variable declaration. - -@menu -* Scope:: -* Assignment & call semantics:: -* Modifiability:: -* Typing:: -* Initialization:: -* Attributes:: -* Refinement:: -@end menu - -@node Scope, -@subsection Scope - -@cindex variables, scoping -@cindex scoping of variables -@cindex global variables -@cindex local variables -@emph{Global} variables are available throughout your policy script (once -declared), while the scope of @emph{local} variables is confined to the -function or event handler in which they're declared. You indicate the -variable's type using a corresponding keyword: -@quotation -@code{global} @emph{name} @code{:} @emph{type} @code{;} -@end quotation -or -@quotation -@code{local} @emph{name} @code{:} @emph{type} @code{;} -@end quotation -which declares @emph{name} to have the given type and the corresponding -scope. - -You can intermix function/event handler definitions with declarations -of global variables, and, indeed, they're in fact the same thing (that -is, a function or event handler definition is equivalent to defining -a global variable of type @code{function} or @code{event} and associating -its initial value with that of the function or event handler). So -the following is fine: -@example - global a: count; - - function b(p: port): string - @{ - if ( p < 1024/tcp ) - return "privileged"; - else - return "ephemeral"; - @} - - global c: addr; -@end example - -However, you cannot mix declarations of global variables with -global statements; the following is not allowed: -@example - print "hello, world"; - global a: count; -@end example - -Local variables, on the other hand, can @emph{only} be declared within a -function or event handler. (Unlike for global statements, these declarations -@emph{can} come after statements.) Their scope persists to the end of -the function. For example: -@example - function b(p: port): string - @{ - if ( p < 1024/tcp ) - local port_type = "privileged"; - else - port_type = "ephemeral"; - - return port_type; - @} -@end example - -@node Assignment & call semantics, -@subsection Assignment & call semantics - -@cindex call semantics -@cindex call by reference -@cindex call by value -@cindex assignment semantics -@cindex aggregated types - -Assignments of aggregate types (such as records, tables, or vectors) are -always @emph{shallow}, that is, they are performed @emph{by reference}. -So when you assign a record or table value to another variable, any modifications -you make to members become visible in both variables (see also -@ref{Record Assignment}, @ref{Table Assignment}). - -The same holds for function calls: an aggregate value passed into a function -is passed by reference, thus any modifications made to the value inside the -function remain effective after the function returns. - -@cindex reference counting -@cindex shallow copy -@cindex deep copy -It is important to be aware of the fact that events triggered using the -@code{event} statement remain on the event queue until they are processed, -and that any aggregate values passed as arguments to @code{event} can be modified -at any time before the event handlers are executed. If this is not desirable, -you have to copy the values before passing them to @code{event}. The model that applies -here is one of @emph{reference counting}, not local scope or deep copying. -If deep copies are desirable, use the clone operator ``copy()'' explained in -@ref{Expressions}. - -Therefore, if an event handler triggering a new event modifies the arguments -after the @code{event} statement, these changes will be visible inside the event -handlers running later. This also affects the lifetime of a value. If an aggregate -is for example stored in a table and referenced nowhere else, then retrieved and -passed to an @code{event} statement, and removed from the table before the -event handlers execute, it does remain in existence until the event handlers -are executed. - -Furthermore, if multiple event handlers exist for a single event type, any changes -to the arguments made by an event handler will be visible in other -event handlers still to follow. - -@node Modifiability, -@subsection Modifiability - -@cindex variables, modifiability -@cindex modifiability of variables -For both global and local variables, you can declare that the -variable @emph{cannot be modified} by declaring it using the const -keyword rather than global or local: -@example - const response_script = "./scripts/nuke-em"; -@end example - -Note that @code{const} variables @emph{must} be initialized (otherwise, -of course, there's no way for them to ever hold a useful value). - -The utility of marking a variable as unmodifiable is for clarity -in expressing your script---making it explicit that a particular value -will never change---and also allows Bro to possibly optimize accesses -to the variable (though it does little of this currently). - -Note that const variables @emph{can} be redefined via -redef. - -@node Typing, -@subsection Typing - -@cindex variables, typing -@cindex typing of variables -@cindex implicit typing -@cindex explicit typing -When you define a variable, you can @emph{explicitly} type it by -specifying its type after a colon. For example, -@example - global a: count; -@end example - -directly indicates that a's type is @code{count}. - -However, Bro can also @emph{implicitly} type the variable by looking -at the type of the expression you use to initialize the variable: -@example - global a = 5; -@end example - -also declares a's type to be @code{count}, since that's -the type of the initialization expression (the constant 5). -There is no difference between this declaration and: -@example - global a: count = 5; -@end example - -except that it is more concise both to write and to read. In particular, -Bro remains @emph{strongly} typed, even though it also supports @emph{implicit} -typing; the key is that once the type is implicitly inferred, it is thereafter -strongly enforced. - -@cindex type inference -@cindex inferring types -Bro's @emph{type inference} is fairly powerful: it can generally figure -out the type whatever initialization expression you use. For example, -it correctly infers that: -@example - global c = @{ [21/tcp, "ftp"], [[80/tcp, 8000/tcp, 8080/tcp], "http"], @}; -@end example - -specifies that c's type is set[port, string]. But for still -more complicated expressions, it is not always able to infer the correct -type. When this occurs, you need to explicitly specify the type. - -@node Initialization, -@subsection Initialization - -@cindex variables, initialization -@cindex initialization of variables -When defining a variable, you can optionally specify an initial -value for the variable: -@example - global a = 5; -@end example - -indicates that the initial value of @code{a} is the value @code{5} -(and also implicitly types a as type count, per @ref{Typing}). - -The syntax of an initialization is ``= @emph{expression}'', where -the given expression must be assignment-compatible with the variable's -type (if explicitly given). Tables and sets also have special initializer -forms, which are discussed in @ref{Initializing Tables} and @ref{Sets}. - -@node Attributes, -@subsection Attributes - -@cindex variables, attributes -@cindex attributes - -When defining a variable, you can optionally specify a set of -@emph{attributes} associated with the variable, which specify -additional properties associated with it. Attributes have two forms: -@quotation -@code{&} @emph{attr} -@end quotation -for attributes that are specified simply using their name, and -@quotation -@code{&} @emph{attr} @code{=} @emph{expr} -@end quotation -for attributes that have a value associated with them. - -The attributes -@code{&redef} -@code{&add_func} -and -@code{&delete_func}, -pertain to redefining variables; they are discussed in @ref{Refinement}. - -The attributes -@code{&default}, -@code{&create_expire}, -@code{&read_expire}, -@code{&write_expire}, and -@code{&expire_func} -are for use with table's and set's. -See @ref{Table Attributes} for discussion. - -The attribute -@code{&optional} -specifies that a @code{record} field is optional. See -for discussion. - -Finally, to specify multiple attributes, you do @emph{not} separate them -with commas (doing so would actually make Bro's grammar ambiguous), but -just list them one after another. For example: -@example - global a: table[port] of string &redef &default="missing"; -@end example - -@node Refinement, -@subsection Refinement - -@cindex variables, redefining -@cindex variables, refinement -@cindex refinement -@cindex redefining variables - -To do: -&redef @* -&add func @* -&delete func diff --git a/doc/user-manual/Bro-Linux.texi b/doc/user-manual/Bro-Linux.texi deleted file mode 100644 index 0dc44f29a5..0000000000 --- a/doc/user-manual/Bro-Linux.texi +++ /dev/null @@ -1,11 +0,0 @@ - -The section not done! - -There are a number of patches needed to make Bro work well with Linux. - -These include: - -Luca Deri's patch to fix libpcap issues. - - - diff --git a/doc/user-manual/Bro-analysis.texi b/doc/user-manual/Bro-analysis.texi deleted file mode 100644 index ad0f65f05e..0000000000 --- a/doc/user-manual/Bro-analysis.texi +++ /dev/null @@ -1,322 +0,0 @@ - -@subheading Rule one: There are no rules @enddots{} - -This section describes a specific procedure that can be followed with each "incident" that Bro uncovers, but one must keep in mind that intrusion detection is not a static problem. The perpetrators of intrusions and malicious network activity are constantly changing their techniques with the express purpose of evading detection. Unexpected activities are often found by investigation of seemingly innocuous network oddities or serendipitous inspection of logs. While Bro is an exceptionally useful tool for collecting, sorting, analyzing and flagging suspect network data, it cannot be expected to flag all new, cleverly disguised attacks. Nor can it be expected to differentiate with 100% accuracy between aberrant, but legitimate, user behavior and a malicious attack. Sometimes a strong curiosity is an analyst's best friend and Bro is the vehicle for allowing him or her to follow that curiosity. - -@menu -* Two Types of Triggers :: -* General Process Steps :: -* Understand What Triggered the Alarm(s) :: -* Understand the Intent of the Alarm(s) :: -* Examine HTTP FTP or SMTP Sessions :: -* Examine the Connection and Weird Logs :: -* Examine the Bulk Trace if Available :: -* Contact and Question Appropriate People :: -@end menu - -@node Two Types of Triggers -@section Two Types of Triggers - -There are two ways that alarms can be triggered. One is when network traffic matches a @emph{signatures} that has been converted to work with Bro. The other way is by matching Bro @emph{rules} that are embedded in the Bro analyzers. - -@subsection Converted Signatures -In the Bro report, converted signatures are identified by the alarm type: @code{SensitiveSignature} and the existence of a @code{bro} identification number. Each signature is distinct, targeting one specific set of network events for each alarm. Currently the majority of converted @emph{signatures} are developed from Snort@copyright{} signatures using the @file{snort2bro} utility. In addition, enhancing have been made by utilizing features in the Bro policy language that are absent in Snort@copyright{}. Most Bro signatures are found in the @file{$BROHOME/site/signatures.sig}, however, they can exist in other @file{.sig} files. - -@subsection Embedded Bro Rule -Bro rules are typically embedded in the Bro @emph{analyzers} or other @file{.bro} policy files. -@comment ***** XXX: Need ref to analyzer section of ref manual -Several trigger conditions are usually lumped into a grouping of Bro rules within a @file{.bro} file, making it difficult to separate the exact condition that triggered the alarm. Hence, alarms triggered by an embedded Bro rule will not have a specific @code{bro} identification number, nor will the @emph{signature code} block appear in the report. - -@quotation Possible types of embedded bro rule alarms -@multitable {SensitiveUsernameInPassword} {ICMPConnectionPair} {FTP_ExcessiveFilename} -@item AddressDropped -@tab AddressScan -@tab BackscatterSeen -@item ClearToEncrypted_SS -@tab CountSignature -@tab DNS::DNS_MappingChanged -@item DNS::DNS_PTR_Scan -@tab FTP::FTP_BadPort -@tab FTP::FTP_ExcessiveFilename -@item FTP::FTP_PrivPort -@tab FTP::FTP_Sensitive -@tab FTP::FTP_UnexpectedConn -@item HTTP::HTTP_SensitiveURI -@tab HotEmailRecipient -@tab ICMP::ICMPAsymPayload -@item ICMP::ICMPUnpairedEchoReply -@tab ICMP::ICMPConnectionPair -@tab IdentSensitiveID -@item LoginForbiddenButConfused -@tab LocalWorm -@tab MultipleSigResponders -@item MultipleSignatures -@tab OutboundTFTP -@tab PasswordGuessing -@item PortScan -@tab RemoteWorm -@tab ResolverInconsistency -@item SSH_Overflow -@tab SSL_SessConIncon -@tab SSL_X509Violation -@item ScanSummary -@tab SensitiveConnection -@tab SensitiveDNS_Lookup -@item SensitivePortmapperAccess -@tab SensitiveLogin -@tab SensitiveSignature -@item SensitiveUsernameInPassword -@tab SignatureSummary -@tab SynFloodEnd -@item SynFloodStart -@tab SynFloodStatus -@tab TRW::TRWAddressScan -@item TerminatingConnection -@tab W32B_SourceLocal -@tab W32B_SourceRemote -@item ZoneTransfer -@end multitable -@end quotation - -@node General Process Steps -@section General Process Steps - -The following steps will both aid the Bro user with uncovering network -activity of interest, and also help acquaint the user with the anomalies that Bro detects, together building up an understanding of what constitutes "normal" network traffic for the local site. The analyst might follow each successive step with each incident until a firm determination is made if the incident is malicious or a "false positive". - -@itemize -@item Understand What Triggered the Alarm(s) -@item Understand the Intent of the Alarm(s) -@item Examine the Session(s) from the HTTP, FTP, or SMTP Logs -@item Examine the Connection Logs for Breakin Indicators -@item Examine for Connections to Other Computers -@item Examine Other Bro Logs for Odd Activity -@item Examine the Bulk Trace if Available -@item Contact and Question Appropriate People -@end itemize - -@node Understand What Triggered the Alarm(s) -@section Understand What Triggered the Alarm(s) - -To understand what triggered the alarm, compare the signature or rule code with @emph{payload}. The network traffic that matches the signature, rule, or policy is known as the payload. The payload that triggers the alarm is usually included in the Bro's incident report. -Often it is obvious that the payload is not malicious. - -@quotation Example -The signature may trigger on the word @emph{shadow}, notifying that someone may be attempting to download the shadow password file. However, the payload may reveal that the actual download is something like @emph{theshadow.jpg}, which is obliviously innocuous. -@end quotation - -The two kinds of alarms, converted signatures and embedded rules trigger alarms differently, so they must be treated separately. The following sections describe how to investigate the signature or rule code and payload of each. - -@subsection Converted Snort Signatures -These signatures are recognizable by the inclusion of a @code{bro} number and the identification @code{SensitiveSignature}. A @emph{signature code} and @emph{payload} block should be present in the incident report. To understand what triggered the alarm, compare the payload to the signature code and find the defined signature within the payload. Since some payload lines can get extremely long, the payload lines in the report and notice and alarm logs has been truncated to 250 characters. Sometimes the actual trigger payload is beyond the 250 character cut off. In this case, the protocol sessions log file must be examined. @xref{Examine HTTP FTP or SMTP Sessions}. - -@subsection Embedded Bro Rule -For alarms triggered by an embedded Bro rule the @emph{signature code} block will not appear, and in many cases, neither will the payload. There is currently no direct way to find the specific Bro rule that triggered the alarm other than to search the Bro policy files. Following is a process for conducting that search. The example of the @code{HTTP_SensitiveURL} is used. In actual practice, this rule appears quite often in the reports. - -@quotation Read about the specific analyzer -In the Bro Technical Reference Manual there are sections for each type of analyzer. In the case of our example the HTTP analyzer is the obvious choice. In the section on the HTTP analyzer, it is noted that the variables @var{sensitive_URIs} and @var{sensitive_post_URIs} are responsible for flagging sensitive URIs. -@end quotation - -@quotation Find the policy file that defines these variables -Using egrep to search for @var{sensitive_URIs} and/or @var{sensitive_post_URIs} yields the following: - -@example -> egrep "sensitive_URIs | sensitive_post_URIs" http* -http-request.bro: const sensitive_URIs = -http-request.bro: # URIs that match sensitive_URIs but can be generated by worms -http-request.bro: const skip_remote_sensitive_URIs = /\/cgi-bin\/(phf|php\.cgi|test-cgi)/ &redef; -http-request.bro: const sensitive_post_URIs = /wwwroot|WWWROOT/ &redef; -http-request.bro: if ( (sensitive_URIs in URI && URI != worm_URIs) || -http-request.bro: (method == "POST" && sensitive_post_URIs in URI) ) -http-request.bro: skip_remote_sensitive_URIs in URI ) -@end example - -Clearly @file{http-request.bro} is the file of interest. If, in the case of other types of analyzers, more than one file appears, look for the place where the @code{const} statement is used to declare the variable(s). -@end quotation - -@quotation Look into the policy file -Search in the section of Bro policy code that describes the rule(s) for the specific notification. In the file @file{http-request.bro}, is found: - -@verbatim -export{ - const sensitive_URIs = - /etc.*\/.*(passwd|shadow|netconfig)/ - | /IFS[ \t]*=/ - | /nph-test-cgi\?/ - | /(%0a|\.\.)\/(bin|etc|usr|tmp)/ - | /\/Admin_files\/order\.log/ - | /\/carbo\.dll/ - | /\/cgi-bin\/(phf|php\.cgi|test-cgi)/ - | /\/cgi-dos\/args\.bat/ - | /\/cgi-win\/uploader\.exe/ - | /\/search97\.vts/ - | /tk\.tgz/ - | /ownz/ # somewhat prone to false positives - &redef; - - # URIs that match sensitive_URIs but can be generated by worms, - # and hence should not be flagged (because they're so common). - const worm_URIs = - /.*\/c\+dir/ - | /.*cool.dll.*/ - | /.*Admin.dll.*Admin.dll.*/ - &redef; -} - -redef capture_filters += { - ["http-request"] = "tcp dst port 80 or tcp dst port 8080 - or tcp dst port 8000" -}; - -# URIs that should not be considered sensitive if accessed remotely, -# i.e. by a local client. -const skip_remote_sensitive_URIs = /\/cgi-bin\/(phf|php\.cgi|test-cgi)/ - &redef; - -const sensitive_post_URIs = /wwwroot|WWWROOT/ &redef; -@end verbatim - -Unfortunately, there isn't any way of knowing exactly which one of these rules triggered the @code{HTTP_SensitiveURL} alarm. As will be seen in the next section, the triggering payload must be compared against this entire section. -@end quotation - -@node Understand the Intent of the Alarm(s) -@section Understand the Intent of the Alarm(s) - -While understanding the technical signature or policy "code" that "triggered" the alarm, it is also useful to understand the reason the trigger was built. -@itemize -@item What attack or malicious behavior is the alarm trying to illuminate? -@item What is the normal method of attack ... manual? automated? expert? novice? -@item How long has the particular attack existed? -@item How often is it seen? How often is it actually used by attackers? -@end itemize -All of these things, and any other information that can be gathered, will -help in differentiating attacks from legitimate behavior. Although this process may seem tedious and time consuming in the beginning, the Bro analyst will quickly build up a substantial knowledge of known attacks. Even if the incident in question turns out to be benign, the effort to learn about the attack almost always proves useful in future investigations. - -@subsection Converted Snort@copyright{} Signatures -Since Snort@copyright{} signatures are usually fairly well documented, one way to discover the intent of the signature is to search the web for the title of the signature using any of the common search engines (Yahoo, Google, Teoma, AltaVista, or one of the may others). For instance, a search on the @emph{MS SQL xp_cmdshell} vulnerability yields ~7000 hits. One of those hits is: - -@example -Zone-H.org * Advisories -... Successful exploitation of this vulnerability can enable an attacker to -execute commands in the system (via MS SQL xp_cmdshell function). ... -www.zone-h.org/advisories/read/id=4243 - 17k - Cached - Similar pages -@end example - -This web site give a fairly detailed description of the exploit and verifies that it can be used to root compromise a computer and hence, is a vulnerability of significant interest. Several other sites also give details about the signature, the attack, and other useful information. - -@subsection Embedded Bro Rule -Unfortunately, most of the embedded Bro rules have not been documented. -The analyst must rely on his/her own understand of network attacks to -guess what the intent of the rule is. Sometimes useful comments are -written into the Bro policy source. - -@node Examine HTTP FTP or SMTP Sessions -@section Examine HTTP FTP or SMTP Sessions - -These three files record session activity on ports 80(http), 21(ftp), and 25(smtp) respectively. If the alarm involves any of these ports, these files may reveal the details of the sessions. The general format of all three files is: -date/time@key{SP}%sessionnumber@key{SP}Message - -where: -@quotation date/time -is the time in UNIX epoch time. The @code{cf} utility can be used to convert this time to @cite{readable} time. Reference Tech Manual -@comment ####################### need reference to Tech Manaual. -@end quotation -@quotation sessionnumber -is the number assigned to session. All subsequent records in the file that are part of the session will retain this same session number. Session numbers are prefixed with the @samp{%} sign. -@end quotation -@quotation message -is the message that Bro policy has formed to describe the session event. Typically the message will be: -@itemize -@item the start of the session, including the two ip addresses involved -@item an anomolous event -@item the full protocol command line that was sent -@item short statistics concerning the transaction (e.g. bytes sent) -@end itemize -@end quotation - -In an alarm where the session number is given (typically in a SensitiveSignature alarm), a search on the session number in the appropriate file(s) will show the full sessons. @xref{The bro/logs Directory}. -@*@* -@strong{Example:} -@*Consider the following alarm: - -@verbatim -Alarm: HTTP_SensitiveURI - 11/22_12.52.42 128.333.48.179 -> 80.143.378.186 - 3091/tcp -> 80/tcp - session: %73280 - payload: GET\/NR/rdonlyres/eirownz4tqwlseoggqm2ahj5cqsdbedlaxyye - 7kvdz7rnh6u4o2v2gpvmoggqjlekzdtulryyatiinj3xwimmiavgfb/ - smallshoulders.gif\ (200\ "OK"\ [1134]) -@end verbatim - -From the payload shown, it is unclear what triggered the alarm. To investigate further, the entire session can be viewed: - -Example: -@verbatim -> grep %73280 http.hostname.04-11-22_12.52.42 | cf -Nov 22 15:18:30 %73280 start 128.333.48.179 > 80.143.378.186 -Nov 22 15:18:30 %73280 GET /fitness/default.htm (200 "OK" [10473]) -Nov 22 15:18:30 %73280 GET /javascripts/cms_common.js (304 "Not Modified"[0]) -Nov 22 15:19:47 %73280 GET /food_nutrition/default.htm (200 "OK"[13177]) -Nov 22 15:19:47 %73280 GET/NR/rdonlyres/eirwwu3xtlr22dkat5cim4ziupouzxb6kz4xb -zbr4zs255ca57cvv5mhcjcrmrfg6kpcrevyndo2za3yoi5esheiolf/News111904Dairy NotFor -Diet.jpg (200 "OK" [6572]) -Nov 22 15:19:51 %73280 GET /NR/rdonlyres/0D25692F-D59A-4B90-AB53-8BBC9E75A286. -gif (200 "OK" [189]) -Nov 22 15:19:51 %73280 GET /NR/rdonlyres/eqpbdbex34wpqpagp2fcbxh35omcjtq45feyf7 -zgtjff6fhrybfbsvtszeu4rc2clayghhslfimaafkoocae6cv6wof/doctor.jpg (200 "OK" [161 -5])/NR/rdonlyres/enhskrfoodzuquvmbli2hasjspusrgsvyhbd3nlue5msoli2ueagrwdxw56gqa -aa7sosee3yn2hwywcg6kgv4wcv6jc/bigback.gif (200 "OK" [8192 (interrupted)])/NR/rd -onlyres/ej2cpd275ghrefp23ezou43haqe6fmj3oyeqxkvopf4bv4zhwbqimfrrbndqpotx55pogc7 -xiqvdcovaxo66afyqfof/smallleg.jpg (200 "OK" [1010]) -Nov 22 15:22:12 %73280 GET /NR/rdonlyres/eirownz4tqwlseoggqm2ahj5cqsdbedlaxyye7 -kvdz7rnh6u4o2v2gpvmoggqjlekzdtulryyatiinj3xwimmiavgfb/smallshoulders.gif (200 " -OK" [1134]) -Nov 22 15:22:13 %73280 GET /NR/rdonlyres/49D86A33-AF6C-4873-AD11-F26DDBF222B1.g -if (200 "OK" [167]) -@end verbatim -By examining this session it can clearly be seen that the session is simply a web visit to a fitness website. There is no need to investigate further. - -@node Examine the Connection and Weird Logs -@section Examine the Connection and Weird Logs - -The connection logs are a record of every connection Bro detects. Although they don't contain content, being able to track the network @emph{movement} of an attacking host is often very useful. - -@subsection Breakin Indicators - -If it is still not clear if a suspect host is an attacker, the connection surrounding the suspicious connection can be examined. Here are some questions that might be answered by the @file{conn} logs. -itemize -item How many more successful connection the attacker make to the target host? -item How much data was transfered? A lot of data means something more than an unsuccessful probe. -item Did the target host connect back to the attacker? This is a fairly sure sign of a successful attack. The attacker has gained control of the target and is connecting back to his own host. -item What was the time duration? If several attacks occur in a very short time and then slow down to @emph{human} speed, it could indicate the attacker used an automated attack to gain control and then switched to a manual mode to "work on" the compromised target host. - -@subsection Connections to Other Computers -If a host has been successfully identified as an attacker, it is useful to know what and how many other hosts the attacker has touched. This can be found by grepping through the @file{conn} logs for instances of connections by the suspect host. -@example -example here -@end example -If the attack used a specific, little used, port; another investigation would be to search for other similar connection using that port. Often the attacker might change attack hosts, but will continue to use the same attack method. -@example -example here -@end example -@quotation NOTES -@i{You may want to go back several days, weeks, months, or even years to see if the attacker has visited (and perhaps compromised) you site earlier without being detected. -@*However, be forwarned that the @file{conn} logs tend to get very large and doing extensive searches can take a very long time.} -@end quotation - -@subsection Odd Activity -Despite attempts to have the network community adhere to network standards, non-compliant traffic occurs all the time. The @file{weird} logs are a record of instances of network traffic that simply should not happen. -@*@* -While these logs are usually of interest to the most hard-core of network engineers, if a unique attack is detected, it is sometimes valuable to search the weird logs for other unusual activities by the attacking host. Hackers are not bound by standard protocol and sometimes find ways to circumvent security via @emph{weird} methods. - -@node Examine the Bulk Trace if Available -@section Examine the Bulk Trace if Available - -For information on using the Bulk trace files for analysis, see -@ref{Bulk Traces and Off-line Analysis}. - -@node Contact and Question Appropriate People -@section Contact and Question Appropriate People -The final and usually the most definitive investigation is to call the owners of the hosts involved. Often a call to the owner of the local host can reveal that the activity was not normal, but appropriate or a mistake. - diff --git a/doc/user-manual/Bro-blocking.texi b/doc/user-manual/Bro-blocking.texi deleted file mode 100644 index 5cc3ed063e..0000000000 --- a/doc/user-manual/Bro-blocking.texi +++ /dev/null @@ -1,37 +0,0 @@ - - -@menu -* To block or not to block -- That is the question:: -* Adjusting criteria for automatic blocking:: -* Manually blocking/unblocking hosts:: -* Sample Blocking Code:: -@end menu - -@comment ******************************************** -@node To block or not to block -- That is the question -@section To block or not to block -- That is the question - -insert text here - -@comment ******************************************** -@node Adjusting criteria for automatic blocking -@section Adjusting criteria for automatic blocking - -insert text here - -@comment ******************************************** -@node Manually blocking/unblocking hosts -@section Manually blocking/unblocking hosts - -insert text here - -@comment ******************************************** -@node Sample Blocking Code -@section Sample Blocking Code - -At LBL we use a program called @uref{http://www-nrg.ee.lbl.gov/leres/acl2.html, acld} -to update the ACLs in our boarder routers on the fly. -This code is available at: ftp://ftp.ee.lbl.gov/acld.tar.gz - - - diff --git a/doc/user-manual/Bro-customizing.texi b/doc/user-manual/Bro-customizing.texi deleted file mode 100644 index 22c123053d..0000000000 --- a/doc/user-manual/Bro-customizing.texi +++ /dev/null @@ -1,508 +0,0 @@ - -Bro is very customizable, and there are several ways to modify Bro to suit -your environment. You can write your own policy analyzers using the Bro language. -Most sites will likely just want to do minor customizations, such as changing the level -of an alert from "notice" to "alarm", or turning on or off particular analyzers. -The chapter describes how to do these types of customizations. -Information on how to write your own analyzers can be found in -the @uref{http://www.bro-ids.org/Bro-reference-manual/, Bro Reference Manual}. - -The default policy scripts for Bro are all in $BROHOME/policy. These files should @strong{never} be -edited, as your edits will be lost when you upgrade Bro. To customize Bro for your site, you -should make all your changes in $BROHOME/site. Many simple changes just require you -to @emph{redefine} (using the @uref{ -http://www.bro-ids.org/Bro-reference-manual/Variables-Overview.html, -@code{redef}} operator, -a Bro constant from a standard policy script with your own custom value. You can -also write your own custom script to do whatever you want. - -For example, to add "guest" to the list of -@uref{http://www.bro-ids.org/Bro-reference-manual/hot_002dids-Module.html, forbidden_ids} -(user names that generate a login alarm), you -do this: - -@verbatim - redef forbidden_ids += { "guest", }; -@end verbatim - -In this chapter we give an overview of all the standard Bro policy scripts, what notices -they generate, and how to customize the most commonly changed items, and how to write new policy -modules. - -@menu -* Builtin Policy Files :: -* Notices :: -* Notice Actions :: -* Customizing Builtin Policy:: -* Writing New Policy:: -* Signatures :: -* Tuning Scan Detection :: -* Other Customizations :: -@end menu - -@node Builtin Policy Files -@section Builtin Policy Files -@cindex Policy Files - - -Bro @emph{policy} script is the basic analyzer used by Bro to determine what network events are alarm worthy. -A policy can also specify what actions to take and how to report activities, as well as determine what activities to scrutinize. -Bro uses policies to determine what activities to classify as @emph{hot}, or questionable in intent. -These hot network sessions can then be flagged, watched, or responded to via other policies or applications determined to be necessary, such as calling @code{rst} to reset a connection on the local side, or to add an IP address block to a main router's ACL (Access Control List). -The policy files use the Bro scripting language, which is discussed in great detail in @uref{http://www.bro-ids.org/Bro-reference-manual/index.html, The Bro Reference Manual}. - -Policy files are loaded using an @code{@@load} command. The semantics of @code{@@load} are "load in this script if it hasn't already been loaded", so there is no harm in loading something in multiple policy scripts. -The following policy scripts are included with Bro. The first set are all on by default, and the second group can be added by adding them to your @file{site/brohost.bro} policy file. - -Bro Analyzers are described in detail in the -@uref{http://www.bro-ids.org/Bro-reference-manual/Analyzers-and-Events.html, -Reference Manual}. -These policy files are loaded by default: - -@quotation -@multitable @columnfractions .2 .7 -@item @code{site} @tab defines local and neighbor networks from static config -@item @code{alarm} @tab open logging file for alarm events -@item @code{tcp} @tab initialize BPF filter for SYN/FIN/RST TCP packets -@item @code{login} @tab rlogin/telnet analyzer (or to ensure they are disabled) -@item @code{weird} @tab initialize generic mechanism for detecting unusual events -@item @code{conn} @tab access and record connection events -@item @code{hot} @tab defines certain forms of sensitive access -@item @code{frag} @tab process TCP fragments -@item @code{print-resources} @tab on exit, print resource usage information, useful for tuning -@item @code{signatures} @tab the signature policy engine -@item @code{scan} @tab generic scan detection mechanism -@item @code{trw} @tab additional, more sensitive scan detection -@item @code{http} @tab general http analyzer, low level of detail -@item @code{http-request} @tab detailed analysis of http requests -@item @code{http-reply} @tab detailed analysis of http replys -@item @code{ftp} @tab FTP analysis -@item @code{portmapper} @tab record and analyze RPC portmapper requests -@item @code{smtp} @tab record and analyze email traffic -@item @code{tftp} @tab identify and log TFTP sessions -@item @code{worm} @tab flag HTTP-based worm sources such as Code Red -@item @code{software} @tab track software versions; required for some signature matching -@item @code{blaster} @tab looks for blaster worm -@item @code{synflood} @tab looks for synflood attacks -@item @code{stepping} @tab used to detect when someone logs into -your site from an external net, and then soon logs into another site -@item @code{reduce-memory} @tab sets shorter timeouts for saving state, -thus saving memory. If your Bro is using < 50% of you RAM, try not loading this -@end multitable -@end quotation - -These are @strong{not} loaded by default: - -@quotation -@multitable @columnfractions .14 .4 .03 .4 -@item @strong{Policy} @tab @strong{Description} @tab @tab @strong{Why off by default} -@item @code{drop} @tab Include if site has ability to drop hostile remotes @tab @tab Turn on if needed -@item @code{icmp} @tab icmp analysis @tab @tab CPU intensive and low payoff -@item @code{dns} @tab DNS analysis @tab @tab CPU intensive and low payoff -@item @code{ident} @tab ident program analyzer @tab @tab historical, no longer interesting -@item @code{gnutella} @tab looks for hosts running Gnutella @tab @tab Turn this on if you want -to know about this -@item @code{ssl} @tab ssl analyzer @tab @tab still experimental -@item @code{ssh-stepping} @tab Detects stepping stones where both incoming and outgoing connections are ssh -@tab @tab Possibly too CPU intensive (needs more testing) -@item @code{analy} @tab Performs statistical analysis @tab @tab only used in off-line alalysis -@item @code{backdoor} @tab Looks for backdoors @tab @tab only effective when also capturing bulk traffic -@item @code{passwords} @tab Looks for clear text passwords @tab @tab may want to turn on if your site does not allow clear text passwords -@item @code{file-flush} @tab Causes all log files to be flushed every N seconds @tab @tab may want to turn on if you are doing "real time" analysis -@end multitable -@end quotation - -To modify which analyzers are loaded, edit or create a file in @file{$BROHOME/site}. -If you write your own new custom analyzer, it goes in this directory too. To disable an analyzer, -add "@code{@@unload policy.bro}" to the beginning of the file -@file{$BROHOME/site/brohost.bro}, before -the line "@code{@@load brolite.bro}". To add additional analyzers, add them @@load them -in @file{$BROHOME/site/brohost.bro}. - - -@node Notices -@section Notices -@cindex Predefined Bro Notices - -The primary output facility in Bro is called a @emph{Notice}. -The Bro distribution includes a number of standard of Notices, listed below. The table -contains the name of the Notice, what Bro policy file generates it, and a short description -of what the Notice is about. - -@quotation -@multitable @columnfractions .24 .15 .5 -@item @strong{Notice} @tab @strong{Policy} @tab @strong{Description} - -@item @code{AckAboveHole} @tab weird @tab Could mean packet drop; could also be a faulty TCP implementation -@item @code{AddressDropIgnored} @tab scan @tab A request to drop connectivity has been ignored ; (scan detected, but one of these flags is true: !can_drop_connectivity, or never_shut_down, or never_drop_nets ) -@item @code{AddressDropped } @tab scan @tab Connectivity w/ given address has been dropped -@item @code{AddressScan} @tab scan @tab The source has scanned a number of addrs -@item @code{BackscatterSeen} @tab scan @tab Apparent flooding backscatter seen from source -@item @code{ClearToEncrypted_SS} @tab stepping @tab A stepping stone was seen in which the first part of the chain is a clear-text connection but the second part is encrypted. This often means that a password or passphrase has been exposed in the clear, and may also mean that the user has an incomplete notion that their connection is protected from eavesdropping. -@item @code{ContentGap} @tab weird @tab Data has sequence hole; perhaps due to filtering -@item @code{CountSignature} @tab signatures @tab Signature has triggered multiple times for a destination -@item @code{DNS::DNS_MappingChanged} @tab DNS @tab Some sort of change WRT previous Bro lookup -@item @code{DNS::DNS_PTR_Scan} @tab dns @tab Summary of a set of PTR lookups (automatically generated once/day when dns policy is loaded) -@item @code{DroppedPackets} @tab netstats @tab Number of packets dropped as reported by the packet filter -@item @code{FTP::FTP_BadPort} @tab ftp @tab Bad format in PORT/PASV; -@item @code{FTP::FTP_ExcessiveFilename} @tab ftp @tab Very long filename seen -@item @code{FTP::FTP_PrivPort} @tab ftp @tab Privileged port used in PORT/PASV -@item @code{FTP::FTP_Sensitive} @tab ftp @tab Sensitive connection (as defined in @emph{hot}) -@item @code{FTP::FTP_UnexpectedConn} @tab ftp @tab FTP data transfer from unexpected src -@item @code{HTTP::HTTP_SensitiveURI} @tab http @tab Sensitive URI in GET/POST/HEAD (default sensitive URIs defined http-request.bro; e.g.: /etc.*\/.*(passwd|shadow|netconfig) -@item @code{HotEmailRecipient} @tab smtp @tab XXX Need Example, default = NULL -@item @code{ICMP::ICMPAsymPayload} @tab icmp @tab Payload in echo req-resp not the same -@item @code{ICMP::ICMPConnectionPair} @tab icmp @tab Too many ICMPs between hosts (default = 200) -@item @code{IdentSensitiveID} @tab ident @tab Sensitive username in Ident lookup -@item @code{LocalWorm} @tab worm @tab Worm seen in local host (searches for code red 1, code red 2, nimda, slammer) -@comment for PDF, need to break up long names -@ifnothtml -@item @code{LoginForbidden ButConfused} @tab login @tab Interactive login seen using forbidden username, but the analyzer was confused in following the login dialog, so may be in error. -@end ifnothtml -@ifnottex -@item @code{LoginForbiddenButConfused} @tab login @tab Interactive login seen using forbidden username, but the analyzer was confused in following the login dialog, so may be in error. -@end ifnottex -@ifnothtml -@item @code{Multiple SigResponders} @tab signatures @tab host has triggered the same signature on multiple responders -@end ifnothtml -@ifnottex -@item @code{MultipleSigResponders} @tab signatures @tab host has triggered the same signature on multiple responders -@end ifnottex -@item @code{MultipleSignatures} @tab signatures @tab host has triggered many signatures -@item @code{Multiple SigResponders} @tab signatures @tab host has triggered the same signature on multiple responders -@item @code{OutboundTFTP} @tab tftp @tab outbound TFTP seen -@item @code{PasswordGuessing} @tab scan @tab source tried too many user/password combinations (default = 25) -@item @code{PortScan} @tab scan @tab the source has scanned a number of ports -@item @code{RemoteWorm} @tab worm @tab worm seen in remote host -@ifnothtml -@item @code{Resolver Inconsistency} @tab dns @tab the answer returned by a DNS server differs from one previously returned -@end ifnothtml -@ifnottex -@item @code{ResolverInconsistency} @tab dns @tab the answer returned by a DNS server differs from one previously returned -@end ifnottex -@item @code{ResourceSummary} @tab print-resources @tab prints Bro resource usage -@ifnothtml -@item @code{Retransmission Inconsistency} @tab weird @tab possible evasion; usually just bad TCP implementation -@end ifnothtml -@ifnottex -@item @code{RetransmissionInconsistency} @tab weird @tab possible evasion; usually just bad TCP implementation -@end ifnottex -@item @code{SSL_SessConIncon} @tab ssl @tab session data not consistent with connection -@item @code{SSL_X509Violation} @tab ssl @tab blanket X509 error -@item @code{ScanSummary} @tab scan @tab a summary of scanning activity, output once / day -@item @code{SensitiveConnection} @tab conn @tab connection marked "hot", See: @uref{http://www.bro-ids.org/Bro-reference-manual/hot_002dids-Module.html, Reference Manual section on hot ids} for more information. -@item @code{SensitiveDNS_Lookup} @tab dns @tab DNS lookup of sensitive hostname/addr; default list of sensitive hosts = NULL -@item @code{SensitiveLogin} @tab login @tab interactive login using sensitive username (defined in 'hot') -@ifnothtml -@item @code{Sensitive PortmapperAccess} @tab portmapper @tab the given combination of the service looked up via the pormapper, the host requesting the lookup, and the host from which it's requiesting it is deemed sensitive -@end ifnothtml -@ifnottex -@item @code{SensitivePortmapperAccess} @tab portmapper @tab the given combination of the service looked up via the pormapper, the host requesting the lookup, and the host from which it's requiesting it is deemed sensitive -@end ifnottex -@item @code{SensitiveSignature} @tab signatures @tab generic for alarm-worthy -@ifnothtml -@item @code{SensitiveUsername InPassword} @tab login @tab During a login dialog, a sensitive username (e.g., "rewt") was seen in the user's password. This is reported as a notice because it could be that the login analyzer didn't track the authentication dialog correctly, and in fact what it thinks is the user's password is instead the user's username. -@end ifnothtml -@ifnottex -@item @code{SensitiveUsernameInPassword} @tab login @tab During a login dialog, a sensitive username (e.g., "rewt") was seen in the user's password. This is reported as a notice because it could be that the login analyzer didn't track the authentication dialog correctly, and in fact what it thinks is the user's password is instead the user's username. -@end ifnottex -@item @code{SignatureSummary} @tab signatures @tab summarize number of times a host triggered a signature (default = 1/day) -@item @code{SynFloodEnd} @tab synflood @tab end of syn-flood against a certain victim. -A syn-flood is defined to be more than SYNFLOOD_THRESHOLD (default = 15000) new connections -have been reported within the last SYNFLOOD_INTERVAL (default = 60 seconds) for a certain IP. -@item @code{SynFloodStart} @tab synflood @tab start of syn-flood against a certain victim -@item @code{SynFloodStatus} @tab synflood @tab report of ongoing syn-flood -@item @code{TRWAddressScan} @tab trw @tab source flagged as scanner by TRW algorithm -@item @code{TRWScanSummary} @tab trw @tab summary of scanning activities reported by TRW -@ifnothtml -@item @code{Terminating Connection} @tab conn @tab "rst" command sent to connection origin, connection terminated, triggered in the following policies: ftp and login: forbidden user id, hot (connection from host with spoofed IP address) -@end ifnothtml -@ifnottex -@item @code{TerminatingConnection} @tab conn @tab "rst" command sent to connection origin, connection terminated, triggered in the following policies: ftp and login: forbidden user id, hot (connection from host with spoofed IP address?) -@end ifnottex -@item @code{W32B_SourceLocal} @tab blaster @tab report a local W32.Blaster-infected host -@item @code{W32B_SourceRemote} @tab blaster @tab report a remote W32.Blaster-infected host -@item @code{WeirdActivity} @tab Weird @tab generic unusual, alarm-worthy activity -@end multitable -@end quotation - -Note that some of the Notice names start with "ModuleName::" (e.g.: FTP::FTP_BadPort) -and some do not. This is becuase not all of the Bro Analyzers -have been converted to use the @uref{http://www.bro-ids.org/Bro-reference-manual/Module-Facility.html, -Modules facility} yet. Eventually all notices will start with "ModuleName::". - -To get a list of all Notices that your particular Bro configuration might generate, -you can type: -@example - sh . $BROHOME/etc/bro.cfg; bro -z notice $BRO_HOSTNAME.bro -@end example - -@node Notice Actions -@section Notice Actions -@cindex Customizing Notice Actions - -Notices that are deemed particularly important -are called @emph{Alarms}. Alarms are sent to the alarm log file, and to -optionally to @emph{syslog}. - -The standard Bro distribution supports a number of types of @emph{notice actions}, these are: - -@quotation -@multitable @columnfractions .3 .5 -@item @code{NOTICE_IGNORE} @tab do nothing -@item @code{NOTICE_FILE} @tab send to 'notice' file -@item @code{NOTICE_ALARM_ALWAYS} @tab send to alarm file and @emph{syslog} -@item @code{NOTICE_ALARM_PER_CONN} @tab send to alarm file once per connection -@item @code{NOTICE_EMAIL} @tab send to alarm file and send email -@item @code{NOTICE_PAGE} @tab send to alarm file and send to pager -@end multitable -@end quotation - -It is also possible to define your own custom notice actions. - -By default, all notices are set to NOTICE_ALARM_ALWAYS except for the following: -@example -ContentGap, AckAboveHole, AddressDropIgnored, PacketsDropped, -RetransmissionInconsistency -@end example - -By default all Alarms are also sent to @emph{syslog}. To disable this, add: - -@verbatim - redef enable_syslog = F; -@end verbatim - -To change the default notice action for a given notice, add something like this to your @file{site/brohost.bro} file: - -@verbatim - redef notice_action_filters += { - [[WeirdActivity, ContentGap]] = ignore_notice, - }; -@end verbatim - -This will cause the Notices @code{WeirdActivity} and @code{ContentGap} to no longer get logged anywhere. -To send these Notices to the Notice log file only, and not to the Alarm log, add this: - -@verbatim - redef notice_action_filters += { - [[WeirdActivity, ContentGap]] = file_notice, - }; -@end verbatim - -For NOTICE_EMAIL and NOTICE_PAGE, -email is sent using the script specified by the mail_script variable -(default: "mail_notice.sh"), which must be in $PATH. -To activate this, $mail_dest must be set. -Email is only sent if Bro is reading live traffic. - -For example, to send email on TerminatingConnection and FTP_Sensitive notices, add -something like this: - -@verbatim -redef mail_dest = "youremail@yoursite.edu"; - -redef notice_action_filters += { - [[TerminatingConnection, FTP::FTP_Sensitive]] = send_email_notice, -}; - -@end verbatim - - -@comment XXX what if someone wanted to define their own new notice action. What would they do? - -@node Customizing Builtin Policy -@section Customizing Builtin Policy -@cindex Customizing Builtin Policy - -The default policy scripts for Bro are all in $BROHOME/policy. Remember that -these files should @strong{never} be -edited, as your edits will be lost when you upgrade Bro. To customize Bro for your site, you -should make all your changes in $BROHOME/site. Many simple changes just require you -to @emph{redefine} (using the @uref{ -http://www.bro-ids.org/Bro-reference-manual/Variables-Overview.html, -@code{redef}} operator, -a Bro constant from a standard policy script with your own custom value. You can -also write your own custom script to do whatever you want. - -Here are some example of the types of things you may want to customize. - -To add "guest" to the list of -@uref{http://www.bro-ids.org/Bro-reference-manual/hot_002dids-Module.html, forbidden_ids} -(user names that generate a login alarm), you -do this: - -@verbatim - redef forbidden_ids += { "guest", }; -@end verbatim - -To add a new rootkit string to HTTP -@uref{http://www.bro-ids.org/Bro-reference-manual/http_002drequestbro.html, sensitive_URIs}: -@verbatim - redef HTTP::sensitive_URIs += /^.*rootdown.pl.*$/; -@end verbatim - - -@node Writing New Policy -@section Writing New Policy -@cindex Writing New Policy - -For example, if your site only allows external http and mail to a small, -controlled lists of hosts, you could write a new .bro file containing this: - -@verbatim -const web_servers = { www.lbl.gov, www.bro-ids.org, }; -const mail_servers = { smtp.lbl.gov, smtp2.lbl.gov, }; - -const allow_my_services: set[addr, port] = { - [mail_servers, smtp], - [web_servers, http], -}; -@end verbatim - -Bro can then generate an Alarm or even terminate the connection for policy violations. -For example: - -@verbatim - -event connection_established(c: connection) -{ - local id = c$id; - local service = id$resp_p; - local inbound = is_local_addr(id$resp_h); - - if ( inbound && [id$resp_h, service] !in allow_my_services ) - NOTICE ([$note=SensitiveConnection, $conn=c, - $msg=fmt("hot: %s", full_id_string(c)) ]); - if ( inbound && service in terminate_successful_inbound_service ) - terminate_connection(c); -} -@end verbatim - -To test this you might do the following. First, -generate some "offline" data to play with: - -@example - # tcpdump -s 0 -w trace.out port smtp or port http -@end example - -Kill off the tcpdump after capturing traffic for a few minutes (use ctrl-C). -Then add the above Bro code to your hostname.bro file, and -run Bro against this captured trace file: - -@example - # setenv BROHOME /usr/local/bro - # setenv BROPATH $BROHOME/site:$BROHOME/policy - # bro -r trace.out hostname.bro -@end example - - - - -@node Signatures -@section Signatures -@cindex Signatures - -@include Bro-signatures.texi - -@node Tuning Scan Detection -@section Tuning Scan Detection -@cindex Tuning Scan Detection - -There are a large number of tunable parameters in the scan analyzer, all of which -are described in @uref{http://www.bro-ids.org/Bro-reference-manual/scan-Analyzer.html, -the reference manual}. Most of these parameters should be fine for all sites. The only settings -that you may want to tune are: - -@itemize -@item report_peer_scan: Generate a log message whenever a remote host has attempted to connect to the given number of distinct hosts. Default = @{ 100, 1000, 10000, @}. -@item report_outbound_peer_scan: Generate a log message whenever a local host has attempted to connect to the given number of remost hosts. Default = @{ 100, 1000, @}. - -@item skip_services: list of ports to ignore scans on, because they often gets scanned -by legitimate (or at least common) services. The default list can be found -in the brolite.bro file. -@end itemize - -If you want enable ICMP scan detection, set these: - -@example -redef ICMP::detect_scans = T; -redef ICMP::scan_threshold = 100; -@end example - -@node Other Customizations -@section Other Customizations -@cindex Scan Thresholds - -There are a number of things you may wish to customize. - -@strong{hot_ids} - -The policy file @uref{http://www.bro-ids.org/Bro-reference-manual/hot_002dids-Module.html, -@file{hot-ids.bro}} contains a number of constants that you -might want to customize by "redef"ing them in your brohost.bro policy file. -These are all used to generate FTP and login alarms (SensitiveConnection Notice) -for suspicious users. -The user ID's that are in @code{hot_ids} and not in @code{always_hot_ids} -are only hot upon successful login. For details see the -@uref{http://www.bro-ids.org/Bro-reference-manual/hot_002dids-Module.html, -Bro Reference Manual}. - -@quotation -@multitable @columnfractions .25 .6 -@item @strong{constant} @tab @strong{Defaults} -@item forbidden_ids @tab "uucp", "daemon", "rewt", "nuucp", - "EZsetup", "OutOfBox", "4Dgifts", - "ezsetup", "outofbox", "4dgifts", "sgiweb" - "r00t", "ruut", "bomb", "backdoor", - "bionic", "warhead", "check_mate", "checkmate", "check_made", - "themage", "darkmage", "y0uar3ownd", "netfrack", "netphrack" -@item always_hot_ids @tab "lp", "demos", - "retro", "milk", "moof", "own", "gdm", "anacnd", - + forbidden_ids -@item hot_ids @tab "root", "system", "smtp", "sysadm", "diag", "sysdiag", "sundiag", - "sync", "tutor", "tour", - "operator", "sys", "toor", "issadmin", "msql", "sysop", "sysoper", - + always_hot_ids - -@end multitable -@end quotation - -@strong{Input/Output Strings} - -The policy files login.bro and ftp.bro both contain a list of input and output strings -that indicate suspicious activity. In you wish to add anything to this list, you -may want to @code{redef} one of these. -@example -login.bro: see @uref{http://www.bro-ids.org/Bro-reference-manual/login-variables.html, -input_trouble and output_trouble} -ftp.bro: see @uref{http://www.bro-ids.org/Bro-reference-manual/ftp-variables.html, -ftp_hot_files} -@end example - -@strong{Sensitive URIs} - -The policy file http-request.bro contain a list of http URI's -that indicate suspicious activity. In you wish to add anything to this list, you -may want to @code{redef} one of these. - -@comment XXX need to explain how this relates to signatures, and when to use each. - -@example -sensitive_URIs -sensitive_post_URIs -@end example - -@strong{Log Files} - -@code{redef} this to rotate the log files every N seconds -@example -log_rotate_interval (default = 0 sec, don't rotate) -@end example - -@code{redef} this to rotate the log files when they get this big -@example -log_max_size (default = 250e6, rotate when any file exceeds 250 MB) -@end example - -@comment XXX: what else should we document here? - diff --git a/doc/user-manual/Bro-dir-files.texi b/doc/user-manual/Bro-dir-files.texi deleted file mode 100644 index 9258f517d9..0000000000 --- a/doc/user-manual/Bro-dir-files.texi +++ /dev/null @@ -1,647 +0,0 @@ -@float Figure, The Bro Directory Structure -@image{BroDir} -@caption{The Bro Directory Structure} -@end float - -@menu -* The bro/bin Directory :: -* The bro/etc Directory :: -* The bro/var Directory :: -* The bro/scripts Directory :: -* The bro/policy Directory :: -@c * The bro/sigs Directory :: -* The bro/site Directory :: -* The bro/logs Directory :: -* The bro/archive Directory :: -* Other Files :: -@end menu -@cindex directory structure - -@node The bro/bin Directory -@appendixsec The bro/bin Directory -@cindex bro/bin Directory -@cindex adtrace executible -@c @cindex bdcat executible -@c @cindex bifcl executible -@cindex bro executible -@cindex cf executible -@cindex rst executible - -The bin directory is the storage area for executable binary -files used by Bro. - -@subsubheading adtrace -adtrace retrieves MAC and IP address information from -tcpdump trace files -@quotation - usage: -@example - adtrace -@end example -@end quotation - -@ignore ->>>>>>>>>>>>>>>>>>>>>>>> -@subsubheading bdcat -In the Bro policy language, the files Bro access can be encrypted (see -the &encrypt attribute in the technical manual). bdcat is used to -decrypt the files. -@comment add URL link to &encrypt attribute in the technical manual - -@subsubheading bifcl -Built-in functions (.bif files) are implemented in C++ and -can be called by Bro policy scripts. The bif compiler, -bifcl, takes a .bif file and generates the corresponding -C++ segments and Bro language declarations, so that each -function only needs be written once in a .bif file and the -actual C++/Bro code will be automatically generated. -<<<<<<<<<<<<<<<<<<<<<<<< -@end ignore - -@subsubheading bro -This program is the primary Bro executable. -Full use of the bro command is documented in the technical -manual. -@comment add URL link to Bro command in technical manual - -@subsubheading cf -A program that converts UNIX epoch time into a conventional -date. Most of the raw Bro logs record UNIX epoch time as -the timestamp for their records. Piping the file through -cf will convert the time. Full use of cf is documented in -the technical manual. -@comment add URL link to cf in technical manual - -@subsubheading rst -A program that Bro calls to form and send a reset packet -which will tear down a tcp connection. The use of rst is -documented in the Technical Manual and in chapter ### of -the User Manual. -@comment add URL link to rst in Technical Manual -@comment fix ### with correct chapter - -@node The bro/etc Directory -@appendixsec The bro/etc Directory -@cindex alert_scores -@cindex bro/etc Directory -@cindex bro.cfg file -@cindex bro.cfg.example file -@cindex bro.rc file -@cindex bro.rc-hooks.sh file -@cindex signature_scores -@cindex VERSION file - -Configuration and other ancillary files are stored in the -etc directory. These files are usually changed by -supplimentary configuration tools supplied with the Bro -distribution. Direct editing of these files is discouraged. -If direct edits are made, the changes may be reversed or -deleted during subsequent Bro updates. - -@subsubheading alert_scores -This file contains ranking numbers for alarms (the use of the term "alert" is -vestigial and will be changed in the future). The ranking numbers are used as part of the ranking system for determining the success likelihood of an incident triggering a specific alarm. - -@subsubheading bro.cfg -This file contains configuration criteria for operational -parameters. Most of the parameters are set during the -installation process and can be changed using the bro- -config script. -@comment add URL link to bro-config script - -@subsubheading bro.cfg.example -A annotated, generic bro.cfg file. This file is not used -by Bro. It is supplied for documentation purposes. - -@subsubheading bro.rc -This is the script for controlled starting and stopping of -Bro. See section ### for its use. -@comment fix ### with correct chapter -@comment add URL link to start/stop section - -@subsubheading bro.rc-hooks.sh -This script is called by bro.rc at various points during -the starting and stopping of Bro. It is presented as an -interface for customizations into the start and stop -process. -@comment need instruction on how to add hooks - -@subsubheading signature_scores -This file contains ranking numbers for signatures. The ranking numbers are used as part of the ranking system for determining the success likelyhood of an incident triggering a specific signature. - -@subsubheading VERSION -A file containing the Bro version number for the installed -distribution. - -@node The bro/var Directory -@section The bro/var Directory -@cindex bro/var Directory -@cindex autorestart file -@cindex pid file -@cindex start_time file - -Temporary information about the current Bro instance is -stored in the var directory. - -@subsubheading autorestart -Contains the word "ON" if Bro is configured to autorestart. - -@subsubheading pid -Contains the process ID number for the current instance of -Bro. - -@subsubheading start_time -Contains the date and time when the current instance of Bro -was started. - -@node The bro/scripts Directory -@appendixsec The bro/scripts Directory -@cindex bro-config script -@cindex bro/scripts Directory -@cindex bro-logchk.pl script -@cindex bro_log_compress.sh script -@cindex host-grep script -@cindex host-to-addrs script -@c @cindex hot-report script -@cindex ip-grep script -@c @cindex mon-report script -@c @cindex mvlog script -@cindex site-report.pl script -@cindex bro/scripts/pm Directory -@cindex bro/pm Directory - -This directory contains a number of auxiliary scripts used -to suppliment Bro's operation. - -@subsubheading bro-config -A utility script for changing the Bro operational -parameters in the bro.cfg file. -@comment add URL link to installation instructions - -@subsubheading bro-logchk.pl -@comment needs to be fixed or removed -@emph{Currently, this file does not work}@* -A utility program for searching ftp and http log files for -activity by specific ip addresses. -@quotation -Usage: -@verbatim - bro-logchk.pl -[hrDFHds] -f filename -a ipaddr -x ipaddr - -h print this usage information - -F using ftp log - -H using http log - -r try to resolve IP addresses to hostnames - -f file log file to parse - -a ipaddr only output connections from this address - -s only want matching source address (used with -a ) - -d only want matching dest address (used with -a ) - -D debug option - -x ipaddr exclude connections from this address -@end verbatim -@end quotation - -@subsubheading bro_log_compress.sh -A very simple script written to manage log and coredump files. By -default it compresses log files older than 30 days and sends them to -the archive directory; it deletes log files older than 60 days; and it -deletes coredump files older than 4 days. -@quotation -Restrictions: -@itemize - @item Must be run from a user account that has read/write/execute access to files in the $BROHOME directory. -@end itemize -@end quotation - -@subsubheading host-grep -Greps a Bro connection summary log on stdin for two given hostnames. -@quotation -Usage: -@example - host-grep [-a] hostname hostname < connection_log - If -a is specified then we only want lines with *all* of the listed hosts. -@end example -Restrictions: -@itemize - @item Must have $BROHOME/scripts included in the PATH environment variable. - @item Will only work with hostnames. ip addresses are not accepted - @item Uses host-to-addrs and ip-grep scripts -@end itemize -@end quotation - -@subsubheading host-to-addrs -Finds all ip addresses associated with a given hostname. -@quotation -Usage: -@example - host-to-addrs hostname -@end example -Restrictions: -@itemize - @item Must have $BROHOME/scripts included in the PATH environment variable. - @item Will only work with hostnames. IP addresses are not accepted -@end itemize -@end quotation - -@ignore ->>>>>>>>>>>>>>>>>>>>>>>>>> -@subsubheading hot-report -@comment needs to be fixed or removed -@emph{Currently, this file does not work}@* -Obsolete report generator -<<<<<<<<<<<<<<<<<<<<<<<<<< -@end ignore - -@subsubheading ip-grep -Returns an exact grep pattern for matching the IP addresses of the -given hosts -@quotation -Usage: -@example -ip-grep hostname hostname ... -@end example -Restrictions: -@itemize - @item Must have $BROHOME/scripts included in the PATH environment variable. - @item Will only work with hostnames. ip addresses are not accepted - @item Uses host-to-addrs script -@end itemize -@end quotation - -@ignore ->>>>>>>>>>>>>>>>>>>>>>>>>> -subsubheading mon-report -@comment needs to be fixed or removed -@emph{Currently, this file does not work}@* -Obsolete report generator - -@subsubheading mvlog -@comment needs to be fixed or removed -@emph{Currently, this file does not work}@* -Rotates log files every six hours by gzipping them and moving them into directories $BROHOME/logs//. The six hour interval is adjustable. See the file header for more info. -<<<<<<<<<<<<<<<<<<<<<<<<<< -@end ignore - -@subsubheading site-report.pl -This script produces the daily consolidated site report. By default, it is run daily via the cron job submitted by the bro user via files in /var/cron/tabs. - -@subsubheading The bro/scripts/pm Directory -This directory contains perl modules to support the perl scripts in the scripts directory. - -@node The bro/policy Directory -@appendixsec The bro/policy Directory -@cindex bro/policy Directory -This directory contains all standard Bro policy files. For more information about the policy files see section ###, Policy -@comment need section number and name of section -@comment add URL link to Policy section - -Signature support files: - -@subsubheading sig-addendum.sig -This file contains small support utilities that are used in the implementation of Bro signatures. - -@subsubheading sig-functions.bro -@emph{To be completed} -@comment need to add definition - -@subsubheading sig-action.bro -@emph{To be completed} -@comment need to add definition - - -Policy files: -@itemize -@item active.bro -@item alarm.bro -@item analy.bro -@item anon.bro -@item backdoor.bro -@item blaster.bro -@item bro.bif.bro -@item bro.init -@item brolite.bro -@item capture-events.bro -@item checkpoint.bro -@item common-rw.bif.bro -@item conn-id.bro -@item conn.bro -@item const.bif.bro -@item contents.bro -@item cpu-adapt.bro -@item demux.bro -@item dns-info.bro -@item dns-lookup.bro -@item dns.bro -@item drop-adapt.bro -@item event.bif.bro -@item finger-rw.bif.bro -@item finger.bro -@item flag-irc.bro -@item flag-warez.bro -@item frag.bro -@item ftp-anonymizer.bro -@item ftp-cmd-arg.bro -@item ftp-reply-pattern.bro -@item ftp-rw.bif.bro -@item ftp-safe-words.bro -@item ftp.bro -@item gnutella.bro -@item hand-over.bro -@item hot-ids.bro -@item hot.bro -@item http-abstract.bro -@item http-body.bro -@item http-entity.bro -@item http-event.bro -@item http-header.bro -@item http-reply.bro -@item http-request.bro -@item http-rewriter.bro -@item http-rw.bif.bro -@item http.bro -@item icmp.bro -@item ident-rewriter.bro -@item ident-rw.bif.bro -@item ident.bro -@item inactivity.bro -@item interconn.bro -@item listen-clear.bro -@item listen-ssl.bro -@item load-level.bro -@item login.bro -@item mime.bro -@item mt.bro -@item netstats.bro -@item notice.bro -@item notice.bro.old -@item ntp.bro -@item pcap.bro -@item pkt-profile.bro -@item port-name.bro -@item portmapper.bro -@item print-filter.bro -@item print-globals.bro -@item print-resources.bro -@item print-sig-states.bro -@item profiling.bro -@item reduce-memory.bro -@item remote-pcap.bro -@item remote-print.bro -@item remote.bro -@item scan.bro -@item secondary-filter.bro -@item signatures.bro -@item signatures.bro.old -@item site.bro -@item smtp-relay.bro -@item smtp-rewriter.bro -@item smtp-rw.bif.bro -@item smtp.bro -@item snort.bro -@item software.bro -@item ssh-stepping.bro -@item ssh.bro -@item ssl-alerts.bro -@item ssl-ciphers.bro -@item ssl-errors.bro -@item ssl-worm.bro -@item ssl.bro -@item stats.bro -@item stepping.bro -@item synflood.bro -@item tcp.bro -@item tftp.bro -@item trw.bro -@item udp.bro -@item vlan.bro -@item weird.bro -@item worm.bro -@end itemize - -@ignore ->>>>>>>>>>>>>>>>>>>>>>>> -@node The bro/sigs Directory -@appendixsec The bro/sigs Directory -@cindex bro/sigs Directory -@cindex ex.web-rules.sig -@cindex snort-default.sig -@cindex ssl-worm.sig -@cindex worm.sig - -@subsubheading ex.web-rules.sig -@*This file contains a subset of Snort's signatures pertaining to http activity that have been converted into Bro signature language. - -@subsubheading snort-default.sig -@*This file contains a subset of Snort's signatures that have been converted into Bro signature language. - -@subsubheading ssl-worm.sig -@*This file contains Bro signatures to detect the Apache/SSL worm. - -@subsubheading worm.sig -@*This file contains Bro signatures to detect several different worms. -<<<<<<<<<<<<<<<<<<<<<<<<< -@end ignore - -@node The bro/site Directory -@appendixsec The bro/site Directory -@cindex bro/site Directory -@cindex s2b-addendum-sigs.sig -@cindex s2b-functions.bro -@cindex s2b-sigaction.bro -@cindex s2b.sig - -@subsubheading signatures.sig -@emph{To be completed} -@comment need to add definition - -@node The bro/logs Directory -@appendixsec The bro/logs Directory -@cindex bro/logs Directory -@cindex alarm log -@cindex conn log -@cindex ftp log -@cindex http log -@cindex info log -@cindex notice log -@cindex signatures log -@cindex smtp log -@cindex software log -@cindex weird log -@cindex worm log -@cindex .state -@cindex active_log - - -All logs take the form@* -@example -@emph{type.hostname.start_date/time-end_date/time} -@end example -The date/time stamps for -each record in the files are always in UNIX (ticks since -epoch) format. -@*@* -@emph{type} is one of the following: - -@subsubheading alarm -Network occurrences that are determined to be of high -importance will be written into the alarm file. The -determination is made by the Bro policy scripts. Local -site modifications can override default Bro alarms or -create new ones that are site specific. -Each entry contains the date/time, the alarm type, and a -description of the alarm. -This file is usually the "starting point" for -investigation. Each alarm should be evaluated for further -follow-up action. - -@subsubheading conn -All network connections detected by Bro are recorded in -this file. A connection is defined by an initial packet -that attempts to set up a session and all subsequent -packets that take part in the session. Initial packets -that fail to set up a session are also recorded as -connections and are tagged with a failure state that -designates the reason for failure. -Each entry contains the following data describing the -connection: date/time, the duration of the connection, the -local and remote ip addresses and ports, bytes transferred -in each direction, the transport protocol (udp, tcp), the -final state of the connection, and other information -describing the connection. -This file is often used in forensic analysis to determine -network activity by a suspect host beyond the immediate -alarm. -@comment add URL link to conn file description in tech manual - -@subsubheading ftp -All transactions involving the well known ftp control port -(21) are recorded into this file. Each entry is marked by -an arbitrary session number, allowing full ftp control -sessions to be reconstructed. -Each entry contains the date/time, a session number, and -ftp connection information or the specific ftp commands -transferred. -This file is often used to examine details of suspect ftp -sessions. - -@subsubheading http -All transaction involving the well known http ports (80, -8000, 8080) are recorded into this file. Each entry is -marked by an arbitrary session number, allowing the full -http session to reconstructed -Each entry contains the date/time, a session number, and -http connection information or the specific http commands -transferred. -This file is often used to examine details of suspect web -sessions. - -@subsubheading info -This file contains information concerning the operation of -Bro during the time interval covered by the file. The -entries will consist of the Bro version number, startup -information, and Bro runtime warnings and errors. -This file is helpful in troubleshooting Bro operational -difficulties. - -@subsubheading notice -Network occurrences that are determined to be of nominal -importance will be written into the notice file. The -determination is made by the Bro policy scripts. Local -site modifications can override default Bro alarms or -create new ones that are site specific. The notice files -are similar to the alarm files, but of lesser importance. -Each entry contains the date/time, a notice type, a notice -action, the local and remote ip addresses and ports. -Optionally, depending on the type of notice, an entry might -contain information about user, filename, method, URL, and -other messages. -This file alerts to occurrences that are worth noting, but -do not warrant an alarm. - -@subsubheading signatures -This file contains information associated with specific -signature matches. These matches do not necessarily -correspond to all alarms or notices, only to those that are -triggered by a signature. -Each entry contains the date/time, a description of the -signature, the local and remote ip addresses and ports, -the signature id number (if available), a description of -the signature trigger, a portion of the offending payload -data, a count of that particular signature, and a count of -the number of involved hosts. -This file gives details that are helpful in evaluating if -an event triggered by a signature match is a false- -positive. - -@subsubheading smtp -All transactions involving the well known smtp port (25) -are recorded into this file. Each entry is marked by an -arbitrary session number, allowing full smtp sessions to be -reconstructed. -Each entry contains the date/time, a session number, and -smtp connection information or the specific smtp commands -transferred. -This file is often used to examine details of suspect mail -sessions. - -@subsubheading software -This file is a record of all unique host/software pairs -detected by Bro during the time interval covered by the -file. -Each entry in the file contains the date/time, the ip -address of the host, and information about the software -detected. -This file can be useful for cataloging network software. -However, population of this file on a busy network often -results in a huge number of entries. Since the relative -daily usefulness of the file usually does not warrant the -disk space it consumes, the software file is turned off by -default. It can be turned on by <<>> -@comment needs instructions on how to turn on software file - -@subsubheading weird -Network events that are unusual or exceptional are recorded -in this file. A number of these events "shouldn't" or even -"can't" happen according to accepted protocol definitions, -yet they do. -Each entry in the file contains the date/time, the local -and remote ip addresses and ports, and a short description -of the weird activity. -This file is useful for detecting odd behavior that might -normally "fly under the radar" and also for getting a -general sense of the amount of "garbage" that is on the -network. - -@subsubheading worm -Bro's worm.bro policy detects patterns generated by -specific worms and records the instance in this file. -Currently, the worms detected are code red1, code red2, -nimda, and slammer. -Each entry in the file contains the date/time, the worm -detected, and the source ip address of the worm. -This file is useful for spotting hosts that have been -infected with worms. - -@*@*Other files in the /logs directory are: - -@subsubheading .state -@emph{To be completed} -@comment need to add definition - -@subsubheading active_log -@emph{To be completed} -@comment need to add definition - -@node The bro/archive Directory -@appendixsec The bro/archive Directory -@cindex bro/archive Directory - -The archive directory is initially empty. The script -bro/script/bro_log_compress.sh populates the archive directory -with compressed log files. -@comment add URL link to bro_log_compress.sh - -@node Other Files -@appendixsec Other Files -@comment need to add other files outside of the Bro directory tree - - diff --git a/doc/user-manual/Bro-hardware.texi b/doc/user-manual/Bro-hardware.texi deleted file mode 100644 index 4a76c7bcbb..0000000000 --- a/doc/user-manual/Bro-hardware.texi +++ /dev/null @@ -1,94 +0,0 @@ - -@menu -* Number and Type of Machines Needed:: -* Hard Drive and Controller Considerations:: -* NICs:: -* Taps:: -* ACL Mechanisms:: -@end menu -@comment ******************************************** - -@node Number and Type of Machines Needed -@section Number and Type of Machines Needed -@cindex Host issues - - -Bro won't run well unless you use suitable hardware. This section of the Bro User Manual -describes the many hardware-related issues with which you'll need to deal if Bro is to run -optimally. - - -The better the equipment, the better Bro will run, so getting the best equipment you can afford is -a good idea. In particular the speed of the CPU and motherboard will affect Bro's performance in -filtering, analyzing, reacting and storing the network data that it encounters. Ideally the CPU -should have a processing speed of around 1GHz or higher and the motherboard should be at least -500MHz. The CPU and motherboard should be reliable and durable, and if possible obtain -machines that support dual CPUs. RAM is also extremely important in dealing with the large -amounts of network throughput without packet drops; a minimum of 1 GB of RAM is thus -recommended, other than for small networks, with 2 GB approaching the optimal. The amount of motherboard BIOS memory -can also make a big difference for Bro performance, and having more than one network port is -also a very good idea, as explained shortly. - -The number of machines you will need depends on the scope of your Bro deployment (e.g., how -many protocols you want to analyze, how much traffic Bro will need to process, whether you -want to store packet capture data, and so on). No matter how small a deployment you have, you -will probably at a minimum want two machines, one for bulk recording/data capture and one for -analyzing live Bro data. With large deployments Bro is likely to work best with a number of -machines (perhaps up to five), each dedicated to a specific task. In this latter case it may be best -to have one machine can perform data capture, another to process and store connection -summaries, still another to run policy scripts, and a few redundant machines for the sake of -operational continuity. - - -@comment ******************************************** - -@node Hard Drive and Controller Considerations -@section Hard Drive and Controller Considerations -@cindex Disk Issues -@cindex Controller Issues - -Every Bro machine needs to have at least one large capacity hard drive, a minimum of 60 to 80 -GB of storage (and more in the case of the bulb trace host), and possible a second hard drive, too. -Bro output files can fill a small capacity hard drive quickly, and the packet capture output can be -voluminous if Bro is engaging in a considerable amount of analysis because the network -throughput rate is high or a large amount of anomalous packets are traversing the network where -Bro is placed. - -What type of hard drive is best? Although SCSI (Small Computer System Interface), SATA -(Serial ATA) or IDE (Integrated Drive Electronics) disks may all potentially prove satisfactory -from a performance standpoint, many people who run Bro choose IDE if they run Bro on -FreeBSD. Why -- IDE has been tested in connection with FreeBSD more extensively than the -other types of disk hardware. Obtaining a high-end disk controller card is also advantageous to -performance. - - - -@comment ******************************************** - -@node NICs -@section NICs -@cindex NICs - -Bro deployments require at least two NICs, one for capturing network data and the other for -interfacing with the network so that Bro can be remotely administered. Three NICs can also be -used, with two of them for acquiring network data (to minimize data loss resulting from packet or -frame errors) and one for remote administration. High-end NICs are recommended in that they -generally result in far fewer packet drops or losses than do inexpensive ones. A NIC speed of -about 1 Gb per second is usually more than sufficient. No more than two NICs for capturing -network data is necessary. - -If two network data acquisition NICs are used, each needs to be suited for the type of network to -which it will be attached. -SysKonnect SK-9844 Gigabit Ethernet cards are recommended because they have been tested extensively with Bro. -Having identical NICs is desirable from a management standpoint. - -@comment ******************************************** -@node Taps -@section Taps -@cindex Taps - -@comment ******************************************** -@node ACL Mechanisms -@section ACL Mechanisms -@cindex ACL Mechanisms - diff --git a/doc/user-manual/Bro-installation.texi b/doc/user-manual/Bro-installation.texi deleted file mode 100644 index 0e403b80f0..0000000000 --- a/doc/user-manual/Bro-installation.texi +++ /dev/null @@ -1,432 +0,0 @@ - -@menu -* Download :: -* Install :: -* Bro Configuration :: -* OS Configuration :: -* Encrypted Reports :: -* Generating Reports on a Separate Host :: -@end menu - -@node Download -@section Download -@cindex download - -Download Bro from: @uref{http://www.bro-ids.org/} - -You can unpack the distribution anywhere except into the directory -you plan to install into. To untar the file, type: - -@example -tar xzf bro-pub-0.9-current.tar.gz -@end example - -@node Install -@section Install -@cindex BROHOME - -You'll need to collect the following information before beginning the installation. - -@itemize -@item localnets: a list of local subnets for your network. Bro needs to know which networks are "internal" and which are "external". - -@item interface names: the names of the capture interfaces in your host (e.g. sk0 or en1). Use @code{ifconfig -a} to get the list of all network interfaces on your Bro host. -@end itemize - -If you want to use Bro's periodic email report feature, you'll also need: -@itemize -@item email list: a list of email addresses to send the reports to. - -@item PGP keys: if you want to encrypt all email reports, the location of the -@uref{http://www.gnupg.org/,GPG keyring} of all recipients. -@end itemize - -Bro is easy to install. Log in as @code{root}, and type: -@example -./configure -@end example -By default Bro is installed in @code{/usr/local/bro}. -This location -is referred to in the rest of the manual as @code{$BROHOME}. -To install Bro in a location other than @file{/usr/local/bro}, use: -@example -./configure --prefix=/path/to/bro -@end example -By default Bro uses the version of libpcap that is installed on -the system. If your system version older than version 0.7.2, you can run configure -Bro with --enable-shippedpcap to use the version of libpcap that comes packaged -with Bro. For example: -@example -./configure --enable-shippedpcap -@end example - -Then type: -@example -make -make install -@end example -or -@example -make install-brolite -@end example - -Use @emph{make install} to install all the Bro binaries and policy script files. Use -@emph{make install-brolite} to also run the configuration script (described in the next section) and install all the configuration files and @code{cron} jobs. @emph{make install} can be run as any user, but @emph{make install-brolite} requires -you to be root. - -To update an existing Bro installation with new binaries and standard policy files, instead -of @code{"make install"} do a @code{"make update"}. This will preserve all your local customizations. - -Then add @code{$BROHOME/bin} and @code{$BROHOME/scripts} to your $PATH to use -Bro's utilities and scripts. - -Also note that this documentation is installed in @code{$BROHOME/docs} as both HTML and PDF versions. - -@node Bro Configuration -@section Bro Configuration -@cindex bro_config -@cindex bro.cfg - -The @emph{Bro-Lite} configuration script can be used to automatically configure (or reconfigure) Bro for you. It -checks your system's BPF settings, creates a "bro" user account, installs -a script to start Bro at boot time, installs the report generation package, -and installs a number of @code{cron} jobs -to checkpoint Bro every night, run periodic reports, and manage log files. - -To run this configuration script type: -@example -bro_config -@end example - - -This script creates the file @file{$BROHOME/etc/bro.cfg}. -@code{bro_config} will ask a number of simple questions. Note -that the full functionality of this script is only supported -under FreeBSD. Some additional configuration may need to be -done by hand under Linux. - -Sample output of @code{bro_config}, along with explanation, is shown below: - -@quotation - -@verbatim -Running Bro Configuration Utility -Checking interfaces .... Done. -Reading /usr/local/bro/etc/bro.cfg.example for defaults. -@end verbatim -@quotation -@quotation -The @code{bro_config} script looks first at ./bro.cfg, then /usr/local/bro/etc, -for default values to use below. -@end quotation -@end quotation - -@verbatim -Bro Log archive location [/usr/local/bro/archive] -@end verbatim -@quotation -@quotation -This is the directory where log file archives are kept. -If you expect the log files to be very large, it is recommended to put these in a separate disk partition. -@end quotation -@end quotation - -@verbatim -User id to install and run Bro under [bro] -@end verbatim -@quotation -@quotation -@code{bro_config} will create a new user account with this username if the user does not exist. -@end quotation -@end quotation - -@verbatim -Interface names to listen on. [en1,en2] -@end verbatim -@quotation -@quotation -@code{bro_config} looks for all network interfaces and does a short test to determine which interfaces see the most traffic, and selects these interfaces as the default. -@end quotation -@end quotation - -@verbatim -Site name for reports (i.e. LBNL, FOO.COM, BAZ.ORG) [] -Starting Report Time [0600] -Report interval (in hours) [24] -Email addresses for reports [bro@localhost] -@end verbatim - -@quotation -@quotation -Daily reports will be created. -Enter the site name you want to appear at the top and in the subject of all email reports. -The "start time" and "interval" define the window of -network activity that the daily report will cover, starting at "Starting Report Time" and -lasting through "Report interval". The start time should be entered using 24hr clock notation. -For example: 12:30AM = 0030, 2PM = 1400 -@end quotation -@end quotation - - -@verbatim -Do you want to encrypt the email reports (Y/N) [N] -Y -@end verbatim -@quotation -@quotation -If you want the email reports encrypted, you will need to set up GPG (@uref{http://www.gnupg.org}) -and create a GPG keyring containing the public keys of all email recipients. Instructions -for this are in @ref{Encrypted Reports}. -@emph{Note: PGP keys are compatible with GPG, but the Bro supplied scripts -require GPG, not PGP}. - -@end quotation -@end quotation - -@verbatim -Running script to determine your local subnets ... -Your Local subnets [198.129.224.1/32] -@end verbatim - -@quotation -Bro needs to know a list of your local subnets. @code{bro_config} runs a tool -that attempts to discover this automatically. -You should always verify the results of this tool. The format is a list of subnet/significant -bits of address. -For example: 131.243.0.0/16, 198.128.0.0/18, 198.129.224.1/32 -This information will be stored in the file @code{$BROHOME/site/local.site.bro} -@end quotation - -@verbatim -Saving settings to file: /usr/local/bro/etc/bro.cfg -Bro configuration finished. -To change these values, you can rerun bro_config at any time. -@end verbatim -@quotation -Indicates that the script finished successfully. -@end quotation - -@end quotation - -For site monitoring very high traffic rates on Gigabit Ethernet, there is some -additional system tuning that should be done. See the @ref{Performance Tuning} -section for more details. - -To reconfigure Bro, run: -@example -BRHOME/scripts/bro_config -@end example - -This will update your @file{/usr/local/bro/etc/bro.cfg} file. You can also edit this file using your favorite editor if you prefer. - -For other site customizations, you can edit the file $BROHOME/site/brohost.bro. -For example, to tell bro to not look at traffic for host 198.162.44.66, add: -@verbatim - redef restrict_filters += { - ["ignore host 198.162.44.66 "] = - "not host 198.162.44.66" - }; -@end verbatim - -More details are available in the section on @ref{Customizing Bro}. - -@node OS Configuration -@section OS Configuration - -This section contains information on critical OS tuning items. More detailed -tuning information can be found in the section on @ref{Performance Tuning}. - -@strong{FreeBSD Configuration} - -The standard FreeBSD kernel imposes a per-process limit of 512 MB of memory. -This is not enough for most Bro installations. - -To check your current limit type: - -@smallexample -limits -H -@end smallexample - -Unfortunately the only way to increase this limit in FreeBSD 4.x -is to reconfigure and rebuild the kernel. -In FreeBSD 5.x it is much easier. Just increase -@code{kern.maxdsiz} in @file{/boot/defaults/loader.conf} and reboot. -For example: -@smallexample -kern.maxdsiz="2G" -@end smallexample - - -and look at the @code{datasize} setting, which should be the same -as your amount of RAM. If this is not true, see section @ref{Hardware and OS Tuning} -for information on fixing this. - -For FreeBSD 5.3+, BPF devices are no longer created using MAKEDEV, but rather are -created on demand. This is configured automatically by running '@code{make install-brolite}', -or you can figure it by hand by adding the following to @code{/etc/rc.local} - -@verbatim -devfs ruleset 15 -devfs rule add 15 path 'bpf*' mode 660 user bro -@end verbatim - - -@strong{Linux Configuration} - -You may want increase these for a high traffic environment. - -@emph{not done: need to get recommended values for these}: - -@verbatim -/proc/sys/net/core/rmem_default (IP-Stack socket receive queue) -/proc/sys/net/core/rmem_max (similar to rmem_default) -/proc/sys/net/core/netdev_max_backlog (queue between driver and socket) -@end verbatim - - -@node Encrypted Reports -@section Encrypted Reports -@cindex GPG - -Bro can use GPG (@uref{http://www.gnupg.org/}) to encrypt -the reports that it sends. To have Bro encrypt your -reports you must have said "yes" to the bro_config question to -encrypt your reports. -Then each email recipient much generate a public/private key pair, and their public key -must be installed on the Bro machine in the home directory of the user running -the Bro process. - -To create a key-pair: - -@example -gpg --gen-key -@end example - -To export the public key: - -@example -gpg --armor --output mykey.gpg --export myemail@@address.com -@end example - -Then login to the machine running Bro and import the list of public keys: - -@example -gpg --import mykey.gpg -@end example - - -Then you must to make the list of keys "trusted" so that they can be used -to encrypt the email reports. To do this, you must -edit the key to add "ultimate" trust to the key. - -@example -gpg --edit-key myemail@@address.com - -pub 1024D/4A872E40 created: 2001-02-05 expires: never trust: -/f -sub 3072g/B72DD7FE created: 2001-02-05 expires: never -(1). Some R. User - -Command> trust -pub 1024D/4A872E40 created: 2001-02-05 expires: never trust: -/f -sub 3072g/B72DD7FE created: 2001-02-05 expires: never -(1). Some R. User - -Please decide how far you trust this user to correctly -verify other users' keys (by looking at passports, -checking fingerprints from different sources...)? - - 1 = Don't know - 2 = I do NOT trust - 3 = I trust marginally - 4 = I trust fully - 5 = I trust ultimately - m = back to the main menu - -Your decision? 5 -Do you really want to set this key to ultimate trust? yes - -pub 1024D/4A872E40 created: 2001-02-05 expires: never trust: u/u -sub 3072g/B72DD7FE created: 2001-02-05 expires: never -(1). Some R. User - -Command> quit - -@end example - -For more information on GPG see @uref{http://www.gnupg.org/} - -@node Generating Reports on a Separate Host -@section Generating Reports on a Separate Host -@cindex report generate, separate host -@cindex GPG - -@emph{Warning: this section assumes a reasonably high level of Unix system administration skills!} - -If your site has lots of traffic, lots of connections, or if Bro is using on average more than around 40% of your CPU, -you'll want to use a second host for generating reports. - -To do this, on the Bro host, run bro_config, and say "N" to all report generation questions. -Then install Bro on the second host using the following: - -@example -./configure -make -make install-reports -@end example - -Then follow the instructions in @ref{Bro Configuration} for setting up report generation. - -You'll also need to set up a method to copy files from the Bro host to the report generation -host. One way to do this is using @code{rsync}, and the Bro script @code{push_logs.sh} -does this for you. For example, you can set up a cron job -like this on the Bro host: - -@example -1 1 * * * (push_logs.sh /usr/local/bro/etc/bro.cfg host:/home/bro) >> /tmp/bro-push.log -@end example - -To make sure your @code{rsync} command has time to transfer -all log files before your report generation -script is run, the @code{push_logs.sh} script is designed to be used with the scripts -@code{frontend-site-report.sh} and @code{frontend-mail-report.sh} on the frontend host. -These @code{frontend} scripts wait for a file with a particular name to exist before running. -It is also important to use the @code{nice} -command to help ensure the network copy does not unduly divert processing away from Bro. - -You may want to @code{rsync} the log files over a secure ssh connection. To do this, -you need to first generate a ssh key pair on the Bro capture host with no passphrase: -@example -ssh-keygen -t rsa -C "batch key" -f ./batch.key -@end example - -Put this in user @code{bro}'s .ssh/config file, also on the Bro capture host -@example -Host recvhost brohost.foo.com -IdentityFile ~/.ssh/batch.key -@end example - -On the frontend host where the log files will be processed, add batch.pub -to the authorized_keys file -@example -cat batch.key.pub >> authorized_keys -@end example - -Then create a cron entry on the Bro capture host -@example -1 1 * * * nice -n 20 rsync -e 'ssh' -azv \ - /usr/local/bro/logs host:/home/bro -@end example - -@comment @node Web GUI Installation / Configuration -@comment @section Web GUI Installation / Configuration - -@comment The Bro Web Logfile viewing GUI is not yet packaged in an easy to install format. -@comment However if you want to give try installing it, there are -@comment instructions at: -@comment @uref{http://www.icir.org/twiki/bin/view/Bro/BrooeryGUI/} -@comment -@comment This web GUI can run on a lightly loaded Bro host, but it is recommended to run this on a separate host. Use the @code{rsync} method described in -@comment @ref{Generating Reports on a Separate Host} to -@comment copy files to the web host. Note: this web server should NOT be publicly accessible -@comment to the Internet. Information in the log files is generally very sensitive. -@comment diff --git a/doc/user-manual/Bro-intrusion-prevention.texi b/doc/user-manual/Bro-intrusion-prevention.texi deleted file mode 100644 index 99ce165120..0000000000 --- a/doc/user-manual/Bro-intrusion-prevention.texi +++ /dev/null @@ -1,91 +0,0 @@ - -Bro includes two important @emph{active response} capabilities that allow sites to use Bro -for intrusion prevention, and not just intrusion detection. These include the ability to -terminate a connection known to be an intrusion, and the ability to update a -blocking router's access control list (ACL) to block attacking hosts. - -@menu -* Terminating a Connection :: -* Updating Router ACL :: -@end menu - -@node Terminating a Connection -@section Terminating a Connection -@cindex Terminating a Connection - -The Bro distribution includes a program called @code{rst} that will terminate -a active connection by sending a TCP "reset" packet to the sender. -The @code{ftp} and @code{login} analyzers look for connections that should be terminated. -All connections from a @uref{http://www.bro-ids.org/Bro-reference-manual/hot_002dids-Module.html, -@code{forbidden_id}} get flagged for termination, as well as any service -defined in @code{terminate_successful_inbound_service}. - -Connection termination is off by default. To enable it, redefine the following -flag in your @file{site/site.local.bro} file: - -@example - redef activate_terminate_connection = T ; -@end example - -Connections are terminated using the @code{rst} program, which is installed -in $BROHOME/bin. To use this program change the file permission to be setuid root. -Whenever a connection is terminated you will see a @code{TerminatingConnection} alarm. -If Bro detects a connection that Bro thinks is a candidate for termination, but -@code{activate_terminate_connection = F}, then you will see the alarm: -@code{IgnoreTerminatingConnection}. - -You may want to add a number of services to the list of forbidden services. -For example, to terminate all successful attempts -to access the RPC portmapper via TCP from an external network, you would add this: - -@verbatim - redef terminate_successful_inbound_service += { - [111/tcp] = "disallow external portmapper" - }; -@end verbatim - -This will prevent NFS connections from external hosts. P2P services such as KaZaa can -also be terminated in this manner. You can make exceptions to -@code{terminate_successful_inbound_service} -by redefing @code{allow_services_to}. See @code{hot.bro} for details. - -@comment {Note: This functionality may no longer work. should include a more complex example here.} - -@comment : XXX For example, show a config for: -@comment : deny all NFS except to subnet XXX -@comment : deny all netbios except to subnet XXX -@comment : deny all Kazaa -@comment : deny all FTP except to host Y, Z -@comment : further restrict anonymous FTP to only host P -@comment : deny all DHCP servers except a,b,c -@comment : deny all DNS except a,b,c -@comment : deny all SMTP except a,b,c -@comment : deny all pop, imap to hosts a.b.c -@comment : only allow encrypted imap - -@node Updating Router ACL -@section Updating Router ACL -@cindex Updating Router ACL - -Bro can be used to send the IPs of scanning or attacking hosts to your router, so -that the router can drop these hosts. - -Since every router does this differently, you will need to write a script that works for your -router. - -To active your custom drop script, add this to your hostname.bro file: - -@verbatim - @load scan - redef can_drop_connectivity = T; - redef drop_connectivity_script = "my_drop_script"; -@end verbatim - - -At LBL we use a program called @uref{http://www-nrg.ee.lbl.gov/leres/acl2.html, acld} -to update the ACLs in our boarder routers on the fly. -This code is available at: ftp://ftp.ee.lbl.gov/acld.tar.gz - - - - diff --git a/doc/user-manual/Bro-log-files.texi b/doc/user-manual/Bro-log-files.texi deleted file mode 100644 index 2891ede950..0000000000 --- a/doc/user-manual/Bro-log-files.texi +++ /dev/null @@ -1,3 +0,0 @@ - - -coming soon diff --git a/doc/user-manual/Bro-offline-analysis.texi b/doc/user-manual/Bro-offline-analysis.texi deleted file mode 100644 index 17c22a725a..0000000000 --- a/doc/user-manual/Bro-offline-analysis.texi +++ /dev/null @@ -1,102 +0,0 @@ - -@strong{NOTE: This chapter still a very rough draft and incomplete} - -Bro is most effective when used in conjunction with bulk traces -from your site. Capturing bulk traces just involves using @code{tcpdump} -to capture all traffic entering and leaving your site. - -Bulk traces can be very valuable for forensic analysis of all traffic -in and out of a compromised host. It is also needed to run some -particularly CPU intensive policy analyzers that can not be done -in real time (as described in the Off-line Analysis section below). - -Depending on your traffic load, you might be able to bulk capture on -the Bro host directly, but in general we recommend using a separate -packet capture host for this. Unless you want to buy a huge amount -of disk, you'll probably only be able to save a few days worth -of traffic. - -@menu -* Bulk Traces :: -* Off-line Analysis :: -@end menu - -@node Bulk Traces -@section Bulk Traces -@cindex Bulk Traces - -The Bro distribution includes a couple scripts to make bulk capture -easier. These are: - -@code{spot-trace}: called by @code{start-capture-all} script - -@code{start-capture-all}: captures all packets. This script looks -for an existing instance of the @code{spot-trace} program, and if it finds one -creates a new capture file name with an incremented filename, -and continues capturing data. Bulk -capture files can get very large, so typically you run this as -a cron job every 1-2 hours. - -@code{bro_bulk_compress.sh}: compress and/or delete old bulk trace files. Run as a cron job. - -@comment XXX: need more details here: eg: edit bro.cfg settings, etc. - -Since the bulk trace files can be huge, you often will want -to run tcpdump on the raw trace with a filter to extract the packets -of interest. For example: - -@smallexample -tcpdump -r bulkXXX.trace -w goodstuff.trace 'host w.x.y.z' -@end smallexample - -If you know that that packets you want are bounded by a time interval, say -it occurred 1:17PM-1:18PM, then you can speed this up a great deal -using @uref{ftp://ftp.ee.lbl.gov/tcpslice.tar.Z, tcpslice}. -For example: - -@smallexample -tcpslice 13h15m +5m bulkXXX.trace | tcpdump -r - -w goodstuff.trace 'host w.x.y.z' -@end smallexample - -It is recommend to use a somewhat broader time interval for tcpslice -(such as in the above example) than when -Bro reported the activity occurred, so you can catch additional related -packets cheaply. - - -@node Off-line Analysis -@section Off-line Analysis -@cindex Off-line Analysis - -There are some policy modules that are meant to be run as off-line -analysis on bulk trace files. These include: - -@code{backdoor.bro}: looks for standard services running on non-standard ports. -These services include ssh, http, ftp, telnet, and rlogin. - -To run Bro on a tcpdump file, do something like this: - -@comment ### XXX we really need a version of this that works with tcsh, grrrr ... -@smallexample -# set up the Bro environment (sh or bash) -. /usr/local/bro/etc/bro.cfg -/usr/local/bro/bin/bro -r dumpfile backdoor.bro -@end smallexample - -To use Bro to extract the contents of a trace file, do: -@smallexample - bro -r tracefile contents -@end smallexample - -which will load policy/contents.bro. It stores the contents of each -connection in two files, contents.H1.P1.H2.P2 and contents.H2.P2.H1.P1, -where H1/P1 is the host/port of the originator and H2/P2 the same for the -responder. - -You can extract just the connections of interest using, for example: -@smallexample - bro -f "host 1.2.3.4" -r tracefile contents -@end smallexample - - - diff --git a/doc/user-manual/Bro-output.texi b/doc/user-manual/Bro-output.texi deleted file mode 100644 index ffce7a17ad..0000000000 --- a/doc/user-manual/Bro-output.texi +++ /dev/null @@ -1,806 +0,0 @@ - -This section explains the contents of the various output files and reports -that Bro creates. - -@menu -* Alarm File:: -* Connection Summary File:: -* Analyzer-specific Files:: -* Tracefiles:: -* Bro Summary Reports:: -@comment add someday? * Creating your own Custom Output:: -@end menu - -@section Rotating Log Files - -There are a number of ways to control the rotation of Bro's log files. -Here are some examples: - -@verbatim - -# if using one log, must open append (default = truncate ) -@load log-append - -@load rotate-logs - -# rotate at midnight -redef log_rotate_base_time = "0:00"; - -# do not rotate on shutdown (default = T) -redef RotateLogs::rotate_on_shutdown = F; - -# rotate frequency -redef log_rotate_interval = 24 hr; - -@end verbatim - - -@comment ******************************************** - -@node Alarm File -@section Alarm File - -@subsection Alarm File Format - -The alarm.log is -a 'tagged' format that is fairly self descriptive. This is -an example from the alarm.log file: - -@verbatim - t=1000057981.940712 no=AddressScan na=NOTICE_ALARM_ALWAYS sa=10.1.1.1 sp=2222/tcp da=10.2.2.2 dp=3333/tcp msg=10.1.1.1\ has\ scanned\ 2000\ hosts\ (3333/tcp -) tag=@42 -@end verbatim - -Where the tags indicate the following: -@itemize -@item t: time -@item no: notice -@item na: notice action -@item sa: source address -@item sp: source port -@item da: destination address -@item dp: destination port -@item msg: message (in this case a host has scanned 20 hosts) -@item tag: identifier to match this to lines in notice.log and conn.log: -@end itemize - -The alarm file format is designed to be easy to parse and interpret by programs, not humans. - -@subsection Sample Alarm File Contents - -@emph{NOTE: the examples in this section still use the old log format. This needs to be updated} - -@c XXX fix these - -Bro generates a number of types of alarms, such as suspicious connection attempts directed -at your systems (address scanning), port scans, and attempts to gain access to user accounts. -We describe some of these in more detail here. - -@strong{Vulnerability scans directed against systems} - -The first category of suspicious connection attempts that Bro identifies and reports is vulnerability scans directed against systems. -Instead of burdening you with every vulnerability scan (no matter how tiny) against systems that occurs, -it reports only scans that occur at or above its threshold in terms of a specified size, such as the number of vulnerability scan attempts per second. -The following entry indicates that IP address 66.243.211.244 has scanned 10000 of your systems on tcp port 445, the port used by newer Windows systems such as Windows 2000, XP and Server 2003 for share access: - -@smallexample -Nov 16 06:30:49 AddressScan 66.243.211.244 has scanned 10000 hosts (445/tcp) -@end smallexample - -Important note: If the source of a scan is an IP address within your own network, the probability that this system is infected or has been taken over by an attacker is very high. - -At the bottom portion of each Bro report summaries of scan activity also will appear for your convenience (see the bottom part of Figure 1). Scan summaries look like the following: - -@smallexample -Nov 16 8 01:30:11 ScanSummary 194.201.88.100 scanned a total of 145 hosts -@end smallexample - -@strong{Port scanning } - -Port scanning means that a system has targeted one system, connecting to one port, then another, until it has scanned a whole range of ports. In the following example a system with an IP address of 218.204.91.85 has scanned 50 ports of a system named diblys.dhcp within an internal network: - -@smallexample -Nov 16 06:30:50 PortScan 218.204.91.85 has scanned 50 ports of siblys.dhcp -@end smallexample - -An address dropped entry is likely to appear shortly after a port scan is reported. In the following entry, the system with an IP address of 218.204.91.85 was systematically probing low ports, that is, ports in the range from 0 to 1023, on sibyls.dhcp: - -@smallexample -Nov 16 06:30:52 AddressDropped low port trolling 218.204.91.85 403/tcp -@end smallexample - - -@strong{Connection attempts} - -Bro finds attacks against user accounts, such as password guessing attempts. When it does, it reports them as follows: - -(Need example here) - -@strong{Weird events} - -Bro labels unusual or exceptional events as @emph{weird} Weird events include a wide range of events, including malformed connections, -attacker's attempts to confuse or evade being detected, malfunctioning hardware, or misconfigured systems or network devices such as routers. -Some weird events could be the result of an attack; others are just anomalies. -The better you know your own systems and networks, the more likely you will be to correctly determine whether or not weird events compromise an attack. -Weird events are divided into three categories: - -@enumerate -1. Weird connections that are not formed in accordance with protocol conventions such as the way the tcp protocol should work - -1. Weird flows in which data is being sent between two systems, but no specific connection between them can be identified, and - -1. Weird network behavior that cannot be associated with any particular system. -@end enumerate - -The following entry shows a weird connection in which packets are being sent between systems in what -appears to be an ongoing ftp session, but Bro has not identified any initial connection attempt (i.e., there is an @emph{ack above a hole}): - -@smallexample -Nov 16 06:30:58 WeirdActivity window/50406 > klecker.debian.org/ftp ack above a hole -@end smallexample - -The next entry (below) shows another weird traffic pattern in which eqvaadvip1.doubleclick.net has sent a flood of FIN packets, packets that tell the other system in a connection to terminate the connection, to bcig-8 within the network that Bro protects. - -@smallexample -Nov 16 06:32:09 WeirdActivity bcig-8/2044 > eqvaadvip1.doubleclick.net/http: FIN_storm -@end smallexample - -Here's another one --- in this case a system with an IP address of 222.64.93.208 has sent a flood of packets that have both the SYN and the ACK flags set, something that should normally happen only once in a TCP session. @command{nsx} is the destination system. - -@smallexample -Nov 16 06:30:58 WeirdActivity 222.64.93.208/1115 > nsx/dns: repeated_SYN_with_ack -@end smallexample - -Packets sent over networks are often broken up (or @emph{fragmented}) for various reasons. -Fragmented packets are not necessarily a sign of an attack, but large fragments can -indicate suspicious activity such as attempts to cause denial of service. -In the following example Bro has identified a very large packet fragment sent by p508c7fc5.dip.t-dialin.net to an internal system with an IP address of 131.243.3.162: - -@smallexample -Nov 16 06:30:50 WeirdActivity p508c7fc5.dip.t-dialin.net -> 131.243.3.162: excessively_large_fragment -@end smallexample - -Sometimes attackers attempt to evade being detected by sending malformed packets to the system they are attacking. -The receiving system cannot process them, so it informs the sending (attacking system) accordingly, asking it to resend them. -The sending system may now send packets that constitute an attack. Some intrusion detection systems (but not Bro) ignore what is resent because in theory it is unnecessary to reanalyze what has already been sent. -Bro detects this kind of retransmission inconsistency (@emph{rexmit inconsistency}) and reports it. -The following example shows that there has been retransmission inconsistency in packets -sent by a system at IP address 131.243.223.212 to origin2.microsoft.com: - -@smallexample -Nov 16 06:30:59 RetransmissionInconsistency 131.243.223.212/2270 > origin2.microsoft.com/http @/ rexmit inconsistency (HTTP/1.1 200 OK^M^JDate: Tue, 16 Nov 2004 -@end smallexample - - -@comment ******************************************** -@node Connection Summary File -@section Connection Summary File - -See the -@uref{http://www.bro-ids.org/Bro-reference-manual/Connection-summaries.html, Connection Summary} -section in the reference manual for a description of the @code{conn.log} files. - -@comment ******************************************** - -@node Analyzer-specific Files -@section Analyzer-specific Files - -A number of analyzers such as HTTP and FTP generate their own log files. These files are -fairly self explanatory. - -coming soon: sample http.log, ftp.log, etc - -@comment ******************************************** - -@node Tracefiles -@section Tracefiles - -Bro can be configured to output captured packets that look to be part of suspicious sessions. -These files are in @code{tcpdump} format. - -@comment ******************************************** - - -@node Bro Summary Reports -@section Bro Summary Reports - -@cindex e-mail reports - -@emph{NOTE: The Bro report facility is still under development. This section -may be out of date. } - -Bro reports are generated using the @command{site-report.pl} script, which is -typically run as a nightly @command{cron} job. - -A daily report is created that covers three sets of -information: - -@itemize -@item Incident information -@item Operational status of Bro -@item General network traffic information -@end itemize - -The reports will be mailed to the email addresses specified during -Bro installation. These email addresses can be changed by re-running -the @code{bro_config} script or by editing @code{$BROHOME/etc/bro.cfg} directly. - -@cindex incident -@cindex incident type -@cindex report period -@cindex alarm -@cindex connection, successful -@cindex connection, unsuccessful -@cindex connection, history -@cindex scans -@cindex scan, definition -@cindex scans, successful -@cindex system statistics -@cindex traffic statistics - -The report is divided into three parts, the summary, incidents, and -scans. The summary includes a rollup of incident information, Bro -operational statistics, and network information. The incidents section -has details for each Bro alarm. The scans section gives details about -scans that Bro detected. - -@subsection Parts of a Report - -@subsubheading Header -The header gives some basic information about the report. -@quotation -@strong{Site name} is determined by the "Site name for reports" that was -given during the installation and configuration process. -@*@* -@strong{Start time and interval} of the report are also entered during -the configuration process. -@end quotation -@xref{Bro Configuration}. - -@subsubheading Summary -This section give a numeric summary of the events that have happened in -the reporting period. -@quotation -@strong{Incidents} shows the number of incidents that are recorded in -the report period. An incident is any occurrence that is deemed worth -investigating. An incident is formed by the triggering of one or more -alarms. -@*@* -@strong{Scanning Hosts} are the number of specific IP addresses that -have been detected scanning either into or out from the site.@* -@quotation - @strong{A scan can be a:} - @itemize - @item @strong{port scan:} scanning several ports of a single host. - @item @strong{network scan:} scanning several hosts for open - ports. - @item @strong{signature scan:} attacking multiple hosts with a - specific vulnerability attack (signature). - @item @strong{targeted attack:} launching multiple signatures against - a single host. - @item @strong{password scan:} attempts to guess passwords on telnet -terminals. - @end itemize - -@* - @strong{A successful scan is when:} - @itemize - @item the bytes sent by a single probe of a scan against a host or -several hosts are more than three deviations away from the standard -deviation of the rest of scan. In essence, where the bytes transferred -on one connection is different than the rest of the scan other -connections involved in the scan. - @item a separate connection back to the attacker host is detected from -the local network. - @item the number of bytes sent back from the targeted victim host to -the offender during a scan connection exceeds 20480. - @end itemize -@end quotation - -@comment ### it occurs to me that summarizing signatures here, but not alarms in general, probably overemphasizes the importance of signatures vs. other types of analysis. -@strong{Signature Summary} shows the total number of alarms triggered by -signatures during the report period and the number of those that are -unique. These numbers do not include alarms triggered by embedded Bro -rules. @xref{Understand What Triggered the Alarm(s)}. -@end quotation - -@subsubheading Signature Distributions -This is a list of all signatures that were triggered during the report -period. -@* -NOTE: This section does not include alarms triggered by embedded Bro -rules. @xref{Understand What Triggered the Alarm(s)}. - -@quotation -@strong{Count} is the number of times the signature was seen. -@*@* -@strong{Unique Sources} is the number of unique ip addresses that used -the specific signature as an attack. -@*@* -@strong{Unique Dests} is the number of unique ip addresses that were -attacked by the particular signature. -@*@* -@strong{Unique Pairs} are the number of unique source/dest ip address -pairs where the source used the signature to attack the destination. -@end quotation - -@subsubheading Incidents -@quotation Legend -This is the legend for reading the @i{connections} portions of the each -incident. It is shown once on each report at the top of the -@i{Incidents} section. -@end quotation -@quotation Incident number -Each incident listed in the Bro report is assigned a unique, sequential, -identification number prefixed with the organization identifier. This -number is unique for all incidents, not just to the daily reports. -@end quotation -@quotation Remote and Local hosts -The Remote and Local hosts are identified by both ip address and -hostname. The local hosts are those that are in local subnets as -determined during Bro configuration. It is important to note that -@i{remote host} does not infer @i{attack host}. Attacks can come from -local hosts (indicating an inside hacker or a compromised host). -@end quotation -@quotation Alarms -The network event(s) that Bro detects and identifies as possible -attacks. There are two general types of alarms, those triggered by -signatures and those triggered by Bro rules. -@xref{Understand What Triggered the Alarm(s)}, for more information about the differences. -All alarms will include the date/time of the attack, the direction of -the attack, and the ports involved. A @code{SensitiveSignature} will -include the signature code and payload to help evaluate what triggered -the alarm. Embedded Bro rules will include the payload and a session -number which can be used for further investigation in the logs. -@xref{Examine HTTP FTP or SMTP Sessions}. -@end quotation -@quotation Connections -A list of the first 25 connections after the first alarm is triggered -that are attempted between the attacking and victim host. This -tabulation of connections can be used to see if connections were -accepted by the victim host, the amount of bytes transferred in both -directions, the timing between the connections, and the ports involved. -@end quotation - -@subsubheading Scans -This is a summary of the ip addresses involved in successful scans, the -type of scans, and the attacks used by the scanners. - -@subsubheading Connection Log Summary -This section gives a overview of the most prominent connections that -have occurred during the report period, as shown by way of five tables. - -@quotation Site-wide connection statistics -The number of successful and unsuccessful connections and the ratio -between the two. -@end quotation -@quotation Top 20 Sources -Hosts that have initiated the most connections. -@end quotation -@quotation Top 20 Destinations -Hosts that have accepted connections. -@end quotation -@quotation Top 20 Local E-mail Servers -The most active E-mail servers. -@end quotation -@quotation Top 20 Services -The services, as determined by port number, that have been involved in -connections. -@end quotation - -@subsubheading Byte Transfer Pairs -This section gives a summary of the ip address address pairs that have -transferred the most bytes during the report period. - -@subsection Annotated Example Report: - -@verbatim -Site Report for ORG_NAME -from 2004/11/03 00:00:00 to 2004/11/04 00:00:00 -generated on Sat Nov 13 12:02:48 2004 -@end verbatim - -@quotation annotation -@i{ORG_NAME will normally be replaced with "Site name for reports" that -was given during the installation and configuration process.} -@end quotation - -@verbatim -======================================================================== -Summary -======================================================================== -@end verbatim - -@quotation annotation -@i{Since this report is simple and only includes two incidents, the -summary is rather uninteresting. A glance at this summary would reveal -a rather "slow" day (for which you should be thankful).} -@end quotation - -@verbatim - Incidents 2 - Scanning Hosts - Successful 8 - Unsuccessful 15 - Signature Summary - Total signatures 2 - Unique signatures 2 - Unique sources 2 - Unique destinations 2 - Unique source/dest pairs 1 -@end verbatim - -@quotation annotation -@i{Since the same to ip addresses were involved in both signature -attacks, there is only one unique source/dest pair.} -@end quotation - -@verbatim -======================================================================== -Signature Distributions -======================================================================== - Unique Unique Unique - Signature ID Count Sources Dests Pairs - ------------------------ -------- --------- --------- -------- - bro-687-5 1 1 1 1 - bro-144-3 1 1 1 1 -======================================================================== -Incident Details -======================================================================== -@end verbatim - -@quotation annotation -@i{The following legend appears once in every report at the top of the -"Incidents" section} -@end quotation - -@verbatim - # legend for connection type # - ------------------------------ - C Connection Status - # number corresponds to alarm triggered by the connection - * successful connection, otherwise unsuccessful. - I Initiatator of Connection - > connection initiated by remote host - < connection initiated by local host ------------------------------------------------------------------------- -Incident ORG_NAME-000004524 --------------------------------- -@end verbatim - -@quotation annotation -@i{The host domain name "org_name.org" will normally be replaced by the -local domain name. The IP addresses in this example have been -synthesized from an imaginary range outside of the octal range. (We -realize these ip addresses cannot exist). In this example the ip ranges -124.333.0.0/24 and 132.257.0.0/24 are considered the local subnets.} -@end quotation - -@verbatim -Remote Host: 84.136.338.21 p54877614.dip.hacker.net - Local Host: 124.333.183.162 pooroljoe.dhcp.org_name.org -@end verbatim - -@quotation annotation -@i{This attacker was successful in using an SQL attack and then -downloaded a "tool" using TFTP. Both of these were detected and created -the following alarms.} -@end quotation - -@verbatim -Alarm: SensitiveSignature - 1 bro-687-5: MS-SQL xp_cmdshell - program execution - 7/29 12:43:31 84.136.338.21 -> 124.333.183.62 - 566/tcp -> 1433/tcp - signature code: - signature bro-687-5 { - ip-proto == tcp - dst-port == 1433 - event "MS-SQL xp_cmdshell - program execution" - tcp-state established,originator - payload /.*[xX]\x00[pP]\x00_\x00[cC]\x00[mM]\x00[dD]\x00[sS] - \x00[hH]\x00[eE]\x00[lL]\x00[lL]\x00/ - } - payload: xp_cmdshell 'echo.> c:\\temp\\bcp.cmd' - -Alarm: SensitiveSignature - 2 bro-1444-3: TFTP Get - 7/29 12:43:31 84.136.338.21 -> 124.333.183.62 - 2318/upd -> 69/udp - signature code: - signature bro-1444-3 { - ip-proto == udp - dst-port == 69 - event "TFTP Get" - payload /\x00\x01/ - } - payload: Runtime.exe -@end verbatim - -@quotation annotation -@i{Looking at the "C" column below, the alarms are signified by "1" and -"2", both occuring at 12:43:31. Since the attacks take place within one -second, this is probably an automated attack. The remote host continues -to connect to the victim host, using a different port each time to avoid -detection. The large transfers from the local host to the remote host, -subsequent to the alarmed attacks, signifies that the attack is probably -successful.} -@end quotation - -@verbatim -Connections (only first 25 after first alarm are listed) ------------ - time byte remote local byte - date time duration transfer port C I port transfer protocol ------ -------- -------- -------- ------ ------ ----- -------- ---------- -07/29 12:43:31 ? 566 b 4634 1 > 1433 467 b tcp/MSSQL -07/29 12:43:31 0 ? 2318 2 < 69 20 b udp/tftp -07/29 12:43:32 265.7 4 b 4638 * < 2318 3.0kb udp -07/29 12:48:56 ? ? 4640 > 2362 ? tcp -07/29 12:50:05 ? 11.4kb 4639 * < 3333 8.6kb tcp -07/29 12:53:00 0 ? 4684 * > 2362 ? tcp -07/29 12:53:07 ? ? 4685 * > 2362 ? tcp -07/29 12:53:59 ? ? 4689 * > 2362 ? tcp -07/29 12:54:14 6.1 0 4693 * < 2380 94.2kb tcp -07/29 12:54:21 .5 50 b 4694 > 2381 0 tcp -07/29 12:54:23 .7 ? 4695 < 2382 0 tcp -07/29 12:54:25 .5 51 b 4696 * > 2383 0 tcp -07/29 12:54:27 .5 61 b 4697 * > 2384 0 tcp -07/29 12:54:28 .7 39 b 4698 > 2385 0 tcp -07/29 12:54:31 .5 41 b 4699 * > 2386 0 tcp -07/29 12:54:33 1.2 4.9 kb 4700 > 2387 0 tcp -07/29 12:54:35 12.8 195.0 kb 4701 * < 2388 0 tcp -07/29 12:54:53 .2 ? 4703 < 2390 0 tcp -07/29 12:54:54 .5 37 b 4704 > 2391 0 tcp -07/29 12:54:56 3.4 23 b 4705 * > 2392 0 tcp -07/29 12:55:04 21.4 308.7 kb 4706 > 2393 0 tcp -07/29 12:55:27 50.7 ? 4707 > 2394 ? tcp -07/29 12:59:23 ? ? 4775 > 1433 ? tcp -07/29 12:59:25 ? ? 4774 * > 3333 ? tcp -@end verbatim - -@quotation annotation -@i{The next Incident demonstrates alarms triggered by embedded rules, -rather than signatures.} -@end quotation - -@verbatim ------------------------------------------------------------------------- -Incident ORG_NAME-000004525 --------------------------------- -Remote Host: 80.143.378.186 p508FB2BA.dip.t-dialin.net - Local Host: 128.333.181.191 lemonade.lbl.gov -@end verbatim - -@quotation annotation -@i{Since these alarms are triggered in the HTTP protocol, the actual -trigger rules are found in the file} @file{bro/policy/http.bro}. -@end quotation - -@verbatim -Alarm: HTTP_SensitiveURI - 11/13 11:36:05 80.143.378.186 -> 128.333.181.191 - 1560/tcp -> 80/tcp - session: %4672 - payload: GET http://cn.edit.vip.cnb.yahoo.com/config/login?.redir - _from=PROFILES - -Alarm: HTTP_SensitiveURI - 11/13 11:53:54 80.143.378.186 -> 128.333.181.191 - 2434/tcp -> 80/tcp - session:%7386 - payload: GET http://l10.login.scd.yahoo.com/config/login?.redir_f - rom=PROFILES?& -@end verbatim - -@quotation annotation -@i{In the connections shown below, all connections are from the remote -host to the local host, with no successful connections back. Also the -payload above is seeking yahoo.com. Hence the likelihood is that this -is not an attack.} -@end quotation - -@verbatim -Connections (only first 25 after alarm are listed) ------------ - time byte remote local byte - date time duration transfer port C I port transfer protocol ------ -------- -------- -------- ------ ------ ----- -------- ---------- -11/13 11:36:05 1.109227 297 1560 * > 80 1531 http -11/13 11:36:06 ? ? 1560 > 80 ? http -11/13 11:41:51 0.843209 301 3175 * > 80 1533 http -11/13 11:41:52 ? ? 3175 > 80 ? http -11/13 11:47:37 2.562365 281 4701 * > 80 1382 http -11/13 11:47:39 ? ? 4701 > 80 ? http -11/13 11:53:53 0.694131 293 2434 * > 80 1529 http -11/13 11:53:54 ? ? 2434 > 80 ? http -11/13 11:59:23 0.685181 301 3975 * > 80 1529 http -11/13 11:59:23 ? ? 3975 > 80 ? http -11/13 12:04:53 1.054925 289 1700 * > 80 1527 http -11/13 12:04:54 ? ? 1700 > 80 ? http -11/13 12:11:56 2.579652 283 3442 * > 80 1523 http -11/13 12:11:59 ? ? 3442 > 80 ? http -11/13 12:18:08 1.046188 289 1083 * > 80 1531 http -11/13 13:14:42 ? ? 3282 > 80 ? http -11/13 13:16:46 ? ? 4802 > 80 ? http -11/13 13:19:04 1.731771 0 2764 * > 80 0 http -11/13 13:19:07 ? ? 2764 > 80 ? http -11/13 13:20:42 0.994114 289 4142 * > 80 1527 http -11/13 13:20:43 ? ? 4142 > 80 ? http -11/13 13:22:37 1.122448 292 1732 * > 80 1523 http -11/13 13:22:38 ? ? 1732 > 80 ? http -11/13 13:24:40 1.042112 289 3179 * > 80 1531 http -11/13 13:24:41 ? ? 3179 > 80 ? http - - -======================================================================== -Scans (only first 100 shown) -======================================================================== -@end verbatim - -@quotation annotation -@i{The scans show below are considered "successful". Four interesting -scans shown below are the ones originating from the 124.333 and 132.257 -domains, since they are local domains. These should be investigated. -The attack against 132.257.85.96 might also be investigated further. -With each report, a review of the attacks will give an understanding of -what types of scans are becoming "popular".} -@end quotation - -@verbatim -Scanning IP Victim IP Attack -132.257.70.234 multiple bro-1344-5 -132.257.52.64 multiple bro-1367-5 -63.251.3.51 multiple bro-2570-6 -124.333.181.191 multiple bro-1599-7 -210.313.36.53 132.257.85.96 >1000 port scan -211.300.24.151 132.257.85.96 >1000 port scan -124.333.95.0 62.214.34.30 >250 port scan -172.278.206.135 multiple (3128/tcp) - -======================================================================== -Connection Log Summary -======================================================================== -@end verbatim - -@quotation annotation -@i{The connection log summary gives a general idea of what hosts are -most active. The analyst may want to become familiar with any new hosts -that appear on the next three lists and services that appear or -radically change position on the fourth list} -@end quotation - -@verbatim -Site-wide connection statistics - Successful: 4498748 - Unsuccessful: 35941140 - Ratio: 1:7.989 - -Top 20 Sources - Host IP Bytes Conn. Count - -------------------------------- --------------- ------ ----------- - ns1.org_name.org 124.333.34.186 3.7 G 683948 - ns2.org_name.org 132.257.64.2 165 M 231245 - lemonade.org_name.org 124.333.181.191 88 M 217781 - nsx.org_name.org 132.257.64.3 371 M 200935 - cinnamon.mining.com 207.5.380.138 4.5 M 103011 - node2.lbnl.nodes.planet.org 198.328.56.12 106 M 75725 - node1.lbnl.nodes.planet.org 198.328.56.11 85 M 73719 - microscope.dhcp.org_name.org 132.257.19.79 61 M 54024 - 169.299.224.1 2.3 M 40348 - uhuru.org_name.org 132.257.10.97 423 M 39847 - 132.257.77.246 13 M 29496 - googledev.org_name.org 124.333.41.57 13 M 24930 - 64.46.248.43 60 M 19785 - ...16-141.sfo4.dsl.contactor.net 66.292.16.141 6.2 M 19048 - rock.es.net 198.128.2.83 2.8 G 18459 - perry.Geo.college.EDU 124.32.349.11 1.7 M 17326 - google.org_name.org 124.333.41.70 8.5 M 15508 - egspd42212.search.com 65.264.38.212 3.1 M 15138 - hmb-330-042.MSE.college.EDU 124.32.349.20 222 M 14865 - 1rodan.dhcp.org_name.org 132.257.19.170 7.7 M 11873 - -Top 20 Destinations - Host IP Bytes Conn. Count - -------------------------------- --------------- ------ ----------- - nsx.org_name.org 132.257.64.3 14 G 1571638 - ns1.org_name.org 124.333.34.186 1.6 G 264976 - ns2.org_name.org 132.257.64.2 80 M 218740 - lemonade.org_name.org 124.333.181.191 2.6 G 176788 - CS.university.EDU 128.312.136.10 10 M 81622 - g.old-servers.net 192.42.293.30 11 G 71407 - engram.CS.university.EDU 128.312.136.12 7.5 M 61309 - aulvs.realthing.com 207.288.24.156 792 M 50493 - ns1.college.EDU 124.32.349.9 995 M 39977 - rohan.superc.gov 128.550.6.34 4.7 G 32883 - sportsmed.starship.com 199.281.132.79 17 M 32152 - ns2.yoho.com 66.263.169.170 2.1 G 24361 - uhuru.org_name.org 132.257.10.97 58 M 19785 - g3.NSDDD.COM 192.342.93.32 488 M 19734 - w4.org_name.org 124.333.7.51 447 M 19334 - E.TOP-SERVERS.NET 192.303.230.10 195 M 19066 - mantis.org_name.org 124.333.7.39 395 M 18811 - postala.org_name.org 124.333.41.61 8.0 M 17283 - vista.org_name.org 132.257.48.146 488 M 15961 - calmail.college.EDU 128.32.349.103 73 M 15154 - -Top 20 Local Email Senders - Hostname IP Conn. -Count - ---------------------------------------- --------------- ----------- - mta1.org_name.org 124.333.41.24 3869 - postala.org_name.org 124.333.41.61 2850 - ci.org_name.org 132.257.192.220 868 - postal2.org_name.org 132.257.248.26 376 - ee.org_name.org 132.257.1.10 173 - math.org_name.org 124.333.7.22 131 - rod2.org_name.org 132.257.112.183 121 - gigo.org_name.org 124.333.2.54 110 - mh1.org_name.org 124.333.7.48 82 - stm.org_name.org 132.257.16.51 81 - -Top 20 Services - Service Conn. Count % of Total Bytes In Bytes Out - ------------ ------------ ---------- --------- --------- - dns 3378522 75.10 30 G 11 G - http 902573 20.06 18 G 11 G - other 92913 2.07 14 G 249 G - smtp 35942 0.80 458 M 196 M - https 33848 0.75 2.3 G 179 M - ssh 25515 0.57 977 M 1.0 G - netbios-ssn 11004 0.24 65 M 9.5 M - pop-3 5494 0.12 58 M 3.6 M - ftp-data 4495 0.10 37 G 34 G - ldap 3549 0.08 740 K 2.0 M - ftp 1061 0.02 1.3 M 873 K - ident 970 0.02 29602 9039 - printer 834 0.02 837 9176 - time 645 0.01 2416 166 - imap4 636 0.01 28 M 47 M - nntp 308 0.01 355 M 1.5 M - pm_getport 238 0.01 13328 6664 - telnet 164 0.00 469 K 7850 - ntp 26 0.00 1344 1392 - X11 6 0.00 652 K 64280 -======================================================================== -Byte Transfer Pairs -======================================================================== -@end verbatim - -@quotation annotation -@i{Once again, this summary gives a general idea of what hosts are most -active. Radical changes to this list may indicate malicious activity.} -@end quotation - -@verbatim -Hot Report - Top 20 - Local Remote Conn. - Local Host Remote Host Bytes Bytes Count ---------------- --------------- --------- --------- --------- -124.333.28.60 128.265.128.131 123 G 5327 K 3930 -124.333.28.60 128.265.128.132 123 G 5159 K 3927 -132.257.64.3 198.328.2.83 2855 M 11.9 G 15097 -124.333.34.186 192.342.93.30 2958 M 10.7 G 40033 -132.257.64.3 61.283.32.172 7469 M 10393 11 -124.333.41.57 128.256.6.34 12.0 M 4490 M 22360 -124.333.181.191 81.257.197.163 1350 M 4430 M 3341 -132.257.64.3 130.262.101.6 276 M 2200 M 13064 -124.333.34.186 66.263.169.170 389 M 2095 M 17919 -132.257.195.68 140.267.28.48 91.3 M 2029 M 6275 -132.257.212.232 151.293.199.65 39155 1994 M 24 -124.333.41.61 206.290.82.18 3401 1853 M 22 -132.257.64.3 61.278.72.30 1798 M 7 1 -124.333.181.191 61.263.209.246 16.8 M 1676 M 113 -132.257.64.3 261.232.163.3 1544 M 24069 9 -132.257.64.3 61.273.210.110 1517 M 4140 7 -124.333.34.186 128.342.121.70 1351 M 222 M 14861 -132.257.64.3 258.14.200.58 1350 M 24075 14 -132.257.64.3 222.330.100.28 1219 M 4077 7 -132.257.64.3 210.261.41.131 1162 M 25 3 -@end verbatim - - -@comment ******************************************** -@comment node Creating your own Custom Output -@comment section Creating your own Custom Output - diff --git a/doc/user-manual/Bro-overview.texi b/doc/user-manual/Bro-overview.texi deleted file mode 100644 index e3353b1a58..0000000000 --- a/doc/user-manual/Bro-overview.texi +++ /dev/null @@ -1,143 +0,0 @@ - -@menu -* What is Bro? :: -* Bro features and benefits :: -* Getting more Information :: -@end menu - -@node What is Bro? -@section What is Bro? -@cindex Network Intrusion Detection System - -Bro is a Unix-based Network Intrusion Detection System (IDS). Bro monitors network traffic and detects intrusion attempts based on the traffic -characteristics and content. Bro detects intrusions by passing network traffic through rules describing events that are deemed troublesome. These rules -might describe activities (e.g., certain hosts connecting to certain services), what activities are worth alarming (e.g., attempts to a given number of different hosts constitutes -a "scan"), or signatures describing known attacks or access to known vulnerabilities. If Bro detects something of interest, it can be instructed to either issue a log entry or initiate the execution of an operating system command (such as sending email, or creating a router entry to block an address). - -Bro targets high-speed (Gbit/second), high-volume intrusion detection. By judiciously leveraging packet filtering techniques, -Bro is able to achieve the performance necessary to do so while running on commercially -available PC hardware, and thus can serve as a cost effective means of monitoring a site's Internet connection. - - -@node Bro features and benefits -@section Bro features and benefits - -@itemize -@item @strong{Network Based} -@quotation -Bro is a network-based IDS. It collects, filters, and analyzes traffic that passes through a specific -network location. A single Bro monitor, strategically placed at a key network junction, can be -used to monitor all incoming and outgoing traffic for the entire site. Bro does not use or -require installation of client software on each individual, networked computer. -@end quotation - -@item @strong{Custom Scripting Language} -@quotation -Bro policy scripts are programs written in the Bro language. They contain the "rules" that -describe what sorts of activities are deemed troublesome. They analyze the network activity and -initiate actions based on the analysis. Although the Bro language takes some time and effort to -learn, once mastered, the Bro user can write or modify Bro policies to detect and notify or alarm on virtually -any type of network activity. -@end quotation - -@item @strong{Pre-written Policy Scripts} -@quotation -Bro comes with a rich set of policy scripts designed to detect the most common Internet attacks -while limiting the number of false positives, i.e., alarms that confuse uninteresting activity with the -important attack activity. These supplied policy scripts will run "out of the box" and do not -require knowledge of the Bro language or policy script mechanics. -@end quotation - -@item @strong{Powerful Signature Matching Facility} -@quotation -Bro policies incorporate a signature matching facility that looks for specific traffic content. For -Bro, these signatures are expressed as regular expressions, rather than fixed strings. Bro adds a -great deal of power to its signature-matching capability because of its rich language. This allows -Bro to not only examine the network content, but to understand the context of the signature, -greatly reducing the number of false positives. Bro comes with a set of high-value signatures, -selected for their high detection and low false positive characteristics, -as well as policy scripts that perform more detailed analysis. -@end quotation - -@item @strong{Network Traffic Analysis} -@quotation -Bro not only looks for signatures, but also analyzes network protocols, connections, -transactions, data volumes, and many other network characteristics. It has powerful facilities for -storing information about past activity and incorporating it into analyses of new activity. -@end quotation - -@item @strong{Detection Followed by Action} -@quotation -Bro policy scripts can generate output files recording the activity seen on the network (including -normal, non-attack activity). They can also send alarms to event logs, including the -operating system @emph{syslog} facility. In addition, scripts can execute programs, which can, in turn, -send e-mail messages, page the on-call staff, automatically terminate existing connections, or, with -appropriate additional software, insert access control blocks into a router's access control list. -With Bro's ability to execute programs at the operating system level, the actions that Bro can -initiate are only limited by the computer and network capabilities that support Bro. -@end quotation - -@item @strong{@uref{http://www.snort.org/,Snort} Compatibility Support} -@cindex Snort -@quotation -The Bro distribution includes a tool, snort2bro, which converts Snort signatures into Bro -signatures. Along with translating the format of the signatures, snort2bro also incorporates a large -number of enhancements to the standard set of Snort signatures to take advantage of Bro's -additional contextual power and reduce false positives. -@end quotation - - -@end itemize - -@node Getting more Information -@section Getting more Information - -@itemize -@item @strong{Reference manual} -@quotation -An extensive @uref{http://www.bro-ids.org/manuals.html,reference manual} is provided detailing the Bro Policy Language -@end quotation - -@item @strong{FAQ} -@cindex FAQ -@quotation -Several Frequently Asked Questions are outlined in the @uref{http://www.bro-ids.org/FAQ.html,Bro FAQ}. -If you have a question not already covered -in the FAQ, send it to us and we'll add it. -@end quotation - -@item @strong{E-mail list} -@cindex Email list -@quotation -Send questions on any Bro subject to bro@@bro-ids.org -The list is frequented by all of the Bro developers. - -You can subscribe by going to the website: -@* @uref{http://mailman.icsi.berkeley.edu/mailman/listinfo/bro}, -@* -or by placing the following command in either the subject or the body of a message addressed to -bro-request@@icsi.berkeley.edu. - -@example -subscribe [password] [digest-option] [address=
    ] -@end example - -A password must be given to -unsubscribe or change your options. Once subscribed to the -list, you'll be reminded of your password periodically. -The "digest-option" may be either: "nodigest" or "digest" (no -quotes!). If you wish to subscribe an address other than the -address you use to send this request from, you may specify -"address=" (no brackets around the email -address, no quotes!) - -@end quotation - -@item @strong{Website} -@quotation -The official Bro website is located at: -@uref{http://www.bro-ids.org}. -It contains all of the above documentation and more. -@end quotation - -@end itemize diff --git a/doc/user-manual/Bro-production.texi b/doc/user-manual/Bro-production.texi deleted file mode 100644 index 87e154abcc..0000000000 --- a/doc/user-manual/Bro-production.texi +++ /dev/null @@ -1,26 +0,0 @@ - -@menu -* Compiling Bro:: -* Starting Bro:: -* Disk space considerations:: -* Router/firewall ACL space considerations:: -* Other maintenance considerations:: -@end menu - -@node Compiling Bro -@section Compiling Bro - -@node Running Bro -@section Running Bro - -@node Disk space considerations -@section Disk space considerations - -@node Router/firewall ACL space considerations -@section Router/firewall ACL space considerations - -@node Other maintenance considerations -@section Other maintenance considerations - - - diff --git a/doc/user-manual/Bro-requirements.texi b/doc/user-manual/Bro-requirements.texi deleted file mode 100644 index 2f205c4269..0000000000 --- a/doc/user-manual/Bro-requirements.texi +++ /dev/null @@ -1,93 +0,0 @@ - - -@menu -* Network Tap :: -* Hardware and Software Requirements :: -@end menu - - -@node Network Tap -@section Network Tap -@cindex network tap - -Bro requires -a network tap to give it access to live network traffic. -The tap needs to be full-speed for the link being monitored and must provide -copies of both directions of the link, or you need to two taps, one in -each direction. - -Normally the network tap for Bro should be placed behind an external firewall and on the DMZ -(the portion of the network under the control of the organization but outside of the internal firewall), -as shown in the figure below. Some organizations might prefer to install the network tap outside -the firewall in order to detect all scans or attacks. Placing Bro outside the firewall will allow -the organization to better understand attacks, but will produce a more notifications and alarms. Another option is to place Bro inside the internal firewall, allowing it to detect internal hosts with viruses or worms. -In addition to the connection to the network tap, a separate network connection is recommended -for management of Bro and access to log files. - -For more information on taps and tap placement see the Netoptics White paper titled @emph{Deploying Network Taps with Intrusion Detection Systems} (@uref{http://www.netoptics.com/products/pdf/Taps-and-IDSs.pdf}). - -@float Figure, tap location -@image{bro-deployment,6.3in} -@caption{Typical location for network tap and Bro system} -@end float - -@node Hardware and Software Requirements -@section Hardware and Software Requirements - -Bro requires no custom hardware, and runs on low-cost commodity PC-style systems. -However, the Bro monitoring host must examine every packet into and out of -your site, so depending on your site's network traffic, you may need a fairly high-end machine. -If you are trying to monitor a link with a large number of connections, we recommend using -a second system for report generation, and run only Bro on the packet-capture host. - -@quotation -@multitable @columnfractions .25 .75 -@comment only work with texiinfo 4.7 or higher: @headitem Item @tab Requirements -@item @strong{Item} @tab @strong{Requirements} - -@item @strong{Processor} -@tab Note: these are @strong{rough} estimates. Much depends on the -number of connections/second, the types of -traffic on your network (e.g., HTTP, FTP, email, etc.), and you can trade -off depth of analysis (especially, which protocols are analyzed) for processing -load. (See the Performance chapter of the Bro User Guide for more information.) -@* 1 GHz CPU for 100 Mbps monitoring with average packet rate <= 5,000 packets/second -@* 2 GHz CPU for 1 Gbps monitoring with <= 10,000 packets/second -@* 3 GHz CPU for 1 Gbps monitoring with <= 20,000 packets/second -@* 4 GHz CPU for 1 Gbps monitoring with <= 50,000 packets/second - -@item @strong{Operating System} -@tab Recommended: FreeBSD (@uref{http://www.freebsd.org/}). Bro works with -many Unix systems, including Linux and Solaris, but has been primarily tuned -for FreeBSD. We currently recommend using FreeBSD version 4.10 for Bro. -If your site has a large number of packets or connections per second you should -look at the section on @ref{Hardware and OS Tuning}. -FreeBSD 5.x should work, but is not quite as fast as 4.10. -For sites with very high traffic loads and capturing traffic on - two interfaces, contact us for a FreeBSD 4.x kernel patch -to do @emph{BPF bonding}, which allows merging the two directions of a -network link into a single interface as seen by Bro. While Bro can instead -merge the two interfaces at user-level, this costs some performance. - -@item @strong{Memory} -@tab 512 MB suffices for small networks (say 200 hosts connected via a -100 Mbps link). For larger networks, 1 GB RAM will be required, with -2-3 GB is recommended. - -@item @strong{Hard disk} -@tab 10 GB minimum, 50 GB or more for log files recommended. - -@item @strong{User privileges} -@tab @emph{superuser} to install Bro, with Bro then running as user @emph{bro}. - -@item @strong{Network Interfaces} -@tab 3 interfaces are recommended: 2 for packet capture (1 for each direction), and 1 for host management. Capture interfaces should be identical. For some network taps, both directions of the link are captured using the same interface, and the separate host management interface, while prudent, is not required. - -@item @strong{Other Software} -@tab - Perl version 5.6 or higher (@uref{http://www.perl.org}) (for report generation) -@* - libpcap version 0.7.2 or higher (@uref{http://www.tcpdump.org}) -@* Note: Some version of FreeBSD come with older versions of libpcap. Bro -recommends newer versions of these tools for performance reasons. - -@end multitable -@end quotation diff --git a/doc/user-manual/Bro-running.texi b/doc/user-manual/Bro-running.texi deleted file mode 100644 index 10e08762c9..0000000000 --- a/doc/user-manual/Bro-running.texi +++ /dev/null @@ -1,147 +0,0 @@ - -@menu -* Starting Bro Daemon:: -* Running Bro from the command line:: -* Bro Cron Scripts :: -@end menu - -@c ********************************************************************* -@node Starting Bro Daemon -@section Starting Bro Daemon -@cindex starting Bro daemon -@cindex bro.rc - -Bro is automatically started at boot time via the @command{bro.rc} -script (located in @file{$BROHOME/etc} and @file{/usr/local/etc/rc.d} on -FreeBSD, or @file{/etc/init.d} on Linux). - -To run this script by hand, type: -@example -bro.rc start -@end example -or -@example -bro.rc checkpoint -@end example -or -@example -bro.rc stop -@end example - -Use @code{checkpoint} to restart a running Bro, loading a new policy file. - - -Note that under Linux, Bro must be run as the 'root' user. -Linux must have root privilages to capture packets. - -@c ********************************************************************* - -@node Running Bro from the command line -@section Running Bro from the command line -@cindex Running Bro from the command line - -If you use @code{bash} for your shell, you do something like this -to start Bro by hand: - -@example -cd /usr/local/bro -. etc/bro.cfg -./bro -i eth1 -i eth2 myhost.mysite.org.bro -@end example - -The '. etc/bro.cfg' should set your $BROHOME and $BROPATH -correctly to find all of the needed the files. - -Files are loaded is the following order: Bro is invoked with a start -file (in the above myhost.mysite.org.bro). In that file (which is -in $BROHOME/site) there should be a couple of lines like this at -the top: - -@verbatim ----------------- myhost.mysite.org.bro ---------------------------- -@prefixes = local -@load site # file generated by the network script for dynamic config - # of the local network subnets. - -# Make any changes to policy starting here -.... --------------- end -------------------------------------- -@end verbatim - -The '@@load site' will load the local.site.bro file from $BROHOME/site. -If you are making changes, you should make them in 'myhost.mysite.bro' -file. - -Bro can also be run on @code{tcpdump -w} files instead of on live traffic. -To do this, you must set a @code{BROPATH} enviroment variable to point -at your set of policy scripts. For example (in csh): - -@example -setenv BROHOME /usr/local/bro -setenv BROPATH $BROHOME/site:$BROHOME/policy -bro -r dumpfile brohost -@end example - -More information on Bro run-time flags and environment variables -is available in the -@uref{http://www.bro-ids.org/Bro-reference-manual/Bro-flags-and-run_002dtime-environment.html, -Reference Manual}. - -@c ********************************************************************* -@node Bro Cron Scripts -@section Bro Cron Scripts -@cindex bro_generate_report -@cindex bro_log_compress -@cindex check_disk -@cindex managing disk space - -Installing @emph{brolite} automatically creates the -following @command{cron} jobs, -which are run on at the specified intervals. - -@itemize -@item @command{site-report.pl}: generates a text report of all alarms -and notifications -@item @command{mail_reports.sh}:emails the reports generated -by @command{site-report.pl} -to the list of addresses specified in the file @code{$BROHOME/etc/bro.cfg} -@end itemize - -These scripts can also all be run by hand at any time. Be sure your -$BROHOME environment variable is set first. - -As Bro log files can get large quickly, it is important to ensure that -the Bro disk does not fill up. Bro includes some simple scripts to help -manage disk space. Most sites will want to customize these for their -own requirements, and integrate them into their backup system to make -sure files are not removed before they are archived. - -@itemize -@item @command{check_disk.sh}: send email if disk space is too low -@item @command{bro_log_compress.sh}: remove/compress old log files -@end itemize - -These scripts can be customized by editing their settings in -@code{$BROHOME/etc/bro.cfg}. -The settings are as follows: -@itemize -@item @command{check_disk.sh}: -@itemize -@item @command{diskspace_pct}: when disk is >= this percent full, send -email (default = 85%) -@item @command{diskspace_watcher}: list of email addresses to send mail -to -@end itemize -@end itemize - -@itemize -@item @command{bro_log_compress.sh}: -@itemize -@item @command{Days2deletion}: remove files more than this many days old -(default = 60) -@item @command{Days2compression}: compress files more than this many -days -old (default = 30) -@end itemize -@end itemize - diff --git a/doc/user-manual/Bro-setup.texi b/doc/user-manual/Bro-setup.texi deleted file mode 100644 index a8816fec61..0000000000 --- a/doc/user-manual/Bro-setup.texi +++ /dev/null @@ -1,40 +0,0 @@ -@menu -* Bro Environment Variables:: -* Required files/directories:: -* System Configuration and Security of Bro Boxes:: -* Configuring syslog:: -* Placing Bro Boxes on the Network:: -* Filtering Traffic:: -* Selecting Analyzers:: -* Tuning Bro Policy Scripts/event Handlers:: -* Setting up Reports and Special Notifications:: -@end menu - -@node Bro Environment Variables -@section Bro Environment Variables - -@node Required files/directories -@section Required files/directories - -@node System Configuration and Security of Bro Boxes -@section System Configuration and Security of Bro Boxes - -@node Configuring syslog -@section Configuring @emph{syslog} - -@node Placing Bro Boxes on the Network -@section Placing Bro Boxes on the Network - -@node Filtering Traffic -@section Filtering Traffic - -@node Selecting Analyzers -@section Selecting Analyzers - -@node Tuning Bro Policy Scripts/event Handlers -@section Tuning Bro Policy Scripts/event Handlers - -@node Setting up Reports and Special Notifications -@section Setting up Reports and Special Notifications - - diff --git a/doc/user-manual/Bro-signatures.texi b/doc/user-manual/Bro-signatures.texi deleted file mode 100644 index 085aa39eda..0000000000 --- a/doc/user-manual/Bro-signatures.texi +++ /dev/null @@ -1,143 +0,0 @@ - -@emph{NOTE: Bro Signatures mechanism is still under development} - -Signatures in Bro are quite different than standard packet matching signatures such as those used in -@uref{http://www.snort.org', Snort}. A Bro signature, or @emph{Rule}, is a @emph{contextual signature} -that can include connection-level information. Hence Bro signatures generate @strong{far} fewer -false positives. - -However, Bro's contextual signatures are fairly CPU and memory intensive, -and still generate more false positives than we'd like, -so for now they are turned off by default. See the next section for information on how to turn them on. - -For example, an packet-level signature of a HTTP attack only looks at the attack packet, where -the Bro contextual signature also looks for the HTTP reply, and only generates an alarm if the attack was -successful. - -In this section we explain how to customize signatures for your site, -and how to import new signatures from Snort and bro-ids.org. More -information on the details of Bro signatures are in -@uref{http://www.bro-ids.org/Bro-reference-manual/Signature-language.html, the -signature section of the reference manual}. - -The following files are used to control and customize Bro signatures. - -@itemize -@item @code{$BROHOME/site/signatures.sig}: Bro version of snort signatures -@item @code{$BROHOME/policy/sig-addendum.sig}: Bro supplied signatures -@item @code{$BROHOME/policy/sig-action.bro}: policy file to control signature notification type -@end itemize - -Files in @code{$BROHOME/policy} contain the default Bro signatures, and should not be edited. -Files in @code{$BROHOME/site} contain files you will use to customize signatures for your site. -New signatures that you write go here too. All files ending in @code{.sig} in this directory -will be loaded into the signature engine. In fact, all .sig files in any -directory in @code{$BROPATH} (set in @code{$BROHOME/etc/bro.cfg}) will be loaded. - -@menu -* Turning Signatures ON/OFF :: -* Add a New Signature :: -* Editing Existing Signatures :: -* Importing Snort Signatures :: -* Checking for new Signatures from bro-ids.org :: -@end menu - - -@node Turning Signatures ON/OFF -@subsection Turning Signatures ON/OFF -@cindex Turning Signatures ON/OFF - -Signature matching is off by default. To use a small set of -known, high quality signatures, add the following to your site policy file: -@smallexample -@@load brolite-sigs -@end smallexample - -To use the full set of converted snort signatures, -add both of these lines: -@smallexample -@@load brolite-sigs -redef signature_files += "signatures"; -@end smallexample - -If signatures are turned on, then you can control the -signature "action" levels through the file -@code{$BROHOME/site/sigaction.bro}. -You can set the signature action to the one of the following: - -@verbatim - SIG_IGNORE # ignore this sig. completely - SIG_FILE # write to signatures and notice files - SIG_ALARM # alarm and write to notice and alarm files - SIG_ALARM_PER_ORIG # alarm once per originator - SIG_ALARM_ONCE # alarm once and then never again -@end verbatim - -All signatures default to action = @code{SIG_ALARM}. To lower the alarm level of the signature, -add an entry to the file @code{$BROHOME/site/sigaction.bro}. The Bro distribution -contains a default sigaction.bro file that lowers the level of a number of signatures from ALARM -to FILE (notice) . - -To permanently remove a signature you can delete it from the @code{.sig} file. - - -@node Add a New Signature -@subsection Add a New Signature -@cindex Add a New Signature - -To add a new signature to a running Bro, add the signature to the file -@code{$BROHOME/site/site.sig} (or create a new @code{.sig} file in @code{$BROHOME/site}), -and then restart Bro using "@code{$BROHOME/etc/bro.rc checkpoint}". - -A sample signature looks like this: - -@verbatim -signature formmail-cve-1999-0172 { - ip-proto == tcp - dst-ip == 1.2.0.0/16 - dst-port = 80 - http /.*formmail.*\?.*recipient=[^&]*[;|]/ - event "formmail shell command" - } -@end verbatim - -For more details, see the -@uref{http://www.bro-ids.org/Bro-reference-manual/Signature-language.html, -reference manual}. - -@node Editing Existing Signatures -@subsection Editing Existing Signatures -@cindex Editing Existing Signatures - -Bro supplied signatures are in $BROHOME/sigs. You should not edit these, as they will -get overwritten when you update Bro. Instead, make your modifications in $BROHOME/site. -If you use the same signature ID as an existing signature, the site sig will take precedence. - -@node Importing Snort Signatures -@subsection Importing Snort Signatures -@cindex Importing Snort Signatures - -New snort signatures come out almost every week. To add these to Bro, do the following: - -(XXX section not done!) - -Add instructions for incorporating new sigs from Snort. - -@node Checking for new Signatures from bro-ids.org -@subsection Checking for new Signatures from bro-ids.org -@cindex download new Signatures - -note: this functionality is currently under development, and does -not yet exist - -The Bro team will be constantly updating our set of default signatures and posting -them on the Bro web site. To download the latest signatures and incorporate -them into your Bro setup, run the script: -@example -$BROHOME/scripts/update-sigs -@end example -This script uses the @code{wget} command to download the latest signatures -and puts them into -the required Bro files, and then restarts Bro to load the new signatures.. - - diff --git a/doc/user-manual/Bro-software.texi b/doc/user-manual/Bro-software.texi deleted file mode 100644 index d15a57b30a..0000000000 --- a/doc/user-manual/Bro-software.texi +++ /dev/null @@ -1,71 +0,0 @@ - -@menu -* OS platform(s) to use:: -* Required software:: -* Optional software:: -@end menu - -@node OS platform(s) to use -@section OS platform(s) to use -@cindex OS issues - -Bro will run on a variety of UNIX flavors such as FreeBSD, NetBSD, and Solaris, and will also -run on Linux. Although Bro has been ported or can readily be ported to many flavors of Unix, -Bro currently runs best on FreeBSD for the following reasons: - -@itemize -@item Most current development and system integration efforts are taking place on FreeBSD. -@item Compiling Bro on FreeBSD is more straightforward than on any other OS. -@item Bro performance on this platform has been extensively tested. -@item Policy scripts have been tested more on Free BSD than on any other OS. -@item Bro documentation (such as this User Manual) is oriented more towards FreeBSD than -any other flavor of Unix. Discussion of startup scripts, for example, focuses on files and -directories found in FreeBSD systems. -@end itemize - -An important consideration in your choice of operating system on which Bro will run is whether -@command{BPF} runs in the kernel. Bro uses @command{BPF} to ignore packets that Bro does not need to inspect, thereby -greatly increasing Bro's efficiency. The fact that @command{BPF} is not available in Solaris is a problem, -although Solaris at least has a @command{BPF} compatibility mode that to some degree solves the problem. -@command{BPF} is also not available in most flavors of Linux, although certain flavors of Linux such as -RedHat run libpcap, making it possible to filter packets that are captured in a manner that will -make Bro run efficiently. - - -@node Required software -@section Required software - -Additional software is necessary to support certain Bro functions. Each package or tool must be -in the Bro user's PATH (as explained more fully in Section 4): - -@itemize -@item tcpdump: This enables you to use certain rules ("filters") to determine the packets that are -and are not captured on a network. You can obtain tcpdump from ftp://ftp.ee.lbl.gov - -@item libpcap: Available from ftp.ee.lbl.gov. This is the packet capture library, developed at -LBNL. - -@item tcpslice: Available from ftp.ee.lbl.gov. This allows for the editing and extraction of -heuristic-based TCP/IP traffic captured via tcpdump. - -@item Perl: Available from ftp.perl.org. Perl version XX or higher is necessary for some of the scripts to run. - -@item BIND 8 or 9: Available from ftp.isc.org. -It is necessary to run a caching DNS server on the Bro machine so that when Bro is -run to prep the entries in the policies that a more consistent resolver is used. (not clear??) This can cause -policies to not be interpreted correctly, so this is an important factor in setting up a Bro box. -The local DNS server is really present further for the DNS entries to persist throughout Bro's -operation and rotation of its logs (which requires that Bro's process be checkpointed). - -@end itemize - -@node Optional software -@section Optional software - -The utility called @command{ipw} is also very useful. There is a package available for FreeBSD -from ftp.freebsd.org. This allows one to simply specify an IP address and it will -determine who is responsible for that IP range and provide contact information for that -person or persons. - - - diff --git a/doc/user-manual/Bro-tuning.texi b/doc/user-manual/Bro-tuning.texi deleted file mode 100644 index 538c5fb0c3..0000000000 --- a/doc/user-manual/Bro-tuning.texi +++ /dev/null @@ -1,144 +0,0 @@ - -@strong{NOTE: This chapter still a rough draft and incomplete} - -If the link you are monitoring with Bro has -too many connections per second, or if you have too many policy -modules loaded, it is possible that Bro will not be able to keep -up, and that the Bro host will drop too many packets to be able to -perform accurate analysis. - -A "rule of thumb" for Bro is that if CPU usage is < 50% and memory -use is < 70% of physical memory, than you should not have any worries. - -Otherwise you might want to explore the tuning options below. - -For sites with an extremely high load you might consider using multiple -Bro boxes, each configured to capture and analyze different types of traffic. - -Note that the amount of CPU required by Bro is a function of both the number -of connections/second and the number of packets/second. So it's possible -that a large site (e.g., 2,000 hosts) on a slow link (e.g., 100 Mbps) would -still have performance issues because it has a very large -number of connections / second. - -@menu -* Hardware and OS Tuning :: -* Bro Policy Tuning :: -@end menu - -@node Hardware and OS Tuning -@section Hardware and OS Tuning -@cindex Hardware Tuning -@cindex OS Tuning - -If your CPU load > 50% or your memory footprint is > 70% of physical -memory, an obvious solution is to buy a faster CPU or more memory. - -If this is not possible, here are some other things to try. - -@strong{FreeBSD} - -First, check that your BPF buffer size is big enough. The Bro installation -script should set this correctly for you, but to test this, do: -@smallexample -sysctl debug.bpf_bufsize -sysctl debug.bpf_maxbufsize -@end smallexample - -They should both be at least 4 MB. - -Next, if your Bro host is capturing packets on 2 interfaces and you are -running FreeBSD, we provide a patched kernel that bonds both interfaces -into a single interface at the BPF level. This reduces CPU load considerably. -This patched kernel also increases the default per-process memory limits. - -This kernel source is available for download at: -@smallexample -@uref{http://www.bro-ids.org/download/FreeBSD.4.10.bro.tgz}. -@end smallexample - -To install this kernel and the BPF bonding utilites, type: - -@smallexample -tar xfz fbsd.4.10.bond.tgz -cd FreeBSD-4-10-RELEASE/sys/i386/conf -/usr/sbin/config BRO -cd ../../compile/BRO -make depend -make -make install - -cd FreeBSD-4-10-RELEASE/local/sbin/bpfbond/ -make -make install - -reboot -@end smallexample - -For more instructions on rebuilding the kernel, see: -@uref{http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html}. - - -@strong{Linux} - -Check that the net.core.rmem_max buffer is big enough. The Bro installation -script should set this correctly for you, but to test this, do: -@smallexample -sysctl net.core.rmem_max -@end smallexample - -It should be at least 4 MB. - -For heavy traffic load, the Linux version of libpcap has a hard time keeping up. -There are a couple a options available to improve Linux pcap performance. -These include: - -Phil Wood's libpcap replacement: (see http://public.lanl.gov/cpw/) -Luca Deri's patch to fix libpcap issues. (see http://luca.ntop.org/Ring.pdf) - -(Note that Phil Wood's version of libpcap seems to be buggy in non-blocking -mode. Build Bro using the --disable-selectloop option to disable non-blocking -mode if using this version of libpcap.) - - -@node Bro Policy Tuning -@section Bro Policy Tuning -@cindex Bro Policy Tuning - -If the hardware and OS tuning solutions fail to bring your -CPU load or memory consumption under control, next you will -have to start turning off analyzers. Signatures are particularly CPU -and memory intensive, -so try turning it off or greatly reduce the number of signatures it -is processing. The HTTP analyzers are also CPU intensive. For example, -to turn off the HTTP reply analyzer, add the following lines at the beginning -of the file @code{$BROHOME/site/brohost.bro}, before any @@load commands. - -@smallexample -@@unload http-reply -@end smallexample - -Another solution is to modify libpcap filter for Bro. This is done -by adding @code{restrict_filters}. For example, to only capture SYN/FIN -packets from a large web proxy, you can do this: - -@verbatim -redef restrict_filters += { ["not proxy outbound Web replies"] = - "not (host bigproxy.mysite.net and - src port 80 and (tcp[13] & 7 == 0))" }; -@end verbatim - -This filter will allow you to record the number and size of the HTTP replies, -but will not do further HTTP analysis. - -Another way to reduce the CPU load of Bro analysis is to split the work -across two Bro hosts. An easy way to do this is to take the sum of the -source and destination IPs, and monitor even combinations -on one host and odd combinations on a second host. - -For example: - -@verbatim -redef restrict_filters += { ["capture even src/dest pairs only"] = "(ip[12:4] + ip[16:4]) & 1 == 0" }; -@end verbatim - diff --git a/doc/user-manual/Bro-user-manual.pdf b/doc/user-manual/Bro-user-manual.pdf deleted file mode 100644 index 9e6f15a144abaf14c3e759d2dc1fbcf6dee92597..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409511 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℞8w42rq{RDHzG=w%eyTv;8%FLniGU#TC2Fo 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

    &drvm|8&QD`SpDW-xT{nprBFp2cGAfadM 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 z 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%0DpxYXm?^X2g5Vw}dm5Ek_6^wk=c^$_>;0$; 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

    LsaiZ!rmgZo$ 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 diff --git a/doc/user-manual/bro-deployment.png b/doc/user-manual/bro-deployment.png deleted file mode 100644 index 6c4568c0428e69961d9c1a08c4063c7dda593d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36530 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 Vy;w1bBI{;N$!HrUTrcuQu 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 bL%OqN|3g+O!@T+s_kQoD>xF(T|4sHkr$Ni! diff --git a/doc/user-manual/bro.css b/doc/user-manual/bro.css deleted file mode 100644 index 0bebab8e63..0000000000 --- a/doc/user-manual/bro.css +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Custom nllite stylesheet - */ -body { - font-family: Verdana, Arial, serif; -} -H1 { - color: #339933; -} -A:link, A:active, A:visited, A:hover { - color: #3333ff; - text-decoration: none; -} -A:hover { - border-bottom: 1px dotted red; - color: red; - text-decoration: none; -} -ul.menu { - list-style-type: circle; - list-style-position: inside; - padding: 5px; - background-color: #ccffcc; - border: 1px dashed #333333; -} -hr { - display: none; -} -div.node { - font-size: 12px; - font-weight: bold; - background-color: #ccffcc; -/* - line-height: 0; -*/ - padding: 0.5em; -} -table.cartouche { - background-color: white; -} -table { - border: none; -} diff --git a/example-attacks/ftp-site-exec.trace b/example-attacks/ftp-site-exec.trace deleted file mode 100644 index 2562eb709863af374c72dacf69571f6e24cf8f16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67810 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 UNy8TuNl-r$>63AJdvXf>4O%Tz5dZ)H diff --git a/install-sh b/install-sh deleted file mode 100755 index ebc66913e9..0000000000 --- a/install-sh +++ /dev/null @@ -1,250 +0,0 @@ -#! /bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/libpcap.bufsize.patch b/libpcap.bufsize.patch deleted file mode 100644 index ac5293db5b..0000000000 --- a/libpcap.bufsize.patch +++ /dev/null @@ -1,56 +0,0 @@ -*** pcap-bpf.c 1998/02/15 23:35:23 1.30 ---- pcap-bpf.c 2000/01/26 23:20:35 1.32 -*************** -*** 159,165 **** - int fd; - struct ifreq ifr; - struct bpf_version bv; -! u_int v; - pcap_t *p; - - p = (pcap_t *)malloc(sizeof(*p)); ---- 166,172 ---- - int fd; - struct ifreq ifr; - struct bpf_version bv; -! u_int v, n; - pcap_t *p; - - p = (pcap_t *)malloc(sizeof(*p)); -*************** -*** 184,196 **** - sprintf(ebuf, "kernel bpf filter out of date"); - goto bad; - } -! v = 32768; /* XXX this should be a user-accessible hook */ -! /* Ignore the return value - this is because the call fails on -! * BPF systems that don't have kernel malloc. And if the call -! * fails, it's no big deal, we just continue to use the standard -! * buffer size. - */ -! (void) ioctl(fd, BIOCSBLEN, (caddr_t)&v); - - (void)strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name)); - if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) { ---- 191,211 ---- - sprintf(ebuf, "kernel bpf filter out of date"); - goto bad; - } -! -! /* -! * The bpf buffer length typically defaults to 4k. Check to see -! * what it is and if it's not larger than 32k, try to raise it. - */ -! n = 32768; /* XXX this should be a user-accessible hook */ -! if (ioctl(fd, BIOCGBLEN, (caddr_t)&v) >= 0 && v < n) { -! /* -! * Ignore the return value - this is because the call -! * fails on BPF systems that don't have kernel malloc. -! * And if the call fails, it's no big deal, we just -! * continue to use the standard buffer size. -! */ -! (void) ioctl(fd, BIOCSBLEN, (caddr_t)&n); -! } - - (void)strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name)); - if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) { diff --git a/linux-include/README b/linux-include/README deleted file mode 100644 index d7f328aef0..0000000000 --- a/linux-include/README +++ /dev/null @@ -1,2 +0,0 @@ -This is the linux compatibility include tree from the tcpdump -distribution. diff --git a/linux-include/net/slcompress.h b/linux-include/net/slcompress.h deleted file mode 100644 index 8075486120..0000000000 --- a/linux-include/net/slcompress.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Definitions for tcp compression routines. - * - * @(#) $Header$ (LBL) - * - * Copyright (c) 1989, 1990, 1992, 1993 Regents of the University of - * California. All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * Van Jacobson (van@ee.lbl.gov), Dec 31, 1989: - * - Initial distribution. - */ - -#define MAX_STATES 16 /* must be > 2 and < 256 */ -#define MAX_HDR MLEN /* XXX 4bsd-ism: should really be 128 */ - -/* - * Compressed packet format: - * - * The first octet contains the packet type (top 3 bits), TCP - * 'push' bit, and flags that indicate which of the 4 TCP sequence - * numbers have changed (bottom 5 bits). The next octet is a - * conversation number that associates a saved IP/TCP header with - * the compressed packet. The next two octets are the TCP checksum - * from the original datagram. The next 0 to 15 octets are - * sequence number changes, one change per bit set in the header - * (there may be no changes and there are two special cases where - * the receiver implicitly knows what changed -- see below). - * - * There are 5 numbers which can change (they are always inserted - * in the following order): TCP urgent pointer, window, - * acknowlegement, sequence number and IP ID. (The urgent pointer - * is different from the others in that its value is sent, not the - * change in value.) Since typical use of SLIP links is biased - * toward small packets (see comments on MTU/MSS below), changes - * use a variable length coding with one octet for numbers in the - * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the - * range 256 - 65535 or 0. (If the change in sequence number or - * ack is more than 65535, an uncompressed packet is sent.) - */ - -/* - * Packet types (must not conflict with IP protocol version) - * - * The top nibble of the first octet is the packet type. There are - * three possible types: IP (not proto TCP or tcp with one of the - * control flags set); uncompressed TCP (a normal IP/TCP packet but - * with the 8-bit protocol field replaced by an 8-bit connection id -- - * this type of packet syncs the sender & receiver); and compressed - * TCP (described above). - * - * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and - * is logically part of the 4-bit "changes" field that follows. Top - * three bits are actual packet type. For backward compatibility - * and in the interest of conserving bits, numbers are chosen so the - * IP protocol version number (4) which normally appears in this nibble - * means "IP packet". - */ - -/* packet types */ -#define TYPE_IP 0x40 -#define TYPE_UNCOMPRESSED_TCP 0x70 -#define TYPE_COMPRESSED_TCP 0x80 -#define TYPE_ERROR 0x00 - -/* Bits in first octet of compressed packet */ -#define NEW_C 0x40 /* flag bits for what changed in a packet */ -#define NEW_I 0x20 -#define NEW_S 0x08 -#define NEW_A 0x04 -#define NEW_W 0x02 -#define NEW_U 0x01 - -/* reserved, special-case values of above */ -#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */ -#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */ -#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U) - -#define TCP_PUSH_BIT 0x10 - - -/* - * "state" data for each active tcp conversation on the wire. This is - * basically a copy of the entire IP/TCP header from the last packet - * we saw from the conversation together with a small identifier - * the transmit & receive ends of the line use to locate saved header. - */ -struct cstate { - struct cstate *cs_next; /* next most recently used cstate (xmit only) */ - u_short cs_hlen; /* size of hdr (receive only) */ - u_char cs_id; /* connection # associated with this state */ - u_char cs_filler; - union { - char csu_hdr[MAX_HDR]; - struct ip csu_ip; /* ip/tcp hdr from most recent packet */ - } slcs_u; -}; -#define cs_ip slcs_u.csu_ip -#define cs_hdr slcs_u.csu_hdr - -/* - * all the state data for one serial line (we need one of these - * per line). - */ -struct slcompress { - struct cstate *last_cs; /* most recently used tstate */ - u_char last_recv; /* last rcvd conn. id */ - u_char last_xmit; /* last sent conn. id */ - u_short flags; -#ifndef SL_NO_STATS - u_int sls_packets; /* outbound packets */ - u_int sls_compressed; /* outbound compressed packets */ - u_int sls_searches; /* searches for connection state */ - u_int sls_misses; /* times couldn't find conn. state */ - u_int sls_uncompressedin;/* inbound uncompressed packets */ - u_int sls_compressedin; /* inbound compressed packets */ - u_int sls_errorin; /* inbound unknown type packets */ - u_int sls_tossed; /* inbound packets tossed because of error */ -#endif - struct cstate tstate[MAX_STATES]; /* xmit connection states */ - struct cstate rstate[MAX_STATES]; /* receive connection states */ -}; -/* flag values */ -#define SLF_TOSS 1 /* tossing rcvd frames because of input err */ - -#ifdef KERNEL -#ifdef __STDC__ -extern void sl_compress_init(struct slcompress *); -extern u_char sl_compress_tcp(struct mbuf *, struct ip *, struct slcompress *); -extern int sl_uncompress_tcp(struct mbuf *, int, u_int, struct slcompress *); -#else -extern void sl_compress_init(); -extern u_char sl_compress_tcp(); -extern int sl_uncompress_tcp(); -#endif -#endif - diff --git a/linux-include/net/slip.h b/linux-include/net/slip.h deleted file mode 100644 index 8d62fa3336..0000000000 --- a/linux-include/net/slip.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Definitions that user level programs might need to know to interact - * with serial line IP (slip) lines. - - * @(#) $Header$ (LBL) - * - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* - * ioctl to get slip interface unit number (e.g., sl0, sl1, etc.) - * assigned to some terminal line with a slip module pushed on it. - */ -#ifdef __STDC__ -#define SLIOGUNIT _IOR('B', 1, int) -#else -#define SLIOGUNIT _IOR(B, 1, int) -#endif - -/* - * definitions of the pseudo- link-level header attached to slip - * packets grabbed by the packet filter (bpf) traffic monitor. - */ -#define SLIP_HDRLEN 16 - -#define SLX_DIR 0 -#define SLX_CHDR 1 -#define CHDR_LEN 15 - -#define SLIPDIR_IN 0 -#define SLIPDIR_OUT 1 - diff --git a/linux-include/netinet/if_ether.h b/linux-include/netinet/if_ether.h deleted file mode 100644 index 4148ab83ea..0000000000 --- a/linux-include/netinet/if_ether.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)if_ether.h 8.3 (Berkeley) 5/2/95 - */ - -#include - -/* - * Ethernet address - 6 octets - */ -struct ether_addr { - u_char ether_addr_octet[6]; -}; - -/* - * Structure of a 10Mb/s Ethernet header. - */ -struct ether_header { - u_char ether_dhost[6]; - u_char ether_shost[6]; - u_short ether_type; -}; - -#define ETHERTYPE_PUP 0x0200 /* PUP protocol */ -#define ETHERTYPE_IP 0x0800 /* IP protocol */ -#define ETHERTYPE_ARP 0x0806 /* Addr. resolution protocol */ -#define ETHERTYPE_REVARP 0x8035 /* reverse Addr. resolution protocol */ - -/* - * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have - * (type-ETHERTYPE_TRAIL)*512 bytes of data followed - * by an ETHER type (as given above) and then the (variable-length) header. - */ -#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ -#define ETHERTYPE_NTRAILER 16 - -#define ETHERMTU 1500 -#define ETHERMIN (60-14) - -/* - * Ethernet Address Resolution Protocol. - * - * See RFC 826 for protocol description. Structure below is adapted - * to resolving internet addresses. Field names used correspond to - * RFC 826. - */ -struct ether_arp { - struct arphdr ea_hdr; /* fixed-size header */ - u_char arp_sha[6]; /* sender hardware address */ - u_char arp_spa[4]; /* sender protocol address */ - u_char arp_tha[6]; /* target hardware address */ - u_char arp_tpa[4]; /* target protocol address */ -}; -#define arp_hrd ea_hdr.ar_hrd -#define arp_pro ea_hdr.ar_pro -#define arp_hln ea_hdr.ar_hln -#define arp_pln ea_hdr.ar_pln -#define arp_op ea_hdr.ar_op diff --git a/linux-include/netinet/in_systm.h b/linux-include/netinet/in_systm.h deleted file mode 100644 index d9a7c3e233..0000000000 --- a/linux-include/netinet/in_systm.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)in_systm.h 8.1 (Berkeley) 6/10/93 - */ - -/* - * Miscellaneous internetwork - * definitions for kernel. - */ - -/* - * Network types. - * - * Internally the system keeps counters in the headers with the bytes - * swapped so that VAX instructions will work on them. It reverses - * the bytes before transmission at each protocol level. The n_ types - * represent the types with the bytes in ``high-ender'' order. - */ -typedef u_short n_short; /* short as received from the net */ -typedef u_int n_long; /* long as received from the net */ - -typedef u_int n_time; /* ms since 00:00 GMT, byte rev */ - -#ifdef KERNEL -n_time iptime __P((void)); -#endif diff --git a/linux-include/netinet/ip.h b/linux-include/netinet/ip.h deleted file mode 100644 index 93f98cdbc9..0000000000 --- a/linux-include/netinet/ip.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ip.h 8.2 (Berkeley) 6/1/94 - */ - -#include - -/* - * Definitions for internet protocol version 4. - * Per RFC 791, September 1981. - */ -#define IPVERSION 4 - -/* - * Structure of an internet header, naked of options. - * - * We declare ip_len and ip_off to be short, rather than u_short - * pragmatically since otherwise unsigned comparisons can result - * against negative integers quite easily, and fail in subtle ways. - */ -struct ip { -#if BYTE_ORDER == LITTLE_ENDIAN - u_char ip_hl:4, /* header length */ - ip_v:4; /* version */ -#endif -#if BYTE_ORDER == BIG_ENDIAN - u_char ip_v:4, /* version */ - ip_hl:4; /* header length */ -#endif - u_char ip_tos; /* type of service */ - short ip_len; /* total length */ - u_short ip_id; /* identification */ - short ip_off; /* fragment offset field */ -#define IP_DF 0x4000 /* dont fragment flag */ -#define IP_MF 0x2000 /* more fragments flag */ -#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ - u_char ip_ttl; /* time to live */ - u_char ip_p; /* protocol */ - u_short ip_sum; /* checksum */ - struct in_addr ip_src,ip_dst; /* source and dest address */ -}; - -#define IP_MAXPACKET 65535 /* maximum packet size */ - -/* - * Definitions for IP type of service (ip_tos) - */ -#define IPTOS_LOWDELAY 0x10 -#define IPTOS_THROUGHPUT 0x08 -#define IPTOS_RELIABILITY 0x04 - -/* - * Definitions for IP precedence (also in ip_tos) (hopefully unused) - */ -#define IPTOS_PREC_NETCONTROL 0xe0 -#define IPTOS_PREC_INTERNETCONTROL 0xc0 -#define IPTOS_PREC_CRITIC_ECP 0xa0 -#define IPTOS_PREC_FLASHOVERRIDE 0x80 -#define IPTOS_PREC_FLASH 0x60 -#define IPTOS_PREC_IMMEDIATE 0x40 -#define IPTOS_PREC_PRIORITY 0x20 -#define IPTOS_PREC_ROUTINE 0x00 - -/* - * Definitions for options. - */ -#define IPOPT_COPIED(o) ((o)&0x80) -#define IPOPT_CLASS(o) ((o)&0x60) -#define IPOPT_NUMBER(o) ((o)&0x1f) - -#define IPOPT_CONTROL 0x00 -#define IPOPT_RESERVED1 0x20 -#define IPOPT_DEBMEAS 0x40 -#define IPOPT_RESERVED2 0x60 - -#define IPOPT_EOL 0 /* end of option list */ -#define IPOPT_NOP 1 /* no operation */ - -#define IPOPT_RR 7 /* record packet route */ -#define IPOPT_TS 68 /* timestamp */ -#define IPOPT_SECURITY 130 /* provide s,c,h,tcc */ -#define IPOPT_LSRR 131 /* loose source route */ -#define IPOPT_SATID 136 /* satnet id */ -#define IPOPT_SSRR 137 /* strict source route */ - -/* - * Offsets to fields in options other than EOL and NOP. - */ -#define IPOPT_OPTVAL 0 /* option ID */ -#define IPOPT_OLEN 1 /* option length */ -#define IPOPT_OFFSET 2 /* offset within option */ -#define IPOPT_MINOFF 4 /* min value of above */ - -/* - * Time stamp option structure. - */ -struct ip_timestamp { - u_char ipt_code; /* IPOPT_TS */ - u_char ipt_len; /* size of structure (variable) */ - u_char ipt_ptr; /* index of current entry */ -#if BYTE_ORDER == LITTLE_ENDIAN - u_char ipt_flg:4, /* flags, see below */ - ipt_oflw:4; /* overflow counter */ -#endif -#if BYTE_ORDER == BIG_ENDIAN - u_char ipt_oflw:4, /* overflow counter */ - ipt_flg:4; /* flags, see below */ -#endif - union ipt_timestamp { - n_long ipt_time[1]; - struct ipt_ta { - struct in_addr ipt_addr; - n_long ipt_time; - } ipt_ta[1]; - } ipt_timestamp; -}; - -/* flag bits for ipt_flg */ -#define IPOPT_TS_TSONLY 0 /* timestamps only */ -#define IPOPT_TS_TSANDADDR 1 /* timestamps and addresses */ -#define IPOPT_TS_PRESPEC 3 /* specified modules only */ - -/* bits for security (not byte swapped) */ -#define IPOPT_SECUR_UNCLASS 0x0000 -#define IPOPT_SECUR_CONFID 0xf135 -#define IPOPT_SECUR_EFTO 0x789a -#define IPOPT_SECUR_MMMM 0xbc4d -#define IPOPT_SECUR_RESTR 0xaf13 -#define IPOPT_SECUR_SECRET 0xd788 -#define IPOPT_SECUR_TOPSECRET 0x6bc5 - -/* - * Internet implementation parameters. - */ -#define MAXTTL 255 /* maximum time to live (seconds) */ -#define IPDEFTTL 64 /* default ttl, from RFC 1340 */ -#define IPFRAGTTL 60 /* time to live for frags, slowhz */ -#define IPTTLDEC 1 /* subtracted when forwarding */ - -#define IP_MSS 576 /* default maximum segment size */ diff --git a/linux-include/netinet/ip_icmp.h b/linux-include/netinet/ip_icmp.h deleted file mode 100644 index c3fdc45390..0000000000 --- a/linux-include/netinet/ip_icmp.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ip_icmp.h 8.1 (Berkeley) 6/10/93 - */ - -/* - * Interface Control Message Protocol Definitions. - * Per RFC 792, September 1981. - */ - -/* - * Structure of an icmp header. - */ -struct icmp { - u_char icmp_type; /* type of message, see below */ - u_char icmp_code; /* type sub code */ - u_short icmp_cksum; /* ones complement cksum of struct */ - union { - u_char ih_pptr; /* ICMP_PARAMPROB */ - struct in_addr ih_gwaddr; /* ICMP_REDIRECT */ - struct ih_idseq { - n_short icd_id; - n_short icd_seq; - } ih_idseq; - int ih_void; - - /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ - struct ih_pmtu { - n_short ipm_void; - n_short ipm_nextmtu; - } ih_pmtu; - } icmp_hun; -#define icmp_pptr icmp_hun.ih_pptr -#define icmp_gwaddr icmp_hun.ih_gwaddr -#define icmp_id icmp_hun.ih_idseq.icd_id -#define icmp_seq icmp_hun.ih_idseq.icd_seq -#define icmp_void icmp_hun.ih_void -#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void -#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu - union { - struct id_ts { - n_time its_otime; - n_time its_rtime; - n_time its_ttime; - } id_ts; - struct id_ip { - struct ip idi_ip; - /* options and then 64 bits of data */ - } id_ip; - u_int id_mask; - char id_data[1]; - } icmp_dun; -#define icmp_otime icmp_dun.id_ts.its_otime -#define icmp_rtime icmp_dun.id_ts.its_rtime -#define icmp_ttime icmp_dun.id_ts.its_ttime -#define icmp_ip icmp_dun.id_ip.idi_ip -#define icmp_mask icmp_dun.id_mask -#define icmp_data icmp_dun.id_data -}; - -/* - * Lower bounds on packet lengths for various types. - * For the error advice packets must first insure that the - * packet is large enought to contain the returned ip header. - * Only then can we do the check to see if 64 bits of packet - * data have been returned, since we need to check the returned - * ip header length. - */ -#define ICMP_MINLEN 8 /* abs minimum */ -#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */ -#define ICMP_MASKLEN 12 /* address mask */ -#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */ -#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8) - /* N.B.: must separately check that ip_hl >= 5 */ - -/* - * Definition of type and code field values. - */ -#define ICMP_ECHOREPLY 0 /* echo reply */ -#define ICMP_UNREACH 3 /* dest unreachable, codes: */ -#define ICMP_UNREACH_NET 0 /* bad net */ -#define ICMP_UNREACH_HOST 1 /* bad host */ -#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */ -#define ICMP_UNREACH_PORT 3 /* bad port */ -#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */ -#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */ -#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */ -#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */ -#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */ -#define ICMP_UNREACH_NET_PROHIB 9 /* prohibited access */ -#define ICMP_UNREACH_HOST_PROHIB 10 /* ditto */ -#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */ -#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */ -#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */ -#define ICMP_REDIRECT 5 /* shorter route, codes: */ -#define ICMP_REDIRECT_NET 0 /* for network */ -#define ICMP_REDIRECT_HOST 1 /* for host */ -#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */ -#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */ -#define ICMP_ECHO 8 /* echo service */ -#define ICMP_ROUTERADVERT 9 /* router advertisement */ -#define ICMP_ROUTERSOLICIT 10 /* router solicitation */ -#define ICMP_TIMXCEED 11 /* time exceeded, code: */ -#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */ -#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */ -#define ICMP_PARAMPROB 12 /* ip header bad */ -#define ICMP_PARAMPROB_OPTABSENT 1 /* req. opt. absent */ -#define ICMP_TSTAMP 13 /* timestamp request */ -#define ICMP_TSTAMPREPLY 14 /* timestamp reply */ -#define ICMP_IREQ 15 /* information request */ -#define ICMP_IREQREPLY 16 /* information reply */ -#define ICMP_MASKREQ 17 /* address mask request */ -#define ICMP_MASKREPLY 18 /* address mask reply */ - -#define ICMP_MAXTYPE 18 - -#define ICMP_INFOTYPE(type) \ - ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \ - (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \ - (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \ - (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \ - (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY) - -#ifdef KERNEL -void icmp_error __P((struct mbuf *, int, int, n_int, struct ifnet *)); -void icmp_input __P((struct mbuf *, int)); -void icmp_reflect __P((struct mbuf *)); -void icmp_send __P((struct mbuf *, struct mbuf *)); -int icmp_sysctl __P((int *, u_int, void *, size_t *, void *, size_t)); -#endif diff --git a/linux-include/netinet/ip_var.h b/linux-include/netinet/ip_var.h deleted file mode 100644 index c528b62fa9..0000000000 --- a/linux-include/netinet/ip_var.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ip_var.h 8.2 (Berkeley) 1/9/95 - */ - -#include - -/* - * Overlay for ip header used by other protocols (tcp, udp). - */ -struct ipovly { - caddr_t ih_next, ih_prev; /* for protocol sequence q's */ - u_char ih_x1; /* (unused) */ - u_char ih_pr; /* protocol */ - short ih_len; /* protocol length */ - struct in_addr ih_src; /* source internet address */ - struct in_addr ih_dst; /* destination internet address */ -}; - -/* - * Ip reassembly queue structure. Each fragment - * being reassembled is attached to one of these structures. - * They are timed out after ipq_ttl drops to 0, and may also - * be reclaimed if memory becomes tight. - */ -struct ipq { - struct ipq *next,*prev; /* to other reass headers */ - u_char ipq_ttl; /* time for reass q to live */ - u_char ipq_p; /* protocol of this fragment */ - u_short ipq_id; /* sequence id for reassembly */ - struct ipasfrag *ipq_next,*ipq_prev; - /* to ip headers of fragments */ - struct in_addr ipq_src,ipq_dst; -}; - -/* - * Ip header, when holding a fragment. - * - * Note: ipf_next must be at same offset as ipq_next above - */ -struct ipasfrag { -#if BYTE_ORDER == LITTLE_ENDIAN - u_char ip_hl:4, - ip_v:4; -#endif -#if BYTE_ORDER == BIG_ENDIAN - u_char ip_v:4, - ip_hl:4; -#endif - u_char ipf_mff; /* XXX overlays ip_tos: use low bit - * to avoid destroying tos; - * copied from (ip_off&IP_MF) */ - short ip_len; - u_short ip_id; - short ip_off; - u_char ip_ttl; - u_char ip_p; - u_short ip_sum; - struct ipasfrag *ipf_next; /* next fragment */ - struct ipasfrag *ipf_prev; /* previous fragment */ -}; - -/* - * Structure stored in mbuf in inpcb.ip_options - * and passed to ip_output when ip options are in use. - * The actual length of the options (including ipopt_dst) - * is in m_len. - */ -#define MAX_IPOPTLEN 40 - -struct ipoption { - struct in_addr ipopt_dst; /* first-hop dst if source routed */ - char ipopt_list[MAX_IPOPTLEN]; /* options proper */ -}; - -struct ipstat { - n_long ips_total; /* total packets received */ - n_long ips_badsum; /* checksum bad */ - n_long ips_tooshort; /* packet too short */ - n_long ips_toosmall; /* not enough data */ - n_long ips_badhlen; /* ip header length < data size */ - n_long ips_badlen; /* ip length < ip header length */ - n_long ips_fragments; /* fragments received */ - n_long ips_fragdropped; /* frags dropped (dups, out of space) */ - n_long ips_fragtimeout; /* fragments timed out */ - n_long ips_forward; /* packets forwarded */ - n_long ips_cantforward; /* packets rcvd for unreachable dest */ - n_long ips_redirectsent; /* packets forwarded on same net */ - n_long ips_noproto; /* unknown or unsupported protocol */ - n_long ips_delivered; /* datagrams delivered to upper level*/ - n_long ips_localout; /* total ip packets generated here */ - n_long ips_odropped; /* lost packets due to nobufs, etc. */ - n_long ips_reassembled; /* total packets reassembled ok */ - n_long ips_fragmented; /* datagrams sucessfully fragmented */ - n_long ips_ofragments; /* output fragments created */ - n_long ips_cantfrag; /* don't fragment flag was set, etc. */ - n_long ips_badoptions; /* error in option processing */ - n_long ips_noroute; /* packets discarded due to no route */ - n_long ips_badvers; /* ip version != 4 */ - n_long ips_rawout; /* total raw ip packets generated */ -}; - -#ifdef KERNEL -/* flags passed to ip_output as last parameter */ -#define IP_FORWARDING 0x1 /* most of ip header exists */ -#define IP_RAWOUTPUT 0x2 /* raw ip header exists */ -#define IP_ROUTETOIF SO_DONTROUTE /* bypass routing tables */ -#define IP_ALLOWBROADCAST SO_BROADCAST /* can send broadcast packets */ - -struct ipstat ipstat; -struct ipq ipq; /* ip reass. queue */ -u_short ip_id; /* ip packet ctr, for ids */ -int ip_defttl; /* default IP ttl */ - -int in_control __P((struct socket *, n_long, caddr_t, struct ifnet *)); -int ip_ctloutput __P((int, struct socket *, int, int, struct mbuf **)); -void ip_deq __P((struct ipasfrag *)); -int ip_dooptions __P((struct mbuf *)); -void ip_drain __P((void)); -void ip_enq __P((struct ipasfrag *, struct ipasfrag *)); -void ip_forward __P((struct mbuf *, int)); -void ip_freef __P((struct ipq *)); -void ip_freemoptions __P((struct ip_moptions *)); -int ip_getmoptions __P((int, struct ip_moptions *, struct mbuf **)); -void ip_init __P((void)); -int ip_mforward __P((struct mbuf *, struct ifnet *)); -int ip_optcopy __P((struct ip *, struct ip *)); -int ip_output __P((struct mbuf *, - struct mbuf *, struct route *, int, struct ip_moptions *)); -int ip_pcbopts __P((struct mbuf **, struct mbuf *)); -struct ip * - ip_reass __P((struct ipasfrag *, struct ipq *)); -struct in_ifaddr * - ip_rtaddr __P((struct in_addr)); -int ip_setmoptions __P((int, struct ip_moptions **, struct mbuf *)); -void ip_slowtimo __P((void)); -struct mbuf * - ip_srcroute __P((void)); -void ip_stripoptions __P((struct mbuf *, struct mbuf *)); -int ip_sysctl __P((int *, n_long, void *, size_t *, void *, size_t)); -void ipintr __P((void)); -int rip_ctloutput __P((int, struct socket *, int, int, struct mbuf **)); -void rip_init __P((void)); -void rip_input __P((struct mbuf *)); -int rip_output __P((struct mbuf *, struct socket *, n_long)); -int rip_usrreq __P((struct socket *, - int, struct mbuf *, struct mbuf *, struct mbuf *)); -#endif diff --git a/linux-include/netinet/tcp.h b/linux-include/netinet/tcp.h deleted file mode 100644 index 92654c6fb0..0000000000 --- a/linux-include/netinet/tcp.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)tcp.h 8.1 (Berkeley) 6/10/93 - */ - -typedef u_int tcp_seq; -/* - * TCP header. - * Per RFC 793, September, 1981. - */ -struct tcphdr { - u_short th_sport; /* source port */ - u_short th_dport; /* destination port */ - tcp_seq th_seq; /* sequence number */ - tcp_seq th_ack; /* acknowledgement number */ -#if BYTE_ORDER == LITTLE_ENDIAN - u_char th_x2:4, /* (unused) */ - th_off:4; /* data offset */ -#endif -#if BYTE_ORDER == BIG_ENDIAN - u_char th_off:4, /* data offset */ - th_x2:4; /* (unused) */ -#endif - u_char th_flags; -#define TH_FIN 0x01 -#define TH_SYN 0x02 -#define TH_RST 0x04 -#define TH_PUSH 0x08 -#define TH_ACK 0x10 -#define TH_URG 0x20 - u_short th_win; /* window */ - u_short th_sum; /* checksum */ - u_short th_urp; /* urgent pointer */ -}; - -#define TCPOPT_EOL 0 -#define TCPOPT_NOP 1 -#define TCPOPT_MAXSEG 2 -#define TCPOLEN_MAXSEG 4 -#define TCPOPT_WINDOW 3 -#define TCPOLEN_WINDOW 3 -#define TCPOPT_SACK_PERMITTED 4 /* Experimental */ -#define TCPOLEN_SACK_PERMITTED 2 -#define TCPOPT_SACK 5 /* Experimental */ -#define TCPOPT_TIMESTAMP 8 -#define TCPOLEN_TIMESTAMP 10 -#define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ - -#define TCPOPT_TSTAMP_HDR \ - (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) - -/* - * Default maximum segment size for TCP. - * With an IP MSS of 576, this is 536, - * but 512 is probably more convenient. - * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)). - */ -#define TCP_MSS 512 - -#define TCP_MAXWIN 65535 /* largest value for (unscaled) window */ - -#define TCP_MAX_WINSHIFT 14 /* maximum window shift */ - -/* - * User-settable options (used with setsockopt). - */ -#ifndef TCP_NODELAY -#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ -#endif -#ifndef TCP_MAXSEG -#define TCP_MAXSEG 0x02 /* set maximum segment size */ -#endif diff --git a/linux-include/netinet/tcp_var.h b/linux-include/netinet/tcp_var.h deleted file mode 100644 index e94ccd65e0..0000000000 --- a/linux-include/netinet/tcp_var.h +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993, 1994, 1995 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)tcp_var.h 8.4 (Berkeley) 5/24/95 - */ - -/* - * Kernel variables for tcp. - */ - -/* - * Tcp control block, one per tcp; fields: - */ -struct tcpcb { - struct tcpiphdr *seg_next; /* sequencing queue */ - struct tcpiphdr *seg_prev; - short t_state; /* state of this connection */ - short t_timer[TCPT_NTIMERS]; /* tcp timers */ - short t_rxtshift; /* log(2) of rexmt exp. backoff */ - short t_rxtcur; /* current retransmit value */ - short t_dupacks; /* consecutive dup acks recd */ - u_short t_maxseg; /* maximum segment size */ - char t_force; /* 1 if forcing out a byte */ - u_short t_flags; -#define TF_ACKNOW 0x0001 /* ack peer immediately */ -#define TF_DELACK 0x0002 /* ack, but try to delay it */ -#define TF_NODELAY 0x0004 /* don't delay packets to coalesce */ -#define TF_NOOPT 0x0008 /* don't use tcp options */ -#define TF_SENTFIN 0x0010 /* have sent FIN */ -#define TF_REQ_SCALE 0x0020 /* have/will request window scaling */ -#define TF_RCVD_SCALE 0x0040 /* other side has requested scaling */ -#define TF_REQ_TSTMP 0x0080 /* have/will request timestamps */ -#define TF_RCVD_TSTMP 0x0100 /* a timestamp was received in SYN */ -#define TF_SACK_PERMIT 0x0200 /* other side said I could SACK */ - - struct tcpiphdr *t_template; /* skeletal packet for transmit */ - struct inpcb *t_inpcb; /* back pointer to internet pcb */ -/* - * The following fields are used as in the protocol specification. - * See RFC783, Dec. 1981, page 21. - */ -/* send sequence variables */ - tcp_seq snd_una; /* send unacknowledged */ - tcp_seq snd_nxt; /* send next */ - tcp_seq snd_up; /* send urgent pointer */ - tcp_seq snd_wl1; /* window update seg seq number */ - tcp_seq snd_wl2; /* window update seg ack number */ - tcp_seq iss; /* initial send sequence number */ - n_long snd_wnd; /* send window */ -/* receive sequence variables */ - n_long rcv_wnd; /* receive window */ - tcp_seq rcv_nxt; /* receive next */ - tcp_seq rcv_up; /* receive urgent pointer */ - tcp_seq irs; /* initial receive sequence number */ -/* - * Additional variables for this implementation. - */ -/* receive variables */ - tcp_seq rcv_adv; /* advertised window */ -/* retransmit variables */ - tcp_seq snd_max; /* highest sequence number sent; - * used to recognize retransmits - */ -/* congestion control (for slow start, source quench, retransmit after loss) */ - n_long snd_cwnd; /* congestion-controlled window */ - n_long snd_ssthresh; /* snd_cwnd size threshhold for - * for slow start exponential to - * linear switch - */ -/* - * transmit timing stuff. See below for scale of srtt and rttvar. - * "Variance" is actually smoothed difference. - */ - u_short t_idle; /* inactivity time */ - short t_rtt; /* round trip time */ - tcp_seq t_rtseq; /* sequence number being timed */ - short t_srtt; /* smoothed round-trip time */ - short t_rttvar; /* variance in round-trip time */ - u_short t_rttmin; /* minimum rtt allowed */ - n_long max_sndwnd; /* largest window peer has offered */ - -/* out-of-band data */ - char t_oobflags; /* have some */ - char t_iobc; /* input character */ -#define TCPOOB_HAVEDATA 0x01 -#define TCPOOB_HADDATA 0x02 - short t_softerror; /* possible error not yet reported */ - -/* RFC 1323 variables */ - u_char snd_scale; /* window scaling for send window */ - u_char rcv_scale; /* window scaling for recv window */ - u_char request_r_scale; /* pending window scaling */ - u_char requested_s_scale; - n_long ts_recent; /* timestamp echo data */ - n_long ts_recent_age; /* when last updated */ - tcp_seq last_ack_sent; - -/* TUBA stuff */ - caddr_t t_tuba_pcb; /* next level down pcb for TCP over z */ -}; - -#define intotcpcb(ip) ((struct tcpcb *)(ip)->inp_ppcb) -#define sototcpcb(so) (intotcpcb(sotoinpcb(so))) - -/* - * The smoothed round-trip time and estimated variance - * are stored as fixed point numbers scaled by the values below. - * For convenience, these scales are also used in smoothing the average - * (smoothed = (1/scale)sample + ((scale-1)/scale)smoothed). - * With these scales, srtt has 3 bits to the right of the binary point, - * and thus an "ALPHA" of 0.875. rttvar has 2 bits to the right of the - * binary point, and is smoothed with an ALPHA of 0.75. - */ -#define TCP_RTT_SCALE 8 /* multiplier for srtt; 3 bits frac. */ -#define TCP_RTT_SHIFT 3 /* shift for srtt; 3 bits frac. */ -#define TCP_RTTVAR_SCALE 4 /* multiplier for rttvar; 2 bits */ -#define TCP_RTTVAR_SHIFT 2 /* multiplier for rttvar; 2 bits */ - -/* - * The initial retransmission should happen at rtt + 4 * rttvar. - * Because of the way we do the smoothing, srtt and rttvar - * will each average +1/2 tick of bias. When we compute - * the retransmit timer, we want 1/2 tick of rounding and - * 1 extra tick because of +-1/2 tick uncertainty in the - * firing of the timer. The bias will give us exactly the - * 1.5 tick we need. But, because the bias is - * statistical, we have to test that we don't drop below - * the minimum feasible timer (which is 2 ticks). - * This macro assumes that the value of TCP_RTTVAR_SCALE - * is the same as the multiplier for rttvar. - */ -#define TCP_REXMTVAL(tp) \ - (((tp)->t_srtt >> TCP_RTT_SHIFT) + (tp)->t_rttvar) - -/* XXX - * We want to avoid doing m_pullup on incoming packets but that - * means avoiding dtom on the tcp reassembly code. That in turn means - * keeping an mbuf pointer in the reassembly queue (since we might - * have a cluster). As a quick hack, the source & destination - * port numbers (which are no longer needed once we've located the - * tcpcb) are overlayed with an mbuf pointer. - */ -#define REASS_MBUF(ti) (*(struct mbuf **)&((ti)->ti_t)) - -/* - * TCP statistics. - * Many of these should be kept per connection, - * but that's inconvenient at the moment. - */ -struct tcpstat { - n_long tcps_connattempt; /* connections initiated */ - n_long tcps_accepts; /* connections accepted */ - n_long tcps_connects; /* connections established */ - n_long tcps_drops; /* connections dropped */ - n_long tcps_conndrops; /* embryonic connections dropped */ - n_long tcps_closed; /* conn. closed (includes drops) */ - n_long tcps_segstimed; /* segs where we tried to get rtt */ - n_long tcps_rttupdated; /* times we succeeded */ - n_long tcps_delack; /* delayed acks sent */ - n_long tcps_timeoutdrop; /* conn. dropped in rxmt timeout */ - n_long tcps_rexmttimeo; /* retransmit timeouts */ - n_long tcps_persisttimeo; /* persist timeouts */ - n_long tcps_keeptimeo; /* keepalive timeouts */ - n_long tcps_keepprobe; /* keepalive probes sent */ - n_long tcps_keepdrops; /* connections dropped in keepalive */ - - n_long tcps_sndtotal; /* total packets sent */ - n_long tcps_sndpack; /* data packets sent */ - n_long tcps_sndbyte; /* data bytes sent */ - n_long tcps_sndrexmitpack; /* data packets retransmitted */ - n_long tcps_sndrexmitbyte; /* data bytes retransmitted */ - n_long tcps_sndacks; /* ack-only packets sent */ - n_long tcps_sndprobe; /* window probes sent */ - n_long tcps_sndurg; /* packets sent with URG only */ - n_long tcps_sndwinup; /* window update-only packets sent */ - n_long tcps_sndctrl; /* control (SYN|FIN|RST) packets sent */ - - n_long tcps_rcvtotal; /* total packets received */ - n_long tcps_rcvpack; /* packets received in sequence */ - n_long tcps_rcvbyte; /* bytes received in sequence */ - n_long tcps_rcvbadsum; /* packets received with ccksum errs */ - n_long tcps_rcvbadoff; /* packets received with bad offset */ - n_long tcps_rcvshort; /* packets received too short */ - n_long tcps_rcvduppack; /* duplicate-only packets received */ - n_long tcps_rcvdupbyte; /* duplicate-only bytes received */ - n_long tcps_rcvpartduppack; /* packets with some duplicate data */ - n_long tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */ - n_long tcps_rcvoopack; /* out-of-order packets received */ - n_long tcps_rcvoobyte; /* out-of-order bytes received */ - n_long tcps_rcvpackafterwin; /* packets with data after window */ - n_long tcps_rcvbyteafterwin; /* bytes rcvd after window */ - n_long tcps_rcvafterclose; /* packets rcvd after "close" */ - n_long tcps_rcvwinprobe; /* rcvd window probe packets */ - n_long tcps_rcvdupack; /* rcvd duplicate acks */ - n_long tcps_rcvacktoomuch; /* rcvd acks for unsent data */ - n_long tcps_rcvackpack; /* rcvd ack packets */ - n_long tcps_rcvackbyte; /* bytes acked by rcvd acks */ - n_long tcps_rcvwinupd; /* rcvd window update packets */ - n_long tcps_pawsdrop; /* segments dropped due to PAWS */ - n_long tcps_predack; /* times hdr predict ok for acks */ - n_long tcps_preddat; /* times hdr predict ok for data pkts */ - n_long tcps_pcbcachemiss; - n_long tcps_persistdrop; /* timeout in persist state */ - n_long tcps_badsyn; /* bogus SYN, e.g. premature ACK */ -}; - -#ifdef KERNEL -struct inpcb tcb; /* head of queue of active tcpcb's */ -struct tcpstat tcpstat; /* tcp statistics */ -n_long tcp_now; /* for RFC 1323 timestamps */ - -int tcp_attach __P((struct socket *)); -void tcp_canceltimers __P((struct tcpcb *)); -struct tcpcb * - tcp_close __P((struct tcpcb *)); -void tcp_ctlinput __P((int, struct sockaddr *, struct ip *)); -int tcp_ctloutput __P((int, struct socket *, int, int, struct mbuf **)); -struct tcpcb * - tcp_disconnect __P((struct tcpcb *)); -struct tcpcb * - tcp_drop __P((struct tcpcb *, int)); -void tcp_dooptions __P((struct tcpcb *, - u_char *, int, struct tcpiphdr *, int *, n_long *, n_long *)); -void tcp_drain __P((void)); -void tcp_fasttimo __P((void)); -void tcp_init __P((void)); -void tcp_input __P((struct mbuf *, int)); -int tcp_mss __P((struct tcpcb *, u_int)); -struct tcpcb * - tcp_newtcpcb __P((struct inpcb *)); -void tcp_notify __P((struct inpcb *, int)); -int tcp_output __P((struct tcpcb *)); -void tcp_pulloutofband __P((struct socket *, - struct tcpiphdr *, struct mbuf *)); -void tcp_quench __P((struct inpcb *, int)); -int tcp_reass __P((struct tcpcb *, struct tcpiphdr *, struct mbuf *)); -void tcp_respond __P((struct tcpcb *, - struct tcpiphdr *, struct mbuf *, n_long, n_long, int)); -void tcp_setpersist __P((struct tcpcb *)); -void tcp_slowtimo __P((void)); -struct tcpiphdr * - tcp_template __P((struct tcpcb *)); -struct tcpcb * - tcp_timers __P((struct tcpcb *, int)); -void tcp_trace __P((int, int, struct tcpcb *, struct tcpiphdr *, int)); -struct tcpcb * - tcp_usrclosed __P((struct tcpcb *)); -int tcp_usrreq __P((struct socket *, - int, struct mbuf *, struct mbuf *, struct mbuf *)); -void tcp_xmit_timer __P((struct tcpcb *, int)); -#endif diff --git a/linux-include/netinet/tcpip.h b/linux-include/netinet/tcpip.h deleted file mode 100644 index 5000ae303c..0000000000 --- a/linux-include/netinet/tcpip.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)tcpip.h 8.1 (Berkeley) 6/10/93 - */ - -/* - * Tcp+ip header, after ip options removed. - */ -struct tcpiphdr { - struct ipovly ti_i; /* overlaid ip structure */ - struct tcphdr ti_t; /* tcp header */ -}; -#define ti_next ti_i.ih_next -#define ti_prev ti_i.ih_prev -#define ti_x1 ti_i.ih_x1 -#define ti_pr ti_i.ih_pr -#define ti_len ti_i.ih_len -#define ti_src ti_i.ih_src -#define ti_dst ti_i.ih_dst -#define ti_sport ti_t.th_sport -#define ti_dport ti_t.th_dport -#define ti_seq ti_t.th_seq -#define ti_ack ti_t.th_ack -#define ti_x2 ti_t.th_x2 -#define ti_off ti_t.th_off -#define ti_flags ti_t.th_flags -#define ti_win ti_t.th_win -#define ti_sum ti_t.th_sum -#define ti_urp ti_t.th_urp diff --git a/linux-include/netinet/udp.h b/linux-include/netinet/udp.h deleted file mode 100644 index 354a213cbc..0000000000 --- a/linux-include/netinet/udp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)udp.h 8.1 (Berkeley) 6/10/93 - */ - -/* - * Udp protocol header. - * Per RFC 768, September, 1981. - */ -struct udphdr { - u_short uh_sport; /* source port */ - u_short uh_dport; /* destination port */ - short uh_ulen; /* udp length */ - u_short uh_sum; /* udp checksum */ -}; diff --git a/linux-include/netinet/udp_var.h b/linux-include/netinet/udp_var.h deleted file mode 100644 index f36d832bae..0000000000 --- a/linux-include/netinet/udp_var.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)udp_var.h 8.1 (Berkeley) 6/10/93 - */ - -/* - * UDP kernel structures and variables. - */ -struct udpiphdr { - struct ipovly ui_i; /* overlaid ip structure */ - struct udphdr ui_u; /* udp header */ -}; -#define ui_next ui_i.ih_next -#define ui_prev ui_i.ih_prev -#define ui_x1 ui_i.ih_x1 -#define ui_pr ui_i.ih_pr -#define ui_len ui_i.ih_len -#define ui_src ui_i.ih_src -#define ui_dst ui_i.ih_dst -#define ui_sport ui_u.uh_sport -#define ui_dport ui_u.uh_dport -#define ui_ulen ui_u.uh_ulen -#define ui_sum ui_u.uh_sum - -struct udpstat { - /* input statistics: */ - n_long udps_ipackets; /* total input packets */ - n_long udps_hdrops; /* packet shorter than header */ - n_long udps_badsum; /* checksum error */ - n_long udps_badlen; /* data length larger than packet */ - n_long udps_noport; /* no socket on port */ - n_long udps_noportbcast; /* of above, arrived as broadcast */ - n_long udps_fullsock; /* not delivered, input socket full */ - n_long udpps_pcbcachemiss; /* input packets missing pcb cache */ - /* output statistics: */ - n_long udps_opackets; /* total output packets */ -}; - -/* - * Names for UDP sysctl objects - */ -#define UDPCTL_CHECKSUM 1 /* checksum UDP packets */ -#define UDPCTL_MAXID 2 - -#define UDPCTL_NAMES { \ - { 0, 0 }, \ - { "checksum", CTLTYPE_INT }, \ -} - -#ifdef KERNEL -struct inpcb udb; -struct udpstat udpstat; - -void udp_ctlinput __P((int, struct sockaddr *, struct ip *)); -void udp_init __P((void)); -void udp_input __P((struct mbuf *, int)); -int udp_output __P((struct inpcb *, - struct mbuf *, struct mbuf *, struct mbuf *)); -int udp_sysctl __P((int *, u_int, void *, size_t *, void *, size_t)); -int udp_usrreq __P((struct socket *, - int, struct mbuf *, struct mbuf *, struct mbuf *)); -#endif diff --git a/linux-include/sys/mbuf.h b/linux-include/sys/mbuf.h deleted file mode 100644 index b5df3899aa..0000000000 --- a/linux-include/sys/mbuf.h +++ /dev/null @@ -1,5 +0,0 @@ -/* @(#) $Header$ (LBL) */ - -#ifndef MLEN -#define MLEN 128 /* needed for slcompress.h */ -#endif diff --git a/missing b/missing deleted file mode 100755 index e7ef83a1c2..0000000000 --- a/missing +++ /dev/null @@ -1,360 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2003-09-02.23 - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 -# Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Send bug reports to ." - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/policy/Makefile.am b/policy/Makefile.am deleted file mode 100644 index 3e401db66c..0000000000 --- a/policy/Makefile.am +++ /dev/null @@ -1,71 +0,0 @@ -## Process this file with automake to produce Makefile.in - -SUBDIRS = sigs time-machine - -# These files are created and moved here by the src Makefile -BIF_BRO_FILES = \ - bro.bif.bro common-rw.bif.bro const.bif.bro \ - dns-rw.bif.bro event.bif.bro finger-rw.bif.bro \ - ftp-rw.bif.bro http-rw.bif.bro ident-rw.bif.bro \ - smb-rw.bif.bro smtp-rw.bif.bro strings.bif.bro - -MOSTLYCLEANFILES = $(BIF_BRO_FILES) - -# doesn't end in a sig -bropolicydir=$(datadir)/bro -bropolicysitedir=$(datadir)/bro/site - -dist_bropolicy_DATA = bro.init adu.bro alarm.bro analy.bro \ - anon.bro arp.bro backdoor.bro bittorrent.bro \ - blaster.bro bt-tracker.bro brolite.bro \ - brolite-backdoor.bro brolite-sigs.bro \ - capture-events.bro capture-loss.bro capture-state-updates.bro \ - checkpoint.bro clear-passwords.bro conn-flood.bro conn-id.bro \ - conn.bro contents.bro cpu-adapt.bro dce.bro demux.bro \ - detect-protocols.bro detect-protocols-http.bro \ - dhcp.bro dns-anonymizer.bro dns-info.bro \ - dns-lookup.bro dns.bro dpd.bro drop.bro \ - drop-adapt.bro dyn-disable.bro \ - file-flush.bro finger.bro firewall.bro \ - flag-irc.bro flag-warez.bro frag.bro \ - ftp-anonymizer.bro ftp-cmd-arg.bro ftp-reply-pattern.bro \ - ftp-safe-words.bro ftp.bro gnutella.bro hand-over.bro \ - heavy-analysis.bro heavy.http.bro heavy.irc.bro \ - heavy.scan.bro heavy.software.bro heavy.trw.bro \ - hot-ids.bro hot.bro \ - http-abstract.bro http-anon-server.bro http-anon-useragent.bro \ - http-anon-utils.bro http-anonymizer.bro http-body.bro \ - http-detect-passwd.bro http-entity.bro \ - http-event.bro http-extract-items.bro http-header.bro \ - http-identified-files.bro http-reply.bro \ - http-request.bro http-rewriter.bro http.bro \ - icmp.bro ident-rewriter.bro ident.bro inactivity.bro \ - interconn.bro irc.bro irc-bot.bro large-conns.bro listen-clear.bro \ - listen-ssl.bro load-level.bro load-sample.bro log-append.bro \ - login.bro mime.bro mime-pop.bro mt.bro \ - ncp.bro netflow.bro netstats.bro nfs.bro \ - notice.bro notice-policy.bro notice-action-filters.bro ntp.bro \ - OS-fingerprint.bro pcap.bro peer-status.bro \ - pkt-profile.bro pop3.bro port-name.bro portmapper.bro print-filter.bro \ - print-globals.bro print-resources.bro print-sig-states.bro \ - profiling.bro proxy.bro passwords.bro \ - remote-pcap.bro remote-ping.bro \ - remote-print-id-reply.bro remote-print-id.bro remote-print.bro \ - remote-report-notices.bro remote-send-id.bro remote.bro \ - rotate-logs.bro rsh.bro \ - save-peer-status.bro scan.bro secondary-filter.bro sensor-sshd.bro \ - server-ports.bro service-probe.bro signatures.bro site.bro \ - smb.bro smtp-relay.bro smtp-rewriter.bro smtp.bro snort.bro \ - software.bro ssh-stepping.bro ssh.bro ssl-alerts.bro \ - ssl-ciphers.bro ssl-errors.bro ssl-worm.bro ssl.bro stats.bro \ - stepping.bro synflood.bro targeted-scan.bro tcp.bro \ - terminate-connection.bro tftp.bro trw.bro trw-impl.bro \ - udp.bro udp-common.bro vlan.bro weird.bro worm.bro \ - $(BIF_BRO_FILES) - - -install-data-hook: - test -d $(DESTDIR)$(bropolicysitedir) || mkdir $(DESTDIR)$(bropolicysitedir) - -uninstall-local: - -rmdir $(DESTDIR)$(bropolicysitedir) diff --git a/policy/sigs/Makefile.am b/policy/sigs/Makefile.am deleted file mode 100644 index 389de9f94a..0000000000 --- a/policy/sigs/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -## Process this file with automake to produce Makefile.in - -sigsdir=${datadir}/bro/sigs -dist_sigs_DATA = dpd.sig ex.web-rules.sig http-bots.sig p0fsyn.osf \ - snort-default.sig ssl-worm.sig worm.sig - diff --git a/policy/sigs/ex.web-rules.sig b/policy/sigs/ex.web-rules.sig deleted file mode 100644 index cd2571b33b..0000000000 --- a/policy/sigs/ex.web-rules.sig +++ /dev/null @@ -1,8914 +0,0 @@ -# $Id: ex.web-rules.sig 6 2004-04-30 00:31:26Z jason $ -# -# This is a subset of Snort's signatures (automatically converted into Bro's -# language by snort2bro). -# -# [web-*.rules from snortrules-current.tar.gz as of Oct 9 19:15:02 2003 GMT] -# -# To use it, customize the variables contained in snort.bro and load snort.bro -# and signatures.bro. - -signature sid-1328 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS ps command attempt" - http /.*[\/\\]bin[\/\\]ps/ - tcp-state established,originator - } - -signature sid-1329 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /bin/ps command attempt" - http /.*ps%20/ - tcp-state established,originator - } - -signature sid-1330 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS wget command attempt" - tcp-state established,originator - payload /.*[wW][gG][eE][tT]%20/ - } - -signature sid-1331 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS uname -a command attempt" - tcp-state established,originator - payload /.*[uU][nN][aA][mM][eE]%20-[aA]/ - } - -signature sid-1332 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /usr/bin/id command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[iI][dD]/ - } - -signature sid-1333 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS id command attempt" - tcp-state established,originator - payload /.*;[iI][dD]/ - } - -signature sid-1334 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS echo command attempt" - tcp-state established,originator - payload /.*\/[bB][iI][nN]\/[eE][cC][hH][oO]/ - } - -signature sid-1335 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS kill command attempt" - tcp-state established,originator - payload /.*\/[bB][iI][nN]\/[kK][iI][lL][lL]/ - } - -signature sid-1336 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS chmod command attempt" - tcp-state established,originator - payload /.*\/[bB][iI][nN]\/[cC][hH][mM][oO][dD]/ - } - -signature sid-1337 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS chgrp command attempt" - tcp-state established,originator - payload /.*\/[cC][hH][gG][rR][pP]/ - } - -signature sid-1338 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS chown command attempt" - tcp-state established,originator - payload /.*\/[cC][hH][oO][wW][nN]/ - } - -signature sid-1339 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS chsh command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[cC][hH][sS][hH]/ - } - -signature sid-1340 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS tftp command attempt" - tcp-state established,originator - payload /.*[tT][fF][tT][pP]%20/ - } - -signature sid-1341 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /usr/bin/gcc command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[gG][cC][cC]/ - } - -signature sid-1342 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS gcc command attempt" - tcp-state established,originator - payload /.*[gG][cC][cC]%20-[oO]/ - } - -signature sid-1343 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /usr/bin/cc command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[cC][cC]/ - } - -signature sid-1344 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS cc command attempt" - tcp-state established,originator - payload /.*[cC][cC]%20/ - } - -signature sid-1345 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /usr/bin/cpp command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[cC][pP][pP]/ - } - -signature sid-1346 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS cpp command attempt" - tcp-state established,originator - payload /.*[cC][pP][pP]%20/ - } - -signature sid-1347 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /usr/bin/g++ command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[gG]\+\+/ - } - -signature sid-1348 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS g++ command attempt" - tcp-state established,originator - payload /.*[gG]\+\+%20/ - } - -signature sid-1349 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS bin/python access attempt" - tcp-state established,originator - payload /.*[bB][iI][nN]\/[pP][yY][tT][hH][oO][nN]/ - } - -signature sid-1350 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS python access attempt" - tcp-state established,originator - payload /.*[pP][yY][tT][hH][oO][nN]%20/ - } - -signature sid-1351 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS bin/tclsh execution attempt" - tcp-state established,originator - payload /.*[bB][iI][nN]\/[tT][cC][lL][sS][hH]/ - } - -signature sid-1352 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS tclsh execution attempt" - tcp-state established,originator - payload /.*[tT][cC][lL][sS][hH]8%20/ - } - -signature sid-1353 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS bin/nasm command attempt" - tcp-state established,originator - payload /.*[bB][iI][nN]\/[nN][aA][sS][mM]/ - } - -signature sid-1354 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS nasm command attempt" - tcp-state established,originator - payload /.*[nN][aA][sS][mM]%20/ - } - -signature sid-1355 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /usr/bin/perl execution attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[bB][iI][nN]\/[pP][eE][rR][lL]/ - } - -signature sid-1356 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS perl execution attempt" - tcp-state established,originator - payload /.*[pP][eE][rR][lL]%20/ - } - -signature sid-1357 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS nt admin addition attempt" - tcp-state established,originator - payload /.*[nN][eE][tT] [lL][oO][cC][aA][lL][gG][rR][oO][uU][pP] [aA][dD][mM][iI][nN][iI][sS][tT][rR][aA][tT][oO][rR][sS] \/[aA][dD][dD]/ - } - -signature sid-1358 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS traceroute command attempt" - tcp-state established,originator - payload /.*[tT][rR][aA][cC][eE][rR][oO][uU][tT][eE]%20/ - } - -signature sid-1359 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS ping command attempt" - tcp-state established,originator - payload /.*\/[bB][iI][nN]\/[pP][iI][nN][gG]/ - } - -signature sid-1360 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS netcat command attempt" - tcp-state established,originator - payload /.*[nN][cC]%20/ - } - -signature sid-1361 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS nmap command attempt" - tcp-state established,originator - payload /.*[nN][mM][aA][pP]%20/ - } - -signature sid-1362 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS xterm command attempt" - tcp-state established,originator - payload /.*\/[uU][sS][rR]\/[xX]11[rR]6\/[bB][iI][nN]\/[xX][tT][eE][rR][mM]/ - } - -signature sid-1363 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS X application to remote host attempt" - tcp-state established,originator - payload /.*%20-[dD][iI][sS][pP][lL][aA][yY]%20/ - } - -signature sid-1364 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS lsof command attempt" - tcp-state established,originator - payload /.*[lL][sS][oO][fF]%20/ - } - -signature sid-1365 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS rm command attempt" - tcp-state established,originator - payload /.*[rR][mM]%20/ - } - -signature sid-1366 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS mail command attempt" - tcp-state established,originator - payload /.*\/[bB][iI][nN]\/[mM][aA][iI][lL]/ - } - -signature sid-1367 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS mail command attempt" - tcp-state established,originator - payload /.*[mM][aA][iI][lL]%20/ - } - -signature sid-1368 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /bin/ls| command attempt" - http /.*[\/\\]bin[\/\\]ls\|/ - tcp-state established,originator - } - -signature sid-1369 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /bin/ls command attempt" - http /.*[\/\\]bin[\/\\]ls/ - tcp-state established,originator - } - -signature sid-1370 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /etc/inetd.conf access" - tcp-state established,originator - payload /.*\/[eE][tT][cC]\/[iI][nN][eE][tT][dD]\.[cC][oO][nN][fF]/ - } - -signature sid-1371 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /etc/motd access" - tcp-state established,originator - payload /.*\/[eE][tT][cC]\/[mM][oO][tT][dD]/ - } - -signature sid-1372 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS /etc/shadow access" - tcp-state established,originator - payload /.*\/[eE][tT][cC]\/[sS][hH][aA][dD][oO][wW]/ - } - -signature sid-1373 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS conf/httpd.conf attempt" - tcp-state established,originator - payload /.*[cC][oO][nN][fF]\/[hH][tT][tT][pP][dD]\.[cC][oO][nN][fF]/ - } - -signature sid-1374 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-ATTACKS .htgroup access" - http /.*\.htgroup/ - tcp-state established,originator - } - -signature sid-803 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI HyperSeek hsx.cgi directory traversal attempt" - http /.*[\/\\]hsx\.cgi/ - tcp-state established,originator - payload /.*\.\.\/\.\.\/.{1}.*%00/ - } - -signature sid-1607 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI HyperSeek hsx.cgi access" - http /.*[\/\\]hsx\.cgi/ - tcp-state established,originator - } - -signature sid-804 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI SWSoft ASPSeek Overflow attempt" - http /.*[\/\\]s\.cgi/ - tcp-state established,originator - payload /.*[tT][mM][pP][lL]=/ - } - -signature sid-805 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webspeed access" - http /.*[\/\\]wsisa\.dll[\/\\]WService=/ - tcp-state established,originator - payload /.*[wW][sS][mM][aA][dD][mM][iI][nN]/ - } - -signature sid-806 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI yabb.cgi directory traversal attempt" - http /.*[\/\\]YaBB\.pl/ - tcp-state established,originator - payload /.*\.\.\// - } - -signature sid-1637 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI yabb.cgi access" - http /.*[\/\\]YaBB\.pl/ - tcp-state established,originator - } - -signature sid-807 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI /wwwboard/passwd.txt access" - http /.*[\/\\]wwwboard[\/\\]passwd\.txt/ - tcp-state established,originator - } - -signature sid-808 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webdriver access" - http /.*[\/\\]webdriver/ - tcp-state established,originator - } - -signature sid-809 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI whois_raw.cgi arbitrary command execution attempt" - http /.*[\/\\]whois_raw\.cgi\?/ - tcp-state established,originator - payload /.*\x0a/ - } - -signature sid-810 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI whois_raw.cgi access" - http /.*[\/\\]whois_raw\.cgi/ - tcp-state established,originator - } - -signature sid-811 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI websitepro path access" - tcp-state established,originator - payload /.* \/[hH][tT][tT][pP]\/1\./ - } - -signature sid-812 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webplus version access" - http /.*[\/\\]webplus\?about/ - tcp-state established,originator - } - -signature sid-813 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webplus directory traversal" - http /.*[\/\\]webplus\?script/ - tcp-state established,originator - payload /.*\.\.\// - } - -signature sid-815 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI websendmail access" - http /.*[\/\\]websendmail/ - tcp-state established,originator - } - -signature sid-1571 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI dcforum.cgi directory traversal attempt" - http /.*[\/\\]dcforum\.cgi/ - tcp-state established,originator - payload /.*forum=\.\.\/\.\./ - } - -signature sid-818 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI dcforum.cgi access" - http /.*[\/\\]dcforum\.cgi/ - tcp-state established,originator - } - -signature sid-817 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI dcboard.cgi invalid user addition attempt" - http /.*[\/\\]dcboard\.cgi/ - tcp-state established,originator - payload /.*command=register/ - payload /.*%7cadmin/ - } - -signature sid-1410 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI dcboard.cgi access" - http /.*[\/\\]dcboard\.cgi/ - tcp-state established,originator - } - -signature sid-819 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI mmstdod.cgi access" - http /.*[\/\\]mmstdod\.cgi/ - tcp-state established,originator - } - -signature sid-820 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI anaconda directory transversal attempt" - http /.*[\/\\]apexec\.pl/ - tcp-state established,originator - payload /.*[tT][eE][mM][pP][lL][aA][tT][eE]=\.\.\// - } - -signature sid-821 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI imagemap.exe overflow attempt" - http /.*[\/\\]imagemap\.exe\?/ - tcp-state established,originator - } - -signature sid-1700 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI imagemap.exe access" - http /.*[\/\\]imagemap\.exe/ - tcp-state established,originator - } - -signature sid-823 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI cvsweb.cgi access" - http /.*[\/\\]cvsweb\.cgi/ - tcp-state established,originator - } - -signature sid-824 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI php.cgi access" - http /.*[\/\\]php\.cgi/ - tcp-state established,originator - } - -signature sid-825 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI glimpse access" - http /.*[\/\\]glimpse/ - tcp-state established,originator - } - -signature sid-1608 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI htmlscript attempt" - http /.*[\/\\]htmlscript\?\.\.[\/\\]\.\./ - tcp-state established,originator - } - -signature sid-826 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI htmlscript access" - http /.*[\/\\]htmlscript/ - tcp-state established,originator - } - -signature sid-827 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI info2www access" - http /.*[\/\\]info2www/ - tcp-state established,originator - } - -signature sid-828 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI maillist.pl access" - http /.*[\/\\]maillist\.pl/ - tcp-state established,originator - } - -signature sid-829 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI nph-test-cgi access" - http /.*[\/\\]nph-test-cgi/ - tcp-state established,originator - } - -signature sid-1451 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI NPH-publish access" - http /.*[\/\\]nph-maillist\.pl/ - tcp-state established,originator - } - -signature sid-830 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI NPH-publish access" - http /.*[\/\\]nph-publish/ - tcp-state established,originator - } - -signature sid-833 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI rguest.exe access" - http /.*[\/\\]rguest\.exe/ - tcp-state established,originator - } - -signature sid-834 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI rwwwshell.pl access" - http /.*[\/\\]rwwwshell\.pl/ - tcp-state established,originator - } - -signature sid-1644 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI test-cgi attempt" - http /.*[\/\\]test-cgi[\/\\]\*\?\*/ - tcp-state established,originator - } - -signature sid-835 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI test-cgi access" - http /.*[\/\\]test-cgi/ - tcp-state established,originator - } - -signature sid-1645 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI testcgi access" - http /.*[\/\\]testcgi/ - tcp-state established,originator - } - -signature sid-1646 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI test.cgi access" - http /.*[\/\\]test\.cgi/ - tcp-state established,originator - } - -signature sid-836 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI textcounter.pl access" - http /.*[\/\\]textcounter\.pl/ - tcp-state established,originator - } - -signature sid-837 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI uploader.exe access" - http /.*[\/\\]uploader\.exe/ - tcp-state established,originator - } - -signature sid-838 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webgais access" - http /.*[\/\\]webgais/ - tcp-state established,originator - } - -signature sid-839 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI finger access" - http /.*[\/\\]finger/ - tcp-state established,originator - } - -signature sid-840 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI perlshop.cgi access" - http /.*[\/\\]perlshop\.cgi/ - tcp-state established,originator - } - -signature sid-841 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI pfdisplay.cgi access" - http /.*[\/\\]pfdisplay\.cgi/ - tcp-state established,originator - } - -signature sid-842 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI aglimpse access" - http /.*[\/\\]aglimpse/ - tcp-state established,originator - } - -signature sid-843 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI anform2 access" - http /.*[\/\\]AnForm2/ - tcp-state established,originator - } - -signature sid-844 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI args.bat access" - http /.*[\/\\]args\.bat/ - tcp-state established,originator - } - -signature sid-1452 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI args.cmd access" - http /.*[\/\\]args\.cmd/ - tcp-state established,originator - } - -signature sid-845 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI AT-admin.cgi access" - http /.*[\/\\]AT-admin\.cgi/ - tcp-state established,originator - } - -signature sid-1453 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI AT-generated.cgi access" - http /.*[\/\\]AT-generated\.cgi/ - tcp-state established,originator - } - -signature sid-846 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bnbform.cgi access" - http /.*[\/\\]bnbform\.cgi/ - tcp-state established,originator - } - -signature sid-847 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI campas access" - http /.*[\/\\]campas/ - tcp-state established,originator - } - -signature sid-848 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI view-source directory traversal" - http /.*[\/\\]view-source/ - tcp-state established,originator - payload /.*\.\.\// - } - -signature sid-849 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI view-source access" - http /.*[\/\\]view-source/ - tcp-state established,originator - } - -signature sid-850 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI wais.pl access" - http /.*[\/\\]wais\.pl/ - tcp-state established,originator - } - -signature sid-1454 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI wwwwais access" - http /.*[\/\\]wwwwais/ - tcp-state established,originator - } - -signature sid-851 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI files.pl access" - http /.*[\/\\]files\.pl/ - tcp-state established,originator - } - -signature sid-852 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI wguest.exe access" - http /.*[\/\\]wguest\.exe/ - tcp-state established,originator - } - -signature sid-853 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI wrap access" - http /.*[\/\\]wrap/ - tcp-state established,originator - } - -signature sid-854 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI classifieds.cgi access" - http /.*[\/\\]classifieds\.cgi/ - tcp-state established,originator - } - -signature sid-856 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI environ.cgi access" - http /.*[\/\\]environ\.cgi/ - tcp-state established,originator - } - -signature sid-1647 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI faxsurvey attempt (full path)" - http /.*[\/\\]faxsurvey\?[\/\\]/ - tcp-state established,originator - } - -signature sid-1609 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI faxsurvey arbitrary file read attempt" - http /.*[\/\\]faxsurvey\?cat%20/ - tcp-state established,originator - } - -signature sid-857 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI faxsurvey access" - http /.*[\/\\]faxsurvey/ - tcp-state established,originator - } - -signature sid-858 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI filemail access" - http /.*[\/\\]filemail\.pl/ - tcp-state established,originator - } - -signature sid-859 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI man.sh access" - http /.*[\/\\]man\.sh/ - tcp-state established,originator - } - -signature sid-860 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI snork.bat access" - http /.*[\/\\]snork\.bat/ - tcp-state established,originator - } - -signature sid-861 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI w3-msql access" - http /.*[\/\\]w3-msql[\/\\]/ - tcp-state established,originator - } - -signature sid-863 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI day5datacopier.cgi access" - http /.*[\/\\]day5datacopier\.cgi/ - tcp-state established,originator - } - -signature sid-864 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI day5datanotifier.cgi access" - http /.*[\/\\]day5datanotifier\.cgi/ - tcp-state established,originator - } - -signature sid-866 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI post-query access" - http /.*[\/\\]post-query/ - tcp-state established,originator - } - -signature sid-867 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI visadmin.exe access" - http /.*[\/\\]visadmin\.exe/ - tcp-state established,originator - } - -signature sid-869 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI dumpenv.pl access" - http /.*[\/\\]dumpenv\.pl/ - tcp-state established,originator - } - -signature sid-1536 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI calendar_admin.pl arbitrary command execution attempt" - http /.*[\/\\]calendar_admin\.pl\?config=\|/ - tcp-state established,originator - } - -signature sid-1537 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI calendar_admin.pl access" - http /.*[\/\\]calendar_admin\.pl/ - tcp-state established,originator - } - -signature sid-1701 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI calendar-admin.pl access" - http /.*[\/\\]calendar-admin\.pl/ - tcp-state established,originator - } - -signature sid-1455 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI calender.pl access" - http /.*[\/\\]calender\.pl/ - tcp-state established,originator - } - -signature sid-882 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI calendar access" - http /.*[\/\\]calendar/ - tcp-state established,originator - } - -signature sid-1457 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI user_update_admin.pl access" - http /.*[\/\\]user_update_admin\.pl/ - tcp-state established,originator - } - -signature sid-1458 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI user_update_passwd.pl access" - http /.*[\/\\]user_update_passwd\.pl/ - tcp-state established,originator - } - -signature sid-870 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI snorkerz.cmd access" - http /.*[\/\\]snorkerz\.cmd/ - tcp-state established,originator - } - -signature sid-871 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI survey.cgi access" - http /.*[\/\\]survey\.cgi/ - tcp-state established,originator - } - -signature sid-873 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI scriptalias access" - http /.*[\/\\][\/\\][\/\\]/ - tcp-state established,originator - } - -signature sid-875 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI win-c-sample.exe access" - http /.*[\/\\]win-c-sample\.exe/ - tcp-state established,originator - } - -signature sid-878 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI w3tvars.pm access" - http /.*[\/\\]w3tvars\.pm/ - tcp-state established,originator - } - -signature sid-879 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI admin.pl access" - http /.*[\/\\]admin\.pl/ - tcp-state established,originator - } - -signature sid-880 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI LWGate access" - http /.*[\/\\]LWGate/ - tcp-state established,originator - } - -signature sid-881 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI archie access" - http /.*[\/\\]archie/ - tcp-state established,originator - } - -signature sid-883 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI flexform access" - http /.*[\/\\]flexform/ - tcp-state established,originator - } - -signature sid-1610 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI formmail arbitrary command execution attempt" - http /.*[\/\\]formmail/ - tcp-state established,originator - payload /.*%0[aA]/ - } - -signature sid-884 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI formmail access" - http /.*[\/\\]formmail/ - tcp-state established,originator - } - -signature sid-1762 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI phf arbitrary command execution attempt" - http /.*[\/\\]phf/ - tcp-state established,originator - payload /.*[qQ][aA][lL][iI][aA][sS]/ - payload /.*%0a\// - } - -signature sid-886 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI phf access" - http /.*[\/\\]phf/ - tcp-state established,originator - } - -signature sid-887 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI www-sql access" - http /.*[\/\\]www-sql/ - tcp-state established,originator - } - -signature sid-888 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI wwwadmin.pl access" - http /.*[\/\\]wwwadmin\.pl/ - tcp-state established,originator - } - -signature sid-889 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI ppdscgi.exe access" - http /.*[\/\\]ppdscgi\.exe/ - tcp-state established,originator - } - -signature sid-890 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI sendform.cgi access" - http /.*[\/\\]sendform\.cgi/ - tcp-state established,originator - } - -signature sid-891 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI upload.pl access" - http /.*[\/\\]upload\.pl/ - tcp-state established,originator - } - -signature sid-892 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI AnyForm2 access" - http /.*[\/\\]AnyForm2/ - tcp-state established,originator - } - -signature sid-893 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI MachineInfo access" - http /.*[\/\\]MachineInfo/ - tcp-state established,originator - } - -signature sid-1531 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-hist.sh attempt" - http /.*[\/\\]bb-hist\.sh\?HISTFILE=\.\.[\/\\]\.\./ - tcp-state established,originator - } - -signature sid-894 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-hist.sh access" - http /.*[\/\\]bb-hist\.sh/ - tcp-state established,originator - } - -signature sid-1459 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-histlog.sh access" - http /.*[\/\\]bb-histlog\.sh/ - tcp-state established,originator - } - -signature sid-1460 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-histsvc.sh access" - http /.*[\/\\]bb-histsvc\.sh/ - tcp-state established,originator - } - -signature sid-1532 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-hostscv.sh attempt" - http /.*[\/\\]bb-hostsvc\.sh\?HOSTSVC\?\.\.[\/\\]\.\./ - tcp-state established,originator - } - -signature sid-1533 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-hostscv.sh access" - http /.*[\/\\]bb-hostsvc\.sh/ - tcp-state established,originator - } - -signature sid-1461 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-rep.sh access" - http /.*[\/\\]bb-rep\.sh/ - tcp-state established,originator - } - -signature sid-1462 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI bb-replog.sh access" - http /.*[\/\\]bb-replog\.sh/ - tcp-state established,originator - } - -signature sid-895 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI redirect access" - http /.*[\/\\]redirect/ - tcp-state established,originator - } - -signature sid-1397 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI wayboard attempt" - http /.*[\/\\]way-board[\/\\]way-board\.cgi/ - tcp-state established,originator - payload /.*db=/ - payload /.*\.\.\/\.\./ - } - -signature sid-896 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI way-board access" - http /.*[\/\\]way-board/ - tcp-state established,originator - } - -signature sid-1222 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI pals-cgi arbitrary file access attempt" - http /.*[\/\\]pals-cgi/ - tcp-state established,originator - payload /.*[dD][oO][cC][uU][mM][eE][nN][tT][nN][aA][mM][eE]=/ - } - -signature sid-897 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI pals-cgi access" - http /.*[\/\\]pals-cgi/ - tcp-state established,originator - } - -signature sid-1572 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI commerce.cgi arbitrary file access attempt" - http /.*[\/\\]commerce\.cgi/ - tcp-state established,originator - payload /.*page=/ - payload /.*\/\.\.\// - } - -signature sid-898 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI commerce.cgi access" - http /.*[\/\\]commerce\.cgi/ - tcp-state established,originator - } - -signature sid-899 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI Amaya templates sendtemp.pl directory traversal attempt" - http /.*[\/\\]sendtemp\.pl/ - tcp-state established,originator - payload /.*[tT][eE][mM][pP][lL]=/ - } - -signature sid-1702 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI Amaya templates sendtemp.pl access" - http /.*[\/\\]sendtemp\.pl/ - tcp-state established,originator - } - -signature sid-900 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webspirs.cgi directory traversal attempt" - http /.*[\/\\]webspirs\.cgi/ - tcp-state established,originator - payload /.*\.\.\/\.\.\// - } - -signature sid-901 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI webspirs.cgi access" - http /.*[\/\\]webspirs\.cgi/ - tcp-state established,originator - } - -signature sid-902 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI tstisapi.dll access" - http /.*tstisapi\.dll/ - tcp-state established,originator - } - -signature sid-1308 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI sendmessage.cgi access" - http /.*[\/\\]sendmessage\.cgi/ - tcp-state established,originator - } - -signature sid-1392 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI lastlines.cgi access" - http /.*[\/\\]lastlines\.cgi/ - tcp-state established,originator - } - -signature sid-1395 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI zml.cgi attempt" - http /.*[\/\\]zml\.cgi/ - tcp-state established,originator - payload /.*file=\.\.\// - } - -signature sid-1396 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI zml.cgi access" - http /.*[\/\\]zml\.cgi/ - tcp-state established,originator - } - -signature sid-1405 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI AHG search.cgi access" - http /.*[\/\\]publisher[\/\\]search\.cgi/ - tcp-state established,originator - payload /.*[tT][eE][mM][pP][lL][aA][tT][eE]=/ - } - -signature sid-1534 { - ip-proto == tcp - src-ip != local_nets - dst-ip == http_servers - dst-port == http_ports - event "WEB-CGI agora.cgi attempt" - http /.*[\/\\]store[\/\\]agora\.cgi\?cart_id=

    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%0D%4<{pPsIE#fc{%>PrcS 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

6gJJW~Fxb;PoA5k>nQ>oiju@KQ`=( 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