Changeset 153

Show
Ignore:
Timestamp:
01/10/07 14:06:43 (2 years ago)
Author:
kindlund
Message:

Merged trunk changes back into exp branch, in order to prepare for final merge back into trunk.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • honeyclient/branches/exp/stephenson-link_scoring

    • Property sc:bug-fix-release-branch set to 0.9
  • honeyclient/branches/exp/stephenson-link_scoring/bin/StartAgent.pl

    • Property svn:keywords set to Id "$file"
    r13 r153  
    1 #!perl -w 
     1#!perl -w -Ilib 
     2 
     3# $Id$ 
    24 
    35use strict; 
     
    3537    print "Watchdog fault detected, recovering Agent daemon.\n"; 
    3638    # XXX: Reenable this, eventually. 
    37 #    Carp::carp __PACKAGE__ . "->_watchdogFaultHandler(): Error occurred during processing.\n" . $errMsg; 
     39    #Carp::carp __PACKAGE__ . "->_watchdogFaultHandler(): Error occurred during processing.\n" . $errMsg; 
    3840 
    3941 
  • honeyclient/branches/exp/stephenson-link_scoring/bin/StartManager.pl

    • Property svn:keywords set to Id "$file"
    r151 r153  
    1 #!/usr/bin/perl -w 
     1#!perl -w -Ilib 
     2 
     3# $Id$ 
    24 
    35use strict; 
     
    2022my $agentState = HoneyClient::Manager->run( 
    2123                    driver           => 'IE', # Change to 'IE' or 'FF' 
    22                     master_vm_config => '/vm/Agent.Master-4/winXPPro.cfg', 
     24                    master_vm_config => '/vm/Agent.Master-7/winXPPro.cfg', 
    2325                    agent_state      => encode_base64(nfreeze({ 
    2426                        IE => { # Change to 'IE' or 'FF' 
  • honeyclient/branches/exp/stephenson-link_scoring/etc/honeyclient.xml

    • Property svn:keywords set to Id "$file"
    r79 r153  
    99For information about the syntax of this file format, please type 
    1010"perldoc XML::Simple". 
     11 
     12CVS: $Id$ 
    1113 
    1214####################################################################### 
     
    4547<HoneyClient> 
    4648    <!-- Global Options --> 
    47     <timeout description="Default timeout used for all communications between each module (in seconds)." default="600"> 
    48         600 
     49    <!-- Note: This timeout should be long enough so that the Agent watchdog code will properly let the integrity checking code finish, before detecting a faulty timeout in processing. --> 
     50    <timeout description="Default timeout used for all communications between each module (in seconds)." default="900"> 
     51        1800 
    4952    </timeout> 
    5053    <log_config description="The global Log4perl configuration file, used throughout all modules.  This setting should not need to be changed." default="etc/honeyclient_log.conf"> 
     
    6972            </timeout> 
    7073            <Browser> 
    71                    <!-- HoneyClient::Agent::Driver::IE Options --> 
    72                <!-- TODO: Update this. --> 
    73                <ignore_links_timed_out description="If this parameter is 1, then the browser will never attempt to revisit any links that caused the browser to initially time out." default="0"> 
     74                <!-- HoneyClient::Agent::Driver::IE Options --> 
     75                <!-- TODO: Update this. --> 
     76                <ignore_links_timed_out description="If this parameter is 1, then the browser will never attempt to revisit any links that caused the browser to initially time out." default="0"> 
    7477                    1 
    7578                </ignore_links_timed_out> 
    76                <!-- TODO: Update this. --> 
    77                <process_name description="The name of the Internet Explorer application process, as it appears in the Task Manager." default="iexplore.exe"> 
     79                <!-- TODO: Update this. --> 
     80                <process_name description="The name of the Internet Explorer application process, as it appears in the Task Manager." default="iexplore.exe"> 
    7881                    iexplore.exe 
    7982                </process_name> 
    80                <max_relative_links_to_visit description="An integer, representing the maximum number of relative links that the browser should visit, before moving onto another website.  If negative, then the browser will exhaust all possible relative links found, before moving on.  This functionality is best effort; it's possible for the browser to visit new links on previously visited websites." default="-1"> 
     83                <max_relative_links_to_visit description="An integer, representing the maximum number of relative links that the browser should visit, before moving onto another website.  If negative, then the browser will exhaust all possible relative links found, before moving on.  This functionality is best effort; it's possible for the browser to visit new links on previously visited websites." default="-1"> 
    8184                    -1 
    8285                </max_relative_links_to_visit> 
     
    8790                    archive,privacy,legal,disclaim,about,contact,copyright,jobs,careers 
    8891                </badwords> 
    89                <IE> 
    90                        <!-- HoneyClient::Agent::Driver::IE Options --> 
    91                    <!-- TODO: Update this. --> 
    92                    <ignore_links_timed_out description="If this parameter is 1, then the browser will never attempt to revisit any links that caused the browser to initially time out." default="0"> 
     92                <IE> 
     93                    <!-- HoneyClient::Agent::Driver::IE Options --> 
     94                    <!-- TODO: Update this. --> 
     95                    <ignore_links_timed_out description="If this parameter is 1, then the browser will never attempt to revisit any links that caused the browser to initially time out." default="0"> 
    9396                        1 
    9497                    </ignore_links_timed_out> 
    95                    <!-- TODO: Update this. --> 
    96                    <process_name description="The name of the Internet Explorer application process, as it appears in the Task Manager." default="iexplore.exe"> 
     98                    <!-- TODO: Update this. --> 
     99                    <process_name description="The name of the Internet Explorer application process, as it appears in the Task Manager." default="iexplore.exe"> 
    97100                        iexplore.exe 
    98101                    </process_name> 
    99                    <max_relative_links_to_visit description="An integer, representing the maximum number of relative links that the browser should visit, before moving onto another website.  If negative, then the browser will exhaust all possible relative links found, before moving on.  This functionality is best effort; it's possible for the browser to visit new links on previously visited websites." default="-1"> 
     102                    <max_relative_links_to_visit description="An integer, representing the maximum number of relative links that the browser should visit, before moving onto another website.  If negative, then the browser will exhaust all possible relative links found, before moving on.  This functionality is best effort; it's possible for the browser to visit new links on previously visited websites." default="-1"> 
    100103                        -1 
    101104                    </max_relative_links_to_visit> 
    102                    </IE> 
     105                </IE> 
    103106                <FF> 
    104                    <max_relative_links_to_visit description="An integer, representing the maximum number of relative links that the browser should visit, before moving onto another website.  If negative, then the browser will exhaust all possible relative links found, before moving on.  This functionality is best effort; it's possible for the browser to visit new links on previously visited websites." default="-1"> 
     107                    <max_relative_links_to_visit description="An integer, representing the maximum number of relative links that the browser should visit, before moving onto another website.  If negative, then the browser will exhaust all possible relative links found, before moving on.  This functionality is best effort; it's possible for the browser to visit new links on previously visited websites." default="-1"> 
    105108                        5 
    106109                    </max_relative_links_to_visit> 
    107                    <!-- http://gatekeeper-w.mitre.org:80 --> 
    108                    <http_proxy description="Set to your HTTP Proxy if you have one, otherwise set to 'none'"> 
     110                    <!-- http://gatekeeper-w.mitre.org:80 --> 
     111                    <http_proxy description="Set to your HTTP Proxy if you have one, otherwise set to 'none'"> 
    109112                        none 
    110113                    </http_proxy> 
    111                    <ff_exec description="path to the firefox executable (default install path is C:\Program Files\Mozilla Firefox\firefox.exe)"> 
     114                    <ff_exec description="path to the firefox executable (default install path is C:\Program Files\Mozilla Firefox\firefox.exe)"> 
    112115                        C:\Program Files\Mozilla Firefox\firefox.exe 
    113116                    </ff_exec> 
    114                </FF> 
     117                </FF> 
    115118            </Browser> 
    116119            <EmailClient> 
     
    118121        </Driver> 
    119122        <perform_integrity_checks description="An integer, representing whether the Agent should perform any integrity checks. 1 enables, 0 disables." default="1"> 
    120             0 
     123            1  
    121124        </perform_integrity_checks> 
    122125        <!-- HoneyClient::Agent::Integrity Options --> 
     
    124127            <!-- Files which are read in only. --> 
    125128            <!-- TODO: Update this. --> 
    126             <file_checklist description="The file containing the list of files and directories to check during filesystem checking."
    127                 none 
     129            <file_checklist description="The file containing the list of files and directories to check during filesystem checking." default="none"
     130                etc/file_checklist.txt 
    128131            </file_checklist> 
    129132            <!-- TODO: Update this. --> 
    130             <file_exclude description="The file containing the list of files or directories to exclude if found in subdirectories during filesystem checking."
    131                 /tmp/file_exclude.txt 
     133            <file_exclude description="The file containing the list of files or directories to exclude if found in subdirectories during filesystem checking." default="none"
     134                ../../../etc/file_exclude.txt 
    132135            </file_exclude> 
    133             <!-- TODO: Update this. --> 
    134             <reg_list_to_check description="The file containing the list of registry keys to check."> 
    135                 /tmp/reg_list_to_check.txt 
    136             </reg_list_to_check> 
    137136            <!-- Files which are written out only. --> 
    138137            <!-- TODO: Update this. --> 
     
    146145            <!-- Files to read and write. --> 
    147146            <!-- TODO: Update this. --> 
    148             <clean_reg description="Stores baseline for the registry.  Always appended with a number."> 
    149                 clean.reg 
    150             </clean_reg> 
    151             <!-- TODO: Update this. --> 
    152             <current_reg description="Stores the current state of the register to check against the clean state."> 
    153                 current.reg 
    154             </current_reg> 
    155             <!-- TODO: Update this. --> 
    156             <diffs description="The file for the diff command to redirect its output to.  Always appended with a number."> 
    157                 differences.out 
    158             </diffs> 
    159             <!-- TODO: Update this. --> 
    160147            <test_dir description="If you're testing integrity checks, this is the directory that you can specify to minimize testing time. Only the files in this directory will be part of the integrity check."> 
    161148                ../t/testintegrity 
    162149            </test_dir> 
     150            <Registry> 
     151                <!-- HoneyClient::Agent::Integrity::Registry::Test Options --> 
     152                <Test> 
     153                    <!-- 
     154                        Note: you should *never* need to change *any* values 
     155                        within this section of the configuration.  All contents 
     156                        are *only* used for unit testing. 
     157                    --> 
     158                    <before_registry_file description="The relative path to a (before) sample registry dump, that's used during unit testing." default="t/test_registry/before.reg"> 
     159                        t/test_registry/before.reg 
     160                    </before_registry_file> 
     161                    <after_registry_file description="The relative path to an (after) sample registry dump, that's used during unit testing." default="t/test_registry/after.reg"> 
     162                        t/test_registry/after.reg 
     163                    </after_registry_file> 
     164                </Test> 
     165                <Parser> 
     166                    <!-- HoneyClient::Agent::Integrity::Registry::Parser::Test Options --> 
     167                    <Test> 
     168                        <!-- 
     169                            Note: you should *never* need to change *any* values 
     170                            within this section of the configuration.  All contents 
     171                            are *only* used for unit testing. 
     172                        --> 
     173                        <registry_file description="The relative path to a sample registry dump, that's used during unit testing." default="t/test_registry/dump.reg"> 
     174                            t/test_registry/dump.reg 
     175                        </registry_file> 
     176                    </Test> 
     177                </Parser> 
     178            </Registry> 
    163179        </Integrity> 
    164180    </Agent> 
     
    324340                    are *only* used for unit testing. 
    325341                --> 
    326                 <!-- TODO: Update this. --> 
    327342                <test_vm_config description="The relative path to the (empty) test VM, that's used during unit testing." default="t/testVM/winXPPro.vmx"> 
    328343                    t/testVM/winXPPro.vmx 
  • honeyclient/branches/exp/stephenson-link_scoring/etc/honeyclient_log.conf

    • Property svn:keywords set to Id "$file"
    r13 r153  
    77#              modules. 
    88# 
    9 # CVS: $Id: honeylog.conf 1099 2006-06-29 22:38:16Z jdurick
     9# CVS: $Id
    1010# 
    1111# @author jdurick, kindlund 
     
    6060 
    6161log4perl.rootLogger=INFO, Screen 
     62# Suppress Parser Debugging Messages 
     63#log4perl.logger.HoneyClient.Agent.Integrity.Registry.Parser=INFO, Screen 
    6264log4perl.appender.Screen=Log::Log4perl::Appender::Screen 
    6365# If you want colorized logging to the screen, enable this line, instead. 
    6466#log4perl.appender.Screen=Log::Log4perl::Appender::ScreenColoredLevels 
    6567log4perl.appender.Screen.stderr=0 
    66 log4perl.appender.Screen.Threshold=INFO 
     68log4perl.appender.Screen.Threshold=DEBUG 
    6769log4perl.appender.Screen.layout=Log::Log4perl::Layout::PatternLayout 
    6870log4perl.appender.Screen.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%M] (%F:%L) - %m%n 
  • honeyclient/branches/exp/stephenson-link_scoring/etc/inline2test.conf

    • Property svn:keywords set to Id "$file"
  • honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent.pm

    • Property svn:executable deleted
    • Property svn:keywords set to Id "$file"
    r13 r153  
    55# Description: Central library used for agent-based operations. 
    66# 
    7 # CVS: $Id: Agent.pm 1049 2006-06-28 16:37:41Z flindiakos
     7# CVS: $Id
    88# 
    99# @author knwang, ttruong, kindlund 
     
    3838=head1 VERSION 
    3939 
    40 $Rev: 1626 $ 
     400.92 
    4141 
    4242=head1 SYNOPSIS 
     
    7979 
    8080    # Set our package version. 
    81     $VERSION = 0.9
     81    $VERSION = 0.92
    8282 
    8383    @ISA = qw(Exporter); 
     
    210210# TODO: Update unit tests to include 'dclone' 
    211211use Storable qw(nfreeze thaw dclone); 
     212$Storable::Deparse = 1; 
     213$Storable::Eval = 1; 
    212214 
    213215# Include Base64 Libraries 
     
    236238our $PERFORM_INTEGRITY_CHECKS : shared = 
    237239    getVar(name => "perform_integrity_checks"); 
     240 
     241# A globally shared, serialized hashtable, containing the 
     242# initialized integrity state of the VM -- ready to be checked 
     243# against, at any time. 
     244our $integrityState : shared = undef; 
    238245 
    239246# A globally shared, serialized hashtable, containing data per 
     
    359366        $driverUpdateQueues{$driverName} = new Thread::Queue; 
    360367    } 
     368 
     369    # Perform initial integrity baseline check. 
     370    #my $integrity = undef; 
     371    #if ($PERFORM_INTEGRITY_CHECKS) { 
     372    #    print "Initializing Integrity Check...\n"; 
     373    #    # TODO: Initialize Integrity Checks 
     374    #    $integrity = HoneyClient::Agent::Integrity->new(); 
     375    #    $integrity->initAll(); 
     376    #} 
     377    #$integrityState = $integrity->serialize(); 
    361378 
    362379    # Release data lock. 
     
    688705            eval { 
    689706 
    690                 my $integrity = undef; 
    691                 if ($PERFORM_INTEGRITY_CHECKS) { 
    692                     print "Initializing Filesystem Integrity Check...\n"; 
    693                     # TODO: Initialize Integrity Checks 
    694                     $integrity = HoneyClient::Agent::Integrity->new(); 
    695                     $integrity->initAll(); 
    696                 } 
    697   
    698707                ################################### 
    699708                ### Driver Initialization Phase ### 
    700709                ################################### 
     710 
     711                # Initially set local integrity object to undef. 
     712                my $integrity = undef; 
    701713                 
    702714                # Initially set all driver objects to undef.  
     
    705717                # Acquire lock on stored driver state. 
    706718                $data = _lock(); 
     719 
     720                if ($PERFORM_INTEGRITY_CHECKS) { 
     721                    # XXX: WARNING - The $integrityState object data is NOT thread-safe 
     722                    # (since it relies on external data stored on the file system). 
     723                    # As such, do NOT try to call integrity checks on multiple, simultaneous 
     724                    # asynchronous threaded drivers. 
     725                    #$integrity = thaw($integrityState); 
     726                    # Perform initial integrity baseline check. 
     727                    print "Initializing Integrity Check...\n"; 
     728                    # TODO: Initialize Integrity Checks 
     729                    $integrity = HoneyClient::Agent::Integrity->new(); 
     730                    $integrity->initAll(); 
     731 
     732                    # TODO: Delete this. 
     733                    #$Data::Dumper::Indent = 1; 
     734                    #$Data::Dumper::Terse = 1; 
     735                    #print "Integrity: " . Dumper($integrity) . "\n"; 
     736                } 
    707737 
    708738                # Now, initialize each driver object.  
     
    805835                    # For now, we update a scalar called 'is_compromised' within 
    806836                    # the $data->{$driverName}->{'status'} sub-hashtable. 
    807                     print "Performing Filesystem Integrity Check...\n"; 
     837                    print "Performing Integrity Checks...\n"; 
    808838                    if ($integrity->checkAll()) { 
    809839                        print "Integrity Check: FAILED\n"; 
     
    10991129=head1 SEE ALSO 
    11001130 
    1101 XXX: Fill this in. 
    1102  
    1103 XXX: If you have a mailing list, mention it here. 
    1104  
    1105 XXX: If you have a web site set up for your module, mention it here. 
     1131L<http://www.honeyclient.org/trac> 
    11061132 
    11071133=head1 REPORTING BUGS 
    11081134 
    1109 XXX: Mention website/mailing list to use, when reporting bugs. 
     1135L<http://www.honeyclient.org/trac/newticket> 
    11101136 
    11111137=head1 ACKNOWLEDGEMENTS 
  • honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver.pm

    • Property svn:executable deleted
    • Property svn:keywords set to Id "$file"
    r13 r153  
    66#              HoneyClient VM. 
    77# 
    8 # CVS: $Id: Driver.pm 1412 2006-10-18 20:33:18Z kindlund
     8# CVS: $Id
    99# 
    1010# @author knwang, ttruong, kindlund 
     
    3838=head1 VERSION 
    3939 
    40 This documentation refers to HoneyClient::Agent::Driver version 1.0
     40This documentation refers to HoneyClient::Agent::Driver version 0.92
    4141 
    4242=head1 SYNOPSIS 
     
    120120 
    121121    # Set our package version. 
    122     $VERSION = 0.9
     122    $VERSION = 0.92
    123123 
    124124    @ISA = qw(Exporter); 
     
    160160# Make sure Log::Log4perl loads 
    161161BEGIN { use_ok('Log::Log4perl', qw(:nowarn)) 
    162         or diag("Can't load Log::Log4perl package. Check to make sure the package library is correctly linsted within the path."); 
     162        or diag("Can't load Log::Log4perl package. Check to make sure the package library is correctly listed within the path."); 
    163163        
    164164        # Suppress all logging messages, since we need clean output for unit testing. 
     
    697697L<perltoot/"Autoloaded Data Methods"> 
    698698 
    699 XXX: If you have a mailing list, mention it here. 
    700  
    701 XXX: If you have a web site set up for your module, mention it here. 
     699L<http://www.honeyclient.org/trac> 
    702700 
    703701=head1 REPORTING BUGS 
    704702 
    705 XXX: Mention website/mailing list to use, when reporting bugs. 
     703L<http://www.honeyclient.org/trac/newticket> 
    706704 
    707705=head1 AUTHORS 
  • honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser.pm

    • Property svn:keywords set to Id "$file"
    r147 r153  
    77#              HoneyClient VM. 
    88# 
    9 # CVS: $Id: Browser.pm 1423 2006-11-6 14:21:47Z stephenson
     9# CVS: $Id
    1010# 
    1111# @author knwang, kindlund, stephenson 
     
    4040=head1 VERSION 
    4141 
    42 This documentation refers to HoneyClient::Agent::Driver::Browser version 1.0
     42This documentation refers to HoneyClient::Agent::Driver::Browser version 0.92
    4343 
    4444=head1 SYNOPSIS 
     
    8484  $browser->{links_to_visit}->{'http://www.mitre.org'} = 1; 
    8585 
    86   # Now, drive IE for one iteration. 
     86  # Now, drive the browser for one iteration. 
    8787  $browser->drive(); 
    8888 
     
    9090 
    9191This library allows the Agent module to drive an instance of any broswer, 
    92 running inside the HoneyClient VM.  The purpose 
    93 of this module is to programmatically navigate the browser to different 
    94 websites, in order to become purposefully infected with new malware. 
    95 The module implements the logic necessary to decide the order in which 
    96 the 
     92running inside the HoneyClient VM.  The purpose of this module is to 
     93programmatically navigate the browser to different websites, in order to 
     94become purposefully infected with new malware. 
    9795 
    9896This module is object-oriented in design, retaining all state information 
     
    157155 
    158156    # Set our package version. 
    159     $VERSION = 0.9
     157    $VERSION = 0.92
    160158 
    161159    # Define inherited modules. 
     
    175173    # Do not simply export all your public functions/methods/constants. 
    176174 
    177     # This allows declaration use HoneyClient::Agent::Driver::IE ':all'; 
     175    # This allows declaration use HoneyClient::Agent::Driver::Browser ':all'; 
    178176    # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK 
    179177    # will save memory. 
     
    213211 
    214212# Use Storable Library 
     213# TODO: Need unit testing. 
    215214use Storable qw(dclone); 
    216215 
     
    240239=head1 DEFAULT PARAMETER LIST 
    241240 
    242 When an IE B<$object> is instantiated using the B<new()> function, 
     241When a Browser B<$object> is instantiated using the B<new()> function, 
    243242the following parameters are supplied default values.  Each value 
    244243can be overridden by specifying the new (key => value) pair into the 
     
    302301This parameter is a hashtable of fully qualified URLs, such that each 
    303302URL shares a common B<hostname>.  This is an internal hashtable used 
    304 by the IE driver that should be initially empty.  As the IE driver 
    305 extracts and removes new URLs off the B<links_to_visit> hashtable, 
     303by the Browser driver that should be initially empty.  As the Browser 
     304driver extracts and removes new URLs off the B<links_to_visit> hashtable, 
    306305driving the browser to each URL, any B<relative> links found are 
    307306added into this hashtable; any B<external> links found are added 
     
    364363=over 4 
    365364 
    366 A string containing the process name of the Internet Explorer 
    367 browser application, as it appears in the Task Manager.  This is 
    368 usually called "iexplore.exe". 
     365A string containing the process name of the  browser application, 
     366as it appears in the Task Manager. 
    369367 
    370368=back 
     
    458456    ignore_links_timed_out  => getVar(name => "ignore_links_timed_out"), 
    459457 
    460     # A string containing the process name of the Internet Explorer 
    461     # browser application, as it appears in the Task Manager.  This is 
    462     # usually called "iexplore.exe". 
     458    # A string containing the process name of the browser application, 
     459    # as it appears in the Task Manager. 
    463460    process_name            => getVar(name => "process_name"), 
    464461 
     
    499496# 'links_to_visit' hashtable is checked. 
    500497# 
    501 # Inputs: HoneyClient::Agent::Driver::IE object 
     498# Inputs: HoneyClient::Agent::Driver::Browser object 
    502499# Outputs: link, or undef if all applicable scalars/hashtables are empty 
    503500sub _getNextLink { 
     
    718715# already in the hashtable. 
    719716# 
    720 # Inputs: HoneyClient::Agent::Driver::IE object, url to validate 
     717# Inputs: HoneyClient::Agent::Driver::Browser object, url to validate 
    721718# Outputs: url if valid, empty string if invalid 
    722719sub _validateLink { 
     
    805802=head1 METHODS IMPLEMENTED 
    806803 
    807 The following functions have been implemented by the IE driver.  Many 
     804The following functions have been implemented by the Browser driver.  Many 
    808805of these methods were implementations of the parent Driver interface. 
    809806 
     
    812809Driver interface, see the L<HoneyClient::Agent::Driver> documentation. 
    813810 
    814 =head2 HoneyClient::Agent::Driver::IE->new($param => $value, ...) 
     811=head2 HoneyClient::Agent::Driver::Browser->new($param => $value, ...) 
    815812 
    816813=over 4 
    817814 
    818 Creates a new IE driver object, which contains a hashtable 
     815Creates a new Browser driver object, which contains a hashtable 
    819816containing any of the supplied "param => value" arguments. 
    820817 
     
    826823corresponding $value(s) B<must> also be specified. 
    827824 
    828 I<Output>: The instantiated IE driver B<$object>, fully initialized. 
     825I<Output>: The instantiated Browser driver B<$object>, fully initialized. 
    829826 
    830827=back 
     
    888885=pod 
    889886 
    890 =head2 $object->drive(
     887=head2 $object->drive(url => $url
    891888 
    892889=over 4 
    893890 
    894 Drives an instance of Microsoft Internet Explorer for one iteration, 
     891Drives an instance of the browser for one iteration, 
    895892navigating to the next URL and updating the driver's corresponding 
    896893internal hashtables accordingly. 
     
    900897the "DEFAULT PARAMETER LIST" section. 
    901898 
    902 Once a drive() iteration has completed, the corresponding Microsoft 
    903 Internet Explorer browser process is terminated.  Thus, each call to 
    904 drive() invokes a new instance of the browser. 
    905  
    906 I<Output>: The updated IE driver B<$object>, containing state information 
    907 from driving Microsoft Internet Explorer for one iteration. 
    908  
    909 B<Warning>: This method will B<croak> if the IE driver object is B<unable> 
     899Once a drive() iteration has completed, the corresponding browser process  
     900is terminated.  Thus, each call to drive() invokes a new instance of the  
     901browser. 
     902 
     903I<Inputs>: 
     904 B<$url> is an optional argument, specifying the next immediate URL the browser must drive to. 
     905 
     906I<Output>: The updated Browser driver B<$object>, containing state information 
     907from driving the browser for one iteration. 
     908 
     909B<Warning>: This method will B<croak> if the Browser driver object is B<unable> 
    910910to navigate to a new link, because its list of links to visit is empty. 
    911911 
     
    10461046=over 4 
    10471047 
    1048 Returns the next URL that the Microsoft Internet Explorer browser will 
    1049 navigate to, upon the next subsequent call to the B<$object>'s drive() 
    1050 method. 
     1048Returns the next URL that the browser will navigate to, upon the next 
     1049subsequent call to the B<$object>'s drive() method. 
    10511050 
    10521051I<Output>: The next URL that the browser will be driven to.  The returned 
    1053 data may be undef, if the IE driver is finished and there are no links 
     1052data may be undef, if the Browser driver is finished and there are no links 
    10541053left to navigate to. 
    10551054 
     
    11011100 
    11021101Returns the next set of server hostnames and/or IP addresses that the 
    1103 Microsoft Internet Explorer browser will contact, upon the next subsequent 
    1104 call to the B<$object>'s drive() method. 
     1102browser will contact, upon the next subsequent call to the B<$object>'s 
     1103drive() method. 
    11051104 
    11061105Specifically, the returned data is a reference to a hashtable, containing 
     
    13821381=over 4 
    13831382 
    1384 Indicates if the IE driver B<$object> has driven the Microsoft Internet 
    1385 Explorer browser to all possible links it has found within its hashtables 
     1383Indicates if the Browser driver B<$object> has driven the browser   
     1384process to all possible links it has found within its hashtables 
    13861385and is unable to navigate the browser further without additional, external 
    13871386input. 
    13881387 
    1389 I<Output>: True if the IE driver B<$object> is finished, false otherwise. 
    1390  
    1391 B<Note>: Additional links can be fed to this IE driver at any time, by 
     1388I<Output>: True if the Browser driver B<$object> is finished, false otherwise. 
     1389 
     1390B<Note>: Additional links can be fed to this Browser driver at any time, by 
    13921391simply adding new hashtable entries to the B<links_to_visit> hashtable 
    13931392within the B<$object>. 
    13941393 
    13951394For example, if you wanted to add the URL "http://www.mitre.org" 
    1396 to the IE driver B<$object>, simply use the following code: 
     1395to the Browser driver B<$object>, simply use the following code: 
    13971396 
    13981397  $object->{links_to_visit}->{'http://www.mitre.org'} = 1; 
     
    14341433=over 4 
    14351434 
    1436 Returns the current status of the IE driver B<$object>, as it's state 
     1435Returns the current status of the Browser driver B<$object>, as it's state 
    14371436exists, between subsequent calls to $object->driver(). 
    14381437 
    14391438Specifically, the data returned is a reference to a hashtable, 
    14401439containing specific statistical information about the status 
    1441 of the IE driver's progress, between iterations of driving the 
    1442 Microsoft Internet Explorer browser
     1440of the Browser driver's progress, between iterations of driving the 
     1441browser process
    14431442 
    14441443The following is an example hashtable, containing all the 
     
    14571456 
    14581457I<Output>: A corresponding B<$hashref>, containing statistical information 
    1459 about the IE driver's progress, as previously mentioned. 
     1458about the Browser driver's progress, as previously mentioned. 
    14601459 
    14611460# XXX: Resolve this, per parent Driver description. 
     
    15251524 
    15261525=head1 BUGS & ASSUMPTIONS 
    1527  
    1528 This module makes extensive use of the Win32::IE::Mechanize module. 
    1529 Any bugs found within that library will most likely be present here. 
    15301526 
    15311527In a nutshell, this object is nothing more than a blessed anonymous 
     
    15361532or overriding (key => value) pairs. 
    15371533 
    1538 However, additional links can be fed to any IE driver at any time, by 
     1534However, additional links can be fed to any Browser driver at any time, by 
    15391535simply adding new hashtable entries to the B<links_to_visit> hashtable 
    15401536within the B<$object>. 
    15411537 
    15421538For example, if you wanted to add the URL "http://www.mitre.org" 
    1543 to the IE driver B<$object>, simply use the following code: 
     1539to the Browser driver B<$object>, simply use the following code: 
    15441540 
    15451541  $object->{links_to_visit}->{'http://www.mitre.org'} = 1; 
    15461542 
    1547 XXX: At some point, we may want to replace all the instances of '1' 
    1548 with more useful data, like a sub-hashtable that contains a set of 
    1549 L<Win32::OLE> options that would be fed directly into each 
    1550 instance of Win32::IE::Mechanize->new(%options). 
    1551  
    1552 In general, the IE driver does B<not> know how many links it will 
     1543In general, the Browser driver does B<not> know how many links it will 
    15531544ultimately end up browsing to, until it conducts an exhaustive 
    15541545spider of all initial URLs supplied.  As such, expect the output 
     
    15691560=head1 SEE ALSO 
    15701561 
    1571 Win32::IE::Mechanize 
    1572  
    1573 Win32::OLE 
    1574  
    1575 XXX: If you have a mailing list, mention it here. 
    1576  
    1577 XXX: If you have a web site set up for your module, mention it here. 
     1562L<http://www.honeyclient.org/trac> 
    15781563 
    15791564=head1 REPORTING BUGS 
    15801565 
    1581 XXX: Mention website/mailing list to use, when reporting bugs. 
     1566L<http://www.honeyclient.org/trac/newticket> 
    15821567 
    15831568=head1 AUTHORS 
     
    15881573 
    15891574Darien Kindlund, E<lt>kindlund@mitre.orgE<gt> 
     1575 
     1576Brad Stephenson, E<lt>stephenson@mitre.orgE<gt> 
    15901577 
    15911578=head1 COPYRIGHT & LICENSE 
  • honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser/FF.pm

    • Property svn:keywords set to Id "$file"
  • honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser/IE.pm

    • Property svn:executable deleted
    • Property svn:keywords set to Id "$file"
    r13 r153  
    77#              HoneyClient VM. 
    88# 
    9 # CVS: $Id: IE.pm 1599 2006-11-08 20:04:30Z kindlund
     9# CVS: $Id
    1010# 
    1111# @author knwang, ttruong, kindlund, stephenson 
     
    4343=head1 VERSION 
    4444 
    45 This documentation refers to HoneyClient::Agent::Driver::Browser::IE version 1.0
     45This documentation refers to HoneyClient::Agent::Driver::Browser::IE version 0.92
    4646 
    4747=head1 SYNOPSIS 
     
    7474 
    7575    # Set our package version. 
    76     $VERSION = 0.9
     76    $VERSION = 0.92
    7777 
    7878    # Define inherited modules. 
  • honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Integrity.pm

    • Property svn:keywords set to Id "$file"
    r13 r153  
    11################################################################################ 
    2 # Created on:  June 1, 2006 
     2# Created on:  June 01, 2006 
    33# Package:     HoneyClient::Agent 
    44# File:        Integrity.pm 
    5 # Description: Module for checking the system integrity for possible modification 
     5# Description: Module for checking the system integrity for possible 
     6#              modifications. 
    67# 
    78# @author knwang, xkovah, ttruong 
     
    2627################################################################################ 
    2728 
    28  
    29  
    3029=pod 
    3130 
     
    3938=head1 VERSION 
    4039 
    41 0.08 
     400.92 
    4241 
    4342=head1 SYNOPSIS 
     
    105104can_ok('HoneyClient::Agent::Integrity', 'initFileSystem'); 
    106105can_ok('HoneyClient::Agent::Integrity', 'checkFileSystem'); 
    107 can_ok('HoneyClient::Agent::Integrity', 'initRegistry'); 
    108 can_ok('HoneyClient::Agent::Integrity', 'checkRegistry'); 
    109 use HoneyClient::Agent::Integrity qw(initAll checkAll initRegistry checkRegistry initFileSystem checkFileSystem); 
     106use HoneyClient::Agent::Integrity qw(initAll checkAll initFileSystem checkFileSystem); 
    110107 
    111108# Make sure HoneyClient::Util::Config loads. 
     
    134131 
    135132# Make sure Storable loads. 
    136 BEGIN { use_ok('Storable', qw(dclone)) or diag("Can't load Storable package.  Check to make sure the package library is correctly listed within the path."); } 
     133BEGIN { use_ok('Storable', qw(dclone nfreeze thaw)) or diag("Can't load Storable package.  Check to make sure