Changeset 153
- Timestamp:
- 01/10/07 14:06:43 (2 years ago)
- Files:
-
- honeyclient/branches/exp/stephenson-link_scoring (modified) (1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/bin/StartAgent.pl (modified) (2 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/bin/StartManager.pl (modified) (2 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/bin/TestRegistry.pl (copied) (copied from honeyclient/trunk/bin/TestRegistry.pl)
- honeyclient/branches/exp/stephenson-link_scoring/etc/file_checklist.txt (copied) (copied from honeyclient/trunk/etc/file_checklist.txt)
- honeyclient/branches/exp/stephenson-link_scoring/etc/honeyclient.xml (modified) (8 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/etc/honeyclient_log.conf (modified) (2 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/etc/inline2test.conf (modified) (1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent.pm (modified) (10 diffs, 2 props)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver.pm (modified) (5 diffs, 2 props)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser.pm (modified) (27 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser/FF.pm (modified) (1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser/IE.pm (modified) (3 diffs, 2 props)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Integrity (copied) (copied from honeyclient/trunk/lib/HoneyClient/Agent/Integrity)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Integrity.pm (modified) (26 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Manager.pm (modified) (4 diffs, 2 props)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Manager/FW.pm (modified) (8 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Manager/VM.pm (modified) (6 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Util/Config.pm (modified) (7 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Util/SOAP.pm (modified) (5 diffs, 1 prop)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent.t (copied) (copied from honeyclient/trunk/t/honeyclient_agent.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent_driver.t (modified) (1 diff)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent_driver_browser.t (copied) (copied from honeyclient/trunk/t/honeyclient_agent_driver_browser.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent_driver_browser_ie.t (copied) (copied from honeyclient/trunk/t/honeyclient_agent_driver_browser_ie.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent_integrity.t (modified) (3 diffs)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent_integrity_registry.t (copied) (copied from honeyclient/trunk/t/honeyclient_agent_integrity_registry.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_agent_integrity_registry_parser.t (copied) (copied from honeyclient/trunk/t/honeyclient_agent_integrity_registry_parser.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_manager.t (copied) (copied from honeyclient/trunk/t/honeyclient_manager.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_manager_fw.t (copied) (copied from honeyclient/trunk/t/honeyclient_manager_fw.t)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_manager_vm.t (modified) (2 diffs)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_util_config.t (modified) (3 diffs)
- honeyclient/branches/exp/stephenson-link_scoring/t/honeyclient_util_soap.t (modified) (1 diff)
- honeyclient/branches/exp/stephenson-link_scoring/t/test_registry (copied) (copied from honeyclient/trunk/t/test_registry)
- honeyclient/branches/exp/stephenson-link_scoring/thirdparty/xpath-23934.patch (copied) (copied from honeyclient/trunk/thirdparty/xpath-23934.patch)
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$ 2 4 3 5 use strict; … … 35 37 print "Watchdog fault detected, recovering Agent daemon.\n"; 36 38 # 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; 38 40 39 41 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$ 2 4 3 5 use strict; … … 20 22 my $agentState = HoneyClient::Manager->run( 21 23 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', 23 25 agent_state => encode_base64(nfreeze({ 24 26 IE => { # Change to 'IE' or 'FF' honeyclient/branches/exp/stephenson-link_scoring/etc/honeyclient.xml
- Property svn:keywords set to Id "$file"
r79 r153 9 9 For information about the syntax of this file format, please type 10 10 "perldoc XML::Simple". 11 12 CVS: $Id$ 11 13 12 14 ####################################################################### … … 45 47 <HoneyClient> 46 48 <!-- 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 49 52 </timeout> 50 53 <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"> … … 69 72 </timeout> 70 73 <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"> 74 77 1 75 78 </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"> 78 81 iexplore.exe 79 82 </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"> 81 84 -1 82 85 </max_relative_links_to_visit> … … 87 90 archive,privacy,legal,disclaim,about,contact,copyright,jobs,careers 88 91 </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"> 93 96 1 94 97 </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"> 97 100 iexplore.exe 98 101 </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"> 100 103 -1 101 104 </max_relative_links_to_visit> 102 </IE>105 </IE> 103 106 <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"> 105 108 5 106 109 </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'"> 109 112 none 110 113 </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)"> 112 115 C:\Program Files\Mozilla Firefox\firefox.exe 113 116 </ff_exec> 114 </FF>117 </FF> 115 118 </Browser> 116 119 <EmailClient> … … 118 121 </Driver> 119 122 <perform_integrity_checks description="An integer, representing whether the Agent should perform any integrity checks. 1 enables, 0 disables." default="1"> 120 0123 1 121 124 </perform_integrity_checks> 122 125 <!-- HoneyClient::Agent::Integrity Options --> … … 124 127 <!-- Files which are read in only. --> 125 128 <!-- TODO: Update this. --> 126 <file_checklist description="The file containing the list of files and directories to check during filesystem checking." >127 none129 <file_checklist description="The file containing the list of files and directories to check during filesystem checking." default="none"> 130 etc/file_checklist.txt 128 131 </file_checklist> 129 132 <!-- 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.txt133 <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 132 135 </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.txt136 </reg_list_to_check>137 136 <!-- Files which are written out only. --> 138 137 <!-- TODO: Update this. --> … … 146 145 <!-- Files to read and write. --> 147 146 <!-- TODO: Update this. --> 148 <clean_reg description="Stores baseline for the registry. Always appended with a number.">149 clean.reg150 </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.reg154 </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.out158 </diffs>159 <!-- TODO: Update this. -->160 147 <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."> 161 148 ../t/testintegrity 162 149 </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> 163 179 </Integrity> 164 180 </Agent> … … 324 340 are *only* used for unit testing. 325 341 --> 326 <!-- TODO: Update this. -->327 342 <test_vm_config description="The relative path to the (empty) test VM, that's used during unit testing." default="t/testVM/winXPPro.vmx"> 328 343 t/testVM/winXPPro.vmx honeyclient/branches/exp/stephenson-link_scoring/etc/honeyclient_log.conf
- Property svn:keywords set to Id "$file"
r13 r153 7 7 # modules. 8 8 # 9 # CVS: $Id : honeylog.conf 1099 2006-06-29 22:38:16Z jdurick$9 # CVS: $Id$ 10 10 # 11 11 # @author jdurick, kindlund … … 60 60 61 61 log4perl.rootLogger=INFO, Screen 62 # Suppress Parser Debugging Messages 63 #log4perl.logger.HoneyClient.Agent.Integrity.Registry.Parser=INFO, Screen 62 64 log4perl.appender.Screen=Log::Log4perl::Appender::Screen 63 65 # If you want colorized logging to the screen, enable this line, instead. 64 66 #log4perl.appender.Screen=Log::Log4perl::Appender::ScreenColoredLevels 65 67 log4perl.appender.Screen.stderr=0 66 log4perl.appender.Screen.Threshold= INFO68 log4perl.appender.Screen.Threshold=DEBUG 67 69 log4perl.appender.Screen.layout=Log::Log4perl::Layout::PatternLayout 68 70 log4perl.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 5 5 # Description: Central library used for agent-based operations. 6 6 # 7 # CVS: $Id : Agent.pm 1049 2006-06-28 16:37:41Z flindiakos$7 # CVS: $Id$ 8 8 # 9 9 # @author knwang, ttruong, kindlund … … 38 38 =head1 VERSION 39 39 40 $Rev: 1626 $ 40 0.92 41 41 42 42 =head1 SYNOPSIS … … 79 79 80 80 # Set our package version. 81 $VERSION = 0.9 ;81 $VERSION = 0.92; 82 82 83 83 @ISA = qw(Exporter); … … 210 210 # TODO: Update unit tests to include 'dclone' 211 211 use Storable qw(nfreeze thaw dclone); 212 $Storable::Deparse = 1; 213 $Storable::Eval = 1; 212 214 213 215 # Include Base64 Libraries … … 236 238 our $PERFORM_INTEGRITY_CHECKS : shared = 237 239 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. 244 our $integrityState : shared = undef; 238 245 239 246 # A globally shared, serialized hashtable, containing data per … … 359 366 $driverUpdateQueues{$driverName} = new Thread::Queue; 360 367 } 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(); 361 378 362 379 # Release data lock. … … 688 705 eval { 689 706 690 my $integrity = undef;691 if ($PERFORM_INTEGRITY_CHECKS) {692 print "Initializing Filesystem Integrity Check...\n";693 # TODO: Initialize Integrity Checks694 $integrity = HoneyClient::Agent::Integrity->new();695 $integrity->initAll();696 }697 698 707 ################################### 699 708 ### Driver Initialization Phase ### 700 709 ################################### 710 711 # Initially set local integrity object to undef. 712 my $integrity = undef; 701 713 702 714 # Initially set all driver objects to undef. … … 705 717 # Acquire lock on stored driver state. 706 718 $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 } 707 737 708 738 # Now, initialize each driver object. … … 805 835 # For now, we update a scalar called 'is_compromised' within 806 836 # the $data->{$driverName}->{'status'} sub-hashtable. 807 print "Performing Filesystem Integrity Check...\n";837 print "Performing Integrity Checks...\n"; 808 838 if ($integrity->checkAll()) { 809 839 print "Integrity Check: FAILED\n"; … … 1099 1129 =head1 SEE ALSO 1100 1130 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. 1131 L<http://www.honeyclient.org/trac> 1106 1132 1107 1133 =head1 REPORTING BUGS 1108 1134 1109 XXX: Mention website/mailing list to use, when reporting bugs. 1135 L<http://www.honeyclient.org/trac/newticket> 1110 1136 1111 1137 =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 6 6 # HoneyClient VM. 7 7 # 8 # CVS: $Id : Driver.pm 1412 2006-10-18 20:33:18Z kindlund$8 # CVS: $Id$ 9 9 # 10 10 # @author knwang, ttruong, kindlund … … 38 38 =head1 VERSION 39 39 40 This documentation refers to HoneyClient::Agent::Driver version 1.0.40 This documentation refers to HoneyClient::Agent::Driver version 0.92. 41 41 42 42 =head1 SYNOPSIS … … 120 120 121 121 # Set our package version. 122 $VERSION = 0.9 ;122 $VERSION = 0.92; 123 123 124 124 @ISA = qw(Exporter); … … 160 160 # Make sure Log::Log4perl loads 161 161 BEGIN { use_ok('Log::Log4perl', qw(:nowarn)) 162 or diag("Can't load Log::Log4perl package. Check to make sure the package library is correctly li nsted 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."); 163 163 164 164 # Suppress all logging messages, since we need clean output for unit testing. … … 697 697 L<perltoot/"Autoloaded Data Methods"> 698 698 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. 699 L<http://www.honeyclient.org/trac> 702 700 703 701 =head1 REPORTING BUGS 704 702 705 XXX: Mention website/mailing list to use, when reporting bugs. 703 L<http://www.honeyclient.org/trac/newticket> 706 704 707 705 =head1 AUTHORS honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Driver/Browser.pm
- Property svn:keywords set to Id "$file"
r147 r153 7 7 # HoneyClient VM. 8 8 # 9 # CVS: $Id : Browser.pm 1423 2006-11-6 14:21:47Z stephenson$9 # CVS: $Id$ 10 10 # 11 11 # @author knwang, kindlund, stephenson … … 40 40 =head1 VERSION 41 41 42 This documentation refers to HoneyClient::Agent::Driver::Browser version 1.0.42 This documentation refers to HoneyClient::Agent::Driver::Browser version 0.92. 43 43 44 44 =head1 SYNOPSIS … … 84 84 $browser->{links_to_visit}->{'http://www.mitre.org'} = 1; 85 85 86 # Now, drive IEfor one iteration.86 # Now, drive the browser for one iteration. 87 87 $browser->drive(); 88 88 … … 90 90 91 91 This 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 92 running inside the HoneyClient VM. The purpose of this module is to 93 programmatically navigate the browser to different websites, in order to 94 become purposefully infected with new malware. 97 95 98 96 This module is object-oriented in design, retaining all state information … … 157 155 158 156 # Set our package version. 159 $VERSION = 0.9 ;157 $VERSION = 0.92; 160 158 161 159 # Define inherited modules. … … 175 173 # Do not simply export all your public functions/methods/constants. 176 174 177 # This allows declaration use HoneyClient::Agent::Driver:: IE':all';175 # This allows declaration use HoneyClient::Agent::Driver::Browser ':all'; 178 176 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK 179 177 # will save memory. … … 213 211 214 212 # Use Storable Library 213 # TODO: Need unit testing. 215 214 use Storable qw(dclone); 216 215 … … 240 239 =head1 DEFAULT PARAMETER LIST 241 240 242 When a n IEB<$object> is instantiated using the B<new()> function,241 When a Browser B<$object> is instantiated using the B<new()> function, 243 242 the following parameters are supplied default values. Each value 244 243 can be overridden by specifying the new (key => value) pair into the … … 302 301 This parameter is a hashtable of fully qualified URLs, such that each 303 302 URL shares a common B<hostname>. This is an internal hashtable used 304 by the IE driver that should be initially empty. As the IE driver305 extracts and removes new URLs off the B<links_to_visit> hashtable,303 by the Browser driver that should be initially empty. As the Browser 304 driver extracts and removes new URLs off the B<links_to_visit> hashtable, 306 305 driving the browser to each URL, any B<relative> links found are 307 306 added into this hashtable; any B<external> links found are added … … 364 363 =over 4 365 364 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". 365 A string containing the process name of the browser application, 366 as it appears in the Task Manager. 369 367 370 368 =back … … 458 456 ignore_links_timed_out => getVar(name => "ignore_links_timed_out"), 459 457 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. 463 460 process_name => getVar(name => "process_name"), 464 461 … … 499 496 # 'links_to_visit' hashtable is checked. 500 497 # 501 # Inputs: HoneyClient::Agent::Driver:: IEobject498 # Inputs: HoneyClient::Agent::Driver::Browser object 502 499 # Outputs: link, or undef if all applicable scalars/hashtables are empty 503 500 sub _getNextLink { … … 718 715 # already in the hashtable. 719 716 # 720 # Inputs: HoneyClient::Agent::Driver:: IEobject, url to validate717 # Inputs: HoneyClient::Agent::Driver::Browser object, url to validate 721 718 # Outputs: url if valid, empty string if invalid 722 719 sub _validateLink { … … 805 802 =head1 METHODS IMPLEMENTED 806 803 807 The following functions have been implemented by the IEdriver. Many804 The following functions have been implemented by the Browser driver. Many 808 805 of these methods were implementations of the parent Driver interface. 809 806 … … 812 809 Driver interface, see the L<HoneyClient::Agent::Driver> documentation. 813 810 814 =head2 HoneyClient::Agent::Driver:: IE->new($param => $value, ...)811 =head2 HoneyClient::Agent::Driver::Browser->new($param => $value, ...) 815 812 816 813 =over 4 817 814 818 Creates a new IEdriver object, which contains a hashtable815 Creates a new Browser driver object, which contains a hashtable 819 816 containing any of the supplied "param => value" arguments. 820 817 … … 826 823 corresponding $value(s) B<must> also be specified. 827 824 828 I<Output>: The instantiated IEdriver B<$object>, fully initialized.825 I<Output>: The instantiated Browser driver B<$object>, fully initialized. 829 826 830 827 =back … … 888 885 =pod 889 886 890 =head2 $object->drive( )887 =head2 $object->drive(url => $url) 891 888 892 889 =over 4 893 890 894 Drives an instance of Microsoft Internet Explorer for one iteration,891 Drives an instance of the browser for one iteration, 895 892 navigating to the next URL and updating the driver's corresponding 896 893 internal hashtables accordingly. … … 900 897 the "DEFAULT PARAMETER LIST" section. 901 898 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> 899 Once a drive() iteration has completed, the corresponding browser process 900 is terminated. Thus, each call to drive() invokes a new instance of the 901 browser. 902 903 I<Inputs>: 904 B<$url> is an optional argument, specifying the next immediate URL the browser must drive to. 905 906 I<Output>: The updated Browser driver B<$object>, containing state information 907 from driving the browser for one iteration. 908 909 B<Warning>: This method will B<croak> if the Browser driver object is B<unable> 910 910 to navigate to a new link, because its list of links to visit is empty. 911 911 … … 1046 1046 =over 4 1047 1047 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. 1048 Returns the next URL that the browser will navigate to, upon the next 1049 subsequent call to the B<$object>'s drive() method. 1051 1050 1052 1051 I<Output>: The next URL that the browser will be driven to. The returned 1053 data may be undef, if the IEdriver is finished and there are no links1052 data may be undef, if the Browser driver is finished and there are no links 1054 1053 left to navigate to. 1055 1054 … … 1101 1100 1102 1101 Returns 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>'sdrive() method.1102 browser will contact, upon the next subsequent call to the B<$object>'s 1103 drive() method. 1105 1104 1106 1105 Specifically, the returned data is a reference to a hashtable, containing … … 1382 1381 =over 4 1383 1382 1384 Indicates if the IE driver B<$object> has driven the Microsoft Internet1385 Explorer browserto all possible links it has found within its hashtables1383 Indicates if the Browser driver B<$object> has driven the browser 1384 process to all possible links it has found within its hashtables 1386 1385 and is unable to navigate the browser further without additional, external 1387 1386 input. 1388 1387 1389 I<Output>: True if the IEdriver B<$object> is finished, false otherwise.1390 1391 B<Note>: Additional links can be fed to this IEdriver at any time, by1388 I<Output>: True if the Browser driver B<$object> is finished, false otherwise. 1389 1390 B<Note>: Additional links can be fed to this Browser driver at any time, by 1392 1391 simply adding new hashtable entries to the B<links_to_visit> hashtable 1393 1392 within the B<$object>. 1394 1393 1395 1394 For example, if you wanted to add the URL "http://www.mitre.org" 1396 to the IEdriver B<$object>, simply use the following code:1395 to the Browser driver B<$object>, simply use the following code: 1397 1396 1398 1397 $object->{links_to_visit}->{'http://www.mitre.org'} = 1; … … 1434 1433 =over 4 1435 1434 1436 Returns the current status of the IEdriver B<$object>, as it's state1435 Returns the current status of the Browser driver B<$object>, as it's state 1437 1436 exists, between subsequent calls to $object->driver(). 1438 1437 1439 1438 Specifically, the data returned is a reference to a hashtable, 1440 1439 containing specific statistical information about the status 1441 of the IEdriver's progress, between iterations of driving the1442 Microsoft Internet Explorer browser.1440 of the Browser driver's progress, between iterations of driving the 1441 browser process. 1443 1442 1444 1443 The following is an example hashtable, containing all the … … 1457 1456 1458 1457 I<Output>: A corresponding B<$hashref>, containing statistical information 1459 about the IEdriver's progress, as previously mentioned.1458 about the Browser driver's progress, as previously mentioned. 1460 1459 1461 1460 # XXX: Resolve this, per parent Driver description. … … 1525 1524 1526 1525 =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.1530 1526 1531 1527 In a nutshell, this object is nothing more than a blessed anonymous … … 1536 1532 or overriding (key => value) pairs. 1537 1533 1538 However, additional links can be fed to any IEdriver at any time, by1534 However, additional links can be fed to any Browser driver at any time, by 1539 1535 simply adding new hashtable entries to the B<links_to_visit> hashtable 1540 1536 within the B<$object>. 1541 1537 1542 1538 For example, if you wanted to add the URL "http://www.mitre.org" 1543 to the IEdriver B<$object>, simply use the following code:1539 to the Browser driver B<$object>, simply use the following code: 1544 1540 1545 1541 $object->{links_to_visit}->{'http://www.mitre.org'} = 1; 1546 1542 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 1543 In general, the Browser driver does B<not> know how many links it will 1553 1544 ultimately end up browsing to, until it conducts an exhaustive 1554 1545 spider of all initial URLs supplied. As such, expect the output … … 1569 1560 =head1 SEE ALSO 1570 1561 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. 1562 L<http://www.honeyclient.org/trac> 1578 1563 1579 1564 =head1 REPORTING BUGS 1580 1565 1581 XXX: Mention website/mailing list to use, when reporting bugs. 1566 L<http://www.honeyclient.org/trac/newticket> 1582 1567 1583 1568 =head1 AUTHORS … … 1588 1573 1589 1574 Darien Kindlund, E<lt>kindlund@mitre.orgE<gt> 1575 1576 Brad Stephenson, E<lt>stephenson@mitre.orgE<gt> 1590 1577 1591 1578 =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 7 7 # HoneyClient VM. 8 8 # 9 # CVS: $Id : IE.pm 1599 2006-11-08 20:04:30Z kindlund$9 # CVS: $Id$ 10 10 # 11 11 # @author knwang, ttruong, kindlund, stephenson … … 43 43 =head1 VERSION 44 44 45 This documentation refers to HoneyClient::Agent::Driver::Browser::IE version 1.0.45 This documentation refers to HoneyClient::Agent::Driver::Browser::IE version 0.92. 46 46 47 47 =head1 SYNOPSIS … … 74 74 75 75 # Set our package version. 76 $VERSION = 0.9 ;76 $VERSION = 0.92; 77 77 78 78 # Define inherited modules. honeyclient/branches/exp/stephenson-link_scoring/lib/HoneyClient/Agent/Integrity.pm
- Property svn:keywords set to Id "$file"
r13 r153 1 1 ################################################################################ 2 # Created on: June 1, 20062 # Created on: June 01, 2006 3 3 # Package: HoneyClient::Agent 4 4 # 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. 6 7 # 7 8 # @author knwang, xkovah, ttruong … … 26 27 ################################################################################ 27 28 28 29 30 29 =pod 31 30 … … 39 38 =head1 VERSION 40 39 41 0. 0840 0.92 42 41 43 42 =head1 SYNOPSIS … … 105 104 can_ok('HoneyClient::Agent::Integrity', 'initFileSystem'); 106 105 can_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); 106 use HoneyClient::Agent::Integrity qw(initAll checkAll initFileSystem checkFileSystem); 110 107 111 108 # Make sure HoneyClient::Util::Config loads. … … 134 131 135 132 # 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."); }133 BEGIN { use_ok('Storable', qw(dclone nfreeze thaw)) or diag("Can't load Storable package. Check to make sure
