1ISIC(1)                          User Manuals                          ISIC(1)
2
3
4

NAME

6       ISIC - IP Stack Integrity Checker
7

SYNOPSIS

9       esic -i <interface> [...]
10       isic -s <source ip> -d <destination ip> [...]
11       tcpsic -s <source ip>[,port] -d <destination ip>[,port] [...]
12       udpsic -s <source ip>[,port] -d <destination ip>[,port] [...]
13       icmpsic -s <source ip> -d <destination ip> [...]
14       multisic  -s  <source  ip>[,port] -d <destination ip>[,port] -i <inter‐
15       face> [...]
16       isic6 -s <source ip> -d <destination ip> [...]
17       tcpsic6 -s <source ip>[,port] -d <destination ip>[,port] [...]
18       udpsic6 -s <source ip>[,port] -d <destination ip>[,port] [...]
19       imcpsic6 -s <source ip> -d <destination ip> [...]
20

DESCRIPTION

22       ISIC is a suite of utilities to exercise the stability of an  IP  Stack
23       and its component stacks (TCP, UDP, ICMP et. al.) It generates piles of
24       pseudo random packets of the target protocol.  The  packets  are  given
25       tendancies  to conform to. For example 50% of the packets generated can
26       have IP Options, and 25% of the packets can be IP fragments... But  the
27       percentages  are arbitrary and most of the packet fields have a config‐
28       urable tendancy.
29
30       The packets are then sent against the target machine  to  either  pene‐
31       trate  its  firewall rules or find bugs in the IP stack. ISIC also con‐
32       tains an utility (esic) that generates raw Ethernet frames  to  examine
33       hardware  implementations,  and  the "multisic" tool to check multicast
34       code integrity.
35
36       Starting from version 0.07, ISIC includes  utilities  (*sic6)  to  test
37       IPv6  protocol  stack.  These  would of course need IPv6 enabled in the
38       system as a prerequisite.
39

GENERAL OPTIONS

41       -c <# of packets>
42              For esic only, number of packets to send. It is equivlent to  -p
43              option used by other utilities. The default is 2^32.
44
45       -d <destination MAC/IP>
46              Optional for esic, required for all others. For esic, this spec‐
47              ifies destination MAC address, and the default will be broadcast
48              address  ff:ff:ff:ff:ff:ff.  For all others, this specifies des‐
49              tination IP address. Use "-d rand" to  send  packets  to  random
50              destination  MAC/IP  address.  For multisic, "-d rand" will make
51              destination IP address picked from the list [224, 225, 232, 233,
52              234, 235, 236, 237, 238, 239] randomly.
53
54       -i <interface>
55              Required  by esic and multisic. This specifies the interface for
56              outgoing packets.
57
58       -k <num>
59              This specifies the number of skipped  packets.  This  option  is
60              useful  for identifying the exact packet(s) causing the problem.
61              Default is 0.
62
63       -l <length>
64              For esic only, the maximum length of packet  generated.  Default
65              is  maximum  ethernet  frame  size  1500.   Length  greater than
66              default value will be rejected.
67
68       -m <num>
69              For esic, this  is  the  number  of  packets  between  printout,
70              default  to  1000.   For  all others, this specifies the maximum
71              speed of traffic generation, unit is kB/s
72
73       -p <num>
74              For esic, this specifies upper layer protocol number in the eth‐
75              ernet  header,  and  default  to type IP 0x0800.  For all others
76              this is the number of packets to send, default  is  2^32.   Note
77              esic uses -c instead for this purpose.
78
79       -r <random seed>
80              Specify the random seed, default to current process id.
81
82       -s <source MAC/IP>
83              Optional for esic, required for all others. For esic, this spec‐
84              ifies source MAC address,  and  the  default  will  be  the  MAC
85              address  of  given  interface.   For  all others, this specifies
86              source IP address. Use "-s rand" to set source MAC/IP address to
87              random value.
88
89       -x <num>
90              Available  to  all  but  esic. Send each packet <num> times, the
91              default value is 1.
92
93       -v     Print out the current version of ISIC test suite.
94
95       -z <source MAC>
96              Optional for multisic. This specifies  source  MAC  address  for
97              outgoing  multicast  packets,  and  the  default will be the MAC
98              address of given interface. Use "-z  rand"  to  set  source  MAC
99              address to random value.
100
101       -D     Available to all but esic, this turns on the debugging printout.
102              Caution: the program will print out information of every  gener‐
103              ated packet, the entire output will be huge.
104
105

PERCENTAGE OPTIONS

107       These  options are defined to all but esic. All percentage options have
108       default value of 10.
109
110       -i     Available for icmpsic and icmpsic6 only, the percentage of  ICMP
111              packets with bad ICMP checksum.
112
113       -t     Available  for  tcpsic  and  tcpsic6 only, the percentage of TCP
114              packets with bad TCP checksum.
115
116       -u     Available for tcpsic and tcpsic6 only,  the  percentage  of  TCP
117              packets with urgent flag set.
118
119       -F     The  percentage  of  fragmented packets. Note for *sic6, this is
120              the percentage of IPv6 packets with  random  fragment  extension
121              header.
122
123       -I
124               For  *sic6,  this is the percentage of IPv6 packets with random
125              destination option header. For isic, this specifies the percent‐
126              age  of packets with random IP header length. For tcpsic, udpsic
127              and icmpsic, this is the percentage of packets  with  random  IP
128              option.
129
130       -T     Available  for  tcpsic  and  tcpsic6 only, the percentage of TCP
131              options in the TCP header.
132
133       -U     Available for udpsic and udpsic6 only,  the  percentage  of  UDP
134              packets with bad UDP checksum.
135
136       -V     Avialable  for  isic, tcpsic, udpsic, icmpsic and isic6, this is
137              the percentage of packets with  bad  IP  version  value  in  the
138              header.
139
140

EXAMPLES

142       esic -i eth0 -s 01:02:34:56:07:89 -p rand -m 5000
143
144              This  will  generate ethernet frames with random protocol number
145              in the ethernet header, and send out through eth0 interface.  In
146              the  frames,  the source MAC address is fixed 01:02:34:56:07:89,
147              destination will be the default  broadcast  MAC  address.  There
148              will be a printout line for every 5000 frames.
149
150       isic -s rand -d 10.11.12.13 -F 50 -p 100 -k 20 -r 10
151
152              This  asks  isic  to generate 100 IP packets with randsom source
153              address and fixed destination address  10.11.12.13.  The  random
154              seed  is  set  to  10.   half of packets will be fragments. When
155              sending out, first 20 packets will be skipped, isic  will  start
156              from the 21st packet.
157
158       tcpsic -s 1.2.3.4,69 -d 21.22.23.24 -x 2 -m 1000 -T 30 -t 50
159
160              This  advises tcpsic to generate TCP packets with source address
161              1.2.3,4  and  source  TCP  port  69,  and  destination   address
162              21.22.23.24 and random destination TCP port. Each packet will be
163              sent out twice, and the overall maximum speed  is  1000kB/s.  Of
164              all  the  TCP packets generated, 30% of packets will have random
165              TCP options, and 50% will have bad TCP checksum.
166
167       multisic  -s  rand  -d  224.0.0.5  -i  eth2   -p   50000   -F   50   -z
168       ff:ff:ff:ff:ff:ff
169
170              This  lets  multisic  to  send  50000  UDP  packets to multicast
171              address 224.0.0.5 with random source address and source/destina‐
172              tion  UDP  ports. The egress interface is forced to be eth2. 50%
173              of outgoing packets will have  fragments.  And  the  source  MAC
174              address is set to ff:ff:ff:ff:ff:ff.
175
176       udpsic6 -s rand -d  2001:1:2:3:4::2,161 -p 1000000 -I 90 -U 20
177
178              This lets udpsic6 to send 1 million IPv6 UDP packets with random
179              source address and  source  UDP  port,  to  destination  address
180              2001:1:2:3:4::2  and  UDP port 161 (SNMP port).  90% of outgoing
181              packets will have random IPv6 destination option header, and 20%
182              of total packets will include incorrect UDP checksum.
183
184
185

AUTHOR

187       Shu Xiao <sxiao@cisco.com>
188

SEE ALSO

190       Libnet (http://www.packetfactory.net/projects/libnet)
191       ISIC online (http://www.packetfactory.net/projects/ISIC) or
192                   (http://isic.sourceforge.net)
193       ip6sic (http://ip6sic.sourceforge.net)
194
195
196
197v0.07                            JANUARY 2007                          ISIC(1)
Impressum